From 1b9dfa17c25c188d67a1b86076c765da5538bed9 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 9 Oct 2023 18:24:43 +0300 Subject: [PATCH 001/162] Refactoring for latencies tracking --- .../monitoring/data/Latencies.java | 4 ++ .../thingsboard/monitoring/data/Latency.java | 48 ++----------------- .../notification/HighLatencyNotification.java | 10 ++-- .../monitoring/service/BaseHealthChecker.java | 2 +- .../service/BaseMonitoringService.java | 5 +- .../service/MonitoringReporter.java | 26 +++++----- 6 files changed, 30 insertions(+), 65 deletions(-) diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java index 3370d42462..52e73a64cd 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java @@ -25,4 +25,8 @@ public class Latencies { return String.format("%sRequest", key); } + public static String wsUpdate(String key) { + return String.format("%sWsUpdate", key); + } + } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latency.java b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latency.java index c64291e30f..4b17bf179f 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latency.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latency.java @@ -15,53 +15,15 @@ */ package org.thingsboard.monitoring.data; -import com.google.common.util.concurrent.AtomicDouble; -import lombok.RequiredArgsConstructor; +import lombok.Data; -import java.util.concurrent.atomic.AtomicInteger; - -@RequiredArgsConstructor +@Data(staticConstructor = "of") public class Latency { - private final String key; - private final AtomicDouble latencySum = new AtomicDouble(); - private final AtomicInteger counter = new AtomicInteger(); - - public synchronized void report(double latencyInMs) { - latencySum.addAndGet(latencyInMs); - counter.incrementAndGet(); - } - - public synchronized double getAvg() { - return latencySum.get() / counter.get(); - } - - public boolean isNotEmpty() { - return counter.get() > 0; - } - - public synchronized void reset() { - latencySum.set(0.0); - counter.set(0); - } - - public String getKey() { - return key; - } - - public synchronized Latency snapshot() { - Latency snapshot = new Latency(key); - snapshot.latencySum.set(latencySum.get()); - snapshot.counter.set(counter.get()); - return snapshot; - } + private final double value; - @Override - public String toString() { - return "Latency{" + - "key='" + key + '\'' + - ", avgLatency=" + getAvg() + - '}'; + public String getFormattedValue() { + return String.format("%,.2f ms", value); } } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/data/notification/HighLatencyNotification.java b/monitoring/src/main/java/org/thingsboard/monitoring/data/notification/HighLatencyNotification.java index 939cb7440f..5744e40d41 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/data/notification/HighLatencyNotification.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/data/notification/HighLatencyNotification.java @@ -21,11 +21,11 @@ import java.util.Collection; public class HighLatencyNotification implements Notification { - private final Collection latencies; + private final Collection highLatencies; private final int thresholdMs; - public HighLatencyNotification(Collection latencies, int thresholdMs) { - this.latencies = latencies; + public HighLatencyNotification(Collection highLatencies, int thresholdMs) { + this.highLatencies = highLatencies; this.thresholdMs = thresholdMs; } @@ -33,8 +33,8 @@ public class HighLatencyNotification implements Notification { public String getText() { StringBuilder text = new StringBuilder(); text.append("Some of the latencies are higher than ").append(thresholdMs).append(" ms:\n"); - latencies.forEach(latency -> { - text.append(String.format("[%s] %,.2f ms\n", latency.getKey(), latency.getAvg())); + highLatencies.forEach(latency -> { + text.append(String.format("[%s] %s\n", latency.getKey(), latency.getFormattedValue())); }); return text.toString(); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java index affca1ce09..697573289d 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java @@ -96,7 +96,7 @@ public abstract class BaseHealthChecker, T extends MonitoringTarget> { - @Autowired + @Autowired(required = false) private List configs; private final List> healthCheckers = new LinkedList<>(); private final List devices = new LinkedList<>(); @@ -54,6 +54,9 @@ public abstract class BaseMonitoringService, T ext @PostConstruct private void init() { + if (configs == null || configs.isEmpty()) { + return; + } tbClient.logIn(); configs.forEach(config -> { config.getTargets().forEach(target -> { diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringReporter.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringReporter.java index f41454a76a..aabf04caee 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringReporter.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/MonitoringReporter.java @@ -63,25 +63,20 @@ public class MonitoringReporter { private String reportingAssetId; public void reportLatencies(TbClient tbClient) { - List latencies = this.latencies.values().stream() - .filter(Latency::isNotEmpty) - .map(latency -> { - Latency snapshot = latency.snapshot(); - latency.reset(); - return snapshot; - }) - .collect(Collectors.toList()); if (latencies.isEmpty()) { return; } - log.info("Latencies:\n{}", latencies.stream().map(latency -> latency.getKey() + ": " + latency.getAvg() + " ms") + log.debug("Latencies:\n{}", latencies.values().stream().map(latency -> latency.getKey() + ": " + latency.getFormattedValue()) .collect(Collectors.joining("\n")) + "\n"); - if (!latencyReportingEnabled) return; - if (latencies.stream().anyMatch(latency -> latency.getAvg() >= (double) latencyThresholdMs)) { - HighLatencyNotification highLatencyNotification = new HighLatencyNotification(latencies, latencyThresholdMs); + List highLatencies = latencies.values().stream() + .filter(latency -> latency.getValue() >= (double) latencyThresholdMs) + .collect(Collectors.toList()); + if (!highLatencies.isEmpty()) { + HighLatencyNotification highLatencyNotification = new HighLatencyNotification(highLatencies, latencyThresholdMs); notificationService.sendNotification(highLatencyNotification); + log.warn("{}", highLatencyNotification.getText()); } try { @@ -99,10 +94,11 @@ public class MonitoringReporter { } ObjectNode msg = JacksonUtil.newObjectNode(); - latencies.forEach(latency -> { - msg.set(latency.getKey(), new DoubleNode(latency.getAvg())); + latencies.values().forEach(latency -> { + msg.set(latency.getKey(), new DoubleNode(latency.getValue())); }); tbClient.saveEntityTelemetry(new AssetId(UUID.fromString(reportingAssetId)), "time", msg); + latencies.clear(); } catch (Exception e) { log.error("Failed to report latencies: {}", e.getMessage()); } @@ -112,7 +108,7 @@ public class MonitoringReporter { String latencyKey = key + "Latency"; double latencyInMs = (double) latencyInNanos / 1000_000; log.trace("Reporting latency [{}]: {} ms", key, latencyInMs); - latencies.computeIfAbsent(latencyKey, k -> new Latency(latencyKey)).report(latencyInMs); + latencies.put(latencyKey, Latency.of(latencyKey, latencyInMs)); } public void serviceFailure(Object serviceKey, Throwable error) { From d53dbd698837d5b78e5e27ecec329ffdcfa29a04 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 30 Oct 2023 14:06:55 +0200 Subject: [PATCH 002/162] Migrate resource's data from Base64 to bytea --- .../main/data/upgrade/3.6.1/schema_update.sql | 27 ++++ .../controller/TbResourceController.java | 70 +++++----- .../controller/TenantProfileController.java | 1 + .../install/ThingsboardInstallService.java | 4 + .../service/install/InstallScripts.java | 5 +- .../install/SqlDatabaseUpgradeService.java | 120 ++++++++---------- .../resource/DefaultTbResourceService.java | 15 --- .../server/utils/LwM2mObjectModelUtils.java | 10 +- .../controller/TbResourceControllerTest.java | 57 +++++---- .../sql/BaseTbResourceServiceTest.java | 58 ++++++--- .../lwm2m/AbstractLwM2MIntegrationTest.java | 2 +- .../server/common/data/TbResource.java | 51 ++++---- .../server/common/data/TbResourceInfo.java | 37 ++---- .../DefaultTenantProfileConfiguration.java | 1 + .../server/LwM2mVersionedModelProvider.java | 3 +- .../dao/model/sql/TbResourceEntity.java | 4 +- .../dao/model/sql/TbResourceInfoEntity.java | 6 + .../dao/resource/BaseResourceService.java | 33 ++++- .../server/dao/service/DataValidator.java | 3 +- .../validator/ResourceDataValidator.java | 22 +++- .../main/resources/sql/schema-entities.sql | 2 +- .../server/dao/service/TenantServiceTest.java | 3 +- ui-ngx/src/app/core/http/resource.service.ts | 4 - ...enant-profile-configuration.component.html | 16 +++ ...-tenant-profile-configuration.component.ts | 1 + .../resources-library-table-config.resolve.ts | 2 +- .../resource/resources-library.component.html | 2 +- .../resource/resources-library.component.ts | 12 +- .../src/app/shared/models/resource.models.ts | 5 +- ui-ngx/src/app/shared/models/tenant.model.ts | 2 + .../assets/locale/locale.constant-en_US.json | 9 +- 31 files changed, 335 insertions(+), 252 deletions(-) create mode 100644 application/src/main/data/upgrade/3.6.1/schema_update.sql diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql new file mode 100644 index 0000000000..5ebe39fb6e --- /dev/null +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -0,0 +1,27 @@ +-- +-- Copyright © 2016-2023 The Thingsboard Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +DO +$$ + BEGIN + IF NOT EXISTS(SELECT 1 FROM information_schema.columns WHERE table_name = 'resource' AND column_name = 'data' AND data_type = 'bytea') THEN + ALTER TABLE resource RENAME COLUMN data TO base64_data; + ALTER TABLE resource ADD COLUMN data bytea; + UPDATE resource SET data = decode(base64_data, 'base64') WHERE base64_data IS NOT NULL; + ALTER TABLE resource DROP COLUMN base64_data; + END IF; + END; +$$; diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index 94e318f37c..de18849b3a 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -26,7 +26,10 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; @@ -87,15 +90,15 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download Resource (downloadResource)", notes = "Download Resource based on the provided Resource Id." + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/{resourceId}/download", method = RequestMethod.GET) + @GetMapping(value = "/resource/{resourceId}/download") @ResponseBody - public ResponseEntity downloadResource(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) - @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { + public ResponseEntity downloadResource(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) + @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); TbResource tbResource = checkResourceId(resourceId, Operation.READ); - ByteArrayResource resource = new ByteArrayResource(Base64.getDecoder().decode(tbResource.getData().getBytes())); + ByteArrayResource resource = new ByteArrayResource(tbResource.getData()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + tbResource.getFileName()) .header("x-filename", tbResource.getFileName()) @@ -106,11 +109,11 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download LWM2M Resource (downloadLwm2mResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/lwm2m/{resourceId}/download", method = RequestMethod.GET, produces = "application/xml") + @GetMapping(value = "/resource/lwm2m/{resourceId}/download", produces = "application/xml") @ResponseBody - public ResponseEntity downloadLwm2mResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) - @PathVariable(RESOURCE_ID) String strResourceId, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + public ResponseEntity downloadLwm2mResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) + @PathVariable(RESOURCE_ID) String strResourceId, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { return downloadResourceIfChanged(ResourceType.LWM2M_MODEL, strResourceId, etag); } @@ -118,30 +121,30 @@ public class TbResourceController extends BaseController { @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @RequestMapping(value = "/resource/pkcs12/{resourceId}/download", method = RequestMethod.GET, produces = "application/x-pkcs12") @ResponseBody - public ResponseEntity downloadPkcs12ResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) - @PathVariable(RESOURCE_ID) String strResourceId, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + public ResponseEntity downloadPkcs12ResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) + @PathVariable(RESOURCE_ID) String strResourceId, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { return downloadResourceIfChanged(ResourceType.PKCS_12, strResourceId, etag); } @ApiOperation(value = "Download JKS Resource (downloadJksResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/jks/{resourceId}/download", method = RequestMethod.GET, produces = "application/x-java-keystore") + @GetMapping(value = "/resource/jks/{resourceId}/download", produces = "application/x-java-keystore") @ResponseBody - public ResponseEntity downloadJksResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) - @PathVariable(RESOURCE_ID) String strResourceId, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + public ResponseEntity downloadJksResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) + @PathVariable(RESOURCE_ID) String strResourceId, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { return downloadResourceIfChanged(ResourceType.JKS, strResourceId, etag); } @ApiOperation(value = "Download JS Resource (downloadJsResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + AVAILABLE_FOR_ANY_AUTHORIZED_USER) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") - @RequestMapping(value = "/resource/js/{resourceId}/download", method = RequestMethod.GET, produces = "application/javascript") + @GetMapping(value = "/resource/js/{resourceId}/download", produces = "application/javascript") @ResponseBody - public ResponseEntity downloadJsResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) - @PathVariable(RESOURCE_ID) String strResourceId, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + public ResponseEntity downloadJsResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) + @PathVariable(RESOURCE_ID) String strResourceId, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { return downloadResourceIfChanged(ResourceType.JS_MODULE, strResourceId, etag); } @@ -150,7 +153,7 @@ public class TbResourceController extends BaseController { RESOURCE_INFO_DESCRIPTION + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH, produces = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/info/{resourceId}", method = RequestMethod.GET) + @GetMapping(value = "/resource/info/{resourceId}") @ResponseBody public TbResourceInfo getResourceInfoById(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { @@ -162,15 +165,18 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Get Resource (getResourceById)", notes = "Fetch the Resource object based on the provided Resource Id. " + RESOURCE_DESCRIPTION + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH, - produces = "application/json") + produces = "application/json", hidden = true) + @Deprecated // resource's data should be fetched with a download request @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/{resourceId}", method = RequestMethod.GET) + @GetMapping(value = "/resource/{resourceId}") @ResponseBody public TbResource getResourceById(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); - return checkResourceId(resourceId, Operation.READ); + TbResource resource = checkResourceId(resourceId, Operation.READ); + resource.setBase64Data(Base64.getEncoder().encodeToString(resource.getData())); + return resource; } @ApiOperation(value = "Create Or Update Resource (saveResource)", @@ -184,10 +190,10 @@ public class TbResourceController extends BaseController { produces = "application/json", consumes = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource", method = RequestMethod.POST) + @PostMapping(value = "/resource") @ResponseBody - public TbResource saveResource(@ApiParam(value = "A JSON value representing the Resource.") - @RequestBody TbResource resource) throws Exception { + public TbResourceInfo saveResource(@ApiParam(value = "A JSON value representing the Resource.") + @RequestBody TbResource resource) throws Exception { resource.setTenantId(getTenantId()); checkEntity(resource.getId(), resource, Resource.TB_RESOURCE); return tbResourceService.save(resource, getCurrentUser()); @@ -198,7 +204,7 @@ public class TbResourceController extends BaseController { PAGE_DATA_PARAMETERS + RESOURCE_INFO_DESCRIPTION + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH, produces = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource", method = RequestMethod.GET) + @GetMapping(value = "/resource") @ResponseBody public PageData getResources(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @@ -230,7 +236,7 @@ public class TbResourceController extends BaseController { PAGE_DATA_PARAMETERS + LWM2M_OBJECT_DESCRIPTION + TENANT_AUTHORITY_PARAGRAPH, produces = "application/json") @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") - @RequestMapping(value = "/resource/lwm2m/page", method = RequestMethod.GET) + @GetMapping(value = "/resource/lwm2m/page") @ResponseBody public List getLwm2mListObjectsPage(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @@ -251,7 +257,7 @@ public class TbResourceController extends BaseController { "You can specify parameters to filter the results. " + LWM2M_OBJECT_DESCRIPTION + TENANT_AUTHORITY_PARAGRAPH, produces = "application/json") @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") - @RequestMapping(value = "/resource/lwm2m", method = RequestMethod.GET) + @GetMapping(value = "/resource/lwm2m") @ResponseBody public List getLwm2mListObjects(@ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES, required = true) @RequestParam String sortOrder, @@ -265,7 +271,7 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Delete Resource (deleteResource)", notes = "Deletes the Resource. Referencing non-existing Resource Id will cause an error." + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @RequestMapping(value = "/resource/{resourceId}", method = RequestMethod.DELETE) + @DeleteMapping(value = "/resource/{resourceId}") @ResponseBody public void deleteResource(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable("resourceId") String strResourceId) throws ThingsboardException { @@ -275,7 +281,7 @@ public class TbResourceController extends BaseController { tbResourceService.delete(tbResource, getCurrentUser()); } - private ResponseEntity downloadResourceIfChanged(ResourceType type, String strResourceId, String etag) throws ThingsboardException { + private ResponseEntity downloadResourceIfChanged(ResourceType type, String strResourceId, String etag) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); @@ -289,7 +295,7 @@ public class TbResourceController extends BaseController { } TbResource tbResource = checkResourceId(resourceId, Operation.READ); - ByteArrayResource resource = new ByteArrayResource(Base64.getDecoder().decode(tbResource.getData().getBytes())); + ByteArrayResource resource = new ByteArrayResource(tbResource.getData()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + tbResource.getFileName()) diff --git a/application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java b/application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java index 6fbee00f7f..1fe492d692 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java @@ -133,6 +133,7 @@ public class TenantProfileController extends BaseController { " \"maxRuleChains\": 0,\n" + " \"maxResourcesInBytes\": 0,\n" + " \"maxOtaPackagesInBytes\": 0,\n" + + " \"maxResourceSize\": 0,\n" + " \"transportTenantMsgRateLimit\": \"1000:1,20000:60\",\n" + " \"transportTenantTelemetryMsgRateLimit\": \"1000:1,20000:60\",\n" + " \"transportTenantTelemetryDataPointsRateLimit\": \"1000:1,20000:60\",\n" + diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index 3829b3cf45..a42194a28d 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -265,6 +265,10 @@ public class ThingsboardInstallService { case "3.6.0": log.info("Upgrading ThingsBoard from version 3.6.0 to 3.6.1 ..."); databaseEntitiesUpgradeService.upgradeDatabase("3.6.0"); + break; + case "3.6.1": + log.info("Upgrading ThingsBoard from version 3.6.1 to 3.6.2 ..."); + databaseEntitiesUpgradeService.upgradeDatabase("3.6.1"); //TODO DON'T FORGET to update switch statement in the CacheCleanupService if you need to clear the cache break; default: diff --git a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java index 7f0b70cb27..00627e0421 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java +++ b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java @@ -47,7 +47,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Base64; import java.util.List; import java.util.Optional; import java.util.function.Function; @@ -309,7 +308,7 @@ public class InstallScripts { dirStream.forEach( path -> { try { - String data = Base64.getEncoder().encodeToString(Files.readAllBytes(path)); + byte[] data = Files.readAllBytes(path); TbResource tbResource = new TbResource(); tbResource.setTenantId(TenantId.SYS_TENANT_ID); tbResource.setData(data); @@ -330,7 +329,7 @@ public class InstallScripts { private void doSaveLwm2mResource(TbResource resource) throws ThingsboardException { log.trace("Executing saveResource [{}]", resource); - if (StringUtils.isEmpty(resource.getData())) { + if (resource.getData() == null || resource.getData().length == 0) { throw new DataValidationException("Resource data should be specified!"); } toLwm2mResource(resource); diff --git a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java index c02b7e9cc1..a4e9d61a74 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java @@ -63,6 +63,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; import static org.thingsboard.server.service.install.DatabaseHelper.ADDITIONAL_INFO; import static org.thingsboard.server.service.install.DatabaseHelper.ASSIGNED_CUSTOMERS; @@ -717,86 +718,73 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService } break; case "3.5.0": - try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { - log.info("Updating schema ..."); - if (isOldSchema(conn, 3005000)) { - schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "3.5.0", SCHEMA_UPDATE_SQL); - loadSql(schemaUpdateFile, conn); - conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3005001;"); - } - log.info("Schema updated."); - } catch (Exception e) { - log.error("Failed updating schema!!!", e); - } + updateSchema("3.5.0", 3005000, "3.5.1", 3005001, null); break; case "3.5.1": - try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { - if (isOldSchema(conn, 3005001)) { - log.info("Updating schema ..."); - schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "3.5.1", SCHEMA_UPDATE_SQL); - loadSql(schemaUpdateFile, conn); - - String[] entityNames = new String[]{"device", "component_descriptor", "customer", "dashboard", "rule_chain", "rule_node", "ota_package", - "asset_profile", "asset", "device_profile", "tb_user", "tenant_profile", "tenant", "widgets_bundle", "entity_view", "edge"}; - for (String entityName : entityNames) { - try { - conn.createStatement().execute("ALTER TABLE " + entityName + " DROP COLUMN " + SEARCH_TEXT + " CASCADE"); - } catch (Exception e) { - } - } + updateSchema("3.5.1", 3005001, "3.6.0", 3006000, conn -> { + String[] entityNames = new String[]{"device", "component_descriptor", "customer", "dashboard", "rule_chain", "rule_node", "ota_package", + "asset_profile", "asset", "device_profile", "tb_user", "tenant_profile", "tenant", "widgets_bundle", "entity_view", "edge"}; + for (String entityName : entityNames) { try { - conn.createStatement().execute("ALTER TABLE component_descriptor ADD COLUMN IF NOT EXISTS configuration_version int DEFAULT 0;"); + conn.createStatement().execute("ALTER TABLE " + entityName + " DROP COLUMN " + SEARCH_TEXT + " CASCADE"); } catch (Exception e) { } - try { - conn.createStatement().execute("ALTER TABLE rule_node ADD COLUMN IF NOT EXISTS configuration_version int DEFAULT 0;"); - } catch (Exception e) { - } - try { - conn.createStatement().execute("CREATE INDEX IF NOT EXISTS idx_rule_node_type_configuration_version ON rule_node(type, configuration_version);"); - } catch (Exception e) { - } - try { - conn.createStatement().execute("UPDATE rule_node SET " + - "configuration = (configuration::jsonb || '{\"updateAttributesOnlyOnValueChange\": \"false\"}'::jsonb)::varchar, " + - "configuration_version = 1 " + - "WHERE type = 'org.thingsboard.rule.engine.telemetry.TbMsgAttributesNode' AND configuration_version < 1;"); - } catch (Exception e) { - } - try { - conn.createStatement().execute("CREATE INDEX IF NOT EXISTS idx_notification_recipient_id_unread ON notification(recipient_id) WHERE status <> 'READ';"); - } catch (Exception e) { - } - - conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3006000;"); - log.info("Schema updated to version 3.6.0."); - } else { - log.info("Skip schema re-update to version 3.6.0. Use env flag 'SKIP_SCHEMA_VERSION_CHECK' to force the re-update."); } - } catch (Exception e) { - log.error("Failed updating schema!!!", e); - } + try { + conn.createStatement().execute("ALTER TABLE component_descriptor ADD COLUMN IF NOT EXISTS configuration_version int DEFAULT 0;"); + } catch (Exception e) { + } + try { + conn.createStatement().execute("ALTER TABLE rule_node ADD COLUMN IF NOT EXISTS configuration_version int DEFAULT 0;"); + } catch (Exception e) { + } + try { + conn.createStatement().execute("CREATE INDEX IF NOT EXISTS idx_rule_node_type_configuration_version ON rule_node(type, configuration_version);"); + } catch (Exception e) { + } + try { + conn.createStatement().execute("UPDATE rule_node SET " + + "configuration = (configuration::jsonb || '{\"updateAttributesOnlyOnValueChange\": \"false\"}'::jsonb)::varchar, " + + "configuration_version = 1 " + + "WHERE type = 'org.thingsboard.rule.engine.telemetry.TbMsgAttributesNode' AND configuration_version < 1;"); + } catch (Exception e) { + } + try { + conn.createStatement().execute("CREATE INDEX IF NOT EXISTS idx_notification_recipient_id_unread ON notification(recipient_id) WHERE status <> 'READ';"); + } catch (Exception e) { + } + }); break; case "3.6.0": - try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { - if (isOldSchema(conn, 3006000)) { - log.info("Updating schema ..."); - schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "3.6.0", SCHEMA_UPDATE_SQL); - loadSql(schemaUpdateFile, conn); - conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3006001;"); - log.info("Schema updated to version 3.6.1."); - } else { - log.info("Skip schema re-update to version 3.6.1. Use env flag 'SKIP_SCHEMA_VERSION_CHECK' to force the re-update."); - } - } catch (Exception e) { - log.error("Failed updating schema!!!", e); - } + updateSchema("3.6.0", 3006000, "3.6.1", 3006001, null); + break; + case "3.6.1": + updateSchema("3.6.1", 3006001, "3.6.2", 3006002, null); break; default: throw new RuntimeException("Unable to upgrade SQL database, unsupported fromVersion: " + fromVersion); } } + private void updateSchema(String oldVersionStr, int oldVersion, String newVersionStr, int newVersion, Consumer additionalAction) { + try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { + log.info("Updating schema ..."); + if (isOldSchema(conn, oldVersion)) { + Path schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", oldVersionStr, SCHEMA_UPDATE_SQL); + loadSql(schemaUpdateFile, conn); + if (additionalAction != null) { + additionalAction.accept(conn); + } + conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = " + newVersion + ";"); + log.info("Schema updated to version {}", newVersionStr); + } else { + log.info("Skip schema re-update to version {}. Use env flag 'SKIP_SCHEMA_VERSION_CHECK' to force the re-update.", newVersionStr); + } + } catch (Exception e) { + log.error("Failed updating schema!!!", e); + } + } + private void runSchemaUpdateScript(Connection connection, String version) throws Exception { Path schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", version, SCHEMA_UPDATE_SQL); loadSql(schemaUpdateFile, connection); diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java index 064511abd9..d1ce667345 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java @@ -15,34 +15,26 @@ */ package org.thingsboard.server.service.resource; -import com.google.common.hash.HashCode; -import com.google.common.hash.Hashing; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ResourceType; -import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfoFilter; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.audit.ActionType; -import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.lwm2m.LwM2mObject; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; -import org.thingsboard.server.common.data.widget.BaseWidgetType; -import org.thingsboard.server.common.data.widget.WidgetTypeDetails; -import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.entitiy.AbstractTbEntityService; -import java.util.Base64; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -166,18 +158,11 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements } private TbResource doSave(TbResource resource) throws ThingsboardException { - log.trace("Executing saveResource [{}]", resource); - if (StringUtils.isEmpty(resource.getData())) { - throw new DataValidationException("Resource data should be specified!"); - } if (ResourceType.LWM2M_MODEL.equals(resource.getResourceType())) { toLwm2mResource(resource); } else { resource.setResourceKey(resource.getFileName()); } - HashCode hashCode = Hashing.sha256().hashBytes(Base64.getDecoder().decode(resource.getData().getBytes())); - resource.setEtag(hashCode.toString()); return resourceService.saveResource(resource); } } - diff --git a/application/src/main/java/org/thingsboard/server/utils/LwM2mObjectModelUtils.java b/application/src/main/java/org/thingsboard/server/utils/LwM2mObjectModelUtils.java index 0deb2f6bb7..b73ba09541 100644 --- a/application/src/main/java/org/thingsboard/server/utils/LwM2mObjectModelUtils.java +++ b/application/src/main/java/org/thingsboard/server/utils/LwM2mObjectModelUtils.java @@ -39,13 +39,13 @@ import static org.thingsboard.server.common.data.lwm2m.LwM2mConstants.LWM2M_SEPA @Slf4j public class LwM2mObjectModelUtils { - + private static final TbDDFFileParser ddfFileParser = new TbDDFFileParser(); - - public static void toLwm2mResource (TbResource resource) throws ThingsboardException { + + public static void toLwm2mResource(TbResource resource) throws ThingsboardException { try { List objectModels = - ddfFileParser.parse(new ByteArrayInputStream(Base64.getDecoder().decode(resource.getData())), resource.getSearchText()); + ddfFileParser.parse(new ByteArrayInputStream(resource.getData()), resource.getSearchText()); if (!objectModels.isEmpty()) { ObjectModel objectModel = objectModels.get(0); @@ -73,7 +73,7 @@ public class LwM2mObjectModelUtils { public static LwM2mObject toLwM2mObject(TbResource resource, boolean isSave) { try { List objectModels = - ddfFileParser.parse(new ByteArrayInputStream(Base64.getDecoder().decode(resource.getData())), resource.getSearchText()); + ddfFileParser.parse(new ByteArrayInputStream(resource.getData()), resource.getSearchText()); if (objectModels.size() == 0) { return null; } else { diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index 8725f43be1..0e05165c77 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -20,7 +20,6 @@ import com.fasterxml.jackson.databind.JsonNode; import org.junit.After; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; import org.springframework.http.HttpHeaders; @@ -35,11 +34,11 @@ import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.audit.ActionType; +import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; -import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -54,6 +53,11 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @DaoSqlTest public class TbResourceControllerTest extends AbstractControllerTest { + /* + * TODO: + * test maxResourceSize limit in tenant profile + * */ + private IdComparator idComparator = new IdComparator<>(); private static final String DEFAULT_FILE_NAME = "test.jks"; @@ -101,7 +105,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -116,7 +120,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { Assert.assertEquals(resource.getTitle(), savedResource.getTitle()); Assert.assertEquals(DEFAULT_FILE_NAME, savedResource.getFileName()); Assert.assertEquals(DEFAULT_FILE_NAME, savedResource.getResourceKey()); - Assert.assertEquals(resource.getData(), savedResource.getData()); + Assert.assertArrayEquals(resource.getData(), download(savedResource.getId())); savedResource.setTitle("My new resource"); @@ -136,7 +140,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle(StringUtils.randomAlphabetic(300)); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); Mockito.reset(tbClusterService, auditLogService); @@ -155,7 +159,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -184,13 +188,14 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); - TbResource foundResource = doGet("/api/resource/" + savedResource.getId().getId().toString(), TbResource.class); + TbResource foundResource = doGet("/api/resource/" + savedResource.getUuidId(), TbResource.class); Assert.assertNotNull(foundResource); - Assert.assertEquals(savedResource, foundResource); + Assert.assertEquals(savedResource.getId(), foundResource.getId()); + Assert.assertEquals(savedResource.getFileName(), foundResource.getFileName()); } @Test @@ -199,7 +204,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -213,7 +218,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.DELETED, resourceIdStr); - doGet("/api/resource/" + savedResource.getId().getId().toString()) + doGet("/api/resource/" + savedResource.getUuidId()) .andExpect(status().isNotFound()) .andExpect(statusReason(containsString(msgErrorNoFound("Resource", resourceIdStr)))); } @@ -224,7 +229,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -255,7 +260,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } List loadedResources = new ArrayList<>(); @@ -292,7 +297,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("JKS Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } @@ -302,7 +307,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("LWM2M Resource" + i); resource.setResourceType(ResourceType.PKCS_12); resource.setFileName(i + DEFAULT_FILE_NAME_2); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); save(resource); } @@ -339,7 +344,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } List loadedResources = new ArrayList<>(); @@ -399,7 +404,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("JKS Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResourceInfo saved = new TbResourceInfo(save(resource)); jksResources.add(saved); } @@ -410,7 +415,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("LWM2M Resource" + i); resource.setResourceType(ResourceType.PKCS_12); resource.setFileName(i + DEFAULT_FILE_NAME_2); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource saved = save(resource); lwm2mesources.add(saved); } @@ -476,7 +481,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); expectedResources.add(new TbResourceInfo(save(resource))); } @@ -487,7 +492,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResourceInfo savedResource = new TbResourceInfo(save(resource)); systemResources.add(savedResource); if (i >= 73) { @@ -531,7 +536,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -562,7 +567,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -606,7 +611,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); @@ -619,4 +624,10 @@ public class TbResourceControllerTest extends AbstractControllerTest { private TbResource save(TbResource tbResource) throws Exception { return doPostWithTypedResponse("/api/resource", tbResource, new TypeReference<>(){}); } + + private byte[] download(TbResourceId resourceId) throws Exception { + return doGet("/api/resource/" + resourceId + "/download") + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsByteArray(); + } } diff --git a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java index 6f08e47412..ab55840f3c 100644 --- a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java @@ -30,6 +30,7 @@ import org.thingsboard.server.common.data.TbResourceInfoFilter; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; @@ -46,6 +47,7 @@ import java.util.Collections; import java.util.List; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -105,7 +107,8 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { ""; private static final String DEFAULT_FILE_NAME = "test.jks"; - private static final String TEST_DATA = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo="; + private static final String TEST_BASE64_DATA = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo="; + private static final byte[] TEST_DATA = Base64.getDecoder().decode(TEST_BASE64_DATA); private IdComparator idComparator = new IdComparator<>(); @@ -151,7 +154,8 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { long limit = 4; EntityInfo defaultTenantProfileInfo = doGet("/api/tenantProfileInfo/default", EntityInfo.class); TenantProfile defaultTenantProfile = doGet("/api/tenantProfile/" + defaultTenantProfileInfo.getId().getId().toString(), TenantProfile.class); - defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder().maxResourcesInBytes(limit).build()); + defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder() + .maxResourcesInBytes(limit).build()); doPost("/api/tenantProfile", defaultTenantProfile, TenantProfile.class); loginTenantAdmin(); @@ -165,7 +169,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { try { assertThatThrownBy(() -> createResource("test1", 1 + DEFAULT_FILE_NAME)) .isInstanceOf(DataValidationException.class) - .hasMessageContaining("Failed to create the tb resource, files size limit is exhausted %d bytes!", limit); + .hasMessageContaining("Resources total size exceeds the maximum of %s bytes", limit); } finally { defaultTenantProfile.getProfileData().setConfiguration(DefaultTenantProfileConfiguration.builder().maxResourcesInBytes(0).build()); loginSysAdmin(); @@ -173,6 +177,15 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { } } + @Test + public void testMaxResourceSizeValidation() throws ThingsboardException { + updateDefaultTenantProfileConfig(profileConfig -> { + profileConfig.setMaxResourceSize(2); + }); + assertThatThrownBy(() -> createResource("Test", DEFAULT_FILE_NAME)) + .hasMessageContaining("Resource exceeds the maximum size of 2 bytes"); + } + @Test public void sumDataSizeByTenantId() throws Exception { assertEquals(0, resourceService.sumDataSizeByTenantId(tenantId)); @@ -192,8 +205,8 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle(title); resource.setResourceType(ResourceType.JKS); resource.setFileName(filename); - byte[] b = new byte[1]; - resource.setData(Base64.getEncoder().encodeToString(b)); + byte[] b = new byte[]{1, 2, 3, 4}; + resource.setBase64Data(Base64.getEncoder().encodeToString(b)); return resourceService.save(resource); } @@ -204,7 +217,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); @@ -214,13 +227,16 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { assertEquals(resource.getTenantId(), savedResource.getTenantId()); assertEquals(resource.getTitle(), savedResource.getTitle()); assertEquals(resource.getResourceKey(), savedResource.getResourceKey()); - assertEquals(resource.getData(), savedResource.getData()); + assertArrayEquals(TEST_DATA, savedResource.getData()); savedResource.setTitle("My new resource"); + savedResource.setBase64Data(null); + savedResource.setData(null); resourceService.save(savedResource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); assertEquals(foundResource.getTitle(), savedResource.getTitle()); + assertArrayEquals(foundResource.getData(), TEST_DATA); resourceService.delete(savedResource, null); } @@ -231,7 +247,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setResourceType(ResourceType.LWM2M_MODEL); resource.setFileName("test_model.xml"); - resource.setData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes())); + resource.setBase64Data(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes())); TbResource savedResource = resourceService.save(resource); @@ -241,7 +257,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { assertEquals(resource.getTenantId(), savedResource.getTenantId()); assertEquals("My first resource id=0 v1.0", savedResource.getTitle()); assertEquals("0_1.0", savedResource.getResourceKey()); - assertEquals(resource.getData(), savedResource.getData()); + assertArrayEquals(savedResource.getData(), LWM2M_TEST_MODEL.getBytes()); resourceService.delete(savedResource, null); } @@ -252,7 +268,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId()); @@ -267,7 +283,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); @@ -276,7 +292,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); try { Assertions.assertThrows(DataValidationException.class, () -> { @@ -293,7 +309,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setResourceType(ResourceType.JKS); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); Assertions.assertThrows(DataValidationException.class, () -> { resourceService.save(resource); }); @@ -306,7 +322,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); Assertions.assertThrows(DataValidationException.class, () -> { resourceService.save(resource); }); @@ -318,7 +334,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setResourceType(ResourceType.LWM2M_MODEL); resource.setFileName("xxe_test_model.xml"); - resource.setData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL_WITH_XXE.getBytes())); + resource.setData(LWM2M_TEST_MODEL_WITH_XXE.getBytes()); DataValidationException thrown = assertThrows(DataValidationException.class, () -> { resourceService.save(resource); @@ -333,7 +349,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); @@ -349,7 +365,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); TbResource foundResource = resourceService.getResource(tenantId, savedResource.getResourceType(), savedResource.getResourceKey()); @@ -364,7 +380,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResource savedResource = resourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); @@ -390,7 +406,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); resources.add(new TbResourceInfo(resourceService.save(resource))); } @@ -444,7 +460,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("System Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); TbResourceInfo tbResourceInfo = new TbResourceInfo(resourceService.save(resource)); if (i >= 50) { resources.add(tbResourceInfo); @@ -457,7 +473,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("Tenant Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_BASE64_DATA); resources.add(new TbResourceInfo(resourceService.save(resource))); } diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java index 64382d5d51..e3b0d0d9a2 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java @@ -206,7 +206,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte lwModel.setFileName(resourceName); lwModel.setTenantId(tenantId); byte[] bytes = IOUtils.toByteArray(AbstractLwM2MIntegrationTest.class.getClassLoader().getResourceAsStream("lwm2m/" + resourceName)); - lwModel.setData(Base64.getEncoder().encodeToString(bytes)); + lwModel.setBase64Data(Base64.getEncoder().encodeToString(bytes)); lwModel = doPostWithTypedResponse("/api/resource", lwModel, new TypeReference<>() { }); Assert.assertNotNull(lwModel); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java index 8b82db196a..d003328418 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java @@ -15,13 +15,14 @@ */ package org.thingsboard.server.common.data; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.thingsboard.server.common.data.id.TbResourceId; -import org.thingsboard.server.common.data.validation.Length; -import org.thingsboard.server.common.data.validation.NoXss; + +import java.util.Base64; @Slf4j @Data @@ -30,13 +31,11 @@ public class TbResource extends TbResourceInfo { private static final long serialVersionUID = 7379609705527272306L; - @NoXss - @Length(fieldName = "file name") - @ApiModelProperty(position = 8, value = "Resource file name.", example = "19.xml", accessMode = ApiModelProperty.AccessMode.READ_ONLY) - private String fileName; + private String base64Data; @ApiModelProperty(position = 9, value = "Resource data.", example = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=", accessMode = ApiModelProperty.AccessMode.READ_ONLY) - private String data; + @JsonIgnore + private byte[] data; public TbResource() { super(); @@ -52,31 +51,25 @@ public class TbResource extends TbResourceInfo { public TbResource(TbResource resource) { super(resource); - this.data = resource.getData(); + this.base64Data = resource.base64Data; + this.data = resource.data; + } + + @JsonIgnore + public byte[] getData() { + if (data == null && base64Data != null) { + try { + data = Base64.getDecoder().decode(base64Data); + } catch (Exception e) { + throw new IllegalArgumentException("Failed to decode resource data from Base64", e); + } + base64Data = null; + } + return data; } @Override public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("Resource [tenantId="); - builder.append(getTenantId()); - builder.append(", id="); - builder.append(getUuidId()); - builder.append(", createdTime="); - builder.append(createdTime); - builder.append(", title="); - builder.append(getTitle()); - builder.append(", resourceType="); - builder.append(getResourceType()); - builder.append(", resourceKey="); - builder.append(getResourceKey()); - builder.append(", fileName="); - builder.append(fileName); - builder.append(", data="); - builder.append(data); - builder.append(", hashCode="); - builder.append(getEtag()); - builder.append("]"); - return builder.toString(); + return super.toString(); } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index af3c71f226..9d83d5922e 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -50,6 +50,10 @@ public class TbResourceInfo extends BaseData implements HasName, H private String searchText; @ApiModelProperty(position = 8, value = "Resource etag.", example = "33a64df551425fcc55e4d42a148795d9f25f89d4", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String etag; + @NoXss + @Length(fieldName = "file name") + @ApiModelProperty(position = 9, value = "Resource file name.", example = "19.xml", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + private String fileName; public TbResourceInfo() { super(); @@ -61,12 +65,13 @@ public class TbResourceInfo extends BaseData implements HasName, H public TbResourceInfo(TbResourceInfo resourceInfo) { super(resourceInfo); - this.tenantId = resourceInfo.getTenantId(); - this.title = resourceInfo.getTitle(); - this.resourceType = resourceInfo.getResourceType(); - this.resourceKey = resourceInfo.getResourceKey(); - this.searchText = resourceInfo.getSearchText(); - this.etag = resourceInfo.getEtag(); + this.tenantId = resourceInfo.tenantId; + this.title = resourceInfo.title; + this.resourceType = resourceInfo.resourceType; + this.resourceKey = resourceInfo.resourceKey; + this.searchText = resourceInfo.searchText; + this.etag = resourceInfo.etag; + this.fileName = resourceInfo.fileName; } @ApiModelProperty(position = 1, value = "JSON object with the Resource Id. " + @@ -95,24 +100,4 @@ public class TbResourceInfo extends BaseData implements HasName, H return searchText != null ? searchText : title; } - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("ResourceInfo [tenantId="); - builder.append(tenantId); - builder.append(", id="); - builder.append(getUuidId()); - builder.append(", createdTime="); - builder.append(createdTime); - builder.append(", title="); - builder.append(title); - builder.append(", resourceType="); - builder.append(resourceType); - builder.append(", resourceKey="); - builder.append(resourceKey); - builder.append(", hashCode="); - builder.append(etag); - builder.append("]"); - return builder.toString(); - } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java b/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java index a1d6da34d8..dfc6f5206b 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java @@ -39,6 +39,7 @@ public class DefaultTenantProfileConfiguration implements TenantProfileConfigura private long maxRuleChains; private long maxResourcesInBytes; private long maxOtaPackagesInBytes; + private long maxResourceSize; private String transportTenantMsgRateLimit; private String transportTenantTelemetryMsgRateLimit; diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mVersionedModelProvider.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mVersionedModelProvider.java index 3dd13cd171..7ba78193b7 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mVersionedModelProvider.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2mVersionedModelProvider.java @@ -152,8 +152,7 @@ public class LwM2mVersionedModelProvider implements LwM2mModelProvider { private ObjectModel getObjectModel(String key) { Optional tbResource = context.getTransportResourceCache().get(this.tenantId, LWM2M_MODEL, key); - return tbResource.map(resource -> helper.parseFromXmlToObjectModel( - Base64.getDecoder().decode(resource.getData()), + return tbResource.map(resource -> helper.parseFromXmlToObjectModel(resource.getData(), key + ".xml")).orElse(null); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java index 4fbc50fd69..502477699b 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java @@ -30,8 +30,8 @@ import javax.persistence.Table; import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DATA_COLUMN; -import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; @@ -64,7 +64,7 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE private String fileName; @Column(name = RESOURCE_DATA_COLUMN) - private String data; + private byte[] data; @Column(name = RESOURCE_ETAG_COLUMN) private String etag; diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java index e8504bc388..ced72920dc 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java @@ -30,6 +30,7 @@ import javax.persistence.Table; import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; @@ -61,6 +62,9 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen @Column(name = RESOURCE_ETAG_COLUMN) private String hashCode; + @Column(name = RESOURCE_FILE_NAME_COLUMN) + private String fileName; + public TbResourceInfoEntity() { } @@ -75,6 +79,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen this.resourceKey = resource.getResourceKey(); this.searchText = resource.getSearchText(); this.hashCode = resource.getEtag(); + this.fileName = resource.getFileName(); } @Override @@ -87,6 +92,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen resource.setResourceKey(resourceKey); resource.setSearchText(searchText); resource.setEtag(hashCode); + resource.setFileName(fileName); return resource; } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 7697217b6b..8bfb0ccfc5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -15,16 +15,17 @@ */ package org.thingsboard.server.dao.resource; +import com.datastax.oss.driver.api.core.uuid.Uuids; +import com.google.common.hash.Hashing; import com.google.common.util.concurrent.ListenableFuture; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hibernate.exception.ConstraintViolationException; import org.springframework.stereotype.Service; import org.springframework.transaction.event.TransactionalEventListener; -import org.thingsboard.server.cache.device.DeviceCacheKey; +import org.thingsboard.server.cache.resourceInfo.ResourceInfoCacheKey; import org.thingsboard.server.cache.resourceInfo.ResourceInfoEvictEvent; import org.thingsboard.server.common.data.EntityType; -import org.thingsboard.server.cache.resourceInfo.ResourceInfoCacheKey; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; @@ -43,6 +44,7 @@ import org.thingsboard.server.dao.service.Validator; import java.util.List; import java.util.Optional; +import java.util.UUID; import static org.thingsboard.server.dao.device.DeviceServiceImpl.INCORRECT_TENANT_ID; import static org.thingsboard.server.dao.service.Validator.validateId; @@ -59,9 +61,26 @@ public class BaseResourceService extends AbstractCachedEntityService tenantResourcesRemover = new PaginatedRemover<>() { diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java index d81c05044f..5773e49fc3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java @@ -128,8 +128,7 @@ public abstract class DataValidator> { EntityType entityType) { if (maxSumDataSize > 0) { if (dataDao.sumDataSizeByTenantId(tenantId) + currentDataSize > maxSumDataSize) { - throw new DataValidationException(String.format("Failed to create the %s, files size limit is exhausted %d bytes!", - entityType.name().toLowerCase().replaceAll("_", " "), maxSumDataSize)); + throw new DataValidationException(String.format("%ss total size exceeds the maximum of " + maxSumDataSize + " bytes", entityType.getNormalName())); } } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java index d620950628..3c6fc53e19 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java @@ -56,12 +56,28 @@ public class ResourceDataValidator extends DataValidator { @Override protected void validateCreate(TenantId tenantId, TbResource resource) { + if (resource.getData() == null || resource.getData().length == 0) { + throw new DataValidationException("Resource data should be specified"); + } if (tenantId != null && !TenantId.SYS_TENANT_ID.equals(tenantId)) { - DefaultTenantProfileConfiguration profileConfiguration = - (DefaultTenantProfileConfiguration) tenantProfileCache.get(tenantId).getProfileData().getConfiguration(); + DefaultTenantProfileConfiguration profileConfiguration = tenantProfileCache.get(tenantId).getDefaultProfileConfiguration(); + long maxResourceSize = profileConfiguration.getMaxResourceSize(); + if (maxResourceSize > 0 && resource.getData().length > maxResourceSize) { + throw new IllegalArgumentException("Resource exceeds the maximum size of " + maxResourceSize + " bytes"); + } long maxSumResourcesDataInBytes = profileConfiguration.getMaxResourcesInBytes(); - validateMaxSumDataSizePerTenant(tenantId, resourceDao, maxSumResourcesDataInBytes, resource.getData().length(), TB_RESOURCE); + validateMaxSumDataSizePerTenant(tenantId, resourceDao, maxSumResourcesDataInBytes, resource.getData().length, TB_RESOURCE); + } + } + + @Override + protected TbResource validateUpdate(TenantId tenantId, TbResource resource) { + if (!tenantId.isSysTenantId()) { + if (resource.getData() != null) { + throw new DataValidationException("Resource data can't be updated"); + } } + return resource; } @Override diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index 8a79c0cfde..2ec9c868e1 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -713,7 +713,7 @@ CREATE TABLE IF NOT EXISTS resource ( resource_key varchar(255) NOT NULL, search_text varchar(255), file_name varchar(255) NOT NULL, - data varchar, + data bytea, etag varchar, CONSTRAINT resource_unq_key UNIQUE (tenant_id, resource_type, resource_key) ); diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java index ce1a83514a..c7ae0aabb6 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java @@ -73,6 +73,7 @@ import org.thingsboard.server.dao.usagerecord.ApiUsageStateService; import org.thingsboard.server.dao.user.UserService; import org.thingsboard.server.dao.widget.WidgetsBundleService; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -615,7 +616,7 @@ public class TenantServiceTest extends AbstractServiceTest { resource.setResourceType(ResourceType.LWM2M_MODEL); resource.setFileName("filename.txt"); resource.setResourceKey("Test resource key"); - resource.setData("Some super test data"); + resource.setData("Some super test data".getBytes(StandardCharsets.UTF_8)); return resourceService.saveResource(resource); } diff --git a/ui-ngx/src/app/core/http/resource.service.ts b/ui-ngx/src/app/core/http/resource.service.ts index f7cb8441d1..76f28fbe45 100644 --- a/ui-ngx/src/app/core/http/resource.service.ts +++ b/ui-ngx/src/app/core/http/resource.service.ts @@ -42,10 +42,6 @@ export class ResourceService { return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } - public getResource(resourceId: string, config?: RequestConfig): Observable { - return this.http.get(`/api/resource/${resourceId}`, defaultHttpOptionsFromConfig(config)); - } - public getResourceInfo(resourceId: string, config?: RequestConfig): Observable { return this.http.get(`/api/resource/info/${resourceId}`, defaultHttpOptionsFromConfig(config)); } diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html index 8b225af53b..f2511bdcd9 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html @@ -386,6 +386,22 @@ +
+ + tenant-profile.maximum-resource-size + + + {{ 'tenant-profile.maximum-resource-size-required' | translate}} + + + {{ 'tenant-profile.maximum-resource-size-range' | translate}} + + + +
+
diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts index 5b48e02e07..7718cd4b2f 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts @@ -67,6 +67,7 @@ export class DefaultTenantProfileConfigurationComponent implements ControlValueA maxRuleChains: [null, [Validators.required, Validators.min(0)]], maxResourcesInBytes: [null, [Validators.required, Validators.min(0)]], maxOtaPackagesInBytes: [null, [Validators.required, Validators.min(0)]], + maxResourceSize: [null, [Validators.required, Validators.min(0)]], transportTenantMsgRateLimit: [null, []], transportTenantTelemetryMsgRateLimit: [null, []], transportTenantTelemetryDataPointsRateLimit: [null, []], diff --git a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library-table-config.resolve.ts b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library-table-config.resolve.ts index 733e5ef2b3..52ded64e29 100644 --- a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library-table-config.resolve.ts +++ b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library-table-config.resolve.ts @@ -84,7 +84,7 @@ export class ResourcesLibraryTableConfigResolver implements Resolve this.translate.instant('resource.delete-resources-text'); this.config.entitiesFetchFunction = pageLink => this.resourceService.getResources(pageLink, this.config.componentsData.resourceType); - this.config.loadEntity = id => this.resourceService.getResource(id.id); + this.config.loadEntity = id => this.resourceService.getResourceInfo(id.id); this.config.saveEntity = resource => this.saveResource(resource); this.config.deleteEntity = id => this.resourceService.deleteResource(id.id); diff --git a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html index f955d26f0d..cb7dbf9ddc 100644 --- a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html +++ b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html @@ -67,7 +67,7 @@ impleme this.entityForm.get('title').enable({emitEvent: false}); } this.entityForm.patchValue({ - data: null, + base64Data: null, fileName: null }, {emitEvent: false}); }); @@ -93,7 +93,7 @@ export class ResourcesLibraryComponent extends EntityComponent impleme title: [entity ? entity.title : '', [Validators.required, Validators.maxLength(255)]], resourceType: [entity?.resourceType ? entity.resourceType : ResourceType.JS_MODULE, Validators.required], fileName: [entity ? entity.fileName : null, Validators.required], - data: [entity ? entity.data : null, Validators.required] + base64Data: [entity ? entity.base64Data : null, Validators.required] }); } @@ -102,20 +102,20 @@ export class ResourcesLibraryComponent extends EntityComponent impleme this.entityForm.get('resourceType').disable({emitEvent: false}); if (entity.resourceType !== ResourceType.JS_MODULE) { this.entityForm.get('fileName').disable({emitEvent: false}); - this.entityForm.get('data').disable({emitEvent: false}); + this.entityForm.get('base64Data').disable({emitEvent: false}); } } this.entityForm.patchValue({ resourceType: entity.resourceType, fileName: entity.fileName, title: entity.title, - data: entity.data + base64Data: entity.base64Data }); } prepareFormValue(formValue: Resource): Resource { - if (this.isEdit && !isDefinedAndNotNull(formValue.data)) { - delete formValue.data; + if (this.isEdit && !isDefinedAndNotNull(formValue.base64Data)) { + delete formValue.base64Data; } return super.prepareFormValue(formValue); } diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index 6621f10c42..5c0d2c3ccc 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -57,14 +57,15 @@ export interface ResourceInfo extends Omit, 'name' | 'lab resourceKey?: string; title?: string; resourceType: ResourceType; + fileName: string; } export interface Resource extends ResourceInfo { - data: string; - fileName: string; + base64Data: string; name?: string; } +// @ts-ignore FIXME export interface Resources extends ResourceInfo { data: Array; fileName: Array; diff --git a/ui-ngx/src/app/shared/models/tenant.model.ts b/ui-ngx/src/app/shared/models/tenant.model.ts index 73b3d9de02..6cde443f62 100644 --- a/ui-ngx/src/app/shared/models/tenant.model.ts +++ b/ui-ngx/src/app/shared/models/tenant.model.ts @@ -33,6 +33,7 @@ export interface DefaultTenantProfileConfiguration { maxRuleChains: number; maxResourcesInBytes: number; maxOtaPackagesInBytes: number; + maxResourceSize: number; transportTenantMsgRateLimit?: string; transportTenantTelemetryMsgRateLimit?: string; @@ -101,6 +102,7 @@ export function createTenantProfileConfiguration(type: TenantProfileType): Tenan maxRuleChains: 0, maxResourcesInBytes: 0, maxOtaPackagesInBytes: 0, + maxResourceSize: 0, maxTransportMessages: 0, maxTransportDataPoints: 0, maxREExecutions: 0, diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index f5c09ce75f..745ac8ecb4 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -3948,7 +3948,7 @@ "rule-engine": "Rule Engine", "time-to-live": "Time-to-live", "alarms-and-notifications": "Alarms and notifications", - "ota-files-in-bytes": "OTA files in bytes", + "ota-files-in-bytes": "Files", "ws-title": "WS", "unlimited": "(0 - unlimited)", "maximum-devices": "Devices maximum number", @@ -3971,10 +3971,13 @@ "maximum-rule-chains-range": "Rule chains maximum number can't be negative", "maximum-resources-sum-data-size": "Resource files sum size", "maximum-resources-sum-data-size-required": "Resource files sum size is required.", - "maximum-resources-sum-data-size-range": "Resource files sum size can`t be negative", + "maximum-resources-sum-data-size-range": "Resource files sum size can't be negative", + "maximum-resource-size": "Resource maximum size", + "maximum-resource-size-required": "Resource maximum size is required", + "maximum-resource-size-range": "Resource maximum size can't be negative", "maximum-ota-packages-sum-data-size": "OTA package files sum size", "maximum-ota-package-sum-data-size-required": "OTA package files sum size is required.", - "maximum-ota-package-sum-data-size-range": "OTA package files sum size can`t be negative", + "maximum-ota-package-sum-data-size-range": "OTA package files sum size can't be negative", "rest-requests-for-tenant": "REST requests for tenant", "transport-tenant-telemetry-msg-rate-limit": "Transport tenant telemetry messages", "transport-tenant-telemetry-data-points-rate-limit": "Transport tenant telemetry data points", From 70eb9030c26a6a2de07ce4ba04e535ad368a64f1 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 1 Nov 2023 14:16:57 +0200 Subject: [PATCH 003/162] Image resources --- .../main/data/upgrade/3.6.1/schema_update.sql | 6 + .../server/controller/BaseController.java | 6 +- .../controller/TbResourceController.java | 44 +++++-- .../service/install/InstallScripts.java | 3 +- .../resource/DefaultTbResourceService.java | 109 +++++------------- .../service/resource/TbResourceService.java | 18 --- .../transport/DefaultTransportApiService.java | 7 +- .../controller/TbResourceControllerTest.java | 100 +++++++++++++++- .../sql/BaseTbResourceServiceTest.java | 53 +++++---- .../server/dao/resource/ResourceService.java | 5 +- .../server/common/data/ResourceType.java | 19 +-- .../server/common/data/TbResource.java | 2 +- .../server/common/data/TbResourceInfo.java | 6 + .../server/dao/model/ModelConstants.java | 2 + .../dao/model/sql/TbResourceEntity.java | 12 ++ .../dao/model/sql/TbResourceInfoEntity.java | 12 ++ .../dao/resource/BaseResourceService.java | 35 ++++-- .../server/dao/resource/TbResourceDao.java | 2 +- .../dao/resource/TbResourceInfoDao.java | 6 +- .../validator/ResourceDataValidator.java | 44 ++++--- .../dao/sql/resource/JpaTbResourceDao.java | 3 +- .../sql/resource/JpaTbResourceInfoDao.java | 5 + .../resource/TbResourceInfoRepository.java | 2 + .../main/resources/sql/schema-entities.sql | 2 + .../dao/service/OtaPackageServiceTest.java | 2 +- ui-ngx/src/app/core/http/resource.service.ts | 4 + .../src/app/shared/models/resource.models.ts | 17 ++- .../assets/locale/locale.constant-en_US.json | 3 +- 28 files changed, 335 insertions(+), 194 deletions(-) diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql index 5ebe39fb6e..7f5838f8bf 100644 --- a/application/src/main/data/upgrade/3.6.1/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -14,6 +14,8 @@ -- limitations under the License. -- +-- RESOURCES UPDATE START + DO $$ BEGIN @@ -25,3 +27,7 @@ $$ END IF; END; $$; +ALTER TABLE resource ADD COLUMN IF NOT EXISTS media_type varchar(255); +ALTER TABLE resource ADD COLUMN IF NOT EXISTS link varchar(255); + +-- RESOURCES UPDATE END diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index 365f1fc379..8226610a7d 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -124,6 +124,7 @@ import org.thingsboard.server.dao.oauth2.OAuth2Service; import org.thingsboard.server.dao.ota.OtaPackageService; import org.thingsboard.server.dao.queue.QueueService; import org.thingsboard.server.dao.relation.RelationService; +import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.rpc.RpcService; import org.thingsboard.server.dao.rule.RuleChainService; import org.thingsboard.server.dao.service.ConstraintValidator; @@ -145,7 +146,6 @@ import org.thingsboard.server.service.entitiy.user.TbUserSettingsService; import org.thingsboard.server.service.ota.OtaPackageStateService; import org.thingsboard.server.service.profile.TbAssetProfileCache; import org.thingsboard.server.service.profile.TbDeviceProfileCache; -import org.thingsboard.server.service.resource.TbResourceService; import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.permission.AccessControlService; import org.thingsboard.server.service.security.permission.Operation; @@ -272,7 +272,7 @@ public abstract class BaseController { protected PartitionService partitionService; @Autowired - protected TbResourceService resourceService; + protected ResourceService resourceService; @Autowired protected OtaPackageService otaPackageService; @@ -587,7 +587,7 @@ public abstract class BaseController { checkWidgetTypeId(new WidgetTypeId(entityId.getId()), operation); return; case TB_RESOURCE: - checkResourceId(new TbResourceId(entityId.getId()), operation); + checkResourceInfoId(new TbResourceId(entityId.getId()), operation); return; case OTA_PACKAGE: checkOtaPackageId(new OtaPackageId(entityId.getId()), operation); diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index de18849b3a..9874db3002 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -44,6 +44,7 @@ import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfoFilter; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.lwm2m.LwM2mObject; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; @@ -55,6 +56,7 @@ import org.thingsboard.server.service.security.permission.Resource; import java.util.Base64; import java.util.List; +import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.AVAILABLE_FOR_ANY_AUTHORIZED_USER; import static org.thingsboard.server.controller.ControllerConstants.LWM2M_OBJECT_DESCRIPTION; @@ -107,6 +109,24 @@ public class TbResourceController extends BaseController { .body(resource); } + @ApiOperation(value = "Download Image (downloadImageIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @GetMapping(value = "/images/{tenantId}/{resourceKey}", produces = "image/*") + @ResponseBody + public ResponseEntity downloadImageIfChanged(@PathVariable("tenantId") String tenantIdStr, + @PathVariable("resourceKey") String resourceKey, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + TenantId tenantId; + if (tenantIdStr.equals("system")) { + tenantId = TenantId.SYS_TENANT_ID; + } else { + tenantId = TenantId.fromUUID(toUUID(tenantIdStr)); + } + return downloadResourceIfChanged(ResourceType.IMAGE, etag, + () -> resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey), + () -> resourceService.findResourceByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey)); + } + @ApiOperation(value = "Download LWM2M Resource (downloadLwm2mResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/lwm2m/{resourceId}/download", produces = "application/xml") @@ -249,7 +269,7 @@ public class TbResourceController extends BaseController { @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) @RequestParam(required = false) String sortOrder) throws ThingsboardException { PageLink pageLink = new PageLink(pageSize, page, textSearch); - return checkNotNull(resourceService.findLwM2mObjectPage(getTenantId(), sortProperty, sortOrder, pageLink)); + return checkNotNull(tbResourceService.findLwM2mObjectPage(getTenantId(), sortProperty, sortOrder, pageLink)); } @ApiOperation(value = "Get LwM2M Objects (getLwm2mListObjects)", @@ -265,7 +285,7 @@ public class TbResourceController extends BaseController { @RequestParam String sortProperty, @ApiParam(value = "LwM2M Object ids.", required = true) @RequestParam(required = false) String[] objectIds) throws ThingsboardException { - return checkNotNull(resourceService.findLwM2mObject(getTenantId(), sortOrder, sortProperty, objectIds)); + return checkNotNull(tbResourceService.findLwM2mObject(getTenantId(), sortOrder, sortProperty, objectIds)); } @ApiOperation(value = "Delete Resource (deleteResource)", @@ -281,12 +301,21 @@ public class TbResourceController extends BaseController { tbResourceService.delete(tbResource, getCurrentUser()); } - private ResponseEntity downloadResourceIfChanged(ResourceType type, String strResourceId, String etag) throws ThingsboardException { + private ResponseEntity downloadResourceIfChanged(ResourceType resourceType, String strResourceId, String etag) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); + TenantId tenantId = getTenantId(); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); + return downloadResourceIfChanged(resourceType, etag, + () -> resourceService.findResourceInfoById(tenantId, resourceId), + () -> resourceService.findResourceById(tenantId, resourceId)); + } + private ResponseEntity downloadResourceIfChanged(ResourceType resourceType, String etag, + Supplier resourceInfoSupplier, + Supplier resourceSupplier) throws ThingsboardException { if (etag != null) { - TbResourceInfo tbResourceInfo = checkResourceInfoId(resourceId, Operation.READ); + TbResourceInfo tbResourceInfo = resourceInfoSupplier.get(); + checkEntity(getCurrentUser(), tbResourceInfo, Operation.READ); if (etag.equals(tbResourceInfo.getEtag())) { return ResponseEntity.status(HttpStatus.NOT_MODIFIED) .eTag(tbResourceInfo.getEtag()) @@ -294,14 +323,15 @@ public class TbResourceController extends BaseController { } } - TbResource tbResource = checkResourceId(resourceId, Operation.READ); - ByteArrayResource resource = new ByteArrayResource(tbResource.getData()); + TbResource tbResource = resourceSupplier.get(); + checkEntity(getCurrentUser(), tbResource, Operation.READ); + ByteArrayResource resource = new ByteArrayResource(tbResource.getData()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + tbResource.getFileName()) .header("x-filename", tbResource.getFileName()) .contentLength(resource.contentLength()) - .header("Content-Type", type.getMediaType()) + .header("Content-Type", tbResource.getMediaType() != null ? tbResource.getMediaType() : resourceType.getDefaultMediaType()) .cacheControl(CacheControl.noCache()) .eTag(tbResource.getEtag()) .body(resource); diff --git a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java index 00627e0421..49f487ebf0 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java +++ b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java @@ -333,8 +333,7 @@ public class InstallScripts { throw new DataValidationException("Resource data should be specified!"); } toLwm2mResource(resource); - TbResource foundResource = - resourceService.getResource(TenantId.SYS_TENANT_ID, ResourceType.LWM2M_MODEL, resource.getResourceKey()); + TbResource foundResource = resourceService.findResourceByTenantIdAndKey(TenantId.SYS_TENANT_ID, ResourceType.LWM2M_MODEL, resource.getResourceKey()); if (foundResource == null) { resourceService.saveResource(resource); } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java index d1ce667345..2cdbd8d7e2 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java @@ -15,13 +15,12 @@ */ package org.thingsboard.server.service.resource; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; -import org.thingsboard.server.common.data.TbResourceInfo; -import org.thingsboard.server.common.data.TbResourceInfoFilter; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.exception.ThingsboardException; @@ -31,7 +30,6 @@ import org.thingsboard.server.common.data.lwm2m.LwM2mObject; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.resource.ResourceService; -import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.entitiy.AbstractTbEntityService; @@ -48,39 +46,45 @@ import static org.thingsboard.server.utils.LwM2mObjectModelUtils.toLwm2mResource @Slf4j @Service @TbCoreComponent +@RequiredArgsConstructor public class DefaultTbResourceService extends AbstractTbEntityService implements TbResourceService { private final ResourceService resourceService; - private final WidgetTypeService widgetTypeService; - - public DefaultTbResourceService(ResourceService resourceService, WidgetTypeService widgetTypeService) { - this.resourceService = resourceService; - this.widgetTypeService = widgetTypeService; - } - - @Override - public TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId) { - return resourceService.getResource(tenantId, resourceType, resourceId); - } @Override - public TbResource findResourceById(TenantId tenantId, TbResourceId resourceId) { - return resourceService.findResourceById(tenantId, resourceId); - } - - @Override - public TbResourceInfo findResourceInfoById(TenantId tenantId, TbResourceId resourceId) { - return resourceService.findResourceInfoById(tenantId, resourceId); - } - - @Override - public PageData findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { - return resourceService.findAllTenantResourcesByTenantId(filter, pageLink); + public TbResource save(TbResource resource, User user) throws ThingsboardException { + ActionType actionType = resource.getId() == null ? ActionType.ADDED : ActionType.UPDATED; + TenantId tenantId = resource.getTenantId(); + try { + if (ResourceType.LWM2M_MODEL.equals(resource.getResourceType())) { + toLwm2mResource(resource); + } else if (resource.getResourceKey() == null) { + resource.setResourceKey(resource.getFileName()); + } + TbResource savedResource = resourceService.saveResource(resource); + tbClusterService.onResourceChange(savedResource, null); + notificationEntityService.logEntityAction(tenantId, savedResource.getId(), savedResource, actionType, user); + return savedResource; + } catch (Exception e) { + notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), + resource, actionType, user, e); + throw e; + } } @Override - public PageData findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { - return resourceService.findTenantResourcesByTenantId(filter, pageLink); + public void delete(TbResource tbResource, User user) { + TbResourceId resourceId = tbResource.getId(); + TenantId tenantId = tbResource.getTenantId(); + try { + resourceService.deleteResource(tenantId, resourceId); + tbClusterService.onResourceDeleted(tbResource, null); + notificationEntityService.logEntityAction(tenantId, resourceId, tbResource, ActionType.DELETED, user, resourceId.toString()); + } catch (Exception e) { + notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), + ActionType.DELETED, user, e, resourceId.toString()); + throw e; + } } @Override @@ -106,16 +110,6 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements .collect(Collectors.toList()); } - @Override - public void deleteResourcesByTenantId(TenantId tenantId) { - resourceService.deleteResourcesByTenantId(tenantId); - } - - @Override - public long sumDataSizeByTenantId(TenantId tenantId) { - return resourceService.sumDataSizeByTenantId(tenantId); - } - private Comparator getComparator(String sortProperty, String sortOrder) { Comparator comparator; if ("name".equals(sortProperty)) { @@ -126,43 +120,4 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements return "DESC".equals(sortOrder) ? comparator.reversed() : comparator; } - @Override - public TbResource save(TbResource tbResource, User user) throws ThingsboardException { - ActionType actionType = tbResource.getId() == null ? ActionType.ADDED : ActionType.UPDATED; - TenantId tenantId = tbResource.getTenantId(); - try { - TbResource savedResource = checkNotNull(doSave(tbResource)); - tbClusterService.onResourceChange(savedResource, null); - notificationEntityService.logEntityAction(tenantId, savedResource.getId(), savedResource, actionType, user); - return savedResource; - } catch (Exception e) { - notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), - tbResource, actionType, user, e); - throw e; - } - } - - @Override - public void delete(TbResource tbResource, User user) { - TbResourceId resourceId = tbResource.getId(); - TenantId tenantId = tbResource.getTenantId(); - try { - resourceService.deleteResource(tenantId, resourceId); - tbClusterService.onResourceDeleted(tbResource, null); - notificationEntityService.logEntityAction(tenantId, resourceId, tbResource, ActionType.DELETED, user, resourceId.toString()); - } catch (Exception e) { - notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), - ActionType.DELETED, user, e, resourceId.toString()); - throw e; - } - } - - private TbResource doSave(TbResource resource) throws ThingsboardException { - if (ResourceType.LWM2M_MODEL.equals(resource.getResourceType())) { - toLwm2mResource(resource); - } else { - resource.setResourceKey(resource.getFileName()); - } - return resourceService.saveResource(resource); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java index 40fe7dda9a..e6dbc0f071 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java @@ -15,14 +15,9 @@ */ package org.thingsboard.server.service.resource; -import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; -import org.thingsboard.server.common.data.TbResourceInfo; -import org.thingsboard.server.common.data.TbResourceInfoFilter; -import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.lwm2m.LwM2mObject; -import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.service.entitiy.SimpleTbEntityService; @@ -30,16 +25,6 @@ import java.util.List; public interface TbResourceService extends SimpleTbEntityService { - TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceKey); - - TbResource findResourceById(TenantId tenantId, TbResourceId resourceId); - - TbResourceInfo findResourceInfoById(TenantId tenantId, TbResourceId resourceId); - - PageData findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); - - PageData findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); - List findLwM2mObject(TenantId tenantId, String sortOrder, String sortProperty, @@ -50,7 +35,4 @@ public interface TbResourceService extends SimpleTbEntityService { String sortOrder, PageLink pageLink); - void deleteResourcesByTenantId(TenantId tenantId); - - long sumDataSizeByTenantId(TenantId tenantId); } diff --git a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java index 89a7480708..d197e1b4a4 100644 --- a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java +++ b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java @@ -77,6 +77,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; import org.thingsboard.server.dao.ota.OtaPackageService; import org.thingsboard.server.dao.queue.QueueService; import org.thingsboard.server.dao.relation.RelationService; +import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.gen.transport.TransportProtos.DeviceInfoProto; @@ -139,7 +140,7 @@ public class DefaultTransportApiService implements TransportApiService { private final TbClusterService tbClusterService; private final DataDecodingEncodingService dataDecodingEncodingService; private final DeviceProvisionService deviceProvisionService; - private final TbResourceService resourceService; + private final ResourceService resourceService; private final OtaPackageService otaPackageService; private final OtaPackageDataCache otaPackageDataCache; private final QueueService queueService; @@ -489,10 +490,10 @@ public class DefaultTransportApiService implements TransportApiService { ResourceType resourceType = ResourceType.valueOf(requestMsg.getResourceType()); String resourceKey = requestMsg.getResourceKey(); TransportProtos.GetResourceResponseMsg.Builder builder = TransportProtos.GetResourceResponseMsg.newBuilder(); - TbResource resource = resourceService.getResource(tenantId, resourceType, resourceKey); + TbResource resource = resourceService.findResourceByTenantIdAndKey(tenantId, resourceType, resourceKey); if (resource == null && !tenantId.equals(TenantId.SYS_TENANT_ID)) { - resource = resourceService.getResource(TenantId.SYS_TENANT_ID, resourceType, resourceKey); + resource = resourceService.findResourceByTenantIdAndKey(TenantId.SYS_TENANT_ID, resourceType, resourceKey); } if (resource != null) { diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index 0e05165c77..d4c21c63fc 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -47,17 +47,13 @@ import java.util.Base64; import java.util.Collections; import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.containsString; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @DaoSqlTest public class TbResourceControllerTest extends AbstractControllerTest { - /* - * TODO: - * test maxResourceSize limit in tenant profile - * */ - private IdComparator idComparator = new IdComparator<>(); private static final String DEFAULT_FILE_NAME = "test.jks"; @@ -621,6 +617,100 @@ public class TbResourceControllerTest extends AbstractControllerTest { .andExpect(status().isForbidden()); } + @Test + public void testUpdateResourceData_nonUpdatableResourceType() throws Exception { + TbResource resource = new TbResource(); + resource.setResourceType(ResourceType.IMAGE); + resource.setTitle("My resource"); + resource.setFileName("image.png"); + resource.setMediaType("image/png"); + resource.setBase64Data(TEST_DATA); + TbResource savedResource = save(resource); + resource.setEtag(savedResource.getEtag()); + + savedResource.setBase64Data(TEST_DATA); + doPost("/api/resource", savedResource) + .andExpect(status().isBadRequest()) + .andExpect(statusReason(containsString("can't be updated"))); + + savedResource.setBase64Data(null); + savedResource.setTitle("Updated resource"); + savedResource = doPost("/api/resource", savedResource, TbResource.class); + assertThat(savedResource.getTitle()).isEqualTo("Updated resource"); + assertThat(savedResource.getFileName()).isEqualTo(resource.getFileName()); + assertThat(savedResource.getMediaType()).isEqualTo(resource.getMediaType()); + assertThat(savedResource.getEtag()).isEqualTo(resource.getEtag()); + assertThat(download(savedResource.getId())).asBase64Encoded().isEqualTo(TEST_DATA); + } + + @Test + public void testUpdateResourceData_updatableResourceType() throws Exception { + TbResource resource = new TbResource(); + resource.setResourceType(ResourceType.JS_MODULE); + resource.setTitle("My resource"); + resource.setFileName("module.js"); + resource.setBase64Data(TEST_DATA); + TbResource savedResource = save(resource); + resource.setEtag(savedResource.getEtag()); + + String newData = Base64.getEncoder().encodeToString(new byte[]{1, 2, 3}); + savedResource.setBase64Data(newData); + savedResource.setFileName("new-module.js"); + savedResource.setTitle("Updated title"); + savedResource = save(savedResource); + + assertThat(savedResource.getTitle()).isEqualTo("Updated title"); + assertThat(savedResource.getFileName()).isEqualTo("new-module.js"); + assertThat(savedResource.getEtag()).isNotEqualTo(resource.getEtag()); + assertThat(download(savedResource.getId())).asBase64Encoded().isEqualTo(newData); + } + + @Test + public void testSaveImage_systemLevel() throws Exception { + loginSysAdmin(); + TbResource resource = new TbResource(); + resource.setResourceType(ResourceType.IMAGE); + resource.setTitle("System image"); + resource.setFileName("image.png"); + resource.setMediaType("image/png"); + resource.setBase64Data(TEST_DATA); + + TbResource savedResource = save(resource); + assertThat(savedResource.getLink()).isEqualTo("/api/images/system/image.png"); + + loginTenantAdmin(); + MockHttpServletResponse imageResponse = doGet(savedResource.getLink()).andExpect(status().isOk()) + .andReturn().getResponse(); + assertThat(imageResponse.getContentAsByteArray()) + .isEqualTo(download(savedResource.getId())) + .isEqualTo(Base64.getDecoder().decode(TEST_DATA)); + assertThat(imageResponse.getContentType()).isEqualTo("image/png"); + } + + @Test + public void testSaveImage_tenantLevel() throws Exception { + loginTenantAdmin(); + TbResource resource = new TbResource(); + resource.setResourceType(ResourceType.IMAGE); + resource.setTitle("My image"); + resource.setFileName("image.jpg"); + resource.setMediaType("image/jpeg"); + resource.setBase64Data(TEST_DATA); + + TbResource savedResource = save(resource); + assertThat(savedResource.getLink()).isEqualTo("/api/images/" + tenantId + "/image.jpg"); + + MockHttpServletResponse imageResponse = doGet(savedResource.getLink()).andExpect(status().isOk()) + .andReturn().getResponse(); + assertThat(imageResponse.getContentAsByteArray()) + .isEqualTo(download(savedResource.getId())) + .isEqualTo(Base64.getDecoder().decode(TEST_DATA)); + assertThat(imageResponse.getContentType()).isEqualTo("image/jpeg"); + + loginDifferentTenant(); + doGet(savedResource.getLink()).andExpect(status().isForbidden()); + } + private TbResource save(TbResource tbResource) throws Exception { return doPostWithTypedResponse("/api/resource", tbResource, new TypeReference<>(){}); } diff --git a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java index ab55840f3c..e441a0b144 100644 --- a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java @@ -38,6 +38,7 @@ import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; import org.thingsboard.server.controller.AbstractControllerTest; import org.thingsboard.server.dao.exception.DataValidationException; +import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.service.DaoSqlTest; import org.thingsboard.server.service.resource.TbResourceService; @@ -115,7 +116,9 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { private TenantId tenantId; @Autowired - private TbResourceService resourceService; + private ResourceService resourceService; + @Autowired + private TbResourceService tbResourceService; private Tenant savedTenant; private User tenantAdmin; @@ -207,7 +210,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName(filename); byte[] b = new byte[]{1, 2, 3, 4}; resource.setBase64Data(Base64.getEncoder().encodeToString(b)); - return resourceService.save(resource); + return tbResourceService.save(resource); } @Test @@ -219,7 +222,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); Assert.assertNotNull(savedResource); Assert.assertNotNull(savedResource.getId()); @@ -233,12 +236,12 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { savedResource.setBase64Data(null); savedResource.setData(null); - resourceService.save(savedResource); + tbResourceService.save(savedResource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); assertEquals(foundResource.getTitle(), savedResource.getTitle()); assertArrayEquals(foundResource.getData(), TEST_DATA); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } @Test @@ -249,7 +252,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName("test_model.xml"); resource.setBase64Data(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes())); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); Assert.assertNotNull(savedResource); Assert.assertNotNull(savedResource.getId()); @@ -259,7 +262,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { assertEquals("0_1.0", savedResource.getResourceKey()); assertArrayEquals(savedResource.getData(), LWM2M_TEST_MODEL.getBytes()); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } @Test @@ -269,11 +272,11 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId()); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } @Test @@ -285,7 +288,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); TbResource resource2 = new TbResource(); resource.setTenantId(tenantId); @@ -296,10 +299,10 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { try { Assertions.assertThrows(DataValidationException.class, () -> { - resourceService.save(resource2); + tbResourceService.save(resource2); }); } finally { - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } } @@ -311,7 +314,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); Assertions.assertThrows(DataValidationException.class, () -> { - resourceService.save(resource); + tbResourceService.save(resource); }); } @@ -324,7 +327,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); Assertions.assertThrows(DataValidationException.class, () -> { - resourceService.save(resource); + tbResourceService.save(resource); }); } @@ -337,7 +340,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setData(LWM2M_TEST_MODEL_WITH_XXE.getBytes()); DataValidationException thrown = assertThrows(DataValidationException.class, () -> { - resourceService.save(resource); + tbResourceService.save(resource); }); assertEquals("Failed to parse file xxe_test_model.xml", thrown.getMessage()); } @@ -350,12 +353,12 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); Assert.assertNotNull(foundResource); assertEquals(savedResource, foundResource); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } @Test @@ -366,12 +369,12 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); - TbResource foundResource = resourceService.getResource(tenantId, savedResource.getResourceType(), savedResource.getResourceKey()); + TbResource foundResource = resourceService.findResourceByTenantIdAndKey(tenantId, savedResource.getResourceType(), savedResource.getResourceKey()); Assert.assertNotNull(foundResource); assertEquals(savedResource, foundResource); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); } @Test @@ -381,11 +384,11 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResource savedResource = resourceService.save(resource); + TbResource savedResource = tbResourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); Assert.assertNotNull(foundResource); - resourceService.delete(savedResource, null); + tbResourceService.delete(savedResource, null); foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); Assert.assertNull(foundResource); } @@ -407,7 +410,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - resources.add(new TbResourceInfo(resourceService.save(resource))); + resources.add(new TbResourceInfo(tbResourceService.save(resource))); } List loadedResources = new ArrayList<>(); @@ -461,7 +464,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - TbResourceInfo tbResourceInfo = new TbResourceInfo(resourceService.save(resource)); + TbResourceInfo tbResourceInfo = new TbResourceInfo(tbResourceService.save(resource)); if (i >= 50) { resources.add(tbResourceInfo); } @@ -474,7 +477,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); resource.setBase64Data(TEST_BASE64_DATA); - resources.add(new TbResourceInfo(resourceService.save(resource))); + resources.add(new TbResourceInfo(tbResourceService.save(resource))); } List loadedResources = new ArrayList<>(); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 6f0e362209..c1ce27c266 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -32,12 +32,14 @@ public interface ResourceService extends EntityDaoService { TbResource saveResource(TbResource resource); - TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId); + TbResource findResourceByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceId); TbResource findResourceById(TenantId tenantId, TbResourceId resourceId); TbResourceInfo findResourceInfoById(TenantId tenantId, TbResourceId resourceId); + TbResourceInfo findResourceInfoByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey); + ListenableFuture findResourceInfoByIdAsync(TenantId tenantId, TbResourceId resourceId); PageData findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); @@ -53,4 +55,5 @@ public interface ResourceService extends EntityDaoService { void deleteResourcesByTenantId(TenantId tenantId); long sumDataSizeByTenantId(TenantId tenantId); + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java index 3c2b9a4bc0..9ea39c43fd 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java @@ -16,20 +16,21 @@ package org.thingsboard.server.common.data; import lombok.Getter; +import lombok.RequiredArgsConstructor; +@RequiredArgsConstructor public enum ResourceType { - LWM2M_MODEL("application/xml", false), - JKS("application/x-java-keystore", false), - PKCS_12("application/x-pkcs12", false), - JS_MODULE("application/javascript", true); + LWM2M_MODEL("application/xml", false, false), + JKS("application/x-java-keystore", false, false), + PKCS_12("application/x-pkcs12", false, false), + JS_MODULE("application/javascript", true, true), + IMAGE(null, true, false); @Getter - private final String mediaType; + private final String defaultMediaType; @Getter private final boolean customerAccess; + @Getter + private final boolean updatable; - ResourceType(String mediaType, boolean customerAccess) { - this.mediaType = mediaType; - this.customerAccess = customerAccess; - } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java index d003328418..7c44943deb 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java @@ -31,9 +31,9 @@ public class TbResource extends TbResourceInfo { private static final long serialVersionUID = 7379609705527272306L; + @ApiModelProperty(position = 12, value = "Resource data.", example = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=", accessMode = ApiModelProperty.AccessMode.READ_WRITE) private String base64Data; - @ApiModelProperty(position = 9, value = "Resource data.", example = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=", accessMode = ApiModelProperty.AccessMode.READ_ONLY) @JsonIgnore private byte[] data; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 9d83d5922e..102029814f 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -54,6 +54,10 @@ public class TbResourceInfo extends BaseData implements HasName, H @Length(fieldName = "file name") @ApiModelProperty(position = 9, value = "Resource file name.", example = "19.xml", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String fileName; + @ApiModelProperty(position = 10, value = "Resource media type.", example = "image/png", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + private String mediaType; + @ApiModelProperty(position = 11, value = "Resource link (for IMAGE resource type).", example = "/api/images/system/my-image.png", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + private String link; public TbResourceInfo() { super(); @@ -72,6 +76,8 @@ public class TbResourceInfo extends BaseData implements HasName, H this.searchText = resourceInfo.searchText; this.etag = resourceInfo.etag; this.fileName = resourceInfo.fileName; + this.mediaType = resourceInfo.mediaType; + this.link = resourceInfo.link; } @ApiModelProperty(position = 1, value = "JSON object with the Resource Id. " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 527cbb8957..c5f6d839a0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -498,6 +498,8 @@ public class ModelConstants { public static final String RESOURCE_FILE_NAME_COLUMN = "file_name"; public static final String RESOURCE_DATA_COLUMN = "data"; public static final String RESOURCE_ETAG_COLUMN = "etag"; + public static final String RESOURCE_MEDIA_TYPE_COLUMN = "media_type"; + public static final String RESOURCE_LINK_COLUMN = "link"; /** * Ota Package constants. diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java index 502477699b..6a366c7621 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java @@ -33,6 +33,8 @@ import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DATA_COLU import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_LINK_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TITLE_COLUMN; @@ -69,6 +71,12 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE @Column(name = RESOURCE_ETAG_COLUMN) private String etag; + @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) + private String mediaType; + + @Column(name = RESOURCE_LINK_COLUMN) + private String link; + public TbResourceEntity() { } @@ -87,6 +95,8 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE this.fileName = resource.getFileName(); this.data = resource.getData(); this.etag = resource.getEtag(); + this.mediaType = resource.getMediaType(); + this.link = resource.getLink(); } @Override @@ -101,6 +111,8 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE resource.setFileName(fileName); resource.setData(data); resource.setEtag(etag); + resource.setMediaType(mediaType); + resource.setLink(link); return resource; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java index ced72920dc..c8d962c9af 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java @@ -32,6 +32,8 @@ import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_LINK_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TITLE_COLUMN; @@ -65,6 +67,12 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen @Column(name = RESOURCE_FILE_NAME_COLUMN) private String fileName; + @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) + private String mediaType; + + @Column(name = RESOURCE_LINK_COLUMN) + private String link; + public TbResourceInfoEntity() { } @@ -80,6 +88,8 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen this.searchText = resource.getSearchText(); this.hashCode = resource.getEtag(); this.fileName = resource.getFileName(); + this.mediaType = resource.getMediaType(); + this.link = resource.getLink(); } @Override @@ -93,6 +103,8 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen resource.setSearchText(searchText); resource.setEtag(hashCode); resource.setFileName(fileName); + resource.setMediaType(mediaType); + resource.setLink(link); return resource; } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 8bfb0ccfc5..5585580a8a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -38,9 +38,9 @@ import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.entity.AbstractCachedEntityService; import org.thingsboard.server.dao.exception.DataValidationException; -import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.Validator; +import org.thingsboard.server.dao.service.validator.ResourceDataValidator; import java.util.List; import java.util.Optional; @@ -57,14 +57,12 @@ public class BaseResourceService extends AbstractCachedEntityService resourceValidator; + private final ResourceDataValidator resourceValidator; @Override public TbResource saveResource(TbResource resource) { log.trace("Executing saveResource [{}]", resource); - if (resource.getData() != null) { - resource.setEtag(calculateEtag(resource.getData())); - } + TenantId tenantId = resource.getTenantId(); resourceValidator.validate(resource, TbResourceInfo::getTenantId); boolean newResource = resource.getId() == null; @@ -73,18 +71,26 @@ public class BaseResourceService extends AbstractCachedEntityService resourceInfoDao.findById(tenantId, resourceId.getId()), true); } + @Override + public TbResourceInfo findResourceInfoByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey) { + log.trace("Executing findResourceInfoByTenantIdAndKey [{}] [{}] [{}]", tenantId, resourceType, resourceKey); + // TODO: add caching + return resourceInfoDao.findByTenantIdAndKey(tenantId, resourceType, resourceKey); + } + @Override public ListenableFuture findResourceInfoByIdAsync(TenantId tenantId, TbResourceId resourceId) { log.trace("Executing findResourceInfoById [{}] [{}]", tenantId, resourceId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java index 4117563805..f3cc299721 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java @@ -27,7 +27,7 @@ import java.util.List; public interface TbResourceDao extends Dao, TenantEntityWithDataDao { - TbResource getResource(TenantId tenantId, ResourceType resourceType, String resourceId); + TbResource findResourceByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceId); PageData findAllByTenantId(TenantId tenantId, PageLink pageLink); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java index f0f0b6fdad..2354217f1c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java @@ -15,18 +15,20 @@ */ package org.thingsboard.server.dao.resource; +import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfoFilter; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.Dao; -import java.util.UUID; - public interface TbResourceInfoDao extends Dao { PageData findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); PageData findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); + TbResourceInfo findByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java index 3c6fc53e19..fec5f8cc6e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java @@ -17,6 +17,8 @@ package org.thingsboard.server.dao.service.validator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.http.InvalidMediaTypeException; +import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -26,7 +28,6 @@ import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileCon import org.thingsboard.server.common.data.widget.BaseWidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.dao.exception.DataValidationException; -import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.resource.TbResourceDao; import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.tenant.TbTenantProfileCache; @@ -59,23 +60,12 @@ public class ResourceDataValidator extends DataValidator { if (resource.getData() == null || resource.getData().length == 0) { throw new DataValidationException("Resource data should be specified"); } - if (tenantId != null && !TenantId.SYS_TENANT_ID.equals(tenantId)) { - DefaultTenantProfileConfiguration profileConfiguration = tenantProfileCache.get(tenantId).getDefaultProfileConfiguration(); - long maxResourceSize = profileConfiguration.getMaxResourceSize(); - if (maxResourceSize > 0 && resource.getData().length > maxResourceSize) { - throw new IllegalArgumentException("Resource exceeds the maximum size of " + maxResourceSize + " bytes"); - } - long maxSumResourcesDataInBytes = profileConfiguration.getMaxResourcesInBytes(); - validateMaxSumDataSizePerTenant(tenantId, resourceDao, maxSumResourcesDataInBytes, resource.getData().length, TB_RESOURCE); - } } @Override protected TbResource validateUpdate(TenantId tenantId, TbResource resource) { - if (!tenantId.isSysTenantId()) { - if (resource.getData() != null) { - throw new DataValidationException("Resource data can't be updated"); - } + if (resource.getData() != null && !resource.getResourceType().isUpdatable()) { + throw new DataValidationException("This type of resource can't be updated"); } return resource; } @@ -86,6 +76,28 @@ public class ResourceDataValidator extends DataValidator { if (resource.getResourceType() == null) { throw new DataValidationException("Resource type should be specified!"); } + if (tenantId != null && !tenantId.isSysTenantId() && resource.getData() != null) { + DefaultTenantProfileConfiguration profileConfiguration = tenantProfileCache.get(tenantId).getDefaultProfileConfiguration(); + long maxResourceSize = profileConfiguration.getMaxResourceSize(); + if (maxResourceSize > 0 && resource.getData().length > maxResourceSize) { + throw new IllegalArgumentException("Resource exceeds the maximum size of " + maxResourceSize + " bytes"); + } + long maxSumResourcesDataInBytes = profileConfiguration.getMaxResourcesInBytes(); + validateMaxSumDataSizePerTenant(tenantId, resourceDao, maxSumResourcesDataInBytes, resource.getData().length, TB_RESOURCE); + } + if (resource.getResourceType().getDefaultMediaType() != null) { + resource.setMediaType(resource.getResourceType().getDefaultMediaType()); + } else { + if (resource.getMediaType() == null) { + throw new DataValidationException("Media type is required"); + } else { + try { + MediaType.parseMediaType(resource.getMediaType()); + } catch (InvalidMediaTypeException e) { + throw new DataValidationException("Invalid media type", e); + } + } + } if (StringUtils.isEmpty(resource.getFileName())) { throw new DataValidationException("Resource file name should be specified!"); } @@ -93,9 +105,9 @@ public class ResourceDataValidator extends DataValidator { throw new DataValidationException("Resource key should be specified!"); } if (resource.getTenantId() == null) { - resource.setTenantId(TenantId.fromUUID(ModelConstants.NULL_UUID)); + resource.setTenantId(TenantId.SYS_TENANT_ID); } - if (!resource.getTenantId().getId().equals(ModelConstants.NULL_UUID)) { + if (!resource.getTenantId().isSysTenantId()) { if (!tenantService.tenantExists(resource.getTenantId())) { throw new DataValidationException("Resource is referencing to non-existent tenant!"); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java index 641fda927b..36fa05e00e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java @@ -56,8 +56,7 @@ public class JpaTbResourceDao extends JpaAbstractDao createAndSaveFirmware(tenantId, "2")) .isInstanceOf(DataValidationException.class) - .hasMessageContaining("Failed to create the ota package, files size limit is exhausted %d bytes!", DATA_SIZE); + .hasMessageContaining("Ota packages total size exceeds the maximum of %d bytes", DATA_SIZE); } @Test diff --git a/ui-ngx/src/app/core/http/resource.service.ts b/ui-ngx/src/app/core/http/resource.service.ts index 76f28fbe45..f7cb8441d1 100644 --- a/ui-ngx/src/app/core/http/resource.service.ts +++ b/ui-ngx/src/app/core/http/resource.service.ts @@ -42,6 +42,10 @@ export class ResourceService { return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } + public getResource(resourceId: string, config?: RequestConfig): Observable { + return this.http.get(`/api/resource/${resourceId}`, defaultHttpOptionsFromConfig(config)); + } + public getResourceInfo(resourceId: string, config?: RequestConfig): Observable { return this.http.get(`/api/resource/info/${resourceId}`, defaultHttpOptionsFromConfig(config)); } diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index 5c0d2c3ccc..b9a73a416c 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -22,7 +22,8 @@ export enum ResourceType { LWM2M_MODEL = 'LWM2M_MODEL', PKCS_12 = 'PKCS_12', JKS = 'JKS', - JS_MODULE = 'JS_MODULE' + JS_MODULE = 'JS_MODULE', + IMAGE = 'IMAGE' } export const ResourceTypeMIMETypes = new Map( @@ -30,7 +31,8 @@ export const ResourceTypeMIMETypes = new Map( [ResourceType.LWM2M_MODEL, 'application/xml,text/xml'], [ResourceType.PKCS_12, 'application/x-pkcs12'], [ResourceType.JKS, 'application/x-java-keystore'], - [ResourceType.JS_MODULE, 'text/javascript,application/javascript'] + [ResourceType.JS_MODULE, 'text/javascript,application/javascript'], + [ResourceType.IMAGE, 'image/*'] ] ); @@ -48,7 +50,8 @@ export const ResourceTypeTranslationMap = new Map( [ResourceType.LWM2M_MODEL, 'resource.type.lwm2m-model'], [ResourceType.PKCS_12, 'resource.type.pkcs-12'], [ResourceType.JKS, 'resource.type.jks'], - [ResourceType.JS_MODULE, 'resource.type.js-module'] + [ResourceType.JS_MODULE, 'resource.type.js-module'], + [ResourceType.IMAGE, 'resource.type.image'] ] ); @@ -58,15 +61,11 @@ export interface ResourceInfo extends Omit, 'name' | 'lab title?: string; resourceType: ResourceType; fileName: string; + mediaType: string; + link: string; } export interface Resource extends ResourceInfo { base64Data: string; name?: string; } - -// @ts-ignore FIXME -export interface Resources extends ResourceInfo { - data: Array; - fileName: Array; -} diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 745ac8ecb4..b1e7e1d179 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -3622,7 +3622,8 @@ "jks": "JKS", "js-module": "JS module", "lwm2m-model": "LWM2M model", - "pkcs-12": "PKCS #12" + "pkcs-12": "PKCS #12", + "image": "Image" } }, "rulechain": { From df00add81b71ddde699f5c977d631cd658fcb1d3 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Thu, 2 Nov 2023 13:47:02 +0200 Subject: [PATCH 004/162] Edge resources support improvements; fixes for tests --- .../constructor/ResourceMsgConstructor.java | 4 +++- .../resource/BaseResourceProcessor.java | 2 +- .../resource/ResourceEdgeProcessor.java | 2 +- .../controller/TbResourceControllerTest.java | 3 +++ .../server/edge/ResourceEdgeTest.java | 3 ++- .../DefaultTransportApiServiceTest.java | 4 ++-- .../dao/resource/BaseResourceService.java | 12 ++++++------ .../validator/ResourceDataValidator.java | 18 +++++++++--------- 8 files changed, 27 insertions(+), 21 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java index 27b7dc3978..14da03c37d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java @@ -23,6 +23,8 @@ import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import java.util.Base64; + @Component @TbCoreComponent public class ResourceMsgConstructor { @@ -37,7 +39,7 @@ public class ResourceMsgConstructor { .setResourceType(tbResource.getResourceType().name()) .setFileName(tbResource.getFileName()); if (tbResource.getData() != null) { - builder.setData(tbResource.getData()); + builder.setData(Base64.getEncoder().encodeToString(tbResource.getData())); } if (tbResource.getEtag() != null) { builder.setEtag(tbResource.getEtag()); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index 13ca012f3c..88d382a6ed 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -46,7 +46,7 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor { resource.setResourceKey(resourceUpdateMsg.getResourceKey()); resource.setResourceType(ResourceType.valueOf(resourceUpdateMsg.getResourceType())); resource.setFileName(resourceUpdateMsg.getFileName()); - resource.setData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); + resource.setBase64Data(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); resourceValidator.validate(resource, TbResourceInfo::getTenantId); if (created) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index e7c5b21dbd..d2365f5fda 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -58,7 +58,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { return handleUnsupportedMsgType(resourceUpdateMsg.getMsgType()); } } catch (DataValidationException e) { - if (e.getMessage().contains("files size limit is exhausted")) { + if (e.getMessage().contains("exceeds the maximum")) { log.warn("[{}] Resource data size has been exhausted {}", tenantId, resourceUpdateMsg, e); return Futures.immediateFuture(null); } else { diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index 239c189243..f84e786edd 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -685,6 +685,9 @@ public class TbResourceControllerTest extends AbstractControllerTest { .isEqualTo(download(savedResource.getId())) .isEqualTo(Base64.getDecoder().decode(TEST_DATA)); assertThat(imageResponse.getContentType()).isEqualTo("image/png"); + + loginSysAdmin(); + doDelete("/api/resource/" + savedResource.getId()).andExpect(status().isOk()); } @Test diff --git a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java index 6a3001f292..7a0564debf 100644 --- a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java @@ -45,7 +45,7 @@ public class ResourceEdgeTest extends AbstractEdgeTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("Edge Test Resource"); resource.setFileName(FILE_NAME); - resource.setData(TEST_DATA); + resource.setBase64Data(TEST_DATA); edgeImitator.expectMessageAmount(1); TbResource savedResource = doPost("/api/resource", resource, TbResource.class); @@ -119,5 +119,6 @@ public class ResourceEdgeTest extends AbstractEdgeTest { TbResource tbResource = doGet("/api/resource/" + uuid, TbResource.class); Assert.assertNotNull(tbResource); Assert.assertEquals("Edge Test Resource", tbResource.getName()); + Assert.assertEquals(TEST_DATA, tbResource.getBase64Data()); } } diff --git a/application/src/test/java/org/thingsboard/server/service/transport/DefaultTransportApiServiceTest.java b/application/src/test/java/org/thingsboard/server/service/transport/DefaultTransportApiServiceTest.java index 33c11ea91d..43d8960f3b 100644 --- a/application/src/test/java/org/thingsboard/server/service/transport/DefaultTransportApiServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/transport/DefaultTransportApiServiceTest.java @@ -44,13 +44,13 @@ import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; import org.thingsboard.server.dao.ota.OtaPackageService; import org.thingsboard.server.dao.queue.QueueService; import org.thingsboard.server.dao.relation.RelationService; +import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.tenant.TbTenantProfileCache; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.service.apiusage.TbApiUsageStateService; import org.thingsboard.server.service.executors.DbCallbackExecutorService; import org.thingsboard.server.service.profile.TbDeviceProfileCache; -import org.thingsboard.server.service.resource.TbResourceService; import java.io.IOException; import java.nio.file.Files; @@ -96,7 +96,7 @@ public class DefaultTransportApiServiceTest { @MockBean protected DeviceProvisionService deviceProvisionService; @MockBean - protected TbResourceService resourceService; + protected ResourceService resourceService; @MockBean protected OtaPackageService otaPackageService; @MockBean diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index af0a9e47a5..26829bb1af 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -64,13 +64,13 @@ public class BaseResourceService extends AbstractCachedEntityService { @Override protected void validateDataImpl(TenantId tenantId, TbResource resource) { validateString("Resource title", resource.getTitle()); + if (resource.getTenantId() == null) { + resource.setTenantId(TenantId.SYS_TENANT_ID); + } + if (!resource.getTenantId().isSysTenantId()) { + if (!tenantService.tenantExists(resource.getTenantId())) { + throw new DataValidationException("Resource is referencing to non-existent tenant!"); + } + } if (resource.getResourceType() == null) { throw new DataValidationException("Resource type should be specified!"); } - if (tenantId != null && !tenantId.isSysTenantId() && resource.getData() != null) { + if (!resource.getTenantId().isSysTenantId() && resource.getData() != null) { DefaultTenantProfileConfiguration profileConfiguration = tenantProfileCache.get(tenantId).getDefaultProfileConfiguration(); long maxResourceSize = profileConfiguration.getMaxResourceSize(); if (maxResourceSize > 0 && resource.getData().length > maxResourceSize) { @@ -104,14 +112,6 @@ public class ResourceDataValidator extends DataValidator { if (StringUtils.isEmpty(resource.getResourceKey())) { throw new DataValidationException("Resource key should be specified!"); } - if (resource.getTenantId() == null) { - resource.setTenantId(TenantId.SYS_TENANT_ID); - } - if (!resource.getTenantId().isSysTenantId()) { - if (!tenantService.tenantExists(resource.getTenantId())) { - throw new DataValidationException("Resource is referencing to non-existent tenant!"); - } - } } @Override From 9889dc148f423c170f9d08fbfabb00c16d49b2f3 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Fri, 3 Nov 2023 13:09:57 +0200 Subject: [PATCH 005/162] Upgrade scripts for migrating to image resources --- .../install/ThingsboardInstallService.java | 1 + .../service/install/InstallScripts.java | 61 +- .../service/install/update/ImagesUpdater.java | 180 ++++++ .../service/install/InstallScriptsTest.java | 536 ++++++++++++++++++ .../dao/dashboard/DashboardService.java | 2 + .../server/dao/resource/ResourceService.java | 2 + .../common/data/util/MediaTypeUtils.java | 22 + .../server/dao/dashboard/DashboardDao.java | 2 + .../dao/dashboard/DashboardServiceImpl.java | 5 + .../dao/resource/BaseResourceService.java | 7 + .../dao/resource/TbResourceInfoDao.java | 4 + .../validator/ResourceDataValidator.java | 3 +- .../sql/dashboard/DashboardRepository.java | 3 + .../dao/sql/dashboard/JpaDashboardDao.java | 5 + .../sql/resource/JpaTbResourceInfoDao.java | 6 + .../resource/TbResourceInfoRepository.java | 3 + 16 files changed, 825 insertions(+), 17 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index 773174d651..f37d1f37bc 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -280,6 +280,7 @@ public class ThingsboardInstallService { log.info("Updating system data..."); dataUpdateService.upgradeRuleNodes(); systemDataLoaderService.updateSystemWidgets(); + installScripts.updateDashboards(); // fixme: can't work properly if widgets not updated first installScripts.loadSystemLwm2mResources(); } log.info("Upgrade finished successfully!"); diff --git a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java index 49f487ebf0..62232a1637 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java +++ b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java @@ -17,18 +17,20 @@ package org.thingsboard.server.service.install; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.ResourceType; -import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate; +import org.thingsboard.server.common.data.page.PageDataIterable; import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; @@ -40,6 +42,7 @@ import org.thingsboard.server.dao.resource.ResourceService; import org.thingsboard.server.dao.rule.RuleChainService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; +import org.thingsboard.server.service.install.update.ImagesUpdater; import java.io.IOException; import java.nio.file.DirectoryStream; @@ -102,6 +105,9 @@ public class InstallScripts { @Autowired private ResourceService resourceService; + @Autowired + private ImagesUpdater imagesUpdater; + Path getTenantRuleChainsDir() { return Paths.get(getDataDir(), JSON_DIR, TENANT_DIR, RULE_CHAINS_DIR); } @@ -146,16 +152,14 @@ public class InstallScripts { } private void loadRuleChainsFromPath(TenantId tenantId, Path ruleChainsPath) throws IOException { - findRuleChainsFromPath(ruleChainsPath) - .forEach( - path -> { - try { - createRuleChainFromFile(tenantId, path, null); - } catch (Exception e) { - log.error("Unable to load rule chain from json: [{}]", path.toString()); - throw new RuntimeException("Unable to load rule chain from json", e); - } - }); + findRuleChainsFromPath(ruleChainsPath).forEach(path -> { + try { + createRuleChainFromFile(tenantId, path, null); + } catch (Exception e) { + log.error("Unable to load rule chain from json: [{}]", path.toString()); + throw new RuntimeException("Unable to load rule chain from json", e); + } + }); } List findRuleChainsFromPath(Path ruleChainsPath) throws IOException { @@ -188,6 +192,7 @@ public class InstallScripts { } public void loadSystemWidgets() throws Exception { + log.info("Loading system widgets"); Path widgetTypesDir = Paths.get(getDataDir(), JSON_DIR, SYSTEM_DIR, WIDGET_TYPES_DIR); if (Files.exists(widgetTypesDir)) { try (DirectoryStream dirStream = Files.newDirectoryStream(widgetTypesDir, path -> path.toString().endsWith(JSON_EXT))) { @@ -195,8 +200,7 @@ public class InstallScripts { path -> { try { JsonNode widgetTypeJson = JacksonUtil.toJsonNode(path.toFile()); - WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); - widgetTypeService.saveWidgetType(widgetTypeDetails); + saveWidgetType(widgetTypeJson); } catch (Exception e) { log.error("Unable to load widget type from json: [{}]", path.toString()); throw new RuntimeException("Unable to load widget type from json", e); @@ -213,6 +217,7 @@ public class InstallScripts { JsonNode widgetsBundleDescriptorJson = JacksonUtil.toJsonNode(path.toFile()); JsonNode widgetsBundleJson = widgetsBundleDescriptorJson.get("widgetsBundle"); WidgetsBundle widgetsBundle = JacksonUtil.treeToValue(widgetsBundleJson, WidgetsBundle.class); + imagesUpdater.updateWidgetsBundleImages(widgetsBundle); WidgetsBundle savedWidgetsBundle = widgetsBundleService.saveWidgetsBundle(widgetsBundle); List widgetTypeFqns = new ArrayList<>(); if (widgetsBundleDescriptorJson.has("widgetTypes")) { @@ -220,8 +225,7 @@ public class InstallScripts { widgetTypesArrayJson.forEach( widgetTypeJson -> { try { - WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); - var savedWidgetType = widgetTypeService.saveWidgetType(widgetTypeDetails); + var savedWidgetType = saveWidgetType(widgetTypeJson); widgetTypeFqns.add(savedWidgetType.getFqn()); } catch (Exception e) { log.error("Unable to load widget type from json: [{}]", path.toString()); @@ -246,6 +250,32 @@ public class InstallScripts { } } + private WidgetTypeDetails saveWidgetType(JsonNode widgetTypeJson) { + WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); + try { + imagesUpdater.updateWidgetImages(widgetTypeDetails); + } catch (Exception e) { + log.warn("Failed to process images for widget type {}", widgetTypeDetails.getName(), e); + } + return widgetTypeService.saveWidgetType(widgetTypeDetails); + } + + public void updateDashboards() { + var dashboards = new PageDataIterable<>(dashboardService::findAllDashboardsIds, 1024); + for (DashboardId dashboardId : dashboards) { + Dashboard dashboard = dashboardService.findDashboardById(TenantId.SYS_TENANT_ID, dashboardId); + log.debug("Updating images for dashboard '{}' ({})", dashboard.getTitle(), dashboardId); + try { + boolean updated = imagesUpdater.updateDashboardImages(dashboard); + if (updated) { + dashboardService.saveDashboard(dashboard); + } + } catch (Exception e) { + log.error("Failed to update images for dashboard '{}' ({})", dashboard.getTitle(), dashboardId, e); + } + } + } + public void loadDashboards(TenantId tenantId, CustomerId customerId) throws Exception { Path dashboardsDir = Paths.get(getDataDir(), JSON_DIR, DEMO_DIR, DASHBOARDS_DIR); try (DirectoryStream dirStream = Files.newDirectoryStream(dashboardsDir, path -> path.toString().endsWith(JSON_EXT))) { @@ -339,4 +369,3 @@ public class InstallScripts { } } } - diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java new file mode 100644 index 0000000000..051c4eb054 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -0,0 +1,180 @@ +package org.thingsboard.server.service.install.update; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Dashboard; +import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.util.MediaTypeUtils; +import org.thingsboard.server.common.data.widget.WidgetTypeDetails; +import org.thingsboard.server.common.data.widget.WidgetsBundle; +import org.thingsboard.server.dao.resource.ResourceService; + +import java.util.List; +import java.util.Optional; + +@Component +//@Profile("install") +@Slf4j +@RequiredArgsConstructor +public class ImagesUpdater { + + private final ResourceService resourceService; + + + // TODO: solution templates + + + public void updateWidgetImages(WidgetTypeDetails widgetTypeDetails) { + String imageName = widgetTypeDetails.getName() + " - image"; + String imageKey = widgetTypeDetails.getFqn(); + String imageLink = saveImage(imageName, imageKey, widgetTypeDetails.getImage()); + widgetTypeDetails.setImage(imageLink); + + JsonNode defaultConfig = JacksonUtil.toJsonNode(widgetTypeDetails.getDescriptor().get("defaultConfig").asText()); + defaultConfig = updateWidgetConfig(TenantId.SYS_TENANT_ID, defaultConfig, imageName, imageKey, imageKey); + ((ObjectNode) widgetTypeDetails.getDescriptor()).put("defaultConfig", defaultConfig.toString()); + } + + public void updateWidgetsBundleImages(WidgetsBundle widgetsBundle) { + String imageLink = saveImage(widgetsBundle.getTitle(), widgetsBundle.getAlias(), widgetsBundle.getImage()); + widgetsBundle.setImage(imageLink); + } + + public boolean updateDashboardImages(Dashboard dashboard) { + String imageNamePrefix = dashboard.getTitle(); + String imageKeyPrefix = "dashboard_" + dashboard.getUuidId(); + boolean updated = false; + + String imageLink = saveImage(dashboard.getTenantId(), imageNamePrefix + " - image", imageKeyPrefix + ".image", dashboard.getImage(), null); + dashboard.setImage(imageLink); + + for (ObjectNode widgetConfig : dashboard.getWidgetsConfig()) { + String alias = widgetConfig.get("bundleAlias").asText() + "." + widgetConfig.get("typeAlias").asText(); + String widgetName = widgetConfig.get("config").get("title").asText(); + updateWidgetConfig(dashboard.getTenantId(), widgetConfig.get("config"), + imageNamePrefix + " - " + widgetName + " widget", + imageKeyPrefix + ".widget." + alias, alias); + } + + return updated; + } + + private JsonNode updateWidgetConfig(TenantId tenantId, JsonNode widgetConfig, + String imageNamePrefix, String imageKeyPrefix, + String fqn) { + ObjectNode widgetSettings = (ObjectNode) widgetConfig.get("settings"); + ArrayNode markerImages = (ArrayNode) widgetSettings.get("markerImages"); + if (markerImages != null && !markerImages.isEmpty()) { + for (int i = 0; i < markerImages.size(); i++) { + String imageName = imageNamePrefix + " - marker image " + (i + 1); + String imageKey = imageKeyPrefix + ".marker_image_" + (i + 1); + String imageLink = saveImage(tenantId, imageName, imageKey, markerImages.get(i).asText(), fqn + ".marker_image_"); + markerImages.set(i, imageLink); + } + } + + String mapImage = getText(widgetSettings, "mapImageUrl"); + if (mapImage != null) { + String imageName = imageNamePrefix + " - map image"; + String imageKeySuffix = ".map_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(tenantId, imageName, imageKey, mapImage, fqn + imageKeySuffix); + widgetSettings.put("mapImageUrl", imageLink); + } + + String backgroundImage = getText(widgetSettings, "backgroundImageUrl"); + if (backgroundImage != null) { + String imageName = imageNamePrefix + " - background image"; + String imageKeySuffix = ".background_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(tenantId, imageName, imageKey, backgroundImage, fqn + imageKeySuffix); + widgetSettings.put("backgroundImageUrl", imageLink); + } + + JsonNode backgroundConfigNode = widgetSettings.get("background"); + if (backgroundConfigNode != null && backgroundConfigNode.isObject()) { + ObjectNode backgroundConfig = (ObjectNode) backgroundConfigNode; + if ("image".equals(getText(backgroundConfig, "type"))) { + String imageBase64 = getText(backgroundConfig, "imageBase64"); + if (imageBase64 != null) { + String imageName = imageNamePrefix + " - background image"; + String imageKeySuffix = ".background_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(tenantId, imageName, imageKey, imageBase64, fqn + imageKeySuffix); + backgroundConfig.set("imageBase64", null); + backgroundConfig.put("imageUrl", imageLink); + backgroundConfig.put("type", "imageUrl"); + } + } + } + + return widgetConfig; + } + + private String getText(JsonNode jsonNode, String field) { + return Optional.ofNullable(jsonNode.get(field)) + .filter(JsonNode::isTextual) + .map(JsonNode::asText).orElse(null); + } + + private String saveImage(String title, String key, String data) { + return saveImage(TenantId.SYS_TENANT_ID, title, key, data, null); + } + + private String saveImage(TenantId tenantId, String title, String key, String data, + String existingImageQuery) { + if (data == null) { + return null; + } + String base64Data = StringUtils.substringAfter(data, "base64,"); + if (base64Data.isEmpty()) { + return data; + } + String imageMediaType = StringUtils.substringBetween(data, "data:", ";base64"); + String extension = MediaTypeUtils.getFileExtension(imageMediaType); + key += "." + extension; + + TbResourceInfo resourceInfo = resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, key); + if (resourceInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { + List existing = resourceService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, base64Data, existingImageQuery); + if (!existing.isEmpty()) { + resourceInfo = existing.get(0); + if (existing.size() > 1) { + log.warn("Found more than one system image resources for key {}", existingImageQuery); + } + log.info("Using system image {} for {}", resourceInfo.getLink(), key); + return resourceInfo.getLink(); + } + } + TbResource resource; + if (resourceInfo == null) { + resource = new TbResource(); + resource.setTenantId(tenantId); + resource.setResourceType(ResourceType.IMAGE); + resource.setResourceKey(key); + } else if (tenantId.isSysTenantId()) { + resource = new TbResource(resourceInfo); + } else { + return resourceInfo.getLink(); + } + resource.setTitle(title); + resource.setFileName(key); + resource.setMediaType(imageMediaType); + resource.setBase64Data(base64Data); + resource = resourceService.saveResource(resource); + log.info("[{}] {} image '{}' {} ({})", tenantId, resourceInfo == null ? "Created" : "Updated", + resource.getTitle(), resource.getResourceKey(), resource.getLink()); + return resource.getLink(); + + } + +} diff --git a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java index 26eead0ec7..af9ec8267d 100644 --- a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java +++ b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java @@ -23,6 +23,9 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.SpyBean; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Dashboard; +import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.rule.RuleChain; @@ -36,6 +39,7 @@ import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.usagerecord.ApiLimitService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; +import org.thingsboard.server.service.install.update.ImagesUpdater; import java.io.IOException; import java.nio.file.Path; @@ -46,6 +50,8 @@ import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; @Slf4j @SpringBootTest(classes = {InstallScripts.class, RuleChainDataValidator.class}) @@ -72,12 +78,27 @@ class InstallScriptsTest { ApiLimitService apiLimitService; @SpyBean RuleChainDataValidator ruleChainValidator; + @SpyBean + ImagesUpdater imagesUpdater; + TenantId tenantId = TenantId.fromUUID(UUID.fromString("9ef79cdf-37a8-4119-b682-2e7ed4e018da")); @BeforeEach void setUp() { willReturn(true).given(tenantService).tenantExists(tenantId); willReturn(true).given(apiLimitService).checkEntitiesLimit(any(), any()); + + when(resourceService.saveResource(any())).thenAnswer(inv -> { + TbResource resource = inv.getArgument(0); + if (resource.getResourceType() == ResourceType.IMAGE) { + resource.setLink(String.format("/api/images/%s/%s", + resource.getTenantId().isSysTenantId() ? + "system" : resource.getTenantId().toString(), + resource.getResourceKey() + )); + } + return resource; + }); } @Test @@ -116,4 +137,519 @@ class InstallScriptsTest { .containsExactlyInAnyOrderElementsOf(Collections.emptyList()); } + @Test + public void testWidgetsUpdate() throws Exception { + installScripts.loadSystemWidgets(); + } + + @Test + public void testImagesUpdater() { + ImagesUpdater imagesUpdater = new ImagesUpdater(resourceService); + Dashboard dashboard = new Dashboard(); + dashboard.setConfiguration(JacksonUtil.toJsonNode(dashboardConfig)); + dashboard.setTenantId(tenantId); + imagesUpdater.updateDashboardImages(dashboard); + System.err.println("Updated config: " + dashboard.getConfiguration().toPrettyString()); + } + + + public static final String dashboardConfig = "{\n" + + " \"description\": \"\",\n" + + " \"widgets\": {\n" + + " \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\": {\n" + + " \"typeFullFqn\": \"system.cards.value_card\",\n" + + " \"type\": \"latest\",\n" + + " \"sizeX\": 3,\n" + + " \"sizeY\": 3,\n" + + " \"config\": {\n" + + " \"datasources\": [\n" + + " {\n" + + " \"type\": \"device\",\n" + + " \"name\": \"\",\n" + + " \"deviceId\": \"09bfc8f0-b376-11ed-af9a-5f9d1fc4febb\",\n" + + " \"dataKeys\": [\n" + + " {\n" + + " \"name\": \"temperature\",\n" + + " \"type\": \"timeseries\",\n" + + " \"label\": \"Temperature\",\n" + + " \"color\": \"#2196f3\",\n" + + " \"settings\": {},\n" + + " \"_hash\": 0.790442736163091\n" + + " }\n" + + " ],\n" + + " \"alarmFilterConfig\": {\n" + + " \"statusList\": [\n" + + " \"ACTIVE\"\n" + + " ]\n" + + " }\n" + + " }\n" + + " ],\n" + + " \"timewindow\": {\n" + + " \"displayValue\": \"\",\n" + + " \"selectedTab\": 0,\n" + + " \"realtime\": {\n" + + " \"realtimeType\": 1,\n" + + " \"interval\": 1000,\n" + + " \"timewindowMs\": 60000,\n" + + " \"quickInterval\": \"CURRENT_DAY\"\n" + + " },\n" + + " \"history\": {\n" + + " \"historyType\": 0,\n" + + " \"interval\": 1000,\n" + + " \"timewindowMs\": 60000,\n" + + " \"fixedTimewindow\": {\n" + + " \"startTimeMs\": 1698052629317,\n" + + " \"endTimeMs\": 1698139029317\n" + + " },\n" + + " \"quickInterval\": \"CURRENT_DAY\"\n" + + " },\n" + + " \"aggregation\": {\n" + + " \"type\": \"AVG\",\n" + + " \"limit\": 25000\n" + + " }\n" + + " },\n" + + " \"showTitle\": false,\n" + + " \"backgroundColor\": \"rgba(0, 0, 0, 0)\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"padding\": \"0px\",\n" + + " \"settings\": {\n" + + " \"labelPosition\": \"top\",\n" + + " \"layout\": \"square\",\n" + + " \"showLabel\": true,\n" + + " \"labelFont\": {\n" + + " \"family\": \"Roboto\",\n" + + " \"size\": 16,\n" + + " \"sizeUnit\": \"px\",\n" + + " \"style\": \"normal\",\n" + + " \"weight\": \"500\"\n" + + " },\n" + + " \"labelColor\": {\n" + + " \"type\": \"constant\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + + " },\n" + + " \"showIcon\": true,\n" + + " \"iconSize\": 40,\n" + + " \"iconSizeUnit\": \"px\",\n" + + " \"icon\": \"thermostat\",\n" + + " \"iconColor\": {\n" + + " \"type\": \"constant\",\n" + + " \"color\": \"#5469FF\",\n" + + " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + + " },\n" + + " \"valueFont\": {\n" + + " \"family\": \"Roboto\",\n" + + " \"size\": 52,\n" + + " \"sizeUnit\": \"px\",\n" + + " \"style\": \"normal\",\n" + + " \"weight\": \"500\"\n" + + " },\n" + + " \"valueColor\": {\n" + + " \"type\": \"constant\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + + " },\n" + + " \"showDate\": true,\n" + + " \"dateFormat\": {\n" + + " \"format\": null,\n" + + " \"lastUpdateAgo\": true,\n" + + " \"custom\": false\n" + + " },\n" + + " \"dateFont\": {\n" + + " \"family\": \"Roboto\",\n" + + " \"size\": 12,\n" + + " \"sizeUnit\": \"px\",\n" + + " \"style\": \"normal\",\n" + + " \"weight\": \"500\"\n" + + " },\n" + + " \"dateColor\": {\n" + + " \"type\": \"constant\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.38)\",\n" + + " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + + " },\n" + + " \"background\": {\n" + + " \"type\": \"image\",\n" + + " \"imageBase64\": \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wCEAAQEBAQEBAUFBQUHBwYHBwoJCAgJCg8KCwoLCg8WDhAODhAOFhQYExITGBQjHBgYHCMpIiAiKTEsLDE+Oz5RUW0BBAQEBAQEBQUFBQcHBgcHCgkICAkKDwoLCgsKDxYOEA4OEA4WFBgTEhMYFCMcGBgcIykiICIpMSwsMT47PlFRbf/CABEIAtAEsAMBEQACEQEDEQH/xAA2AAEAAgIDAQEAAAAAAAAAAAAABQYEBwIDCAEJAQEAAwEBAQEAAAAAAAAAAAAAAQIDBAUGB//aAAwDAQACEAMQAAAA9/AAAAAAAXwsX42s7RHUMhntDzk8zlsOrsWZoeolQ8zbG7KF+Bf/Z\",\n" + + " \"imageUrl\": \"http://localhost:8080/api/resource/myimage\",\n" + + " \"color\": \"#fff\",\n" + + " \"overlay\": {\n" + + " \"enabled\": false,\n" + + " \"color\": \"rgba(255,255,255,0.72)\",\n" + + " \"blur\": 3\n" + + " }\n" + + " },\n" + + " \"autoScale\": true\n" + + " },\n" + + " \"title\": \"Value card\",\n" + + " \"dropShadow\": true,\n" + + " \"enableFullscreen\": false,\n" + + " \"titleStyle\": {\n" + + " \"fontSize\": \"16px\",\n" + + " \"fontWeight\": 400\n" + + " },\n" + + " \"units\": \"°C\",\n" + + " \"decimals\": 0,\n" + + " \"useDashboardTimewindow\": true,\n" + + " \"showLegend\": false,\n" + + " \"widgetStyle\": {},\n" + + " \"actions\": {},\n" + + " \"configMode\": \"basic\",\n" + + " \"displayTimewindow\": true,\n" + + " \"margin\": \"0px\",\n" + + " \"borderRadius\": \"0px\",\n" + + " \"widgetCss\": \"\",\n" + + " \"pageSize\": 1024,\n" + + " \"noDataDisplayMessage\": \"\",\n" + + " \"showTitleIcon\": false,\n" + + " \"titleTooltip\": \"\",\n" + + " \"titleFont\": {\n" + + " \"size\": 12,\n" + + " \"sizeUnit\": \"px\",\n" + + " \"family\": null,\n" + + " \"weight\": null,\n" + + " \"style\": null,\n" + + " \"lineHeight\": \"1.6\"\n" + + " },\n" + + " \"titleIcon\": \"\",\n" + + " \"iconColor\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"iconSize\": \"14px\",\n" + + " \"timewindowStyle\": {\n" + + " \"showIcon\": true,\n" + + " \"iconSize\": \"14px\",\n" + + " \"icon\": \"query_builder\",\n" + + " \"iconPosition\": \"left\",\n" + + " \"font\": {\n" + + " \"size\": 12,\n" + + " \"sizeUnit\": \"px\",\n" + + " \"family\": null,\n" + + " \"weight\": null,\n" + + " \"style\": null,\n" + + " \"lineHeight\": \"1\"\n" + + " },\n" + + " \"color\": null\n" + + " }\n" + + " },\n" + + " \"row\": 0,\n" + + " \"col\": 0,\n" + + " \"id\": \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\"\n" + + " },\n" + + " \"01ad2980-87c8-5813-18a2-47833d8f6df7\": {\n" + + " \"typeFullFqn\": \"system.date.date_range_navigator\",\n" + + " \"type\": \"static\",\n" + + " \"sizeX\": 5,\n" + + " \"sizeY\": 5.5,\n" + + " \"config\": {\n" + + " \"datasources\": [\n" + + " {\n" + + " \"type\": \"static\",\n" + + " \"name\": \"function\",\n" + + " \"dataKeys\": [\n" + + " {\n" + + " \"name\": \"f(x)\",\n" + + " \"type\": \"function\",\n" + + " \"label\": \"Random\",\n" + + " \"color\": \"#2196f3\",\n" + + " \"settings\": {},\n" + + " \"_hash\": 0.15479322438769105,\n" + + " \"funcBody\": \"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " ],\n" + + " \"timewindow\": {\n" + + " \"realtime\": {\n" + + " \"timewindowMs\": 60000\n" + + " }\n" + + " },\n" + + " \"showTitle\": true,\n" + + " \"backgroundColor\": \"#C32F2F\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"padding\": \"8px\",\n" + + " \"settings\": {\n" + + " \"defaultInterval\": \"week\",\n" + + " \"stepSize\": \"day\",\n" + + " \"useSessionStorage\": true\n" + + " },\n" + + " \"title\": \"Date-range-navigator\",\n" + + " \"dropShadow\": true,\n" + + " \"enableFullscreen\": true,\n" + + " \"widgetStyle\": {},\n" + + " \"titleStyle\": {\n" + + " \"fontSize\": \"16px\",\n" + + " \"fontWeight\": 400\n" + + " },\n" + + " \"useDashboardTimewindow\": true,\n" + + " \"showLegend\": false,\n" + + " \"actions\": {},\n" + + " \"showTitleIcon\": false,\n" + + " \"titleTooltip\": \"\",\n" + + " \"widgetCss\": \"\",\n" + + " \"pageSize\": 1024,\n" + + " \"noDataDisplayMessage\": \"\"\n" + + " },\n" + + " \"row\": 0,\n" + + " \"col\": 0,\n" + + " \"id\": \"01ad2980-87c8-5813-18a2-47833d8f6df7\"\n" + + " },\n" + + " \"6dc68681-97fe-dca5-5df6-b5006797c9eb\": {\n" + + " \"typeFullFqn\": \"system.maps_v2.image_map\",\n" + + " \"type\": \"latest\",\n" + + " \"sizeX\": 8.5,\n" + + " \"sizeY\": 6.5,\n" + + " \"config\": {\n" + + " \"datasources\": [\n" + + " {\n" + + " \"type\": \"entity\",\n" + + " \"name\": \"\",\n" + + " \"entityAliasId\": \"50e40fe7-fd33-e93e-88f6-212acfa1b311\",\n" + + " \"filterId\": null,\n" + + " \"dataKeys\": [\n" + + " {\n" + + " \"name\": \"pressure\",\n" + + " \"type\": \"timeseries\",\n" + + " \"label\": \"pressure\",\n" + + " \"color\": \"#2196f3\",\n" + + " \"settings\": {},\n" + + " \"_hash\": 0.38936754782620264\n" + + " }\n" + + " ],\n" + + " \"alarmFilterConfig\": {\n" + + " \"statusList\": [\n" + + " \"ACTIVE\"\n" + + " ]\n" + + " }\n" + + " }\n" + + " ],\n" + + " \"timewindow\": {\n" + + " \"displayValue\": \"\",\n" + + " \"selectedTab\": 0,\n" + + " \"realtime\": {\n" + + " \"realtimeType\": 1,\n" + + " \"interval\": 1000,\n" + + " \"timewindowMs\": 60000,\n" + + " \"quickInterval\": \"CURRENT_DAY\"\n" + + " },\n" + + " \"history\": {\n" + + " \"historyType\": 0,\n" + + " \"interval\": 1000,\n" + + " \"timewindowMs\": 60000,\n" + + " \"fixedTimewindow\": {\n" + + " \"startTimeMs\": 1698064891779,\n" + + " \"endTimeMs\": 1698151291779\n" + + " },\n" + + " \"quickInterval\": \"CURRENT_DAY\"\n" + + " },\n" + + " \"aggregation\": {\n" + + " \"type\": \"AVG\",\n" + + " \"limit\": 25000\n" + + " }\n" + + " },\n" + + " \"showTitle\": true,\n" + + " \"backgroundColor\": \"#fff\",\n" + + " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + + " \"padding\": \"8px\",\n" + + " \"settings\": {\n" + + " \"provider\": \"image-map\",\n" + + " \"gmApiKey\": \"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\n" + + " \"gmDefaultMapType\": \"roadmap\",\n" + + " \"mapProvider\": \"OpenStreetMap.Mapnik\",\n" + + " \"useCustomProvider\": false,\n" + + " \"customProviderTileUrl\": \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n" + + " \"mapProviderHere\": \"HERE.normalDay\",\n" + + " \"credentials\": {\n" + + " \"useV3\": true,\n" + + " \"app_id\": \"AhM6TzD9ThyK78CT3ptx\",\n" + + " \"app_code\": \"p6NPiITB3Vv0GMUFnkLOOg\",\n" + + " \"apiKey\": \"kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE\"\n" + + " },\n" + + " \"mapImageUrl\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyIAAAKqCAYAAADG2epfAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xd4VFX+x/H3nZ6e0ORK5CYII=\",\n" + + " \"tmApiKey\": \"84d6d83e0e51e481e50454ccbe8986b\",\n" + + " \"tmDefaultMapType\": \"roadmap\",\n" + + " \"latKeyName\": \"latitude\",\n" + + " \"lngKeyName\": \"longitude\",\n" + + " \"xPosKeyName\": \"xPos\",\n" + + " \"yPosKeyName\": \"yPos\",\n" + + " \"defaultCenterPosition\": \"0,0\",\n" + + " \"disableScrollZooming\": false,\n" + + " \"disableDoubleClickZooming\": false,\n" + + " \"disableZoomControl\": false,\n" + + " \"fitMapBounds\": true,\n" + + " \"useDefaultCenterPosition\": false,\n" + + " \"mapPageSize\": 16384,\n" + + " \"markerOffsetX\": 0.5,\n" + + " \"markerOffsetY\": 1,\n" + + " \"posFunction\": \"return {x: origXPos, y: origYPos};\",\n" + + " \"draggableMarker\": false,\n" + + " \"showLabel\": true,\n" + + " \"useLabelFunction\": false,\n" + + " \"label\": \"${entityName}\",\n" + + " \"showTooltip\": true,\n" + + " \"showTooltipAction\": \"click\",\n" + + " \"autocloseTooltip\": true,\n" + + " \"useTooltipFunction\": false,\n" + + " \"tooltipPattern\": \"${entityName}

X Pos: ${xPos:2}
Y Pos: ${yPos:2}
Temperature: ${temperature} °C
See advanced settings for details\",\n" + + " \"tooltipOffsetX\": 0,\n" + + " \"tooltipOffsetY\": -1,\n" + + " \"color\": \"#fe7569\",\n" + + " \"useColorFunction\": true,\n" + + " \"colorFunction\": \"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\n" + + " \"useMarkerImageFunction\": true,\n" + + " \"markerImageSize\": 34,\n" + + " \"markerImageFunction\": \"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\n" + + " \"markerImages\": [\n" + + " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAwgSURBVGiB7Zt5cBT3lce/v18fc89oRoPEIRBCHIUxp2ywCAgIxLExvoidZIFNxXE2VXHirIO3aqtSseM43qpNeZfYKecox3bhpJykYgd2w45TMcyQHIAOgBcBbAUUJI5uOM/wcaHmf3g9UM7QAAAABJRU5ErkJggg==\",\n" + + " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA3vSURBVGiB7Vt7cFzVef+dc+/d90OrJyO/JSOFqAtyOKzKo83MLgAkgA2AAQB+ADgCfAzjBGIsPxfh/6wbDK7xbMFYAAAAASUVORK5CYII=\",\n" + + " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdg7EC8/8BoAc0AekgE+B/cAWpVTqSMb/AlY1WXIncMcxAAAAAElFTkSuQmCC\",\n" + + " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdJRU5ErkJggg==\"\n" + + " ],\n" + + " \"showPolygon\": false,\n" + + " \"polygonKeyName\": \"perimeter\",\n" + + " \"editablePolygon\": false,\n" + + " \"showPolygonLabel\": false,\n" + + " \"usePolygonLabelFunction\": false,\n" + + " \"polygonLabel\": \"${entityName}\",\n" + + " \"showPolygonTooltip\": false,\n" + + " \"showPolygonTooltipAction\": \"click\",\n" + + " \"autoClosePolygonTooltip\": true,\n" + + " \"usePolygonTooltipFunction\": false,\n" + + " \"polygonTooltipPattern\": \"${entityName}

TimeStamp: ${ts:7}\",\n" + + " \"polygonColor\": \"#3388ff\",\n" + + " \"polygonOpacity\": 0.2,\n" + + " \"usePolygonColorFunction\": false,\n" + + " \"polygonStrokeColor\": \"#3388ff\",\n" + + " \"polygonStrokeOpacity\": 1,\n" + + " \"polygonStrokeWeight\": 3,\n" + + " \"usePolygonStrokeColorFunction\": false,\n" + + " \"showCircle\": false,\n" + + " \"circleKeyName\": \"perimeter\",\n" + + " \"editableCircle\": false,\n" + + " \"showCircleLabel\": false,\n" + + " \"useCircleLabelFunction\": false,\n" + + " \"circleLabel\": \"${entityName}\",\n" + + " \"showCircleTooltip\": false,\n" + + " \"showCircleTooltipAction\": \"click\",\n" + + " \"autoCloseCircleTooltip\": true,\n" + + " \"useCircleTooltipFunction\": false,\n" + + " \"circleTooltipPattern\": \"${entityName}

TimeStamp: ${ts:7}\",\n" + + " \"circleFillColor\": \"#3388ff\",\n" + + " \"circleFillColorOpacity\": 0.2,\n" + + " \"useCircleFillColorFunction\": false,\n" + + " \"circleStrokeColor\": \"#3388ff\",\n" + + " \"circleStrokeOpacity\": 1,\n" + + " \"circleStrokeWeight\": 3,\n" + + " \"useCircleStrokeColorFunction\": false\n" + + " },\n" + + " \"title\": \"Image Map\",\n" + + " \"dropShadow\": true,\n" + + " \"enableFullscreen\": true,\n" + + " \"titleStyle\": {\n" + + " \"fontSize\": \"16px\",\n" + + " \"fontWeight\": 400\n" + + " },\n" + + " \"useDashboardTimewindow\": true,\n" + + " \"showLegend\": false,\n" + + " \"widgetStyle\": {},\n" + + " \"actions\": {},\n" + + " \"displayTimewindow\": true\n" + + " },\n" + + " \"row\": 0,\n" + + " \"col\": 0,\n" + + " \"id\": \"6dc68681-97fe-dca5-5df6-b5006797c9eb\"\n" + + " }\n" + + " },\n" + + " \"states\": {\n" + + " \"default\": {\n" + + " \"name\": \"Images\",\n" + + " \"root\": true,\n" + + " \"layouts\": {\n" + + " \"main\": {\n" + + " \"widgets\": {\n" + + " \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\": {\n" + + " \"sizeX\": 6,\n" + + " \"sizeY\": 5,\n" + + " \"row\": 0,\n" + + " \"col\": 18\n" + + " },\n" + + " \"01ad2980-87c8-5813-18a2-47833d8f6df7\": {\n" + + " \"sizeX\": 5,\n" + + " \"sizeY\": 5,\n" + + " \"row\": 0,\n" + + " \"col\": 13\n" + + " },\n" + + " \"6dc68681-97fe-dca5-5df6-b5006797c9eb\": {\n" + + " \"sizeX\": 8,\n" + + " \"sizeY\": 6,\n" + + " \"row\": 6,\n" + + " \"col\": 13\n" + + " }\n" + + " },\n" + + " \"gridSettings\": {\n" + + " \"backgroundColor\": \"#eeeeee\",\n" + + " \"columns\": 24,\n" + + " \"margin\": 10,\n" + + " \"outerMargin\": true,\n" + + " \"backgroundSizeMode\": \"auto\",\n" + + " \"autoFillHeight\": false,\n" + + " \"backgroundImageUrl\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyIAAAKqCAYAAADG2epfAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzscvuw4MRvxaz5gVL8owhtF0n7gs8zcmnLxWDL3sejVwbSPaER4uzt4fl4saeVj6pOIiIjcIP4fn4t1aCx7Vb0AAAAASUVORK5CYII=\",\n" + + " \"mobileAutoFillHeight\": false,\n" + + " \"mobileRowHeight\": 70\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " },\n" + + " \"entityAliases\": {\n" + + " \"50e40fe7-fd33-e93e-88f6-212acfa1b311\": {\n" + + " \"id\": \"50e40fe7-fd33-e93e-88f6-212acfa1b311\",\n" + + " \"alias\": \"aa\",\n" + + " \"filter\": {\n" + + " \"type\": \"entityList\",\n" + + " \"resolveMultiple\": true,\n" + + " \"entityType\": \"DEVICE\",\n" + + " \"entityList\": [\n" + + " \"5a6c89e0-5ea9-11ed-8ee5-3570b5c0f66a\"\n" + + " ]\n" + + " }\n" + + " }\n" + + " },\n" + + " \"filters\": {},\n" + + " \"timewindow\": {\n" + + " \"hideInterval\": false,\n" + + " \"hideLastInterval\": false,\n" + + " \"hideQuickInterval\": false,\n" + + " \"hideAggregation\": false,\n" + + " \"hideAggInterval\": false,\n" + + " \"hideTimezone\": false,\n" + + " \"selectedTab\": 1,\n" + + " \"history\": {\n" + + " \"historyType\": 1,\n" + + " \"fixedTimewindow\": {\n" + + " \"startTimeMs\": 1697576400000,\n" + + " \"endTimeMs\": 1698181199999\n" + + " },\n" + + " \"interval\": 1210000\n" + + " },\n" + + " \"aggregation\": {\n" + + " \"type\": \"AVG\",\n" + + " \"limit\": 25000\n" + + " }\n" + + " },\n" + + " \"settings\": {\n" + + " \"stateControllerId\": \"entity\",\n" + + " \"showTitle\": false,\n" + + " \"showDashboardsSelect\": true,\n" + + " \"showEntitiesSelect\": true,\n" + + " \"showDashboardTimewindow\": true,\n" + + " \"showDashboardExport\": true,\n" + + " \"toolbarAlwaysOpen\": true,\n" + + " \"titleColor\": \"rgba(0,0,0,0.870588)\",\n" + + " \"showDashboardLogo\": true,\n" + + " \"dashboardLogoUrl\": \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wCEAAQEBAQEBAUFBQUHBwYHBwoJCAgJCg8KCwoLCg8WDhAODhAOFhQYExITGBQjHBgYHCMpIiAiKTEsLDE+Oz5RlQ8zbG7KF+Bf/Z\",\n" + + " \"hideToolbar\": false,\n" + + " \"showFilters\": true,\n" + + " \"showUpdateDashboardImage\": true,\n" + + " \"dashboardCss\": \"\"\n" + + " }\n" + + "}"; + } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java index 434088180c..a3285a8ecf 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/dashboard/DashboardService.java @@ -74,4 +74,6 @@ public interface DashboardService extends EntityDaoService { List findTenantDashboardsByTitle(TenantId tenantId, String title); + PageData findAllDashboardsIds(PageLink pageLink); + } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 40125087c2..33fece3292 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -60,4 +60,6 @@ public interface ResourceService extends EntityDaoService { long sumDataSizeByTenantId(TenantId tenantId); + List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, String base64Data, String query); + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java new file mode 100644 index 0000000000..2858293499 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java @@ -0,0 +1,22 @@ +package org.thingsboard.server.common.data.util; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.springframework.util.MimeTypeUtils; + +import java.util.Map; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class MediaTypeUtils { + + private static final Map mappings = Map.of( + "jpeg", "jpg", + "svg+xml", "svg" + ); + + public static String getFileExtension(String mimeType) { + String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); + return mappings.getOrDefault(subtype, subtype); + } + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardDao.java index b23bc516bb..54b767446c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardDao.java @@ -44,4 +44,6 @@ public interface DashboardDao extends Dao, TenantEntityDao, Exportabl PageData findIdsByTenantId(TenantId tenantId, PageLink pageLink); + PageData findAllIds(PageLink pageLink); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java index be1739bc7a..313df7255a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardServiceImpl.java @@ -364,6 +364,11 @@ public class DashboardServiceImpl extends AbstractEntityService implements Dashb return dashboardDao.findByTenantIdAndTitle(tenantId.getId(), title); } + @Override + public PageData findAllDashboardsIds(PageLink pageLink) { + return dashboardDao.findAllIds(pageLink); + } + private final PaginatedRemover tenantDashboardsRemover = new PaginatedRemover<>() { @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 26829bb1af..c896376bc4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -44,6 +44,7 @@ import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.validator.ResourceDataValidator; +import java.util.Base64; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -220,6 +221,12 @@ public class BaseResourceService extends AbstractCachedEntityService findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, String base64Data, String query) { + String etag = calculateEtag(Base64.getDecoder().decode(base64Data)); + return resourceInfoDao.findByTenantIdAndEtagAndKeyStartingWith(tenantId, etag, query); + } + private String calculateEtag(byte[] data) { return Hashing.sha256().hashBytes(data).toString(); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java index 2354217f1c..c148e70275 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java @@ -23,6 +23,8 @@ import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.Dao; +import java.util.List; + public interface TbResourceInfoDao extends Dao { PageData findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink); @@ -31,4 +33,6 @@ public interface TbResourceInfoDao extends Dao { TbResourceInfo findByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey); + List findByTenantIdAndEtagAndKeyStartingWith(TenantId tenantId, String etag, String query); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java index 8cbe5006b4..4d5027492d 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java @@ -64,7 +64,8 @@ public class ResourceDataValidator extends DataValidator { @Override protected TbResource validateUpdate(TenantId tenantId, TbResource resource) { - if (resource.getData() != null && !resource.getResourceType().isUpdatable()) { + if (resource.getData() != null && !resource.getResourceType().isUpdatable() && + tenantId != null && !tenantId.isSysTenantId()) { throw new DataValidationException("This type of resource can't be updated"); } return resource; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java index ee6b59e30b..7335d6e072 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java @@ -43,4 +43,7 @@ public interface DashboardRepository extends JpaRepository findIdsByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable); + @Query("SELECT id FROM DashboardEntity") + Page findAllIds(Pageable pageable); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java index 9353a4dbde..2a85692459 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java @@ -85,6 +85,11 @@ public class JpaDashboardDao extends JpaAbstractDao return DaoUtil.pageToPageData(dashboardRepository.findIdsByTenantId(tenantId.getId(), DaoUtil.toPageable(pageLink)).map(DashboardId::new)); } + @Override + public PageData findAllIds(PageLink pageLink) { + return DaoUtil.pageToPageData(dashboardRepository.findAllIds(DaoUtil.toPageable(pageLink)).map(DashboardId::new)); + } + @Override public EntityType getEntityType() { return EntityType.DASHBOARD; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java index 7eb5ef1567..f35330eecd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java @@ -31,6 +31,7 @@ import org.thingsboard.server.dao.resource.TbResourceInfoDao; import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; +import java.util.List; import java.util.Objects; import java.util.UUID; @@ -80,4 +81,9 @@ public class JpaTbResourceInfoDao extends JpaAbstractDao findByTenantIdAndEtagAndKeyStartingWith(TenantId tenantId, String etag, String query) { + return DaoUtil.convertDataList(resourceInfoRepository.findByTenantIdAndHashCodeAndResourceKeyStartingWith(tenantId.getId(), etag, query)); + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java index e01b37e089..7ed0754624 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java @@ -22,6 +22,7 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.model.sql.TbResourceInfoEntity; +import java.util.List; import java.util.UUID; public interface TbResourceInfoRepository extends JpaRepository { @@ -53,4 +54,6 @@ public interface TbResourceInfoRepository extends JpaRepository findByTenantIdAndHashCodeAndResourceKeyStartingWith(UUID tenantId, String hashCode, String query); + } From 68910a2855f29132e4207fe628ae12e46f5a272f Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 8 Nov 2023 20:36:58 +0200 Subject: [PATCH 006/162] Migrate system images from Base64 --- ...s.maps_v2.openstreetmap#marker_image_1.svg | 1 + ...s.maps_v2.openstreetmap#marker_image_2.svg | 1 + application/src/main/data/images/names.json | 554 ++++++++++++++ .../images/widget_bundles/air_quality.png | Bin 0 -> 2965 bytes .../images/widget_bundles/alarm_widgets.png | Bin 0 -> 3032 bytes .../images/widget_bundles/analogue_gauges.png | Bin 0 -> 6286 bytes .../main/data/images/widget_bundles/cards.png | Bin 0 -> 8513 bytes .../data/images/widget_bundles/charts.png | Bin 0 -> 4602 bytes .../images/widget_bundles/control_widgets.png | Bin 0 -> 6981 bytes .../images/widget_bundles/count_widgets.png | Bin 0 -> 1871 bytes .../main/data/images/widget_bundles/date.png | Bin 0 -> 2235 bytes .../images/widget_bundles/digital_gauges.png | Bin 0 -> 6341 bytes .../images/widget_bundles/edge_widgets.png | Bin 0 -> 3175 bytes .../widget_bundles/entity_admin_widgets.png | Bin 0 -> 1612 bytes .../images/widget_bundles/entity_widgets.png | Bin 0 -> 3090 bytes .../images/widget_bundles/gateway_widgets.png | Bin 0 -> 3767 bytes .../images/widget_bundles/gpio_widgets.png | Bin 0 -> 5775 bytes .../widget_bundles/home_page_widgets.png | Bin 0 -> 5212 bytes .../images/widget_bundles/html_widgets.png | Bin 0 -> 6003 bytes .../widget_bundles/indoor_environment.png | Bin 0 -> 3097 bytes .../images/widget_bundles/input_widgets.png | Bin 0 -> 6766 bytes .../widget_bundles/liquid_level_tanks.png | Bin 0 -> 3211 bytes .../data/images/widget_bundles/maps_v2.png | Bin 0 -> 16652 bytes .../widget_bundles/navigation_widgets.png | Bin 0 -> 5297 bytes .../widget_bundles/outdoor_environment.png | Bin 0 -> 3181 bytes .../widget_bundles/status_indicators.png | Bin 0 -> 1716 bytes .../data/images/widget_bundles/tables.png | Bin 0 -> 3486 bytes .../data/images/widgets/air_quality_card.png | Bin 0 -> 1938 bytes ..._card_with_background#background_image.png | Bin 0 -> 15232 bytes .../air_quality_card_with_background.png | Bin 0 -> 9718 bytes .../images/widgets/air_quality_chart_card.png | Bin 0 -> 2509 bytes ..._card_with_background#background_image.png | Bin 0 -> 32534 bytes ...air_quality_chart_card_with_background.png | Bin 0 -> 10693 bytes .../main/data/images/widgets/alarm_count.png | Bin 0 -> 1472 bytes .../widgets/alarm_widgets.alarms_table.png | Bin 0 -> 5275 bytes .../analogue_gauges.analogue_compass.png | Bin 0 -> 3926 bytes ...ogue_gauges.radial_gauge_canvas_gauges.png | Bin 0 -> 6066 bytes ...logue_gauges.speed_gauge_canvas_gauges.png | Bin 0 -> 7177 bytes ...gauges.temperature_gauge_canvas_gauges.png | Bin 0 -> 5249 bytes ...temperature_radial_gauge_canvas_gauges.png | Bin 0 -> 5400 bytes .../data/images/widgets/battery_level.png | Bin 0 -> 1363 bytes .../widgets/cards.aggregated_value_card.png | Bin 0 -> 3777 bytes .../images/widgets/cards.attributes_card.png | Bin 0 -> 3006 bytes .../widgets/cards.dashboard_state_widget.png | Bin 0 -> 4777 bytes .../widgets/cards.entities_hierarchy.png | Bin 0 -> 2884 bytes .../images/widgets/cards.entities_table.png | Bin 0 -> 2600 bytes .../widgets/cards.horizontal_value_card.png | Bin 0 -> 5139 bytes .../data/images/widgets/cards.html_card.png | Bin 0 -> 1292 bytes .../images/widgets/cards.html_value_card.png | Bin 0 -> 2402 bytes .../cards.label_widget#background_image.svg | 7 + .../images/widgets/cards.label_widget.png | Bin 0 -> 2503 bytes .../images/widgets/cards.markdown_card.png | Bin 0 -> 4608 bytes .../data/images/widgets/cards.qr_code.png | Bin 0 -> 6496 bytes .../data/images/widgets/cards.simple_card.png | Bin 0 -> 2735 bytes .../images/widgets/cards.timeseries_table.png | Bin 0 -> 5186 bytes .../data/images/widgets/cards.value_card.png | Bin 0 -> 12764 bytes .../main/data/images/widgets/charts.bars.png | Bin 0 -> 771 bytes .../widgets/charts.basic_timeseries.png | Bin 0 -> 6110 bytes .../widgets/charts.doughnut_chart_js.png | Bin 0 -> 4664 bytes .../main/data/images/widgets/charts.pie.png | Bin 0 -> 6551 bytes .../images/widgets/charts.pie_chart_js.png | Bin 0 -> 6551 bytes .../widgets/charts.polar_area_chart_js.png | Bin 0 -> 6408 bytes .../images/widgets/charts.radar_chart_js.png | Bin 0 -> 4651 bytes .../images/widgets/charts.state_chart.png | Bin 0 -> 1435 bytes .../widgets/charts.timeseries_bars_flot.png | Bin 0 -> 1157 bytes .../src/main/data/images/widgets/co2_card.png | Bin 0 -> 1748 bytes ..._card_with_background#background_image.png | Bin 0 -> 40048 bytes .../widgets/co2_card_with_background.png | Bin 0 -> 18910 bytes .../data/images/widgets/co2_chart_card.png | Bin 0 -> 2549 bytes ..._card_with_background#background_image.png | Bin 0 -> 83584 bytes .../co2_chart_card_with_background.png | Bin 0 -> 20752 bytes .../widgets/control_widgets.knob_control.png | Bin 0 -> 6677 bytes .../widgets/control_widgets.led_indicator.png | Bin 0 -> 6924 bytes .../control_widgets.persistent_table.png | Bin 0 -> 3472 bytes .../widgets/control_widgets.round_switch.png | Bin 0 -> 4136 bytes .../control_widgets.rpc_debug_terminal.png | Bin 0 -> 5821 bytes .../control_widgets.rpc_remote_shell.png | Bin 0 -> 5429 bytes .../widgets/control_widgets.rpcbutton.png | Bin 0 -> 963 bytes .../control_widgets.slide_toggle_control.png | Bin 0 -> 5453 bytes .../control_widgets.switch_control.png | Bin 0 -> 3835 bytes .../control_widgets.update_attributes.png | Bin 0 -> 1512 bytes .../widgets/date.date_range_navigator.png | Bin 0 -> 2082 bytes .../widgets/digital_gauges.digital_bar.png | Bin 0 -> 2017 bytes .../digital_gauges.digital_speedometer.png | Bin 0 -> 5432 bytes .../digital_gauges.digital_thermometer.png | Bin 0 -> 6424 bytes .../digital_gauges.digital_vertical_bar.png | Bin 0 -> 2358 bytes .../widgets/digital_gauges.gauge_justgage.png | Bin 0 -> 3990 bytes ...digital_gauges.horizontal_bar_justgage.png | Bin 0 -> 2002 bytes .../widgets/digital_gauges.lcd_bar_gauge.png | Bin 0 -> 1682 bytes .../widgets/digital_gauges.lcd_gauge.png | Bin 0 -> 6469 bytes .../digital_gauges.mini_gauge_justgage.png | Bin 0 -> 3267 bytes .../digital_gauges.neon_gauge_justgage.png | Bin 0 -> 4697 bytes .../digital_gauges.simple_gauge_justgage.png | Bin 0 -> 2632 bytes ...ital_gauges.simple_neon_gauge_justgage.png | Bin 0 -> 3975 bytes .../digital_gauges.vertical_bar_justgage.png | Bin 0 -> 979 bytes .../widgets/edge_widgets.edges_overview.png | Bin 0 -> 3175 bytes ...entity_admin_widgets.asset_admin_table.png | Bin 0 -> 2561 bytes ...ntity_admin_widgets.device_admin_table.png | Bin 0 -> 2519 bytes .../main/data/images/widgets/entity_count.png | Bin 0 -> 1506 bytes .../images/widgets/flooding_level_card.png | Bin 0 -> 1904 bytes ..._card_with_background#background_image.png | Bin 0 -> 31436 bytes .../flooding_level_card_with_background.png | Bin 0 -> 14662 bytes .../widgets/flooding_level_chart_card.png | Bin 0 -> 2453 bytes ..._card_with_background#background_image.png | Bin 0 -> 68223 bytes ...oding_level_chart_card_with_background.png | Bin 0 -> 16211 bytes .../widgets/flooding_level_progress_bar.png | Bin 0 -> 1352 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 22126 bytes ...ing_level_progress_bar_with_background.png | Bin 0 -> 13984 bytes .../gateway_widgets.attributes_card.png | Bin 0 -> 3162 bytes .../gateway_widgets.config_form_latest.png | Bin 0 -> 4904 bytes .../gateway_widgets.gateway_configuration.png | Bin 0 -> 4658 bytes .../gateway_widgets.gateway_connectors.png | Bin 0 -> 3510 bytes ...eway_widgets.gateway_custom_statistics.png | Bin 0 -> 5253 bytes ...dgets.gateway_general_chart_statistics.png | Bin 0 -> 6110 bytes ..._widgets.gateway_general_configuration.png | Bin 0 -> 7622 bytes .../widgets/gateway_widgets.gateway_logs.png | Bin 0 -> 3282 bytes .../widgets/gateway_widgets.service_rpc.png | Bin 0 -> 3624 bytes .../gpio_widgets.basic_gpio_control.png | Bin 0 -> 3418 bytes .../widgets/gpio_widgets.gpio_panel.png | Bin 0 -> 3209 bytes ...gpio_widgets.raspberry_pi_gpio_control.png | Bin 0 -> 5316 bytes .../gpio_widgets.raspberry_pi_gpio_panel.png | Bin 0 -> 6144 bytes .../widgets/ground_temperature_card.png | Bin 0 -> 1934 bytes ..._card_with_background#background_image.png | Bin 0 -> 33329 bytes ...round_temperature_card_with_background.png | Bin 0 -> 14041 bytes .../widgets/ground_temperature_chart_card.png | Bin 0 -> 2522 bytes ..._card_with_background#background_image.png | Bin 0 -> 47668 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 14569 bytes .../widgets/home_page_widgets.dashboards.png | Bin 0 -> 5692 bytes .../home_page_widgets.documentation_links.png | Bin 0 -> 4309 bytes .../home_page_widgets.getting_started.png | Bin 0 -> 5782 bytes .../widgets/home_page_widgets.quick_links.png | Bin 0 -> 3702 bytes .../widgets/home_page_widgets.usage_info.png | Bin 0 -> 4806 bytes .../horizontal_2_1_elliptical_tank.png | Bin 0 -> 4868 bytes .../widgets/horizontal_air_quality_card.png | Bin 0 -> 1181 bytes ..._card_with_background#background_image.png | Bin 0 -> 12374 bytes ...ontal_air_quality_card_with_background.png | Bin 0 -> 4273 bytes .../widgets/horizontal_capsule_tank.png | Bin 0 -> 2498 bytes .../images/widgets/horizontal_co2_card.png | Bin 0 -> 1141 bytes ..._card_with_background#background_image.png | Bin 0 -> 37733 bytes .../horizontal_co2_card_with_background.png | Bin 0 -> 7907 bytes .../widgets/horizontal_cylinder_tank.png | Bin 0 -> 2246 bytes .../widgets/horizontal_dish_ends_tank.png | Bin 0 -> 1964 bytes .../widgets/horizontal_ellipse_tank.png | Bin 0 -> 2293 bytes .../horizontal_flooding_level_card.png | Bin 0 -> 1127 bytes ..._card_with_background#background_image.png | Bin 0 -> 36761 bytes ...al_flooding_level_card_with_background.png | Bin 0 -> 7495 bytes .../horizontal_ground_temperature_card.png | Bin 0 -> 1160 bytes ..._card_with_background#background_image.png | Bin 0 -> 22654 bytes ...round_temperature_card_with_background.png | Bin 0 -> 6130 bytes .../widgets/horizontal_humidity_card.png | Bin 0 -> 1075 bytes ..._card_with_background#background_image.png | Bin 0 -> 28228 bytes ...rizontal_humidity_card_with_background.png | Bin 0 -> 5982 bytes .../widgets/horizontal_illuminance_card.png | Bin 0 -> 1047 bytes ..._card_with_background#background_image.png | Bin 0 -> 25345 bytes ...ontal_illuminance_card_with_background.png | Bin 0 -> 5334 bytes .../widgets/horizontal_leaf_wetness_card.png | Bin 0 -> 1020 bytes ..._card_with_background#background_image.png | Bin 0 -> 28335 bytes ...ntal_leaf_wetness_card_with_background.png | Bin 0 -> 5939 bytes .../widgets/horizontal_noise_level_card.png | Bin 0 -> 1058 bytes ..._card_with_background#background_image.png | Bin 0 -> 37874 bytes ...ontal_noise_level_card_with_background.png | Bin 0 -> 6664 bytes .../images/widgets/horizontal_oval_tank.png | Bin 0 -> 2157 bytes .../images/widgets/horizontal_pm10_card.png | Bin 0 -> 1136 bytes ..._card_with_background#background_image.png | Bin 0 -> 17296 bytes .../horizontal_pm10_card_with_background.png | Bin 0 -> 5294 bytes .../images/widgets/horizontal_pm2_5_card.png | Bin 0 -> 1088 bytes ..._card_with_background#background_image.png | Bin 0 -> 13901 bytes .../horizontal_pm2_5_card_with_background.png | Bin 0 -> 5167 bytes .../widgets/horizontal_pressure_card.png | Bin 0 -> 1186 bytes ..._card_with_background#background_image.png | Bin 0 -> 20754 bytes ...rizontal_pressure_card_with_background.png | Bin 0 -> 5886 bytes .../widgets/horizontal_radon_level_card.png | Bin 0 -> 1256 bytes ..._card_with_background#background_image.png | Bin 0 -> 25801 bytes ...ontal_radon_level_card_with_background.png | Bin 0 -> 6106 bytes .../widgets/horizontal_rainfall_card.png | Bin 0 -> 1104 bytes ..._card_with_background#background_image.png | Bin 0 -> 34862 bytes ...rizontal_rainfall_card_with_background.png | Bin 0 -> 6678 bytes .../widgets/horizontal_snow_depth_card.png | Bin 0 -> 1239 bytes ..._card_with_background#background_image.png | Bin 0 -> 33804 bytes ...zontal_snow_depth_card_with_background.png | Bin 0 -> 6692 bytes .../widgets/horizontal_soil_moisture_card.png | Bin 0 -> 1160 bytes ..._card_with_background#background_image.png | Bin 0 -> 20343 bytes ...tal_soil_moisture_card_with_background.png | Bin 0 -> 6345 bytes .../horizontal_solar_radiation_card.png | Bin 0 -> 1262 bytes ..._card_with_background#background_image.png | Bin 0 -> 15164 bytes ...l_solar_radiation_card_with_background.png | Bin 0 -> 4611 bytes .../widgets/horizontal_temperature_card.png | Bin 0 -> 1173 bytes ..._card_with_background#background_image.png | Bin 0 -> 20495 bytes ...ontal_temperature_card_with_background.png | Bin 0 -> 4770 bytes .../widgets/horizontal_uv_index_card.png | Bin 0 -> 948 bytes ..._card_with_background#background_image.png | Bin 0 -> 11284 bytes ...rizontal_uv_index_card_with_background.png | Bin 0 -> 3814 bytes .../widgets/horizontal_vibration_card.png | Bin 0 -> 1200 bytes ..._card_with_background#background_image.png | Bin 0 -> 11678 bytes ...izontal_vibration_card_with_background.png | Bin 0 -> 3604 bytes .../widgets/horizontal_visibility_card.png | Bin 0 -> 1074 bytes ..._card_with_background#background_image.png | Bin 0 -> 14245 bytes ...zontal_visibility_card_with_background.png | Bin 0 -> 4730 bytes ...zontal_volatile_organic_compounds_card.png | Bin 0 -> 1151 bytes ..._card_with_background#background_image.png | Bin 0 -> 20780 bytes ...organic_compounds_card_with_background.png | Bin 0 -> 4640 bytes .../widgets/horizontal_wind_speed_card.png | Bin 0 -> 1132 bytes ..._card_with_background#background_image.png | Bin 0 -> 13355 bytes ...zontal_wind_speed_card_with_background.png | Bin 0 -> 4398 bytes .../data/images/widgets/humidity_card.png | Bin 0 -> 1883 bytes ..._card_with_background#background_image.png | Bin 0 -> 25732 bytes .../widgets/humidity_card_with_background.png | Bin 0 -> 12022 bytes .../images/widgets/humidity_chart_card.png | Bin 0 -> 2434 bytes ..._card_with_background#background_image.png | Bin 0 -> 49799 bytes .../humidity_chart_card_with_background.png | Bin 0 -> 11768 bytes .../images/widgets/humidity_progress_bar.png | Bin 0 -> 1302 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 16843 bytes .../humidity_progress_bar_with_background.png | Bin 0 -> 12445 bytes .../data/images/widgets/illuminance_card.png | Bin 0 -> 1829 bytes ..._card_with_background#background_image.png | Bin 0 -> 25724 bytes .../illuminance_card_with_background.png | Bin 0 -> 10750 bytes .../images/widgets/illuminance_chart_card.png | Bin 0 -> 2414 bytes ..._card_with_background#background_image.png | Bin 0 -> 50586 bytes ...illuminance_chart_card_with_background.png | Bin 0 -> 11654 bytes .../widgets/illuminance_progress_bar.png | Bin 0 -> 1300 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 16594 bytes ...luminance_progress_bar_with_background.png | Bin 0 -> 11035 bytes .../data/images/widgets/indoor_co2_card.png | Bin 0 -> 1721 bytes ..._card_with_background#background_image.png | Bin 0 -> 24358 bytes .../indoor_co2_card_with_background.png | Bin 0 -> 12887 bytes .../images/widgets/indoor_co2_chart_card.png | Bin 0 -> 2513 bytes ..._card_with_background#background_image.png | Bin 0 -> 42374 bytes .../indoor_co2_chart_card_with_background.png | Bin 0 -> 13925 bytes .../widgets/indoor_horizontal_co2_card.png | Bin 0 -> 1152 bytes ..._card_with_background#background_image.png | Bin 0 -> 23369 bytes ...or_horizontal_co2_card_with_background.png | Bin 0 -> 6071 bytes .../indoor_horizontal_humidity_card.png | Bin 0 -> 1053 bytes ..._card_with_background#background_image.png | Bin 0 -> 17833 bytes ...rizontal_humidity_card_with_background.png | Bin 0 -> 5916 bytes .../indoor_horizontal_illuminance_card.png | Bin 0 -> 1085 bytes ..._card_with_background#background_image.png | Bin 0 -> 18015 bytes ...ontal_illuminance_card_with_background.png | Bin 0 -> 5315 bytes .../widgets/indoor_horizontal_pm10_card.png | Bin 0 -> 1130 bytes ..._card_with_background#background_image.png | Bin 0 -> 28759 bytes ...r_horizontal_pm10_card_with_background.png | Bin 0 -> 7196 bytes .../widgets/indoor_horizontal_pm2_5_card.png | Bin 0 -> 1158 bytes ..._card_with_background#background_image.png | Bin 0 -> 23677 bytes ..._horizontal_pm2_5_card_with_background.png | Bin 0 -> 6188 bytes .../indoor_horizontal_temperature_card.png | Bin 0 -> 1134 bytes ..._card_with_background#background_image.png | Bin 0 -> 22620 bytes ...ontal_temperature_card_with_background.png | Bin 0 -> 6558 bytes .../images/widgets/indoor_humidity_card.png | Bin 0 -> 1840 bytes ..._card_with_background#background_image.png | Bin 0 -> 24176 bytes .../indoor_humidity_card_with_background.png | Bin 0 -> 14580 bytes .../widgets/indoor_humidity_chart_card.png | Bin 0 -> 2284 bytes ..._card_with_background#background_image.png | Bin 0 -> 40458 bytes ...or_humidity_chart_card_with_background.png | Bin 0 -> 15182 bytes .../widgets/indoor_humidity_progress_bar.png | Bin 0 -> 1265 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 15472 bytes ..._humidity_progress_bar_with_background.png | Bin 0 -> 14442 bytes .../widgets/indoor_illuminance_card.png | Bin 0 -> 1932 bytes ..._card_with_background#background_image.png | Bin 0 -> 17864 bytes ...ndoor_illuminance_card_with_background.png | Bin 0 -> 12088 bytes .../widgets/indoor_illuminance_chart_card.png | Bin 0 -> 2469 bytes ..._card_with_background#background_image.png | Bin 0 -> 34444 bytes ...illuminance_chart_card_with_background.png | Bin 0 -> 13422 bytes .../indoor_illuminance_progress_bar.png | Bin 0 -> 1375 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 12386 bytes ...luminance_progress_bar_with_background.png | Bin 0 -> 12874 bytes .../data/images/widgets/indoor_pm10_card.png | Bin 0 -> 1763 bytes ..._card_with_background#background_image.png | Bin 0 -> 23965 bytes .../indoor_pm10_card_with_background.png | Bin 0 -> 12867 bytes .../images/widgets/indoor_pm10_chart_card.png | Bin 0 -> 2401 bytes ..._card_with_background#background_image.png | Bin 0 -> 45957 bytes ...indoor_pm10_chart_card_with_background.png | Bin 0 -> 14429 bytes .../data/images/widgets/indoor_pm2_5_card.png | Bin 0 -> 1767 bytes ..._card_with_background#background_image.png | Bin 0 -> 26622 bytes .../indoor_pm2_5_card_with_background.png | Bin 0 -> 14377 bytes .../widgets/indoor_pm2_5_chart_card.png | Bin 0 -> 2366 bytes ..._card_with_background#background_image.png | Bin 0 -> 50660 bytes ...ndoor_pm2_5_chart_card_with_background.png | Bin 0 -> 14370 bytes .../widgets/indoor_simple_co2_chart_card.png | Bin 0 -> 1471 bytes ..._card_with_background#background_image.png | Bin 0 -> 19629 bytes ..._simple_co2_chart_card_with_background.png | Bin 0 -> 9311 bytes .../indoor_simple_humidity_chart_card.png | Bin 0 -> 1354 bytes ..._card_with_background#background_image.png | Bin 0 -> 18661 bytes ...le_humidity_chart_card_with_background.png | Bin 0 -> 9997 bytes .../indoor_simple_illuminance_chart_card.png | Bin 0 -> 1449 bytes ..._card_with_background#background_image.png | Bin 0 -> 15653 bytes ...illuminance_chart_card_with_background.png | Bin 0 -> 8362 bytes .../widgets/indoor_simple_pm10_chart_card.png | Bin 0 -> 1414 bytes ..._card_with_background#background_image.png | Bin 0 -> 21911 bytes ...simple_pm10_chart_card_with_background.png | Bin 0 -> 9817 bytes .../indoor_simple_pm2_5_chart_card.png | Bin 0 -> 1405 bytes ..._card_with_background#background_image.png | Bin 0 -> 18896 bytes ...imple_pm2_5_chart_card_with_background.png | Bin 0 -> 8238 bytes .../indoor_simple_temperature_chart_card.png | Bin 0 -> 1412 bytes ..._card_with_background#background_image.png | Bin 0 -> 20863 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 10329 bytes .../widgets/indoor_temperature_card.png | Bin 0 -> 1856 bytes ..._card_with_background#background_image.png | Bin 0 -> 22488 bytes ...ndoor_temperature_card_with_background.png | Bin 0 -> 13893 bytes .../widgets/indoor_temperature_chart_card.png | Bin 0 -> 2003 bytes ..._card_with_background#background_image.png | Bin 0 -> 40585 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 14551 bytes .../indoor_temperature_progress_bar.png | Bin 0 -> 1299 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 16653 bytes ...mperature_progress_bar_with_background.png | Bin 0 -> 14767 bytes .../input_widgets.device_claiming_widget.png | Bin 0 -> 4208 bytes ..._widgets.markers_placement_google_maps.png | Bin 0 -> 15423 bytes ....markers_placement_image_map#map_image.svg | 685 ++++++++++++++++++ ...ut_widgets.markers_placement_image_map.png | Bin 0 -> 9675 bytes ...idgets.markers_placement_openstreetmap.png | Bin 0 -> 17337 bytes ...nput_widgets.update_boolean_timeseries.png | Bin 0 -> 599 bytes ...input_widgets.update_double_timeseries.png | Bin 0 -> 915 bytes ...nput_widgets.update_integer_timeseries.png | Bin 0 -> 904 bytes .../input_widgets.update_json_attribute.png | Bin 0 -> 5039 bytes ...put_widgets.update_location_timeseries.png | Bin 0 -> 2459 bytes ...put_widgets.update_multiple_attributes.png | Bin 0 -> 5976 bytes ...idgets.update_server_boolean_attribute.png | Bin 0 -> 599 bytes ...t_widgets.update_server_date_attribute.png | Bin 0 -> 1933 bytes ...widgets.update_server_double_attribute.png | Bin 0 -> 915 bytes ..._widgets.update_server_image_attribute.png | Bin 0 -> 2191 bytes ...idgets.update_server_integer_attribute.png | Bin 0 -> 904 bytes ...dgets.update_server_location_attribute.png | Bin 0 -> 2459 bytes ...widgets.update_server_string_attribute.png | Bin 0 -> 1003 bytes ...idgets.update_shared_boolean_attribute.png | Bin 0 -> 599 bytes ...t_widgets.update_shared_date_attribute.png | Bin 0 -> 1933 bytes ...widgets.update_shared_double_attribute.png | Bin 0 -> 915 bytes ..._widgets.update_shared_image_attribute.png | Bin 0 -> 2191 bytes ...idgets.update_shared_integer_attribute.png | Bin 0 -> 904 bytes ...dgets.update_shared_location_attribute.png | Bin 0 -> 2459 bytes ...widgets.update_shared_string_attribute.png | Bin 0 -> 1003 bytes ...input_widgets.update_string_timeseries.png | Bin 0 -> 1003 bytes .../input_widgets.web_camera_input.png | Bin 0 -> 2907 bytes .../data/images/widgets/leaf_wetness_card.png | Bin 0 -> 1771 bytes ..._card_with_background#background_image.png | Bin 0 -> 30380 bytes .../leaf_wetness_card_with_background.png | Bin 0 -> 12375 bytes .../widgets/leaf_wetness_chart_card.png | Bin 0 -> 2268 bytes ..._card_with_background#background_image.png | Bin 0 -> 56519 bytes ...eaf_wetness_chart_card_with_background.png | Bin 0 -> 13888 bytes .../widgets/leaf_wetness_progress_bar.png | Bin 0 -> 1319 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 18812 bytes ...f_wetness_progress_bar_with_background.png | Bin 0 -> 12014 bytes .../maps_v2.google_maps#marker_image_1.png | Bin 0 -> 3235 bytes .../maps_v2.google_maps#marker_image_2.png | Bin 0 -> 3698 bytes .../maps_v2.google_maps#marker_image_3.png | Bin 0 -> 3351 bytes .../maps_v2.google_maps#marker_image_4.png | Bin 0 -> 3280 bytes .../images/widgets/maps_v2.google_maps.png | Bin 0 -> 15332 bytes .../widgets/maps_v2.here_map#map_image.svg | 7 + .../maps_v2.here_map#marker_image_1.png | Bin 0 -> 3235 bytes .../maps_v2.here_map#marker_image_2.png | Bin 0 -> 3698 bytes .../maps_v2.here_map#marker_image_3.png | Bin 0 -> 3351 bytes .../maps_v2.here_map#marker_image_4.png | Bin 0 -> 3280 bytes .../data/images/widgets/maps_v2.here_map.png | Bin 0 -> 17100 bytes .../widgets/maps_v2.image_map#map_image.svg | 685 ++++++++++++++++++ .../maps_v2.image_map#marker_image_1.png | Bin 0 -> 3235 bytes .../maps_v2.image_map#marker_image_2.png | Bin 0 -> 3698 bytes .../maps_v2.image_map#marker_image_3.png | Bin 0 -> 3351 bytes .../maps_v2.image_map#marker_image_4.png | Bin 0 -> 3280 bytes .../data/images/widgets/maps_v2.image_map.png | Bin 0 -> 9012 bytes .../maps_v2.openstreetmap#marker_image_1.png | Bin 0 -> 3235 bytes .../maps_v2.openstreetmap#marker_image_2.png | Bin 0 -> 3698 bytes .../maps_v2.openstreetmap#marker_image_3.png | Bin 0 -> 3351 bytes .../maps_v2.openstreetmap#marker_image_4.png | Bin 0 -> 3280 bytes .../images/widgets/maps_v2.openstreetmap.png | Bin 0 -> 11313 bytes .../maps_v2.route_map#marker_image_1.png | Bin 0 -> 12948 bytes .../maps_v2.route_map#marker_image_2.png | Bin 0 -> 12469 bytes .../maps_v2.route_map#marker_image_3.png | Bin 0 -> 12840 bytes .../data/images/widgets/maps_v2.route_map.png | Bin 0 -> 15132 bytes ...route_map_openstreetmap#marker_image_1.png | Bin 0 -> 12948 bytes ...route_map_openstreetmap#marker_image_2.png | Bin 0 -> 12469 bytes ...route_map_openstreetmap#marker_image_3.png | Bin 0 -> 12840 bytes .../maps_v2.route_map_openstreetmap.png | Bin 0 -> 18071 bytes ....route_map_tencent_maps#marker_image_1.png | Bin 0 -> 12948 bytes ....route_map_tencent_maps#marker_image_2.png | Bin 0 -> 12469 bytes ....route_map_tencent_maps#marker_image_3.png | Bin 0 -> 12840 bytes .../maps_v2.route_map_tencent_maps.png | Bin 0 -> 13167 bytes .../maps_v2.tencent_maps#marker_image_1.png | Bin 0 -> 3235 bytes .../maps_v2.tencent_maps#marker_image_2.png | Bin 0 -> 3698 bytes .../maps_v2.tencent_maps#marker_image_3.png | Bin 0 -> 3351 bytes .../maps_v2.tencent_maps#marker_image_4.png | Bin 0 -> 3280 bytes .../images/widgets/maps_v2.tencent_maps.png | Bin 0 -> 14143 bytes .../main/data/images/widgets/maps_v2.test.png | Bin 0 -> 13185 bytes .../navigation_widgets.navigation_card.png | Bin 0 -> 1753 bytes .../navigation_widgets.navigation_cards.png | Bin 0 -> 6989 bytes .../data/images/widgets/noise_level_card.png | Bin 0 -> 1753 bytes ..._card_with_background#background_image.png | Bin 0 -> 35693 bytes .../noise_level_card_with_background.png | Bin 0 -> 13105 bytes .../images/widgets/noise_level_chart_card.png | Bin 0 -> 2388 bytes ..._card_with_background#background_image.png | Bin 0 -> 79103 bytes ...noise_level_chart_card_with_background.png | Bin 0 -> 13716 bytes .../main/data/images/widgets/pm10_card.png | Bin 0 -> 1810 bytes ..._card_with_background#background_image.png | Bin 0 -> 20161 bytes .../widgets/pm10_card_with_background.png | Bin 0 -> 11358 bytes .../data/images/widgets/pm10_chart_card.png | Bin 0 -> 2441 bytes ..._card_with_background#background_image.png | Bin 0 -> 34029 bytes .../pm10_chart_card_with_background.png | Bin 0 -> 12120 bytes .../main/data/images/widgets/pm2_5_card.png | Bin 0 -> 1762 bytes ..._card_with_background#background_image.png | Bin 0 -> 16337 bytes .../widgets/pm2_5_card_with_background.png | Bin 0 -> 10408 bytes .../data/images/widgets/pm2_5_chart_card.png | Bin 0 -> 2346 bytes ..._card_with_background#background_image.png | Bin 0 -> 30712 bytes .../pm2_5_chart_card_with_background.png | Bin 0 -> 11145 bytes .../data/images/widgets/pressure_card.png | Bin 0 -> 1763 bytes ..._card_with_background#background_image.png | Bin 0 -> 23397 bytes .../widgets/pressure_card_with_background.png | Bin 0 -> 11630 bytes .../images/widgets/pressure_chart_card.png | Bin 0 -> 2682 bytes ..._card_with_background#background_image.png | Bin 0 -> 42723 bytes .../pressure_chart_card_with_background.png | Bin 0 -> 12853 bytes .../images/widgets/pressure_progress_bar.png | Bin 0 -> 1539 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 17010 bytes .../pressure_progress_bar_with_background.png | Bin 0 -> 13060 bytes .../main/data/images/widgets/progress_bar.png | Bin 0 -> 1383 bytes .../data/images/widgets/radon_level_card.png | Bin 0 -> 1919 bytes ..._card_with_background#background_image.png | Bin 0 -> 30966 bytes .../radon_level_card_with_background.png | Bin 0 -> 14288 bytes .../images/widgets/radon_level_chart_card.png | Bin 0 -> 2454 bytes ..._card_with_background#background_image.png | Bin 0 -> 57276 bytes ...radon_level_chart_card_with_background.png | Bin 0 -> 15631 bytes .../data/images/widgets/rainfall_card.png | Bin 0 -> 1742 bytes ..._card_with_background#background_image.png | Bin 0 -> 34115 bytes .../widgets/rainfall_card_with_background.png | Bin 0 -> 13287 bytes .../images/widgets/rainfall_chart_card.png | Bin 0 -> 2345 bytes ..._card_with_background#background_image.png | Bin 0 -> 72727 bytes .../rainfall_chart_card_with_background.png | Bin 0 -> 14616 bytes .../data/images/widgets/rectangle_tank.png | Bin 0 -> 1565 bytes .../data/images/widgets/signal_strength.png | Bin 0 -> 1771 bytes .../widgets/simple_air_quality_chart_card.png | Bin 0 -> 1559 bytes ..._card_with_background#background_image.png | Bin 0 -> 13341 bytes ...air_quality_chart_card_with_background.png | Bin 0 -> 7065 bytes .../images/widgets/simple_co2_chart_card.png | Bin 0 -> 1493 bytes ..._card_with_background#background_image.png | Bin 0 -> 33514 bytes .../simple_co2_chart_card_with_background.png | Bin 0 -> 13183 bytes .../simple_flooding_level_chart_card.png | Bin 0 -> 1583 bytes ..._card_with_background#background_image.png | Bin 0 -> 30681 bytes ...oding_level_chart_card_with_background.png | Bin 0 -> 11089 bytes .../simple_ground_temperature_chart_card.png | Bin 0 -> 1545 bytes ..._card_with_background#background_image.png | Bin 0 -> 23638 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 10218 bytes .../widgets/simple_humidity_chart_card.png | Bin 0 -> 1368 bytes ..._card_with_background#background_image.png | Bin 0 -> 22945 bytes ...le_humidity_chart_card_with_background.png | Bin 0 -> 9117 bytes .../widgets/simple_illuminance_chart_card.png | Bin 0 -> 1434 bytes ..._card_with_background#background_image.png | Bin 0 -> 25861 bytes ...illuminance_chart_card_with_background.png | Bin 0 -> 9187 bytes .../simple_leaf_wetness_chart_card.png | Bin 0 -> 1454 bytes ..._card_with_background#background_image.png | Bin 0 -> 23982 bytes ...eaf_wetness_chart_card_with_background.png | Bin 0 -> 9482 bytes .../widgets/simple_noise_level_chart_card.png | Bin 0 -> 1414 bytes ..._card_with_background#background_image.png | Bin 0 -> 32413 bytes ...noise_level_chart_card_with_background.png | Bin 0 -> 9995 bytes .../images/widgets/simple_pm10_chart_card.png | Bin 0 -> 1403 bytes ..._card_with_background#background_image.png | Bin 0 -> 15912 bytes ...simple_pm10_chart_card_with_background.png | Bin 0 -> 8074 bytes .../widgets/simple_pm2_5_chart_card.png | Bin 0 -> 1414 bytes ..._card_with_background#background_image.png | Bin 0 -> 13366 bytes ...imple_pm2_5_chart_card_with_background.png | Bin 0 -> 6786 bytes .../widgets/simple_pressure_chart_card.png | Bin 0 -> 1427 bytes ..._card_with_background#background_image.png | Bin 0 -> 20878 bytes ...le_pressure_chart_card_with_background.png | Bin 0 -> 9304 bytes .../widgets/simple_radon_level_chart_card.png | Bin 0 -> 1507 bytes ..._card_with_background#background_image.png | Bin 0 -> 23706 bytes ...radon_level_chart_card_with_background.png | Bin 0 -> 9744 bytes .../widgets/simple_rainfall_chart_card.png | Bin 0 -> 1269 bytes ..._card_with_background#background_image.png | Bin 0 -> 29807 bytes ...le_rainfall_chart_card_with_background.png | Bin 0 -> 9337 bytes .../widgets/simple_snow_depth_chart_card.png | Bin 0 -> 1513 bytes ..._card_with_background#background_image.png | Bin 0 -> 26283 bytes ..._snow_depth_chart_card_with_background.png | Bin 0 -> 9205 bytes .../simple_soil_moisture_chart_card.png | Bin 0 -> 1507 bytes ..._card_with_background#background_image.png | Bin 0 -> 22074 bytes ...il_moisture_chart_card_with_background.png | Bin 0 -> 10392 bytes .../simple_solar_radiation_chart_card.png | Bin 0 -> 1551 bytes ..._card_with_background#background_image.png | Bin 0 -> 15481 bytes ...r_radiation_chart_card_with_background.png | Bin 0 -> 7785 bytes .../widgets/simple_temperature_chart_card.png | Bin 0 -> 1441 bytes ..._card_with_background#background_image.png | Bin 0 -> 17965 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 7928 bytes .../widgets/simple_uv_index_chart_card.png | Bin 0 -> 1124 bytes ..._card_with_background#background_image.png | Bin 0 -> 12231 bytes ...le_uv_index_chart_card_with_background.png | Bin 0 -> 6807 bytes .../widgets/simple_value_and_chart_card.png | Bin 0 -> 1511 bytes .../widgets/simple_vibration_chart_card.png | Bin 0 -> 1483 bytes ..._card_with_background#background_image.png | Bin 0 -> 11890 bytes ...e_vibration_chart_card_with_background.png | Bin 0 -> 6094 bytes .../widgets/simple_visibility_chart_card.png | Bin 0 -> 1398 bytes ..._card_with_background#background_image.png | Bin 0 -> 14824 bytes ..._visibility_chart_card_with_background.png | Bin 0 -> 6903 bytes ..._volatile_organic_compounds_chart_card.png | Bin 0 -> 1408 bytes ..._card_with_background#background_image.png | Bin 0 -> 19334 bytes ...c_compounds_chart_card_with_background.png | Bin 0 -> 7870 bytes .../widgets/simple_wind_speed_chart_card.png | Bin 0 -> 1452 bytes ..._card_with_background#background_image.png | Bin 0 -> 23559 bytes ..._wind_speed_chart_card_with_background.png | Bin 0 -> 6099 bytes .../data/images/widgets/snow_depth_card.png | Bin 0 -> 1844 bytes ..._card_with_background#background_image.png | Bin 0 -> 25132 bytes .../snow_depth_card_with_background.png | Bin 0 -> 12465 bytes .../images/widgets/snow_depth_chart_card.png | Bin 0 -> 2574 bytes ..._card_with_background#background_image.png | Bin 0 -> 52588 bytes .../snow_depth_chart_card_with_background.png | Bin 0 -> 13174 bytes .../images/widgets/soil_moisture_card.png | Bin 0 -> 2000 bytes ..._card_with_background#background_image.png | Bin 0 -> 27544 bytes .../soil_moisture_card_with_background.png | Bin 0 -> 14870 bytes .../widgets/soil_moisture_chart_card.png | Bin 0 -> 2403 bytes ..._card_with_background#background_image.png | Bin 0 -> 52702 bytes ...il_moisture_chart_card_with_background.png | Bin 0 -> 16113 bytes .../widgets/soil_moisture_progress_bar.png | Bin 0 -> 1477 bytes ...s_bar_with_background#background_image.png | Bin 0 -> 16369 bytes ..._moisture_progress_bar_with_background.png | Bin 0 -> 13438 bytes .../images/widgets/solar_radiation_card.png | Bin 0 -> 1905 bytes ..._card_with_background#background_image.png | Bin 0 -> 17246 bytes .../solar_radiation_card_with_background.png | Bin 0 -> 10050 bytes .../widgets/solar_radiation_chart_card.png | Bin 0 -> 2492 bytes ..._card_with_background#background_image.png | Bin 0 -> 32170 bytes ...r_radiation_chart_card_with_background.png | Bin 0 -> 11435 bytes .../data/images/widgets/temperature_card.png | Bin 0 -> 1982 bytes ..._card_with_background#background_image.png | Bin 0 -> 19594 bytes .../temperature_card_with_background.png | Bin 0 -> 10328 bytes .../images/widgets/temperature_chart_card.png | Bin 0 -> 2512 bytes ..._card_with_background#background_image.png | Bin 0 -> 43722 bytes ...temperature_chart_card_with_background.png | Bin 0 -> 11109 bytes .../data/images/widgets/uv_index_card.png | Bin 0 -> 1353 bytes ..._card_with_background#background_image.png | Bin 0 -> 16181 bytes .../widgets/uv_index_card_with_background.png | Bin 0 -> 9450 bytes .../images/widgets/uv_index_chart_card.png | Bin 0 -> 1922 bytes ..._card_with_background#background_image.png | Bin 0 -> 30848 bytes .../uv_index_chart_card_with_background.png | Bin 0 -> 9650 bytes .../images/widgets/vertical_capsule_tank.png | Bin 0 -> 1937 bytes .../images/widgets/vertical_cylinder_tank.png | Bin 0 -> 2145 bytes .../images/widgets/vertical_oval_tank.png | Bin 0 -> 2111 bytes .../data/images/widgets/vibration_card.png | Bin 0 -> 1780 bytes ..._card_with_background#background_image.png | Bin 0 -> 17017 bytes .../vibration_card_with_background.png | Bin 0 -> 9084 bytes .../images/widgets/vibration_chart_card.png | Bin 0 -> 2609 bytes ..._card_with_background#background_image.png | Bin 0 -> 30372 bytes .../vibration_chart_card_with_background.png | Bin 0 -> 9228 bytes .../data/images/widgets/visibility_card.png | Bin 0 -> 1876 bytes ..._card_with_background#background_image.png | Bin 0 -> 17926 bytes .../visibility_card_with_background.png | Bin 0 -> 9399 bytes .../images/widgets/visibility_chart_card.png | Bin 0 -> 2325 bytes ..._card_with_background#background_image.png | Bin 0 -> 35976 bytes .../visibility_chart_card_with_background.png | Bin 0 -> 10296 bytes .../volatile_organic_compounds_card.png | Bin 0 -> 1863 bytes ..._card_with_background#background_image.png | Bin 0 -> 22035 bytes ...organic_compounds_card_with_background.png | Bin 0 -> 10152 bytes .../volatile_organic_compounds_chart_card.png | Bin 0 -> 2448 bytes ..._card_with_background#background_image.png | Bin 0 -> 41316 bytes ...c_compounds_chart_card_with_background.png | Bin 0 -> 10706 bytes .../widgets/wind_speed_and_direction.png | Bin 0 -> 1940 bytes ...ction_with_background#background_image.png | Bin 0 -> 24661 bytes ...nd_speed_and_direction_with_background.png | Bin 0 -> 9724 bytes .../data/images/widgets/wind_speed_card.png | Bin 0 -> 1756 bytes ..._card_with_background#background_image.png | Bin 0 -> 15438 bytes .../wind_speed_card_with_background.png | Bin 0 -> 8955 bytes .../images/widgets/wind_speed_chart_card.png | Bin 0 -> 2457 bytes ..._card_with_background#background_image.png | Bin 0 -> 29286 bytes .../wind_speed_chart_card_with_background.png | Bin 0 -> 9837 bytes .../json/demo/dashboards/thermostats.json | 12 +- .../system/widget_bundles/air_quality.json | 2 +- .../system/widget_bundles/alarm_widgets.json | 2 +- .../widget_bundles/analogue_gauges.json | 2 +- .../json/system/widget_bundles/cards.json | 2 +- .../json/system/widget_bundles/charts.json | 2 +- .../widget_bundles/control_widgets.json | 2 +- .../system/widget_bundles/count_widgets.json | 2 +- .../data/json/system/widget_bundles/date.json | 2 +- .../system/widget_bundles/digital_gauges.json | 2 +- .../system/widget_bundles/edge_widgets.json | 2 +- .../widget_bundles/entity_admin_widgets.json | 2 +- .../system/widget_bundles/entity_widgets.json | 2 +- .../widget_bundles/gateway_widgets.json | 4 +- .../system/widget_bundles/gpio_widgets.json | 2 +- .../widget_bundles/home_page_widgets.json | 2 +- .../system/widget_bundles/html_widgets.json | 2 +- .../widget_bundles/indoor_environment.json | 2 +- .../system/widget_bundles/input_widgets.json | 2 +- .../widget_bundles/liquid_level_tanks.json | 4 +- .../data/json/system/widget_bundles/maps.json | 2 +- .../widget_bundles/navigation_widgets.json | 2 +- .../widget_bundles/outdoor_environment.json | 2 +- .../widget_bundles/status_indicators.json | 2 +- .../json/system/widget_bundles/tables.json | 2 +- .../widget_types/air_quality_index_card.json | 2 +- ...ir_quality_index_card_with_background.json | 4 +- .../air_quality_index_chart_card.json | 2 +- ...lity_index_chart_card_with_background.json | 4 +- .../json/system/widget_types/alarm_count.json | 2 +- .../system/widget_types/alarms_table.json | 2 +- .../widget_types/asset_admin_table.json | 2 +- .../system/widget_types/attributes_card.json | 2 +- .../data/json/system/widget_types/bars.json | 2 +- .../widget_types/basic_gpio_control.json | 2 +- .../system/widget_types/basic_gpio_panel.json | 2 +- .../system/widget_types/battery_level.json | 2 +- .../json/system/widget_types/co2_card.json | 2 +- .../co2_card_with_background.json | 4 +- .../system/widget_types/co2_chart_card.json | 2 +- .../co2_chart_card_with_background.json | 4 +- .../json/system/widget_types/compass.json | 8 +- .../widget_types/dashboard_state_widget.json | 2 +- .../json/system/widget_types/dashboards.json | 2 +- .../widget_types/date_range_navigator.json | 2 +- .../widget_types/device_admin_table.json | 2 +- .../widget_types/device_claiming_widget.json | 2 +- .../widget_types/digital_horizontal_bar.json | 2 +- .../widget_types/digital_speedometer.json | 2 +- .../widget_types/digital_thermometer.json | 2 +- .../widget_types/digital_vertical_bar.json | 2 +- .../widget_types/documentation_links.json | 2 +- .../json/system/widget_types/doughnut.json | 2 +- .../widget_types/edge_quick_overview.json | 2 +- .../widget_types/entities_hierarchy.json | 2 +- .../system/widget_types/entities_table.json | 2 +- .../system/widget_types/entity_count.json | 2 +- .../widget_types/flooding_level_card.json | 2 +- .../flooding_level_card_with_background.json | 4 +- .../flooding_level_chart_card.json | 2 +- ...ding_level_chart_card_with_background.json | 4 +- .../flooding_level_progress_bar.json | 2 +- ...ng_level_progress_bar_with_background.json | 4 +- .../widget_types/gateway_configuration.json | 2 +- ...gateway_configuration__single_device_.json | 2 +- .../widget_types/gateway_connectors.json | 4 +- .../gateway_custom_statistics.json | 4 +- .../system/widget_types/gateway_events.json | 2 +- .../gateway_general_chart_statistics.json | 4 +- .../gateway_general_configuration.json | 4 +- .../system/widget_types/gateway_logs.json | 4 +- .../data/json/system/widget_types/gauge.json | 2 +- .../system/widget_types/getting_started.json | 2 +- .../json/system/widget_types/google_map.json | 4 +- .../widget_types/ground_temperature_card.json | 2 +- ...ound_temperature_card_with_background.json | 4 +- .../ground_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../json/system/widget_types/here_map.json | 4 +- .../horizontal_2_1_elliptical_tank.json | 4 +- .../horizontal_air_quality_index_card.json | 2 +- ...ir_quality_index_card_with_background.json | 4 +- .../system/widget_types/horizontal_bar.json | 2 +- .../widget_types/horizontal_capsule_tank.json | 2 +- .../widget_types/horizontal_co2_card.json | 2 +- .../horizontal_co2_card_with_background.json | 4 +- .../horizontal_cylinder_tank.json | 2 +- .../horizontal_dish_ends_tank.json | 4 +- .../widget_types/horizontal_ellipse_tank.json | 2 +- .../horizontal_flooding_level_card.json | 2 +- ...l_flooding_level_card_with_background.json | 4 +- .../horizontal_ground_temperature_card.json | 2 +- ...ound_temperature_card_with_background.json | 4 +- .../horizontal_humidity_card.json | 2 +- ...izontal_humidity_card_with_background.json | 4 +- .../horizontal_illuminance_card.json | 2 +- ...ntal_illuminance_card_with_background.json | 4 +- .../horizontal_leaf_wetness_card.json | 2 +- ...tal_leaf_wetness_card_with_background.json | 4 +- .../horizontal_noise_level_card.json | 2 +- ...ntal_noise_level_card_with_background.json | 4 +- .../widget_types/horizontal_oval_tank.json | 2 +- .../widget_types/horizontal_pm10_card.json | 2 +- .../horizontal_pm10_card_with_background.json | 4 +- .../widget_types/horizontal_pm2_5_card.json | 2 +- ...horizontal_pm2_5_card_with_background.json | 4 +- .../horizontal_pressure_card.json | 2 +- ...izontal_pressure_card_with_background.json | 4 +- .../horizontal_radon_level_card.json | 2 +- ...ntal_radon_level_card_with_background.json | 4 +- .../horizontal_rainfall_card.json | 2 +- ...izontal_rainfall_card_with_background.json | 4 +- .../horizontal_snow_depth_card.json | 2 +- ...ontal_snow_depth_card_with_background.json | 4 +- .../horizontal_soil_moisture_card.json | 2 +- ...al_soil_moisture_card_with_background.json | 4 +- .../horizontal_solar_radiation_card.json | 2 +- ..._solar_radiation_card_with_background.json | 4 +- .../horizontal_temperature_card.json | 2 +- ...ntal_temperature_card_with_background.json | 4 +- .../horizontal_uv_index_card.json | 2 +- ...izontal_uv_index_card_with_background.json | 4 +- .../widget_types/horizontal_value_card.json | 2 +- .../horizontal_vibration_card.json | 2 +- ...zontal_vibration_card_with_background.json | 4 +- .../horizontal_visibility_card.json | 2 +- ...ontal_visibility_card_with_background.json | 4 +- ...ontal_volatile_organic_compounds_card.json | 2 +- ...rganic_compounds_card_with_background.json | 4 +- .../horizontal_wind_speed_card.json | 2 +- ...ontal_wind_speed_card_with_background.json | 4 +- .../json/system/widget_types/html_card.json | 2 +- .../system/widget_types/html_value_card.json | 2 +- .../system/widget_types/humidity_card.json | 2 +- .../humidity_card_with_background.json | 4 +- .../widget_types/humidity_chart_card.json | 2 +- .../humidity_chart_card_with_background.json | 4 +- .../widget_types/humidity_progress_bar.json | 2 +- ...humidity_progress_bar_with_background.json | 4 +- .../system/widget_types/illuminance_card.json | 2 +- .../illuminance_card_with_background.json | 4 +- .../widget_types/illuminance_chart_card.json | 2 +- ...lluminance_chart_card_with_background.json | 4 +- .../illuminance_progress_bar.json | 2 +- ...uminance_progress_bar_with_background.json | 4 +- .../json/system/widget_types/image_map.json | 4 +- .../system/widget_types/indoor_co2_card.json | 2 +- .../indoor_co2_card_with_background.json | 4 +- .../widget_types/indoor_co2_chart_card.json | 2 +- ...indoor_co2_chart_card_with_background.json | 4 +- .../indoor_horizontal_co2_card.json | 2 +- ...r_horizontal_co2_card_with_background.json | 4 +- .../indoor_horizontal_humidity_card.json | 2 +- ...izontal_humidity_card_with_background.json | 4 +- .../indoor_horizontal_illuminance_card.json | 2 +- ...ntal_illuminance_card_with_background.json | 4 +- .../indoor_horizontal_pm10_card.json | 2 +- ..._horizontal_pm10_card_with_background.json | 4 +- .../indoor_horizontal_pm2_5_card.json | 2 +- ...horizontal_pm2_5_card_with_background.json | 4 +- .../indoor_horizontal_temperature_card.json | 2 +- ...ntal_temperature_card_with_background.json | 4 +- .../widget_types/indoor_humidity_card.json | 2 +- .../indoor_humidity_card_with_background.json | 4 +- .../indoor_humidity_chart_card.json | 2 +- ...r_humidity_chart_card_with_background.json | 4 +- .../indoor_humidity_progress_bar.json | 2 +- ...humidity_progress_bar_with_background.json | 4 +- .../widget_types/indoor_illuminance_card.json | 2 +- ...door_illuminance_card_with_background.json | 4 +- .../indoor_illuminance_chart_card.json | 2 +- ...lluminance_chart_card_with_background.json | 4 +- .../indoor_illuminance_progress_bar.json | 2 +- ...uminance_progress_bar_with_background.json | 4 +- .../system/widget_types/indoor_pm10_card.json | 2 +- .../indoor_pm10_card_with_background.json | 4 +- .../widget_types/indoor_pm10_chart_card.json | 2 +- ...ndoor_pm10_chart_card_with_background.json | 4 +- .../widget_types/indoor_pm2_5_card.json | 2 +- .../indoor_pm2_5_card_with_background.json | 4 +- .../widget_types/indoor_pm2_5_chart_card.json | 2 +- ...door_pm2_5_chart_card_with_background.json | 4 +- .../indoor_simple_co2_chart_card.json | 2 +- ...simple_co2_chart_card_with_background.json | 4 +- .../indoor_simple_humidity_chart_card.json | 2 +- ...e_humidity_chart_card_with_background.json | 4 +- .../indoor_simple_illuminance_chart_card.json | 2 +- ...lluminance_chart_card_with_background.json | 4 +- .../indoor_simple_pm10_chart_card.json | 2 +- ...imple_pm10_chart_card_with_background.json | 4 +- .../indoor_simple_pm2_5_chart_card.json | 2 +- ...mple_pm2_5_chart_card_with_background.json | 4 +- .../indoor_simple_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../widget_types/indoor_temperature_card.json | 2 +- ...door_temperature_card_with_background.json | 4 +- .../indoor_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../indoor_temperature_progress_bar.json | 2 +- ...perature_progress_bar_with_background.json | 4 +- .../system/widget_types/knob_control.json | 2 +- .../system/widget_types/label_widget.json | 4 +- .../system/widget_types/lcd_bar_gauge.json | 2 +- .../json/system/widget_types/lcd_gauge.json | 2 +- .../widget_types/leaf_wetness_card.json | 2 +- .../leaf_wetness_card_with_background.json | 4 +- .../widget_types/leaf_wetness_chart_card.json | 2 +- ...af_wetness_chart_card_with_background.json | 4 +- .../leaf_wetness_progress_bar.json | 2 +- ..._wetness_progress_bar_with_background.json | 4 +- .../system/widget_types/led_indicator.json | 2 +- .../widget_types/markdown_html_card.json | 2 +- .../markers_placement___google_maps.json | 2 +- .../markers_placement___image_map.json | 4 +- .../markers_placement___openstreetmap.json | 2 +- .../json/system/widget_types/mini_gauge.json | 2 +- .../system/widget_types/navigation_card.json | 2 +- .../system/widget_types/navigation_cards.json | 2 +- .../json/system/widget_types/neon_gauge.json | 2 +- .../system/widget_types/noise_level_card.json | 2 +- .../noise_level_card_with_background.json | 4 +- .../widget_types/noise_level_chart_card.json | 2 +- ...oise_level_chart_card_with_background.json | 4 +- .../system/widget_types/openstreet_map.json | 4 +- .../widget_types/persistent_rpc_table.json | 2 +- .../widget_types/photo_camera_input.json | 2 +- .../system/widget_types/pie___chart_js.json | 2 +- .../json/system/widget_types/pie___flot.json | 2 +- .../json/system/widget_types/pm10_card.json | 2 +- .../pm10_card_with_background.json | 4 +- .../system/widget_types/pm10_chart_card.json | 2 +- .../pm10_chart_card_with_background.json | 4 +- .../json/system/widget_types/pm2_5_card.json | 2 +- .../pm2_5_card_with_background.json | 4 +- .../system/widget_types/pm2_5_chart_card.json | 2 +- .../pm2_5_chart_card_with_background.json | 4 +- .../json/system/widget_types/polar_area.json | 2 +- .../system/widget_types/pressure_card.json | 2 +- .../pressure_card_with_background.json | 4 +- .../widget_types/pressure_chart_card.json | 2 +- .../pressure_chart_card_with_background.json | 4 +- .../widget_types/pressure_progress_bar.json | 2 +- ...pressure_progress_bar_with_background.json | 4 +- .../system/widget_types/progress_bar.json | 2 +- .../json/system/widget_types/qr_code.json | 2 +- .../json/system/widget_types/quick_links.json | 2 +- .../data/json/system/widget_types/radar.json | 2 +- .../system/widget_types/radial_gauge.json | 8 +- .../system/widget_types/radon_level_card.json | 2 +- .../radon_level_card_with_background.json | 4 +- .../widget_types/radon_level_chart_card.json | 2 +- ...adon_level_chart_card_with_background.json | 4 +- .../system/widget_types/rainfall_card.json | 2 +- .../rainfall_card_with_background.json | 4 +- .../widget_types/rainfall_chart_card.json | 2 +- .../rainfall_chart_card_with_background.json | 4 +- .../raspberry_pi_gpio_control.json | 2 +- .../widget_types/raspberry_pi_gpio_panel.json | 2 +- .../system/widget_types/rectangle_tank.json | 2 +- .../system/widget_types/round_switch.json | 2 +- .../widget_types/route_map___google.json | 4 +- .../widget_types/route_map___openstreet.json | 4 +- .../widget_types/route_map___tencent.json | 4 +- .../json/system/widget_types/rpc_button.json | 2 +- .../widget_types/rpc_debug_terminal.json | 2 +- .../system/widget_types/rpc_remote_shell.json | 2 +- .../json/system/widget_types/service_rpc.json | 4 +- .../system/widget_types/signal_strength.json | 2 +- .../simple_air_quality_index_chart_card.json | 2 +- ...lity_index_chart_card_with_background.json | 4 +- .../json/system/widget_types/simple_card.json | 2 +- .../widget_types/simple_co2_chart_card.json | 2 +- ...simple_co2_chart_card_with_background.json | 4 +- .../simple_flooding_level_chart_card.json | 2 +- ...ding_level_chart_card_with_background.json | 4 +- .../system/widget_types/simple_gauge.json | 2 +- .../simple_ground_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../simple_humidity_chart_card.json | 2 +- ...e_humidity_chart_card_with_background.json | 4 +- .../simple_illuminance_chart_card.json | 2 +- ...lluminance_chart_card_with_background.json | 4 +- .../simple_leaf_wetness_chart_card.json | 2 +- ...af_wetness_chart_card_with_background.json | 4 +- .../widget_types/simple_neon_gauge.json | 2 +- .../simple_noise_level_chart_card.json | 2 +- ...oise_level_chart_card_with_background.json | 4 +- .../widget_types/simple_pm10_chart_card.json | 2 +- ...imple_pm10_chart_card_with_background.json | 4 +- .../widget_types/simple_pm2_5_chart_card.json | 2 +- ...mple_pm2_5_chart_card_with_background.json | 4 +- .../simple_pressure_chart_card.json | 2 +- ...e_pressure_chart_card_with_background.json | 4 +- .../simple_radon_level_chart_card.json | 2 +- ...adon_level_chart_card_with_background.json | 4 +- .../simple_rainfall_chart_card.json | 2 +- ...e_rainfall_chart_card_with_background.json | 4 +- .../simple_snow_depth_chart_card.json | 2 +- ...snow_depth_chart_card_with_background.json | 4 +- .../simple_soil_moisture_chart_card.json | 2 +- ...l_moisture_chart_card_with_background.json | 4 +- .../simple_solar_radiation_chart_card.json | 2 +- ..._radiation_chart_card_with_background.json | 4 +- .../simple_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../simple_uv_index_chart_card.json | 2 +- ...e_uv_index_chart_card_with_background.json | 4 +- .../simple_value_and_chart_card.json | 2 +- .../simple_vibration_chart_card.json | 2 +- ..._vibration_chart_card_with_background.json | 4 +- .../simple_visibility_chart_card.json | 2 +- ...visibility_chart_card_with_background.json | 4 +- ...volatile_organic_compounds_chart_card.json | 2 +- ..._compounds_chart_card_with_background.json | 4 +- .../simple_wind_speed_chart_card.json | 2 +- ...wind_speed_chart_card_with_background.json | 4 +- .../widget_types/slide_toggle_control.json | 2 +- .../system/widget_types/snow_depth_card.json | 2 +- .../snow_depth_card_with_background.json | 4 +- .../widget_types/snow_depth_chart_card.json | 2 +- ...snow_depth_chart_card_with_background.json | 4 +- .../widget_types/soil_moisture_card.json | 2 +- .../soil_moisture_card_with_background.json | 4 +- .../soil_moisture_chart_card.json | 2 +- ...l_moisture_chart_card_with_background.json | 4 +- .../soil_moisture_progress_bar.json | 2 +- ...moisture_progress_bar_with_background.json | 4 +- .../widget_types/solar_radiation_card.json | 2 +- .../solar_radiation_card_with_background.json | 4 +- .../solar_radiation_chart_card.json | 2 +- ..._radiation_chart_card_with_background.json | 4 +- .../json/system/widget_types/speed_gauge.json | 8 +- .../json/system/widget_types/state_chart.json | 2 +- .../system/widget_types/switch_control.json | 2 +- .../system/widget_types/temperature_card.json | 2 +- .../temperature_card_with_background.json | 4 +- .../widget_types/temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 4 +- .../temperature_radial_gauge.json | 8 +- .../json/system/widget_types/tencent_map.json | 4 +- .../widget_types/thermometer_scale.json | 8 +- .../widget_types/timeseries_bar_chart.json | 2 +- .../widget_types/timeseries_line_chart.json | 2 +- .../system/widget_types/timeseries_table.json | 2 +- .../system/widget_types/trip_animation.json | 2 +- .../update_boolean_timeseries.json | 2 +- .../widget_types/update_device_attribute.json | 2 +- .../update_double_timeseries.json | 2 +- .../update_integer_timeseries.json | 2 +- .../widget_types/update_json_attribute.json | 2 +- .../update_location_timeseries.json | 2 +- .../update_multiple_attributes.json | 2 +- .../update_server_boolean_attribute.json | 2 +- .../update_server_date_attribute.json | 2 +- .../update_server_double_attribute.json | 2 +- .../update_server_image_attribute.json | 2 +- .../update_server_integer_attribute.json | 2 +- .../update_server_location_attribute.json | 2 +- .../update_server_string_attribute.json | 2 +- .../update_shared_boolean_attribute.json | 2 +- .../update_shared_date_attribute.json | 2 +- .../update_shared_double_attribute.json | 2 +- .../update_shared_image_attribute.json | 2 +- .../update_shared_integer_attribute.json | 2 +- .../update_shared_location_attribute.json | 2 +- .../update_shared_string_attribute.json | 2 +- .../update_string_timeseries.json | 2 +- .../json/system/widget_types/usage_info.json | 2 +- .../system/widget_types/uv_index_card.json | 2 +- .../uv_index_card_with_background.json | 4 +- .../widget_types/uv_index_chart_card.json | 2 +- .../uv_index_chart_card_with_background.json | 4 +- .../widget_types/value_and_chart_card.json | 2 +- .../json/system/widget_types/value_card.json | 2 +- .../system/widget_types/vertical_bar.json | 2 +- .../widget_types/vertical_capsule_tank.json | 2 +- .../widget_types/vertical_cylinder_tank.json | 2 +- .../widget_types/vertical_oval_tank.json | 2 +- .../system/widget_types/vibration_card.json | 2 +- .../vibration_card_with_background.json | 4 +- .../widget_types/vibration_chart_card.json | 2 +- .../vibration_chart_card_with_background.json | 4 +- .../system/widget_types/visibility_card.json | 2 +- .../visibility_card_with_background.json | 4 +- .../widget_types/visibility_chart_card.json | 2 +- ...visibility_chart_card_with_background.json | 4 +- .../volatile_organic_compounds_card.json | 2 +- ...rganic_compounds_card_with_background.json | 4 +- ...volatile_organic_compounds_chart_card.json | 2 +- ..._compounds_chart_card_with_background.json | 4 +- .../wind_speed_and_direction.json | 2 +- ...d_speed_and_direction_with_background.json | 4 +- .../system/widget_types/wind_speed_card.json | 2 +- .../wind_speed_card_with_background.json | 4 +- .../widget_types/wind_speed_chart_card.json | 2 +- ...wind_speed_chart_card_with_background.json | 4 +- .../install/update/SystemImagesMigrator.java | 212 ++++++ 950 files changed, 2715 insertions(+), 553 deletions(-) create mode 100644 application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_1.svg create mode 100644 application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_2.svg create mode 100644 application/src/main/data/images/names.json create mode 100644 application/src/main/data/images/widget_bundles/air_quality.png create mode 100644 application/src/main/data/images/widget_bundles/alarm_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/analogue_gauges.png create mode 100644 application/src/main/data/images/widget_bundles/cards.png create mode 100644 application/src/main/data/images/widget_bundles/charts.png create mode 100644 application/src/main/data/images/widget_bundles/control_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/count_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/date.png create mode 100644 application/src/main/data/images/widget_bundles/digital_gauges.png create mode 100644 application/src/main/data/images/widget_bundles/edge_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/entity_admin_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/entity_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/gateway_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/gpio_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/home_page_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/html_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/indoor_environment.png create mode 100644 application/src/main/data/images/widget_bundles/input_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/liquid_level_tanks.png create mode 100644 application/src/main/data/images/widget_bundles/maps_v2.png create mode 100644 application/src/main/data/images/widget_bundles/navigation_widgets.png create mode 100644 application/src/main/data/images/widget_bundles/outdoor_environment.png create mode 100644 application/src/main/data/images/widget_bundles/status_indicators.png create mode 100644 application/src/main/data/images/widget_bundles/tables.png create mode 100644 application/src/main/data/images/widgets/air_quality_card.png create mode 100644 application/src/main/data/images/widgets/air_quality_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/air_quality_card_with_background.png create mode 100644 application/src/main/data/images/widgets/air_quality_chart_card.png create mode 100644 application/src/main/data/images/widgets/air_quality_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/air_quality_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/alarm_count.png create mode 100644 application/src/main/data/images/widgets/alarm_widgets.alarms_table.png create mode 100644 application/src/main/data/images/widgets/analogue_gauges.analogue_compass.png create mode 100644 application/src/main/data/images/widgets/analogue_gauges.radial_gauge_canvas_gauges.png create mode 100644 application/src/main/data/images/widgets/analogue_gauges.speed_gauge_canvas_gauges.png create mode 100644 application/src/main/data/images/widgets/analogue_gauges.temperature_gauge_canvas_gauges.png create mode 100644 application/src/main/data/images/widgets/analogue_gauges.temperature_radial_gauge_canvas_gauges.png create mode 100644 application/src/main/data/images/widgets/battery_level.png create mode 100644 application/src/main/data/images/widgets/cards.aggregated_value_card.png create mode 100644 application/src/main/data/images/widgets/cards.attributes_card.png create mode 100644 application/src/main/data/images/widgets/cards.dashboard_state_widget.png create mode 100644 application/src/main/data/images/widgets/cards.entities_hierarchy.png create mode 100644 application/src/main/data/images/widgets/cards.entities_table.png create mode 100644 application/src/main/data/images/widgets/cards.horizontal_value_card.png create mode 100644 application/src/main/data/images/widgets/cards.html_card.png create mode 100644 application/src/main/data/images/widgets/cards.html_value_card.png create mode 100644 application/src/main/data/images/widgets/cards.label_widget#background_image.svg create mode 100644 application/src/main/data/images/widgets/cards.label_widget.png create mode 100644 application/src/main/data/images/widgets/cards.markdown_card.png create mode 100644 application/src/main/data/images/widgets/cards.qr_code.png create mode 100644 application/src/main/data/images/widgets/cards.simple_card.png create mode 100644 application/src/main/data/images/widgets/cards.timeseries_table.png create mode 100644 application/src/main/data/images/widgets/cards.value_card.png create mode 100644 application/src/main/data/images/widgets/charts.bars.png create mode 100644 application/src/main/data/images/widgets/charts.basic_timeseries.png create mode 100644 application/src/main/data/images/widgets/charts.doughnut_chart_js.png create mode 100644 application/src/main/data/images/widgets/charts.pie.png create mode 100644 application/src/main/data/images/widgets/charts.pie_chart_js.png create mode 100644 application/src/main/data/images/widgets/charts.polar_area_chart_js.png create mode 100644 application/src/main/data/images/widgets/charts.radar_chart_js.png create mode 100644 application/src/main/data/images/widgets/charts.state_chart.png create mode 100644 application/src/main/data/images/widgets/charts.timeseries_bars_flot.png create mode 100644 application/src/main/data/images/widgets/co2_card.png create mode 100644 application/src/main/data/images/widgets/co2_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/co2_card_with_background.png create mode 100644 application/src/main/data/images/widgets/co2_chart_card.png create mode 100644 application/src/main/data/images/widgets/co2_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/co2_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/control_widgets.knob_control.png create mode 100644 application/src/main/data/images/widgets/control_widgets.led_indicator.png create mode 100644 application/src/main/data/images/widgets/control_widgets.persistent_table.png create mode 100644 application/src/main/data/images/widgets/control_widgets.round_switch.png create mode 100644 application/src/main/data/images/widgets/control_widgets.rpc_debug_terminal.png create mode 100644 application/src/main/data/images/widgets/control_widgets.rpc_remote_shell.png create mode 100644 application/src/main/data/images/widgets/control_widgets.rpcbutton.png create mode 100644 application/src/main/data/images/widgets/control_widgets.slide_toggle_control.png create mode 100644 application/src/main/data/images/widgets/control_widgets.switch_control.png create mode 100644 application/src/main/data/images/widgets/control_widgets.update_attributes.png create mode 100644 application/src/main/data/images/widgets/date.date_range_navigator.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.digital_bar.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.digital_speedometer.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.digital_thermometer.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.digital_vertical_bar.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.gauge_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.horizontal_bar_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.lcd_bar_gauge.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.lcd_gauge.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.mini_gauge_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.neon_gauge_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.simple_gauge_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.simple_neon_gauge_justgage.png create mode 100644 application/src/main/data/images/widgets/digital_gauges.vertical_bar_justgage.png create mode 100644 application/src/main/data/images/widgets/edge_widgets.edges_overview.png create mode 100644 application/src/main/data/images/widgets/entity_admin_widgets.asset_admin_table.png create mode 100644 application/src/main/data/images/widgets/entity_admin_widgets.device_admin_table.png create mode 100644 application/src/main/data/images/widgets/entity_count.png create mode 100644 application/src/main/data/images/widgets/flooding_level_card.png create mode 100644 application/src/main/data/images/widgets/flooding_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/flooding_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/flooding_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/flooding_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/flooding_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/flooding_level_progress_bar.png create mode 100644 application/src/main/data/images/widgets/flooding_level_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/flooding_level_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.attributes_card.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.config_form_latest.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_configuration.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_connectors.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_custom_statistics.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_general_chart_statistics.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_general_configuration.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.gateway_logs.png create mode 100644 application/src/main/data/images/widgets/gateway_widgets.service_rpc.png create mode 100644 application/src/main/data/images/widgets/gpio_widgets.basic_gpio_control.png create mode 100644 application/src/main/data/images/widgets/gpio_widgets.gpio_panel.png create mode 100644 application/src/main/data/images/widgets/gpio_widgets.raspberry_pi_gpio_control.png create mode 100644 application/src/main/data/images/widgets/gpio_widgets.raspberry_pi_gpio_panel.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_card.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/ground_temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/home_page_widgets.dashboards.png create mode 100644 application/src/main/data/images/widgets/home_page_widgets.documentation_links.png create mode 100644 application/src/main/data/images/widgets/home_page_widgets.getting_started.png create mode 100644 application/src/main/data/images/widgets/home_page_widgets.quick_links.png create mode 100644 application/src/main/data/images/widgets/home_page_widgets.usage_info.png create mode 100644 application/src/main/data/images/widgets/horizontal_2_1_elliptical_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_air_quality_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_air_quality_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_air_quality_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_capsule_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_co2_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_co2_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_co2_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_cylinder_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_dish_ends_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_ellipse_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_flooding_level_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_flooding_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_flooding_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_ground_temperature_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_ground_temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_ground_temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_humidity_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_humidity_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_humidity_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_illuminance_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_illuminance_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_illuminance_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_leaf_wetness_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_leaf_wetness_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_leaf_wetness_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_noise_level_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_noise_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_noise_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_oval_tank.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm10_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm10_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm10_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm2_5_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm2_5_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_pm2_5_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_pressure_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_pressure_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_pressure_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_radon_level_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_radon_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_radon_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_rainfall_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_rainfall_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_rainfall_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_snow_depth_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_soil_moisture_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_soil_moisture_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_soil_moisture_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_solar_radiation_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_solar_radiation_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_solar_radiation_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_temperature_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_uv_index_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_uv_index_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_uv_index_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_vibration_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_vibration_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_vibration_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_visibility_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_visibility_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_visibility_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background.png create mode 100644 application/src/main/data/images/widgets/horizontal_wind_speed_card.png create mode 100644 application/src/main/data/images/widgets/horizontal_wind_speed_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/horizontal_wind_speed_card_with_background.png create mode 100644 application/src/main/data/images/widgets/humidity_card.png create mode 100644 application/src/main/data/images/widgets/humidity_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/humidity_card_with_background.png create mode 100644 application/src/main/data/images/widgets/humidity_chart_card.png create mode 100644 application/src/main/data/images/widgets/humidity_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/humidity_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/humidity_progress_bar.png create mode 100644 application/src/main/data/images/widgets/humidity_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/humidity_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/illuminance_card.png create mode 100644 application/src/main/data/images/widgets/illuminance_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/illuminance_card_with_background.png create mode 100644 application/src/main/data/images/widgets/illuminance_chart_card.png create mode 100644 application/src/main/data/images/widgets/illuminance_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/illuminance_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/illuminance_progress_bar.png create mode 100644 application/src/main/data/images/widgets/illuminance_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/illuminance_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_card.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_co2_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_co2_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_co2_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_co2_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_humidity_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_humidity_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_humidity_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_illuminance_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_illuminance_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_illuminance_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm10_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm10_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm10_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm2_5_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm2_5_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_pm2_5_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_temperature_card.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_horizontal_temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_card.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_progress_bar.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_humidity_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_card.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_progress_bar.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_illuminance_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_card.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_pm10_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_card.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_pm2_5_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_co2_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_humidity_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_humidity_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_humidity_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm10_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm10_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm10_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_simple_temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_card.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_progress_bar.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/input_widgets.device_claiming_widget.png create mode 100644 application/src/main/data/images/widgets/input_widgets.markers_placement_google_maps.png create mode 100644 application/src/main/data/images/widgets/input_widgets.markers_placement_image_map#map_image.svg create mode 100644 application/src/main/data/images/widgets/input_widgets.markers_placement_image_map.png create mode 100644 application/src/main/data/images/widgets/input_widgets.markers_placement_openstreetmap.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_boolean_timeseries.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_double_timeseries.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_integer_timeseries.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_json_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_location_timeseries.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_multiple_attributes.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_boolean_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_date_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_double_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_image_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_integer_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_location_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_server_string_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_boolean_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_date_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_double_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_image_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_integer_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_location_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_shared_string_attribute.png create mode 100644 application/src/main/data/images/widgets/input_widgets.update_string_timeseries.png create mode 100644 application/src/main/data/images/widgets/input_widgets.web_camera_input.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_card.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_card_with_background.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_chart_card.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_progress_bar.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_4.png create mode 100644 application/src/main/data/images/widgets/maps_v2.google_maps.png create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map#map_image.svg create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map#marker_image_4.png create mode 100644 application/src/main/data/images/widgets/maps_v2.here_map.png create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map#marker_image_4.png create mode 100644 application/src/main/data/images/widgets/maps_v2.image_map.png create mode 100644 application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_4.png create mode 100644 application/src/main/data/images/widgets/maps_v2.openstreetmap.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps.png create mode 100644 application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_1.png create mode 100644 application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_2.png create mode 100644 application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_3.png create mode 100644 application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_4.png create mode 100644 application/src/main/data/images/widgets/maps_v2.tencent_maps.png create mode 100644 application/src/main/data/images/widgets/maps_v2.test.png create mode 100644 application/src/main/data/images/widgets/navigation_widgets.navigation_card.png create mode 100644 application/src/main/data/images/widgets/navigation_widgets.navigation_cards.png create mode 100644 application/src/main/data/images/widgets/noise_level_card.png create mode 100644 application/src/main/data/images/widgets/noise_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/noise_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/noise_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/noise_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/noise_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pm10_card.png create mode 100644 application/src/main/data/images/widgets/pm10_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pm10_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pm10_chart_card.png create mode 100644 application/src/main/data/images/widgets/pm10_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pm10_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pm2_5_card.png create mode 100644 application/src/main/data/images/widgets/pm2_5_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pm2_5_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pm2_5_chart_card.png create mode 100644 application/src/main/data/images/widgets/pm2_5_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pm2_5_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pressure_card.png create mode 100644 application/src/main/data/images/widgets/pressure_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pressure_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pressure_chart_card.png create mode 100644 application/src/main/data/images/widgets/pressure_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pressure_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/pressure_progress_bar.png create mode 100644 application/src/main/data/images/widgets/pressure_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/pressure_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/progress_bar.png create mode 100644 application/src/main/data/images/widgets/radon_level_card.png create mode 100644 application/src/main/data/images/widgets/radon_level_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/radon_level_card_with_background.png create mode 100644 application/src/main/data/images/widgets/radon_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/radon_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/radon_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/rainfall_card.png create mode 100644 application/src/main/data/images/widgets/rainfall_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/rainfall_card_with_background.png create mode 100644 application/src/main/data/images/widgets/rainfall_chart_card.png create mode 100644 application/src/main/data/images/widgets/rainfall_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/rainfall_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/rectangle_tank.png create mode 100644 application/src/main/data/images/widgets/signal_strength.png create mode 100644 application/src/main/data/images/widgets/simple_air_quality_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_co2_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_co2_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_co2_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_flooding_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_ground_temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_ground_temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_ground_temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_humidity_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_humidity_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_humidity_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_illuminance_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_illuminance_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_illuminance_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_leaf_wetness_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_leaf_wetness_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_leaf_wetness_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_noise_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_pm10_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_pm10_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_pm10_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_pm2_5_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_pm2_5_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_pm2_5_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_pressure_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_pressure_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_pressure_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_radon_level_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_radon_level_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_radon_level_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_rainfall_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_rainfall_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_rainfall_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_snow_depth_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_snow_depth_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_snow_depth_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_soil_moisture_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_solar_radiation_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_solar_radiation_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_solar_radiation_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_uv_index_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_uv_index_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_uv_index_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_value_and_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_vibration_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_vibration_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_vibration_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_visibility_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_visibility_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_visibility_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_volatile_organic_compounds_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_volatile_organic_compounds_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_volatile_organic_compounds_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/simple_wind_speed_chart_card.png create mode 100644 application/src/main/data/images/widgets/simple_wind_speed_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/simple_wind_speed_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/snow_depth_card.png create mode 100644 application/src/main/data/images/widgets/snow_depth_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/snow_depth_card_with_background.png create mode 100644 application/src/main/data/images/widgets/snow_depth_chart_card.png create mode 100644 application/src/main/data/images/widgets/snow_depth_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/snow_depth_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_card.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_card_with_background.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_chart_card.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_progress_bar.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_progress_bar_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/soil_moisture_progress_bar_with_background.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_card.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_card_with_background.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_chart_card.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/solar_radiation_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/temperature_card.png create mode 100644 application/src/main/data/images/widgets/temperature_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/temperature_card_with_background.png create mode 100644 application/src/main/data/images/widgets/temperature_chart_card.png create mode 100644 application/src/main/data/images/widgets/temperature_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/temperature_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/uv_index_card.png create mode 100644 application/src/main/data/images/widgets/uv_index_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/uv_index_card_with_background.png create mode 100644 application/src/main/data/images/widgets/uv_index_chart_card.png create mode 100644 application/src/main/data/images/widgets/uv_index_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/uv_index_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/vertical_capsule_tank.png create mode 100644 application/src/main/data/images/widgets/vertical_cylinder_tank.png create mode 100644 application/src/main/data/images/widgets/vertical_oval_tank.png create mode 100644 application/src/main/data/images/widgets/vibration_card.png create mode 100644 application/src/main/data/images/widgets/vibration_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/vibration_card_with_background.png create mode 100644 application/src/main/data/images/widgets/vibration_chart_card.png create mode 100644 application/src/main/data/images/widgets/vibration_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/vibration_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/visibility_card.png create mode 100644 application/src/main/data/images/widgets/visibility_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/visibility_card_with_background.png create mode 100644 application/src/main/data/images/widgets/visibility_chart_card.png create mode 100644 application/src/main/data/images/widgets/visibility_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/visibility_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_card.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_card_with_background.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_chart_card.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background.png create mode 100644 application/src/main/data/images/widgets/wind_speed_and_direction.png create mode 100644 application/src/main/data/images/widgets/wind_speed_and_direction_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/wind_speed_and_direction_with_background.png create mode 100644 application/src/main/data/images/widgets/wind_speed_card.png create mode 100644 application/src/main/data/images/widgets/wind_speed_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/wind_speed_card_with_background.png create mode 100644 application/src/main/data/images/widgets/wind_speed_chart_card.png create mode 100644 application/src/main/data/images/widgets/wind_speed_chart_card_with_background#background_image.png create mode 100644 application/src/main/data/images/widgets/wind_speed_chart_card_with_background.png create mode 100644 application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java diff --git a/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_1.svg b/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_1.svg new file mode 100644 index 0000000000..1f33ebf222 --- /dev/null +++ b/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_2.svg b/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_2.svg new file mode 100644 index 0000000000..aba1c18729 --- /dev/null +++ b/application/src/main/data/images/dashboards/thermostats.maps_v2.openstreetmap#marker_image_2.svg @@ -0,0 +1 @@ + diff --git a/application/src/main/data/images/names.json b/application/src/main/data/images/names.json new file mode 100644 index 0000000000..9b2aff0576 --- /dev/null +++ b/application/src/main/data/images/names.json @@ -0,0 +1,554 @@ +{ + "air_quality.png" : "Air quality - image", + "air_quality_card.png" : "Air quality index card - image", + "air_quality_card_with_background#background_image.png" : "Air quality index card with background - background image", + "air_quality_card_with_background.png" : "Air quality index card with background - image", + "air_quality_chart_card.png" : "Air quality index chart card - image", + "air_quality_chart_card_with_background#background_image.png" : "Air quality index chart card with background - background image", + "air_quality_chart_card_with_background.png" : "Air quality index chart card with background - image", + "alarm_count.png" : "Alarm count - image", + "alarm_widgets.alarms_table.png" : "Alarms table - image", + "alarm_widgets.png" : "Alarm widgets - image", + "analogue_gauges.analogue_compass.png" : "Compass - image", + "analogue_gauges.png" : "Analogue gauges - image", + "analogue_gauges.radial_gauge_canvas_gauges.png" : "Radial gauge - image", + "analogue_gauges.speed_gauge_canvas_gauges.png" : "Speed gauge - image", + "analogue_gauges.temperature_gauge_canvas_gauges.png" : "Thermometer scale - image", + "analogue_gauges.temperature_radial_gauge_canvas_gauges.png" : "Temperature radial gauge - image", + "battery_level.png" : "Battery level - image", + "cards.aggregated_value_card.png" : "Value and chart card - image", + "cards.attributes_card.png" : "Attributes card - image", + "cards.dashboard_state_widget.png" : "Dashboard state widget - image", + "cards.entities_hierarchy.png" : "Entities hierarchy - image", + "cards.entities_table.png" : "Entities table - image", + "cards.horizontal_value_card.png" : "Horizontal value card - image", + "cards.html_card.png" : "HTML Card - image", + "cards.html_value_card.png" : "HTML Value Card - image", + "cards.label_widget#background_image.svg" : "Label widget - background image", + "cards.label_widget.png" : "Label widget - image", + "cards.markdown_card.png" : "Markdown/HTML Card - image", + "cards.png" : "Cards - image", + "cards.qr_code.png" : "QR Code - image", + "cards.simple_card.png" : "Simple card - image", + "cards.timeseries_table.png" : "Timeseries table - image", + "cards.value_card.png" : "Value card - image", + "charts.bars.png" : "Bars - image", + "charts.basic_timeseries.png" : "Timeseries Line Chart - image", + "charts.doughnut_chart_js.png" : "Doughnut - image", + "charts.pie.png" : "Pie - Flot - image", + "charts.pie_chart_js.png" : "Pie - Chart.js - image", + "charts.png" : "Charts - image", + "charts.polar_area_chart_js.png" : "Polar Area - image", + "charts.radar_chart_js.png" : "Radar - image", + "charts.state_chart.png" : "State Chart - image", + "charts.timeseries_bars_flot.png" : "Timeseries Bar Chart - image", + "co2_card.png" : "CO2 card - image", + "co2_card_with_background#background_image.png" : "CO2 card with background - background image", + "co2_card_with_background.png" : "CO2 card with background - image", + "co2_chart_card.png" : "CO2 chart card - image", + "co2_chart_card_with_background#background_image.png" : "CO2 chart card with background - background image", + "co2_chart_card_with_background.png" : "CO2 chart card with background - image", + "control_widgets.knob_control.png" : "Knob Control - image", + "control_widgets.led_indicator.png" : "Led indicator - image", + "control_widgets.persistent_table.png" : "Persistent RPC table - image", + "control_widgets.png" : "Control widgets - image", + "control_widgets.round_switch.png" : "Round switch - image", + "control_widgets.rpc_debug_terminal.png" : "RPC debug terminal - image", + "control_widgets.rpc_remote_shell.png" : "RPC remote shell - image", + "control_widgets.rpcbutton.png" : "RPC Button - image", + "control_widgets.slide_toggle_control.png" : "Slide Toggle Control - image", + "control_widgets.switch_control.png" : "Switch Control - image", + "control_widgets.update_attributes.png" : "Update device attribute - image", + "count_widgets.png" : "Count widgets - image", + "date.date_range_navigator.png" : "Date-range-navigator - image", + "date.png" : "Date - image", + "digital_gauges.digital_bar.png" : "Digital horizontal bar - image", + "digital_gauges.digital_speedometer.png" : "Digital speedometer - image", + "digital_gauges.digital_thermometer.png" : "Digital thermometer - image", + "digital_gauges.digital_vertical_bar.png" : "Digital vertical bar - image", + "digital_gauges.gauge_justgage.png" : "Gauge - image", + "digital_gauges.horizontal_bar_justgage.png" : "Horizontal bar - image", + "digital_gauges.lcd_bar_gauge.png" : "LCD bar gauge - image", + "digital_gauges.lcd_gauge.png" : "LCD gauge - image", + "digital_gauges.mini_gauge_justgage.png" : "Mini gauge - image", + "digital_gauges.neon_gauge_justgage.png" : "Neon gauge - image", + "digital_gauges.png" : "Digital gauges - image", + "digital_gauges.simple_gauge_justgage.png" : "Simple gauge - image", + "digital_gauges.simple_neon_gauge_justgage.png" : "Simple neon gauge - image", + "digital_gauges.vertical_bar_justgage.png" : "Vertical bar - image", + "edge_widgets.edges_overview.png" : "Edge Quick Overview - image", + "edge_widgets.png" : "Edge widgets - image", + "entity_admin_widgets.asset_admin_table.png" : "Asset admin table - image", + "entity_admin_widgets.device_admin_table.png" : "Device admin table - image", + "entity_admin_widgets.png" : "Entity admin widgets - image", + "entity_count.png" : "Entity count - image", + "entity_widgets.png" : "Entity widgets - image", + "flooding_level_card.png" : "Flooding level card - image", + "flooding_level_card_with_background#background_image.png" : "Flooding level card with background - background image", + "flooding_level_card_with_background.png" : "Flooding level card with background - image", + "flooding_level_chart_card.png" : "Flooding level chart card - image", + "flooding_level_chart_card_with_background#background_image.png" : "Flooding level chart card with background - background image", + "flooding_level_chart_card_with_background.png" : "Flooding level chart card with background - image", + "flooding_level_progress_bar.png" : "Flooding level progress bar - image", + "flooding_level_progress_bar_with_background#background_image.png" : "Flooding level progress bar with background - background image", + "flooding_level_progress_bar_with_background.png" : "Flooding level progress bar with background - image", + "gateway_widgets.attributes_card.png" : "Gateway events - image", + "gateway_widgets.config_form_latest.png" : "Gateway configuration (Single device) - image", + "gateway_widgets.gateway_configuration.png" : "Gateway Configuration - image", + "gateway_widgets.gateway_connectors.png" : "Gateway connectors - image", + "gateway_widgets.gateway_custom_statistics.png" : "Gateway custom statistics - image", + "gateway_widgets.gateway_general_chart_statistics.png" : "Gateway general chart statistics - image", + "gateway_widgets.gateway_general_configuration.png" : "Gateway general configuration - image", + "gateway_widgets.gateway_logs.png" : "Gateway logs - image", + "gateway_widgets.png" : "Gateway widgets - image", + "gateway_widgets.service_rpc.png" : "Service RPC - image", + "gpio_widgets.basic_gpio_control.png" : "Basic GPIO Control - image", + "gpio_widgets.gpio_panel.png" : "Basic GPIO Panel - image", + "gpio_widgets.png" : "GPIO widgets - image", + "gpio_widgets.raspberry_pi_gpio_control.png" : "Raspberry Pi GPIO Control - image", + "gpio_widgets.raspberry_pi_gpio_panel.png" : "Raspberry Pi GPIO Panel - image", + "ground_temperature_card.png" : "Ground temperature card - image", + "ground_temperature_card_with_background#background_image.png" : "Ground temperature card with background - background image", + "ground_temperature_card_with_background.png" : "Ground temperature card with background - image", + "ground_temperature_chart_card.png" : "Ground temperature chart card - image", + "ground_temperature_chart_card_with_background#background_image.png" : "Ground temperature chart card with background - background image", + "ground_temperature_chart_card_with_background.png" : "Ground temperature chart card with background - image", + "home_page_widgets.dashboards.png" : "Dashboards - image", + "home_page_widgets.documentation_links.png" : "Documentation links - image", + "home_page_widgets.getting_started.png" : "Getting started - image", + "home_page_widgets.png" : "Home page widgets - image", + "home_page_widgets.quick_links.png" : "Quick links - image", + "home_page_widgets.usage_info.png" : "Usage info - image", + "horizontal_2_1_elliptical_tank.png" : "Horizontal 2:1 elliptical tank - image", + "horizontal_air_quality_card.png" : "Horizontal air quality index card - image", + "horizontal_air_quality_card_with_background#background_image.png" : "Horizontal air quality index card with background - background image", + "horizontal_air_quality_card_with_background.png" : "Horizontal air quality index card with background - image", + "horizontal_capsule_tank.png" : "Horizontal capsule tank - image", + "horizontal_co2_card.png" : "Horizontal CO2 card - image", + "horizontal_co2_card_with_background#background_image.png" : "Horizontal CO2 card with background - background image", + "horizontal_co2_card_with_background.png" : "Horizontal CO2 card with background - image", + "horizontal_cylinder_tank.png" : "Horizontal cylinder tank - image", + "horizontal_dish_ends_tank.png" : "Horizontal dish ends tank - image", + "horizontal_ellipse_tank.png" : "Horizontal ellipse tank - image", + "horizontal_flooding_level_card.png" : "Horizontal flooding level card - image", + "horizontal_flooding_level_card_with_background#background_image.png" : "Horizontal flooding level card with background - background image", + "horizontal_flooding_level_card_with_background.png" : "Horizontal flooding level card with background - image", + "horizontal_ground_temperature_card.png" : "Horizontal ground temperature card - image", + "horizontal_ground_temperature_card_with_background#background_image.png" : "Horizontal ground temperature card with background - background image", + "horizontal_ground_temperature_card_with_background.png" : "Horizontal ground temperature card with background - image", + "horizontal_humidity_card.png" : "Horizontal humidity card - image", + "horizontal_humidity_card_with_background#background_image.png" : "Horizontal humidity card with background - background image", + "horizontal_humidity_card_with_background.png" : "Horizontal humidity card with background - image", + "horizontal_illuminance_card.png" : "Horizontal illuminance card - image", + "horizontal_illuminance_card_with_background#background_image.png" : "Horizontal illuminance card with background - background image", + "horizontal_illuminance_card_with_background.png" : "Horizontal illuminance card with background - image", + "horizontal_leaf_wetness_card.png" : "Horizontal leaf wetness card - image", + "horizontal_leaf_wetness_card_with_background#background_image.png" : "Horizontal leaf wetness card with background - background image", + "horizontal_leaf_wetness_card_with_background.png" : "Horizontal leaf wetness card with background - image", + "horizontal_noise_level_card.png" : "Horizontal noise level card - image", + "horizontal_noise_level_card_with_background#background_image.png" : "Horizontal noise level card with background - background image", + "horizontal_noise_level_card_with_background.png" : "Horizontal noise level card with background - image", + "horizontal_oval_tank.png" : "Horizontal oval tank - image", + "horizontal_pm10_card.png" : "Horizontal PM10 card - image", + "horizontal_pm10_card_with_background#background_image.png" : "Horizontal PM10 card with background - background image", + "horizontal_pm10_card_with_background.png" : "Horizontal PM10 card with background - image", + "horizontal_pm2_5_card.png" : "Horizontal PM2.5 card - image", + "horizontal_pm2_5_card_with_background#background_image.png" : "Horizontal PM2.5 card with background - background image", + "horizontal_pm2_5_card_with_background.png" : "Horizontal PM2.5 card with background - image", + "horizontal_pressure_card.png" : "Horizontal pressure card - image", + "horizontal_pressure_card_with_background#background_image.png" : "Horizontal pressure card with background - background image", + "horizontal_pressure_card_with_background.png" : "Horizontal pressure card with background - image", + "horizontal_radon_level_card.png" : "Horizontal radon level card - image", + "horizontal_radon_level_card_with_background#background_image.png" : "Horizontal radon level card with background - background image", + "horizontal_radon_level_card_with_background.png" : "Horizontal radon level card with background - image", + "horizontal_rainfall_card.png" : "Horizontal rainfall card - image", + "horizontal_rainfall_card_with_background#background_image.png" : "Horizontal rainfall card with background - background image", + "horizontal_rainfall_card_with_background.png" : "Horizontal rainfall card with background - image", + "horizontal_snow_depth_card.png" : "Horizontal snow depth card - image", + "horizontal_snow_depth_card_with_background#background_image.png" : "Horizontal snow depth card with background - background image", + "horizontal_snow_depth_card_with_background.png" : "Horizontal snow depth card with background - image", + "horizontal_soil_moisture_card.png" : "Horizontal soil moisture card - image", + "horizontal_soil_moisture_card_with_background#background_image.png" : "Horizontal soil moisture card with background - background image", + "horizontal_soil_moisture_card_with_background.png" : "Horizontal soil moisture card with background - image", + "horizontal_solar_radiation_card.png" : "Horizontal solar radiation card - image", + "horizontal_solar_radiation_card_with_background#background_image.png" : "Horizontal solar radiation card with background - background image", + "horizontal_solar_radiation_card_with_background.png" : "Horizontal solar radiation card with background - image", + "horizontal_temperature_card.png" : "Horizontal temperature card - image", + "horizontal_temperature_card_with_background#background_image.png" : "Horizontal temperature card with background - background image", + "horizontal_temperature_card_with_background.png" : "Horizontal temperature card with background - image", + "horizontal_uv_index_card.png" : "Horizontal UV Index card - image", + "horizontal_uv_index_card_with_background#background_image.png" : "Horizontal UV Index card with background - background image", + "horizontal_uv_index_card_with_background.png" : "Horizontal UV Index card with background - image", + "horizontal_vibration_card.png" : "Horizontal vibration card - image", + "horizontal_vibration_card_with_background#background_image.png" : "Horizontal vibration card with background - background image", + "horizontal_vibration_card_with_background.png" : "Horizontal vibration card with background - image", + "horizontal_visibility_card.png" : "Horizontal visibility card - image", + "horizontal_visibility_card_with_background#background_image.png" : "Horizontal visibility card with background - background image", + "horizontal_visibility_card_with_background.png" : "Horizontal visibility card with background - image", + "horizontal_volatile_organic_compounds_card.png" : "Horizontal volatile organic compounds card - image", + "horizontal_volatile_organic_compounds_card_with_background#background_image.png" : "Horizontal volatile organic compounds card with background - background image", + "horizontal_volatile_organic_compounds_card_with_background.png" : "Horizontal volatile organic compounds card with background - image", + "horizontal_wind_speed_card.png" : "Horizontal wind speed card - image", + "horizontal_wind_speed_card_with_background#background_image.png" : "Horizontal wind speed card with background - background image", + "horizontal_wind_speed_card_with_background.png" : "Horizontal wind speed card with background - image", + "html_widgets.png" : "HTML widgets - image", + "humidity_card.png" : "Humidity card - image", + "humidity_card_with_background#background_image.png" : "Humidity card with background - background image", + "humidity_card_with_background.png" : "Humidity card with background - image", + "humidity_chart_card.png" : "Humidity chart card - image", + "humidity_chart_card_with_background#background_image.png" : "Humidity chart card with background - background image", + "humidity_chart_card_with_background.png" : "Humidity chart card with background - image", + "humidity_progress_bar.png" : "Humidity progress bar - image", + "humidity_progress_bar_with_background#background_image.png" : "Humidity progress bar with background - background image", + "humidity_progress_bar_with_background.png" : "Humidity progress bar with background - image", + "illuminance_card.png" : "Illuminance card - image", + "illuminance_card_with_background#background_image.png" : "Illuminance card with background - background image", + "illuminance_card_with_background.png" : "Illuminance card with background - image", + "illuminance_chart_card.png" : "Illuminance chart card - image", + "illuminance_chart_card_with_background#background_image.png" : "Illuminance chart card with background - background image", + "illuminance_chart_card_with_background.png" : "Illuminance chart card with background - image", + "illuminance_progress_bar.png" : "Illuminance progress bar - image", + "illuminance_progress_bar_with_background#background_image.png" : "Illuminance progress bar with background - background image", + "illuminance_progress_bar_with_background.png" : "Illuminance progress bar with background - image", + "indoor_co2_card.png" : "Indoor CO2 card - image", + "indoor_co2_card_with_background#background_image.png" : "Indoor CO2 card with background - background image", + "indoor_co2_card_with_background.png" : "Indoor CO2 card with background - image", + "indoor_co2_chart_card.png" : "Indoor CO2 chart card - image", + "indoor_co2_chart_card_with_background#background_image.png" : "Indoor CO2 chart card with background - background image", + "indoor_co2_chart_card_with_background.png" : "Indoor CO2 chart card with background - image", + "indoor_environment.png" : "Indoor Environment - image", + "indoor_horizontal_co2_card.png" : "Indoor horizontal CO2 card - image", + "indoor_horizontal_co2_card_with_background#background_image.png" : "Indoor horizontal CO2 card with background - background image", + "indoor_horizontal_co2_card_with_background.png" : "Indoor horizontal CO2 card with background - image", + "indoor_horizontal_humidity_card.png" : "Indoor horizontal humidity card - image", + "indoor_horizontal_humidity_card_with_background#background_image.png" : "Indoor horizontal humidity card with background - background image", + "indoor_horizontal_humidity_card_with_background.png" : "Indoor horizontal humidity card with background - image", + "indoor_horizontal_illuminance_card.png" : "Indoor horizontal illuminance card - image", + "indoor_horizontal_illuminance_card_with_background#background_image.png" : "Indoor horizontal illuminance card with background - background image", + "indoor_horizontal_illuminance_card_with_background.png" : "Indoor horizontal illuminance card with background - image", + "indoor_horizontal_pm10_card.png" : "Indoor horizontal PM10 card - image", + "indoor_horizontal_pm10_card_with_background#background_image.png" : "Indoor horizontal PM10 card with background - background image", + "indoor_horizontal_pm10_card_with_background.png" : "Indoor horizontal PM10 card with background - image", + "indoor_horizontal_pm2_5_card.png" : "Indoor horizontal PM2.5 card - image", + "indoor_horizontal_pm2_5_card_with_background#background_image.png" : "Indoor horizontal PM2.5 card with background - background image", + "indoor_horizontal_pm2_5_card_with_background.png" : "Indoor horizontal PM2.5 card with background - image", + "indoor_horizontal_temperature_card.png" : "Indoor horizontal temperature card - image", + "indoor_horizontal_temperature_card_with_background#background_image.png" : "Indoor horizontal temperature card with background - background image", + "indoor_horizontal_temperature_card_with_background.png" : "Indoor horizontal temperature card with background - image", + "indoor_humidity_card.png" : "Indoor humidity card - image", + "indoor_humidity_card_with_background#background_image.png" : "Indoor humidity card with background - background image", + "indoor_humidity_card_with_background.png" : "Indoor humidity card with background - image", + "indoor_humidity_chart_card.png" : "Indoor humidity chart card - image", + "indoor_humidity_chart_card_with_background#background_image.png" : "Indoor humidity chart card with background - background image", + "indoor_humidity_chart_card_with_background.png" : "Indoor humidity chart card with background - image", + "indoor_humidity_progress_bar.png" : "Indoor humidity progress bar - image", + "indoor_humidity_progress_bar_with_background#background_image.png" : "Indoor humidity progress bar with background - background image", + "indoor_humidity_progress_bar_with_background.png" : "Indoor humidity progress bar with background - image", + "indoor_illuminance_card.png" : "Indoor illuminance card - image", + "indoor_illuminance_card_with_background#background_image.png" : "Indoor illuminance card with background - background image", + "indoor_illuminance_card_with_background.png" : "Indoor illuminance card with background - image", + "indoor_illuminance_chart_card.png" : "Indoor illuminance chart card - image", + "indoor_illuminance_chart_card_with_background#background_image.png" : "Indoor illuminance chart card with background - background image", + "indoor_illuminance_chart_card_with_background.png" : "Indoor illuminance chart card with background - image", + "indoor_illuminance_progress_bar.png" : "Indoor illuminance progress bar - image", + "indoor_illuminance_progress_bar_with_background#background_image.png" : "Indoor illuminance progress bar with background - background image", + "indoor_illuminance_progress_bar_with_background.png" : "Indoor illuminance progress bar with background - image", + "indoor_pm10_card.png" : "Indoor PM10 card - image", + "indoor_pm10_card_with_background#background_image.png" : "Indoor PM10 card with background - background image", + "indoor_pm10_card_with_background.png" : "Indoor PM10 card with background - image", + "indoor_pm10_chart_card.png" : "Indoor PM10 chart card - image", + "indoor_pm10_chart_card_with_background#background_image.png" : "Indoor PM10 chart card with background - background image", + "indoor_pm10_chart_card_with_background.png" : "Indoor PM10 chart card with background - image", + "indoor_pm2_5_card.png" : "Indoor PM2.5 card - image", + "indoor_pm2_5_card_with_background#background_image.png" : "Indoor PM2.5 card with background - background image", + "indoor_pm2_5_card_with_background.png" : "Indoor PM2.5 card with background - image", + "indoor_pm2_5_chart_card.png" : "Indoor PM2.5 chart card - image", + "indoor_pm2_5_chart_card_with_background#background_image.png" : "Indoor PM2.5 chart card with background - background image", + "indoor_pm2_5_chart_card_with_background.png" : "Indoor PM2.5 chart card with background - image", + "indoor_simple_co2_chart_card.png" : "Indoor simple CO2 chart card - image", + "indoor_simple_co2_chart_card_with_background#background_image.png" : "Indoor simple CO2 chart card with background - background image", + "indoor_simple_co2_chart_card_with_background.png" : "Indoor simple CO2 chart card with background - image", + "indoor_simple_humidity_chart_card.png" : "Indoor simple humidity chart card - image", + "indoor_simple_humidity_chart_card_with_background#background_image.png" : "Indoor simple humidity chart card with background - background image", + "indoor_simple_humidity_chart_card_with_background.png" : "Indoor simple humidity chart card with background - image", + "indoor_simple_illuminance_chart_card.png" : "Indoor simple illuminance chart card - image", + "indoor_simple_illuminance_chart_card_with_background#background_image.png" : "Indoor simple illuminance chart card with background - background image", + "indoor_simple_illuminance_chart_card_with_background.png" : "Indoor simple illuminance chart card with background - image", + "indoor_simple_pm10_chart_card.png" : "Indoor simple PM10 chart card - image", + "indoor_simple_pm10_chart_card_with_background#background_image.png" : "Indoor simple PM10 chart card with background - background image", + "indoor_simple_pm10_chart_card_with_background.png" : "Indoor simple PM10 chart card with background - image", + "indoor_simple_pm2_5_chart_card.png" : "Indoor simple PM2.5 chart card - image", + "indoor_simple_pm2_5_chart_card_with_background#background_image.png" : "Indoor simple PM2.5 chart card with background - background image", + "indoor_simple_pm2_5_chart_card_with_background.png" : "Indoor simple PM2.5 chart card with background - image", + "indoor_simple_temperature_chart_card.png" : "Indoor simple temperature chart card - image", + "indoor_simple_temperature_chart_card_with_background#background_image.png" : "Indoor simple temperature chart card with background - background image", + "indoor_simple_temperature_chart_card_with_background.png" : "Indoor simple temperature chart card with background - image", + "indoor_temperature_card.png" : "Indoor temperature card - image", + "indoor_temperature_card_with_background#background_image.png" : "Indoor temperature card with background - background image", + "indoor_temperature_card_with_background.png" : "Indoor temperature card with background - image", + "indoor_temperature_chart_card.png" : "Indoor temperature chart card - image", + "indoor_temperature_chart_card_with_background#background_image.png" : "Indoor temperature chart card with background - background image", + "indoor_temperature_chart_card_with_background.png" : "Indoor temperature chart card with background - image", + "indoor_temperature_progress_bar.png" : "Indoor temperature progress bar - image", + "indoor_temperature_progress_bar_with_background#background_image.png" : "Indoor temperature progress bar with background - background image", + "indoor_temperature_progress_bar_with_background.png" : "Indoor temperature progress bar with background - image", + "input_widgets.device_claiming_widget.png" : "Device claiming widget - image", + "input_widgets.markers_placement_google_maps.png" : "Markers Placement - Google Maps - image", + "input_widgets.markers_placement_image_map#map_image.svg" : "Markers Placement - Image Map - map image", + "input_widgets.markers_placement_image_map.png" : "Markers Placement - Image Map - image", + "input_widgets.markers_placement_openstreetmap.png" : "Markers Placement - OpenStreetMap - image", + "input_widgets.png" : "Input widgets - image", + "input_widgets.update_boolean_timeseries.png" : "Update boolean timeseries - image", + "input_widgets.update_double_timeseries.png" : "Update double timeseries - image", + "input_widgets.update_integer_timeseries.png" : "Update integer timeseries - image", + "input_widgets.update_json_attribute.png" : "Update JSON attribute - image", + "input_widgets.update_location_timeseries.png" : "Update location timeseries - image", + "input_widgets.update_multiple_attributes.png" : "Update Multiple Attributes - image", + "input_widgets.update_server_boolean_attribute.png" : "Update server boolean attribute - image", + "input_widgets.update_server_date_attribute.png" : "Update server date attribute - image", + "input_widgets.update_server_double_attribute.png" : "Update server double attribute - image", + "input_widgets.update_server_image_attribute.png" : "Update server image attribute - image", + "input_widgets.update_server_integer_attribute.png" : "Update server integer attribute - image", + "input_widgets.update_server_location_attribute.png" : "Update server location attribute - image", + "input_widgets.update_server_string_attribute.png" : "Update server string attribute - image", + "input_widgets.update_shared_boolean_attribute.png" : "Update shared boolean attribute - image", + "input_widgets.update_shared_date_attribute.png" : "Update shared date attribute - image", + "input_widgets.update_shared_double_attribute.png" : "Update shared double attribute - image", + "input_widgets.update_shared_image_attribute.png" : "Update shared image attribute - image", + "input_widgets.update_shared_integer_attribute.png" : "Update shared integer attribute - image", + "input_widgets.update_shared_location_attribute.png" : "Update shared location attribute - image", + "input_widgets.update_shared_string_attribute.png" : "Update shared string attribute - image", + "input_widgets.update_string_timeseries.png" : "Update string timeseries - image", + "input_widgets.web_camera_input.png" : "Photo camera input - image", + "leaf_wetness_card.png" : "Leaf wetness card - image", + "leaf_wetness_card_with_background#background_image.png" : "Leaf wetness card with background - background image", + "leaf_wetness_card_with_background.png" : "Leaf wetness card with background - image", + "leaf_wetness_chart_card.png" : "Leaf wetness chart card - image", + "leaf_wetness_chart_card_with_background#background_image.png" : "Leaf wetness chart card with background - background image", + "leaf_wetness_chart_card_with_background.png" : "Leaf wetness chart card with background - image", + "leaf_wetness_progress_bar.png" : "Leaf wetness progress bar - image", + "leaf_wetness_progress_bar_with_background#background_image.png" : "Leaf wetness progress bar with background - background image", + "leaf_wetness_progress_bar_with_background.png" : "Leaf wetness progress bar with background - image", + "liquid_level_tanks.png" : "Liquid level - image", + "maps_v2.google_maps#marker_image_1.png" : "Google Map - marker image 1", + "maps_v2.google_maps#marker_image_2.png" : "Google Map - marker image 2", + "maps_v2.google_maps#marker_image_3.png" : "Google Map - marker image 3", + "maps_v2.google_maps#marker_image_4.png" : "Google Map - marker image 4", + "maps_v2.google_maps.png" : "Google Map - image", + "maps_v2.here_map#map_image.svg" : "HERE Map - map image", + "maps_v2.here_map#marker_image_1.png" : "HERE Map - marker image 1", + "maps_v2.here_map#marker_image_2.png" : "HERE Map - marker image 2", + "maps_v2.here_map#marker_image_3.png" : "HERE Map - marker image 3", + "maps_v2.here_map#marker_image_4.png" : "HERE Map - marker image 4", + "maps_v2.here_map.png" : "HERE Map - image", + "maps_v2.image_map#map_image.svg" : "Image Map - map image", + "maps_v2.image_map#marker_image_1.png" : "Image Map - marker image 1", + "maps_v2.image_map#marker_image_2.png" : "Image Map - marker image 2", + "maps_v2.image_map#marker_image_3.png" : "Image Map - marker image 3", + "maps_v2.image_map#marker_image_4.png" : "Image Map - marker image 4", + "maps_v2.image_map.png" : "Image Map - image", + "maps_v2.openstreetmap#marker_image_1.png" : "OpenStreet Map - marker image 1", + "maps_v2.openstreetmap#marker_image_2.png" : "OpenStreet Map - marker image 2", + "maps_v2.openstreetmap#marker_image_3.png" : "OpenStreet Map - marker image 3", + "maps_v2.openstreetmap#marker_image_4.png" : "OpenStreet Map - marker image 4", + "maps_v2.openstreetmap.png" : "OpenStreet Map - image", + "maps_v2.png" : "Maps - image", + "maps_v2.route_map#marker_image_1.png" : "Route Map - Google - marker image 1", + "maps_v2.route_map#marker_image_2.png" : "Route Map - Google - marker image 2", + "maps_v2.route_map#marker_image_3.png" : "Route Map - Google - marker image 3", + "maps_v2.route_map.png" : "Route Map - Google - image", + "maps_v2.route_map_openstreetmap#marker_image_1.png" : "Route Map - OpenStreet - marker image 1", + "maps_v2.route_map_openstreetmap#marker_image_2.png" : "Route Map - OpenStreet - marker image 2", + "maps_v2.route_map_openstreetmap#marker_image_3.png" : "Route Map - OpenStreet - marker image 3", + "maps_v2.route_map_openstreetmap.png" : "Route Map - OpenStreet - image", + "maps_v2.route_map_tencent_maps#marker_image_1.png" : "Route Map - Tencent - marker image 1", + "maps_v2.route_map_tencent_maps#marker_image_2.png" : "Route Map - Tencent - marker image 2", + "maps_v2.route_map_tencent_maps#marker_image_3.png" : "Route Map - Tencent - marker image 3", + "maps_v2.route_map_tencent_maps.png" : "Route Map - Tencent - image", + "maps_v2.tencent_maps#marker_image_1.png" : "Tencent Map - marker image 1", + "maps_v2.tencent_maps#marker_image_2.png" : "Tencent Map - marker image 2", + "maps_v2.tencent_maps#marker_image_3.png" : "Tencent Map - marker image 3", + "maps_v2.tencent_maps#marker_image_4.png" : "Tencent Map - marker image 4", + "maps_v2.tencent_maps.png" : "Tencent Map - image", + "maps_v2.test.png" : "Trip Animation - image", + "navigation_widgets.navigation_card.png" : "Navigation card - image", + "navigation_widgets.navigation_cards.png" : "Navigation cards - image", + "navigation_widgets.png" : "Navigation widgets - image", + "noise_level_card.png" : "Noise level card - image", + "noise_level_card_with_background#background_image.png" : "Noise level card with background - background image", + "noise_level_card_with_background.png" : "Noise level card with background - image", + "noise_level_chart_card.png" : "Noise level chart card - image", + "noise_level_chart_card_with_background#background_image.png" : "Noise level chart card with background - background image", + "noise_level_chart_card_with_background.png" : "Noise level chart card with background - image", + "outdoor_environment.png" : "Outdoor Environment - image", + "pm10_card.png" : "PM10 card - image", + "pm10_card_with_background#background_image.png" : "PM10 card with background - background image", + "pm10_card_with_background.png" : "PM10 card with background - image", + "pm10_chart_card.png" : "PM10 chart card - image", + "pm10_chart_card_with_background#background_image.png" : "PM10 chart card with background - background image", + "pm10_chart_card_with_background.png" : "PM10 chart card with background - image", + "pm2_5_card.png" : "PM2.5 card - image", + "pm2_5_card_with_background#background_image.png" : "PM2.5 card with background - background image", + "pm2_5_card_with_background.png" : "PM2.5 card with background - image", + "pm2_5_chart_card.png" : "PM2.5 chart card - image", + "pm2_5_chart_card_with_background#background_image.png" : "PM2.5 chart card with background - background image", + "pm2_5_chart_card_with_background.png" : "PM2.5 chart card with background - image", + "pressure_card.png" : "Pressure card - image", + "pressure_card_with_background#background_image.png" : "Pressure card with background - background image", + "pressure_card_with_background.png" : "Pressure card with background - image", + "pressure_chart_card.png" : "Pressure chart card - image", + "pressure_chart_card_with_background#background_image.png" : "Pressure chart card with background - background image", + "pressure_chart_card_with_background.png" : "Pressure chart card with background - image", + "pressure_progress_bar.png" : "Pressure progress bar - image", + "pressure_progress_bar_with_background#background_image.png" : "Pressure progress bar with background - background image", + "pressure_progress_bar_with_background.png" : "Pressure progress bar with background - image", + "progress_bar.png" : "Progress bar - image", + "radon_level_card.png" : "Radon level card - image", + "radon_level_card_with_background#background_image.png" : "Radon level card with background - background image", + "radon_level_card_with_background.png" : "Radon level card with background - image", + "radon_level_chart_card.png" : "Radon level chart card - image", + "radon_level_chart_card_with_background#background_image.png" : "Radon level chart card with background - background image", + "radon_level_chart_card_with_background.png" : "Radon level chart card with background - image", + "rainfall_card.png" : "Rainfall card - image", + "rainfall_card_with_background#background_image.png" : "Rainfall card with background - background image", + "rainfall_card_with_background.png" : "Rainfall card with background - image", + "rainfall_chart_card.png" : "Rainfall chart card - image", + "rainfall_chart_card_with_background#background_image.png" : "Rainfall chart card with background - background image", + "rainfall_chart_card_with_background.png" : "Rainfall chart card with background - image", + "rectangle_tank.png" : "Rectangle tank - image", + "signal_strength.png" : "Signal strength - image", + "simple_air_quality_chart_card.png" : "Simple air quality index chart card - image", + "simple_air_quality_chart_card_with_background#background_image.png" : "Simple air quality index chart card with background - background image", + "simple_air_quality_chart_card_with_background.png" : "Simple air quality index chart card with background - image", + "simple_co2_chart_card.png" : "Simple CO2 chart card - image", + "simple_co2_chart_card_with_background#background_image.png" : "Simple CO2 chart card with background - background image", + "simple_co2_chart_card_with_background.png" : "Simple CO2 chart card with background - image", + "simple_flooding_level_chart_card.png" : "Simple flooding level chart card - image", + "simple_flooding_level_chart_card_with_background#background_image.png" : "Simple flooding level chart card with background - background image", + "simple_flooding_level_chart_card_with_background.png" : "Simple flooding level chart card with background - image", + "simple_ground_temperature_chart_card.png" : "Simple ground temperature chart card - image", + "simple_ground_temperature_chart_card_with_background#background_image.png" : "Simple ground temperature chart card with background - background image", + "simple_ground_temperature_chart_card_with_background.png" : "Simple ground temperature chart card with background - image", + "simple_humidity_chart_card.png" : "Simple humidity chart card - image", + "simple_humidity_chart_card_with_background#background_image.png" : "Simple humidity chart card with background - background image", + "simple_humidity_chart_card_with_background.png" : "Simple humidity chart card with background - image", + "simple_illuminance_chart_card.png" : "Simple illuminance chart card - image", + "simple_illuminance_chart_card_with_background#background_image.png" : "Simple illuminance chart card with background - background image", + "simple_illuminance_chart_card_with_background.png" : "Simple illuminance chart card with background - image", + "simple_leaf_wetness_chart_card.png" : "Simple leaf wetness chart card - image", + "simple_leaf_wetness_chart_card_with_background#background_image.png" : "Simple leaf wetness chart card with background - background image", + "simple_leaf_wetness_chart_card_with_background.png" : "Simple leaf wetness chart card with background - image", + "simple_noise_level_chart_card.png" : "Simple noise level chart card - image", + "simple_noise_level_chart_card_with_background#background_image.png" : "Simple noise level chart card with background - background image", + "simple_noise_level_chart_card_with_background.png" : "Simple noise level chart card with background - image", + "simple_pm10_chart_card.png" : "Simple PM10 chart card - image", + "simple_pm10_chart_card_with_background#background_image.png" : "Simple PM10 chart card with background - background image", + "simple_pm10_chart_card_with_background.png" : "Simple PM10 chart card with background - image", + "simple_pm2_5_chart_card.png" : "Simple PM2.5 chart card - image", + "simple_pm2_5_chart_card_with_background#background_image.png" : "Simple PM2.5 chart card with background - background image", + "simple_pm2_5_chart_card_with_background.png" : "Simple PM2.5 chart card with background - image", + "simple_pressure_chart_card.png" : "Simple pressure chart card - image", + "simple_pressure_chart_card_with_background#background_image.png" : "Simple pressure chart card with background - background image", + "simple_pressure_chart_card_with_background.png" : "Simple pressure chart card with background - image", + "simple_radon_level_chart_card.png" : "Simple radon level chart card - image", + "simple_radon_level_chart_card_with_background#background_image.png" : "Simple radon level chart card with background - background image", + "simple_radon_level_chart_card_with_background.png" : "Simple radon level chart card with background - image", + "simple_rainfall_chart_card.png" : "Simple rainfall chart card - image", + "simple_rainfall_chart_card_with_background#background_image.png" : "Simple rainfall chart card with background - background image", + "simple_rainfall_chart_card_with_background.png" : "Simple rainfall chart card with background - image", + "simple_snow_depth_chart_card.png" : "Simple snow depth chart card - image", + "simple_snow_depth_chart_card_with_background#background_image.png" : "Simple snow depth chart card with background - background image", + "simple_snow_depth_chart_card_with_background.png" : "Simple snow depth chart card with background - image", + "simple_soil_moisture_chart_card.png" : "Simple soil moisture chart card - image", + "simple_soil_moisture_chart_card_with_background#background_image.png" : "Simple soil moisture chart card with background - background image", + "simple_soil_moisture_chart_card_with_background.png" : "Simple soil moisture chart card with background - image", + "simple_solar_radiation_chart_card.png" : "Simple solar radiation chart card - image", + "simple_solar_radiation_chart_card_with_background#background_image.png" : "Simple solar radiation chart card with background - background image", + "simple_solar_radiation_chart_card_with_background.png" : "Simple solar radiation chart card with background - image", + "simple_temperature_chart_card.png" : "Simple temperature chart card - image", + "simple_temperature_chart_card_with_background#background_image.png" : "Simple temperature chart card with background - background image", + "simple_temperature_chart_card_with_background.png" : "Simple temperature chart card with background - image", + "simple_uv_index_chart_card.png" : "Simple UV Index chart card - image", + "simple_uv_index_chart_card_with_background#background_image.png" : "Simple UV Index chart card with background - background image", + "simple_uv_index_chart_card_with_background.png" : "Simple UV Index chart card with background - image", + "simple_value_and_chart_card.png" : "Simple Value and chart card - image", + "simple_vibration_chart_card.png" : "Simple vibration chart card - image", + "simple_vibration_chart_card_with_background#background_image.png" : "Simple vibration chart card with background - background image", + "simple_vibration_chart_card_with_background.png" : "Simple vibration chart card with background - image", + "simple_visibility_chart_card.png" : "Simple visibility chart card - image", + "simple_visibility_chart_card_with_background#background_image.png" : "Simple visibility chart card with background - background image", + "simple_visibility_chart_card_with_background.png" : "Simple visibility chart card with background - image", + "simple_volatile_organic_compounds_chart_card.png" : "Simple volatile organic compounds chart card - image", + "simple_volatile_organic_compounds_chart_card_with_background#background_image.png" : "Simple volatile organic compounds chart card with background - background image", + "simple_volatile_organic_compounds_chart_card_with_background.png" : "Simple volatile organic compounds chart card with background - image", + "simple_wind_speed_chart_card.png" : "Simple wind speed chart card - image", + "simple_wind_speed_chart_card_with_background#background_image.png" : "Simple wind speed chart card with background - background image", + "simple_wind_speed_chart_card_with_background.png" : "Simple wind speed chart card with background - image", + "snow_depth_card.png" : "Snow depth card - image", + "snow_depth_card_with_background#background_image.png" : "Snow depth card with background - background image", + "snow_depth_card_with_background.png" : "Snow depth card with background - image", + "snow_depth_chart_card.png" : "Snow depth chart card - image", + "snow_depth_chart_card_with_background#background_image.png" : "Snow depth chart card with background - background image", + "snow_depth_chart_card_with_background.png" : "Snow depth chart card with background - image", + "soil_moisture_card.png" : "Soil moisture card - image", + "soil_moisture_card_with_background#background_image.png" : "Soil moisture card with background - background image", + "soil_moisture_card_with_background.png" : "Soil moisture card with background - image", + "soil_moisture_chart_card.png" : "Soil moisture chart card - image", + "soil_moisture_chart_card_with_background#background_image.png" : "Soil moisture chart card with background - background image", + "soil_moisture_chart_card_with_background.png" : "Soil moisture chart card with background - image", + "soil_moisture_progress_bar.png" : "Soil moisture progress bar - image", + "soil_moisture_progress_bar_with_background#background_image.png" : "Soil moisture progress bar with background - background image", + "soil_moisture_progress_bar_with_background.png" : "Soil moisture progress bar with background - image", + "solar_radiation_card.png" : "Solar radiation card - image", + "solar_radiation_card_with_background#background_image.png" : "Solar radiation card with background - background image", + "solar_radiation_card_with_background.png" : "Solar radiation card with background - image", + "solar_radiation_chart_card.png" : "Solar radiation chart card - image", + "solar_radiation_chart_card_with_background#background_image.png" : "Solar radiation chart card with background - background image", + "solar_radiation_chart_card_with_background.png" : "Solar radiation chart card with background - image", + "status_indicators.png" : "Status indicators - image", + "tables.png" : "Tables - image", + "temperature_card.png" : "Temperature card - image", + "temperature_card_with_background#background_image.png" : "Temperature card with background - background image", + "temperature_card_with_background.png" : "Temperature card with background - image", + "temperature_chart_card.png" : "Temperature chart card - image", + "temperature_chart_card_with_background#background_image.png" : "Temperature chart card with background - background image", + "temperature_chart_card_with_background.png" : "Temperature chart card with background - image", + "thermostats.maps_v2.openstreetmap#marker_image_1.svg" : "Thermostat maps - marker image 1", + "thermostats.maps_v2.openstreetmap#marker_image_2.svg" : "Thermostat maps - marker image 2", + "uv_index_card.png" : "UV Index card - image", + "uv_index_card_with_background#background_image.png" : "UV Index card with background - background image", + "uv_index_card_with_background.png" : "UV Index card with background - image", + "uv_index_chart_card.png" : "UV Index chart card - image", + "uv_index_chart_card_with_background#background_image.png" : "UV Index chart card with background - background image", + "uv_index_chart_card_with_background.png" : "UV Index chart card with background - image", + "vertical_capsule_tank.png" : "Vertical capsule tank - image", + "vertical_cylinder_tank.png" : "Vertical cylinder tank - image", + "vertical_oval_tank.png" : "Vertical oval tank - image", + "vibration_card.png" : "Vibration card - image", + "vibration_card_with_background#background_image.png" : "Vibration card with background - background image", + "vibration_card_with_background.png" : "Vibration card with background - image", + "vibration_chart_card.png" : "Vibration chart card - image", + "vibration_chart_card_with_background#background_image.png" : "Vibration chart card with background - background image", + "vibration_chart_card_with_background.png" : "Vibration chart card with background - image", + "visibility_card.png" : "Visibility card - image", + "visibility_card_with_background#background_image.png" : "Visibility card with background - background image", + "visibility_card_with_background.png" : "Visibility card with background - image", + "visibility_chart_card.png" : "Visibility chart card - image", + "visibility_chart_card_with_background#background_image.png" : "Visibility chart card with background - background image", + "visibility_chart_card_with_background.png" : "Visibility chart card with background - image", + "volatile_organic_compounds_card.png" : "Volatile organic compounds card - image", + "volatile_organic_compounds_card_with_background#background_image.png" : "Volatile organic compounds card with background - background image", + "volatile_organic_compounds_card_with_background.png" : "Volatile organic compounds card with background - image", + "volatile_organic_compounds_chart_card.png" : "Volatile organic compounds chart card - image", + "volatile_organic_compounds_chart_card_with_background#background_image.png" : "Volatile organic compounds chart card with background - background image", + "volatile_organic_compounds_chart_card_with_background.png" : "Volatile organic compounds chart card with background - image", + "wind_speed_and_direction.png" : "Wind speed and direction - image", + "wind_speed_and_direction_with_background#background_image.png" : "Wind speed and direction with background - background image", + "wind_speed_and_direction_with_background.png" : "Wind speed and direction with background - image", + "wind_speed_card.png" : "Wind speed card - image", + "wind_speed_card_with_background#background_image.png" : "Wind speed card with background - background image", + "wind_speed_card_with_background.png" : "Wind speed card with background - image", + "wind_speed_chart_card.png" : "Wind speed chart card - image", + "wind_speed_chart_card_with_background#background_image.png" : "Wind speed chart card with background - background image", + "wind_speed_chart_card_with_background.png" : "Wind speed chart card with background - image" +} \ No newline at end of file diff --git a/application/src/main/data/images/widget_bundles/air_quality.png b/application/src/main/data/images/widget_bundles/air_quality.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a1235bc2e49ddfd7c239773ba30c9d5a74254c GIT binary patch literal 2965 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 Eg1s1PHUIzs literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/cards.png b/application/src/main/data/images/widget_bundles/cards.png new file mode 100644 index 0000000000000000000000000000000000000000..69c1e0e3c8dc1b5ecec42280d7f2c18a3972165e GIT binary patch literal 8513 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/control_widgets.png b/application/src/main/data/images/widget_bundles/control_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..9237ff3f3799ad2453dbe00c562890775b40bad6 GIT binary patch literal 6981 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 XXl`6JvFX>600000NkvXXu0mjfD?yMJ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/count_widgets.png b/application/src/main/data/images/widget_bundles/count_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b41b8e8fa15a13dfe9d23b2237f26a672a42ce GIT binary patch literal 1871 zcmaJ>dpOgJ8~?hsxzA26$!!@XLda=3xy)@L$E}=1RE{J$H8VtIGK+FeB%S86TtXL@ zMJC53hG?2YlU37<<2EBUw)pKifB$~J&+~cT_w&4ez3=CJo;TCi$3s~`TLAz73<>7TrO84cXoCJ0>ReS7MsoHXKQY5 zZjPE*ZU6Wo7K_){*F_@H+FP24-Nib4VZH7I3)RHrl$4YR z2k&h(orlBWd_I42aFH@`Xqfan<>lq|z0#GRrz2kBixw6oCatu#^C)dgwGCTi)$@-l z<{v&5(sG2|x4tFg*_ec{F_?{(sP#Jk30Lp!t#vW?op@$I#A@GYjr|mKhGA{bGBYob zSS*kA_X${Q*$?nvnCUO?KnaNeAeVj2)j2S6a*1^z;FA^5$Hxj@cHOU6c?G9u!1J6n zl6glJvAhn+B~Ivgx->lCPTnyhZR4k$KMNDyP#Z~coR0&B`5JHU=pe6|V^$MQ2-Bk@ z-#iRGj;N&_$#vZ~NXqrJg9O7&2kdf;QcbsyK@<%e>46g<2n{yWve$Ut`Sudw3K0|Ji6{meVD%ft8`QE_LwV+& za(ReyrDWDo!$phe-~+oAxwZZDnc3|cTzL`%_fHO-;U|G}-)LH;Z zJRGDCEuC9-d6T=|za=7P{363UrAs@U8mQ<5Ei`I0-A-Vv60O#LrG-x4XzWnUH^2A8 zC_+w4NA_eOF$VbfdDn|_J5IkLP+1A+4Vx+_NqsK;`D=&o9_wq$qI^F~c+07Wp+D2n zT}~qv9~jj&*m0Scv;EemM>MoeAvF8e?40f;7AfzyO%-|zn(l;mDq>R_rC#_&Q5O}k*68=E?dHJf0RG+Fq8w-h>ndHKw8>pPxK!i3J)-P zm3VTxl6|TBQ(Jen5TXmWHwQUpr=DwnUQYHSJFoa0%}XcBl*P(Sm24%BUa2p0rfK}- zg1B|=;8PgJC81P(l=<9y;!Gu1Wk1ycg$VFChXMT*Hdp%? z%4ja6+18o3g4xhbp3A0s-QmOV-ULwXpBc2G|HhMY6;sOyd}?Y< zGCr$m5q@b?cT>HY&yJO0=F85Tn59$7Z&H)v=Ww=}cI4#Xg60Fo-sKlFVa;c6`}GDk zIvzJZFW=19%o~E=>4*xx`(Z~4M$kIqJ)ZeyANy{L`CiH$cyxEQfq`aN=r#+a${FVb z-z|IMSc00jv%<$%BXh))x_ccC$#tus9^bQ^-4LB5pf%Ro`7!#Ke=c1*?vHxcc`GEk z0k?B4IaxFdaeDT3ePI?Xm%fv+r{KU;PTGau*OyzF9Y~>(3Hj#eRSku|vJ1W`eFt7t zX+Clg8X0liQ;dtX5Hj{MF1bSj@RdUj_pQDL8RU6QJZotWZA;tO_*D-bhCGSHX~$RL zD{RuwR?84~gE__T?$AM!<7J%hm5Eu05#Je1~{H!oS7zX7&U0P!ss54;hK6*&C zj4DIoq}N-Vc~V2MeIXYy?M1VQ?W(SF!M)819kX@NAdN&=Cxv4o%g5w7eV)2a{4>Ha zEbaP1jzhHeJjP3g5vuDaaI~2zIV&8Gp$!W(Wji|M2dvi@QH>}SdB&o2miqD!^q8(0 z`g-VA_}^`)=8+q{&E77V=0o3^xxQ6{^V7w*=9q-~i??I`4+&uCLy#-&%=ce oSz=W0>(9yf`jTtnqbrghNreo)Qp3KMd~4vCn~&==RCwBd05u-2^Z)<= literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/date.png b/application/src/main/data/images/widget_bundles/date.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6d10bfc208d0eff034023561c00ba60b6c7954 GIT binary patch literal 2235 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 z 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/entity_admin_widgets.png b/application/src/main/data/images/widget_bundles/entity_admin_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..b41999bc6421687db100c05e2ba3e71c08ab3e3c GIT binary patch literal 1612 zcmV-S2DABzP)Cvo9=X*@qhB7!FhxH94k$ zYhMK>SHlGdP+)2paH5!+V{Sl>F9P|$+8o+ru3Y_<})<4xA%f>+P!6`ojJloMMTAyw=#OlL8+U**bX+pUx0Md<_ z1L~=OL*dti0WXROCxaMLxqrRTl&RUdTEoyN@A=iSRfUmbpw5 z4hR4U;E_r+_IU_%0xwV1{-$~$lanF0+_f6)aIJ zQk8)8-r80=l|gOKXb)>tm!nbQW9)E2DvmD55?2ZtYg1YzYW|*BJ$IwdQx=Fw;o&>A z-!_}B6mlR?-W};{3d%Jv?oOr30@?Vca6>U&Kj*(ni2w8?aP0N%Wc;CI&|8i*zsBDR zG`JCU7p@ZWCCZ(~I(_^SgdhYV2-hK@C?_gJLyI5;AqYXfKqWd}zcZJzcJMl^sbY{m z{EWUkA$*sL*5ST-`%!DQv@MH`2ILC>+{gp@5*_i`&W?9xvqL>SJww@Iknz>#m1nZy z&AQZ(0>7$~8Fh)%tn35}7`Aj8I) zRIdqAm{+v+XS%JjIz9!d;u6;Kb_y)(J0{EL^cgXO5bvD?`)zhDS(T&y6Pi|-;B&7XQX8V%Wb7^TCyxh=;#PXE37x2 z^Op95=p|ZR_3dcT3`Qg=ENvu5RHZ`{828BAMk3mN!-`R1GnMGLaI35KDuQMl9jTK` z8#XO3Rt8A_a*yq>A=oc31e#{NWp#W4vYcP>{%(v6o3IlE7E3=OQ^vLY@Ka1;@j$og z((h2KORX+JDh=UG4v{m-&@4Byy7?O97$$bji(&Gp0Y{2M5DMm3)tjAy`PFwq{K~#- zMT_5M&c*;77pe&2;Xl^?zdw%iZBYB!C5wXo>wy^Y=umO<+>~3O*Oy`=^8IL{_g108yE74AU}Q#)7R)SYSDM4qFD;96IgO8d4*& zDOlNXpEg@1N91}I1@q}D3PA`$5P}edAOs=E=Rmj<%)h;@boK@)m|qM+!TeGn6wLob zQ81q%1R)4Pz6J>08X^zVV^9NM_ z1@r&lMlfHtUzT9LZ2aF~{;W+;!F*6!fzBfYAqYXJXQ!T>-XjDd2(`Kt%)ew+IGEo} z!Tj?O4hHkxF5M2by430tq|y)y=2um5DVTo}4TTTCY#m)iF#jLq>uUPNlZpKR0000< KMNUMnLSTX-pXq1- literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/entity_widgets.png b/application/src/main/data/images/widget_bundles/entity_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad30084a9b6dfe9ab08ded4650c08ae636bec21 GIT binary patch literal 3090 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/gateway_widgets.png b/application/src/main/data/images/widget_bundles/gateway_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..0519178e43492ca5a74a8b8742037bcc474a64c3 GIT binary patch literal 3767 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/indoor_environment.png b/application/src/main/data/images/widget_bundles/indoor_environment.png new file mode 100644 index 0000000000000000000000000000000000000000..37da43384e3ef7f4319cfe770e26b1af3bb4a320 GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/input_widgets.png b/application/src/main/data/images/widget_bundles/input_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..8b142ad884710c194470f1bd96b16482b0ee13a6 GIT binary patch literal 6766 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 Q-~a#s07*qoM6N<$f-hAui2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/liquid_level_tanks.png b/application/src/main/data/images/widget_bundles/liquid_level_tanks.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5afaef8df40c149fa2ab211786ffc9235cf4d0 GIT binary patch literal 3211 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/maps_v2.png b/application/src/main/data/images/widget_bundles/maps_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..b219e45e69153462b8446c0a9dc7ca996985a000 GIT binary patch literal 16652 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 b{Zsu40sFT literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/navigation_widgets.png b/application/src/main/data/images/widget_bundles/navigation_widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa32fcd1395ae35b38ee8d633eff4ea201a073a GIT binary patch literal 5297 zcma)AcQ{<#_8u*2h~5dJ526#jg=o=cj6OO;qSrB^C4wM&v`_TTM2Q5WMXynYWDp^G z?=8xm-0%MG^WFb`=R9YxefC~!Kl?fBIq$pP9b=%cd6$HV1ONcseWImqgth(H=RFZF zw(ZSrxWSq`b~>8sfZIR!dsJx(06^pPL|w%s5VMneW(w+~3%ht)2M+D`FcTb0&XBiw zBPt3z+lHwu9=albKX_^E8bD2mSGM=L+D9I_Gu>md8>!DANp+83hi(j$DEb4B&OF06v1 zo>haN(~3LNSr(8+@KM{BW1{i!Y!^UkhNIDJt2bxMVSaCeoD!*y52VD=QSYD=6mXmce%2KxQj7OF~tAu_~gFll(@}wdBjIzCz97*h?)9b}> zG=FW3DY*T)yF1ed&!*VUU?IPKIXeH7z`zMRxDD-Rw1Pve4NwH9ax$ip!gEj?^CDIV zCp*%)@vyJTQ{mpdHTJZnpNNFBy@vBPu#}q>?$ex>Rq8CF$x9x?xPX3Im}S$M!~i}} zJPaN5bO-?K7Fl8vZ3!u$0VSDE$X0u}L`mVkkv>p<99X!;n6~1(?Wcc>2|84o+##0d z=QBL0%+Z%@9RXR)bnv!uxp5!d-h2_3tasF&LQ6|XN>c;m(zy4Z8FH_n2gh5z&WMpD zkX4*Y@u4zN$SlQ6Y9E0|FZb!r?sd@{*R|!sq+Qb0octAqr#_`UH=co0u_GkaI?t9I zx&3!%%RdGq12=N|vu6CjTjbubHOAiJpK;Q}^;1;6Zx**B%~cF#qilgM%syqG%TaiX znjnBpR$8M*tt60JeB|^VDJKu`Mrv{SxG$=&*4H>=yVd+%{V5UmRnQ>?s^9$RBrbZO0JZHPi5sH-{@X}Qq8`&# z8HPqd8Abf(ai-Z880-RJ$})QznFo)y7-`11$0iSA?=%_H69bWQP5`>U=xl446qAv2 zcR;;80@gt$;U`NCt(&w+0XJT#9~Wd8dj0SizJ>NDgk*Tg-+yIeU|8~UfA^Q@rddX^ zD|7273ICUZ8J_*S^21-a?F_{Maa2V1@no=W-^H56hVL7L>b=(s!gd2v+oZ8NC`~4Z zLnaEGO6JZ-zN=zG>gOvG_?mr!>)rujJt8rUS5j79vP1Vu0}XS$Dau4`%b8c&erUdRLD{H^xqT2Puyo73Sm;54Il#B$jHTmBr-bRi5{43%2i$1QTC$8Tan0G|e zm;w_rvniM(i$A-pQSJWBu^J0e{kGvUG_va5M{Uw=*QYvg1d*u>1xfqv>T9nGCohQp zatlk-zhO)~91xqqXm(s$b}m8HkKzV#3yd{|yvBJu;s!^Bj9j$^VI4Xx5_aQk=Rg0_ zhZ}hS=%jV8{>#7$Wi8&;2)oz(Jv<6rhb?$-IUs&m@7vbTmeiJyMD(hjEU0#2s){$H| z+W~WN;Y%yrDQs)At`##hg-JVnHKfyP*#lCmj!kr6anQbc4AU1^%57`U&DS6NcRqo`;tTd&^R+q=59=Ef}_ ze7t^h{hObkzk!E?gF{+6L+b`{#{u+b;)sgJEL>3uO=*C2GT3T8j74VTH{L~%R4nNyX*sA#Z#Oj;eLK6v9yAxdkcwdM3XlK1?lVqh{I)K#BwUHa(Q|Au?DTqS*=w| z$w>NalSgG>EaG&V@lpQ%^71lvx$;1X_Y;LizB=I{-r66?aK7Xx7h|u|Qe&CBt0|&O zRAw$kOr#T&T#{Mq>8nY(-5J7GObWpbFdyg6C2EZ-v--y;n;ABthEUNOY98JFv$NZi z85={E1IR{21rlui5Z-4+!5%-r1Ed!Vnc)TTWY@WFd!Fp`iWfmu31QBF?oX_iFH zp=LZ2`Y=G^SFh*>AsGXp9J^PnE2_GBr$33y5PW-cjY6S*A8*t<3{Yum_Bjrviwacu zQyFZV+8`P|78JW^TCii~#-(k62TR5gj?bPUZmxo8o#Yuf2nh+hz+mu06=T=i{lzb} zmY*X)v!A@U5Lee{3r}-oR2EbmezXR;&D3z;Y}K}(?(d&(l;%OVw!haKXuSy7{?_UF zes+J~6GYJSe7@NaT>(P;K0P@;W)X8B`X*Wku{I#*R)74MoJpd8Xo$2iCG_U%LNkHI zwuqry+1P9HGRNZx2!F zh>eY1nix~M9p=?_|IwQ1ztHR#CkkjRDJh}kdJLFu_S@1@URb9(NM&JV9eHc;n?mVI zIT&QBtPH4_x^rS2(datKv)bSf1JL1DS)(p5PtuhRj8Lo4X)h*9N|msh59)TI>oQ6A zyY>?q#b1>dOALEH+%&(afS8N77B}-Tst<91l*7`G zC&$JT%}RNcV1&TljQzh9;HqkBpa&mQGIdc51QUYuM!4MeuNG@b(^X&je?!`?tgL*a za0fCJi=s$vF?!L8_a)yg(C>?i9yF^14qZgQ$Hm2sGl328;!@Qo)J(#j z;L$inKkN@i(g7jLv;qpj_y!=kU-_FPWMmGPSp-1$Qd|P#LDk_0ov*xNpS%kD^ht&X zy*!XIp1dg;-_X=#8r+*Bh@4XAq)MTtp@|~yBOljo|i0-e2EN@*4puJs_xLmQ;?DxH#@#_shFrXk9*zc;L8ocAI+7EPJ2u#K`w*j zBLNOGY}ZST|?3EUnFThL7JbN$Z2%Csv2kSwf zsv3odZv&&w&j+uD@QiSD{%R$K6#NITf&Yf>+HcPu48~DPX7G#G?J*(SM8tH1}$XIPbki5KWQWRVgQc}K2?0(W+{7_~Qg>6)NW~L=wl4@aF za1qE({@}LziNhMJ1pz4QsHO=ru#pJohxD4b-hD{^E~$EK-3u=ir2Tkw3lppeuT5;6 z5joWxqVSWd^^=`vLxN>Zf=WD99-)d{iZLdN3wRS z0tOR#;Cxcn{(6sp6b}C;#syL!tnw(uu#vV57UH93$*p56*w=P2E7X3HJCxR@2sN&} zsDMj#T)REQ95hSl$O!F&Ej-(wUHx(*-ANFnwMCgHL(1M@f8R1zJCtw%! zDsLT}8r#Y+ZQIQ6{WzMZOZl=;-mZ91}|uCg-)^BPO7B5{PWyF6b@ut zZ+4rm6|Jybs+9X?D96Lcw{P*anMLafl=Abn!MVrKscXv*2Daqu51l$akZQRyDPFzV zpBmPijYlMTpD&Qjm_Bdj4N(f8YQ!+JaGc_28?hi_m&p#3`(fD!*lEPsbcy~?lmm=@IB+uw$*`S^rDQRgz%qaI< zKI8VfBMs)R59~n9KX&nQuyN!BbM} z!-dza@It8sF>y^{|IVKZf+3lixno1tM;{x98LbPU@M%XPATHGJ&3g95_LI{x%4 zGxeJnyTIzQd=_o+$bD`z8OJ_;xX`%#76n=%7(9jZv6-wYxlZ6?SRE?m2X1Farkrl1 zpO_e9Mjx$7{8m@wu?M3+=zy@)kf4AoB?#GT8~Fa}y>PswJ|Y`rGb2HW~N z1L(4hw2SZ?--ziu7!G~CNueJmqWc(S+2L?+K>(sFUc#;om0IdAzmVgAXEsKTsM*z6<%v~XJV&v~^7b+5aa0fvl{C<-i za=ya??%%F?$L@A$x8zkG+Udpc{$#rsebTl4`Mj4rYX$lk38@?CsdV4LiF0J#ic7yL zG@2SLCM2z=VG7W3Y&s&d_mK7s>%UlT!IT)U*^lEZ$65vwkr6uS^0P<3dpL!g?$IqL zs0iPp3~}UHj`5k9g1N00za8jivy)JLx031osu2flWG>}??F!c=CJzT=Vy$i*On%>b zk$c`p!g`^4R(r(Ufy^$Mf8eYw=yzgIf+lAsplMG@oD0H0rDsTzdK?{eOfbcFS8}t{ zh}eMCjXL!z;38B3@{lI&U4HV;LAe`QpxNX$|2)Z89=zd zH`GQVI1AA;Y%ixv2` zUFBiojWjT5{+Dk>x=xY-vI21zop!9tO?V8lD;yQ3>iaBrJ5(i=zZ`So=zawu!iV)! zM~kt?Lb0;;$bA7S4<$}Z!|Ti5`E+*EeBDVp(xy}m>Rj)Z_W?O0xOBQ-wV2fWgG=WD zOCnT}xzIFIs0wrUTPotVz?7H+@EYR-wJ|_+Cs-u=r)jx`J02405R4@9p^u@O(xHR5-bh;4^JEagQv6p zO9THPhmOm>NObtK(OamkGs+dIZpAZo!UoxXLhI-X({4TaimeuesW733#HRuU?}HjrbR^z4#~q literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/outdoor_environment.png b/application/src/main/data/images/widget_bundles/outdoor_environment.png new file mode 100644 index 0000000000000000000000000000000000000000..323a878559a6e4aa9e4044ee3359129453a4445f GIT binary patch literal 3181 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 T&k5#<00000NkvXXu0mjfxy5K; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/status_indicators.png b/application/src/main/data/images/widget_bundles/status_indicators.png new file mode 100644 index 0000000000000000000000000000000000000000..da592dd143c8cd907cbdfd86903e12c6dfafae4a GIT binary patch literal 1716 zcmV;l221&gP)-+KJ+4$wGtgOuT z+~4`?`2PEZ=d4&*Sh~8pbaZsp)z#AW;F;^Xf`WpD=c{Jnm!6)U!t>Q;W@buCO1SaP z!1L9k?ZHb+OFcb3JUl#w=d9xS>yPQPdgY~=>$zE3Sr=D{?*IS*1awkPQvmPZU+h_A zvH$=D(n&-?RCwC$+>LgcFc=2lZT)~GBqCr5R0I^Y{_g%SZvnRygjw zJYoplIDC8gZuXiVFW*ES(DDO%&UfK>M2iVM#}tkSv}lNiRM8L(86_kl<&t`cq@`EL zySs{j0fgdF`~*`qMBbtvLPC~0OTObf;>1g`b(btu4UxB~hQuUwRuG8C)(MCMVaioQ zK%Q$z%tN=_Bfw(E?Qf676$F@gb{mB5?QTx~1;kuAD@NYq6+pSy zon9d3Dt%{Uo9;j)C2pujJyFnxTogJ)sHyb)WNG6}z#|L?u!LA`1q9LC`=(9j3SlTd0Q-zQNeU(F~G6>+A zC;e}QDOCtTQ|XCNlGBMY2%1hPx(=OSwO2k&d^D3}f>mBrLno5VKq&-}Kb3^)3(qd2 zAsV6~?UwJ*bAAZNBU)a5n7!uvi*P)mMMp>H)95=4{AKhV25!nz&FmVYA!Rh=|ALqi zg9w^10`j%65v1sm`r7IFZ z{kR3vUyB^FB1;mG&@C%gd{tHyYq$d|LR^t0d50~#1ERP^4q==C0iMPYiE)*;!Rz3nvW^T@{DluUqsy(nLcvL_;)0Lo}p}k45PCA-Pco zD}f+?op0tvHr5)WheBQ}h;=u_&yTionPhL_kwNe#G2}^(*=QihY7|n-oQ?rP=f>CB zq)VZLhFD2ku-L2*_4Xp{S&IwLoDLR(?UrJLk?bJQdWoG46q2_tn#1r> z4(FuVDM&2@`B>ym2-^SI85V-iLNoi%PN7O6b~XI&f>2xfHp_#oKWMBFf{iM7L2Abd zU!S8C*UMX$htY-mTuacfAihy$b1|~_Mmwju2TiiyLnRv)1XUk-{KZL1GRM~+Mm#JC zSQkSV?>mO>K^GMtuk+Bx2zXYG>i4=~NGY`WI~WEBX_6pJK0lFaD7hL4{k`v1LynTO6gkCK0ckeA zAIOQq$DzkDKr%z*+}a(;%Pq^wy*AA%8-@*mY;nq=4z=v&KsCqh7g;cHNGtxnb1y|` zG8zcl7~Rb2=pfXVpPu+5gR~uqowOGGaY4MRe}lkzE!*4=LAfQ8Jp{6@=f%!UXx$H) z8)dvlKv1#O3)&t2HoX_pY~y1F`{tZ?Cz2U; zL$Z4M7(3)_R9TE2k{eZyV}~4!D%sc}U{yn8^hYg#!*Ox+o?ss7VP>~lpH}qRY%fa6 z=k~>mh7193ErOvFx-Np+FB< literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widget_bundles/tables.png b/application/src/main/data/images/widget_bundles/tables.png new file mode 100644 index 0000000000000000000000000000000000000000..531f5057f020d5fe962adca14a38692bdc203952 GIT binary patch literal 3486 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 M07*qoM6N<$g3wXnvj6}9 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/air_quality_card.png b/application/src/main/data/images/widgets/air_quality_card.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5e0186144576d74b690b006a64a6b86f09f107 GIT binary patch literal 1938 zcmV;D2W|L?P)9B~$ zIqvT6!otFyo}TCD=lA>ay1Ke_babH7VJ|N)`T66GjW`x zbFt&it89fWbgJ0;{_nOsC`u@FnbahT)K4;pjFO@hqiWuHn`> zC9;-1yZPA)h^XLzY6MKE3s7!;@__R3q9Q9PAJ=zMZc3Qqu%=^!M{7)o*eZB~@pM6e zi=(6-Ed+~;id3sbzb`A8;xTY&4w(Y2ib2naaFy0q7MZe8w8^Ox`K7^!&hmXbK9w2(We?x-f_c9u6C>R+xmy9#jZMolRu1K0wVbOHMtFrlL+Y+Fry%2iBcP z97Jr$dMpyrQDQ7o^tVGGLp3d?v-LDoIdK_`0nVW&d~f?^Jd@*J||%g*o=J`C?! z-BMEU;4(|q%7;)ZX9}>Ux#&k@CFLEQLbOJ}`*1^?lhY#QltEr#wk-(2`p0d{w+5cs~j9TM{VF3K1L_;0N4cmGc4nhyb-Ys5W|NqBLO0PS( zt)+cvaKRrzD3%@aMFc1Fe|dx($R5dK<_w(3v+M`ur%@LP0rFaGI1m_@*cj}DUBs&% zC})o!Ap(zI{^7TOq1=fqSTF}I8e&@a9{7=pDom|l1TDC+;zVe3{;osOwC7g!YqUxz zxE=M5oagz+ok$>VylG&f1UC_Y7G#4pW~K#wXf0&%x{eWix_4<2n+jTMfza{+A`j;W z7x{YM5nUQX6}%TgmTGCnHSQu&V_crsRe2I2s|q9nscxC*0Fm$W$+pN7+`vkdaU$!; z24$h-&vPpfO~kZlT`dg_Hr(|Dh@M44BX$u+*c7y8tgKWK4iGud&QG`@h&WXhnMgzk zqTdH8$_lCA<(fu}3PCS9q6Bb+{ngrM=WA8bx@YwxMBv-6ll_*wjRfzZhJf7XhA8kJ zf|N_=JNxT=qED2U86rdEvoJ(@V~F&|5b2E}(i=mhH-<=W43XX#BE2z0dSi(6#t`X^ zA<`Q|q&J4hANI|j#bFo*!%KNF*a%yT!IOu}5CVnv`u~61p~R^jYA(YKGDqH}^%v+t zQrremCc4&5rQ=sxG1bMd$-ct5#AL8ual%?!YPnw;2lTR4{Xa01YFrx@T% z2V`R46U41_rduVM8doxQy`nCN2f$`JhE})(=z&;>;(JK4DY$9~035PSxb0XpOc0N;XS zRS>&BhY?Re2p}UOfUE6A&`fqKAQkC%5QkQhQ7_=$t~xak36kaQk(1CeXqC$)IM-EH zyx9|wc01DVAQ6DC?M)oFwz^b(YZO6TDf$oP0c3NwJ&>}+HX->aE_unMBY>?ANR5}| z696hdI_`at>b!PfAmi!|KkeN?5da|!#n8`Ax$G7HUa5@GNgO-{5kgA{Eg`go&=NvR z2rVJBgwPT~O9(9?w1m(SLQ4oOA+&_h5<+VbBsHR)HDEnm^{;#xFrPln=&kvFz4X@n Y0t#iUj0004fP)t-sud%DD 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/air_quality_chart_card.png b/application/src/main/data/images/widgets/air_quality_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..bd36a570c25b522ad2edcc2e757ae719e2d37ad3 GIT binary patch literal 2509 zcmV;;2{QJHP)+9>|2`K@85tQ1*9&U^000GaQchFvAiu8w zFF@dm000QINklXe_0LJm|cvAVooHk$^*w$_~gM!ila|i#v_G)pwxb>@K1E|uRvxKWMoZ{ zu{A-))&v<_6J%GeetwAHR}BxTicsNO+Xhfcj=p7B#0obGgE~SUU{{o1Z)W&a!$SzX z3VqH{C?J4R#2rck6~`dT?z`D=5S6QKqX^tkw@;MA5aJ+&Ky~Y0Lqk+%YnK5*U)ID{ zl@PB83E(vrRk*)(?2)jUSN6h#u$~vos6x90+FU$xsud7wPD~X#V zaF7@__d8E^GZIJ9H;76qNA36Rnh<+dRYdj_6cGk*A5v#sIlAH|%bM*sNKgEHR*O;Xx6;yM|Qb~0wml7x`)w)EM-a!N?N+#25h!6~v>kcBXA*nR{8$_q2d+S{d4-sq4kkfS! z;cM-85F>XGKf;eVZ&(PK8~t<_22e;D(2!h6*O=ilSeDHRNgs(E<*_uofC@)DXdPVKvNL zLrNojraOqF>`7V{3wptqJnW7H7D#(L)xmH_uKlZawhf39cJCWbypewhvic zZtU>!K+Y~Y$FmK->*@Kk)6-*uES%%w@(ka1Zby#`;yzc;7r-r$&G`{Q&g`|G1N)H8 zUjD*!65>R};o;ab=S`R0Bg?&@!ESjZW=Hg@wz$niW7Z$O^A&7*~U zZSP#0(*&Y0oL*kry|K$3!GNM9Ml)$l+f1+j|8ErnX&Mm?sSM!ojE;)Sz~k9-mfa6> zlb-7RlStfKk?d4&{&uZTs1#XlGVRUg9yj-06v5vVUw+t|?CZ@G(>3BB@%a=r@B#@a z1yB|t63vO67gaaj6!q(Fy;<%MSxvtnQ@FjaC&H!7BruYQJl3E{J{>u~&0c;KpFfpF zreBt;Tx42DBvOzPQbnE;kVyj~r3qrDvwY}bDRD_;y$h)TV-!s9{*hcRVDOk$@&>4MI?bPuYR4#i;OI2A|~(DcXZf?1`x@ zDs0Lkdx_8*#L&n>GplTpzLek80}tdj=Gf`yI6{o;XE|YowzcS?2r(>dpCK4D z2ws4$jTgF4YI~GfShivL#}^sf#u$en=EO9OiEUri_bB7cP1~4}Ba0Z?Y+@1Y!_jOr zZ$ZLq9AK;!7}h?^)Wy_~DKZWTh_yE;v&qvT$z%p#f8zoR`yn&`h$6(8BV`^|21PfY zox5)9`^Ud|JD2fVh>XghkV{*0p6@XssK&6+posUeipZWnzMX~NqwTLpzkXk_?TzNu z$4Y*M>|-6ou_9twNT~|S*a&r$aH~nTD2?+)6I5cKU^+C6Qe{fmo9nbR%4##DO#+_8g6i zEUbcYx%8HUVoWp#d+~RSCdM_I7tysGD>TOB`B+$nXapq=rim6hjf#|iZ`;z3kea5s z6?2=QF%c07WO!Rs0^1lnAT^I%PLm^4Uhich0pGp&K+-g@E-m~QzC9yPT$-ps-Ngr5 zC|odE>S5-8cZHe#53j1c33Fd2()$IvM_lhjL`1^TCpx=|GKln@L8NP(tO%E=Bof=p z`d)WR^tOngnT>dOa>{}1!SfANKyZvAK;#!MU;=>1n`C>mLbV8|isC{A-e(CYDVV(Q z0|aU=d=+q)f~icGGLeZSKdJP7`q>^7txz2i#R4!_fT9plpxgx&o*PK1_?*rKKzWdf z2u2n2K&5KwFVCt)1Vg|R9^@j4my1vYBK6BeC%&(7r+y*>rjRhk6W8^4kiMu)5nvqf0w&YFD17Fl1?rSvsSY)8Q?;73Ap(y5yuM-$ z1L7dkbq0~HF^F`HL8NO8B3)y2c7~H+boTZnZrSX-OYc5?0wzwX@&3)bQQtXx`{w;0 XyBPg9srX_@00000NkvXXu0mjfJ;=rn literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/air_quality_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/air_quality_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..bab86bffa46961479e49013d28eacd9eaa59606f GIT binary patch literal 32534 zcmV(zK<2-RP)#5x3aCTs=B$aDIS# zl9Y~ec5-fTYl)18l$Vi@l8nK^zmSuSY;J0Rf_#ODgM5B?!o$FWg@9^pX_uOlgolBX zm5_LQb#HWVd3$${ zOiEEuK}bhYQ%=Oi!cI|4K|?`1K|n)GN>o--OHNH$TUSO)NrHxgUu9!jU|wQrW;r}M zL`_RiR#aG8S8Q`{Mo&&QI5tgGQg(fMMMpz1GcYSGDoRvRB_$(KT3H<(8)k296ciFI zwtUzC0DSsML_t(|+Ju|UjuSBughwntLLq=40;CA-g;P$E;Q991sp+!ki@R;8*zMWt zr)qcGGrPTn-dwjImzUe==l7S1?hlWnZnvAl{r0Tc^xSoeDSi9)ZIAnkt`R~P4fN^q z34Q(?QESuJU0Tmyzn;%u<9F!$`TO@*-z`0%(@Eph*QY0q(7ShGiHJ`|rb-4r;fjM;=MiB|+o{3))V&2&_d^Z=+d zva}9g+M@Pn5H&%Yv~ir`>>|-^PmO@789e>`rt`c#zdZlC=;5*nA)6)?5g;K+#`jz| zMQD=oMj7EUC3=`MLcu8kHE=ed8l7RvcS%dzI~7qd#h#+d=Gkc4op{p{Ptz37AZcyb z@%?#^*LYr|WYhFw;Z94BnDnScXyll2UK-CJns7Ft=g$U;@TBHYjXdSiW>6Fy9g90% zfjm%$sUfj_MzlY>w$otDg-CZG!ZQm~f|61cJSj%(pF?>c&1rj{Rp4FW5$T?Bo|>MH z9TaOicHvIa9j7*b3S|Iws%sI)H*X5h^LDo{p}9(Rc-CA;_9aYH9jYV~&cT9p_)RZ20emjX|j1|bxokRzv2Ia>Po#TW;Cwh^2g0s7`KU|&TUV6vLsVD*po{BE&0HqpP?d%>? z^b}r!G-zr@IKh;BM+v7UI4wU~@YL}3*#+J0V5wN^PbcYL(Xur{*M@QwD2KL_*0b;w zMR%Rfb?kYde3jh^$!bpSLtv@jNOR^-S0h&;tJfy{c{kA7VIHoWH12|#fO5?d;qlgE z&GS=j<4dokA15OkPnx8&apFzdcssM2GuI;jA(&JnT*^(z4)Zu0b&9S~(T{GBob8of zCdw%F%f9TYEH#VPO}xu`GpY2jcjhyDZIY~!WE;7%Yntc6p8JADZA}l${v2sy$=(;$ zdQQWs3D2a%qQ#Umm;+8SoleOD=2+4>x5E>l-~_2=6|IsY!kyM|<7u2C?B}iSnOGEz zJsP5Z$(>lyK~ph?reRtDh32SQ)gO7%z<;kT5;PB#n*Z-RIT|h9nc7d`BNzx7A5TWbnxj7{?|R_esTH0* zuyfA*S(LBgC_(jTnME7ViAWQ1!b}~!CM}ZY8fUqkO9*mvxFjt%M7&MdDx#$_55l>;yC2rfD@kSCjQ(oDkPfD_2N$M=Rm5_iAr8D zry!ap&OB0H=(q~OqvU(IbJk`q1Wnpb4wszK;c1k`oVe4KJ?D8kUp{p2L9`s#y>tyU z(`!t}qT7)w3ma9dm-xK{P2w)FaCqDesG^K$;HlL?k*S5m2v^7VbJwI;dxu^(H=|)kyA0 zd846NGF=1Fzf;qN5P+SjnF;2GJ!h9n2HMQ&zBkg42`N}*O9cMjY<`R@3dhRk#3#J8SOrf(qCGP9Ie?AY{?WI4G z=#C0SHl!CiBd&pI6*EPK_dXqFmBDNE%K@WRwcko9U91VlIr0Bbt@jK zpdRkjFjETBMsjPZ)jao@ET#$0wg_d!)E;G$T+NlvolSF!vx-bl$DstY+tLIz;!nKE zt4ywtYqmGplacTqQsc>viCoHyCwV5W_f3eB=!Iw(F!`3Ias28&$w2k%80nKFu8ldZ zk0+sq)Z8MnY1Yy{7w+ zf)bokE<@F!w46{wBSlutLbLm`RUmNou?@Q=rgVg8zI3ly9y5VVZMy?VEnKlB8WX&BKsGSvOBu0yN|7K*#S7U4t|; zOfQ-RrnJW=kNW1a+mlS!Sc&60s(t5h6#`9=4*s0#iXq!Xg1UYk6rr~6eE}!Fd^}oG zfE>%c9I`VtQ0nUwK8y$}ia>%)~L>p#bI7&YSkgZuAzObeS_5q9S>nZaeTO)|?=us6$gTZJb&; zrl%_pTBP-NAAEi|`Ji(O($PE@_T-Z~1=n$@lN3s5Mtx_$T%0D6x5@5FgeCvuOT}bP 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 E>r~Z}OpOOZ>shm;r zPveKZGd0$k$RLLib$b-u;RtR=`WZY;+jhunJa3^-w^SRC#o9mpr)Q;PKE!uu;%I3} zdfHa-QVb@x8=v+ryIV$?$mL_~Ax;=oSq59(iVPa0sp6TYp2w!>AdZBN8<%~E5_w6L z=}1Qto|5CDO`;JUB<%fNnJgoHsv?ItF?oQZw@;YpRCp?V4!Ge)>0-!5lKM}cV(-uA z7ee%$RGx6QSocUdWoHs=z_dx0IdTw9!MXarQ9PTAdOb`9O&GE<7oPl;R;HYg9dmeL z(24ABPxaMNqE3B+*yZ4BQ`(z=lvIIF!L#aHSh@-sk}!!N`BlkSSz)TuCUK-FkOb7m z;4$kMgo!&#<^fB_l69Sg650l{$%sxDKgte>Ae86iq6{qHKQp?;d`jPvBIze$7*DfP zc08VrI8k_tDMOK6rc5)aX<2z%%pr4?p&F%6Hvy8*T*}99`qFIF} z(-xFKmf}Apypz=%eZSIyryAUx!jma3K?wma>>#_W`GihSv<$F!qHkcEGj^GE>LC!) zf!8+snzpDC%8Gg&;)Z9#_bhm_l$4yJ>Z!6Nn98fI=A`J9jr|ON9aIq$Z5xuL`>Y>3#u(}Op%6KQ_Vo=N0+z~1-pEI-OxL-cdeF1{9? zpVNul0HzcQM1>Q&rpeXi&iDZdtPC?XM)_qC^=-Jq=D1# zRP3S!{!G+%$H-CyX%K)u?VWUqC17;|GB@-oo|IJAoyCGU3Y0$W*wgdOuyQZm2~XVvuGJ-? x?=v9oc|7DwpE%b1Xy}K7lkY*Ca))Z3{})K%wx)_uEd2lg002ovPDHLkV1mKoK$HLg literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/air_quality_chart_card_with_background.png b/application/src/main/data/images/widgets/air_quality_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..47dfb1a4b6e35b7c39534b6213c93b1d752aa5e1 GIT binary patch literal 10693 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/alarm_count.png b/application/src/main/data/images/widgets/alarm_count.png new file mode 100644 index 0000000000000000000000000000000000000000..59a97bba1c2a8ce7811c0ab01239a19309feb55f GIT binary patch literal 1472 zcmbtU`!^E`0A8LuG+80Gy4sLep;{ih$YVBhGtc8yuE$uS6zwo2mDd@K=y4Z$n<6$t z?zx`1ES45?$CXF3W|Aw`Ov|geyXXD|_uL=8$N7Hxe)+yUUmOOc0nq>e03fU<%3q;u z1*(9`3eJG>o+zZo_iUhtKp>c#n^UkN_}B05?kddA&W>CzA2YR)$z)qwTie^)>+9<) zD=Si|bYo*fB9Vy2;!h8#lWtyADisEUi9{kco88&j+0f8XRaG@GFt90FSY@<2Iy%nI z&bG9)5Q)T)kdTF({BeZS#KgpM6>UedHa0dUef{Q3S8q{Kk&u+Z$H#kld0AUq%O>9m zNjC`u0uSMof^&9Ilv5-6;{wD-UILn#;!+L`08kmiqFe(>(<`NU$U>J5)9l-VXwQ$R%I>&#~kdInF*`?dWH6 z99^zYmmf!(xZ6&}eEJ}z*bxt}>Nw`DruYncc;I)>+$3UsGB!R!5y z0ShPOvHgin7bz)bR)@n;tD*}JlJOv|7-{S-XRfoBLp;c?0E z;m(Th{0N7}R=C<$4#UR8ptv=&qF8rq_^S`A4i51^YlqJDa%{qtPod3f9#BH|m-KRy zH9=N-Z(gaAaP#e7HRQ+B!1Sgx?X(VcG8cO028fUp#awlx+1gtAp9zbRe-svkj(~y| z!^!q_{@_Qt9hR>`7I`BUD5jb>D z(+Ts&a}4;)wC(Z@&6xaGGz`2XKvTDdJ!2jK{&vnFRQY7bmGj~*={Q&SA^0{vmF~k8 zT(d})$J%x|XN|D$x>&R-jlKnug7Vl?pWmcQzCw_hI6B^-1i(s&8HfoMt^TDYh*vx8 zTKRd)6CK1AUY13_?9MJc0=9>*fx?>ni>1rW)Kso6aocI_j(s_zqlAEBWN@6_OnuRa zL(c7MeOAG35Tu~E(#U)zy=+f$iB^&jf_jBz zBCLs8(7u4jT5dk|0I8gW$7gv3-%qng&F|OxFH|4;wL)GeB_h)dLaL5qg zQP)3B-LnAI-YRT6ph6;c6?m6gjC6(r!itlus?v*q;L`xlyp(!yqrMgv$kj5g9al5P zxxpmieS`!~xz&BLF{^BeU^#MjJL(>Zq+SqNYD)2F<0QX0sG7o^fqg%-tHbp9pW9a) zh`yf3XvS0}26XoVo}@Hxo$u=R&Dk`b0x`{69Ow;jgqH0n$zC{N#xckKd1e6C1BYU` HMP~jD9Z|!6 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/alarm_widgets.alarms_table.png b/application/src/main/data/images/widgets/alarm_widgets.alarms_table.png new file mode 100644 index 0000000000000000000000000000000000000000..b4638201820e8cde5d046080f9e82c3d10a10867 GIT binary patch literal 5275 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/analogue_gauges.analogue_compass.png b/application/src/main/data/images/widgets/analogue_gauges.analogue_compass.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ae53596107baae160b5a7c1f3e72765c7113b8 GIT binary patch literal 3926 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

K_BUqc}XYc<$P@YbOG<9AOb8i98^0YFe)*LRea& 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 G5}E)JV{qI6 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/charts.basic_timeseries.png b/application/src/main/data/images/widgets/charts.basic_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ac0e3933df8ef19fc44169a1a36be484bf9a34 GIT binary patch literal 6110 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 W%rq4(`+9T$0000 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/charts.radar_chart_js.png b/application/src/main/data/images/widgets/charts.radar_chart_js.png new file mode 100644 index 0000000000000000000000000000000000000000..773323d2cffdce3bb2980a3f6c1b0a85ddd8bd7d GIT binary patch literal 4651 zcmX9?2{hE-`$my{DKpkcS-!?lWEUb!LbjPPjD0tZy`(HP4YDOL&?MSpTr&B*P}RyA$# z9g#NAYcDg&&6bwI*ME`hZ4xO?Ycl9zw!F*qr0DEvJpEnnRhvtBp78;F4B9W*AS*Ysq-d>}o__TG(+8#3pID63RsE8L| zPYhZh&CWW7h>DBHr1|Bk1xkDStBQ0mVGi^ppuU(f0KRd-@M%VR`pU{mjr03=UW39R zUSVNjUtSp=$Vx!_s*8#)XlaRX&u8)$OrBw3nO9&wqphtSR9joCq^QWJD}|FH{@lGE z!tmKbEBrU^a6DbgbY8aLMH`)Wq||hx#iS2WJV`H&A4rBo8)~XO7iCm=UBPD>5P%exFG-nfuM&sh+XI_rC+4v;s!H>AGzAr!N{>9N{?l(*MEGSN3YeMPj z)l^XprZaU)obR!jLqmz&bxYby7&_abeF#GaY{Ba9C|AX3_#Bu-3yqA0s;s}o&^6Ca zY&nbls{KqJaLdiWSKuA_wFZd;)Tv(G}~V&l@<~pJ}l; z{|>C{TfT(&hySC&B*i8Wn*@>hynKF`aeU?brJ$w3i*;=}ZXwVKnxAn=|YWRkGmmT7C~q8CqKotp{ig|wy$ z*3nnunDW*{0H+bO?UJb2+9M6?>FP(nefxRK&M1B$h3F=PcK}#YY6SN47zV%R^xnuX z0PZ1!Hd_7nKA`W5-a2?9M4uz<_aVL?Hj}GeqoW$VTYh%~;rdADLXYAF?@VxPWOtlA z3tVMK>*mvyQl`;9k#}%5*GJdx)w~Z(Wz?6UB&yJ50!DF5i+;r4meh$;a1hs?dy>^+*=UkOa$XAh=&3J7A;P?-LJ2U-%>m#qd92M z-KYRh(o1_wLl@9jXH=6^UTVU=%ua{+omW$0jN-X3tu=I{q?l7kmbhpw9S|DC{8Ir)9A$&?o-?aeJc3y$;SYb zTJWZ??%!#S57(-ua|a3o2PJfie&s~o=^JWIpS0?+O5(uya?^ zy?S?nlg+WE)c59b$Fo~&!xOKwz-oJ)mjwPi`hLD~&XKs*@OV|8mxcGz(hWIccDC)E zo!s-ai~j68GNG74oCj#`j}~~kbbg_I@s-%qaPfeL@ibhh|IoKLv9E8^hH>)JM7XE2 zMd|hLPZP}_ZT-9xh+I_s)uqyUQYW#SvHKuZnP-Jo_B$5S_`=8Z6oF*x*)Z8%c0CrD zAG^HqS$SuwvNicAt5DQ4L%`W~I+4JWIpyYNo#{EUw`-!noa;{}UoZ!Cw-&j_lHR=; zkPRCO5svWwlLMOjW_OJpmfOot@$v)Xmq1szIFu$Y(Mfi<#;}bl! zfSAeErN&9BHArxLMR@P`L2!-+MCYq-Qi2rR@zQv+1AEwAe8oYcxe@*7gF7{L87MB( zf<-9S0#zIE25$SpMeCyNt>le7ye-@XIXpLSlsKY5c}2Z}A!d^;;iKArc=sthvZXd^ zi?$&C@u9*=wPArRbE}<~5R@5bxh7dBf=A8skF(U0<`-E@697xXR*a+u?GDPT<@?Cd z=mW_d@kz^N;?jd#B8PRU(vme5ImtCVnPj*6$`xzW6ia?=$#q)cCH}Vp&RQtjh%xycC2iemn;R5k>97*qw;7<-W@Kie)X|3S$0$;) z;k%(9LZ=V(0cw;4|Bnu59^fbZ+a-IV zAXf!MClrIwtXxSwlq|X46;p%t>*PJHlbRb|ep>P)E+1OOe2QUZlMjSSM!={)TU_`A z5Ar*qiz@}J75!D{M@-akd_XKMd_8x+@!d2sbY?Msm?mF#LMnRfg-Vu&t!YMl4^UvH zMOWbXeGc{^O}w|By+rau()H4f2emq|2g^}o-kGbHu2s#xhKTbKd&-^RM{j3+6KrIM zS)y>TN7;|PTmM}C@n#lIQJ#0){{7&-g-mN47>3VX3qWHO(TK4(6ESup7S=_TXvrT} zyP9n~FYy~(Pv@)lX=RSPuo5xRcG!CKC(2)SF{sQDqjS+K$*LMCIDW*#&6x%lY0R%P zG6NMleb)R!TMsj20{)#KGJJrS~_m8jGHSkFr z7+7Z#md?+fws5?9Pf}kSJ^NBXH7tURHSya2?K%;+tk$$#-&1Z051r^}^S`^`cdwmt zS&A8w1gTJ2U*!5SHLlg;ukSYzQK=dAA128v4+ynoSt_YRB_ACdkEZ#dtw3SClqqns zO6U7;%?=r+)jIqQJ>|E?HccO=mel^btz8(1UEtd-KWj5H@5+I`CpO@6&i=;^w^|fY zaJL-d-xlGlRLR~S>39D;U@gUhZ>;{DT9>+Uh0lCYhrhO`+yIX5+Sn;!BP!3cwg#tA zU23NUJZhaS>Sm)gEwDX_8}A%IJKr$9i!uv? zcLFKS&r{RkA`<(>_V9EUHcZb%-ItBR9qLE94x`yw)a;|dv6=DI>VK)TLsSRhsQD`k#l2$K0YW8 z5%yPf1<(NjzkmH2HT6v`vtZTzb;d^eol$-?Slq zh@{~Tc-VE22luozHFri(2NQ9=au7oFuAMF+{8~DJJHM6B3R&@8OeE9vFLU_ayK%{v zUii`9e)Z?s`&=;Q7KR^JiF~P!r>EswGca01m*EORlP`XWK{RuZpP4 z4Aj4OyhD`a`uPx|eq5gH$mrs^D~SQVs<3hqZ>!!t`uk88M-XI0eLM3q0g_$B(hxn` zy~Yc62d2?-d5kFY>NP)LP!jqME-3+pU`#zGIjxwZf10r|}`0&Yd@yOIeGJ=XY;eRj-UVX;#$FFw!zmmEhvxa9A_%qNLpy>1y zsGv}hsKye!S>^42tbrU)D_hn)q^+_<=MC)+L2fQ!+TO1BrjK98 zJoZe)rmK|#>RJ^8fPK1P`KrJAW$Xlwh;!w;%URA!1igV0S^qyaT-;w>U3xK=SoHJ$ zc?%EWzG$-wbJbFe9_GRh1HhEJU|HH<-Q0uG_UFoTTo+T#FwxQLa?AGIvJ7X}zP|O3 z7(*v^cskVuUQE0Iz5Ro9aaAf>*#*h@0W532w?D(+uFemH_=TNffm~?RoO4$Xqi2K6oex1i2>>air$M!tSN|bb0_c+H6 zD|JG$Po9l4B+plLPY_)tpaF8CU3zeIeCacJAM+bS-XY`(HDqgW{2OXhiNc4$)P*7l zro(z@95)8CbzSIsRpX46=RqC`4&~^`0VAAHs(%{c9*+R{2UVy&e00Zq;1pP>E24Dx z382hks(~8L4b&{8lD_?w?Ok(n{Zb|`0gdLAseUa2_vOLAB61=oVwwr8=be6|53%I4 zq>JwA7M{twKdmxVU1iZ6_OntVZIi)yYxm;}c~JUDkBO$47F7AIF2Zx-SjZ@w*6cIF z^4pmFVK9$eaYFm&L9-m*W_gBKK>3uZFNznetL62_bEe-(oOqDCpA}+UQd4S_2a)fz zrht{ny5El59gv??z#OEDZw=A28MkM$r3LAe@s>f3iD)06A2Uz-mfYT3?Oi>qvc3*Z zVJ6=ch5LdKr~QR6HL;mGq>KD*-ebEr?M+kc;kh^vBZ@>|Jq#9`$A`w{AsqV34;sGu zAWGrLw71NSr2pFSfcth~$4g##4>z(1$gnFh_t3Sx_v>Mr+C#ci;d~Ql}YTQ z2$_k0Nt1|SJs+5%O4TzA{Z_GuKPRyd;$cYT%2xsiR-$C*D+kaRp@edlhXekF+caH1 z?SIf-rkqe%EJ1S0x_;@r>lZ)M=G<_cVS{`udX^8oMtoi#VT|-KJ*GQjiIH9Ua8^?m zl+t+HC1|}=%%B#Dv?qtE{Yvlp7Z6Er=(*%bGJ72z$#ol(^tG)Rf|GhL50iTLSNvU0 XCD*4$$1n8X9|jY{+XglIF4+GAq81Es literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/charts.state_chart.png b/application/src/main/data/images/widgets/charts.state_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..53c02c77540d10edb2d6785c68f703ae84ab2b75 GIT binary patch literal 1435 zcma*m`Crlp7zc3FGShXKWY)Gy^ObAXtK8CArZc4_dCby0GVRc<#B?)F^O*B2GBq&8 zBe66@ltdyA1jG4HF@ zT~H^;HK4PBdZVKSWP)+eD-cLS?(X7w2^fu0%O z79AZOQ;v!ueTj{YjgOB{N=ixrRHmn-82Q`_nAz&rEi@S|EG#T8E-p3gU*XuStgOi8^3~PVwY4<` z(?p?Atgo+cY-}hcXr)rQ*=(@6xw!>UsZ}bKnz2L8GE@&nswGJE>Y!RFQ>)bSbT$T*lvD<^?_g z-o9O6_}&CZ-VXu4vjOXR-4#cv+>XRL_qb=D>9WQqjOZ0GIcVjWm1Mjl=WWs7IcBcE z{Se*@i{1m)#EhJ`Afq;vl#JaKRQsARoJ9J>FvSt}>e+X)Q(%IHHKwt!r7t9!^#S_zlK5sF+rT%}5Fg5`=dK0UE1W~LUL1cNR{f!-z$o>VMNpu}`Cn8zOQpe- zo1aA=!})CeOg)koENIuto_j^0Q%G%d_sJh)Q?+_52r-BSyfwd39EI`9m4NzyLWoU z9}B%xi|)1^cj5os7gKfG<9USQ`h!|!zCd%^UVD(nSK~}|TFj}AkUIf-%Qx}`&3gL( zYfEJqry)+&j$D%JkYLG~rJBoFd&W&@p}pf>m&z_&|Gwh{}Lc%b?#8 zX>fRZLY4nvC##o;2Zw_a1jo(0{;U;{L?!{q@yc7(Ye?S9lcoj)Lh-%{heXV5ScJEB z^FeC})MC=rA$CdjXv&WTI^pBQHs}ub{$$V#(|@akw``>0-@L_q}lRGxoMxK1P z6PlYQC_hW>fM7$1^)m^^W~|LW4&nc~zp9UH^7|EI>BI;r^mCy&5G-sFWgNpy9zS)f z?DmnK~I3t&7*} zAx{Oyu-EX;d(P8IMbS6nuE#mFUntfv$uwvP!GEKp=U=IQnxM6S=^60ARoDQ}27+F4 KgAg2UC;tb?iTeux literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/charts.timeseries_bars_flot.png b/application/src/main/data/images/widgets/charts.timeseries_bars_flot.png new file mode 100644 index 0000000000000000000000000000000000000000..f6b5e52fbef83a37e95e1e0f2588532275ac8a84 GIT binary patch literal 1157 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 X9Q*H1_bFeN2EU9m28XV-4

s%l}#R literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/co2_card_with_background#background_image.png b/application/src/main/data/images/widgets/co2_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..70c062157f36bc9f3d800add704e252f72ac46c2 GIT binary patch literal 40048 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 c89kNy8^?07*qoM6N<$f+=E^^#A|> literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/co2_card_with_background.png b/application/src/main/data/images/widgets/co2_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..84df5b1c366ff358bf7a3e57f4dc39a8bd4adc89 GIT binary patch literal 18910 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/co2_chart_card.png b/application/src/main/data/images/widgets/co2_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..a946b686df3ce99ff406e24dfd6c0cd61f0c9f3b GIT binary patch literal 2549 zcmV9E_|+t28*N=i!D?7d}WWth%W=k(an>94D+tFW-J$K|7_ z)^4!bd#S0ZI5;@T$;p_`R8vz^m6es+LVd~r000GaQchFvAiu8wFF@dm000Q+Nkl zh;(Wq^&DL!j1$j><0bPDnCLy>+t`32r=(uQ_9ezKyrq-*cGz>|V4b$@=!fIz))|OQ zVoEfGuYh=BE2v%}Vkh%NMPrOTdp_?;14UH4bm)PS$OB>PJiQ2TlBf_FdzdV#d**Vw zr1CRRL{4Exkv)l^p=>F8>F7L{Q7%)6c)d6tBcAr4Tb_X;%8Q+4>`dmR*TB|egp#%g z64Vc+2=$a>Bbs|ueAF^fq$G~kwKYiQHtgOYnLzqUlBit7=_Sc+ekpL4)G}AZt`aL+ zj)RIaP_<6aZ$7gdNF!nzzmJG(;n`U3<}WK3H5^MsgtKrp86V!Vrqh2JCOk~Jr zS+NMwA_8nJ5~Nt4UQ4*P(jeZeH<;;>Q7jeVUU3o$&X|jlLT^AOFMVmfS$PyM1 zSOWT|I^hPb8D5Hs^N3*F#q%*&jmWvsh?qtrVj7KzX*43H(TJEvBVrnj$OfJM zmoNR!gUEs+_?7nJ%VLERGez3pKmMut-oB4q=7Epb_j3Ir(*2AA6Ghruqey(Q8R?cL zpUdZDiyRY0y7}M!IzQxjcXaczh zzdrYDT;U4w;DcexK3tDfBAaPrNR?Ff!|H+BGjS{eId<%mgBMF+Iz5QU*Y!YXmj(2x z43xvBQykj&{ny2_v20@9ABl~rr+XxtsPF(HdT4apbiC2&J`}ksLc`aJ*fVdI>Z7Fm zNn||t5(m+E;v7H(D?Mvm-st^j>{n#QmrBtwi)1e1P4y%HMDIan_HH>J_OWM?@sIgr zi4qdI^_+y1q6pIih>%A~ceQ5`XYT*BQL=Q%ES~7FiqxJ()|1@TYV}DUSNj!# zN51PU*DI{cXNwp&A?CAomG-I-Sv?vw(th6}ls|EEeN958QKzdT zSJ!&3A69P}zg-PK-oIt}Opjq3!}cZGL;dtgMqG<asl?USH$c zA_`nG!4%Ui%=TYenl{}ITC^WT7S#=+DzZWWW!~;kU9|yvbkOObp1c>BVK?X&eO;3s zlPqK0O)1E_u3rYKP;c;mR zPTLHeL>L&(h3z6t=pJzyLTDJ9;Uq}uU^_Dw){4yFlFNv5sB(;OoQ7L};Ln#6iEZ## zT(vBmgwT(mZpX3j&%LSrD54`{(Nd5M8x*}v4f|PNzYrx^Tdyy@8Rt_GwJ!u=>bGy z&+aAmlS##c$SH^K1WyurCCMDSkzOyE?pq}DNh0#2C#q@?-+N95>gj%1u1#t>IaB)< zDN0#Vr|hgMiHdRZREA#fWXt$zuMn_3KiXYY70%qlPNoCPP}yHNhNbBTwOiFjLzTF;KVs;VkM zdrRlqM-h>6$@JF_QCsWH*H!f-aa_~6hZ9jzfnFS}v-G?j(z1SqKG`y_9=Eid+n(>) z>u=M1E!jYA6qa)!kraZDU~y~9yUHx~<4~^_@jU9U!SXeK6YDu5Dg$$wD-mwJ`Cxm4 z#Pe;u9;fHYd%`5b%i+%u5i|DSzE;T6O_keTg#Uxx^DBCIF)3ru5Mi^-k|ZL}`UV{# zMChtOA{>P{7j_JG0R(QooeRd^MQKFNokqko-mb_96)qkSSVgpYDh&C$vuz?wry2;o zxtT@n;;W7XVDSJJJwg}yDR_n;&0k&ohK?SUdJ&q@X=5U^pmSxo8)YsVv0(I*4}$g4V?!Cj9fJ|Bdth?fet%5AWW$&Yg=t-hKEFWRU#&8s@|+00000 LNkvXXu0mjfMf3WW literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/co2_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/co2_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..baa955e2efe9c6bfd58d2198ee822b78fd55b83b GIT binary patch literal 83584 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 DK6P99 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/co2_chart_card_with_background.png b/application/src/main/data/images/widgets/co2_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f19547594bdf535ce0b97752aafc77b47d960e GIT binary patch literal 20752 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 TXKT5}00000NkvXXu0mjfm5`2D literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/control_widgets.knob_control.png b/application/src/main/data/images/widgets/control_widgets.knob_control.png new file mode 100644 index 0000000000000000000000000000000000000000..6e86ad8de1881f5ac38f2fad85fab0598963c17f GIT binary patch literal 6677 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/control_widgets.rpcbutton.png b/application/src/main/data/images/widgets/control_widgets.rpcbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..7409867ebd38a9c1243777a81fe40340475fb7b0 GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nT3`*Zf0=?UIsjXII@aJduBT%fEA-l^&}3w_e1~_*VQ_qxX#7t%JRr zO`a%uY+CYb>*bCsV%NmpOmvKj-ZjViM9zX$iw?0)m~1kuwdCStMy`V7v=57CKRdBE zY1RI9-jx+6m%LfHP~q*CFQKKI=Km>L^@M$i%@4H)t3?xUN%!-u)$WX2bX+fHYf`Lf zh^5}@Rlk4f1(Z)<+_W-gTd$|b}@NVy0?QuIegd)Q#-~Qa$RBPnG9>@4WLd?pgEaEs{}*3|#xa<->vO z`YUg5C+*10@HMN>EXwzbXsiQ%qks~ zkg^%VhRa0)mOMUqv16gu;f@}*$7O|T(@&pkb!&^i_vUS&!Cv!tzW$bHKFi-t->qUI z7GjpHxZByt&vWO*Io>Klg{+6C+fFx`GwIVG%}?iNpVwP*W;TD~CnZEWqBiTl%6&$Q W<)$UV##=6ca;K-OpUXO@geCy;+NmD^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/control_widgets.slide_toggle_control.png b/application/src/main/data/images/widgets/control_widgets.slide_toggle_control.png new file mode 100644 index 0000000000000000000000000000000000000000..3f64f7a5056073422e5b7d05a1b62839ce1c9433 GIT binary patch literal 5453 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 TQzt9nS18ED5N7aE&pGbDH8f)0 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/control_widgets.switch_control.png b/application/src/main/data/images/widgets/control_widgets.switch_control.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d514808b73c9d9f6482e99af36a7935520a870 GIT binary patch literal 3835 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/control_widgets.update_attributes.png b/application/src/main/data/images/widgets/control_widgets.update_attributes.png new file mode 100644 index 0000000000000000000000000000000000000000..a480eb648790104c4012dc859248e7dcc4da61b1 GIT binary patch literal 1512 zcmb`H`9Bj30LGUqVa$E)l{sH}MUKhQE6ml45HybszilA`^tLxR_{8d1%QMb!!z}u8 ze{i=IG_!qxb3kFRmfL4b&kvfg20lh8+$2t!I$AyG(~J5=L)}U5ir)yb2v1smUIywJ zYPm0Q+g24S64@#-VxJnZfXE}q01XvweY3T-9Rw@1#HaKf&%uTTgFZKA$W59GmMKQi zArQ(8NEPO1m2(Lct@N6lOs)pFI8liVh^mZQP?CK*L?lqqTCN*}*ZYZ7WL!C$i99c6 z=wFPi2)M>w_{%t!%$}Acm@kni?c5SEsn+C;^?h8@T)_Ah>($CTmp{>^Znv#hNvF+p z_B_Hgk1AbCC`(=GG72V+*bpqrzPo^=XReD-U$wHe6xibF;^+$+4LkE8R44KcR1W2B z!kGiruXA-(j1$V8coO_Hou{6cSboFoPY2)F&?@fTWRdG>%%X+_ za_WcHmj;bt=#E8UQI}AY@6jR@F=NgBXLrFv}cxz`#{pSyISafcQO5y*)m^We?K8?Em@U_uE{D$ZdUk) z3+vScw5Mzjkb&$1I8>T0DGR!98LIb_#O}G)zV# zd7z#sXJnF4vOr0T^`u9mj>buTWhij zfm|$RE1X~0iJ04dHvidKg6FUBfM{B-8A82(bq;oXty921?zQ`b<;Zg%FQjsRhmFKd zpMzF+$_B?0RXvnG1dd1*=2+X>^lopiUV-d241F@bqz9o#c42{$1#FM8Ni{VdT%Ht< z1b$ni^7u`di)^PaD_$f+n0Chw7SW2Wuq;+`!i@f|@Igp(ogkuS;4JC7mx*sXF8Uzn z7D6^Xo_PJWtg>Rh59l`uZ$@3fQ*fiOcT1+b$MEB?M^43}}NgxIV@EM+qpvW22OytUaZU7A=BZo#D8apjG)*O%=dT#YaO{mzjkW~ zypONOy?hqy+;@tlRQdT}=LL=p-%P;hAYCjv5_dC@N!}sF8a56#-@{8kk5(l1a|&P?PIAdaVoaP8SlB|H{uBw|hj&N4_WwbxXgFs0w^y_F!)} zYg-2duanKj<1h#(53z`hsXLa@t}3Au`(|V{c#Kaq9m19|-wadq*r9r&A~@ypRp;#OLiPXaaAA^*l2l6|Z6r zg~~JqBAO|ZHSLehpF literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/date.date_range_navigator.png b/application/src/main/data/images/widgets/date.date_range_navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad834f82c475664be395e3ea60473a480600f71 GIT binary patch literal 2082 zcmV+-2;KLIP)MSup$pJKo|&*d4Blb3-o*dEvRA*gWYc?Gu=teC*8m4 zo>Wgd0{__1fXvg-n2!j*bvl5|Q()Taj~JU~4W#L@h@rq*fCPpj23QkmKtKdUKmz?@_urib^zQ6I$Jn>ZVY`6}8E$=Ke{2i5}e9pyF7tz{Q+DH>HgZwf;h>MYqbE z7Wu=?mHz7{ubTQQNty$9Hld>&3l>f?>dtM>^q4P7()22aWL6j6#*|lkxFwX*HJjOR zxewfX?_Ab%Ecm4Oet|#N*?!KKbMJcl>V`Niy)(dI_ry51eq82Jz@0tR9pZTid#8ti z0DV4Rr^eku_8RHgLvArd5fA|p5CIX8-v!b+wQ3<<`6d8MX3G5jiNVxT~bbRZp_e~t%`h6qJWp3Tu4bKj4R`vqDr<%e9*`Bze3253_IiDBU zQt7?>h0C+C!CRgBs4+r zTjQ%c^`C%04^HV|Y<&n|dm{kD1?lw=UzwL_0SN4O!S*&b48XRI!DHZwoMwpqzlJSF z5}IH*=JYPr_^Tu4Zvx1S!X!L4Yqwg z2=MQOL7Q!YlWCJRv4KEJn$2dLSy2ey!197UuM=>j?^I6$_!SC;LQz52!R=`_0J1s( z=umFYoFwN)QlbHXRE0vJD8YT=Z-@GsR45b*MKw^|CWa^iA|L`HAfFKAnk< z0wN#+A|L`HAOf-y5dX~ki~AqR2r^VUzcuwNEbh#a7sSv}K4{B7We?ud+qu_js)M>v zzupj(8zk*vzsgft>$`3kRtGcgOqSRu&UnsAR~qF8QGtp(O{DAesZxd?Q*~WCrYom! z$`x{aSd#o1egY?p{I)Z0qdXxkXB~}aA8JAwez>YdQr%IP%L?LtK_B!HG|w{J>7qXb z(^DXsr)p%0TB=Z z5s(i<#C$E$v;;&z1VlgtL_h>YKt5@R-M;vL9r>o^1v!67pXaeQFU+vD$O_^;3iVG) zGJd12;u*%rItxJ0)dwNFS<>tE1GMP+Wlibeby7r0CkNJEWF%Hmk$1A;_OBJ{1fe~95UJn`gThN zWlto@qZ#0KE4Uq_#cf?W>UB`uB}rZxKzzBk>oX>-YU{JS#&b?h$pe)WX0q#lHg)Mn z_Zu4ey9*l6x#iHbg8dy%=#_Aor_pqE%mB=phncg_SuB<@#?3SG>ku`ovj<&1#2XYt z6af(s0TB=Z`7|M=3A+zhhhzzH)V{f=DzZKLA!D_ia;;8IrBZq5zY8-Kl`H~r9Zr1b`&MayR4tF=_oYTo z@?+fzEgwg+m;;_C9(FCIMrwAK1{Xl4qb+PP5{R6nD*5Y?j}i{nqsB!W-TB=&mlh*6 zyG!1ZsPcLY@p-WAlJ!*N2(wY&f26>6E$S#+#POc1R_)sotwND@F9bb`1YJrmDD`2y z`UcB(-&%SB2h4n(YtWz7Tp4+2;A5ZK)h82|tP M07*qoM6N<$f{S6>3jhEB literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.digital_bar.png b/application/src/main/data/images/widgets/digital_gauges.digital_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..81589d39273e027722b32a7cf2f65faba087336a GIT binary patch literal 2017 zcmbW%_dgqW9{}(ak(dc$E3sOxs@2x62T4>^DQcBC~+FGf*I$PAJ zAh_D5Th>NkJOi-(2Rl0(2M0Ra{@d(oV>g+ zfR7Kx&kqL>2sjeS1qcXm3kq@z3Gtv%Ji@}fA|kw^qI`gu7@xQ}KOiB&FDZ!tq@)mM z&msY7X{3yd0Dwjd$jS-=a&kg|yu6Tt0!mR4b?%(7l9C9ZtSkyhNQnU|7sbWJB`&K; zs9li+u3VM6dhM*bhK#lj8qmEir*9xk@unJh*c>r&sWO_?kS^0v6-h)h2L&4d zAtXamCHP z5um+wep~HaRpU}!>+0(22GARRs&8~}Y`Vv2zSq=pzxfZ3_iaD7wiDYsi5*>DKu_<3 z4}U%c`j|cdv;R^5pzpx2-_VHP@TmW%&;BE00l?^Zz~_m;vB{wEsi2AJU|{m^;HeoB zFf$(t%q@n_FFjsZe!RF61}v?HEw6>ItcR~|L;zp5A~v@pw|1j;zLR%ZA(4jy*hy1CCDPUZ*OmZfB)p<?AoMkIevah56(IiYzvf=ux2<-wT80EY! zLRsS4E%Sd-EI-u|Q=R2ix@ox4v{irVgxO4Fz(@Srr#E+c(hmzpcAL#qgK2(muG!7^ z|Cq;68%KG5!TKU^U$wCyxJxZ`z}`s8!lTges3VWG>Rkon(s?*5CsQi*%S-L~@?m>mEcPg&sxd$x{5ssa#VjUdj5_Z~ZokP@Fy`Hq4 z$(2lX$4?8*jr?z)%M+_8$SrzrZx0EFkAJyhUFyG-u(I8SfcvbiioT1Sho6-j7|yy7 z5Wg(-&0DDzxiO52fC#dX9%TOF7jYbRprwRHw!iwt1uaY4yd)CF za~n$=&fhuu#S`yLC>t?4$X0aLn_XZzTf5sg{+&7JFw#ou8e8l>$)5-x>=+;qjTL{Y zJoHn?Eb_3wxiQK)i`2pGrg=1VB8E_|Q7W34Rmd5IFS16ghZos(?a)9;(dIa(?}@c8 z+eg1Iw13fkGHpxiKdI0e!?5khSZ56z-5e-lz`wGrzB2)A>%Y-`s(bO`#f{6RH*c!s zL_pZ!=>MbGvl${e{ujj30ETLJeLlHKGtEbQjijsT{&hfmRb+a)zs8(OvxSnW57*s# zWEg6Xniw)jIO;Eo0s8XHyGR0!-+dEx~kD(L}nc5BK0*TIY;N@-ct zwfNpWRevLLbWY#&@o|n8u}&6o1Kn~H54F52iS=CixX`%MKIjT}QcxwH?`9Fhw(9ys z3|B7+pGWpR@ebg);=ub;w+odS9Qr3kUSr4pu@8x~KXi|=%j0ae9$|JL@8A>o{bMEP zz-ZvNNo$n~x-mvtLanuBkzEs8)6Sj$+g{N8IU~#FR8zmkzLANws?2b`r<-2=AM~#2_}<0`eRtIF-M8IX!r*5?OpMHN6&RPOe*ktli$(wd literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.digital_speedometer.png b/application/src/main/data/images/widgets/digital_gauges.digital_speedometer.png new file mode 100644 index 0000000000000000000000000000000000000000..45a77618e40e1b7e8069b04a30fa05441a444487 GIT binary patch literal 5432 zcmV-8702p{P)1Ox;J1_Tfe3I5xa1_uWS2?`Y#85S8E_SBL8|Njvb6%P>;3=Iwp3I_Yx zl-<9Ae(UZH4-h|gcM1y(8W#_LZcA`rK@%1imzS64$A_bgU-{OO784EGyMVKrX^D1F zPD3q2Iwuqn3-8X2cxOf%Gc;64F&-KbL3(>DB^eQDsgKrG$e z-QdB4*SUUIOEVTJDt6r9XvD_It#zuCWKl*hlYdrLR#wfic)z7^m4R4lTRvu3JZ5HQ zb!0>@DI8UxqEMEYww-H+bWVF}NLx-dE-o%ES6CrFKXTRBK|w)cRXIgGDLFABN{Wo+ z#D>(ie9*Ic%ddC2plz3eS?bA&MSy}TPETJ_I2|1wpNU;ZJt~Cv`g!8zyrOT6c~XOM zO$!wjW4gRKYHJZ8A#c#qxVX4mtF0zTNfad|7#J9U@A52CQx6;*S*NKyadK^KZ5S>u z_V)JUO-3e&75)u-nrKN;~gmQ9nEiEl5 zC@7?)q%}1)t?A=H000vcNklmSGBB-@h0^-3K9>vt0001Z)Rxar8gUTCzc1P4d*Q-z0h2|j1&jm^7BrTvx0QizJ?mfFTRUyN}8GuuA zi~L4TfXGo1Fd^;$Y>}tr8JQ`#HB)1I?k~w50B_`!+#ySVca#SX?CUA{W?x_W`F6vt zlSbAvHBZ{3A6SI~dV}clbmOB?zHA-1aBHH`6%WB4kPZ3a9*BvI^-z)I<&Y>^$7RSE zxF^Cauov*d)yRFeHuBi4k>3H#tOR9+TCx)4oXZg#>a>_Bn?)AnBU#%-e#3pP4lKkf z*)x1+n#PmCg~9aAZw;Ca5NKlS|!vz&2wrTeJ{d2IOq6q2Cj%SCzuXGd9`cZj0pB*K-jZ7yz-2E3?*lWvT=iKP zy?V{`=2ewN!mQ%HwViYAfu{^V4BKuM3X4%Cw8l8GCVM5XZMppbu82ACtbCejDeBty zbK(m4VT0gWqijDz_N+O>qo})z20Mr5Qox9PQ>E}7@<`SlYm}CBSHfV^Boj@m5^*4l zoGG7{*Y50-M}h8QzRQ+6A=|PyzY!Wk>=c535ux%x&K|J3j;>b)y! zC_Q{78(H=0QWZMt1e&n!6^J?tAtCxQHcjGlX_`IVbC-^^2Q|+rd(o#B>1dL25r z>9SOZ_4H#)(`{1VvGxRDWbS;ir8v`G8^|QXG_AR^=E+dOo~NM?)lvghX<;+?#b(D0 zz#j8-ZU5^l=>`26fgswOf(cuv$XkzPA zYZN~cW0SVOzUR!WU?18FuIEASZmPYrXJ*daRcU~!GGLMHX-`5Qk$E~hT;ur=$pe%S zSd5!*ch-7=TUyiFAP-y5iL$X9*kR&)|QEzK(W%CGY`;pwu+<&TJ^p z-CxAGCuI}u51Ic5$QG{{_kuCL9S6~fFZNb(j7Nn5+qY_1-h~Q&OCXiP zv9e7o%OJzL^THwA>wrmJObt&H?UC_d(p_+^1KT^t6g(uOK2quKH~n;_LE3bi=;Mfh zUBApSknE}cS{fZh=XYuF4GLWldHC2`22Z*Rk$lkIFM(his)$QO`XfM1>-TzbASj_B z`4*H8!zkoL@%r=ayFQMImn;5AC#}^^==p7@tYpfAM)3L!nNYRA~3= zu`RUaMlr`dB$k{g4NBi}NY^dxe{z81%Th5U@BfZx{GVP&Mv7)imHsRe9=`=A$>9@y1G@c75V1} z`YdeQ?6U2jsXni%TTVR1k)Zibj@p-VO^66?jhxQ&vU;PCY3Wp_i_Agw%q!75rs6S9 zjHd!$Ghs&wR#Ii0r?UF0TTrhl!W+f^Ntsqh&OF8}T=2}5gJ|M*!T~a6A91{6C&ot& zD^A-;^$^__Rv(e1Q{wXTj1||8Y(6lvbX_YBMb~YsW96iOC4oAqR!M$9P9@TY537?| z`tYm?q!G?F`ho%Su8)I=teCOf9qsMznIc()P~z%Xt7#2Hg6}F$n~(`wkXtNB!l89@ByJ?`6z~BiO^Us^}hxfG`U)LM%j+$~wn*h=aC^ zTa?NOk+VSZ_Oc$0A^4Q6sr zSPCVyUHhIBk-Zsa!jrCR1*|?S8Id=_&s;@TbsfJIx=R&9*G{}y9|vtW$$-+IByxW!t=OzG%H;NOHJ8)TUQq3bC08!=mS<80yp53D zVb?mbk*l+2B^2;o!_)u=wZMV+#DNn-TUUD8Xzi8zBjr+CVdXgG>1g?$H`hMiMnv%D zyu)`5?|}mWWrFe`t>|2kydBE2_%XMNrj&4Tk{19FP1QA?#;yGTuZT8~d|y&Xz#F8_ zScqe?FOOu{4zg;vUQ|}%Px-ZntA@zN#c%j(p2_d)XMht#rvCDd)H8hM#1W>%$pNh< z{$N!SHt_$t6+u^>C;V#9p-;TbycP7y0+`D*?5!F~92X+r>kFy<9eOAG`o@K#^ zO;R&8UTv#?xm_QvsL1`grj!{I+~bdXg43vQSn_FXFxSx-wu7u1fJ)fswE4!M4x8j} z#*>TGCNOSEh*!;&ca8g1m6M6CBT3+ZU7;^jIn_Z{amWvm9#8jNMdI!)4EW_P`{77& zi#*D^*;wQ?1~yS16NLAKRdynT@qEqKrvrtO4^=<6!=`Yg@U)e|?|P!G$#DDQP&tV- zU{x|Pf&&vuU-gdqm%F0t@@#n8Iu0_ih$|^FA%Do7Bv}<|d^i{-+zndbf>MD(myIQ1qbs7WpL?SL$W{174oIMkOhC+HZ28adv}B zBFX-tcqS24r8pl#$>?+smdoVVV^hv?E_sEr@5a~;u!1vL8ZM)z z<`2-ajG(py$99*g-(o-o3&js^9ByXk?}AIDhlVo~ZYT@O?q!20gey!~K|qE{_qicd z!@On4VBt~&=BwZjW{Rjd(|uQ<`DrMNL2(BIPb65?wxBe(ZADRGFiifo%m*qM5RgvOiCiVUJhvLJFFa#=<+rbA_kG1 zOTfa_bQH3Ul%~Jn6N#QCgK=w#i?sR6$V_#dP+iGykR;`c9+GUs{Ex&KiKB;wCnSmC zje2O=M&M5+VqqPH0p9X4Kf1*<& zvI3*9kx*2>EFxPRGku{cr&R_9^GJBwF%cL=6A8uRl~@P9O?NYy>5Cm(T4I9)IH1$f zHIkT2yFn(D1(^gxy;7-ZCl<4!o+JE1KOS$u}l6R_I&Nc2b4hk+yJQc4)` zW#Fl%5CIKUP%fBpDXPaGkXyY6J4W7Zy?(BJ?02#{b6+Fj>s*gbdRRf1^O%r2jPF9j zi_uw{=9yy&8(QlkTi20(`Chnu4y}h2M)t%@FUf-^>!=bX#H%|osL)z9PSY}CFv9he z#e@6u^WhI^K^sN36mMY=(H{^pv$!sTQ)O-mmT=0F{N3fx4bHu~ztG#4c<_Gu%3sJQ zu_1z2X}FFV5xj&rWH5-dMwBEu;Prb{HK-yhIf2F9Kb6)(lQpmK%!uQki->UP9yJKX zw>!v>3HG>iAD-R&`XlnDVt$d=kz`M^3@nF1v}2 zh>RbL9M*P;|3^eRGDHrfIOUcuQqUcexR42uP(&;c#?FWc5|=>aH(JMpq+F_tq$<%p zl9nW7uv!nd*U;HOq{pgVG>$3xU3ry?M2p~IT4QXui_RF^zB&c{NV}3u)^sWZDojNx^ z>IeJ&t4jnW>|$y_x{&9PzK|TAhmvzN8jVJyI)-_}Fb&8L2Ja>6`0jP+nU1%H-0-vJ zy+j?&aZFc#T7bOZPZxi@%<1KRM-w}At>OHHeBuS~#mzcIjJ$-*PU#x2@)HuT7QC0J z<0uA(Qvn$wau1Y{kYHo8k2DI!1Jr`L>HR+WAwwL{AA)Sfqx|28QkUENNC~ohFM2PV{=eFF1JRGReXfzs)Mr9OvS@#TOiD%8-7yJtsMk?}ZKWV`L0000gdTBjTI3Ozs4-ii- zJu4X@KO`_bBQCjXj^l){)O(|GL092|t>1yG-GHjWaFjYCEw*Wl$#t8@bD0=0Gn`v^ zNROCwLs=&m9+p>gFkfYRM_(U2Ksj)CHfwSX8XUiFk|akJEw#{= zdnsCwO9c!fAgE}F8efb)8UFyIf4nnuiar>l50s0O^mNbJKAbP#{AQ;3`sI6s8y?a3 zFJJMch5sO0U+^9OMSR1J&nu1pMaC$@jp{Lgito38y{YUefZfc!B5qJ5^#q6fVsjN>@shzi*xY5;CPQ~=h99^raNG^iOMcAN?T-*I@e zVRpcakep~N*p8^*+ zp)7z67Nt(zhbr8_RY%KFv?GzAvW!CF%5ztxRW+T~fd_Kkq9=$nJsP)iR)BT(We-;v zrdPLKY}wKq+9IWE1f)W~t3u|8LZD4!z&%AIquf6x>I1k-^a6agdLWn%Tj3)R}ro+ch`zFP$X;{^z}Jap++97 zg7!4c&I(GP@;gjU-XDR0eFl{jV-w}QXyO=4Ah|BITNwcuF87yZbA&$BrlK9 zqg&#TR{%ax!0VEZFLpUnY9F>y9woz7lPW^{;ODYKOF%=G9Z8@J1x4UkY$>*> z?<(mF(0=2s0JxMsA3Kq*3c73CN6SuEL(nVox+~`N1fWz()n}m~BQ5ZmNSb9Dv>DE^ z6H59tOX~zAudyH8#)w17_7lb3skuKpdQUB>*{bVnngNkG6wBF|6sbdc3KP(>6yHrb z>jPn#RxRm!K=H)-@}w<;*r+4%E$HakAuH8X3OUo14_EkzWCs4B{J&=Yhg8QM-eYN9bD<%&=rBA3BdHZ4j0C8;c{%uGsOzp^`0VCUq?>p;RYd zJ4#}WNSvO$iC{#?0nK2K?gFo95lw36(UE3o4yBNFJbDM1aUHzyjwo0GpO)zjMijdF zpD*r)vF__R&+Y~wX$>)|<3K!WkojsrUa@rY9sZWk1i+?fEdCI$?9*c`0ra}~&=0`l zjIr<__F-6z*1;)E6kRPehgC(s8(K*eoHQ&sdLrj4p&Iy&$2`4=WW@3n0RIcdB2f_B z@}clva11VbNESt}hyx@*f>08}+O+7Z0zLA8i>t|800Ng-nBI3uli5|qmW4GiC>}7^ zlpmZ#ugaoO0#e3ozFAfAiu`=r6Vm`br2Cy7MQBFO$ISTfv3n_xKzvTAI z#gUTabcamRUXTJCl-PU-->34^0D&T7wEw&$3qMCEWXwmAWUi&w;uMH~=Csh>j{yxCvbAW$*X0@bF@Rte7}l9s$0RlhykOTjK+Hvl zM=0)+UB$h){d%S*ofAHVQL+WAzhqGgDv6?HZ3po$mqeN{8(S2U8yA{;Rc;w$BrMSt zu!m{{ELAXywBA&$q9|3oMB0Z|IhtnaNimAMh=>s%q+QKB$B-h}B4|()wV?olQB+O#S49Wl;1B_T*)$uEa_P9QL@@>y zd<;z)Dck;+xLKhrhJG3)Ys&sgfm2X9tgb3wz!(8bjR+IW#r)t1I_jMT_#_Y)qiHdnvGI#!L`74Y=Bp%& zjG_j>Q6`4i@@0&%orws)i^Cj{(I;s}T z=BNXf665$XRg0dMV$vJN6aIFe7e=H#OfXfES9B-n=1bcX3H z$W4jTHq)UC%1uePk^phr3L!K2?Jd8rvg;<^pKx62{vpjiY$@%bX|(s* zO?-k5+CzBerlPsQwv;b%+ABe^!aJe-{5Tg))Pz2{em5;5n@pL(j@qcuop){u;@$=1 zliLd7ehfg5ckr*fU%_t)`PMUwvn~Jl?cvx|I>IDg=p9XNS**eVIaEfF# zS#M}sA*d@ol=L+QA*+$cGKk!1cV&>*&=Y}+)45@9Z06C(`Udn)o9n8Yts0G#W(Gwr z=*s?cWbYjYIXD1|BP+g1k?eidtcqi;g&Uh1g1W#kjHIAisZ`(> zb{-=qM|+s+7%UFZtna_cAieB*K4)fNH`o$Boa^K@%Tb47Q65D zdM^(T55qr!tiT{|58p~D_S>pTuE-uDrWx5oe7nR!*jTWJxE^TXQi#z1!Tt~hx*s& zQGN>K-j3w}AwRB@KaZ1N50HN^ke|uhS@QarysxEZQQ z+FlzOPNa3e0OHIEUtZ;$cj%SMfNx$Mf;+cANqmPSA>P>`cID8r294oCt{qF1Qw4p- z^HeRC8GMB$ug)mDDrYZdXJ6W(Gmb517{4(z@DtOwCk_8$3*0vECsuxR%s5ew`;W{B zuMOJqvR8YagUPi-^oY;RscsIjn6fK#apc?MPn_bb7Rzpt(fgMV;Tv<$8mPC^YwGp* z{@4)>Truxo2hBq|60J3LoCo2SN4$SQH;+Mqs5^msB%abgMY7tjOzQ_G1#~Q#jqU|y zyZzZbT{=Ajvg$9f`}nyhlq(2Ut?C^~)Mo{9jBB422J;{w)V8HZu@#EkZkXAUKJ-lC zx2z}OB&O9X>cbE23B`8d8_`r|4|0Ds$nZAHb~qf`OKU;=FT-TrI+D zC7C(edJ~g-K$+W1I7)6W;bRQDe6RKnsn81uk1SZhU7^%>up4$rA^- z^@ZQ!VWEb=z;cNWq_E|4b4A7JjHC>OzCp%)n9n#@VkpB)DS{O z$>*as|30l7aSj6ymjX`HZY>4Ws#)m(%>&YF1)>GSWQ<+kHt|?p)>L}BIMb?_Durbh zYqK)4HC3PnVo7v3UO$aSobc=`^uZNdH@#gh+h=NIG}Sgm6pl+&;R#}iR?*EIENKCA z8x}F&&{oMJ)W|cYO;Ay#C&)*g)7b3*_`FzBF05xLyPYNFL*K%;;Pw&HwKAZh3bzk4 zo;=zFC)!$=iB_`$5VSGx_iT~BSVv$8$0e%tM1TlWLp=_lC2%e9cWk>TB@Dh=TA1fg zI_}uh!u%FMV1nZS1T1$q!kla&$CtYsVJx{)uOow@Q>felQ3G283b|uA2|{qK8C-B{ zlCO-%Ist4+t_5AF!`ko=$lgvV;0 zlfXPt^ggCE*lW;_J;C4D27X_*fuH@_Ht=xG)otKY!@Mc|#|cD(o2t}OIMO03v!&;! z;Opv}U?q?K{KovSvoSxfXNVBSH#X*HOk)79StbO07lZiDSKl-d?<<;Yh#Xd%kI!;! zWWb8={xzwDKIRAVIi{hIBoBX(N~mZqOC^Yfj&di`VOSB=k4pkzw}e}0vm!{+f|AkX z-{v4>eOJ60fFidSstXsmlCUI9GwKtvIaIj<`{nHVwxn6T80ugSi# zaUFbxkp^i!1fk&1$%zC%$cgl3av~M)}!8`G#vq z0K0k#a{P3~F`abjQM)tAo$=QscMgklmnFFa!Cr}pl0r0?eQh1hDL_5K8im0YGyNux zD8aFSZ-Qu2XD|`^t5 zPqYr2nfFoTwV}iKlBZ{~RPC886+!gl_VQ(^#BxQ%NRBhEAve^<$l@$FblhOh41F-r zi$SO=Ij{k_=KyH>n1#Z$?+JzNTdq);C?)5QfMhSBH=~?3!dm zgY$F{#%nCy7M@ABZTxxZwkQ@i*)in!gnGr&^)Vxu=?&IRw<1IWUlBV*k<$#T3MD+M z#Pq5&F}?ifVtR=$#q{bXwUuXfsm@6^k2uljUjy?~35v7gt@E4=y8szH#({Q$yRkYw z@q}~D9wl#hVKw9p#Wo2?DnR@k%E!s@h?x#HngL3N80Et_K$e@=M2mQm{i@*P@joay zDYiF>IHdde=zg}6O7}~?jEQQj1%U|OU<`Y}LIXH~|BM9a!KF)pUZT4U6oBop)D%c* z97IWSQWI@{@;r^{(eS}x91*YhcQ$)!^mS3z({rM%y`_n=Le$8CX!9FH@$gWXovbhZ=+>WU_eB;X;~^M7Y@ghH&u- zCFImwws5gvF%icaz!nPAqarsx(D|nykr*UNWx_eT#z@a%Z3U&I#StJFSctz9#OyAE5KOxOeCehq@8oCJNI#5sauBLT!n%!%UGTF<5GKG#O-r&kvI`W&-%p)eyjEvrJ~X z#910Rw-tlj4;MA2NKd9JB|eO=bV&j=bvG>;Dj6L~Y8QmYS)s^zaZ!-d-~p#dL=e@e z#3>Td`LsyH=ASGQ0j2#s${Q=cG!gg6;I&T_k)X1%s7hR{df5(TTPO~xA`cZIh5Bx3 z?=ZkI{!K@c^!?8Zsf0cjQmL*$Ar-N%8Yf+ooLo{hYE15EHJJt1C2_{2(8W=wv`td| zx9Mt?wxQ39Q(^@X#gdkf3q@=JbxX($0QS zBCWkrIA#mg`r?F?S9%DM{1zf-dL-zcKJ m>mijjfBV-**Uq;OU%v-)QduHsrw5w=0000|@FD8|VDqdB1;t=lt$>x!-f{{oZqz&%GE2J1d~5tSA5g079)T zo%o!_KSd&f{JXR8^)8e`iUG-^i`t6=q|DxA85{Ioou zHVkz{WE9Gc8Z|0i8wm+)0R7UhnNPE~%Ubtd(!C{wBB0Jp{Tk2BW=9iHQ!T6(FO#_V z_@<^NF)^_kx2l8hER;k!Q&Z8Akr)>Rq^q^HNVedIwC(`O3KPE?q_$6trnWZk+aZw; zc0N8ze9!+O@g#Z>86F&xpPR+9_z`~%wU8gQ@hf+%3B$S#! zos>If^Yl?Ys>6OS4ep!1_~hiUrtVXSr!(~r$4>i@_`aWVvNLC85UXBooW1FFa;Y3* zHFI$?i0v+@DnI<#iguVEJ0-@PO9x|$<9eja9VyF zE+ zXH74%k*AGzjOqMn1Ivhmyg!%rRp=8X3KqhlQ*}0qKq#c*D-a6`O%?y|RD>;s=yA?A z`)@~;FBnx}avHdPBRu@mueC>TMDkR@(uC=+Z~pDF#6oOV~jbfv^(CnU6E4P zTT~TLGsD3twdfh+o;TP5L+^D8ifJD>(U|BL#H8Aw&qY1TDvSS>sZX^~Cic#;U@`Wo z*6{l80@`u;oP>ArxlkQ)e`HF8H`{eM;oMyiU|or4`6=p6@UjA6<-p&NEy<&2YZw|D zHXeQ%#q~JtrZmlW0jHYi3zp569+8R)YW;btE)#|hI1H2MM_el;^Mi|_qQf#H0yxF zhkKb!gM_V!QGl(jZJk4fLqNcf$EsFm8zm$pjEsz)l6z8?B-J0j__2j}R0qXsL_#=E zARck#(yG%wPFSc}r>zyF-MrdL3qOyl^nEpq`o#-wfk*%R+Pf}+LK zl@3o;XA5RyGxfQ!%DkeYq7FtUG+~)vzI%)@*ogs>!z7m(nVQ0xvmES z4!))oSw8ajJ77Pr&&mI32LAir{}Q}Y8Z=N;xSr{GAC69gqlNgomotU-pK0)YBVXY6 z{y)K5EL!U1Nz}&Tcf3GDDC_6UOoh36_N}&Lq0>eukE9&L$ z{n`NzA8JcE*cd!oUThpSfAi+e#kI97hhlU|c7?Ztf+FN3$ozTO-`D37J>DGKcLgF7 zK%TsS=6m!7PE5!INv(g%(|6v&U@*PuyakqyR2%~k$1gOK>87ZtI8g6V!{u`MaS-cn z4^)l|#Kpx;<`f;rVzIN+(|;8^bp<*)YMnY|ov4uCT^=ipj*RwfV`dSF#JkN@>Rmbx z)F7b6CotHR#$xR;a==MRNh2qWjEzADLEqX=@;z?HNP4Vqt6K>iU0k&8FuJ?FLF(BF94u&OFc?nPo5mi(eSYhGUR^zpydIc|067tIs+_zL29{fG9RWq*1u$FsZpnLmgEXK|gp^=hd*Gdw0&DaVjq~ZyQ2=nDyQf}jJ zDo%;r*9=K$eWg3sarJ`tP#=i>w%bs2y!rajCUl~I;L|qSJT-wT^JukZVdh{CT(S<| z^drNm7;Twz16#ClORuHNGC|}&O`Xm4v(;H>8{Z|0}}7G z!TFudF%?^0Ti3dzjdf+rwW})qxw=zXP4MM6uR-O{kL#ZC)^S_z+)4)TtsOd&eJoa; z;qznMP%mmP>?m1}SCD;dRQkr5{SRAs>dFIkX0dZCFwe+Sn7F|(^tU8n!XX{;Ofc6D z*4H`_acAW>A5T{9P?gzvVeORA%=-BW#K0Vk{#Y^h#>4|@9s|ujcqv)}9R67) zW1##hfUKa#EX$gF_wl$g>~sR#9;aC=>Th|w*6cRqa&;4OxOGfT3dbx>9n2_GNX8lL z(Ry5@$v(7>Cb!DD4lKhHS4pUf z2uklo2wkKK5#i;&GV|ulIXk;&|JZZBnf>-lG|+nhW`Hq}k&%J5A8H^-c7U|s&{2@i zzJmG-lA*EFd7wdd`OkXOQT~#Qj9Eup=bA@6va^bqS zi70Wn{cw=d^~G)X;j>R__WdU*yUgqPp+8zCI|BvTXwNpFX>@S5C{2FMLqUpU4P-jW zOYFi{{P^+1&(_%3IF`HCs_osSk-0hNg|UfAuW5f@->q_!i(4`>QR97mTF1+qo0~#H zLdwd@RN2mQckfyp8|LQb25qgat$8$5R%(-PZ;e-*h{?&zS8rBUR~r@iMMPYjpB;u^ z7#J9)mKB_RePtW#o0`~x1v4KXnd>J%e_}!eD65;A%s!}6f)X4Y9N?0YVzY{hiqipL z01O6yQh9IPfzPg~fm0-RF@T}7_jf0kM2!%LpYO>512;FZ+cYuvDa0diZmzDJhT350 zoH+vV4b3G#)pw6Kay%)CApog>Ige0njFf1o6u_)7!5g~JF!+?12J&fGU0of6dU$v^ z-LM>T*?3r$uKLcMJ5vZNtH-s{wYaMH@1GZEz-nr1B|UJo(68$Rf|Ikel!OEX3XOAz z$Xc3MT5_2YlDd*4`=Z640Kh#Oa&#vScfWUSZGGLntE#5Pq43HNwpGLH$z8G()eQ}h zB6l}8U<;JWw$I+Uy0*qiyGI3$I$nT3uDT^BS4IvxlO}wBq@yz(MG8Z#elqbze2b*U zLF^#f|Gb~5!OhJ*(5SDkUoFos?fs2DbVc8VxLo(G=%%!Eq{-X)X*W_urshUIE-rLM ztWm6h;D6Ajf+qe4Z4&mR;J>kdND6lShb0#c>)r6Od_1t-AHsqfc5pk@Fb8 zFw+Khz?K@`Maytxupe*8EUKXe*=QD8zIQG4<&v=ipI-7ycECr2O_!-K9L}hz!_~=T z1M|)g=7B4~U$IQFkqc_BGOALlYE`-lW9F`k;5cm~(ch&x@5L3x^K6cveqL8DL_+$k zgc$W=-ycmGxW0&7(<(f|3k5l8!2)AY2|-RyS{Bcpr*-%j0z)x-rWgW&poA>phe;-*fg8C-mEW(!auzLhn8$jBx-5o;-uwR!N- zzM^7&U1(H@8n|LO?cPdP^Xswd(Jni}ZbMk)qX+Bjsp5Dr^GK#iGiWWx=pR>!|tC97lm@Kr&e{ygp zFm)-eCy$H3q^)M%1SP$uTVH$F%hq{C&*;mgM-ZTNaBvbMWcdPIr=MZmwe0-RrJF_g z6H~TvL$Ak`!dQFo&zC>D-^wBzb7*JipqCS1tuI|#dGsUc!aJ*J5Oe}C{ zhuu?W;KnFw53TGD69+CugY~np=X{fwr{l34>T7>bBh?$@^BJ~$LJO$2S4LgsOgzpe z?p#*h?Yv(R6QkcVSUJXvH+AlU{gjdx;qX1Ha=FjTNS*rxw@A+aV3EXn~T4p5#^X0bg>+&QCRbB8E%g6qA zWET(w!Kx+tAAiYZmC(3{Igw{-fS@}5p75e;*K%111Z8--hk5c!DUJI&x47|*LGQXh z;CXh3YP%*&{<=dbF}Q?sd+l^?ecg^?Fsvlm$gwnMijC7-bN2cRrkYqRP>INn{q}KT za*W3Rv7(GcDTEp*DD_)ZaOVPmh!EWKw(#gc+qCs*wroZ8R8#Jkr4h%!BYbXeX- zQoQ`^jOd&sJv!SQ6Gw4aBtrD0)zS8E2-o!wZbn8G#SSrfsHn(*CN4sa@+%N*R+>ZX z0VcV<#XYy!hF-KtQ=9TOyNoP)OdizvU(N=*(LCZF5GcGkZ7fecF&%%iy;6;MG%?7# z&zjt$yJL^d7nTK<4%av5hQ_lQe4}qaytfbCDN#nwhaP9kn~+^ynBcl?@8Gc7n|zhj zAY)=;R&3b#oSHLpZ=~_ZG<4>-wX}}zKGk6vF74rrXVmjPu%~JQpCA}j0~%=;M{k4W~fJ2p^iOn zHblS?=EL!V72uHEpEgf54wn*=zAYf?w70qWacF41*~h-e*_#c%6BnuLw?jPMma=XS z+FMY5)m>6j!mSwK5LL$I@4FX$bI9xWuf1P!Uu8QDwUB?x5=wbAhQDuDYUV^!hrUVuRs3vw!nFc%q7-(D zA&3)y|5irUr*zl?7^n4|&hS(LVAd-+x%LQ&b9QuasBdiKU%-+arBH^Yj~ z3g)w<(}BDOiIzhCz>-0u7HVP^_X#G zmHro1Jmu7cvQ3V98mMk2G0mu4k8|(&_JqVx)0>-yQ*yq$%8X|3ufb|Qi(F&>5h^Am z=71rCw!adV%FD>G3w!wNSp&hcP$`&y2i8L1#+NOr#~cqcq#lganM$7k8h*X0JIJ2;HVQoc{2qXayOPe8$^>Bvoq_SROh zi`ooSLR<+j5#;^z)6ZWYiC(mndW)#!JyNo zVn97|e$`Z>j?fy|^(_;3O*v#N=x%$D@VhAd`VD z^+wNGr}ht>_omY~^-p{Eh_ByKZ!gX{W!>-y-{!<%vDmSAWPa8D7+%_S>yHf6*YsqR z73=LfEVO2PGFXnDi@2^tnXTfa2C;1}Fl23T8y7qNBBEdDziM|T$9PNwfF^P@+y9}1 z5E}U0qsMEXH%H66cf&3(!kt6kK#F(!=;42AHZ3q0nZu|mZ($nf+kE0D7?9?)16JrB zNlCLsJNYjsLBy}+w_5|L#vo{UbZ*g;pC3ZkZ(xq@=%<|Hq`{AW%@wQ1mpl&fft0%; z!qKGS79DyuIZbzvsB6-6yYp>V6N6G(RU*!tBY0Kg43}gSf;#dM=IJ>6m1(6eVtDE# z9D3{4t$N#TnnQKlWyyl1+ABVJRmO|erPPBnp}zc*HmlU_w9we)*q@QYIJLa7{q1Lr zaJ|x^uTw{Y06Y!P3w(EVX8EA_Exz>Xhm~A9$7^2 Vlr+sqzSEB%l2^;Hsrb6Fv!n5gETn8~R_6W9Eh4)L z-8}u4YoWWl`?R>V0W|q;>eE$CFf;^Z@H@)-52+zLJ3D_*7DzSZ`&ii)xaYOlX=Nh; zHkF=MaEqvY(h|M7vrk@KW5#f0C2?=A<&e~`J@A|P`PV|b>;!T%gS(M`WA5I)`)K&% zGkkTdf#J}*zl~#1Umkn3gq_J+I8zajXZa0Sfn_Mi2lZSL| zq#AmXQuuPaCxzv8k{TFlogOcNMx#BBzm`4#dbPr|?!#Aj9OrHl26~FrvL&^^P>%kV z%;uzyi$~|WRDx}9X+ez)mNPRmnQ5?UjO8gKJE{uosNbV@I!YoWPcqP+mQl>J^)KAC z@dar?ky$x8<+R)1%5+XskUC%}SHkT0xFaP1uRyrva{?|mM%WJ+fgmAxqi9Sj2QW1N zhc3Y0k|(2{ob&*cl$0KjaZe!p;{1*>-*99vJ~-BNivz^97|wAN$DxxrvERvj{&DP< z7Aq=1_zTMHz_5Cx8d;nKvs_{s|4Yr(0-chx@|y)OU>Oy7V`@~aXRoVe$tArX&nw~} zH{w>-|6K?(VnHSI&}P|lnxqd;BhB>zb~c~8g$mdBVTm5iWE^zC7UH>q?IP$7-8jbu zfzIA6!MYJ9^(m@HV_fNaYIv)U?c(XoM@zUE3Cl*zXGQBFXG?+=E0JN1Q{dhT-`8-I oAVTAR(&gW>^}j*}Yko;v#E=%nU8x~J653?intB?wYRKq+0R>ch$p8QV literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.horizontal_bar_justgage.png b/application/src/main/data/images/widgets/digital_gauges.horizontal_bar_justgage.png new file mode 100644 index 0000000000000000000000000000000000000000..a11f08b34d40572b3e7c6863ce10fae4e8023377 GIT binary patch literal 2002 zcmb7^X*k;p7RLXP(ORqbX=&+VY0&B|L)EzBsw%CdS}k?exRg<~@3kb>l9t@ilGMJ{ z644-vh_%ro)LN33B$g{7u@xz?CdBn|X1>ky{LXp5yU6TKY#u_F)qFGDk|Q+dq*G;Dl03is;a81tBFKn zO-)U0ZEam$U44B$i9~8>Xdsixjg5^>O-;?s%`Gi0t*xzXZEYVue4tP$?d|QKK7H!w z=;-Y1?CR>GQmNhD-90@$pFe-@?d|RB>+A3D9~c-I92^`P8v63(%kc2<$jAtdMx)c| zU%!6+_U+r~=;+wk7=yuJGMOwEYjSdOYHDhFdYa8_Z+uPsY7mLLQ2M3}kTF7B?Aa`pk%T#|^x&;78vS60x_VDqQNs;Rb zFQw0G_nW=tQ|#MxTiqUAq%grUHC0O26wi&Iov2ELW`r zi&WQod^IZS`q`-&hNQ17dIw`@xe^!6vxwrKvXJOQ6wM>%2X*0xf_Rl_WXi`Y)OE9& zVXl&)e+oX7fUcfVkfx^bhwzC*`XrC1R`kSiO`kEH^rKjNxSQwiwh0CL(HsTc@mwdA zp}&!`VlSMq15t1w;Q<5o%bPKgYAOO zMA;s_Z!E3c#)n`td8P}aS2VFWHM@9gXx9{eIf6ReDTZGxpa8Md@C7z&&{eh?&tAtN>@d!NsPhK)p66MuZj)PK!WJ zHslqkfSGRe8k~9y2$l4X(SVHyfNZR>tsww@u_Ayvl1IH&8(`%D9t-sP*& zK@LA5sg>uy^hRc%HI=+2FX7Vh#5{`r7-1!*C@c5&99EB5bUK(C6#lk5!HEC4r9_Ec zR_HxNjte{@)`kgB8@FDDnOJGiOYM`78h*^$kaA<)*9BEu%C4VugVC?ByX>~qg0(l& z-Tzr=GmkVs;^st`EGC6Pt;!SR^tsn=Eb0wU0GD7$9^RU6mXN|RBhT<;C;7JU^M>d; z*FCO-T=Tg&sOm@qH{S7AxwDx#`RA(z5MDH3)TMx!1Po)zwQIpRa%f(xOz^U3bX0T> zczcVpWpX!MZfBn(Xk7A`5I_enl-=W@pJd;O9qpl^%VJG6uJq5bz`!!!r3ONZl<23K zM33yPj=peo&VQR1Z#T_rcfM<**FKs5D9qK}1cfyIPkKd3d*a5r{q|1tv(*0^vDWcz zcJ6;U?%h)pyrurJy?63Y9o51%+wp2*IGOL}f3UVzs-P?*c8xPGK)WU%NMolJg= zBw-!c!9VfxP+po(w`k5%>bPfN(baz=RFO|OXcE9h#n*NmvEQWccO6A&666R(a&sEK z6jGQhouPAu!I*vj=w#)_+=ewa>fgHD^d%=RGI#}xvu#eqTbqcs z+($biWeGLmw2@;eroe(Hq3(`6c> zcBO7C`R;S1Y7dsH=vGrRbL*bwG*qioQ#ONy-H1Qof}NY~Qy4q^_yFvdjb+VEx5U2y D!z>$$ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.lcd_bar_gauge.png b/application/src/main/data/images/widgets/digital_gauges.lcd_bar_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..7da9fad00f6713b817fbb145df9b1e7031f9976c GIT binary patch literal 1682 zcmYM!c~sKr8V7K6YBW=Grm?2RlaS@nt1X&YPIW~AQ2|rXNJMc*Q@JUKD+&SvuDFvd zZn)rriYcP0G&ZlKu8sHFSkuiGCo{Q~jQ4l$nK}2I&%6BbzURE>`@YXB2o6G8 zSsbzkfggARsUh z5QstnP-rv&jllpgK|z?ymxDq=g0a{T91a^AiVF+FUAYp5$6vX66@U*9ze*s4M??S! zL?R(FG9ogP7!^e%ks_m`qoSipF)^gr*yy;pnD}@=Y(hd@Vj>`(Oa>$*B_$*$lT%WX zQd5&tQ?I3^U87J^D3sLe*VEF|DOBp;sMPB;T6$(?2A!Ufl|{|UqGe|TGIMe=b93o= zd0F}S*$hSwgOOWMkXu-o$7JTSSO7**Q30D>$l(B(TrQKxE8_9k0s%)L;FgqdOG}H( z%6R4F{E7-eWo3y_2q>+pDyyyrl-JY%Dr##h>*@f)hK4GUs9GedxpAYWv9Y$Xu}&b#yd!bToH%Hg|QkC={&vNO+6$!wOFj zXcr*>?h~55^k#Vn7aI2M%)1v#aJ7g8wF*=nXy1*wP(`XPnrD~jN@BH#ga0x(ve##^ zT!=V+@Zp^$E~Ccz=uWct?2C7k8a(`gDn(xM1gz$a8X|>@xJv$Cnex6+aT(B|HbV9WD(eb%myqM4T z9}T}Uk3y7^o{Uj-ZvKwJw${Aqr+WCsBb76&MpiD}V2^=C&%RD;EqpPnj`oJk!}hiamMM zcG^XtSZXYW*ZEIx3rcEHLQlope|xH)9sq@SS!o|$Qku0=hW{mguT4+>GJ5^fg?~^+ zI$7cgz1NKFb(Z|_N~7J~ztb8p2HP;o(g*F}iNHBJXcg02M)qXf)*VRnRC}4u*=_Gy zIheCow7ErovCm9%+~NAb?K)e9%cKeCN7HimQTOji=lrn6F*^`E7{=PDxQqE`{W0{x zDVfx`;W6+)Uf}eW?&yGbLEM_yvmz%FKm3%WnbnuUVy3(c4EClTIe1d<|MG-G{)iTf z(TOT?+AcR8G2^T1znV$}-^Lw%1BHp*?r#;dg_C&ZuirO6GDYCQkdwZ-GT1fOVA>(a zZ&dYXaeHrCni~6{%dYpP){kNWrm(FrA z(Y`fV6Ejs&qOZBVka#fYF<}L|KlqWEdLrHIO!Y_0QJXzn->Uae9Lj0aXNJ?0*N1*g zc;dMaeKqAx*s@U>;|H9a0So0P!XZn;z}#xw*Tca=uWYyBCOx)QeQA^P4$JrTcx|CC zbApf87e_)4)455&u1M6h^8c%2@cd#U$!Dz0&8p@t?3br;I!Ox6+rjMyZ)@I^#j&mS zJ|vLtq8y>wZ@k`13@|{ZkxY2`=R=3;KQDx|2)9|;Lkr;`q27AG#W2ADAr3xTiWn=$ z|M5_PU_XurKKZKojPFg`|E$?f(?Q_a{j@AMO4=*!Mf6hB)W{=3N}UcROkA6^cD{Cw{ZYEvn9KZtdLDh?hSV`U}pPRxP?d`yTh5 zm_O$PPJ^PADsqD I(l@&3zl+`|djJ3c literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.lcd_gauge.png b/application/src/main/data/images/widgets/digital_gauges.lcd_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..e4410cf4397621f4cf50c1cc360ade1e6dc3c658 GIT binary patch literal 6469 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 h)F=A1VW249RQ#k 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 Cn&UeF literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.neon_gauge_justgage.png b/application/src/main/data/images/widgets/digital_gauges.neon_gauge_justgage.png new file mode 100644 index 0000000000000000000000000000000000000000..5be685a462bf6c5bf62e4eb0c2d51ef215d4af3a GIT binary patch literal 4697 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 b^XKaW4i}*LRWY;V00000NkvXXu0mjfKNPX+ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/digital_gauges.simple_gauge_justgage.png b/application/src/main/data/images/widgets/digital_gauges.simple_gauge_justgage.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff2bdb31c2c502d3e44b8c1862bc3c978355894 GIT binary patch literal 2632 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/entity_admin_widgets.asset_admin_table.png b/application/src/main/data/images/widgets/entity_admin_widgets.asset_admin_table.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2001c2ee80e895ed59ecdeb86689e3a04b2459 GIT binary patch literal 2561 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 J23E}~{BObJ&vyU- literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/entity_count.png b/application/src/main/data/images/widgets/entity_count.png new file mode 100644 index 0000000000000000000000000000000000000000..95749a8cc62b75371c73d8add60e16dee3faf2f6 GIT binary patch literal 1506 zcmbtU`8yj10F9%BR*5y3Q4%_LQEZ>ONeB~CS6y?AV${*PN@**tIM#|t>xwp{7pfuJ zMH*&xl@=9EsH+mk6m=yLN~D&5Vc*{Oz2kd7y`NqY%F9hbUR@pl04TU4U_N3W5VIC2 zCDv;YCP8d9C{I5)hr?mB**?v~@9*c`J@vJ>(8I%n#bOCLuLVs3BJMmEi;ani`L@fI z8`O;uZ#t6Zql`apq zqLLQA=<`Hy$Hh}teP@qRr^*?hRHiU}prc(+DZksRmlPA1e8JFq5bRuFUy52MwhrIp zh^seFv(dT4G4ek>-;WzvVtkx;qnJZLyf~~3iB#*X%d7L}pae*ps$)^CO21mkDJT^4N4=(nW9$>V%r$(J#yHE*bJ zY_-q}sbzwSg}wv7x+$6I+Iy;4eq_lXDP==?4GPLh$EsL_wdwr9Wy;Q}y;?Bz5uSwL zB#c$U>r9|qWx&p09nvhMOgAlAO*tGGc1lns{? z-Wto&+=n&E%$zbO7shDgG_F0F{YLMktl7!-^CpeM-ycW0Fx>|G zz}7?8B4!>tBz@RES{z+EXPt0-7q6LBfS`6b2r3ubf304Ll4%*51Gnt&0<(=RT8uX( zl42&V2k3PtyR}}(wyW}F{4;1vTnWieov;!*p`lyzR~M->QAef8ArDm_jPRti`4`T% zW7Mndf)^62`qw4n2bAmUzQ>J=h*rVU_Qi-5_MgFm=aL_=epLt!>RLj+wy|*9^lRd@ zGT1fmh0fB&d=X#@%@g)am`;LD$T6ZVSMOxQ%ooZ_!s353HPlZiW{#ok%`-f^2bz_- zdh!jcBOToLF}){r>AL1wLzQucW|ienq+PgA5=`iXX><&8RK=&F?z#7S3^Ux^EpI0U zt5VY$jU7FL?=18Ux&yy;+3l=oP58+gcmm%xBI|2 zjFB@#zSvstfg;>Uzp2@*ghDCXNRuhcEZ<(^Ivk#8LH_@%Sk4Z6c1I!vx+Q@) s-BD8U@|rgbXm#2~^%Hd=cQy2zq|CvapwIn+Rq+`D+~Hm@vU3FbUpg7$3IG5A literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_card.png b/application/src/main/data/images/widgets/flooding_level_card.png new file mode 100644 index 0000000000000000000000000000000000000000..2f14e5e41ef1b8cc9ce949f75480f7d81cd79325 GIT binary patch literal 1904 zcmaKt`#%#3AICRl#!RL#cN?wDZF*1nzA5VXxNF)*pg*)7tou5o5GxqEji^X+ybx0(#zU8ZQZi8MU3CS4d z4lHxIT&J+U7cX8oIyyRs^{uY1Vgq?AYg-p?e(vk*o0*vj3JTiX+)PVL8y+5Ju~;-3 zZFzZlad9#4j*!V@c6N4FvS(UaTE@r6WAaBm6ZyHhxmH$IpC-R^x)<-=yXWriPJbYY zii)xh?5(J%pw&pOA~wJ8#8OD}_4ZpbYHI{o;Y1Vw0DRevfcMWBTlffs0k9BxRo*iS=iP|}lXUZ8JkySI ztKSwdnP)RLluR5r>DePh?@l(ax*(>9ReL>S_&CM7fh_!Eiu!Y=`T_{xGta=+#Ty(8 zj;M-qg?zZYhgy1?5DLs{Xp%ov{S=ange^2(v3Q_&Fw=el zj#lq*;o*x!%))U?n^P{|40Ml6_eZsKN%a5zvv8JTm{m$n+JrMw9~?k3 zF6yU_X7Zz@P}Kc#4#ULG#9j9m>yd6@(hRz)U$9S73s$7Q4nX%(-)m)6W+|ipa8R~r zBpelI9okg=l+EE2o0 zh;3%@$?_VsH#$5%>Dytgk!;)(}z05-5K(8zb2~nKJ%tjZDjH;Ae5uCe8ipgE#RVxFg^0t zY?XxDAvX6g{!0vV3ohp3>VVjvQ?hh zL7>jgdD~-#G#o+Yz`hDl#Ps9lJ-wP7D?sL4f%v;t`&zWNrZ!WruZ#7wMX|7V52XhI zjS<5l3Z_cHZ|h*vpw|G*oR8dF zBT#6QR#DtM#DyiG#w#r3rSx2a8N5JeIdL=od*1J0wl4Ly-kEV}sJ-PungKkEFeE)t z0Ld=d72?ake{4YY65GIor7Eu$n8*F`z9^`8gZVsV@0`(zSDewMaF@DrhTwuK`|_5W ztLoU0(h6%#s0?F<*wV&^aB+U}e|y20cK>SDfV4TQt*HJmBm^WHeBa@wglbj9=Nx^r zEfY35MJBI}8jNRp2ou7{n>svoXkKa_YF6R}vvGy9yRU0c1eUSG@^ws6HeupxsvB?= zKX13ab|rEOdtg^bZA4l~j5VT6Stl-ntVSYX#_#^Q-E;{mAgcwBdV4vvG5=?pbVCLH z!7@Ej3E$;AcPhNl9T%~r(Lqie8)TIftCC!f^smItEbKS*XuXhDN$w`sCC)Ph&tMHc z2qm-a`|YIF_pyoUu^tbr-j=3N_C5(jIcTaty*VC))}r`U{*McuBZd~r|GE9Cv^10T zlR+-fDbjEWjIaUVpiLd7u5Uz*Xo?qswuM{J_`riJWwysB>RN|3e57$i8ER7U#$WAW zeiwcDf@q(gn~qEz)iwXf)sSjg5Pe!B^_Ly%P(GPuq8!~Q6{k_WhfENTHP#rso_e!kv|B$$iIAJ@3g&{ znwgw*rIdf}@UuX(jwqh?;8_OJlU||-JaA5V5iW)~V6!$sQM>R=>il%IphP{@vxmtlmY*$90CK1PLMo&Qcv=h(j=b5dQ#Q<8c4l6NGo h$Lq_`q9Ag36G#$_iUj00093P)t-s;^N`s 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

-5_7rGVOIn3&O4QY^*jjeWUMBid5RseF3w1)p?d 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

2*NYv0dnTNt!S7Zkpzr34w{Md@iF@;vtA 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_card_with_background.png b/application/src/main/data/images/widgets/flooding_level_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..e5f72404f8708481c72e86da40f84d7ae5bc3b24 GIT binary patch literal 14662 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 IM6N<$f)aJn;Q#;t literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_chart_card.png b/application/src/main/data/images/widgets/flooding_level_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..99e61e0708ff1ddcfe09e7dccb76914c1cf635e5 GIT binary patch literal 2453 zcmV;G32OF!otF=tgJmf zJ@N7J+S=Or`T3BLkhZqAyu7@0baXpAJ1;LU)z#JH>G;&t)LMDfy1Kf8f`Z7>@k&Zc zK4Q+>+uLSlX7cp=p0Ve3kKCS~o-kL-k)`8Les2ti0+>ZPG(SLm3$v5fKsA z-SuK(V!FrfKVr@?SITIF*!TDMu&}V9p`on1>gML=gPY*Mz`&D}lWS{hI2lwo00005 zbW%=J?;yXg053q`iU0rzb4f%&RCwC$orikbFce19@w?Wr@y07Igfc>su5|D5{_oT) z116YNnqW-o!>}ybd^%iR$sb9`$>RqPPqbs_(Sye)4^CVhJuYcHx(6O)LcSMCwK(Qa4tKbYFkPBFrsUU2$g`^j63F&OqNDr^!Uhr^vkip@pXLJSWpqP@7jeiL86ac3eR zNF?gT0hrTsQgjm|;kE(CFdWx)dcD>}Bya6@(T$kVbNGQpzP@|&M!K!*uQL(D=#oe$ z21}R`ATZQ>KN0DmXWKE-sYnzdh`0lX+XL9ffkp81&GkF^y7g{xXaxh67!C)gXDa3* zTs1^sQxPL^oB9^y5x1DNRB=wq zI`Q&)L#4l@E-Sm+a}pbe=U!i;93}seh`?Xt>q{?hVhvS`h<4vvq4HhF5}ptei zM4I`NkY)y{qiu$w4JkZT9l{ctm+1&q5mH5@P4#Wv^etp`i0MJsLt$Yh)kZ{v{yi7* zAcf!V_x(b|qMPYS0S@b?h~5tcr!#Yr(B!oc@!K*KX2>TZkQoPwP)#ACb1Cy;CT9`J zI2}l(Ttv2OAp!`c;}>E#YS-3@($0FCb)*rgJ^!a_Rzf`fX1C@)IUsR7Z+b=|< z#{E!hPa)eclF;`P90{HyV+;(TJ?&Y;-v~8=}nV4M5agWOVUFadC+fub#{~ z15t00%c8UASmffUL|&?3TwPv0qwNSc89q5Gk*Czlw<;mXt6GpXF*-Pk-dw3#vHH zTc(O1&PLDPU%meq6BAr=8SYc$ZGH`Md48dUW?6GN2?_CO(sB+Zg41(6|Arlrni7$) zAjKX-{no%%iYpluTZXy!JP}s4v zHYm0ecNT}s7#rygs=th9EmjPku8S3L8Xj)Rtd(K|LCp3e;_B;(e-}j=$K$1T(&+Y= zYNI&Q*J8IUeMfG;vfB%9UeJnIImZVKD=>`B*CSOAE#{0D_j`_A&heGFad$(4R4)?5 z%ONt@teC`n!}?&aO_1tESgV5)#Z1h%ECJ(WWrsU0j_O6CXm#E=Y-y@mrt7$?6J(zv z+?X=xEX<+|#HygE9N&W5i&jnodlg~!lqh!Q6Vv*4FXh+{OU5e`q@tl^8!f{wGW|9z z=L4sTeTe9CQcBEQOR|-PQ zTanOrF`V7Fb%TF>MJwDcQtwaZ{x(OX*2XciBm(^?15(#dQ5uosrxB?e_g5st9O0L~ zqH5s>4!Q?;s0&LXZF=~cfZrFsMQz1*Ai?w`ObwzfV4Ab<5StyX>AtG1lGydGo%iWM6{#dAnUYaz`aIQ;YCg{ubqIBGpQ}c0`gA6CrQ+$=!WL+F{hLIy zjx-{5rxB?ejY!>SMCwK(QaA3A$O-NR+R4NF@h_Vn-JgG={rJHn?btba_~7v$e)sY3 TUBi@700000NkvXXu0mjfU!Jof literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/flooding_level_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a947fe87fa2b88deee71f412a897a90cc9fb4a16 GIT binary patch literal 68223 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

szs})UTgSGr9eb0jEZZ@29Z|%i8qhb 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_chart_card_with_background.png b/application/src/main/data/images/widgets/flooding_level_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..66c8d82f9f2a070679dd6d354755ce7e3b7524a5 GIT binary patch literal 16211 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_progress_bar.png b/application/src/main/data/images/widgets/flooding_level_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5f349b87c5937992b2c005d62357ff6b221b06 GIT binary patch literal 1352 zcmV-O1-JT%P)YGo}QlM==fTA)mT_q^7Q+XD`6K4Q+*)zvUp%kS^+N=izsyXu3Q-`C#s zy2tKIZP9g)+=hmRW@cvh_xGQ%=Z}w%xw*Nisi~KjmuQ69F;~jM!ouU}_~hyMC61mF z00005bW%=J?;yXg053q`iU0rvR!KxbRCwC#&q)ygFbD&{P>wea@b9uV0+V&H2z#jQ z+yaKl^%@56JYXIwPr#K(DMCgOHj1!OgpDF>6k($X8$~|5Wv?nZ3`61S6i1eSF_;vF zlqvH5&$p3t10l=oY?Y+AAIzXwQmhYb$lLf8c^khXZ{r^#s|*y5_=x3vP<$X#@R>k= zhlt}qzKSedUoPTxBYhRoj+cw*5nw|?nPB)5ME9Vm<<_X^vD@QV4n=D{i&zJ?66=?^ zcTNw9q?tK0*lZR!1%z}Y_j!a{0du$fR*>CEWOU3(+Yf4g!4~3;B2`5EE>djcg#x8Z zh-|j((eoi<%T}Z&S$PuCJyp@D5LO5mpwZuZ+1oBMGXb6p3T5PyJy>vvL||e-Wd(2+ z86C=Hq!ua~JIv_j%WlCj8Qst3jXJShMLdIzeh~>AG^E^+oAnIhBX=ZcV4U*6^$-dF zD^g@*vaXeKoLT9Qh&0<%#?gs@W(Q>hkgpn0wWOB*P!A@i7a>my}Jr#?{LLb`Mq?(@eCLpJv7 zpv6HL2*dDc@VgI&A%;Ms3DirM_W%F4O;=rX*>#(fBh7QE&`V#YPSn9ONw@vYz|DT? zNtK{QZJuMg*NTZz)1GJQlz-2uqmbN8z_Cx5&u0uK?dcdjs zf0c#=%na#L8e*d#MXUoXsZtoS;CUpr9lL?J>khwb_Cw^akYy*sg#;5j=Y$TlA99Pq~7_7yz1h{0BD zR4AXwJz~x1xJRyUytPiIhGMMq!K%zW?Rw6BN9C zarK@+4;nOzErYQ21JZI0V5+HV8;6JrD%HA56iMTdcmsiICG`?u9P%n`kgQo{2FL}R z=M0dZuj3H;9JnKRI{HAZj6)DKS1=VcXTdlGDS<5c@5}zI48oQ{*fI!P24Tw}Y#D?t zgRo@~whY3SLD-rI;xI+ttrNVS2Hu-n+yu|3r8D+r^H0yM%l-wir>?o=p+74C0000< KMNUMnLSTYR$bn4& literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/flooding_level_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/flooding_level_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..241c940e50ebbd63fda7e58b734c9bb5c738ddf4 GIT binary patch literal 22126 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.config_form_latest.png b/application/src/main/data/images/widgets/gateway_widgets.config_form_latest.png new file mode 100644 index 0000000000000000000000000000000000000000..364e353a6ed41f0b1a06db21a0e0902a7d78437e GIT binary patch literal 4904 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.gateway_configuration.png b/application/src/main/data/images/widgets/gateway_widgets.gateway_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..843cb0e47b0c652319abccf91ef550a84552d4e1 GIT binary patch literal 4658 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 HblCp@&?S}a literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.gateway_connectors.png b/application/src/main/data/images/widgets/gateway_widgets.gateway_connectors.png new file mode 100644 index 0000000000000000000000000000000000000000..187f3353e30200d18317f02452e7b0043bd6cb4d GIT binary patch literal 3510 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.gateway_custom_statistics.png b/application/src/main/data/images/widgets/gateway_widgets.gateway_custom_statistics.png new file mode 100644 index 0000000000000000000000000000000000000000..60e25cc37aa0c544ac7394ee8f70a50db5b37459 GIT binary patch literal 5253 zcmai2cQhPKza|m{Q9|@CQIe=D%3}4B2ul(~bgKqobyn|T5g{UkjS`~lieRl0qQ6SC z6=D~w*R0M)zjE$!Km3DKGj0&SLwE;i{LOxepl`E%Tp7PL}~8SOSlb)LiN>Es$aA!L9zg79Qw#*eB{2P;m~>A^ zP&T74?g6n*QN==2%znbybPSz%n3sC;OPHmwph9$Xgw90a&~1~OA0GXV6ilP3{k(Um zvNajD?p?NljQyB+o@%+#_@4BBH*fc3FlYdI461YRyh$wp^m@ps!5tAJpmpi0X2Rv` zag0}Q(g|GGW7oL(N-9Rr%U${<4i^xAFa?V`n-e$!+`1)@LC?uT`Ia@0frf^{xQ2*h zj#=51`dmlEdEjF^jE#W(EE;q-aRHkWS;Zfu7C?6Q6|yXg_}Z__y!G zBRuL;1sx#?lrH*UP)8K|^rk$9M8#B7SRWEwa; ztXEHHzh4B`(pESX+QReq~ea&K><=$G8(*;;*r ze|BGey&_}9T?R(UnI%lvIs29d3UD7V(Jqs|3%?l-ea0(1I{FlZd5W?91^%Rn-T7H3 zQA)4D{rmxqN^2d&8OCV;!5CCi)3Z#utZ(!wH2T|%Qljt; zwN)#71IDl1EL@K5{n_|EHWfKg|^LUI{T3Y(-H5-q%0#%$u?2S$hJ`U&=kNcuPwsoBf zv5{E7e&moWeLPF(JlCIdH)0Jt{?;Olg>#$Vc<$yluh(!ZBO@a#Qd$F0;C-4Q<|o%C zljy?@5gFW`?~b#X@^zD4V(U-fn%6r~yIWWVb>p7u?yQ+_vuZg@{;mZdk^CwuO~$xL!!mu&P;JJPf(o#`xJ z=e%gX#kpLm=`-22^60Jw`sT^D>bX$U$xhO+t(yU3U#9rI`PNs?mj3k|`~WhYcBLQ* zt1qKFr+Zk(S)5yC^%sBH%{x9G+^y0L_sY$38spUGOs$l58(cnln%85VCfrCH)vcqA zc2shN_Y3!Xvr7gwogU=mPLukKBdB)_nLBfgf3iLO+EeJ?avbx`i}Vw5daRnI=fc-= zU?x9hKb|O*YCXu#E{^KS5PNKJGq*Je{?0gbV^VQ;Rw1}$RAJDvf&(D2`HFSkPWBeE zQkOUHG+v>v$+b{PNL3k=n?74u~X+TBT25E}Mgyk*b9_Poo%AYdq-A ze<|dgjPos91odCyvR5J1f_(-)Hu#3;ei@f}eDOT!oizKlo5+|y&?15(SowS`jEzR> zQ!MRLj`8A1=SfIME_A|ic&N8uMLh(Bt2A%y(uz`A5}a%N)vtl^0nEFk-g#4?%!#r} zmkM61^(Q`OCPY20Y)LseUOU@EoGDE&H$x!ZDMp~rO{h;Eher4s2-+Ftjl@6PBe?5b`a99FA_3g$J z8y{ir-~GH@I~B?_XJouGk82l!D*&?a#=>SA+`%bN?Wmy&!*y=4E98GDf#!^-(8QR! zldNc{7yUuXpJ>`~PkPJ6mB1Y5%T!#grD`bF5$TfrA4tS#H2MK-PNacIj17;~Nf6@T zEtOC?V24R&p@#_4{+rXx=j>lBS}JZ*(rKnD$Z%q@;cID_wevIXeY%K{JK58o?qaKm!oAB*8;CH z+nt;jXxsfJ(A90FBP6VzYbd@qYVNGQQ4qfe#2um)fEIAvsh!+Q0X*-ubjJ55I3}q1 zq19$fdFj>j-7}b7;G$QOhJyWq-m%Ph3c^3e#t^}q8NOX_MVOxE?M;!aCV3d(+lua| zi&Kg($G>5qMS37v>oQlCGW1Wz(}Z-Mo%N}nE7xp3XFwv6th%NNc_Zr_6igX!-YyY)MQEcD_Z=V z_{n&wEa=F%P{-ovJHbOPQc!q@yM)i4>1)w=n`p95&b89Phjz#BBqcYJ&w)ObQb*_m z^rSzHMSF#f^J)rLh-JK+(%8qEzK|HvOlw+-w;z#675C|y90TuAcEK3(+!x z_uu~LKjnzgmfLbN-XfZjBDw7KYa>vR&+fSA*3~pMRK~yRmjCyre+ERoI0bc;nUrfl zAdq+nvxp%bmz+B_o28e!!Xp7j-|*wFaB&NC%#U(2i^l7pIYEaD%y`i9d!Hx;jIUc4 z|CUT!;96-(1@$4mF)@iliMVMk(cKGkWb z*Xxxn)7GSESmkNNLo2IX524E=J7faOJ<)scggmf^2lC_B**LDdsw0+Rhl_SSuWy;k z1^re;g)XG&wz-z%W|m79M5Kd3icJSNx6Dl9*(H*O1;HQhF*Z;n5`RTxRT)%w&5Icrf9N9F}f_ zZPa(e-wiDOoKIDKaeUUWKV~7$!xI68khu#rG;TI4^&?aXJ4=4Y#JZe_l@Oo`j6Tv! zLMdC2X0n6>;PexmJLTOc?r#;It;jCRNFh1n@KvQgoNf}IZr(-;Dly<-VPq2A zZhGfe?YJ#ya8_TKrnytflKc>YjU%zv}GH2N|*TohU1>uYm@+ zzBj6OdoJ0pAAvYB$G!-+?J7-hMls+R20+sX_>b z3D(Ltn81#?N)PtXarSsX?PgGic?Y^MDRUj{so$%by-J$(DK^M)O6o$nxVo+e06JUa z-bI4HX4!dldrfrM7+Z=7Twjs=Pr39;ix$Rh9L3+EHvbdSD0dpw_Om(kkKlyPy%g~e zvJRhN7K|MGAD8e?F#WHMp!}ZVyBxLH_txTfcCJzY&gVyyhVp@=Vvh37Q#CarIa&`-C;X% zpH^;NI_{jbDC1qgj*dEzv(ijKz#l*h<3mHQXy?>wUj0EB7Hv2MMq6n^FTnMCr%w_o zL=9AJagL@aZANE>T*=tLP`z=(Njs#C{HtiZd#dzhvne}QahiST7&b!)e zOxBy~ZZIf-FVpu5ezUMq%e#;jwQR(1piB8Ygz)oI2McHXkIn8)D;98F4769QB&NKw z87MEa&3#X3>78?)E2X;VL*Ukc(q@h9i_r`CK@>=nKH{Ox`Ph0(aBxh7x_uTqMXr9H z`AP_wAp`7wy8u3PIN{vbGdTaiSfbJmRo}I?W<*K(_N)9zTIyTvV0gba^`y`;H>#6* zcYTP9@!q0$>OxN+z8x>qf~+QXK&>ZRbg7s+hmm?QvQjg7@BPNi>rV$pJ|{;~@buGC z=+O0F_vOq*FvQJtB?;JjS*`~;CP#Smw&u36Gv?3F3A}o0N@vcNA4bDq=H!OFj zBFD2?(U)=&;O%?``0*=&4 zr}(XpO^DK9#Mo)c2fh4O+)>NyJZspd769kSHi)*$Ah;uo=U%9<6Cb&BaPeA_x+BE! z2F$Zx&N9CB1`V;NUlX`7ta~^;vwo|0vAGBFj%D^Sr3c-i2XRQkoKz|~rmV|6^(+Ld z$j%?P1OoDGO*kVa>K}tuegK&Xh|V>6LI@;Rb4%8Vnl+hQbsi4z7Lr<3Jz6Q;y2xp` z1bwP%BVq7}5Dj?HEH-Es4|x8FcX_%09kZdr>}91m^+%MpvI_=kGHdG+@g7R;H-k;56(Gp@Pc z7@mi4&P4T61V{tRD;qtnGdBbLJy9dCK>?yi;%s9a&;n~IGoHyKC9PlPA z@y-4cT9-~E!T;Cx{|#vM*3Ad|o!}d^(4w>>@$S2cTA~*x7A+DkKZE=m@%1-Vub5^q z^4osvO6C&BQ4Kop>fIi+-OVb|t)0maG$ZB_U@t6hm{%Fiq6d_`?PGic}o zCysut`kn;a4R)ZYO%oxlcQa8qE)xD^p6L|c?N{XF^DPUn^&j$=q77^BcoavtO%+-I zDD5l*BdN&er=o*{K5?aD7mj%;oww&Yso+KIAGmlJP8+2ZbdA51qpkm=7a%p(owP_-<_yfi3WdJQnEYWqNyAU5hr=CbbYel%Am z)uVZKP-A?4htYj-7)U>o>elWD$b@JNeZfqFy#{W9z{TGcaz3fK5J=|I>ugHCadnn7 z<~Q5Cc_A7se;SRc)G$!QHYWc`8A=oW`zKo4zISFg!|oV&9(EzAz{2dDUG1P;%?PPW zZ->pf+Y?q<#`wz3D&>R*4G(?!m-X~*WiP$4qwW{xhR6Bb=rxVP6wAJ(Z(ie80l8P)g{~{^ z7lZ`#1yk&cfIXR=7@TfJl^g5gBwCQr{S}I}CE^1$^ngZ2qU@1BlJV+Zz&~nfe}n2@ m{L0^u`BQBBJD}Bu>~>P|ue){Oz>BIO*?nz8EtH0B)PDi-mn`J~ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.gateway_general_chart_statistics.png b/application/src/main/data/images/widgets/gateway_widgets.gateway_general_chart_statistics.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ac0e3933df8ef19fc44169a1a36be484bf9a34 GIT binary patch literal 6110 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 QUjP6A07*qoM6N<$f|UnjmjD0& literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gateway_widgets.service_rpc.png b/application/src/main/data/images/widgets/gateway_widgets.service_rpc.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d5d3f71c48d6fdd17eb9b60fcc0ad824dd5773 GIT binary patch literal 3624 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 o9${Zscz%E-CF;@wuU~WQ0)o!UxweF{{R30 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/gpio_widgets.gpio_panel.png b/application/src/main/data/images/widgets/gpio_widgets.gpio_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..561c762b22726537ec9f3bbf336df1432a3744ee GIT binary patch literal 3209 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 I>JP&H2j~k&G5`Po literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/ground_temperature_card.png b/application/src/main/data/images/widgets/ground_temperature_card.png new file mode 100644 index 0000000000000000000000000000000000000000..74806d2b130e3dcb483c2e5bb61e1f6d81b877bf GIT binary patch literal 1934 zcma)-X*3&%8ipgb*aoSkV@+b6GNlWes!B){V~M499YQTr>kxG85n>mr9mZNqwRSB^ zY>66)rD6#c>6A7qrPfx9n#y&~{eRE>&iB2~d){B~zb^}8cSAx{K@8PtAsQ>Y-4miHS)||Aw2J+s@9;>iQv# zM#B}nZftCfj*h0!?p0P+l1QY&dd}z1pFQr*_x1G+4-a3*PJP-x=5o2F*s12`=A)w{ z4u>;8KR-1!)!p6Q-rkPK;}_n1(bLmQ`)j$XgKHBuV{L8CX0!EOC&;wzfPjFyx;iG4 zS@?)^!F4={z_JOQ2~1mT!a-i1mJ^J2v~${l47CCD5G&aLfY3cF6w*0vX_GM~0ni8W zw?|}29y8ea(wP3#!nF@u!{Cf3UxYHQ>>i%E@k*oz9E_%G4_inZX16;K@?aq{zO{6} z=Rd@-L8@)02+SGi>gW6Y zAdbjpoLjwXY&-XT%gF`0F&z?l{*g@cBh6;+Hxey)DKutoKXdNTVx&nXrZz`z$68la zjP>{}w=H;SMLi2YRnVv@Tw2mc;ap9|ntBC{Z6b+`kQs=Glbg9=B>Cx2d%tl-1pD*dMW-|Sz?XLWx zAT{B*vL9)>{wHwl5W$y)e-F4Z<=I#-*6fJ%-OMG$)34EbOPdgj)J*zGA`F9sBf#Ps z<|l_iKZ?R*jW)W1sU^|k>+n7yt&}m=RfQCORJC*2&nz*XnjRObtao zrlPUl#DCHZQCD=oKo$DqbdZtrmzgUE9M{jad}9Gw6(A0`8r1CX;Qm| zVb8j@|84X0tfFus-pd09!G?D9GGDo$E@2j_Wcr={-XO7g(wqvrcc5+Jrr*it@$8#4 zpRx5TOvFPdX}{tvnH1r0s<-u(2NzH7h%DB`0pgZ&TNOb!n00wSX`-}3A1tW_C$k|a z%V%wER+zpFa4IU2DAk2@{Ec&$R3%JnBa+fhv@V9ryzXB{CYBq$aK0v7!ZlE^AI33` z;Vx{5mn+-ITF&K`ecHcpM3O0iGy-<5)qb}t36z+&jb4 z-)|x{Dg^Js5rd|K(w^2RmqB6#)2kti+m6JixA#{}kj?8_&y^#hoUX#f@DqI;{PC3> z^~$<8bkU*AUjQxz80dYC&t47A?Vm=SGW(H_Ekj6jH;D&lxIslfHXtL8rulBK{ZzK0 z-gpiqj>yGjh$Rfz@(c5`3mX;nQcWs5n^W4tP zPAHXcLziuZwZ7EXxD;8>PLYQltZXV=7;nqF9PmBG2sn-b#U zTLJ^%12W({@#n`Au#ll)bx@H4nnB^K||RHUM~7Na{`l^7`fB=Ax1AU!F^ z%R(KVvKV0`j8m4jO)-{?x?6a)j5&`6&tqEEv6m4cHEYM)CPm37%!_>T9?5@lDtF>; zs>$^g31wSKk~;h_ca#?@RhxQj)-9#uR+H4$TT$Cma8DV1fdgMyWRYx@?g!tSOdZh{ zg0^IovCHb2`M8{LJA>l$H{R#nCqg7;$9h153Ue3KjESb2yTQ-MjA;c;$H!`ytFq(n z1cF82LDZ^&p&1K(bM)pVX(c|&6LY043P%anGUmlhuJ*(!&bt*ReB8~PoD+S+P)QYx zo=E6!lLc$}MrQgNIt&b{9?ABjr$#+jL;ef<_*jGh00h*R;ww1GYq`*yn5J*q}O+`7U@N%>MK}0RUELJ5;Ng5B@(3owRuX literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/ground_temperature_card_with_background#background_image.png b/application/src/main/data/images/widgets/ground_temperature_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..575217da7f1d3efe2b65044c9d914c03be401d22 GIT binary patch literal 33329 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 Rkx&2t002ovPDHLkV1n$$I(Gm7 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/ground_temperature_card_with_background.png b/application/src/main/data/images/widgets/ground_temperature_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..afac884bed1ef5c5d072d3e066a2e6ad19bd6a5f GIT binary patch literal 14041 zcmV;~HYUl5P)G+`;n~vQ+SKae+vDKcS+tk+4&FSCP-q_L6 z&C255*x=mO=iu4p+R@C($K>AE;@#Hd;oIBQ&*^$lcl0P%9H_J|ElH z)6~$++11hK6c!F58V_kZ9A!8f?B(8DG8b1c7akG^OD7OGTEb;KA7MBh zHZ(IQ9T8nM8W0l7Y%nvB`p~WPE1N~Kp-C<6HY)agHtU( zAr5C`VJjaK>E+Z(Jt}=oC?^&PBNYj=uBaIs5iubXGaL+lQZ5(|1~w!VGc6oB9t}e| zCt)-gK`IzJCKpvK6CNEMwxErMerQ=rHh4@bNGTN=6blRx3d+R3b!k$il7@#_G3epX zv73mVj)ZYZDMcbZ)H$yU`u#qNK-{IPBb4bC>U;AK#gBEOE4U0 zLM4}rgKk76JTxPKYD#BXMS+mWqMewXnUs%*e~M*7@ap2_-pOi!#=E7Fo|1Zuf^2tg zSdnEtUOgpvipC}+7L=aJxwNf-cw&=mN4~kRm643EsGy9Agyh)5r=p##m4=Cifufdv zmUB>YVn}I8F2TIFl8%XldSicNMtD&%$HBFbi-lS`BBq*yd~;o&d|7c(HNmWtR5u{1 zugR*MjE!ziVN5h%Ln|pLCkh4vcw9cav7&)}dUSDaXjC~J92>&G%cq24mv~v6q{*|j z%#4}EWP8NP#>~9C$VFtsgmF*X%CF10qQ|qFnT>Unh;QD{x38m>J1`sJ)V$HZrb0nJ zPiwLa2N;hv@7)0?49Hd3{SgQ81*nOlbjM^Z9or$)rg*| z(193x5KGqz3qn&S5d_&-3*CL1KN>IfxbO2k{!HnYn8d_GK7M~sv^U!RUXhZ|H&&}v zsnlpR`bAwo$>sE%jui9#KCa>Bxx_Gx!VyyEUHRA3Q?uzft$!5XkE6)zu9IPhQmItr z&>0RpmE+fWi^y4}lWZ1Kv)f(H0ym1|9>=nJ7VRycay6MuE)mv=jvIvog792Der zK%@XVUv$lxY0hRrL<|tJ06}2~6gD&9K!{PUmk%^;UoYy|C`9>$Rv3~4L`gVI!N!dg z3P;ikIZ%l}S`M1QA9fX2!}VsKBuSbk^Ldg&!w@udT*(mdrAdPO_}O||4T2dGxC}x3 zU05N7s5TIGh@^g~o$&hMN7iL|otOGtiRy$Qe?=mYf@Hh2xRD13Z2&SF;mgSO<7#&r zLbG0k;ett>3g@L`n9Om18ZOprtg8TFNYoPv_pqx2;Xa_?IymBhuowNME;+9SuYC%riG%xTy3Tr)&F0+BESj&u{6 zRTNP*>EN*>2)w9giG&3(D20M#b+iS7anV1!-#`H;9oaIqmcB?#hU+d9Y~2o-5VBw(PCA}^;>9>?tM#qZ+2 z{t|*hu*u?L2A#145KPGfh6EWkpAd9n+f<1_An9RVcIj5}ud)Dd!y-q!Dryw9mRu%fImstLMWH1S6}x|IcR~ ztF{dXaUA!YQG3u<5E=}|l0Zbp*q~G(J%I60G-VK7Jefep?A?Nw(!uH07wFI>UHS}t zh3H{? z=LE6j)O!lHz6l6P=5v9RaFhgz1TtnYB-ZFqV~M;7#2jeK5r$V^`*{F@h5pdc&GjD~ z*gPab0(b|aBhl0mWj=M7WhhY#-eDk);UJ3;{b0yFK@JE0p6E`0a*~Wvh)67BAcELP z%n`9;dL9L0g*l9(12M>3Mo1evKQaX2u7$APFW=yxeKVFMlM+3UiRef`Q3xCnIc})z zMkVGzv9E~r1A+L^4M(IF1AOzI0k| z&~3|Vijw7|)wb=%54;T8E9rA%yqF6hxL`DJhhI5?0PN^N*6KN!(4bkRgYp zCDNVe`}a5aX6{+6)@(LwwFeI$KA!Yv;_*0r>wfpPtE=n#%b<2VqJ$89W5*n62_Vsq z)^JNB|+6?n&L`NWARoT5;(^SJxvbBq1b~y6gJBsu~3Oy$~CV zBZ$OO+?UffL%5vKVg3y<|Ag3e+7brk3xl8JG7+Rf`FQg1i`cdYgZG}HC$~Q*lL@jg z2R-Rd;puA_re5mmIt4+Ju0iG_NiO}WKT^K)(;XKsSx^Kgk_eI(2qaps;q{mUg^A27 zN!g{}kWgaIuvD+CcoHUrju4W`WS;N8g(+zq#;xwggSYpgB?N&)LM;)(gm$QdT@2x0Kf05zlpXI@hn-o@sg(UTbUB znZM-jNJr_>CG!rplucXTSEKQ?T{r3V#eTf_e#fj}vpKt^+LeDDfbb^-hj-x2zH(cw zk0gVCLEz}_4j{(M-;iwfw_}cOPnCNr<&RYF_#@ZbDqi+0>9T(A5X z)~>7Vww>R-O4vmW&=ZuI|_NA(==*!`^uIWWxzuG_KruTmoKrU z>$mT%-P=@KzbCBX$5Q;LQPPv~h(PAcj2K|R0ft<~&%R^1 zzP^#2raioArS0geJw5%(^;A8haTe5Gc8uj~OBX4&a&x(sa&@_Ab#gh&%jLA!Yq=dq zkIU!lZAaZN)fF9DF5aPH-cjz@ad^*;&fiynlr7h_QiWgzW(G3l)6Jm<1!wkc&1YAB z4BXpC5OIteMUEuGkaMRlG9+Ona2f<7xF>`P(?4w*zvUE8PZ()_w7BFD{#pz|8_+0A znP%QZ^7(uzNZ#ZPi2RtJY!?0vx+15?uLHwFLqj+5h^>1#xbNnLhg()28#Rg)7;-?^ zF@Agk5QHE=1jE61>FfXm4pvO2OeusG+F8hnK;n>4A+#n%j_DLsj!lBVmVhGVV-Jx< zHUKg_e3K!4wFkE!)M`g-kKq6#-rbFs;IN{_ID#a?85c;3AjtqC4ipgV2@H0T1`;{f z3x&!L7;u<&oeP$tXHr;#FiXM|*@2J*K`}ppF+A|<=FOY2?c29)ZysE}^WJ%K#N%V) zfPi4Yk(&DFetR;2aG1h?fFWIwfU%4-6NQUQ zV3CD0Icg5)(=hUCcz9qSwhGy`apkUE$H*~e3?MkTQYk(wzU>P0K~^hqpd+}hm!`;+ zOqraYI5FHIGo*lg0TBB1kthpDA_{R(^-)$MkWlUHh{6;KNy11+23{cp_!oP+YSmLv zcC8eMNF-{~3v~%eKp_k_1(YdM@^EnNh&ZT#iIaN>f-EGAP-H&DvHG8IQ;>fp zh)AR_!AKUq{rE93G(3cs#Na?yt=fDB^T8bfgzl^G_$~%%2}&196rL3{B?}4KFtHTw z5YGbEe9=)Q8a#gekwcG`El$ z!Z42SCF>(uhxUMW7tLxlEki=9oMInm}KQhTuvkl zvv(28`Z1ei=dD*!0+u4n+6 zWV&FmFdxBG_aBh=gfSs&jwC;jxKB|c21z%uR;3oL^-f6Po-d@Fza*Ap*V!KKqKw!? zv1o$`$p1!?8B|3SbZA|9}Yi2)kx|1@jVBx9=v+*!V==(Ku1mFwsGe;2pkI> zqeU*)rfsYnUA}y-ld@*E9HcMHSZf%WxG@t}4o`O;RR%9O z%t!qR-Xv*>egKU~1cO1a30nS>C9y`>bAkt_{&v(77?fIVNHM%+1 zZv>Qs3r&F7uGfm8Y}#QME?eX`-C%FM=>^Q8HEs}{t|SiOTx-F>Ak~)-QP@8`97Hbe zK6mxRnXAuUUy!*JT1C>FIoLcO1GzsBHE}MJtmFk2H^9bmW;KF(&w1>a4{*n=x^H#8 zT*EQ^uHDRoDK;lVpttBxs_mD9*RLZ_JA=xl6DLkQJDY;Y8jLZ=gyJ_x*|&(pKvBsG z710f_sWuIcU`$Oj*>**uhfUUfnZ{h9Pz!5&@x2T1GtQTJ8yq978_84CRTvqo<77= z-N0#hUbpBqyt%mN6P7j4#ho`BexqraVXqnHZ3-954GTfft#b!uce8~qzR^X~2|M|5 zI^9k?zTcIANT;QK2n{|ZA+iF*y@?oPA?d}X6GyPVIOq%`<<6zf(?^}Br!P!{37ADq zs^V~!1Y{VCp#r1u;sdD&nOxqmj;G%d2ciBgi8nBbN&o0f9vo1H&KzgKsfX5QQo(A{^Ox(+_k`qVFaN z1;U1Q=ooX*Ju+|xL?1Xv+(VUDuPc`-olc}&Ew^ir?v)>%U9eyQh7A&)xPya47Fl43 zv`NG!ATbK-Hf-BLWo#P~B9Y`-SqMgu=)|~0I)u|ne3_F@jvHr4ot9zoNm_!z9Qa{r zB5)Qv0APOJ=#)D{=wam2rKk6X9c4H>90$2F;yWg(WCMV0a$mN5jecMYX_Mf_dD#(dT7EY0ZQ8T#MQ(ngY*n<-s z<7r41BFQlT0ZEE}noPnVD}GI)BG%CU z-i^Sowr@Z9`uLt(DYfRnt8;4I6f@uXb8#3@Kv+pagOXZK9E+*pSiMvQ$ud2%|49Tz z5)hQpC`lzT35DM1;SoO3Uy*kSiL<`;Er94a`q>%Q%H?Xm{Rk_K+xP7&UE1^J0fwBS z+4>Y-E@g};X<{yp@^pR)G##xwo=brPA)!bhfTY#E{ugA2iV8LXg#=!INq8%%)m$hf zS{Mj2$_Nkpd{k!FizR$Ee(AUS<;lrfzZN;a4?-*d=3O+ZX1V(5+mdK>Q!GYDr^qxI zjXvzLRdGl>f<)q2MYRU`-z3szWH}*>Vn~sYQOLOzM;uFNB;*zLXqr?D7*u3uKxv~( zeeYLmwJQ3Q*O5|b-}&=2yLz`K7F{xZ0>X${Q3la`bX;?o-~h;C3KN>G>oAsgjPrjE z2H|o*CyGhNQ51<507SqbXJ(ibNQ48eh5-TQD;S8R^DJ_t1cU6^BOp-$*c9dG)SIFr zS&x`t&1WYS$CCU{;}QwUn1n%;lsk_eK~BJt|40z<@xLHK0su7uq70+Tbb=g z`%V%mkhh)1C{=}((&|_@2?7BF9J;Nk28}YdwGEO#hlhvX&r!IJOE6>rSNh!}u2<<1 zc7Zht8+jBoV)$MJ25Vpe2n$FnZjl5sicUwX)K7d!34nb&@U;0NfV7PSiGnn6OO}1h zRU^q`qp&R#-v0OJ_s7SGtljfc54k?*C3*j#rt4V`l+$*-5ke_;@roQifC3UK%=oPc ziknz`n;3B%8Ccs@kf?OA-l_7CA5!31<8xE2{!YlOC85T9o zU0~7eKc{e!gcnA1%i!nfe6cvTDFr!_F24Sljeq^US*$rU`Kp6B7mv<5_}DopF1!_s zpBLNrLT#onthMbW}Q(HWM8qvYlOd!)$cQZiahe;ocA zWd{|A0i`K^YXyX4Rr;;#q;iA{@y%CZK{IOTmr-PBZBG?js;}2U#L_^fS;lmH*5#DS zDTycwd0lt2G0;F5J4YDZ^Jla9hYzJBo6HyUNs@f?3v|2yu?0DZ(YYZEI|Bhpx$X+N zLJKTyqksoCkT{1$P@BQG46fq!j7$hmv1F;2Ire!CW_L!vwsDD}0uU=r9|zrTl4WV0 z;r4WzB@kdJlVlN2mVV-oFG1k}s z2s6Gw;X_6lvEZCYRQ3p}m&Z}0{is5){F8B%5YqkwCJfED+{Q z)w)!8WjQZq_!g841L*X{V%4GF4&Uc2Odc2a!1F4H={&y!1C@L2E&^v-x~H8f9sk zlm_7FA+qwJo}m;m1W2K{3bGCk^+$KtM;X@j$|jN#E4MWm$2Bvp=qIaNm8B`MlR&E= zF+oTI6wNG<%1(GRT#WbO2RcZ}W_XmZbaF<<4Kt)DSR5O<%MBnE10jbMMzKSrFja6O zu=2b3R~HDzZF=G)4g#4e9Vc-N#TF=(Dv^n^WYy~@r8hj--+z_oC|pSPZht2o&ll6T zJh$Xf6S4EWCUWh5$r0u*=0r`kOwSNUjUaWNMvE*?+e&z*2_cp!o+zYnf#9Ox3tN3a z5yU0vL&q9o0#q#(gp2uLl%%z~DzyXe8=TXe?}xwxi-H zTqnonlWvlaPjMms!#_ICC$zCDjN)%;P5&e{Y6w~aRD`iu6EOo>>9@O`c5g)E$w4GHr+FFGgHH<#WEZri^ZaK6sa7%htyb1P{?Vl> zJ%Vaca8A*x-Nbez60gDaOi-~8mnzTNvD4SjBU6lovaElzI3xAUO!LZ{VLW&q9A<!&de$ z1Yv9~p$p(sgn}|Vg&}J*=<0v!k?*iSyyVfJjKbtVFM6X zSHu6?#Z+(D#-V9gSON*8?hb`=_Nshhv3(yts8&#bOA&UpzWJkq6{A4l5`{qsFWjPj z8rJUMuqj!OUq5Eu!ZFlm6(dy}7i5?EyaXJQk-YlC%*@}G-*~S_5Z&8-n?ZC-l;R3T z)1;)Z`wE7l_$uVGPjlk<MXg2y@12^SnY3Uq6Ln(G^b=x8zM*0bE$fz;(>e zo=UK+@7fglik3V}-xlbTQ6Mpw6lbmtWavO{iv+iH;DBHAC+=Ln7s-24q3TytfMYmYak=O zNK8PCAuC#4eu!Hf~h#Z!S8iOUp8 zV?q+Leb00 zl$osHOF~AJG!B7yhg|Xkg5-0#LcxMwAhAsV^C+sGvniWpO0}6kK%w$^9^_fEB(dlw zkU)m>unrJx#+U2Snmu|0%HF95nJjsgoGf!0fG`9~;LL4rJ*r zNEnn!peTHKK`-ShK{ju{oOGA%ZGa>Lad_!l2$wxLK7)>r>t7?;0fIIA&gonXB>Bt} znKVAzk0K(K2IHyLGW}vCngff33EtHZc#tK4gwXOBo@0UYOGqGTk;IkfpW>%ez~Sym zxN9E*fiv#*>UtSWE=vaDM<)6dJ^vI(cHyFW`Z=HPZ|i5M;v27 zKmti9%nOA$NZOK36e^~W3#~9}kSOwsA8`aRYp9e!zyXhZ;ZkHzAQA^VlS$Lxj4TDv zT@aEWdy;AkBX9%|7((S72nv=w0%;pb@;NebfH;sR_S^D4A&$5*=}d+s27+v_*X!_z zf$UX3vOWSOje{UWk(BBniG$3M1TGnBzB+6CNk|}G0#V{>Fh!B@R;y|`+jS2Jyl~2M zq*9`A5(wIesU9IgKE(fgs~iA?B!nS}SRiGzk&GWtG+17qn>XZ;ox+f@u0CH%!w9fA=#{Dy37_w9ORz$kXo(rSvgXw?^HfNwc08e-}e^y zn;77LEV?8sV5nfYQj4puZnR!A&(`<~82GJ!3d^MGqg6e{Q|jz!DUfDR!wxhmfCV54 zg3uwUX@{il)yT0`+l}~`9l8D~Kum%Wif`g_MYO5r;Zc${mc zec7Nx$N?(_@(MlrJjZ|JdbIM1 zOe*0zH63D0SJA07l6kbWJfw=lB4)&NkAYU0n z3BT8)3Q6D;fKVV2h>Vly3@Hx6Y$z_qfbG^<^~V8{Yq6s}2?NP7m{_ii!|&{Xq(7sE zYQeSACP(pA1IY;_L5JYZX^=EPN~QIU_4nR$9>J#2w;sfMBw%RE*m1l@R*K0GM4NGE z^0lIlF9B*o%g*l8Dj;`boNC9acA&6^;9;CFszVY7s?`^Cj z*=<`3DBl|dG)WSfuS0=|WAgJ;Uc3Ac5bnhc!U>jw1b}A~ow3Z)~;B<}yF$imqKFHmz@&~uxIow0#2*9&@fQ!p_}97&E%eR$)%(H&V^ zFF1Du5C{k8O(uY-YOSu9N}Jo;o6#dY-vvo!@6n^8in&54DRT z#X3A2xuK9l5F%mx5rj_j3LxkqD&TOCeQhFZAg=>NSu!Q~hEyaY#2pYzc7ZUo!~rzS zwYIjlYMWcTQL}lD2cyW8`=N$9lLTT?dQ5{zPXz@KH?`rCSRmdbuvjjTW8y?hk}v{@ zx=4Z?B;oo37|??(wTkVApE40j-bWJ-ZUP75HmN->fo zNr++_4Ve`8ht%a_=JG|zYbd~|W=VmA*LXdwmjO}!tXzvq4K(@lW>X;IV15gPFC|nf z$+sGa7sUBct3{FwB*3Ci{E{QCMBG%3G|t9d5|cRaF3Ot7AC&2i-L1{2)qs9FKMEk? zh;_t3!+uGMFo&T_;vn*fBbhf%wg3`SQU>6cq8|z)9!CxwmTL^r0^J1=V1Q#gI%(kH zZliJj=*!sSYl0x#gB*`91Yv!zL~^o_qzCSTc&ETl$urP=DdXhd%}*%?;!=$uwcXv? z_Uh_tD_U=X1Wq~mK|4WO9R-3}C(-ybNo^}n_Dti+?%Ifl2qcuI7n1B>h)EOYO0O>6X27>1*w8>{HT&y@?sty`BuvPm!@ zF-#zgP^JuYHq(Mrr3{3^jOZ(^i){Vq&P_r50|RbEaN|$VpW^-8_nbU2R`i~}Z_}Af z=DE)EbvGAi35Ut(kE*9X6M;fW%DzfNBa3COgggH;v< z5^_XYee(7&Ly$wJB$7ZR)kjH{AkawSkQ99Y$&)0<10V(dUz{#>S2wT7Ay%|Jh=(a3 zL6{`t;>c`ABw0obBoMe%km(YFI7u+r(IkD`L=zewyAGhp@ed&R^7Irl`rWTL7FlW~ zFS&GU>F5#qGq4QV^17vjR$i>XKslj9G`A#(7b=;`CZsLAiBG05oV5|>QIPF+ThJwu z(JZl6T->l`sqs07I^U38o`Q408G^40GXd8x5tZ~OonCzqO155%s)BA*OIJW{MkXAMAy@%>6-~xYXS}K;V#JKgGHbN&G`a;uxcrI?9rO{-i6*96qU13$3a}2}5WNB#JI| z>oJPX@Mx60UA&Kq zrfp{hO7M+^PS}s))}o{<;ROewgdvVG2o79q?Li}uu%z%D@kSX&=xr$sfs=@otatM) zj^i%P`lvw>MsHuNZ}6+A;i{CayXI$jdg{ z1O^tkkDu4k8z-f$)6I@I22S<4xBsX zATulL5ria^`l&!P;414z^5WwpL~)oWX%76VugO_}cJ*VmgfcqC6Ov=%o*j+}U8O`I|^ ze|+c|F5giJmCgfbSmlM*9PYS!uA?Um>o8$Rh#?pJgE0*Vpa?WAnCXns`r;v}&+)2MZgbBFj6& zm_sBk`FslEjgb2gjAsS3Z=(p09FzUIAPy*FYYL)W6iEA8NnTd<{CcyA(%;~d#-=Et zR|k-ZJhuK1h*dda_%xY&D^4O52hl-b3(Xz!wv2&+Ls-1ulS=?npsic7rE#uxilBK4y zZGSnw(W7N7VpwbQeolGint<@up*TbmDiLRH4&odj9YZ)u067+4yJXl6{v*elDnloM zNBS6TzD?Voz99cUIfj0y=4>SYlJWnDEP^na6oy4DI zec+$l`~BhJ=JsH+7w`&xHr-PCc6f4!%Rsy^uYA0G`0+s9;sQMQGw&dRV6JrytyaDI z{Mp6D*~R7MN0*nE_!e|=w%J_Id$_HE+O|S4X8S(tvlun6Y_XACG$o3lUEyrAn(xzU zo8Q|^6u0=k`G$A-)~6`(vu)FSm)LLaov(L`o!t>w+BV@b&x;cCKT|(9;nJzad|F}& zn`U(ucV$!fQ?6b{h^B#4uu@<|yI>${{U>L{3thH??+h|^2o%5F}m%O!6 z^%(a$?m$xGh_Y*y;J}puX`X>QjN^8t^6ze2(WK`s{jM8_10JBbuVH z@m{aL!mp)+1U#TweEr=FXEg8@;vOh)8B-&{SAi@=Fyd{y^ELcr9H&LeWs%CJWiI}8 z0Ko%E*a4%AQ}DqfAmIu70CGX$fFN1)G$=wgh{H+9abX|;pJ!!R%o0-$g9vgC5d4b$ zSAa1R3$O&J1x~=j&II+gDYs=)nznf&KOx>MYnm$C?+pW4ZOPFK1RQmp#$Ck(L6`}| zs+u{3AQu>SlBlFU7e!COd`K8$4n|h+2u@D11}j)E6BsFwZ@vKsWFS}T-R|CAHHQ?o zvz+Jn-ga@t$gof^;3otc9w@!wK$e>`_Nun>3Oth5B*Bw-r@RAHWJrb#A&Dh|#XZM( zHGej;KWk112XPKlIQe>yN)GG5l3ToU3ke=E83#PF+b!;`TNKn5YN0AN!9*l;S{3Fa z3Wyc0M|pr?bcQtPYokFl5v{AtO{`uZ%K$A9mL^$eWBlxM(KCMm4%8sy#U{j?00000 LNkvXXu0mjfx#b*d literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/ground_temperature_chart_card.png b/application/src/main/data/images/widgets/ground_temperature_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..7ccb9d9cc9725c838dc767026f9ae8b6f7195ff1 GIT binary patch literal 2522 zcmV<02_^Q4P)+%Q+m*536@ zZqd5O?w+ydT6op4u&~n7(sqyBDk>`J>FJb|lze=AFP+{600005bW%=J?;yXg053q` ziU0rz#7RU!RCwC$oq0o>NEnChwm+7+815?wF_*2@9`@L_dwu_JweJujYfP4=RwOP@ zVi;ZqoX2+#!att8c=pSQb?iKU_TuE(Nr0m#AdTlwz=KSvTj5D?@>E2uQDk6@B12;o z85*O=&=^H(lHuH^?GmYCzulR}skgVeaYP?cf=+@ETl68~g=s5QFf3iLAV83i5Hs%} z2$DJR#y+Gc0{rc+nj1DP!Ti?}3`wtHzDS4Jf8(;}hW zt43s9H1nEMv5WL7X+`|l4`>L*QzJ5^YE@8NQDA9A>Pylm9$X|Ok$a_{th?z!1a9mz z+yj3oB1g$6GBo}_B0}T4(RTtJ7w=I-t9g#QWIK!}m|=??9rP!XlZ(h;*(H}e6I|Jv zXQd7`P;#DSB}!EyQ@Kzx@m1yKl36A!o=YlywXG}{Wp3jReT&RMa7?ta&8F13o`Bb3 zWlM!zaFm+Enn*=aB`H49tTMRL6nL83T}h{(lSB;mQ7XSu9Jl6+fJ%mC889-6$}a1%r-)LqU)7rjsegqLe0(<%w5I=Dk~}UHOnv&w$>yf zGR4J2sLVo{DS-p%TO`qwLAT#kVS-f3rHdBt)P&U^l1x& zIj{~(XgeSB82NtY>YytPSL858kx}GW7)6H0C^9rgk)bh)42@A_XpAC5V-)G+{m0en z{jJF9YW1<*I}(xA*{_CA=h*PuD-(EieTs&o5P9?KhEGjae%}OMZA^|qr1to7{l#qF z-b6mUduOt8hBZeZ^4k32S5)};flBW;k<%tIO?Nv2k(YIAH>Kaq0HN&)#N~%JCBqjv zqi%$nk0kJN9eIVC>pDl@jSxZ#Gz0;CFxH>QyDwj^Z;MbK-ho)>=7339+IC>0hIwfO zxPAphRo@HZIW_w;ZE16TEAqVrj1cQ$$TbbkO=#>{PvARLa(Yt7E^d3h24<#DDwJ)NyxoK!s%7$ z2^fqB3E{$w6c_G;iCmwpIlb|CMYGrG{Y2n7f0SrgB=mDJrBaYgs|ORIX4h;)-kZQ@ z+*8D~em8xIy#Lg+e*a(}=z@6Kuvtu64_vm>@8_E|4OZkfZ(EN$3*rhjMdgy?J~2i8|mZ4#UnhRE9FkMGqpT|9rYc%g4=E ztT#7f{q%B0UGMS|hat3vp34%pet3~p{nhYn!{=tmyn6fc%xus=B8O61&_+N{dg)r{ zzqT|Pxcs!)`_L|!?0zk6H1?vOE)qK)Ll=pk`hJ|!1Qguc!w@c=*h_w@$h2TZ+>w-Ev5{qkhYpzA zupp291flQ5)z1@QMq--&S5g8u^`o2mh1-?k!f%*%{qFE5ig*PG=I>8R6c-g*lJvjR z=N7?Z+{QDfNkv%fPDglUDZ7VgK4Ge70k7+~s14efZ1A`Gy#~xB8iPYo4j%BEl|MI^8=!*rSL{i|q^* zG21&hS|VqUp;Mt}k#_1O?k2@-7XkLNh=ZNibJ4pMD7}|h}-32>FuqJJ9G~dmWF*k*9v{d58J8t$8qDW(_`;p z9zK*3_Iw?-x4KRdy9~JR$n^c6acd&GL~_BANxA#sLwMnM-M_eVm@HV!v@^dy{O}&Ox^+@~m` z$gwku42>r%A~g0=%G;*`_HZWYZ4t?hjjVqJ7l3(-b%0Aq0jq58*JcXJ6y&;!Iipv) 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≈i}@T( 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 Ef}oI>RR910 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/ground_temperature_chart_card_with_background.png b/application/src/main/data/images/widgets/ground_temperature_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..353f95e5707a554a85e10e5de1a367b89398ae15 GIT binary patch literal 14569 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 U)KG87&Hw-a07*qoM6N<$g4gmZz5oCK literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/home_page_widgets.quick_links.png b/application/src/main/data/images/widgets/home_page_widgets.quick_links.png new file mode 100644 index 0000000000000000000000000000000000000000..679af3169f95c1fa46b7b7464e6e5e30afe76359 GIT binary patch literal 3702 zcmV-+4vF!JP)gwvz(b2E3uac6I z=I7^}ufnvnw2zOEz`(%M)6=)Nx22_}&d$!Qt*xJ*pW52m!^6XumzR~5l`Ket}sxyRJi)zxHypgUiO?(_BR?Cj;`<<#Eg!otE*bCvJ!@8jd+ z%-7(hx5)bZ{6=Yx@9^-+$;pYJw}6@;m`oCR5A zZxXU-uY>L@M@w0EjN|tA{{-hKO5{~q;Av|2=|8co@!HA{$wq#qG)s4W_--i_a4miJ z2L$2f48(m;0A~+Erk$nfH1TaqHqI5Z$W&fTM)nL7Q}D5 z1@W5#4Z==C%o~Ix=qwiICYUBXsi#;Nc`TA*;1}&`TAX=-yk3vhcY$kE;RMlGh$nX{ z(QJyxGV6XBW3rG@idBdQNFr7_%~q9Ef}JGNBg9Z#iFOP%PXQ`hN+$6t9nZr?lB7~B z-F*kwt+=)o9~4Gl*Kh)&@9h@a>m8$3Z8nyhM$#dZ|%0x7o>pck9kkT%A(y17@A7SV>79M`Jdq7LDAgY9Z$4zk9orOf{J5Z;|>)m^wYNe*w2XslplHMPIq z&6zE7vNs&{Pdl09ChuCWiuv^lR!g;5rW4PUjP?dxpP1zE0)bGyvAqNFYQNv?mPk{p zW)hVXV@n6vc%LYwhBa0yn+3yGKC4x9xIVp>9G)ORBcq)#5QQRAF!$!hfFJ-;Mi@ol z1xSE~5w20SJ;C7ukqX2Ed|AsHH)4oF66%c_Yu$qQS+^j5(=CYK`(+~NzSq? zMu@`3TZpzpzp#F}cYsVwrlON=63o*Vh)U~kwUW9_{Q|`Sf<#fm2~#Uv<~}h|L?M2a zLI~PGI0scI`}MAemXY~YNEB-BfXzV6EUF-|<-1<`75pny&?FHc6AmO40L_1XuNU}O zRN+^O1W_0V@sPhkm_kvu2qGmQTEyJu3IGTYPY|xdCqi$Y2Ll8J2tzB#^1-uTgzo=w zPl6z2mIg&QM|xgm2?mQ3A&9eU!~`J{13s)+4*SZ|Yt4?`PIUXfC+v$?FR)B71 zzn00HAUkT&bmb2nDOIHX2?ymLm#hbVGiye34X$1DV zt3o&m5gksNQBb>i1gO@#5!4Z)&6HVyDVjpkHIT;R1g>6+>{`s#wN{_rzi++$eqO^7 zT#sanAO}Hv*E)FiROr*cmjXeAYZP&`h-HX!^s~^DKnzhl?^;~T_k@<0g8~Bbe|DA4 zpGPe6|MLh_>>yM@*&_2-09pi9D!UfHNL2o)>(L_qe$-Wo1q6AMsFdCFc0K^}tEj3F zw6+Mp+*MVL{1lz(C-cpNi0WH~Rb_h90xO6qMNu543V(}iu~%f=CXbA;Eh!GPn=7VN zX(+4W8&7)IKM^5>T0z(Zg?LEuOn6JVz`%YYWn#`Fo;4_!te=`3(j5eB>e3{ElgVKR zVaQQTkvR^X?=C_V#TVPlQtEBbxf*Iee97W1vGB-l`*+m+s@A*;uFv62KKabeWtGcj$ zi$mV##O5~kE6cxbcp>i6;v}+bO=lHIWW^;PPb*A5G1@^m2c9#n;GcD+E}=qfAe@5% zE_=D-@7@FdO8BrX(+bnkuX}>T@56XhBnXq!3LY)u^I<&jCXpbN*q#uD0`NQngxUs; z!~*iKkAAa*WF~&=Mt?0+>a=#6gJH3@S3pSb*OGwItgLr0734t9ovjp1m$U+#@_tz7&# zs+CNTL4Hl!tl-|*DCTqViV3n7Gs>aTXi$a=w2&FAx6d3PqY}VI>wTlqj5m@kbt}1* zs5K&H*Gk5W%my@Lu`wy6Yvs&X*OF^`y`iOGAtHpHKR>ei*PkyRf3ks4zOo!55dbyH z0HXw01R>o{E8L5%CIATcVgQYzSx#XwQa%InXjSOqX@zi^!u3iy_ZoTr@xIW@Cjt1M zorAdUT3pW`2pt4s35VnMtAJb`G}m-A954{i)j|I6T1+K&Z@fZ0*K17zKR+P?;nND> znpSXV+4n2xRJRj5OwiN$K>WO>F|2S9W(6T?I2`$DGLbM1qGmYRN5T=aV6ug$ipW5u z`F6+4*RqM zCEqON3k|Un{j z!=R>Q;l=gKgU}Abm;@2xahal@5s~hD!b2$(pI64^OoEV12#QPBk2Bf4@qz^T8KyA- zhVvYmF|SDka|eEj`gMii7F zZ02gjyMdcl0Pz(PIjx|g82vis^XC!d-gxUU9)dfqfR+}a1cKQj^4kh7->>=R4Z%16 zw+NwLi~PBk4 zW%~S|XNTN{^3dwnif-4ny@UzP*7`uA3;d#syRcvq*|pp& zv6l~DepvbN_K%N8f4z9|+rv3XbYI&`h6ahX>`rzqH{L&mRPJ=6*Qhi*CuhCwjMl1V z{Kv zgSeg8R8izz>)=mu*ZRY9*CM?zZtRxpg{IM@t@RoL#IvQu@vfQ)x9XdxqtNIz$q-nm zB#3j7zaTl_ee7^07*1^JvB+Nxu0%@&VM)2TYdJw|0C$71q}=;rp8*7^MHD*-RWX*PyPAjM?A(4Q2QB=<10O4O(2uDmMCc!Kc z4y)lX56!>~?NUX+3!Ozgoa|(=%Fkvu@=nMa&#Qmp5hH}!yz$Z*FXsnlPII0#cl;%a z6e7w+LWtOGM8;&32bkh9kt<`|-d#UWxaubpBk7Kxg9OzZPw14x3KGEYD^QNXIV6Zc zxxfkTDw57;LNBk2Z7;5WF2*E?APJ-xvpcaNm?(_dK)75S^9)%shn0HkrY`XA+mTW%#CLmQ!9{F zi1aM$i|U_#1Q&>u#Pkw7FU4j_=BUH*m)X1zx7PUu^@AG(?Z%7O*Vc~`#1|j_>#1)+ zzD({;A7Bt&x2CQTiVq3PXpC}akXY61rWjImV8 zJz5AJ$fBkoskKMdK8{{#4e6%E~-pQF7oKM;IlezN(8oAD#sKQ7(*@h1GN`44yg2W`@D UfG(ru^Z)<=07*qoM6N<$f(@!n#Q*>R literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/home_page_widgets.usage_info.png b/application/src/main/data/images/widgets/home_page_widgets.usage_info.png new file mode 100644 index 0000000000000000000000000000000000000000..1039553a29f3566316c70888fbaa02589c6b8ffb GIT binary patch literal 4806 zcmV;%5;^UOP)Fn{{-QC#S;`a9U_4W4I+1a_dx!c>@=H}+n(b1TgnCt87^z`)L z;Naii-`3XFt*xz;l$5Hfs@&x2&d$!w&CSKd#k;$^(Izj-%F6Wj`0w)d%GBO5R)L?N zpX1}>`|RxS^!C5Mzpt;anwpya`uhFz^t80Jva+(Lr>CN#qGf`im6es|h>h~~_w4ZW zhJRN z#mAts#FwkTzP`TYgo!Lue){L=_S4j&w8p~1!hV*p=#Z7?jF9!t&+@>-@w~r^ptpIG zt=LIX{`dI&@9_89+wiuzq@<+jmYUYz=F{8cuD#8{!NKjRtXX)P@3OU=oSfR>=gimO zy}iAYr@gVUvFxIyHd}z;`rX*z|7d{nx2Y^iu&p5>z<&*%gr@)i5MxP1K~#9!?AG5;+CTunarXP#qgO;aD8I^N z5s9v{DQZ?XGTUqcm*~bKtq4unLJ9Rn`vi}GF+o|P;lUS8mbm|Og*iPoMOb12#xERP zpSVx1&0%@+=z)b8^6ou+{KWG3K4i(^j%MNgN0x^W+=Ac(%RLs{f>?`%pusJOBrF68 zZb5gDLF-mRoDSfa1Xo1a+EHLY!y)@);Mpn(C;-}{vnhAGfjx6@$O;F>UeAv4A@T+9 za>B$uH|pNsIa@kwhjvKJF@0;T^%g6_Y<7F0z%OaINoE7 zeRg*AKbmB(worB_)lW1eFNN4S?6KndF@&i9;3#_)#0G7kuk4P?Amn&XQ-nZ| z$(2L>6hQ?03qh0Oyio`}t{sXa{gf}J5$reAdOL0qLfN;{OC#2P8c7vTAw->vY+qtK zbv8rzjvzaIa}ZJr#_>g(ozL4Jmq`RY0&xe%Lf8yp7i|if{7(o?UkjNn9$;%-QvCk3 z*utbzsoF##9%$coEntTvcM9>sUdYV*d{H#*f#ki2ufRw_5e^P#2 z2ccxGfUPlJHgf4gK#-Rj`b14A`Q@4z7XsF}kYBie3RWFhb5|-O^I>=P=SC*iUF&bUjo*rK^=%P+Z9sZTC?I1y&jO% zOjb%J_sZ+LS;@$2hEesG4P^v_2tkBFrnzmx!xKzm-h{yUjh)aO$Gst9-UPvM+zf;l z5Vi+M>-PmEYh;C_p_DRBv0)^&ykTf;S4goFk}Ul=Dhp+$q07m7CRb6F-Jn`*ocIrL zNM2*GE#Z8wMbFAM$3-@ykV!<{(_Y^@K59a|F<+T2q(3QdbC^IQY3#iheN7Gcu{0!BgPZ_bcA6{$js&k zCgOW*-e)ExGQAj!K-lxGl{Q$VtYp`8J#!?em2CXTIQ%K8qF>Y0!(6-@1O^5C8Odau z!Szz1B<0K<&g+I$7EVfy1FhK!Nv~s&kc;tf&l7G4nQbpbKF;;hm*9BshL`ic9ou(b zKoGp{Vb30s)Toob{rmx+ERQ`86SxlH|&o zECuRo1?3>#8ki%XA7c==#~f~=wNipHHFMJp6Api12!=q!3j$#e`xMn30w$yiT~(Dj zCDa;OQKrdCRba)vdI996391{!Hm>iD{B@4BUe@;4?^%1`+*%Dn)Nvf1&CaKI==>ak zWH0APzG$vfXf&n%{-Th-*s;HsgrP8w(wA7(9L zAxH=l6o3$6helo*-#_+N(!p$BzOLonj&LE14=d8?7ov1}J-*5ZEdhA@1eg-s5@Vf3lW@?@%Hk6e9dX07_X<%I{Dt!AUlZOqRxV`5>ub z2pZch%D-6$B_T;jyd)uUlZ3=g5)wDw5V>q_Vu2Zd->04HoEEzcxRkOASPczIZfHQ8 z=sb8xQ@3>uj5DTyiIf0W0l@)@Ge{IsQy*S-Z_HM$WdPVX;IP_nI&$?|og8lMbZ2?T z3lg343n{~N)Ml<|*vvMn-0ZB%veQXfPN&MNDx$VNvTJ+8ecb5)CIvu|+Xb`>%E%cJ zyDk7Fe>8W|@14vHs87f{`*qWjKoG}q{Q6sEc9+dT*kWZ4MqiB)VOZqI5o?d5u2x+vLrRu(Gs9`a&+{ATk zFC~~}%BG4hVb_$|bG7cx^qK(DbFi|Y&@UzUO-aHs5 zm>6uxkfH4zn+$;%ymT?4^tr*iz3=8fFgU2vE0A)II~Sgbq{uE)cx<5kj)`)!uA42(}H zsBG+#o8D>~TjQ{kb7R_O@`(c~;~7#Hl@&o5`Up9!ZH7?YGi&(Rh?r_&Q?6Bo;)Y^_y>f@D+Xk)3>zu-g)P-8*hL0%?EGa{PHVYipO642HIPnzD{xT z)0;T)`{tTKOyD?xG*5g97sFv^BZVsIIk%I_8S?Dn{jr~tA8 zu#dYT8SFGSF>&p|nOCl9>M8m+AqAyfs2M@QC#{Yhx?SQhT&jpvilvW_w;cfbAptT! z)I+wL$`nn&eD{T!pT2%&TJ*5?HzBs@TlR+2&9!a0n>b}n!{w5SyK(hab~gpIwgD*X z2Yc<^>5kRIpUifw{&}OP;J_*HeAw!5RH{l#p{1&@aLMwPQ4I5CzGp+LCjc13Xum;% zfjsw)l_WAkvfV%sKS@Y|n5|q_vJ_k@ub6F=I=%XULptODlF1YK;jp+5;QI3q%=3*< zRw+@|MK;zYs&GU`ohcVuIDR#1s9I0**aJ%9`^xkwE?Q$o*q1FH&U5~0hr(Y zK3IJ}8?2tx&OQn#;!3iv6g(#tRJmZnl-#fiufj52SMuOmMu)V5eoQGAU=jkgzD)r# zB4->0oO7_MWl;63wtc|tzV9Rs?=T_fTV4fT#;pXd6rP6Yc3)UnREYL*odalZVHQ%~ zk&EG&1OxRnWS+q)NQW)m?u56P7yA92#C>Ha6cY0TUvCwJn-3s~aEEw-up|Wwu(6HW z&-H8{a7J(y)^aFQ`fGaGM9Tnq;$2iUv;aH zWwQ!dHmi_j^T!Z%N&YEXm1Xt!nMyMOnCdw~yJO z7Edac0d&_fkt%lCId-gO6JoCF(XM4%?Tq9`g6k(Cp%jV!fo18F5X%x0C>E`L3xGUy z0L0A=N_LqyQ0ETO+n(s_!rQk4&zF>rlC;{DQh^2*_saz@R6L@(Vb_uv7K{xP0M(%k zVE>m;QnJhlrG%>rp=tzfYB4pLPPqnyrD$Ye!AwR^ zLJ~|UnM@`&a(xXGFF*av)YDI0o09+A3*r^F3RyO*kY%$9SvLR45K8AgH*vvN6nO+_ zWf_pm)5rYeu?mFkuM*xkLB#opXeQn+l}5gOU@0RTQKgo0^hjLUBr5vm{QLqpKwq7saXnPy*DR z@QS&Hb@*|%-rr^5MOXBahSd|BTbW$~V7&vdT~St#Chs%=DV@`zZkN-fW1kfgtOuIA z;pE-GRXRyKC4v@n0xuvU*XcWM;FUzqjU5>mM&By|@t&=WJ0t9D4!d$A1JY1RnNR*@j(A7bhVE@zGG^e;6JOdL2jx z&Kj(0>;14=2urq}m(nb63#a8|{ECY(<0qvOv7B_IQd}5vTmp=7;uLFRzPY}g)%Pq! z4JTK02Xg(Od7$hu(0TwsjI_gpVp7?SKw5=8ah$GIn){~5&j?8zWrqin(rqQA?Yb$? z^;zNzKW-Ox9IIP!6yJ5riGd4~8ZZE2caY}8LBpyvj_NXy9*?`ccT{A#adA_HJ&FM6 zM@KzHG>U0}jCu{}pg1a2i@nXWz7bib222&4nBc^KOgL0MHcZFq*oesKE0j}Q7@E=m zP%E#2O9W6P1Au1P6tP19Cdq)E;6&Vyq1l!OpzIK6R$c~i_<0sYHRENL{^pPKt?Wy3 z0rG$M6Xi--ts}j z_p`HL*9{}tXbrkXNY7)WMHbi)M z&S}QM0ZDd5W3q!;o=f+e{(Vm2t5HyuiPhl`5>qS!x)n|Z?lq59xFOVbiU&^i3 zN!frGQ-k1v7b}|=jK2=;E`HQ~2n=5P9SFbZQ3{Kt7yfqcC)=>`lb~i3+85`RpvIYu z`#I`a|;XW#e~}o%DjeH zRnsF!ejXfr!nB!*dhZ*f7`AyK(bnj=Qg|gQeL}1#+VUxJpMy18B#xL4^gn^uRfx>2 ztn#|L$9p*K(8got@dZ9dG>eo+L`6l#MsSn!qL{SjHd*ml0;|kRi(|8n0P(rGIi8yw zl1Yi+aK^tY8X8bC;_~ux$9`N)Y%D(nROWb9@3)Qy?soqD#T7Zis{vL9M$|Y=6;6Nv zs4z8j4>m#_R9RSvf@}8#RJJF$>VhKh2qT7a zT83zw%8|l{s-u3XR7|q?!KOSv7lc6s;B#`6A_Hx-^5(^8md)C+41}TEzWh)I>ng?z z!9+*MvA#3-R4aTAMD_{1HxmxKCMncE;A}USrox-iL4`XH_*4Bt^LNnlUA$e%m)T8g1W0XZ@n>$u@ zkMZbv`y1u7*eSYT;BxTw@sMFU1h53~!|2ygEE%oKeK*M^+z4GjCF0+Pj4u$GnCb-v z1{US#hi2n(NdeFmkiG?7H8o&f<*RjxdhOz+i9aXuyp|%UrXlZ1nvu1Ii@5;$lqi@XiPeAQ#_X-K&Kkl9q^o z$7+(6Z_XhDnw|NoEH5FV-+Bl}2&AM^%Z(Z2=muT=*dlD6d_gd%5`zCbh|73LXO}%u zufn(HO#GXn)57j+>c8t2d{H|Z&bERkyOzQb5O%;NYKz#_##%rz3gO{~5ohCNJT^vW{^e3Gfy&&xEV`OUDbRB{;3+gc4+Mt2!7E{vl3TloY ztZU{59-Mm((ry*WD`r&Bv zN6y${S-s#^fQCXvE>E`j>#!c0lLmJuBgF;oYf3cto4wm5KbJfAeJ{$;K+ z;T$k?^$=UttO-+~b#2}3=`Er@F-r>Z>vuAs`p2{Yd#IoG)z|=!cCa>TXXdkMLUPvY zc*MF~rp2Sl68rat()nTi8w{+Q>?K<3Ws!4|Z+0v6$HWQz-IqD`q^3!#LMz8t^7P_z z9XR@&b0bgAmP+ZyPO2?lV-O-6>tURmY zeS;RI`Sz#WUz!$7abi|BdAa@V8G+(2bnUNEzUi*nchsl-`Xm7*q4a2=yOPRS0D4w3 zTOuV8Pj`}+R7;dT0uS!@l6gP)XBVEB`s)0m?F2_@M9_~&hDEXTrsh@(z)|& zPSA;{@N@Iyxo5gQ?O8pD4P%CwFp?`kOG%ZP03=S3cY?^H7Q3qL1Z|UF zQ!jy!ZZ@H~-C=aUqF$`5vK-fd>LGc}(m3y|M@o{OAqy=FAD^6%2a=*D1whgoFdWA} zc|0ilR_!{=dTN8?#js&>I2!fz1@m-n@vtOolhB+$l!cJvkiYvq1N>Us1c@5ykXtnEM@hWgE{W%DVMJ5lk$2T zV1L_NH@uUg76AnU$BMEf<-~gZ+{CYqBl7#a0;6Glp9Hl_HYEFOc3ev{$$SEm(wE&b zyHAJH$+6y~)sixvDg{Y7CV~QPa!jPp#m##>0#3jYN*w#tvGWIMT7oY2-`)n1f`#|E zy4Kj6;*(`fczfJO2XnAN@}E&Wn7vFtiC2d*zQ2liwCH9goSdQ*4h|2C24cIAWABAO zR#eQL{Ot(5=y&0wa!(&OsZ9%CxQ0i$8*O`wd6j*VL3*nlZ2mRlTC1~99Ig)Y+MTqy z`s((hB<6(l@|maS3awYF@9T8ScnWZ zwY1besQ9$CW3N1HOE?8_60;?=@Pr5up_pcPl%Jasy8HE4uD-W#8t$3{QT~hPmf+h= zo)%I+Km}@aEUV@#eZ3synPY7U>VID8*X+=(>%;1M@XWw_6t;S*;83cy?U_oBZcdP5L8 zcE+B4C#SV{B=AsCU*eA(CZ0yrbC=iClTld=ECKOkl2X?hoN5uMPftx^e4NS++Z*ej z7zKCUHJ+u9_Y!ENFuRkT=6wj84!!%MW?Yn6tcJ$B^(l!j*~-r6dulvg?y{^m3iG7`V6uvYWp z!v5CP#iek6|6#z@-m9fQ<8(~Ts$O?D1GBR$%3XI#)U>p;T6%=I8fX9F>tJq*!;qZL z<9NQko3-z;Eot**C3c?{e%UuwMTxkaD0>JkX7;d?JIR4~tAfwy3q9%iT^?m~?eB6f zHRMf~T#xlmQa3~W)&rh6x8Cwk&2eC>FMC|C&YLP6R+lRNJ(GB258hhEvRm1w7d)oJ zWw^5o-2@b8n@Vw{obnsBH&qLO&ZuuT9uyD!qX27Vk?_oh7I*U{*atT?q+-640>m$6 zaIjXNoN2pWR->YtOb0O6O?RjrrXVix+aYSH=??N0dKqQOK6vY|Fvsdtq;OLnEx%7X zeWzfiS@-KqOH_kX)P=0$pQ{GVmK&|*e?BJ4?-zZYm{ac1Ippu!xM^_OySsaxP3)E~ zr5i2w^YiY(>Y*ZZXeaB@gkVm#mg=9Cetxf(wQ)<32S(2=uJgxcTl?t%QS9bli}|~a zJ0U1oqp!273ck}ik-qmK))_am+@<$2PZjH#nk{JbN1WTAdjy&J<=&Jj$QkZymnds_t-`QYx1|5;VIR`vk+Bt(4eVP%`)H#xdr|xDy z>c(3F-Fd>(2$FqUcg6T1uce%M`}e!FpNd(-+(Z~-ct^e5PLVY}HM+GiUm!n6X7xa9ycTSLDWrS%w?JNtjPP|kRL^?b$vTH>hcv>mK>D_; zH+Cg0)v6iuYASkdCS5ro>5C^DAV`3SlUV5-rm@aWS_8?-B&~zRInDoZHeof2B2GM@ zU@d+2xR6%xw4sWvUlW~QSn#V^^5FN&i0Ef;t5-qo!)N&RfUq7tc{;sQ$-pFTl6%^n zFfSaLSnsUk3@bC^D%pv6DRIhTr^7APmp>Uo_hn}Td>nIDVC>oZvs9%$G3Kic1JxXL zPo_Wv^Ozm05Sm(~13hgp%ED-pzLmf?VjA|RaPg#kJu24voS!K{E&@-%fF_tqq5N_v zFd>rSTt2FoE~!jLG->=;jrz2XGp`JUi>{sXsX($eV2=b#>J^8$yw;VUQxZe@5~zqfF8bH$K?^tfT%U--rnWjR z6y6=bY8{atZP(=1ev{3h4x@PIXJIZpS&_!`^6_^tfUmqa7SM@s3@6obYwAe+TZ_*} zoI-?l$lJ)^mH6O?KKmeAZPAvVaMP+1`E2iL-Q;mc-WP-_A>l}ug0x-+UJwJstCW;yJ)hy^%MFM|9R$j0fF)(ZwU5%M3Sy0m59jSVpH$D!07tX&IZ;4qOey_ z5%2IRZ%?>|%+(!5fB!(9!$?FtpB5a!=pRtaS_aewY(?&TZ`;rn&5{%wbQ!vCbRZaCpxCvrZ6u7%MyUBQW>-tUJ<-2v>vamN7Or-(|w#TY5K*vUjy+CdBLm z?W|3OwS;DoL;o;0_xcY%_(QtQd<=sOU5z?8%w6>m1$;R z?2ee+DmI3Dam*u#==Uy`EKPI>3fFzkPr(fVUJ(aHbXL#>J++d^TZt5K10`@*dzeJa z9tCldA=L7(v&tkD|AZzd>sii*W8XQm721vFm2I4~Bjw#xo_>=(@W<1;Lh maqTo_i-u(=Tgr3k4wxL)94%C+V0ABA;c2MoDt|^=hy4fra__qU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_air_quality_card.png b/application/src/main/data/images/widgets/horizontal_air_quality_card.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a569c0d656231fb687ee2e7e02e3830d56d4fa GIT binary patch literal 1181 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 IM6N<$g66l@egFUf literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_air_quality_card_with_background.png b/application/src/main/data/images/widgets/horizontal_air_quality_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..1479b3a9f4da837b925d682e4d9da8a6e0a6a909 GIT binary patch literal 4273 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 M07*qoM6N<$g4p8HqW}N^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_co2_card.png b/application/src/main/data/images/widgets/horizontal_co2_card.png new file mode 100644 index 0000000000000000000000000000000000000000..31066ac21d28a67c7cce9d349117d12768ce55c6 GIT binary patch literal 1141 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η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 BAoKFQCvP! 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 N002ovPDHLkV1hT{0Zjk^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_cylinder_tank.png b/application/src/main/data/images/widgets/horizontal_cylinder_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..f854c9b58e6962664da823f0d969adf6acae64e6 GIT binary patch literal 2246 zcmV;%2s!tOP)QbzbaZq*Jw5mM|K{ocO;C%TpujRTc`-D3 zE;E8DEqScB z|C^})ikbg{lK=br{O#@YXlk9!)c^DI_qw~%Uu@E8Yn?bhl67~2fPjJ0*#C8f_V4fX z-QV$Pc;wU7!Qqp$z?`1{b*_K}jFXltB4Mx1hTbW&4TwZ8vl za@*3=)l*-7zRzz0cEEck1i~2k&B;@oDh_S$?bze?Ll> zt~=u;IyZ>08bn$RBCWTDII6>g$l=L7hL~|5a>8BTc^{Ro!-KTK^Q(~i>qwq(mx)J& zkgkO^srm}07sWn~xt;<~YU8+k#3AS0Ldm)$Qaz;44l><}9U zpDQG7gYGk6l`0&y%!8ae;&h3UCct>z2Y|evbixz?n!Sr|7rX0HTd=`^n`R%&3GnnP zmL#(Uc z{pw%%F4p$C@?4N!73dD8(b|}UKt&B)dM-%gl~OB@W2@Ep)nAvM3*wa836baL&x`P? zc-D!45;b~KN)_aHb&c1RXM57sa8p~;_*;CZ^E7U9BxZ$J=_~l2D+NTi z?@m)^k))jw;=P5b8WPct?FOc5y`K*vN5^zk=^(11%K!orITu7wc={&pm1EOwAXH0Y z9>}_=AY48w*|KgA;i}Ti0ny~(URVQLdmrn_&H#}T0!8oVW}5-C8R;QfRdBx?fvFpS z-HhZA`5U;n$MdiSE`g~bnkwLO#14e3ElpyGl)y)Z83>>FNDJZb5dL5s2jFX!O$zB> zA)>al_nw6rM1&$Klgpfb6 ze~vB)$s!^7YeGobKwNbla6mMqDbhi-g2<(y zBHzPi_W_2FJtw<_v-n|~;R#a21s17^K>S6D6~=}Z_SXifi69C8{w5L6i1e18hyV!V zqMux2Kw|w(qn5~meVXQ()wpsKZsD^k5|6}UHzILYB(bu-2I5l}VILr(c?OJ2 zVTrjGVVJnxSeI7|(P*4;x%2#W=8~Opi0ZLnUyq&*b<5$*YHW^IhR4h`6q22M(*V69 zvO__4I9}HKvOLr;WtWrKI@X?=24X!$IzMVUWAhg`9(F zo|rwSr_A{r%IR}J9Xce8^+<5h>QekB77RO@I*RY zQjr$mvNV6{?&FD!Mx-M90t@Jgz~TmGu6MknGM0${tv9GXd{7Zyl2o{D?{MD05ov_H zC`h6xl240G9Ffhgf83l8rsaP{p371c0Z1z2h#YN(2>G;%08J4U$ykw9Ar&bhiK<9G zBQ`K1>xk5&!E;&4fAl;FhXSc}NJYXB0=gnXI(SMpYos1cp3PDg0VsG%YQ(7?)*zrQ zl1=jgtNS_eglt(ELR|!CsMMNx%c|{=2384bfWAncEgBQokWq+`wo1Q*!_9Yo!m4;t z+a~lV^Yn{qT&k?NHFp1AuMj5)Tb*9v**KG(dWY0QOlg2z1mC25zsCjX9!pHYX;zs+ zmTx!ju7q{M6{KbGESzq+Y&E@Fx)omAquME%Mp;%f)#(>7r-V|w@lWHt-X+TOMp+gR zD?CDNe3iAU*_E)(=kIm28-6gx!NGyy^b}cCQMxKV&S?b+aV&xmrZODI!vEs6#SiQH z@i~W7adwYgU?VMyGkp+d95Z(i=1+TfLIVH{10b+pQvZ%;gEgE36o6p}jUhCK&=^8v z2#p~$hR_&7V+f5QG=|U^LSqPxAvA{27(!zR&7qLEF$mtM8_VXtGtr*x{asYf18X2T UTGrEmOaK4?07*qoM6N<$f+wO-2><{9 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_dish_ends_tank.png b/application/src/main/data/images/widgets/horizontal_dish_ends_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..0533c0e51040220723f52d40b2ded83bd0dcaefc GIT binary patch literal 1964 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 P00000NkvXXu0mjf{K9a7 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_flooding_level_card.png b/application/src/main/data/images/widgets/horizontal_flooding_level_card.png new file mode 100644 index 0000000000000000000000000000000000000000..98c66b55feddfb9c43cbedbe11649d9cfe958e0e GIT binary patch literal 1127 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 RJy`$%002ovPDHLkV1i$*PQ(BJ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_flooding_level_card_with_background.png b/application/src/main/data/images/widgets/horizontal_flooding_level_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..fc72895deb7cf4e89ef8ab17943cfb5eb93bc725 GIT binary patch literal 7495 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 RdjkLf002ovPDHLkV1ilc!!!T@ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_ground_temperature_card.png b/application/src/main/data/images/widgets/horizontal_ground_temperature_card.png new file mode 100644 index 0000000000000000000000000000000000000000..2f68f572d3bbc583ee193417f0112bfd1250024d GIT binary patch literal 1160 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

%InRzGMTAp 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_ground_temperature_card_with_background.png b/application/src/main/data/images/widgets/horizontal_ground_temperature_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..1196d6a035f0399382e14f86925f2037517f1270 GIT binary patch literal 6130 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 Eg30cW%K!iX literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_humidity_card.png b/application/src/main/data/images/widgets/horizontal_humidity_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a27ff4899946c6ff9d714a3fd15d1a281db0c9 GIT binary patch literal 1075 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_humidity_card_with_background.png b/application/src/main/data/images/widgets/horizontal_humidity_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e25a546b870443ca230d0d059533ffd2dd584b GIT binary patch literal 5982 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 RK7arK002ovPDHLkV1h(u56%Dp literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_illuminance_card_with_background#background_image.png b/application/src/main/data/images/widgets/horizontal_illuminance_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4c91d53fc98f6f19e6ce61b16a7a8d22008652 GIT binary patch literal 25345 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_illuminance_card_with_background.png b/application/src/main/data/images/widgets/horizontal_illuminance_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd83aa55fa0c43877b568f2dc5e56abd97a5dbc GIT binary patch literal 5334 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_leaf_wetness_card.png b/application/src/main/data/images/widgets/horizontal_leaf_wetness_card.png new file mode 100644 index 0000000000000000000000000000000000000000..7b0fbce77aa8165fb04d4d4c3f18b3eed8a2ae37 GIT binary patch literal 1020 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_leaf_wetness_card_with_background.png b/application/src/main/data/images/widgets/horizontal_leaf_wetness_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0d08599b9354965089a86ec0c28202711a6f3510 GIT binary patch literal 5939 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_noise_level_card.png b/application/src/main/data/images/widgets/horizontal_noise_level_card.png new file mode 100644 index 0000000000000000000000000000000000000000..66387b77134428e5a5f27d2e5d2618f7f3aecf2a GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2Q!eYQ@lJINX-fG32_C|_rc%+7yz07|NnpT zH>*oZN}fM|zT8*8%<436DCY}`}XbiH+$#Jn|I^Q-VHaaS6s`pv9VdZcCDhKqM5FmC(wOtB|(0{ z3s3X4$RyxYI`Z-1vZ zH)KWViXOLT)mKvQS|rDbwViR`2O5S69w^uT{*-g<=+m#^=DYr^vtFnC>(igt-S?*Y zrz`Aw_4TFB7r{%0951C>N_d@iu_?wD2YAd4cr>xld{Nk@WzVlETb)X8*`arpb)sFc z^WB@aJ6DfpT-0fD%Ii{p z`I1$7lZIHD%+8}q7Lg~Ivk%QlPfdSVccMX8aG$JF#RlO=x@N80mzCx^?O70c-}a@z z-k9B;|0eyqW*vH>p>^}B2!Yl#vxg7wD}KJ2W0_u9(=o-qyUMpU{Dg~H>E?--+Fmdp zJhoPNuc!L$i7|Ix6`oS`t#A_Yw_LXN$Gw|vH@3~NtkG2|nh1#Et6;}81uH> z=2Ox0lk+xr@N-@icAT#^uV{z3(Gy2$qd$8uyqs`5(kEs93rqfawl_cjoiJy0vU5#U zWBum+4=!t-dCSLPtM~Kbz8Mp?ZdtB>YeK+>w;L6cr5Eqd58AY-W6?e%?%J-76>Ge^ zE|pX}=QqHMe38&6+IUPX-=J& zI%Vlh@m}MpDnXUzr@A{rURK9>?c2mY<;#ozyezMcd%xoIdl)w=7aLQ*faeYqUcexgvbcJAz-U-%Lww(DztJon3beO>(uliv?;Ew2Txd-kf;pcOsukq?`PiHW^*rm-mHcUShNo6mnfJ`{kv; zT#lDYuvFJPVcpB`>&`vMEmQjMRiE&H=Uztt7k0L)`}*$JmdKI;Vst0Puki)Bpeg literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_noise_level_card_with_background#background_image.png b/application/src/main/data/images/widgets/horizontal_noise_level_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4d9a954f3420711f9e7d7e0a3f2c47d3a73c145d GIT binary patch literal 37874 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%0A!y;bc!b+%ga38vX{lIN{!QU!Q2-Pp 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 t9A2S-e+S9B@9ysR_xAAc@apR6>+9?3>FDR? z=J4lq*=;tUXDCOki;o#rc*w)a{&(6)u)z#F>$;aQ{-QwZl*4EY8+1S+7)6vn; z($dk?)6&e$%<}N?`1tqZU0O%F4>WzrWDW&D-1A%*)Bc#Khg)+sMbo&CJTl z$;sW_+{eeq%gf8Vyt^+iFUiQqmzS5gx46#E&akksEG#S7*3`(!$h^J1#l*qq<>a-s zv$?spwzan7;^D!;!8k54+Sk^or>L{Dudc1Gs;a3nF*38Vv%bH+t*xt^o14_q(0Y1$ zrlzGTDk;Lk!ZkHDnVFfpy1IaXfufAMgMwC8R-v7l zpqQ0#aCVi8h;?;)z`D7Gg@lWXjdXN%a&mG}Pf$ZSJ-W2Av#_z4j*3A$GFe$!wYR*n zvbcbHeLgrZJ3BiwD=OdJ+*VRbK0ZFTx3iLmh1=WP+u7JgKQ_3!zNo04l#-Nuc6eZ5 zXk}$(Mn*=XqnLbrf^KbXU0PCsfroZ*b8BmBiiC$yOGDMx*2c!itE;1ifrEK@e|dIr zQ%^@YI5<;NQ%y)eetULwacO60Xl7$ujEaPggn@&8fQN&BT}eTknU-s7a&Bv6U|dx| zKtM`FJ5W0@s;H!-q@TjW$7Ekts;jcCsHv{5rj(P6LqkKiu&!rgXi`2mv#hG8pPgl1 zVOK*uJTxpbGAl_wLQ6F+IWQ~J&&-2=d2451n3R=|iHl85O+rC8zQ4qvpOcV|h;C-MKmp&oR45wTw7CDW>ia#jhAUzP)k)U{}%iP1K1V6Udy#Hw}Cwn-Datufdb zR2G^PiKL*+5-7@GMqw}_lET1REYgW?HlM=$Fj*i46;rH4G?{IJsAy4igC=OJAZ6$O z+^B8YPP}=267>1yod3Cg^68^T{rxx|y?Al=#S2`Msw*oin~lciSaU2E3j_jwAKmf! z`~hD)nb_M)B=&Ie`~87LJQgVw6)Yfb;UfXp0_8))L-n+XQ z4kfx0zU}SU^5WuR@3PnH?sfMrFZQ}z?FB^*R!v!*$Kx@G#J$T{;P&G6)>gaDAr?Vu zbzxzlSm!9jU8Pbe6qVvhrO+bDK9hC!?AePy=H}++&PNc-a0@#CL=tmDVh z_>a4I{+lb`$)!RyezS5F6UX7uIc@Fk#g~!omG18DzMh`pXV0F6LYos46Pv-{cljj%b#!#~3^PL06T#rb1n~(^wSmu@ci^-C z{Q3O){L<3W{QUab*OwWL%lN53eVJ5$1W4Qe2p3=?I*-^J*>v^ynSTd4?D8+?VGjjjI=d%+BfCRZY zXcc2710a4*}8o#@CmK z#idK9FJG$14e1cjC$Iba86e`s9E95%eN83k7={c+qY;1t%>hIl9RP!fBS1bN@&$Z} z_?>%67il?D?*Kz5RS%6}N>v(G*|@%eFh62OsgzkPG%2e}a6 z9SD4m0I8hb#g{AH9tNnd3s)g>(B#w>#md6M0_eQidP9JoFEKuF&<1nRD^mUGS3IH1 z9|G!s!lLd4gqx~HO``#TTrPv20WuJt0OSXl_@2KD2d~7PFK6O2#0L)Q>q~Afw1p>s zpPZWbX(k%^_Mcl#|8!cd#s@>0&22-MEKGH;c~YD-=SgsGy)gDifL`Mx>h# zbVzCu6Go6)3`p<|5J5_*MIvD%=vPc2Y&g-O5%dwDG)lPiYl7>!$Rv!PUnt(#uz^Rg z?oc2^hM8)Ouf2T*9`$b_+`>ns13-VlJP-lm#Q;@l;GiLcVTc@L zG#kvFre-60L*19RqI>8H{yo1Bf{kWsJu{v=cQAvxy1KjL)3EZyWH5L?ez()Ce`z+? z)>#WQRaULR&}wh7*>p~bv)ODdt%jC{l41n|q$v8T;3n>xJBM2AEe2YfD;fP{+pk6wDH(x=8J3Tf>cQ$K8z-jpjF4=6No32kxqQr+tbp( z=R-i?lQNKi_z)n8RES@W1|$!NFDV0{(E{8X1X7Wf7xU*>h&5;bj{6z+c4>;I|zWYb6;Q0v9&`=VIe}5}sRH-`%*($J}Af))FAbrjY?cV<;$``~p1p4+Lr4|Md z2wkTc#Lpj=Zj28jaKs1}V&g0IW&)U6!qb7+1Y#BYd{)+X*>a1JjGmugT#SQiLP>c! z=d^p>i_6>HP)82}j`-l@aCU5Dylr8$ZFH7;!rmqA()jq(xskc?@sSP08|M0c`kKa@MWu>Tl0vLt!@eAo)S*+MmpL2`5JBLH)eM6af1lVQQR>j} zyj}p3Dj5;r!6AaARNyQ!nFWBLEcoX<0m@66hi}cid3Zp03UnawA)#Iihz|gz_`J^u zK*@c~Sg8*=v=G0JJ`ok0CES^82@;M00-gL)0LsrVDJf?OM=g#9&>^585^j8q@@=#Y zdOA0-HZnFgH#a`=kjBo#hv?UD2L?tSj;zB>1CRNPJ1hx*0g+ZqfEob^CW3*=TrQW@ z)oK7I7o-Op2FQSW2BTrf6!8%sR6D={rbrzWiI`&%C~B&#tg>3Q4ObNv3gnhhNa<8j zfxs?T={O8~kr<8vEQd<0R;%%%upC7|C=-eucDvi{5UYVlDur*9?7%x@GFVM!vB>3e z&>;g+z-6*CPTF+Xhgl;9h^jLMTwWdkF+9`{u4Rx-SipS@2t*H{@DD#8Lm&u8QXf1E z14-l-DXR$i`8Y{P0s513+FXk;5YB?ovFSevEaAeGYWw@|sJ)>b(EJ%392*}SA3!sJ zd)5Hx)!TuQxrb}Wx`D6J5P;_cKm`an0BS6QlYpvB%jgguvJ!?7z@X9T;h>=wbOlo+ z5CIo+%nbYB47Sr`LX9xdSreqOYV=iF?rMH%g`$*BS>O>lHW*;aITZjY)l^GCiTW9J z0TG9D36WGN5GkIB=}5}x?#Y}`6wra8?FOrIs#Had|4Y1B8tbO(W#LXeC9j>5PUXm+I#i7 z06KRIKnKq^|D@o9z2>-qOs z;-_%3sVQ$Y(dKe1bNQ7yD?Dd0fKU)h61Tnf9-dC1Y+iB?I!o5_20X|OcNU=nqJ4iQ zbSSUaTfsF=^h3ri^L`r5!Ct`?P-uD3J=x{+PMqvsv1W|`8f|tS>1!bN@-a+h0WAh$ z5+x2B`IrE~_Q$4QIe_3pL5PB-lGM9y@bs*I1w{c!3tq;-At2)r#>of*5MvcUxP&SU zTse{nx2&5p`#Djm7}_0MOb&O60O9sQCeY^}tUeMTAflJ;y0so`WfT<&5@sY47xsTC zb{5)N+dKcx;(99}nw%9zL}BaLv6Zk2ThM7r#$p!jj&m$oL$<&iLPIbD4|1Up&f3k8 z5t~QwU=il7s3S6*S%p6c&Gd6Wsc}A!j}y1oCF_jtcbEfBsgaP#XgTSD%j22ocGtyN$J^emf@1BwrG zMiD>wKsF%wOoxvR$R&U#S67GNQw|0*sc?$~FONQIhf|ZF3L?XP*nGbE;m;d)Z~T-A zM2!8+0D@0jsmSJ&XlTf0(}kkUp|{y|njZI$f+T7IL|B0E;+Vyf5pnv!%AV@fX z`bjx}^aD5?Kn`#Wf^l%*p-_+l3Q3QPMk1Ltsg@kkwN#tql0wG|bWswn&&UR?BoH9$K(0m%RwGjh84YXEhxr+-^814v8h2%o{mAUJ?v zqt&->-+ul3I}48~gQiC+Ap#n!4h}%_b&N}xR?QlOJ;?A+I+v@b>5G6i5qhDZtAxh_ zi0q)b^(8y#8=_H3N1wesf4-T)Bz%C+5Oo>7C@by4W=AG(W-LbK_HU>5~_g< zWWt;bADDq>C4}l@v3f~S$?59r>k*S+krU&Jzn-dNp2+=nL#NiIfPC=LfnMR|qI|sf z=xo(za6EVO(+BZDw8LmL8kp!=Iyx?%4u=p7ruNU&`zKs2qhBQ;>zW!a=9FcWHNNolz>q{sf={EB&GV1Q_=#DL_al> z03jX~&N={Db*Vc1b4W)Ec*K5reELX0GUrLtN69c^5ZS#OK-4t} z5XJ$^;6ZQ9AJAw|F@Q!HKx6d@kkj8}RQv;Im;$2U=EvLCD-e?Cz}2P5^>j53iChX5LbXV%-!y@O9TATvJfhX+b$=y1j3$js(L z!KVix%4Vb=Gr$1ihv9>M;3F}%4TyOPAU}ZO(K1myeCpw|=st9$z3r6|^lqmCbgHA{ z`>wWvEIn*JorO~S!SA~OB>H*%3rrA6&&clQln^M80uGWAK)n@E1OY`vL79l5B%UE@ zNZ}cz@nIEm^fs1I(NQcf>k)u*>+&nC<#nrQN-X{IBu#Is=4Cp6^#2V^*V(E?L;@iI zDVbV1^HWtIIx{30=`@y8|Ky3_gECCyv!p5jC48t!vY#4Rm;lW&aLxb{EZ`B3#~VjK zHlKe5L}{;6LUyb}DSCb0s!uGoPC04-@nry{0s;^YE+dOy&Eh?e=HJ_XlNA*>d(|Qw zIel&4##0|obv*s{ojAL_tI+l3z?ZHr0R))Fd8h|W^U_ozdnXGKt%ih5AdwL>C>p2= z0f<6G3draOD25KbEiCGZ2_TKP#qP0^vBjDW*R%o;#$JkeYAd;qI(PuX_1J*4IS4V) zP$f!Qn7)h^G{&@`Q0)h=M8LGFaAP#Bp*I~=ymq|!DZtscQNNI(N2 z>4AS#=J+?Iqw{B=!>7B?*$Nu0C4mt&+^j%H#bP@yTLH-g3Uc4VH8u5%_sn0vnrCAG z+IeKlCI}sQ_wMZRQv&Ei$2Zc1!mDCeSFzC5)ph>juh)(98V?*0M2)z(EFSK08Z4km zC?ssdg*1SAZK$f684XYoG$c+z>BvBmvTPfdgi~%MCLv~7v0Thbg>&^aBzEB>3gR(B zFg|%&t&DY_C`b8FCX$(SbPQJ~)SzP=>S#(Izu_hnP-tr0kE0lkZdiN(hXbTULx8c- z$OgoQI?|C3FOENaC=wyx0~CGIJP!kZEelx5mRwS z`p}^Zq7!U^ID~lsqtw6gf||Iv--MiPXq9ys#;dPE(F-kdtgN{x*H+fHvQm?j=*_fd z=^}f>RzZ}dm9C<96~uM zE`hEihCbw(;gEHw6)uqKtXI>70XZu5zzcwi`Nw#Oq#(Nl{~VsFWJI64yDkGXJUlD~ zB|z)fKS>k+x!Z1Dwc_xfu3~Fagk~N6ZmK;Wl7xm%oH)7l09~NT$;ofFZJXRj_j`1- zf8W8~Z@-N_kYX@x3&%uX8PG2x#Kqb$3C1Gvs0>7@PRkpF zZa_fST%(<=*2G&0iUHDr^MwF`g$WIYXc%Ieq3r*~HmIp{a) zJv3Bb?jQ7N6iYWV7V}jINi10D0uXLHJ`%J5)KCG4GlPVLIM`=LU5S#U z>l8#|=4Ju9Yr~@xgffxGehp{@lQ4C1ihio6dJY_7u^SwP&u2>%hGa(&a_Z}of=Emb zT$~kzk29bv;R7Hp1u1!NFs+4^c**B!%R+j@{Vi>2sQ0$Isos9r-p$&nbHIr!|Ml1D zFHpay!i4;r!o?j4FxO(r>kVkwfV^1p{jJ1>t{gb2#GVE)5e5|RCBZQt&dvduPrd^x z0^(d9kbXc+Zc~J#O6tgzUk{%-e+^BtQ^a_XOij2K0pxG1D_Xt|e}23NWMJ z4AS+64|Qz3_FortNIH6Gb2^5gz|z;}9JEp&5QQ8>$Rg;R@Nj0OlWf+S)>`Pb(Muq8 zpgWwwym+JS4=kTxLlcujcEyuLf=_WNZDH?{hR_{&tft!L*4kR>r^GX>;Whh*@NJ&e zW!y09YX>48aaN=u(TG{wBj6M(aA|3agTomp0L93UpgRL;P(*t=g#k(V@F4>+>igs) z4?puv1_(m!?Gv%Yy{VQe0%D0fL8%89H~R8{AE4AvA82%js@oc&01w_^$(oLVG1m@g z-3ivpC47(oNeyih&o94-P8*Ll^9e{ilyiu-E8E;aR5?`hQcC4YD3Q;#1|-Rlbh0R4 zw8Abz?m>Wv*oGQ1-w%^8N_KprqY`DLALo_OMC?cTh{!Qyl=31#_O-cvb67vs!h8w} z3O>;WvgDn8geMj_x^(b)k`%-eck^bTOm4rm4?4yks!E|?*N~O8OwRVEp9B2(s^Rczg zc)+I!hzLM@D#@w9$ADZx_#Z$f^%M&Hs|1KUZXTWZ z)q}sf!2v*f#$~j7_8ZS3ns)>n)g#e1^&Y5?Lid+5pUrIh>j={$%0Chory?M!$45|r zLuNrm=3vvPa3>BrI08cA;VDyXNL(QjTY@YE3REx>8Jak8W+j|!Kn`1r@aGqIm*$qF zAdiI5(Kej02N|HUgk}SB#OD;n1+Kv7e*h&Lhkr94_qi(o!N<*124L0;(B=;i(C5nm z^vU7F2Gow%CUiKCg2sDyZ5i67zTF@D|JeV-Ab9#mXZ-f#tTEXgzf(Z{l3oOScnt@q z9ypg}K-layJTmzdTwv2t)-F*~5h#}5;riv086fPxQ^ z2`KcVzbXIMKC1=J20QBUNkE&Q5g;jOFeHl7p!B?AoPUQ1*Y%;SeT! zR0>)n4huWR1`aYBr_S9GD8~Uv)_Jc)lgMaUQ(G4}K_~eEXN*|XqzVND zJSafWh0zH>;NmDW4)(9$aBJTwNSw$va5JFRZdSQg0m4|jRgmsF2tdmI@$L&zrAmnN z&O5I#FY5O7EPwsqfGi;BI4mIA4Ay?@4n}=1NeT)9c`7Lc^o**;63~jpPDAS+<$i+b z3cY#!*q+|rahzPQ?%?{CJGs+XmBYK@hKj+O6T2p0?5Fi>n%1{DC`cfLw zkEP-k5vJJ&TTqf|^Ytu1XF(`OaauxqSmwr=U=$xs`LN8XFt@E^jNaUK0zi`tCj_6rNIok3 zl=neIW6RRLd&OjLl2Leq8-de!HA~x^h9=Rme5@Wvvnx690YR8)rHf@c$P}OJ75oaG z;S>@iwy|~aa3YGzg8?-+Uwl44DFf6kKu9NMdc!|kL57l(%AFc)%2NfIpp2(z5F)A( zN**o%$sp8tf#c@99o%igxcsxP&0D=%77jpO;kYFg1%1GsX^dvvO)%qh&(91%GnN3J ziRqnP8;|V~A2sgAS?K6K^b8GsJw;*8{h>%c^z7&k@o)p2VuCh9xq^t6HUJSxJ&}BF z)I81d5-#waAXZRNdO;5krb*vLU8ci4W)i z@Ev>%NJ|@@j*|ch&m5{{7d3@?2-`N^LBGx2#Kmv{5hr39*BXH?01^-3;nHN{LmLJ{ z%JW^lN;&Gg)Oo5ZS%bJ4t~!_82P8hTFd5HmK91^q1gN+JQZx9@9FPm}7s+F5fTr@KkP~qAR9Nmg@pHz1WS`Cg^1h@aFvmW45Zmx0$e02zeH~G8-So2PnUna!Qm;!{IFC#Wx(es zgisJ@f=~{qF#+NsD2+Lw;DdZ9ZzMkH&Rqb7cmfE=M91pk$idoTr^@iUXgX}b#R(L$ z+}hddlMsRPxs1GZI|b1-wX-HpDH22n$b7PFQ^|+WezQ6sMj#T)U^=_5qly9aX>`?vWBFezlp8T@s!-r zqj$(7h*Ay+7K#Am$N`o4q>>p1&aNx1Z4m+@7`il?cqAi7`Z1to-n>RL)EbhBtqUzi zeu9u!etCDU4XA)807VWmAK@sZ9bVvA9Z&ge zaWj>C_FFHM6qamu?(hws0XE%hPq#>*Tlx+4H z0uz87iBS$HT#Xa!G%kWVhqF?$-k>v&l2JgRgcyx4hq0?R%5};0}-I-~%MtUE63`C1# zU|QSw1rNnOb3x(E;7l04U=Vy=%i0r*;pQ-7+y)ND^QG z5aED=P~1o=I-Y^2IATRuX0)5^5Xx{pSnz8wPwMOSkVT`-W=}*WAP1CZwF;MnCL@%7 zTiv0HgU8l9v`$nZpc5;6PCC;7$z_w^!o>;DJ4$h!3B8#U)s&&W!M?%!mF0#%8ebS% z7#|%SA0J=n40YyPBO@bYi0H9i2(5|GyR);iJl^`9Ot-Z3cq1U55+L9C5umhd>iUV5 zDHq>k@5pBJeg?(n=Y_03v$mBpkp$mG}^0wJVF%$ZQcg zlpO(qC-f71JiS=~qKOcEP6$3OAl0Bp1c(gBxu7>5Aj1V9)#Abg+Dmg`6$H^OxNlZ$O8;TbN@CaxXbYfAQB;p(EXS4G5p+fQqX9p zJ=E^BM;BTx>QL|4Sg-g@zq$A(h_G`^E&OSrgIzy)JFWuA7pHJh*t7T~`=%YvIP^~V zMK4YcGypP29!|&Cm3$P%JPt{D8H?KN!S!L8no^=g?DH6%l;E6C<_7*Vp_~tf#`*Zh z;u#t)(h9ZMqccKr=P~iQ*H7m#5DlQhBHY61UDcpx$Z>bxFDD0}QP6Zc$Y*GLbbe-j za&km;NO5=t%-q@fk>T9IrS<`H>wzcwEgl-?u&=68%68MhQ|&E# zmJ1a*qM}>GLyfybc!|(Y+S{?Ggsjpv$oP0P0^%dGTgAVnQw%+p-qge{`B(?eR;Y^L zbDG9Dbt;~44@ZWBkjaMx$5M5G40k^Y8Xg}aOhfbSnNFuQGcz*Ty9gZ^5sT9s8&o0( zG|Q^h2nC?C3=o7I5O5UL{wRCVy6;!UCm_XudQC;}sadcDrzFHAVa1pEK^$+47x&cR z#~J`Rqndn(j88;!mP>%57#8Q~u2BVw{1!)n=<%FTwh#meLhx|~MT(ac8F0BW-$(rUF=URzF%PXe?yT>|=2fLuWk5+DLbXvlq>S0JB0h-uODRkywP zc$KcKN~((T>Jxm@RDc7@2$lK8>_S-bgKSMJ=mz)TJfPE<-WvDes^MQ&_!NmY>?8#U z0ZBp2X9u6B;PcXnB_9BJiqk5nIOC>cIWlqAUM~qbAo$QPr3B&PAVd+uCJc2%2nDt0 zB_I%ihgzgH(c0QHDee(yX_y|w*4@huv;3N20z{f5z zkp|l1AByc7(aFNUAwmiRR4Z%AN&_R<#B=H2lC$o{r~EnqrTXLgfsfraMttlvw*h)d zYasX-AlFX_h>>VcSu4Y#pa68U8a-0bGku`BpByKnO&MYh1Q-g?p zD9u#cljCg$R1r{@Ndw-eKu*ZJ2sBDhi&LVMAX1#> z;p8Er!cLaj-bL4>TF1SADvwb#`3As~cLSlMDYTZd5YK|v|S zp&(0giH`(iz2)pqpIM~Y=$ub@gNT%2(kedva5zH!doNj5}`xyz;o(Mj+&&mi^3_^>6!uAOomfZAqV39_QcR~5h7LJX4s&j&+Z%fy= zflme~7V<>wWLK(JL8FmRK4`G}e*zT#T6mm~3kX0iAln5pJO+q0YVZ*t0uLuXkNOcr z^9Tfp@CY{p2%Fu9e=GP5qaoI+BBYjfr!_w_8Gw*dQG(u_-dtOI{*#Fp1&E%)@7|Tu zDenM8HvvHI5{e}%e4>Btd~!g3tRqF-Va+4-la1XHmCk?4HT-m-ku}hF4TYkLhN#LX z*fax*KTT2NlM-A4gn~*w0%QVm{lLcoiBCT!P6rTWvIXdJ3tHJ^xo0&0>lscDPdnUO=B)YD6b%V30HvGH$~p$1WhzkF z#b%Qs^kaCUlMNqJ5T|$T^t&8_2Y{$Ttb@FdFbtuOJ{o>*bO=D$IOq_xdjJHX0Hh+c zfs6YDJ}=71O>J+jY;hRnhNK{~*{Mm2g|i#Gqxr_|=Y1THN0EvOG~!hikDlUKTOClU z*apGy1`pqd3sR0oaGXzfKoJdm9FX&g1g9Ypzddm5bHfKf(S!>?mq$b^C+4vo zkY_j?0({Ex5G_msP`$upIjCTjuY8P8gcIT^P&uOD;a@q4OgIjQ4F5=5vBJq{odl7MVPoo~_!yv?f>22bAfrT0 zcRI~{f>3_Z@^Lmu=&68H0!lC04Nye0#ZDunSUAgYZV{H*%CxvZ^dM^3R@z`i5 zXWQ&BXaJ%Bc_TskQKQsar30im1cb}>mFmzR^Iw0(8=){mub>MzLg*7&j)l+$fr7MD zoxo>LO~Gi1({`5PGC=4D0Tl*L^E=w%7NA@{2>@3xi@1_;Ei*uIZG(`a`idbFkx7xi zXm>tDv&B9*0g`}{MKBL%x8vc?X++%KPVxyp0f<{i2oU!;=9e4-tvDlew*d+#_ncfD z3et|Zw(G#7{RTY3V{EGe2pwtn8v&WorXRPmO}zj9(ya!FMgoA8;k?PC3VHfClmKNuvpt z<2IkS5t0c9^!_%CR+cUfK=K_yaD?;mNh{q8q0-_J z9|v@n!rP?YhI@$oCXa26I0s~{xB<&?-s{npD)R9@LND?W8i_}v35yW2R?qYX6-ayE znoyt!t#GpIzWcOc2O%a#!eb+$un31+1CPv&-lD^EF3;MKPH@iw z@i`((aOt(2j{^!mSZosz`f-QtXYE};$zJm=A;8fs+kB%z4$c7i3WyqXhr77JK22Q} zIZl8yeFY!399WwYfa#S%7*mkn)GW0Whlg{Uy<&rM@0&@e0Xp6nK|Uj57MpND>5ftV zs0Vd9)d!%vM}SN}ouXz5;zb*8CnhE}J~<%w94WyiK*+}{kTrQ&0r@!-0jk(*WjNRX z$OMFhX!DeSh$=Nf?k(7$#^WSdN)t|9N1mqbG7pFl}GTavOK|pLbXsZE0UV>uMHvknW?$8RL|IDX5o>V$=K%o*v zcRt+!l~PRl$put);jSb!CK3)V6(IQo!tdw`9?Ni-*(%lc=?E2|Vi`o-sr@<#(d@BK zkEX6>#7B7M3jIuf`#Mh>>LR#{V=4g!sn@eaKU+4NeV}k~;o-RJhXYda6d>QDu>#a& z1F~`S9qFXY*HkQW7R`~rTr-|#J}JRDAQd3v69z$32r(y52$1p{dq4rmcYz215ddNZ zBtmEhKs=G+q#i!BSOpMMah*1Ms_;>VwD%i)l3xhzSA(Sv%W0Ju(S4 zbOj>_86clkv^lFVaemIan1(K0Z?kB+C$|hxT}AmT+4sAvCyyqFnCegP+22RUOM@MJ zm?L!qCq5-0w&-NA9S^$;)kK1W6eA!bB4%0L93 z(jI6Sf$Rn#`a4#BY`>dh4c5(;#}=MZ+6e3Goz6OR-~*tMxy88>(CeF8Q3&NPbIJ~qOcf~j2$1s$ zK+7L^dOI%pYb!sOc=dS%KK;alw|jP@y(2=zxG{ zt+!Sspw-9JKX5$6YsAN_QCS25i0wM@*(S$HL8qN&yFu2iX;A$fSOjaY4^GTdq9Fx;|qp@z!Q9;02LL;cDa#{8l>UhVuFX_qy5uI z`*mYQZcuIgH}EKw-n@N)Kd=I%>Z9})yQ%Q`NQ87is3SnDL~DIj(~8p$2t34(A3y)1 z6hsX|K=KGam0%lozMbmJpyLP!L}u>M(NYIQ1xkQU&I?cuD0f;3P?v(ir$$8e*L5Bd z~YEu2*!LbKRPZ;6i&TUi&o5BX4j5YI=K4*xaIB9$P?$se@%1*6aB-dxm1x8vbS zfWRXQ2cQ)cBs_Y9Cje>rWs6mlP;sPAcX>ayM+#B}iUWtP9wONA=n5!9QU2bZn0LlaufWVW=&ov70sK4X-v0K3v`wOlg_ip_NNVmoYkkRp_sfv%m5goL1 zH+=dm!Pz#$M;N$|{<`#|zs9u>qyzZARm}lYGYXO zqf7rH768;~wdScnD5zC55Uhm_9}n=DgHsdE3<7(p_NE(}i{p(>cw<@Kr&YHWDc&IC zsVk58kRn6}go6fQ5%O`)6y5nW1Bxbe?&Bi#2a=8{DBp?&Pypn)3wD0WlAY-YNHPf! zVn&4g7XFR==KI@DN3%Otd-{#fb=OHf*It{P8+@<^#s~dqkVgXYnO_Db3j+#c=j>y2?4=J^63W1 zuXimn8Z}RxH?^A_2O>?I5Xs+%Stxbolxrdje%V_%dAd9KU?^SF({oG!iZcw}JMgt@2cBe|IdJ{s~{VltcEkAnO8--V2;xAp@N@zhgS z-gw5c1Y{?I_}l1;B+C|B@XO9ux)hPZj8Suq$Xu|v)RYoW@hyGnJ%GwN$Y507BerQ# zmejPD<8dU4L#aTNp#u*^Kt3mbIG{lg zxqeiC*q?iDd}wr>?1nM0Q{AoBy0Nh?Hchx`PNr^F6C59O5^Na+qU~+o7E*EFF1x+` z^2={LNE?IYGH)#RD}b(qkV)up1Oy*8Q3149wgQO|9|zQ2ewwPdKg231K8(8dv==F_ zdI2yjvJak`m@T-YRk^{M!hb9U7%iQt?f`_v-SYB>1bJ=w7)x$+c77#_>T?Nf_~<7J z^}y!=?v~{D;<@de=!?2FAndHk{R2VAjsp!1u|+qoO>WKt%>al7Y0I-)(SwtTTlj|-p7ho0>9?BU;sA5RKiOW024V%t=)5!y?az9O1zj$YxyL3(@d zW1ip|Ry=3eh8%xA{*on`qvGi4BjyVpwX(yVeEpr5xtHSGuz`%TkuC6+Tc3(g*|?6@ z!7zAez3E){yrx9veT!~vRr2wGkdB*R5}eR$AOHBHjGXOuljCINwgIGb_yGFhyI+0= zk4WC^^+m7%Jl)dmp+F*A?yupR8BkBMLt__5vuHlkgI9 z(RIKkJ&AEoBYpB-)Shd=v-}}+fCC$aTQ+%uqmj;|YPj{=-QRdT{WkFfA5Z-J!w=sZ z9p0n+JKm-nH_aU?e$)9z-%)^$c71q~HK6dciG}uz3Xjgy*)TQ(JWMFEG##5JzGZ;N v2IVzJ%KjX>u?{K9(J&m-B1=keX5;<_tId8IN%WdJ00000NkvXXu0mjfrN%Pz literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_pm10_card_with_background.png b/application/src/main/data/images/widgets/horizontal_pm10_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..dbfd5905f05cb1fc353e7255d157acda71de4d3a GIT binary patch literal 5294 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 AmH+?% literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_pm2_5_card.png b/application/src/main/data/images/widgets/horizontal_pm2_5_card.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6ecae4fd7e0c0528949e5b3ed2414fd852420b GIT binary patch literal 1088 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 d000007zNZU!YSP0(3xnN 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 V)s~Rlsbc^D002ovPDHLkV1n_9GROb` literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_pressure_card_with_background.png b/application/src/main/data/images/widgets/horizontal_pressure_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7f6d210c6ab531bd8f03732bf0e3db8761e08e38 GIT binary patch literal 5886 zcmVkc<>AptVtPekc~;x-s6_7z2N5Q$icDd0+&NaazrUQYymf_=M`C!g zxxBo=xVOEvX^Nk|#mAYivv!W6)q0H6r?Q%#qS)8W(Ye8=xWBZ%x{;@~qOPrxmYHpW zkK^Ou`HYUJYBuE5E3m#~_su8W+evaT zm71Pqe2+^_PqxI#mZPWb@$=l?*TlxUgrm8ImZ0qB*yPUE+sf0XtFG0Vr{RN^Hcn#Q zE==d6u+)&B-BN2(|`Y(ACz&&E>qtYLBSgb&2chM@3caeR8gm83s zKte-o!k>g`|*JF7sMO@t1-QiVk^Y7&1R&IE4TNMBR026dlPE!CNARr(hARr+9 zK;KA6-@m`Vzo4GkBme*tph-kQRCwC#!GQn(004lX{izqJ0ssI200000m_52@Z5)Q< zIDSvua7T}OOVy2T!ZNyy^7#yw5w+ z!~5_%Pxy8gGJgCt-sX8;Pn*qV%I(g2VnRyey&+OU>NHKA>s+ciyWZ`t83>N2I!O{n z#FC^eOHIaN_2d}|CIoqFjL&myh^FrWNn83Dyy=r8iujq>?X5*ijUt2yt)(LL zU<@gt#HHmCCFsBalfWUtDJ0{m>p0n|wzU_e2$aIMwl?I+7*hAQMR7ntHJ7w)J9JDp zIP+LS2O(l^*zXrl_6T|GDEhu{pzn)fsM^cL8s?6F+wINr;?wV|E2#o96h4hLI0Ir3 zfzv*g=s84djuM10pgdQhgmWzg#x;enV8S>;1Q=`W=Fh`}ovd6H|LG`~7p1~54*NGm zn0Udv9VQ|f<1w{Mc?{ABaoBsYwKW<&89h;q zdV6??2m;d%>~aRm)Aslzyu0L>O>AnqH3X`K&@+4xnM`!D-aJO5+3!<3;L~oGiCweV zN3c@sH!IafqtH@GLl2W$tuE<0J~Pd8)9kitlgDdE9UvIMK@%@JfryUNUT+J5{r&fv zedPhTSRkPsNRa zL6v&7St%D9%}T3WkSgnlupkmi7}T#jfq~T#a5|NP*K6z8B4CTy z#Au2ilW-}4iW12x4Q&FsoFyYeE~n;tk{AcRoY>p zCl(?Adhl{lQMmP@yt0 zK}0HZTBL{$r%ny?UEkcqYDtRio6eglyE%x!qKB8iS1{vk-IY+r6U|~G8X9c0k3|lw zk%@SCGLd{D@uu^*TCO_8c;on>tOn%rRhMzedgTv+%w(Rqzg<$VEgwb+FLeIn@?ECut$MeTevx`lS&akRx0!3c_8m>g5Oi#CGH1aX!wIilF@OKB*2ZJn66VUokDD)aKVb+G@F;t%N->H13?KEErAX9 zV@{1|Ww&mPoI#+Dn8;uNzUakCdZ?br@qTFN9yb8H#9+`bV2_6nIpvX*(tXL#JR0TE z6=6r*pQH@KfXrEzv1kdef}!HDKwZw9sr~xUc&$gm{(g8Q0@3Ku>CovAegaoQr>{s0 zMH5F0BxQVW<3BEuG&zTtfHeeVSb*|=DaRhjNWfkxpdK;3kk1!jAjnf5BD}W>E1+m! zfJ2ZYu0>Dz{XIQhU0n~Z-kd~6W@d08-qV1ZN(q+@i-^+k;gqVXqMOyssGF&^U$xv? zuvKlpY*rg))f}n~HQGZpw-tql_;jDDC{dtbVL(%`#iWVHNx&ABH4-5!5wI4+IN0rN zqFrd%mbkX_UnC|(c1d7uU=lF;lo6Bz-^(H|#wYJ0Blqu5%ukG8muM-j3ry08ijfj3 zs_L{IN2|TO(wKASYSql~W;HWdHM35(rZwHUhQb;+F~dB*XaLb2Kz|Rz3%gi0ijG{o z+akbOTcB^ba)nlV0|9%9c2{iuMq--|?7|l16P`%S6WJ^l_qWJ8RFshrG`hNalJH;= z9#nmI=AXQuAHNvI=>eq5#y&C+6M%kfI41r&*=)ni44S6%=9THbt!5zNXsxPg!WPvq zFlXRqF_GS&EI+)WvL+H)kA-igJtBmuyFwME@5>T>IdQ?Fl^8S<3Cr3^B#LAS4;>;q z#iD(D@Wd{q!zjcW?IGa{%jNZCGKqqKkCQxt`tD6&+PVV=!D70DLVQ@@e1?;gHCnFI z-*Vfpo34|2+i)SGX4`HRx)Cuhd0@-~!CtNko1E{MTx8>3AmT%Il?v!rTVxLw=^$p? z36BD8%b4eB(;`|b1PAJr9zkE9rILT)4}ob}4~Sfa$dvES*!<||xHoI%sDpYOH#W}n z#sxaot7D})?tKjJSs^yS20@Pi^KUjqRR;R7yE;c>1YGPX;vTU|IUI%1xlp0aB?LgI z?C{oF(M2}$NNaJER&U>`Q;E0JAKL5rO{Mbk8m)UG;+eq5kAmaRPIbcq89B^#u)!@^ z0v~}`F;)n$O2D^YPI5eu;++H{vMPoun%8*=2b?=JM7YyI1WyMLIf0}f@QGnxEN%N-(9Q-8^@zn7-MFb?4RA0C&#=u~cH zrytDyV4bb4MjP8KZ6hJj%vdEYr+)p2lpbLPzD%jvXhxU(WWT#h3QJZswL z0g>}LU$DK!^C9*gTx_xdal25G|3|18G+&8$g#bim$Xh^W0=IXu=%dGHXMQg)&!QaN zeLdr}l!`csLZK>&tSv|l>0ocExpg*__ z{l^%-@EkU8B7GbvFvK`Ke{GTv5Qd{7fE*uin8AYv5ElZ%fZK-5qSt@ZDmnw1rEO2Q zuV+wRq9tcCN)(l<^lN2h_3yOk_IlCmeOt7O zk7A1!cUKqr-w=iS`Ugf*OH}cXjS=~yRXjr^Njf0Hl2v60Qy4NeHRX7K+hAu8*WB57Bvhfwn1J{#h=jCgEh&0LFr3c%6!O$@ z|31FXdDO+h9mnsrcDUOxP4$nOuW5;d zqTE)Ln>Ur9iyY-LseH_!bzX#8L&TP}qaCnP8&TKBzxIB`I zgd_p+w;_^9a)+vwza$_|1Q5jW?moVxnrFlXI2(=V!49qAXAcKzyV+}3u9VA~uBuJb z<1wxoWuvB;hT3czs##FYyrQUj$uzZCN#!@1P1VTpisgkv<{cX{WCaczBG$hR9uk|p zd~a+K(dK$j|2noWw6-5lr6RqOzXM`BlDK2&PZiw*hXr{$G3|K&`q}4u^IQye@Ts&? zsnWM!UoNL1u_3v#R#Vhwp?NJ}WDKp))Kpz z?YN6o_|_2w693qXDz&cmMotf192OE2)zE61YUIs8#!zdTVU|q%RSyfMZm0@F@~B8c zuN~%16-re&+$;eE6k)L)fQW5?7h#Xr>z*9o$Z~cho`L|u!wHD(NW#Ez+L;GqV#1;1 z=jT4uMRz0-iN7c~XuXIwl1w?ez0m78V0x|vGMS84c=9BMDE}uGL&Ia`Lalr`(df2B zMp0}EGuR=!VZe3ElL9o!1O$wDN5ojS{%0t<#4R;{2%NR&Jr$O%UVt5!k@W9=0Zgtw7s6vV=?1CRl{o;`Oi3lTCY z!!QCx{47JDz?}t(GYLq?Z3W0Bn{f=uKj%1##p36ebE2Fgupk(pjYjf97mC6s4L8aH zNe~h)2@1kFQ4ctH?fplW-LxnX#{nGoDg@C%dV(Meq6mTtDvJn8x)d995Tb*M)+!sy zvcxtAl?f3Nt%XAD!No38ggGHA%)nYChMs%{?WH#nbm;s0|7UhKt8Y%uZf!dsfAe5F z2RPJ$kRD5z6a@tN5G0E@fWXjQN1}ofI&o-@fk5XWWUZ|s`~>#Nd2sOHcsxEtYKXEIY7r1guJzZIQll@gb}g%A~~)gzC^9VpwNk%J0RXP=4$40@0N3cOa@2h`)xOG zr{v3+jvf#DmzKy#&gqeOp%4d(hz^L7h{e|+@lUd0AOwVN-SQ#iK|m0Yxq19eIhA4_ zT-nEiF%3c>`~>4^E^w$^x_+IZJ`TujxRVeph|`qs7SiQtAAag>#X6oTaz&&kL`*-EKK8 ztw`x|xy)y{FC({QCKLBoO`%YbrNEj_{@AH*Rkw4TytB0|@4vGN+fHQPy=h-rQ(2|+ zYuEH@hKg%m)|y3+I-O3jSbRj*W~rUaW)sAfy;w|UlF5uJIp((ri~5U2tDUl|^8IbT z&%3wP{ELULpK@Dl_LF{i{hZBa8_yb*6=?M(ZkTXoGy4qN(r^{cyl+$IB zmw{WJ=~^Cqt)^avQQtHTV>mR1hGCejZ<1PVHQ&3%cjb}jS7(k*xR`geiff|iQ zx?m^l(Fc1(pYN=H8xB8x3i1HbYMBPXz!7)rYeGyvQI-|x2Hl(r1uvp^&^zeh`zNhb(82wG zXw%RP&DR{JjMpK5Dl#S+4ikb9!Ud7Zvsz>%07*qoM6N<$f+$*-xBvhE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_radon_level_card.png b/application/src/main/data/images/widgets/horizontal_radon_level_card.png new file mode 100644 index 0000000000000000000000000000000000000000..fc973f9be1446425e641013576c801ce5ef95e47 GIT binary patch literal 1256 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 Y4jGJ8!}2JHG5`Po07*qoM6N<$g5bdG*Z=?k literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_radon_level_card_with_background.png b/application/src/main/data/images/widgets/horizontal_radon_level_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..a3fe117282bb942a8ded1a6424c5dc2e2afaec6e GIT binary patch literal 6106 zcmV<07bWP4P)I1_lHI0s;vI z0Rsa73JJJA_21Fb%gFWN(agxk_UGE}+s^jn)Ar)i*3HS$ z$i@N!0{H0J?Ap%f*UkC!?fC28_2}I2-qO~~$N1;h6buLU>fg`F#|#Jr`0V1^&BxBj z#oo`!%*Vy+*v;eA%pVX5B@+zo-O>2(=Jw^+8V?EAia+Vu&rD28+Rw`N;L_*R%b3Jo zg~K+p#G5V^4D#I1-_pxzHzMNE$>gwr>)O!McRe#RGL1qZUndm1!>_5shSGvaI~oq- zpJLXKQr?P6+Jikx9}q(w58jhd(1%Yo7!BCTzr15Jb1oJ&9~D?76u+>ikHksMenp{G zFJ3Sm$bd~%P)yEoJJ*9p#BMv)fjG8YEv{86OeYvT9uk4XESN?gC>jz{A`!r~t+%VB zv!$Hita#0xa&T&8io`(Eg*(G$Gjl&CrB5Ti#jwV?uiLJL=A(4qo^;ouZQ7bxIyWB^Rron6Jc;p~P~}lx^Xg zSYcdO+>=M!eL}^0K(k~v%)PU(#)#8=LEec#(0Me4Iv&!)wUdpA-==-kp?#giXugJ6 z;DblZdOeE9H_B@@uU#>dOe%jtB}*K zrgeRGa=UauMLjv3PAGje7`oDZ$dzZJbYY2RTCZ(CRX;deHYV=j*x$^&zm09F&SsQq zTa(08Nk&AfWj*ND#<;|#>BFJL)R4lGW_(C5$H%+P!n?-FvcSuqw#klyS3@Z#CEwe& ziGqK^ly-JuSLoos)UT4C%35bfIPT!bwSZ+aEGV94Lp5OmT>t<86?9TgQvd}fARs0t zCLty!ARr*XL_y%-Qoz}^e{=u<6n9BPK~#9!?7@Km0001hp#7;AsR951000000GRzb zXl)Y=;{ZNzhd^|68}vI!zeHijc*r^6h9qELg=k;|UX?1#Lc2>Z*#cUW3g@y|EmI2hlO@&Pu zXzwUuth`)(5X){~pDq)yznD+sI9uu`$<^E6i|cr*8b&Hgl4ConD2kGZRUDeGt47h@ zJESPCY5G0_Sr(YC0z^FWG|d~0EFl~U!-*gWW?-2!j6pti`Rbu`K&f8mV6dPb4X%j$%SF; zT2H6AMSnKRTNp470BTuBTFHQ>dIm;x=4O%+WEQXdB?(J zW}2bZw`4S%O@^BvI-Rk8Vp&_3$M@>>`glC})@ZjOOk3~PxJs3))LM;kr+&t*-7W`l zR-V1MKf#;oO^_bP|2j?fqv&$}BaV&2;h)Q?ni?u>ukK2D5-jHL(NW;o_SA8ZugD5Q zUl4NBAo$BS9jhh`#9;vM6LjeZxM4*sE8DglfrF4W z8TB5zaj(~96vK!Y(^846skMHe69hpOD5^jS-1K9yRSWrxci!GyN#S_PWbU%R=GJ}T zt3_)GNQSc@NF|!4Ex$v}==dPk-zv$x_ zd$!)_HlSQ9#fc&|vdEgTz*pRE=%PnlyRFtZQ54(eYgy$6VhOV0%4xrH*({`RajrnJ zr{iCC`PP9l4@rU{k>O+#1Uxu8du^#DpZq)wHJ<0IyoBUx6(NUV9OPEtA9uUwxB7TI zuGHZQhQqQ*(rsHeY>ahXR|rE0fr+F`VOJ}QS&tf9!=q{1G&hOttML0xx@`^yFViN( z0E6Mms!A1dd2sv#`Qe+6bs7Z1IDkJz)1-2G6@`VMO`8ZwQERM*CIo}Qg{JT#-Ce9B zGWr0#!SM*>l1?6j5+-I7NQVx7fDMDGzueuIeAD;O-F-jq7styoDbu1z)6FLTqLli6 z)F@aHMZQl6iF`^LLFJw1c}`uoDbRRvU6%x_Foe|zg0}#6&4nF=TeeL&$yNj^ zV=PIM3>sBoW$@si42%@MNilqX}&_odl zX5SPL8X|--kFktSt|}bIT^!1o=Ox>g@ec1e(5cyy4J7AypyvjK*wtj$T*51f#=ieX)H>0^~c}5!qiCPl`+7JXm5K|BkBpG6G`ol>5tt1S_ zVI04T5NEFak%?q$(?SIoN#tL~Vzf?_7#(#Kco$t@htZt`eSdpj9h!&_g4>RskIy^( zjwzBJj-*a;*J@{ewuKN4DIG8zfy@SE$MHyT)T)*JVwI|aguktpg4~}Sg;cMvp6Al| z2gqnNv~4;IB+t{dAIA|6f@VUX1z2Qn9kw}lWG+ysA&mfuTLVI0Q$C(5_|(uFOM!n0gIPCL!E zoQ_k|7|Wf-h$uF?G3X%b&ADu_6`XUUSBJIBaD#K>E=<_PuG)nlL-Hnqa3}*!O+l!e zp6|P+wr+Y*-tBB`?`O~VdEO&YYWSZNgd`HJVDh*yX??WszRR>-LLl+<4?&MRM)BT) zZhNs#rov$#Q6L(28!-M-d!#@ydIS3M9N`?aX9D3s=rmH0#IH`c zTtno^6+2zC1>=NQ*1P-F$ipt_nwUC|jC&0I6?mw2p`SUDN}yR%^@ajmdGJx)1H`5yj}BokQ5TO35?R#X)ZDRrW!_ zb?|9<`NeWKNR=^z)(qn$e6pJF<>#tyt>=sDy6M(*P1H5*$mvuyLDQQlQ_z+gmKM|V zLI243z#T4-(8<}~KjFYtf6yTe_tVDjMx)+K8w{!)q6qrDF+8bzpNa8nqu&{qvd^#DRQtKw!y<2xJ0|km{{tj9Hfb!qL%U8#PuJQ@)UmKzg7#R>DrQn20%+ zge&u`YL6t?CS55Re}3O|Sy6V7d7Lsor(Vs>bUCugpv?J9HC@Ous6d8 zw*e%bPFI=IgRWuKQUX&BundDS7`Qc}m@Ad>uJegZ&l=l?UC@^&uXDMnb2o2ZxNx%r zV({IUXu1*%+QyCVAQTFW$^(Xe!DGmxA4wSpozeVS=sMY)O{2+2B|P|3+5%6C?Bfy+@B8 z{AR@bebR`-F#cBIlo3IJk9VFzI4Sh>0#WUAkD8KJR-Tl;o23iMcNrmG^V+kLNwZ3~>wKQ~Tw;auJsJ zq*mZ%9Uu@6K+S?9nY=&C`3N-b5e5j9#{}k-$g=$O_Eda>1%4GbxuPn5=9mN^&E`N6 z>VD)x46u!$w2&Nb83oa!_EdB{y^MTmHfbc#C_8xh=;fpEr4gmYCnFPe8Kt#}g`L+! zHbWKx;Q$BEs|g2#fFoeY=lLWvVcm9!V`cMH4Ep^&aRQQDPQv(&L5etu(OsX30E7&I zg5l@^5@V3qScvXm@j14}Fpxw3f+!tP@}LbgNrN^Nj-MBJGUP%sN%ck?fnEnBNC=PI zJT58T=&4QM^k7Mk#HjXerGdzOb)+1Gw@avblof&<1RyG^gF)D(5x64yyrb|)MuyI| zTh(w7RrQM#1Z+(^ILlIT9VE3vtpE({MQd%|RKbBY1yR1J)#BOs3qLb{Lh>m*lYoP| zI~$|~{Q-^}w(=iaBvlNqmR2Q6x&!$vPND78DxaMf31<#Z3&n?8MUA}XJWD{5m z@wiLn#2|UNJKkjAq9~ZMd;1X#P35SAsRe?=zd;ZbK>Tg- zj^=mkkytK@M zsrP!8ft}=yoJq^6Jko;wkSYxO3gsh{83|tsIHEpClu-PswRf?P&%9Dma4JAlWhM-y zSPW2B&s!fpO?+e`RrtDMk}=5fwQV2^b+hhvdtm4py6(0;OYbhE64tQodEWe`?hf^e zWv29H8nx-CDGFbf6Lgjc19gR`6Dlh>ITV>JRW#>O$>XP|ogJE5U*L|@qB=)L2!v6} z=hbR;dp9H_3fyF`gC+^|%eEc+*s$HUqiL?;bX}+In7XOEn$hT5sRTggkdgVJ>0G+H z)iaFD<9X&lTX2VfhX+;~9EIh8gT)j}5P{rrKy>A1pB6Xn#uNw)aXYlxLw=Y1T`K0@ zud}*6tzNGz&%r+sDBb8Z0-X2N)4epm@HtRf=y>8lG9XGwr2*53jUlK#NK5p+F$WX^ z!p0VW;EGH6>}|ERyZzrF_%NWXtpQ|h9UPUp2MdX8JU@#N5grB4dUENXY55Ii8F6Cx zmiUL5gFrUlOH@US!G9Q94eE+P*y?7QM?2GTa2-xE!XT>$i;J&z{bqmmPmn0?+aE&g zAf;g_io&p)u%n_6Q4|UdrG?NzF?1keA__VxrMLpYZFCbZ!Ob{y6%HKxpOajlEf|kZ zM3nb&bNg=Y@|c=Xl+8wt$w?X?F?qE|l!JHHvj}}&4s{`NhmdfLl{8^S{B%Hf=V^BV|0SSp5KuSAkbuoro4$=3m9mj9zT+?)FhcURYF2zx5kUqIuYW<@=vUu_nK6snU>L{!1ntrN!~z*+V~Y!)Ab10c`ugCi$Ff%`?mK=Mr%#t9&d<57O5vIlvF zmh3r@Cr@(_+zSgQ2LZ>QBd*!Bon zH({ZmIv0z8B@x?*s;WyCQ52H|8kFgse!o8nvn=!dpenXSmRDz=z0`HnUFuSIXUUsJ zOuCk5#U@rRp?ue|N*o6<#lqoDN+rtUL~&|Np?MXpQXZFKur4);P=QdXUMSv5A_$UW z$?|sd1y)(t$0s_{>F5AyEm3U}ybJ<-qQ0TZKx!XV6&Q=RpvW=8e(3vIn8Ex;>ToEE z(b@MjHBEB|5Ms(6lWk_#GSj~tl;0Y~uz3N1;LDwT?1TrvB0q-dADld^HF z)g@>+csTfx;;;ORgDdg8JCBdIo5m;DZ|F8Q9y9-bDVl$Svp5CjNiS&-Qw^0yCb~g{9xCNbrS@_ zI1Wv$!eZJ!MZ-&&ILd%434^gC)fjbYCqx5XNDx+*CXI1)!_frM7qD@0>|*Ec{eM^K zwTbBiH234~zL?{K`{no+;W4t_@NBKK%wnjd`EkB_0I4 z7#d5I3V6bwj6KS#S0(x8>a58rY8zkIClk}0b;ilI{orMNH}>#k(MW}oI!@ROu_@%y zvb*$_x#d6v9z+lvkH>xR+yu70dfDaqHjl>h&E_zBKMZ}nVHnsFj0PFpVi(XgJ+epy zDiB1On4M&>jNQ21#^B*=gV#YafJ)CGjq9o`$+CR$2W90e&{0+t#>uDk_KOS&~AO8Ms&(mqlk#;3(`ThfegVE z_#`?{JC9VHz_Y#szfUpnDWnxQ=aEnIRZ$QK1OkCTAP@)yg3tEgfCK;l06@_H*Zl|; g000000002y0*!i&aDJT;tpET307*qoM6N<$f?e*NivR!s literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_rainfall_card.png b/application/src/main/data/images/widgets/horizontal_rainfall_card.png new file mode 100644 index 0000000000000000000000000000000000000000..636547fffa0064e7a2c270488b63d4c08e867837 GIT binary patch literal 1104 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

3Sy(kjMJ+lyyu!k>yu6Z}oIq1jH9$ZvH#a;^ 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_snow_depth_card.png b/application/src/main/data/images/widgets/horizontal_snow_depth_card.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6e69a60531ecf0768177583d6da6eda03cac63 GIT binary patch literal 1239 zcmV;|1StE7P)my9ZY*4_1jf`X*C?sbpcbaZr)rsFR!FK~|JS9#xN zW@hc}?Mg~Y_xJZqZPA{dp2*Viy2tIGvF6Fi$xBO1ot>Q_At6$z7FhrQ00wkYPE!CN zK;OSmx{%=}000BJNklk-@Ze*bT(`+zl0 z#<7)7GQ|0PCQ)SlW4~E8I-?B$0000000000000000000000000fS2^<)oZY~S2wSn zfAvmw+gcP zLln^>@`NCX4|2Zdgh@NzbgJ>4=6MkxP4wt=NO?*1)S}}fm9ii1f;c2_-HfuC@r##f z>n{DDosE;Zu54OV44H`WkVEETd>Eond7JDPXr2op#zn3vkMxziS)U9kOYYQz4rV+( zU`Bb9h2?!Url}PnUY_gPm?!(F#RFw+KA)OG;f4}iLUazgTdwsR{S?%|F zy$|$vPC(TuLMIO4$x1^yFyCKUD}IJ1A1Y#1teeJ{q;eu;C_`jHn?uwh=X;jUM>di^Bi z>=(pA8DrCZOoeWjx=o8uG^tBOqi{ssI4%d|iSv?%iyObN~ zNyxcxQ8*+?toZwPOCF_^#;MaCq*jsymUC}8T_S5_J5EftRSZ~xb9M;nCjZyccCRR6 zN2fw02lF|d72+MdX*>)W*nu^&%8*eK%VT+N6kBOfgf!z=h6K(iuw`y))A=;bBjz0+ ztokJZZHo*K02U(_O`ju28e2&o%{)D1%FrrEf@fREXU>}&ajfeZMc{geE{K;zw&fAiX1 zy}hI_)c^nh000000000000000000000002Ikl$dq6c(H8trY+O002ovPDHLkV1m~< BZDs%f literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background#background_image.png b/application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..361fd44fe7b06933a944e146d1af71a13d9dbade GIT binary patch literal 33804 zcmV(*K;FNJP)|TU+vdO9 z>AlzG#op_?)8W9}>(1irzS`=<-|Wrh@X6!v-S79W%iGZA@Wk8a*XQrd;q1!a>B8LT zw$R|R%-p`&=djM-u+rtO%-`GU^10gU)9LfZ-RQd1j*B-|ooX z>8;7y)8p;O;_ue#^Qg(+!`$nw&f&!2?xx4t;PU#Mz}Kn7)~e6syw>B|?e*8}^|{^c zrpMj0(B!br#WAt&+PcY-tF1x@T=44qrlS4>h_kr)WPBJz1Qf{ z=kl}C{Z&xz3%#+Tr*9xYp&#&*<{P*XX#;-R1fI+3)zq+v>T<-tPSV-1Pm# z&ft!<)RM8tkF(6i=JcSs){wT(puyXfxYe@4+NIFvpv&WuxYV)B--)cn;_vp;>-Nao z=9{+DsJ_^xyVjAc!|C_^jIqbB*zC#N>$~6Y;qCLi(Bq}M(7e&#zRTap(&Mhf+lQ~p zm#@XQ%;Au+(u%RtimlMT;qk4%*_pc5inGnQ(By-w&#uDN@&5n9a;p&pbuzw#xMR`^)6( z+0)>h!O)w{=aRX|c#WO6zRsDk&P{E2=iK98e2J2vs_p6P>*Vsc004l;NklCb+9^i143I&l%xtCg`ExnN1gR~SoN}0CS6s+3Oj5J$VkWfQW)KuGMW*FlQ zTp|h8OiEJidWnl+7UnI17!yMyhD{{Pk`mL*Hk+H#C1&~_>h(F_cg{!4Up)D}?|YD2 zl}fo(E|wFCy<4}^S1(^GUAkH=UQJ)Ra^+H`THUFXikB0`Y$B1!z%84l&e>u%TZ9cO zTdDmklZi)ncjNJBJW;IZu2TH*`_0RjFYoN^?4@#>XKLj0uqc+7mk;*ez;SGO*%!=* z4)+8nUQYVH`Nntn@oz#c&BoBg^ z%V^qDZjnJvIvg~b>m!FAAL#$(7iCN9BMuraUDZ2j*QTBNm;))^+AFSJEEY@EY%x=* zfRjqKSgDrM)oQ7-vy-h>6P02HRQxT75>kXy5l*!WRwe^(uJ3`RXeLwkqz?qu4E-Z$ zeSJND=Ht&n$~p+yhUdQ=^96m>ACmboUw-UuFqHI-g_6nSa?iwA{^k0^6Ft7cp3qAR zpRT<3q;X+ka$)G?R^8OAO-KvNY+l3`G4p8?%e=T4*aAtcMa0D2VhZg9ffFiQtJ=nQ zw=$aVRQGmu_1;UTcf8m^r@t^e_u_rCb8Ih-CZ1*U?=~0=^jRK*Uf;-LD`_Hzm?4@w zN*@^!8EC^bMS8si?%-<}G}RCdM@R`J$}bK(yndRJT;*DHo>iyUlO|SIofeP;R$L6d z#p1R&9cP_jOdrz&4wsWAbC0tbZaAqW&ifrw>9eGQxS?-$v}^hIJLPplzYfs6UKz4~ zyOO?gsdTkyFWM73#cZikQdBGHN;Od~!rw|Ia8oT(fq|eT4umAA1(GN;RDR;%ClkG% zIUi4DQqgQFod!Q3==Ym94-9Rb&#eRb&(8-gAzS7nTTG0= zTCqje5zO3ZHZd{CkV=R$TT!8^^+cC#Ufrf1zoYk#&?_CMI$nJ7o{oV#@6^un?(1Od zS_zt3%`?mzW@nGG`o^_<#xR7)aP*GZ`;O8NjXX3vJaWKrWH=%LM-k8jf(()fTjB>~ z-k6R?h82WEuJeTFNsq;2ae6=yq{iWJ`Eg5F>2SaYsY5Syxb%L#3!>#Z%U3gKdWVxI zb2_Ae-UR}2?XTy0ntAl0Yn>5;_{J~D?b{Yhx>T}5Y^cDLz(^)hD3(A#F%hSvP!i&q z%z-2L4C`RSx8RvA#34SwJ_IP0%H=YZtLZcdq9XKT|Wn@V`1hu zrjM|;1dCh~rZTD4%x213Fxx)1^IVI!#!dtE(2B!|8D1GNsS~12w7eOrcaN zWS~q{Dt1NnVm6+Lr{VxeDpjk+16|oF*xAc~H2@q&q4j{9{rClnjp*gy|DgC8y3j$9 zi$`-Co9o-#%V)l~Zo?xFwZsXwv$U z&o?^u+N&=mJDYoYK6ug^v_5HV>uhf8@97_E5{wGWg0GMCnHS$!3)oEoCdOi}nOF#h zF`0y2rSRC91koliBdP(;xaQ8z2kJR(#`*_)Ij8P=_{75xci}kcVUTXz#?a33MM9dk zT^Jz49-KzI+i>Dk*U=6UpLdl0z$~~qe*AAslDDALy)_&WOK=8_6wBCNF$wjJL_I1L zCDJ+%B_|yYqn1mnlp`IkBrKM&L$3onXZ0?9MDHJoNnK~p>KV99A9K^d-dQP5let`v zxMCvkHgxXVPeZcqYv-sEm#Jp=cCvfra;Xw1l?&-hbqmfVDsVT(RSl&)}f#=*xWPKt>HBG zhnQ3C(?=E;kJPaODpLcCiJ45SHPafmj>`=&J%k5E6gIiMQ{E_VV9AjOCI(pPj)(6u z_ILD-avI)olO#>VcH7)2-;Im$hj_dOrg9#&F=h`L>gjYkkFTcBcFf&<=s1Psz!FvQ zKoFEW9u2=?!zDB^I=!D~NV>zw}STC*70|LxZ9&i?M+`D`Ga zy;Pz`I(s=2PvugHRI!{%rBYEKMJX!QLIW$cm%Rwl0XcCX8qb2y)b8%a#zqdV%>zUK z_yI$iX!OE`GusDzQDZ5XT%tU!yuJj$34mVoM00)nyvMRCZ?qyDh#^F2=8a;9EXy?581b)xl?0pP%J?bIIFp85(rHbjnTX6=% z(0PJkc*nrM=WfyQIr<^s_+LQ5qb$vdMkJl2u$6|(Y(k+8u@N37i1CCKcAbUrSS&i| zMXPBjb||WIcyN54Ar?CvF}>7akii7VW{XI_(k*t;-D)*M?=-|@E;W=oX;-IPa_*<; z@pI>BB0uum?cLqmySGm71uCUPIa@BFYuQ36lgq{Ta;Z!<8_%TXv7d)`=of>Ylv7o6z4v(>GH zMt!%IYtzn?DCxEdQEp%rCm3uT*Y-BF&bvi7-0ZnSbKs|@sAeewYh?J;QNE0!RLNQim_*u2!L^v!XbuvN|Oc4}b0drB4#;j3B@L_T8=9dwcLw6DZm3iA==~6T`)wEWFn2 zC9+Xy`mhcR6)xJTW|ILS@kF{*$)?~03$A!Bw|{-3yh#BA!A5FtXXkQ_o7I~)VF)Zl zH$c$eEUhG$zWj12_$BbKpD~yc1~uJxy(6rf;7l}P-R*;eMkA;0<;kHb*3bt5ZUYAi zwM@ReF!6p*&*;gMlT$;+o|D1ko83*_Z?K>NL489^M@$G4#V{6^Ya{G-!o(F4Ybv=} z#YDOhl}*4Bc0a0Z8s|NMaK@GLRwWv~n@XgdxyjH7J3)CV5 zk1-dUJ2ZUgACCJWMUof{5F%U&;b90-P)b7yCisB}*$EU3>A0|UP~j}C58+%z7$?b} z8GJpIIC%AnL}KFMh+pg_Ww_HI7OQ{dFc?m!n<4T#V=-@woW+=Kbhr#{F__}^uixHF zlq=P8D!Li9$D?V*mEw0_TS}D-)T`7+B1bub={X)P2QEhA=c$&HDV4623pvUSt{BL(LHdq1A@R%wOB0FeK2^Y7M<6>_#*!W=sAF@Ykvzm{L;$GnDL=@ zuzKT2D*FI8uR#omX1M>@wkQD zIyo+K6DR@2&@2d`3Y|z~dnyIco}3q40PJDnu5DkcQc6K}j!qL$^x8cQSragOf8uSQEBJy{uwPI~=%NYLMe@nYbwYP9~;`8xRUmu;#HL zjf0JX@je1U#@n^yZSAcZp`t-9$CV_C;jpBYc=JWVp?PYPH-cLLo#+Cf9?apa`|VP6JvdNs=DN4R=iDl*MAy z%M>h^lQHaF^-4*Z*RL1r4daGOvJsdJX->V^KYH$`pVX3wn(akyf46)6>mT<5n<+)P zoVG{bjArduzWuh4E0hEA-CV{V2wW@_3RE+KmQzq`$YNb?y^s8FstkYk^uwBc|!Hv?gvhpN+g7`dSudkozZ*FMg zv><`*;K19Osl~}82a%8WoYoL5Gsc`^aX1ZA$0o;oGa>8f%+Sd}tMS~JvGHU#A~s+*yBhakJCzFE zpyE-Ts=OU?WROECgysfio*bEK6_ur@R~0;#la&UwP+v-+d)_gdL7h4XqdLj{I@Xb+ zS5$de6*{PrfOBabHK;PSqlD1TrCgMPxYc&fIH+(qo1{)jC#x}!cd9`L^|(c?mPp-d zH*f>g2~Dit*?O!KlruMt*VWbk`s-e`SwB9G`~?Iz^!F(-5%tEz^$Ryo1w!lV%gfg{ z;GR!xZiG)Il8FVFVbIqAMSI0$((7Fpeo4loiRpfUn}{PNsq^ z)lO9vlroiFT6-hH?8LDW#tL`aPtv971$mV%Z#E2R_vO7}IPhM}duLi+ni}oku{oTX zwfSuXf`Kwtk_Ljai6Yu=zHd9}p2^31%=a>e>*$*yKKUZTkTJlHIBoe(Y z$D$%{SP4ixLg0+R+ko2?z&2EKgQ&+?wY+>A+|k)7aUMJ7F>6?j+tMjN22>}LvTC-| z?KI09^BV7d{PDglnf|y;@!PLE^wiB8*MFFX zi4{uiQ$q_A32zi$Eg~Y_VH*wv2G3twX6ERUNV_1XIe(xD|-%+A(j<}M<;jw4!y zW2e?WG&IYkmtZ0iplKU9>ng#8-6W13Z^5cv9rcwJ+9QXCKX~)aif2b#429=O66>(J z{5*{i^ejJ1qa;Cc?WiCc+i`3N<#Y&*lNe+ZJ!=>m?NHcBMG2x)R8f@BT2)0*D6isB z6^ar8f@{ zpuM0_0=z@PllBW7AiEJ_sOo}o6$AnylxB$&8dHlz?RGm^R&6#nIi;GSTFXHvD=FGn zpMUoc?TGsBA6Wg}-$s;W?t>0w<7WX)Zf!sX5Dq1;FE1}c%D^~Vzxi##y8!tzF|j@! zhBECU2o(0ly-7h3z3a)C*Bgz;#uBmEMKlr(g(kPpL-N4m-*pAzCL9KZPQm`f(%#Nl zEHdibo8N&#K~MhbqJyFB&E)6ZP4sI09$w5vR?rDDv55qZb87>=pRY1?ju zx8hcp3%6nfQ);iQJX1f4VMi)UcRqIcnUCMCeCbfn=;%&YPs8D^1`I)Lv2Xx z#Hxb;JfL_hO^P@^Y#8q7Ip3nqvtzlml@@q{rjY_L4{C+^27pX_c!8%VYH%bSI z7QxtFzSF2{@-#Ws7Pr&W3hqgD+3<3lWi_mnWyh87hn{q+<@q%*0uRC_wx+Xjc(1u2 zKl6zqWOHe2Y4gvYH;4R5Z#aAne6cbYT-g$%urKn?T!(@aoW+UJ=)&Xz09|xF5}l4a z;=Tz8AyJ$VlacGfdVDf`e#y5smJ;ZHeZdu=ZUd>h!?w4xvO6Hqe-=9MKFD)v3OM2H zQ<1YTl|B8ygQbe+pU-&uoKGjJaE2^l8nm`NL_`>pMg)=uQ}CEbm)IE6cJ9rVJbQ(q z?3K%Jy>;~CBNg?dCx)tB4P9@aIl%zD1!!az?B*wI1PAw<3OINgf`z(`Bb7Fc?$G-E zqt%8IL$#fxZ7M5Ch|n$&oM7byMg=^J2)xKqR!RVgjGla%#bHF9oF%i}SeR+C zn4J>MBWBiZNt0+;R^oQH>da1A=41QYo*VC!9&1%+R}AN?<>@cV<;dL1)=YBc)}}uZ z3wymQv0%>%80XqTbO~ItmD~=7!r@pv8I8shNiiOZPRquoBfli06VZ4i8Hu1#F|r<8 zm;^>R89`5uO@p zp?2VKR1lzXfQKMf=}>_Z{HiKl0b)4v*vJFLZT-Ebfq{YI;$Da$(B=MW{shF?Z|XOh za?*N>>nruSb_ktS0*KAwAOuus_W*MM4bA(UKNh;1x@ z54La3ZN(0U#U0XY)vgFqBjruin?yvM;0Tt;rBJ%4Rj*9sUE35D#k9$kw%=Zs8k$x_Y3A?ztE`zZKfv-ku3=&s|%J zhc>Q3Z4(bi&m|`=LQ!xo6paV~2@Y;73b7MMJ)$qp3DIOkm|R(-Jm^VEh>R^BIw?+` zyL5K`-U_;K0tIpY69{J9e*&Fe+l?NWIz4~(vD)km`D?6N(&#%Usp1tnq1wgRaGd9d zXt;^ifCy|Q4h4Y0s`K_WbTu>-mhIX_9(cAaujF`7^>D|L>e-S8Z3hmthx;)E2cjP$ zP@9#e;7@Qe7mA-Do7Im8a%sYk**Y*SgXM~F+Dc<3RusbR0!7&17eNSAl?;_B4@1Y6 z+jtuq?HvOzcbmE&FckxBo0K`vJ=eeg6EF}&Q8T+gr>(a?tKam%!$l+ZT;9Q5AV40G z0x$rT2#P9)P5~Gj-9tHKIu9Id$eenMTb~9erCH{OZm6?I3eD!Uy_vOc06MkAVwPmM zVbjV=%je;MpwWPLFCe>>*?0acJK{Gux=z};25g~YL z{RR|maPu1tZ?=^LBXn>gCGY}@@;EeffbIkZ z04psRgkIH>kZI^CYky}P7xH-wOKMB!BC7Zv5G)$VbLWT%{EGjr74>YU7BZH}f$ zqLF7HfBt-a>(<*V{zT8%#>U*OYiG^}gQ=2wZfh<$c`F?9#@Bptm~H|a^+jStgo}7S z^d)_fwWP2ZS_=n5V`HM|fuV~=QioGQb1-Biw{2j;xm^uwb|Jki7xNl-a>;S7qeDZ;x;Hahj4LSOr;3{R`BB`hRTkP zhA#WzYM|@VqX)|Bwe{7NU+ps>2GT~pjafk&#BXOvKZcVC9k3BJP6lAYkvNTGRuv!M zRfNm64e^C99GgB!6c}5;Bl7es8y&CtPN3$ip#jGN~{H{i$&U{RX{Ivac z^3Q93zMVKR5n7p`IJPQWblGAaY@8n`^Y%Jm)OA7F9pI^`=OC%nR zuBE_wad9mki>?dTQKM(o=UaRQlAKeNlx5@@6bM#Miq?P);BEH$?Hkb2*sNBXKf#nD z_Ti4Mo~{P%k@}X30~JS(98Xucdf;RTV@L{!B9}mbshK=i!w_Jc4a6bgAOgX0FcAVW zKo>-uIBzEqJBVIRRHfcEfbV##VOB+Oz}=`oaP6{o==Joit*x2erv9|Hv>jPSy$4mP zbVYi3w<&E$5q#mNMpon2)TDatM|09-I>Er>gMO7j5fqJZ1f-pcmkB5jA!PKl7U~=Y zN{_O@B9Y5kv&UmJKRVLXWNyl7y(8DloRX%89&)>z^fg6IZkEl;u2CxY?fghNQrv0& zhlTTjNh`7A_yZrvg9`HJiJ*_?gZJQIKCt|WSCoge1T4k5sI9@s(|Z4Vw|{!&_Ip<@|9ra3ekQCioreosH9s#5r=+fWB$A=o zNI@jnK!-}DLi;Er4FsqhLCs}(JILfLo;IBy{NCqIrca(+h6om&fwN`^Vf!pR0fK;P zTWDwTYOGo)a3VsqBl-X+ocyS8?Qof*f*~jhZWC=p^@6~VO^$5fj7T67MNm08^iVCA zOQ=3lA`%1uV-Iv6Kdv}Fpfaj4hz7AL6&TwFhfI9DjjvMiL6+s_uYH=|*2T}0q&k2i z5Pjf@K*H_lB_I)Cp9y(=1rb<5>a!}h8sWQD^FFO^96^P}H7HfM&fT>03wRe8DS>Jo7n7;H2AaOr|a2sGYsL%PI z9(B^~|5fORzxmz2KmPaw2;D(|3r5^K=fC&c+dsc@YyWavICY}ltuRnxO2_Y?R~qwD zeVF%*;IEDSyeOPZ7~SLlLj4x79T*sN9+zMj7DXkf1cmp zh4u6THwBsiK`g#%vg;Fe6?}(~PK-ROHg^ku-&$|(R1bDPf9Kx4 zgYEjA=6+@W>(6WZl}3#(DK@}#%2^8g`Ql>zaBpw3cU)cJnI@%m1iQnv_>zGy zR^)wAWw@^N1{0Aa$S}EQCleDDP=KWZxMoDiP*YwKK;@>!#|PhVO`ZSj;K}o2>$8zW zl;lWw;YElKSOC6(Fa;5c7Em;Sdr&B_2tgRo-Vggk)ge@b{95FR$U#oPN(vybfII~R zR0G%)pk(wA3xY8h03O~(@wHuAVE~KI1yXrl)JNteZp^I?s0>&R^RfCo55`r`1FcTy zj^`z!D6k6;i}3W4yl6-uR|ALxqZ`xn+A&~t(Y!bp%4uNXK$P^_gUQ~Pb-MYsdA=rY z7@$-Rp`y1}sQR>SeqwUs+Pj|wC;1R(4C%Uukw@*j+2%jX&4XCs-t+Ck&DixjcN$cvx=qe!foe8nxW@dVOskyN^x89u(C`m|`Sls%6K9tvyISC9t3*Ydm zN%*2S2w6#f;Tk(6kqguTpnifVbRub_gaLIPaqIX##E5AFx)GJug2g9$AH;S2^Yihz zMl;_t-`}sp3`XGGT_KGy{~*-sd-`;IKq(ziDY}Mxkbk+q9?L$@wqWDjyLqR2SWNGI zV}ab;yZ`l%o_+oC@18vQeR1!HFvW_EiW^wYecos;=bo?Cs9J^E1AMx-St;&Sip}lA z%Wy3%z6S{I3Um@YMcI2-7T>%52S5gwUVyFl`yYJ=*f=D(Z(cw1r5}IGRa{pt8FX5M zwMX0)R*A)0aZxFA;#Tt-v6HFdnL;eGR)xU?8qRYB6pl`zNCK>HJ?&Iak1aX_qb{@6 z=j==SgMJ3ZQ2`6tY&jX>L>_1!U^ABzVO6fB4bgiW?OU=Tvq4crnn$gu#6`9>{n9>)4GbsWq4NJ}5YOvG_b zPmf9=j^|WERb1b$kHS9(Ne`k^q?f5F{k+FLk{h&RZp`A4U#witf|;-$S&qfR5% z7=`_SO)=#>U)bI2w%08>mFnrABaoof3dN4I4y4tHZT_&iyIXGEYn98f`9>jq|9SJU ze)IXk<6k}a_~Va1tZaX^vbTA&Qmk%lH-;AGM|d?k-wo1xrdY2ZQv3CNIFw5JMP?5m zLUHjIw=N$}S*@2Bk^SP-?b}cwXqU@V^}}uOEq?aZ=h?$Lm~7u$H`i?b{ggu7FV?2I zG~HsYQQH%B4zV^mX{TcafHyHBnJ6Fy0Rj^PD2!-h=YyZH@yyzkt6+u}tPzXFmL~&e%da5xIzEKs3KxXJ;NJNexa=9F3aCrbU z0>dP#I2S=gQ74WjY;Y@)+(?^2jA0vIcErFM@>HIZSmrDkzbzyl z&}rWsIR2)=hX*`*BT5J)j9LKv4Yj#gb$%kD()YPcwh7~en!?0bAJ1VANZdS~`xBF+ zi{%^aA>BmpNc?4?n6DMCDug{Z;=twk@%hsOA+f@a+=S=u-NJ76`CTOTxbSOiyVAP1 zyT4b4e)?nU$-@u6QK;?LuS1WtzOz%@9-435uUT@9#@=CVyC|KSE*2||My(#)-qzbxI~Zd57|hX3jN=g+?fNVH?-Cx?f>xOBL6SU>ZVGfU@Oi!NFmmtE)) z_w%)CIMnQk-D9F=x(dDQ!az7-f3-D zG8*uLrRXszAYE18|$?ToS z#ui^cJEn9f&ly>hbQz%u#=o-8;b{)1Nl?4UD9Q{G1tO6|GYQ7SFpQ_l5oi)eID}v_ z%!36IPJdWdxDR3VtX@x45gH*pHiIu_Gb>kZtAxUUfl7w36i)(9fyFW>;gJv!g}c)l zXxEcN0nDufx0LUYeM&*dB1tL+&XxC=j*XM2j6+8+1hJD`&c&a??3zFwH&{qYy5W$k>R3> zxCR6)h9$B0OofwYbsoC3klXsm?je;td-ZC0Pp zICJjgX9ve*4!g9&VHix0n>a7C;zfxB$mb}Evhpa2qmZa4g3HMa7fb{b1%fEWG91W= zNPKD6!1*pLz==-lDECKv;gd6A7 zBCD0m=iO?ZFlQN|6qL~cGA^VsXwkm79#az$LhW-hDC!09V>~JHD_u&zG%jWJm=L@l zo%TqtTZFp){`r1-;p2zBy%!uO6x!qPN4{{l3)F*o<>{XtDtI4+hJWoLg6|Zv&ssZ~ zNB6eM+w#rr{Z_NNdr+-<5(oFPrC1gkt9TvgX=(TFvxSA{_hLe0lzn3(~y}W*OLC+S|773M;)TEcUrfyxC5v$IL-#jxjbMB4V6nSX2O`ByZ za@u8$hr|5WQm4BWz_S%$T{zvKd<2mwZF#*MP-`a`H*yHP5x{MRJOZ}lM9qU!=e{yF zHkFc{F}cQ^beGI(^3#Lk%ju*y;tk@?gdA)K7>k?-6*0lt6(%C$*4s(On_vi_*ae1* ztP%bl(kDVV4=%8J^kmeBpw5Ji8xICiS~gBwO)t?tU!I4-aLe@tno6>#>pcvPjs_(Y6F$Y&0s^J{A^J zm0G1i6?QB)ARXc6jbLP>4|tY@X8|uHU#rQo`>%ZOTv!oTY0p&5DcSOLfJDg+8W|l) z)vYO^Fcgxd8sYBv-p^tuB4baK3kh1ufd=+4g;>I~Bk-Ul2u*cPEq?ag ziK($R6LJ<>$XC;IN?UT7$iBa_J|4u|owSnyS&=vzF+oO@^m++AgF?aqHj*Hb;D|`( z{St3M1Z{(Zz9#jf0#xKB7{=yLGDMp3OO>qBC>I#{SRWtb<@$IV>YN)=I`Vd&gaYN3 z)7xw|ksjg-5SzLobe!#u8;~Q_5JU{P8uQ@)>`tz7lCRMu3wqcVwE~KSxK6vr_ zPju@vy0{P=2MGNpy^}BZhQ9x{)@X0*zc677XaDzN^CrQ zn4{Hn5t|zk%Ve*G`N8Lemesy@v#&AJ{D~QZ)C6`5L1TjW-2m$AbB$-GiGs}n)90RPx33w&XtIzOMnBDDrz+-Tqx zh-5Z$*bSubXp@dYtRIHKC{VGvYmnP(hqqpgmZxgw&d**x*8!48XCP*44G}>pk&hof zmnT%(_o6Hh6I9KTv>CDpE>Cc|( z_>$3JwknLBgPk2xC4pOwQ98Nicak_@YlguSa0X>zk;TAzg-!}ahK5)lv$BB*m_j6( z^sq-}L=>gLXwZwSdc76pU^t?P)o1dXR*h`FU7u(5?RG<)CxQ4jcqutvPHmw^)qPLq zSj6cfK{N2&SZ;p64qMPfUF3Y+zZRbkb7 zu|{D>@NcAMu~6VwK}^rm2bUdW#^K??z~k*_6*IEh^qE&Wrp1=|BBiY9^2ol8TNqLA z+hxwpd2H&W!u+kY!!I?B`(^7c&Pr#Keln$^ONk(dMv@!{AzvptgrLktr7S>&J3Gdt zoCWI(lmg7zh&ijfWCj zJ3^3Zl1I(C!HToHY(A?kDrH$G0gpFGBQ)4nOrB){JeU_($rW>uJ`pwi#h{ca_=avp zo34MNS2th~?Uiqo6-8P!nYsUJ1jj4o6uiD2Ew994goRM|y zpZwPHqV)AM)5&rBu^KacvMx2)!Nz8Sq}548vWYb6jrgVbT4Z@8==2g1+3>WnqkAYS zJ<-uEJ9cbo_}mg{v$;B~LFaO2C2dMDe!n+@qE076bAS_24_sBTq#x&wAgL1#aDpM` zUATav2+Kq{D;gk0fhhPwqayf3CmwJTO1N^=6eStL0x>kQyAr9rU=#88q1pl*4!Oyig@n z7^3`Kzt+gt=_amC1cDG=?C-sxIj&GS&Wic`5FeoAC-3fz#6R=)u?rKYkz#8r1~W-e zs$1(!tdMLro2}Alt02Cc-E20?k3abRv)%f3seb1P^bXxLV8RNC^{x5q;c!@0tK}<| zqU8xs$;*x8pgbc`82Al7=u^YHr+5;QOe$++KCDnoPs^4}gR|e7bxoa_nHrp#o>qmI z%;q-fdY5#NKNB{aeKTICL+Fgs>om)9&Xq;5e1l%vy=qieE`8RVE16b^7hdxXEr%8H~2U<+DPE zN);CBgkfFJ>Hdia6VXrnTFqqtByfY(v-9((#T371pzYnK5es+v!fO+{4y4s;R&OlK zRhVQcRw|V}&2p1YZpUJ^-PUfad;s4@;rT%Vj-v;^_Y{k*Vv4TjQqrr7XU?CLn$MlFo0h`e zDZgu}CR=jIQqn~@oEL2+T4@R>Gj+R-pq-JmwG!mrRx(L%FasIV^z65M(($OvL|H#@ zzZvd+X{kdsaO@>bw}NrWve~t(E6Z1t<0m6tKZ-_uKyrZb;3${LI0=Y4vO{`AUgbD) z`Qj|f$TQ$Du?XYG5msrXZ46D?IJuvYG8~)7fNCRwydGowNcb27OAmp+(L>Zt&Z%uq zLd23ji6j7NGD=GYXoFH^RhmuyB&RgeHk;WAZ(cIltO4_|a{BdI7czL(sA5;!jKgQ! zG%Ct14r#?B4|DUq4bV&x3%^Yq5e+~Xv72jfxkUn=~49be5QBc0#a_p zJbE4_&nB|1Dgoj;xRs3*iR{+yi``c9-XCv#c<*lc;G?Z-Y`T84*c~obMi;QrRc{|)i6ZoR&|Su`{s^tQE6OxWwCQ{ zYJGazTCpio-G@_42BkgaFcOQxMMsB{F1c*BVlW+rF`n_RWs;FB1VNJ*Gw&nT^sIMw z&95|CeM0J-PEk3h80b2)eC*Zka9i8A?VLCBu6OqRw?6kdZw3Sz&{eqz|lN=h;e$1AKW8NUb);yi0}k_gTE5GT%g0RqxUGH8R(%3+iqz$r`Fd=y4e?YNZ; zVEMc{ujjEFdOa&p>RF#s2LcBeXgux%JU3^sqU&$Tfos^OXM85_ieDy$*WP$?*u|mJ z;lVU&SnWJ3HMMD^@ot5Jg0EyPOt}8jIu#KlIPKe$U+!poZDLY0pbKdo=69d|?fcr$ z%e|V{kY<*tc|1I1H|uOAre|YFaF=L$*S8+U)-yZJ^79XV{r8Wu*_+jJWj{tP?bqu2 zo{HEK@pnUrU|PHnanPbw{ryOy-sl(Z+ zOr(_xNGQ?=x{jBV#bO8sp<$`-r7o+Vu@yKHr6bEls(+d z9yWO8?E0?2-3Zf_{f)|!Y~`YONg-76LD4ON1_)+?I?IC*C=Lv|5h#xZE^tc@!z?+; ztjiz^%TgWY6nv)4ESr{^r>4iGCdMT-blcO*gC?(2qcNLjX3yG{I;#V`1E(Cdk`bb0 zOGh%y#R$i&&-yufFt88|U?TsyQ>Tt~9eeeS?;bmK>g?3|prcFmlGr+Xac%kP#jE2o z)5Y}!XVa6k0A78Rh%h+L5OmNJC4!MPj!mw-e{p3w=*JTziP(a$l^CVcKt~ZNWPO8C z=UI%`9^Wn&Ug<0vR6$=PLhfcy-Yi$qt$HF7 zS-*R4?cP?(^8Cf}#jX2$*Vjx|dO^9I8hk425(~qs4wWOURgKo2h#HD9cjKW2_!Ru; z0|}bT#VNRB6Z=cWFqNv*rfWwNu>%&4%)CC>Ia7BAGu`!*2Gg=v)ukLWuRFt0v(%g( zbQ%;=nnmzP+8ar(WC~p3VuYX>KaJX=QQ8Y-d3ENEubk^V^_5pU&MXZ}U9Oq4zQL<& z_N(t-C1kEdg7Mj`WEwmN6leUL7i9n<5KaPaDyNc8UQBvvJzL`Yf-{T z8qCXYE!%Q3vyrwt2Gb_5qs?!6i9OB^(@}BUY|@DNhA{s0wG*J^?9OPf_RW4MPzl{lY{f+F6pc%jwnX+Wo$(alQe7x* zZI-6j?{7VNlpV>n*1g#hy}15jcfC@{250Qu5MY%G-Ee*jG66Lt5s&qhgFM%DXHenl-cNz z%1(C5lrCZrh3udx<4q^3nM|Q@kt2hmA=nTumvu$zIQ8mx&wuIFm(G3u)l(g(PPNHo z#O$~o3iQ^y@4p*y%@SP1CsKHsV3Z>`ztbONP>|f|jDMMktZ=rAUZ+(AIF&$PeC^IhiZ67oP0IVlo$5c|NcmP(W>6-N8pK|;Z0yaG zJ-7GuU$D#jJz)5B+hgZIEunqvTIm{uCeIw>jI2m`XjhCP8yH2BC0rKCA)FLt9fMO? zyq;sjMgtd#y5dq4!#tGeeIT2io`(&=dU5oY+OB1^8UkrgD0^NrrsMT9&s-vAB=^k9 z*n`pXD&c410J0BGPENW7mmstjvmxNt>VhymT}VI+cJ!%kNz@C8&?sE*A0$Z)NqR$t zzOE)_%UW5Nk59Q+R%mB1&XV+c25-I1TIx8x92T;GzQ^i``JgXZ@ATY$tLK4nC~oBD zCP1`|V_d7IfS(3ftKJM_ShmmxTpgwG1Sv)KlF39NgT++Z(i;E3*R;)PFrFJcr!`^f zNyNyA%_xHq48qeO(!RL#`cEh}7>3Z$j>HhB4yQi8r4}Ws(9ziqs>Ykf&kw-M^cD*EbGg|7Jnu4Kf z36%$AiMuBEUG(nvLqmlSJ=Q-yR4VPnIt(O_q?Z&tFTo$q85F!s%ljG`^g?nRi)|z!J)2g`JUis z++!h!>=zPVTggCa!SRghrO3Lfd{7vqdCpx9Kg4tKgsa`Q*Ljkpniyw5gFyq04nA;^ z;es}51mO|Wf*CU!b%<$X`L6pfQvQdR$PsObv)#B+Hcw=Q#YUOFYXn`ss#4v3Pv^pR z&)NQc+buzD^_|+*))(9Fya2lsdE0(vdL5{Q?eo>ccdzyC*1qXm-|0{?!^RVWNP$KO zH7#pp6x~$yb;d>1f?F?uZBWl+D*Kgl;?9o2h8u1si=x-%D|uWJj~NMvRMIO7Maz;L z!;~Op&S^zFh%$~sfu|DjaVtBrckwCt=0}A`2z4&G18#tqC`D~^VM)h!?mC$aFi1X8X1~4 z-3()(8fZD;eb?1fi zru?EQw-z>VkNK+hxlJ6LH)3Fajnm-ON_Ij_&({Fh_}dXWO3r9@Ol zIz2dpqZ>{3CAhaVv$`^numlJl12yIYIGqC;~V2;Wt=434AJ zTc3Tlq<_w>xb-tkWy9y1+;F=uJ+#*qbcKU%_oTHO=Uo@30UlNbi%%%pM}=u`I92B} z^IWF)%1|#VFkH7Mo0^;&q|UH@TqG7xVeDGbQH+?u*4RO9FFdld&Pv z2hoaIt()Ve(X5Re;xe%_2@k2J!0QJBBq9{iIKq&36^BS$x#!HMUQJJKpm zv6VRL@9o&%?pXT=#*2rw!}ZfIPe%`Havvo+pynM;7i-1$w->7)Rokj_>n*59X)LsG z(=*M8PACfcSx4Keo$YWtgM*!ZYwwcm@_n;|%aS5OT~k0vw_2I33L}d;CXdjR zEXsovW2EvFL!nQmLF?L9?^AKwf;~k%+ApNB>r8$>9l zE&uhOQhe1VrYgfLy4Ae!H!i9(Xe*szN;Buvyv! zutAVvAt9UeIum;i(&NOPK)iv(pq+W9S}m}I)7Ej48f=s^kin>rE0=xsP|T(AVZM+r zHtw-heVctNP{pdjYiS@lR1IG=%wsE%9?T5fm|P-_^~%c|dD zYjSdX2XlP9U)s<1KYhkpJUad34=a?pX@eIa95kdY)vteE*v?0)_Hz@8Br*)bRVNsD z1W>ivyo8>;LM@4q2))OHqOVixC$EslWH_HczH%((rPu!K$;tnv5H3l1-A&q*p;1w* zRt8Yo%naka?s~ep4Bt0Krw4WM;IXGz??41wk6A3u;s=_IF*A?}IKv?CfPZhF6 ztM%K7SK#JxkK-Ug#{A`SkmR|^FwtsPGZ{9~>38?$MWS!-$YoNBYVX}4&>AIa1^!7R`;`ck(_Bh6?aXfQMzcs*!s;H%|kz~D?r z-5AukK$HkJkqK%c!&LdnYgKw4gwBa7#y3+$z3v`1jx2K$Oluee}yO>x-eo_4!}_{QQt>d~jA~m`=yY zAhN6#MOv?3wuMdR+G)ou<^~`Qchnv0vDfRo);Y$2aKkJ4Jg#VuS0zT#14!tr6L~!@ z0XjFT8B`SE-8_*}Cc1&NKaVcxb$W!iz4}lAkF4>*st~FQ)%LVS0G%Oh*!ooSSL|8f zAUT5$#o2O7Tq}6TB6Cxf$jn#;F<&~U=2l*U6zR6(kwg;D)awEWvVfd~MfQb8y?Qy~ zsyDhPz;xEI<-(c^N2046O;3=Gcyl)m978U<3bc$RESzx>fgtDg**0MYvW|OQUM?B- zkseFL<&9-SJ`d@E;ngYH1XhhMppYF#npR%wa%E;r4`Towh}r7pXhwD#qG6W-jYfIx zql`ORcNv$jHvOhFN=J2m#=ygeO^*cwT3Cc%9iX9tz~F-h{lk&#XKws8JF*Z+KdI^y zc9TNLIv*|+9k8(4THkJOzvH{TSlb$P9R2jmPsw#*_i%gq+n-&n{d=xd)#?jdsG25N zlX(H4Jk=KQ`4BZSBFl<+42VNy6z^7;ZjO3NAWU|A7?o7BHiQwsv%`sH;hK( zPVl@4A~$;vHY?{ML=t|`J^{i`l_9|jdt1w4RIQ9v> zzWJ@)tlhfh2w}DA{C*wgpOe$0FMm1w@~4A!SN!yNKBv}t&-ZJ03^ctEWE7g#F~)GX z?K74ORg_Z0*ovxAMh^CpGOn;}MIrJMD@poFp3qBfot~y6^f0aHMMkP9@V1U#Kqo3u zx?)O47kC3yDP9*SZ>+_+cq%T*SRxS;st}*XVjn=btV*K-MJH;|qvm0HMXanLSVoCK zG&9vgp;cdtKXNNSGX>#+7!~Gb0!+adi?*D!(_SdV;`PO;RDP1!v;4T{vb2!PRkYq` z#Mj2kZdN}RLBb&y>&)U!S4fQUe3-?;%{doG_V#U}pBw zz;M%i)jZ+$KdUtu%Lt7wjV!^z1Cm+_lns89!FBz5clLhs7&3gX>ij1~!RMtMx7lkA zp*CLBR^v|tLASMg`pfnwjx)vW?OK<`jx_VrK9$cK&f)6|3XQf4v>ArXc39CP*VsY^ z0JkI>Ab~_NPZ>y%R$=-ID;-Zx=ArxS!z@IhinvPCP}3CRSYouY9)4-Z0spLa7(;mVvPnHm zPx$?YtIJEKsQFREY>Ng!yLtcX7w=eJ=KRL!!~{r8xxajOEEB}a#1ksjdQE6=s^0Cn zd)vM^eWwO1;8hUO9R2a-JH1CWFA0n9Zr(DF?H-NpQ&*H#VL7Pi#GM8WL_$cR&4{!n z3X&03j7y~@g>f1rCMdBLmWBQ^Sy=@=Tty1&q>3K!HA@fY+)PCVI9D3zJPF0yxbU&@ zNu#cd-XkqA#N38ErF&*0MND!{HY^B2@u1dd2zAYLV*E^>W4xr+Ui8zb!A;H(&&}kf z2qH3f8RMP0F=FGnwa^cbq@J7VUOsuLF*f6Nuk7u`XZGrY@%mcbRX(`1F$s`2TsS!K z+D}eGcArpp=G?khzLz79&+vunOe&X&*bFR&`BJNqX3*8-u%LA?L~>jt5w>G-GUGdg zaX}Jnvb=Vlc#eO{?~mOB5n^TILI9s+4=zWUN+mT%=-D#dExBl?4pBeKL^;lH^ZU(w znb-5rE-#FvLC*8FA#FCPgMfnlP1BPTrsdfI)BXODfuI&2@I&}UOsEk}NBIe}%GdCQ zG;sWB9X<2Hd&OJThCT;YEglN%KOJrVbo$PhUrx{ea@Z*D+PA8TJ)A#oF``VX+XWac zj~SfNg%9Ul%d~{T6J=9N3b%8UHkc&x`PIqF%srW5c@3#M<2DIZ2AgC*3mxD^tbk$k@LWU43jCbr_yKty=Hkgzki*ol1p6I?6!_ zqBm=~ZWFIpq&Hi>)&XLhwTBYS8FELIMU{{YaYD8I7sNnAMoHW{LG9 zwNaK-vzYji_!VQ~I|zjPgFy1$`}Mrf`}_jpv7LI1H)a_rC_0(dLeObv#06(PuuV#m zl`gCv=;iCnzu&8H*Ben@;sTt+Gl69rT}nCi7TTfHD>&OJrM_%EsvNrCqKB$PuOA&U z$ZlBB8;+QU^hbeftj(ag2uT`c`K}qYWz4Fgl1yMToF@YrlteS^ll98bxB{gRl};6+ zbmg+T`(DgKV2*x`M%`xyE#_W_s?TcaGAE(d9@NbBt92A&ex$78sD3r=b&NjL5797$ zKK$0971>B(4A!JhKQ{37%FE}5Uas`&297P6-rZf?{pHG~mC545?k~G*SAMLq@`~?U zdDAeSR{7lLLn_0_>|@J|w?%y8YCpo>KJMyD`#C>`rP&0;lSG0{H=BtB>u2Rp_C|eJ zT8@5}KnXG(#ZZ(`q``l>y3`tmBqxljKhy@*d?{RtF=!MkainM1Zj$SFc508=#|8}a z@EH@pWGeX)ga{!_oB|W&^N}F#ZAbyDilIG)l*Hgg(TQfn%5s6`g={>|1($>CwR*xy zdltodxXpH03=i)eIC~FlgOQ|0tn(6sax~M)1PZtRa3a9jXiTyzwN|LrY;vu3bYMUU z!|s_|hV7ussngqrEV2RRjmlBFmq++E-?kbU6r~(=IEJFArye$vSSG`f7~=%o36D~Y zgVuFXj!>7wVSWe@1}ZX@B)T*TkVKe6Tt=zVF9jxN~_TPX1OePLrJ9<43tkyodw07ygA1h;)%9kJQzCZSk zd!gW#tD-%XRH%m%^_5!j$16LJ-93TMInq78?!Mk`jF5Myq22L%*+i_FxEN?AyevNZ zz*kTEucC2SEb5I$Su{${qO(4Q8q{))NhCV)JVuoe0`H+!v!stAQzYvTC{$hmel{Br z`(*~%UCWEZOUs06{P>H;cz!~V;u7ZL8lKe*&r_(}L2)rr42!{nk=a`p?WpkrWhC+C zg1EZM;;~Hp@=mz39oXKM(A;WG4DQJ^J;`KDv@!xyXPC@(Ciu+{Pcux)#`Ci&+&yEk z(c>qqChd^y=nuc&J_BTWrSi7hOm4en#xi3XwUB0WoNr_9vXDeocZ1nSJb0#_LcmUe zKt9gYMN!NkJ$NZam^BIzKA*E%Xo^zP8bnn^W~PAn+g0wvWx8sgqTD}G<@DXq{TSsg z>Y=Jb-Gj^x5C1VWkD)nr^^n^(a{rz8y>$A6#a9pi_wRq_Chb?&&H*udW#!UJv9R*v zO4GY=+mgI^X{S)E7{)LX^{=~~2S4vD7nVoH(Fwb~m&nP{t~sKw7x(!9-ogA{PxE5a z15Y-AH>20Q_dvG~V=*!S)L%A+N0}%AMI15S;ppKR237-Kz?53auf)@gUz`;7bY&cUYaIKm?ykqda(MqG-wVqyK=uS$}X z@{)I)P_UHlltri1>5tx_JMsJP?~M)}J_5wUF}>Ra$o7e{R;N>7e4OWTJ(46Hbi|S4 z@VeNrqwzRHk-U*xg};s?5elV3kGRx>plGfj%Z?Bgx!0&xQx2HbD;zXJShYZ=H{YSr zbkDiea}@X*6bUnZ$&ljLp>^%8>T0#GdZ=a}fb8@1(KFZ1jNbS6f2WTv{d;9`cMaB7 z7nhcvJzS}I@jD(^u`F8_Veaf(o1F-y?K?jfPY#R|#vB%+e;p6yU_*xJ$Gf}azVv69 z4}ceMqRE1l5>2ny8#sUC#~6mehXfkkZsMLmGr;;W98Y(-h-3&JIV^Wv^@oE_<4h)s zViB&92*y&0SZYDMT0uLP&lFCcfyu)~xZ+Oi z)Pwa5FT~G=?zs6rLuv`nUNlPK%b9jb%C_=6Z!TV5J&-3S2>bDHkdMUze7m#1)!5%| zck)a?W<_M$A={8`#$vMC>;~P;??2o*aKxa6*~5sifX2=kucA3p~rJM7i6I%egC~2 zgkCK7>I>wbfm4)E4+iqA6mWBZ-F8OLtlP7($r=dDAJnW?+7587iK~PgRuT+6bIfLo?uy^x#Rkauq*^p713CN%>=+ayx-4&d7!<1=Em-{D>Og< zI65Cf2^#an5teX~ID-+!vO@hJ+VWNau+-oj!);Og-l%9iZcw~ zAteYa8mZN8b=vLida$rOxw#q^^2UjI;0ZFu@J>Dzm-a4)9^YthYzV@1)_c&{BSLyy zk$Q5-S=!ncI)850OZ)q6MvAlpo;$5D=6w`ulA~pV={6lL(`$8z$s(6sXLDP$vQsky z23;?RjWF%Fl@8l!MUR5cQdy|ezM?j+U%(=1qhYv5W4ZplvJAL}}(xsQ5yt!5!St?%osCeV)0%4o1IROFr;K5$^ zL1kcJ_viK6Z9u^|FTc9Os3I{6e8%hZfrVI`EQ&{MEK~(v)+@p*aj_W)cmrNp=#!=#v2X8GN;M5kXSx#I2m#3pPWP-$64c5 z^+QPzm`$ExB)-GPr4Gt>T982Ef+RN9D=BerJs_Oj$Ogm9sDE>{!L|Z>ms=O6FKk@6 zV7wrJffhq_%oBF%hMbM9c&pXk4tBsm`)!Hm?RGnaBVyDPk&RodW$Ta?l)FvVA-&t6 zKP5Y*(^=j25j)L5oFy$5vf#8jEap&%LgUnv*C=wvD3l1Bd-f8Jaf}~l=?oi1;fxwH zg|QJri>ME~L3hEd53ALhD#4fs9|5AaLRB7|?@NL+LDqTet?E5f-G4lEbY^hymA8PC z0MxU^n{S^SRvtRGxc1)PcMY5$S-gLA&2;YAz}wdxxzVtAdaY=Y2aC1EBPRXY8E5^{ zeQ$mTM1?E1YtNW;z%U};hH1bg|cv1NE*FT9i zQ%&5%7qFcn0a-nQr^63YUc|&n2ANOu;MM?}yU&KpX z2Eip(Jy@LrG?nHe3g_EDyMdj({?i}kxoRJxnb$mWE8%hgpWbEe83eLoc47*)BdcY1 z*TnoQPkdS(JhTEtZy+e&am&EU+6`Z>oV*KgdLU}O@cH2ft{XgIvMm;O7xkXt!lf5X z_YVAA+ugnP$?uK@cYZ3at-gFS3@JxyV+4_q!`uLqqp;?99tU>`K(S^6lm+La0nbH0 zTW2peSvH#SrkKxgFl8=>83{PLfH3EvCvxRnMk7gv19S-GNgj;XpfRf#qQ@w!3@`&A zN-6CYJLlBf^fLFM>vh`Objn`9y0tnp5;rmt09Zh1&VkPwSMK`1Sqkdj_ZaDGdxdPNTzB2GXC`kx`m#4RQn`0@ zY;nKG=q5o-K#PNEw37++8q8W%Lq8JuUcVmxq0j;_(q}EJmdLDYk1zleci+MhtZNn{pnHJ*UBM_b1WNG_qfa?eXm@Kv>hBGBk z-4jOhQhn3I2c&%IU@x|}*Al)z`(jRWJon;>V;_h#?O;e+YULZT`Wt84jW^mG`^VeD zzO=uOrkw3IZRdIsyG?1*D!4N3;mX`?cbRUYEta83**%0^=$lwpTRA$goL^#wnf&BCnXds;W`KNUUnoO3fJ!S-k zck^?)M>I)_N~$58z_WQy#L$>OIQB;1y&wk9XoQv zM>XZKm0Hc!k?l7@_G%WvA}pLH`iTclJtxAY4uP5ZHw6cB|Er z+5$ZCrFy*)iwlj$h!~C)!YL*W9wr_%F7LIbjb|UvJ)R`ITxETWQ&TeBo(a)hJl1%l zA(mRge*63VtCd2#l#=#wJDwpW_lzE)P|^{x>k|W>kt3wzRDnCGciNTumXOeAqYmi} z098S8`5KzZ=E(ZkGZ-mt)l1w1n1i#|aR=ZGJg!jp^uZ|tW~-vFFS7d6Pj)rD6;%kK zP*kgr3{Hi5)LQF2Y`TYBaN6BlQzV5Gj;dXEt+y&I97>wvb+(l{q-A>j&p2 z&Y{a&Kb~0ZyZ+Ik;n@BMI|mz^sOrg=?P9_%CGRc9YW8)-jwCL^J~3gj z$hCTD(@1G|Kq9RGwFY*S*YP@0EKGwShZH&nzVoiReaz6T!+|i>aV(1ZA&%toBV@pD z(MzkU6lJah_m`2*ixoKIAcEW<+|4c4xsC(sa^0Pk-gpC(*Ug7Nb?a1y*T zGxM&L%Mvh(01!YmQ&6E$CLQEwte%cwNVmVaBPJw;(?UAEx|;U70=7B5hA;=n)pXix z$2l&{IFcTmOVXJj7)xKux4F3lGVc_Z#3tZy)B;O~-F`}`R+;T|N3W``qOqLjdO1=o zAD?fIj=PB{7nME)b)wFrN{tc=W}fF=&Itp{qkfDKJ!Z91Eny4!JCN|(pkN{8f#%jP zs;P(aF0SuJ!eYK<2SZC!b)bN4;_ zhkGV}>i?;KcmdLSzF1i3?EJ90=I*CIfkkRZPV_@bmDs>N^+yI`&Dm_v&}2^{y9j(! z-;FQczNdU}vKriE%pp6BuoW!Ni@Xl@3cMFQIK0lxkF~dFA#jS}s6+Lcx&m=GNKw=+ za|OH+KUuX`Z@cLX1QUgeY7dd@0C)(ti6Q-FT5x)l5L+1I@X)k5O!4^%BH#+RRcYf4 z)UXEcYsEOONkvzpphr;{gN)Yk&{$I7O+Lcu1pdL<(W?Z%A(sa^?J{~z77MDhG7P|l zBN|N#D)%;fLLts0aK3{7J-eJ*S^|thVye8x4Wl7VhwngOevhzD+(Xlxs@ATigB*vA zi=GZ1HBy*?VbL=MfCwf^I1FQk43`Yni3EcZ1jCB}kdi{fl%B9ar4EByRN?CB^5$Q` z&Xw-n>t>Y_RO@y_JXTvKMUXNrPFO6In=~ohmkz0}s_K4xYHGBo=*o{jT!xz914CmUJtp8LtxEzU3YcQWY6Lnth(-h?5a1iufINMm{?y(B<`#kh&@r=IRyQ% zjzO|ulN`#zqLwEQJHV>pI`9WDm<>7J!JUrw+&gI1U^B%8X6L#2WG zI^AJ(v2-u*N-;PG6VXZl=tcq!5Db@2^2wwiQff8P&WO0+5($KYSVS4>SE4v&P={4& zR+zrHzW$pVbyGDmj8NOdY66i!K_)~|r7W{hYQMW%Bfn?gL+8$&8-=~7rR%n9Cx7pG zbh78{m5s|o4|MhQ^(?GixNu>(ucP{g>Z|(}Cl8g}xwtXBuvoI|yO#&)i;3YwP-Sb^ z!^i9v`Q9?AQ~~xAMM;uHP{^ucz}aRTJkWBm*n>m4r72#;3ZKF&{-%vhA?t+6A3N`IdA5Co^j2m)6p4| z$?JjvhgboCK#c;?ZL!VG`CLI5dwf1CW)KFQ1{Gs63Y=+Xb3B)yxB5=SBPPF%)aL*o zyGCg~w1{ajdRa6{Tu} zLHQ=H8nC}iKr9};L~GXlJdGx!bne>V`Gd5oyb01k_D0= z5D$PVnF8L_iq*7Y1R{IgyRn7wS{WU}~9*aZN}Njz1IWj$2b;;DGoEh3Gn~3r3%yvh2o6xxDdUqq^B1 z_Ry+wM$OV=<5s+Pd>%%tc?RsX*GpRcjwA=)IhX_fJp;zi$Y2Od-63IIaF+-a@$aEz zl+;Kf23)1O2mleJ93nrhBbJd7Eutg=M|BfIHDZJkI=DVLdhWHqrKn}HYwODJLbj`Z zV{2n=c&O)*{*A@6Pjwy|95@l9KmO*2TWU*HgIx<79}jc{kI~s!HgUs8g_UeA6%BGN zkXn!+H{#d28OmXADn%R>SOrjR43rZA(#Oe#ayXyOVX!h#R`YVtBZr$C5$Q`(0%c^V z(Ph=kWLkxikCG^MXFit{${C(BMtK%x?Dc0JhdQS>xfz0=NRMTE%jPrrj;D4Lq{|0% zwk^`S_pbYHI(q)h<7WVye`M<64sh5^$dM!sPF#pv26O0};a68l8%b*7wzyA|%yTA9 zBtCyyGpi*|`{O=bI8DUkJ^%<10tpHw#FfrP{`tZ}Y&)v@zj1|K)@ zOCTA-g<8GJ07JkByxBbA>VC-c3(I7FI}^}(1J-e^RBKa8 z(LGNV7dH$%diPxicHgkOthDL?w4&ISS6}_==MT@6541dZP--cE@b>cs2)gyHKfn54 zId=~B?GLcE`usj`ZxH%)h4`7}9Z9dQ%*5kgYGzNxZO+wDoWRX#mwwLZw0!x@h+jC( zn`~a2Z+RII+FWu5X)a|AXf*W8N=nBm8zo42bNQV&I|+(v4u#U3w8jYB(5FkA1Zi>= zcsLOV9yXm$Ct(zVCF?w}^1Kdrmm+?tvO$8YQOd5Bk)Snpviy=TZ78p;g>kAF8t1yZ z_l`sqVS1k(@cNF4^(28Bl2k)eWesargO7j_ z;L7SeNuWuyytC=x)0O#K?tifqDsx~m#t{`UBH-0qEDd|kpDS2g*x&$CIPBbZz~>*? zHp#HV@f-jG@;{75!D7Q!xPFtI@?^lF6GWeH24p!UfQ|Fb&BcAT<8#7lF2A~(!%e4f zE*^g-5;qB4sM{7lHMcpFN&!G3=j2i;A4!^pS`~|F+~w+KPN$mVt0_QQNr-iTlMsM}m0S*p3^6pO0-_LS0v20tuuJPdR-E_W#dk@y%H?xEif?1+5Kz4(`R`4s|*DJaSqUylZC;;=;Td%xTIQ%6=yC1C|`sNV`(RF?e zi9C}Ru3TQ|TwmLF=+S-G9_i}qsva^lH)3`BH};G42cN5I>(cKqnB5s0U|Fm|<|u|} zo7)CUm(P?*bvl{7w6yXt5^jP77JIuL?`_6`JS}g`?ym>hD%X7QWr+l65wpF*Vu|RV z9EHcefXj{?ojUs5(W9?Ccl6}c_RTNc=RXku2mr-@<8u-&>|pyRTyTJ2S9tz*&deK`jh9arX8gH8%uy3_b^I0Z)`q;O_Dag$~?61OdP&&+rqx&11o z&Z81S8J0AfNQjc+f)mtiUVy+Y*f<&%oMcj)n=97w)Uway1y0=v9KDgxl&^VYV!@YV}2 zz}t?zQnb+3c|!rDS#taI@K1ijZbN)oa9yKmk%)E5jUsxPe7>bPT%Yz!B*+;&wP zc3a(N9Xg{Jt2_PnIO=!#^>PaYu0ey*3a+V)m6nAML$02bBAQh8CPdQI22~L%O1Q?u z<+*)SrKD6^eBi$O0E?+tzXEi2z&UyJPk9dH=*go~I~r0z=`R=nfSm^lzVkK)a9#if z-gdSf%K)mg^Yj5+qmLtVfDep9@SIyi>2zS$H*1=k!}B@Ok82S@t$F77`>pZ0S@IP4 zaRHwx4t=$JaKi(4KXzR$loU3*xYMLJK%ri*2+pApTABBR#)YM{P=AXdlmdi+!$?^V zP*xzDj8UT~CNmwl(S_+mE*ZjkmQ|y67N;n;?7Q>d=^+EV0pg4+Xc$!JqOz)+WE%A& ziUv|z{M{%h4?qKQFT8eS2d1LoM9H1~SDzi)c=X4it_xeg$1c!alN0s#U(+*`rGsj7 zB3oTMQ6$Z-U*G>SkfBFtkFpIltp7H@;x$GILgq(`VY-ib@nmCU55#y-rKCYt)95g> z_6iJ<)RY@4>~%p&?O5}!`%7Oeo*JDhXv#T&2T+>&2bzBbP5~p(qrXQT0AL54f4=yi zi0u5!TZJ72-v4Ood}Es^<2XLoNn{yg4w>MJsQg*y>E<@#6*@IiPYl+?R7oT4%S(Wv-Bh#k?fwhld+_omUKG9LmW)ln&$0k zCuR06XV_%PvbFBYYx^{AKXkG7>NcNQWj5B>?Ad^ zZk_Q|<0j4ezV$nw@6xP!VrS#dJuT~>8}9q?!;JkS`D!&EmJb>bF-2{mZRls1faa^UW%v_XV0I9&X`Ap@1l~#7Z)TK?Rq+ z*r(};xaEZQ+O?UOi?XLOJevrF*O}=EWe(SOx0<4qS!A7_5|ovX(#!`-cRW)%*3RS^ zCRp&y-+?Ve%xg9`(bjOpZDTR^(M3IrW!~zHJMD#HDs|(IHKKFEqNc_$AC7fYQ+53T zA1>UgYrs%wDlihjlu185GyDFWU+-`^U|C02+3H~^U{w>i68bdXySx3(iRHiU?LFPv zH2&oD{uf2Nl!uQK(c7HxPelHq!u+q(Qxp!tm)kafaajFNG z^R3fiUg@)qJKx%dM4%Jt-1R3k14Eqy^{tqo(lo8T4$%x64A%*s3LS+F-ZW@Ypt4E| zrus6df+XBZ9`G%(+#L8+L_{3+s<4#x>{&#hoWc(-@N9yGg5cnav|d@w1x3R^6ce6Ai`QRaayElk?EGia3(Cb?1@`~ z4Mn7cOR%g~WNT}O(h(Nt;lan%HKZ0Z@p$@9sjxp)LVkcF^JyHv@==k^hmH2Wj{fEV z9f>9a9jTvxzGTGHz$c?)xp#m^?{c_Y9H*=>6ac1>syg!Ydppiu+_>Sn@vAGp;6}UK z#;3P#T>Iehw%u*_d@^41=u1C7^W4@gd%wRjee>4T8;|9@$z)P%fDIZd{;2BrLh&%> zl_mpwE}c2D{?Kc$zJV(pH))>VtT8t9^?4p&dnu*aaOmqY#=Hz7AYS2B+FAp_Bs%EKm$#g07}^IX@PZ1ld_N;*#j(lGsx5#==6TyqM0* zi8^>8#y;j6(}Ywtk&cev|NQe)oGLS7fOms>xEL`~3IgZi1dbysXgP4d$%nR_f9AEV`J&eGiSH(4GBRMCCO^}Dj23o=ra3CJnvyxgszlb;M^8I(Q5Xj zJlW#B($NLMy@WYiyOVN@I^gkH?WIBylk26$#YG-NT^v+giY~#&u^>oW^FCe|#XN9- zKo>J&O8XCL2GPf_$N$6$u|&mC6$C*}2r@QY)#!=QBVT-Srcl1}-AeoMhqvMq$ctO1 z+s?l}J$iTB!(E-b#xL%@uyfb&==SjwA@3m34^|W^AA`avSKn$G?mgY!)`;`lYjKtl z?w8TkbGUw8*i&fTkYO%OJr)AX+-;%-RXw1iIyVBlVydH49URH--bdO!=YUSZkVk%Y zqSP2Wr_jRZz0wjCu~07W?>{s(oLZ!XfW6CTigA)8aFRfNhl>U+L0Xhq$-;Nred3I5 zjWMBjpbMK)c3GVFVMkVvC5Y6lWX=@v3IdWPnx;swpoeRZ6p|r3> z=UFkIr&;V=7Tn}1xtI-%_XIREGn5a9fkLw(Kj~ZWYXpxO20rctR!JgSmfYwtxG?II zqdUeg?En7FH>XE;){l=L*?X>LTkp=@6E#))K01n9?+tmbAbEQ}3HhvA#Sr>zQuD|FWMTaAOoLVPNkzX`>J>!8$QG!G%VHLbJ?V1F)7`JbGwBvI zG4R1q6%x`XvqFQ1LE0eFjEA?-F59(hnurp#1uLVY=cDKiZqQ+dD2vroRJs5}1!-8_ zvb@P2p=W4cl)~ZLsrZdzu^5E{Ffx|%ECydPC&yf}9Eof~!bcg6561dqBueTP<*(wQ zMS=)b$t=<$7!gWUJFBj4e|+PKiRG0G7k1Z-4hMUXw(V-)^4`|A)`PECJw1G?zH|J@ z#7PBDHcQ|rD}G3L*Cq*~Bq0>i;;ztm0P^PQCLF(Q)KuFr{=!fcKnx@|Q0l69VE@;R zmMo+|Oj6L00(HQdBYOj&Y*vpI=0FXyzyf9H9YivUT)@ZyUqwQz0mK74{F(%jcr=%l z1XMt1&P9$ol)q-my&pFk6I^UvLSu7rGRI{(kxS|kPxwsAB*+nlX|PM~gV$b*#ro^4 zCbX2bh0jogvk4)I;&}Uz0?6-j3$)uB)lY`Q)e(0>cG7eh;z?zS#U4>YQb?vQV4}<= z91d9&n_YrPS4T~h15QB64Ft@u!vF?&6h7bt!wZ_lBGS0w?K1!3=*0NVm78rXJ5CRr zsc&z=Y&C8#d^p(G`S4x$wN;&He<pNf1ce2ytKyrn?Ff|9%vlyFatoYtc%k-L>!#( z5s#Ypmk?!+PXxCs)`JP9lmsR0cep;?M% zRTHafPG8-1;tY=Wto$<2yNj{Ev1i}F{@sUKIyK#$M|*p_yBlABB!_`+l0fkq{Ay#( zD2SjUgmrHY647c^L?P{1GtLfwFf^M}c|c@d%#x|` z6%fFX0)I3x5f!NhWH87DHH8q#fUpRtKuLbTEXl;rp-rOB0;Wm#Jas*pO&+7AI0U2) zHxN(YAES2O5@*ewt;7e#8tW!!9BL2n@tJua0hHh^cFqxC_%GpX4Swv*VeT_V+|ZPuRtlgb_^EVO`RHxv z9IAS%5v#s(o7OcWzA$>9|sBA0?lx>5LHdm)f?*f_U2ns(VZfJqYh zAP!-$8T5F3cD_MZCnO#Sk>*blnZl1+nG)#)G=dOzFfd=7!M?~3#p_&d&aW4;etai# zc$I;EQf7zXNDAt=10b?@cw&bHUHOr?;q923wBf0&6wpu+mJ*S`0U1J%>fgXAFUtOZ Y0I=n8zXCzBTmS$707*qoM6N<$g0R785&!@I literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background.png b/application/src/main/data/images/widgets/horizontal_snow_depth_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..79d0331e8b4560837a6173e93ca1bf1dd362ee34 GIT binary patch literal 6692 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 r9l3CFu>7}%f{)*o}`@sJJ3`CR* literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_temperature_card.png b/application/src/main/data/images/widgets/horizontal_temperature_card.png new file mode 100644 index 0000000000000000000000000000000000000000..497fada26145d49705e8f50b0f970b29a4bf975b GIT binary patch literal 1173 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 KMNUMnLSTaBVrKsU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_uv_index_card_with_background.png b/application/src/main/data/images/widgets/horizontal_uv_index_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0a93c91454e7cbfab18a7f0ed12499b0845741f4 GIT binary patch literal 3814 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_visibility_card_with_background#background_image.png b/application/src/main/data/images/widgets/horizontal_visibility_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..73b9c75beea223215a578a539467e3f8ae6f1605 GIT binary patch literal 14245 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 IM6N<$g0vJe`~Uy| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card.png b/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card.png new file mode 100644 index 0000000000000000000000000000000000000000..f29459c80a10822e51ba0d03100f2440d2a26bac GIT binary patch literal 1151 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2Q!eYQ@lJINX-oJ32_C|_rc%+7yz07|NnpT z-u>gs ztwV^{?wN^Q_*;8}~@{<-PCqJMPU?Jh3+F z)``rN-Oqy`^)xE{Ph->U$_JW;1;kyR-JNcH?_SmPyrSQJR(s~?#XZ}*cjxIBTu;i) zg?DiYx6F}jnIjEDv+uXB=&Jhc?{Zo-_q*!FwEc50TmGu;IIs9s?)eqn@AA|5z27hV zbLHZl#g}>0!~bf`asBSTSkR8WUS23e&TrfQC$^Ukx1DnS*|_4%F6Z*Bqh6m4KAr4{ z_~GTo+P&3EH)Wc}Ca!rax7gR+%;o>`;^LS{ zJ0_i7Sl#*T_P)id<`>4BZjPUMKwn4s=F8iGi`=fC=-FyJ@zN~rUkCrZc-ZP3)3p0= zfj!r}X?|1Q-7r`D_vYU7BX2%mzVbZ7#HCL^W@4xO$1Fwd$}5{}A71%4Z&K~lzk5GU zm|#D7;-)Z@M^~Mc%3p6(%;VyloNv-nCUc8*<B(;#_B4{b2M`Bjx*PZKubITVChy7cF*mbK5`RZ2i3nbA^OHKL59Dw~@Z> z(ctwzxWj!Z9jYQ=?QIGX6Cl<8E<5z-%k}YX|*Y*KOZe~th~HK zc9UXtUB{&u7rW)l+PbGs3zS#7ef{0KrDp}TtFK4RR6gd+l)Jt;X|iogj#=U5Z5w;C zR?XgZW_jtJn_CJk`%ll&h)YSm86b9BwlLbxxSCiS>Hs;Kp-fgBPJZZM}CXMZB z$Cs^pxpc?Td+mF^$cLRxN_qbK+hUtIH;;M!Z_m6?Z4LDBlM4O+ef})*wBr`g%^?%nm<<6Zvy+bp{fP`QB#K6ve8j<@+`Vr86F43hP9 L^>bP0l+XkK&rm+H literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background#background_image.png b/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6333d5f5e6286e5653ba1681c1dc028ac3115e GIT binary patch literal 20780 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background.png b/application/src/main/data/images/widgets/horizontal_volatile_organic_compounds_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..29048dee55497adc248de8bff6ed2913d7a63e8e GIT binary patch literal 4640 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 Bm&pJC literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_wind_speed_card_with_background.png b/application/src/main/data/images/widgets/horizontal_wind_speed_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8b6d915034280ccbafe31781ec52fc3152a2d0 GIT binary patch literal 4398 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_card.png b/application/src/main/data/images/widgets/humidity_card.png new file mode 100644 index 0000000000000000000000000000000000000000..e206fe53f7455e371abed0f956941ad05cb3fc48 GIT binary patch literal 1883 zcma)-c`zG_7RIGo31W+-mMDo_YF}<`wQFK~s47>)Qlb>KT}3Tbv8A|{#MW9Gbp@?8 zXx)}B8dbR{wLVITE7qt~N=2!>%)I~KyqR;p?>FDfnK?7(kCW@>YA+%rFT}^kC*tUU zbmuvZ*N;H_JiQB>tm4_9Zq6PkI-S0>w8T?h@L%R~xhl?sJhsG+GB!C)O-&XS7V$+3 z?7bt}#O}9m-(WBpl}aVnuaG*{^}L36c6Qd*)<`5$TwENDMnj{~1Onmk@Njf=w70jn zySsbl^L}RK5`{u(dAUVwSaFUT56zmJo}TU*+?k)B$0SW-5~njVGIn=&$z<}>)Ko}F zh_0@#lao{H%dN~R`lo5_Y~FGLaqg~HS;}wt+9|Bc5i&2pIwEa65U>7 zK{fz`uevNF0dGaAD6waL5Bfj8SnLxo0q$K|6?_g+N72qx?IeuyC|9xy;1N=Rb+krO zVe))dtsZzO^!bfV6$NNAX2|M1<(dgvN_S)eXANT}p2T$FeR zbgJkLfy!U~Lsbn4#T4VS_-1hv-lX}$8)7VTp}`MReT6ajODut;<{`l+o7eU=X&&YE z1>)=f&_7muWOqU_lNm2q&RsD+QFj7cXr6Mg%jD)6@qT@g^p-y1cU6#pblP-mRE38e z>_~Al;o5}PO_9yh5T($Zhd(%WWfE*_?(H6c-1=!U`XMbq6|bYj$er;Fb9nHh_}}6t zQJF7ntAV~y-t-Ol#p5!vJ0VwX?~BDY%>G`4fr=qicG{R78fO{S z6RxHkxDVe|k*3($h`(TFUrhWP6piL1X^y5%OpdS;lWDxLouWfi891Q?0b2|Dt!44i zO1bwUfMxmlHWRqn&q%55{v9s&W?3oOa9168R&fuTPiZ9pmrXcn@lb%T@f(Z=dL3ev zlvz0|t?Xb}Nc%Z^i(yiFv~tWmu}|#N=%jUMgO~yKIx1d934hg{fuAxy160dj7#NX> z!A6S{JA>AT?zXF?lvQt?EU{u)HI(#3AqE0}KBRg}zBCf7|BoKfASYc$VY9Ea{jkzr zUNeh5$CkT=b;o>92e0Xw~@O)hx8GoA$lZI;5DaJ)fU+6M_RKy)QmvfV!MCDbCruomc@z16*}D^r#uJD@1p59(Ed9-xw4(bYHE^i|~d%V7yb)2CcPC-gHwm z#AWqZyP&G25LO@1x07+m7A&ewidZ1?=oRQ}+T(HXmRIhbu-s!k=(?uX1!;Awly-RC zPkbKYoQ*)UMV<`-jrNfk4T?uM8pq2uFQ|=L`$O!r`t^)hDm{Rw7rPT)c`pjA5=fa} z6yP;of&lH<>suL*!wav96*pIg>AH`?C&BGn2k{0*@HW^pf~cKT1-G>SrAy*soi-UL zG1nmoKBz-;QhyWn0~hRi^f|6CeCmIj@-$mEBwV9&INyMuFUYW5($b;{rj3jaOPF*; zT=%JPQ|N&VKo*NJpaCXk9ElXh4(*@|IYhd}ge@cfp5N+=9y_>)0Jrhadq<7JzlFn8 zH@ik^B9YE>2tB3Q`)Xp5u&RyfRX?A+78I(%zNj<1^wQ69_Ee=%D~S5I>flNC9_&;~ zd{A)LlNkQx+U$IboaZ(!PY1fdswFyB&j``4_Y#65&)aT}H&3^fKrvn)tLhWBi2TTv{=5PL1L=>D(5qWe0Jh&i?+ zc)IS0`PHKu=^nbugn|-rk(0Cc-kxl13FprD^2_4_WpmPN5~?y9j+YDY3Wu_?>0#hn z{jB%m@|QyYCu}klYP;;Ts>Z5@aK$A|QJ&%C=nNDBCRD|?-|A)^J<%(>x4aoQp DZ#Re^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_card_with_background#background_image.png b/application/src/main/data/images/widgets/humidity_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..f030934f2ef6314b094673a10915b51600338355 GIT binary patch literal 25732 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_card_with_background.png b/application/src/main/data/images/widgets/humidity_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..278102199eb57e94eb663fc1f1b8607e6eeec875 GIT binary patch literal 12022 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 As{jB1 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/humidity_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4e32e54d5144c1ae0567476867bd2a8bb948f8a0 GIT binary patch literal 49799 zcmV(#K;*xPP)D%zq-7;&Ck=z&e8@70|O@kou8Tq7y||l1-7@euCT78 zrJ${@tgNi30we*OoS3Vus>sO7yuG}#vaXq$mA}Elu(7PTxwx{kvaqtSy1Tf*z`zI* z2n!hp3m*mt90bS8&9%3-v$eCStEdAi0k5yB3KR>Up`E6vrLC^1prM+otEHEilaiE- zsH&yK$I7LqqK1ln4HymwBLlRwu(h_b2Ok29j)Tg|&54VFAuk^bB?J#03IsI)o}ZTk zEdjp1ybUP?EIlCuFafBkqLh}9o1K*q91$fnAsj0l9WWS!hkFn+1CNr4BsCZdE(4~g zpcN$(5hDf>BMv!DEiOVOkCKE+S~n6c1VBzQHclddgn2VbCox7IMN~DHnU5Ma1|&Ni z7%LZ*my0JkBR51WjgN;uQzj884H+>J7%&GFEe}OmEE6CUBR&w4m4_WT5g{2JmBNzfP{2?g=!Hx z15aE&I!QJvIVmbbA16B%A2APkfM+W>9(8+eS!G94Uq@tZTWE7qRbft1VmL57DR6mR zRboGRfN&fs5-39oi;Z}MiFIjoT1HksF-{6hSw@?jk6vs>1w#QrS{)}z25fa?VQf`Q zU@$X9F)2wCV{c6%ISW~3Q;U#(I9CXejDT-?RCs}2m63%>Um`eH7HDr`SZX~mM-mf4 z1A~igrK6Z~c4`|*1U*t2OH@FxtfB`{0-TwKhlF^NlY3xfSSV5kR9Q=`r=6moj!|YT ze0y#|U=6jfs%UpdVsbuPZZL9dR#9jgh=OZ(a$pc&0)csBR}DST006&2Nkll%H%a_NO8XkXte0+RiY%$Y+M~u>MwCIo4uRne*{oT_afB)ij z7H`sj(Ix%K`ETY2v8-0oOpEl7PpZ#S`t3J9rarCZztKzS>+5>``g&n_cwnYg|DqSq z%X1AE8VqS6d)C5vJMlz@*i;!j7fA;5q{ETcJZXbxxc-MsJsOns&y3t8Go8SD3Qh9_ zsG6)mYriy3cmkBh@B+<7`qDfBdWUHNwKiIrbGh||w0MHmz0^1lmrgC30VME|=tt0&GS+$U}gl0d%}RfrPu zh*><}8z+J&BM5hTqx8@l>UIDXQ~Olo+(hZ}=xPj2H9Q&hsRz*i5Ba$l4tJVh(B#SR zBi1K78>I%+pHZJ#zI?1`HaM9HK^24tSixwXZ*(I~$WNR4;b3}I;L{r>iZ}J2Usx0V zF{mS+Pu>`rwU`^}cY;$fWr+GutFcla`vGDx_t~X}skW@CZC^;eb%L_`L(2hLbo1Vi z_jiEa?*Upw!Mc|(cbqzKqK#K!lueB@M59<0g=c8OGxi)L{~P8?Gs9*1FmR&z@9MO2NvT%L&iC1_T$(YMiO$Y$C|tfrg&<*{NS(qajnTg&Ld3&`Kas(P}(7( zLvkw?ts&tboXGizVR%$*qf??^2|oIzVdB(svWzCsDdRow#75bZHBiQ$s`l2-b*-Y4 zHVmn}B%)%9euyM8Pp2mM2`fYBYAUowDz?{~cM|Ix&(M8zEj6Nk;tWj`4;t-|Gqv$d zf8}8YegCBJ*PmNB4~juaYrV9{H!8M)773*MYHc6zL=Ci4{rlZeBS1!b=cR8kKZpus z1X&lQ%bf?%l=BP&sAJmPLiZf|Xu%W}Ek^8{<~aw!+KoTzgOEm>)AGKlvrs2?G`Om0 z{Mc~lhj_kd ziKchahiZt)BPhjFZPxa(!np$d7L6me&oEE9SuE{%`E3G?J0p2B)e&uqxboiRV$7+ zUiMWIDhFPnc9j!h7oQ@YOZMk$wc_~(QPCCPH!o^W9lER{brVcRskdsV>LtGhXuS-y zx@hJI-%Nj{1PxVFOp><5G4-Pfn&-T`Iv?`SG+k$UWxb$2sDB+%P4Ce*1#tg^n<9Q= z|3v0V7e-;t25_&HHr1g$Ay01lpj$HN%{;xO8t2vil>GO%Kc&z-oy~{Lkzw$RKj~Js zQ2((W(KraX& zCpt}^wP~)LGYx@~#`TXk1kL98 zR5U#)=AEGsk7DTs3^hbukV?7Gs{^RVYm{Bo4*eFLLj#`VZL(8SC}uE9UXy1ue^Mzp zOV_WyDHh3IqJ!71I7-Ehu_Jw*H3hSIK0S%0rcO+6wPJiTQJx}~QtJEtFzF4dzIwL! z3=8I{Md>-k%c7%b%JonXv?Whh7YEGn%&vSCP;O{coZE7THC%fqopn^7JzdhxLS^5A{*R`|-6ifV_uSR->r;<@8bo3pz0?gZ7#WP036 zOW{w?9Up?@2GMbBdN5T!t9r+K+!+K-%}m`Kq2}2NKEa$4)i$Rk;3uAmb=3U)5yg|0 zdD4Z9z8B7$h;9!OATf|wQ|y4V;{7K)4V0nBBSA47Ko?~Dvk^LPi_XJE#o1+nk3#ZP8ZJlktJ| zi8)4XqOc55ms0!fz&WVOqlx%+%@mEWw=WanH0zrO)lJG2rzYIfj|k4#(^0gnd4%*$ z2y0ND?Xc}^JYk}{}XQ80ghGR=;28j3rw z25O??zMYS*q%Kol04G0QJ`(zeJ6F8_e3C*{tBB_?wOMnJ0_7XMzl0(&L9lUFn$ov= z-a#)Wn%g`7osO%W1U)c@jH39VoUPP++d1tyHi5x+o{2`dD~ddq1QLUy)azp__hgYV`uBzAri4sqlZ^3T`UW`mDZdS~5@;a!!CoBgz??X3myV zVn6Mv?j#fyNn0~g{^{xxT%CB#tWnbUeiCL7u3D))TJ`+T@Qei0gp;Ab7qSWaJ6${x z7=cO8;i;+$fU<$FBtMXvCz{3R#O1`*qo<)ka00fz!7QBmPTfJiZoyTh*HGIgP)jT& zR=5y1*0>p@Y3hA=g6${ZXr`Co|6Hbh_m&DyCcBbZD^H!|?>*#uXPDZeAN2G6U8t_Z zQnE)t&?8gTyOW_}-v#EGXSPmY_7TX@-cU@+I;xM(K;==x z;z?U5>*A<$kbK%@6S@>f3!av_LQkXRWUodKOwxO?{CtCFt!ZV^`@$LRCb~H%O^ukJ zHK}=uaIWk<*`SJuJdu3=`P#F&ODi0JG!eq?^>H@f<9a&Ek@06c_+o6c-5JS zMpDv1Q3_aeS=w?-;^>M(bQskTlSM*w)l5nG;pu-NiaCwb*0e;la}l3zGf=Pzs+Jme z8s6xY%?ivrs)hXdCq!w7#IVQ1tK#|jxi(eCsXpA(otGdguO{60F6=MjnYbUnoEN0| zC2?fBr=U+Y>LFfqIhFFtJo^Ws1E(l{)TCB0`*i7S)P-J!z2G?=v8bhLLAkS1Maeva z^VK|QtQOHo77flfS=3C+s&9q!9;O1Sl1V&m(TD1eHJXxC1Er%0Fej<#(fq6+L+74SNErfymg zt<5P)4o!h?huTmx{1fY5@J@KzvBHjqH*-|i9$p>k)|hEyQBxwE567dCf{=!s;=xH@ znTSU{{V1CMRLsLOF)t^2MGHy$6O^C43^F|5ai_~B6`5%f1iB3U@y}n# zd#H^{Z-df}*HVxxA+hkX^r_n@8}wD~ym!R6LG>9b<_&Z6U^|T8)JcwCAV-Fh0@HBE zrAJuihvKZMJ4gHM+urHs~w+b?w!|h)Df=+*GV>oz7)L21>f>! zenjV>FW<;j6Hqb4cnr7xhDc*CQzx~yUBND(yJesUPug4gQv#?p6TQ|3%e*$v@Whv& zxr}l(DxB?7TU08TPD`d*A3TML%9e4WXADwLN&VsJyl%>+?7_f9U+qnFt4X}@qmGo~ zC{H%TLW>mY%J_})Ec4uDPGp`&+F0$-C`fHcoN9io=&ycY$pbDm&#FS@PX&XHp6X4t zMsNN(I)!KS1sL;*OfCLw`CWs|zDX-#O2s)mm2dD|p>sg%L#T9T=-YW_IvrppYk4-YYrTkb167xRlBuOp!lXrJbm`*f0CcLvjVcDZ`wUtN zqnep0FzMuZx<8#x@6H@!H;JS{X%Y3m%Ws_?09aj`ycz|>X&7x*+O_>tTH+{5We~2` z&`D51y6sns{8~feh9*t>j4pFoEGb=>t9+$OI9+&{7qv`foC7SDn+lSi1Xo(L^nq%d9dwsNU!q>ZH7q4F`owq8=>NG30t2kY= z`u0LuNNLhcw|IKLH>Pae1*kS9CslI{CN;r=EHif=5Q*p`PjI>>?=~ZrOzudlFlTW4 z{2HG3r~CVN^mH7tRYJAauhZ``Dh9`pP2cC4E}_r8JR(^BywKcSorqc*V@dk-^4zPE zmrKvu4xkzB8-HSdis&QHF2aCF7wDI~%s;w4dQGBl0`lZ1%G!uDHFT?^Ax7VSezkheYNB3xO-=w?R9-sI$U{yE|kn=-Z<8k zu`KK|Dcm^WvVDF7b*NDN5ksZI^jtWt(}Acu?L|E zMt!Or%O@->m&udv(iS|4mOWK`aB6XCm<~5#*6ZDiVaO#WRgON8ToaFLosokxO&@93 z#<(kR(rQTbgyWyhP1-I>@=>BdFQLlQnRV**D7Eu>j(o)X-!$5{*5CQb0t%X& zC`^|rPaV1@UKQ+R{bVJ&LMN?tdS<%+_SG$phGqk3_cmhcv!68ZO0Kois8o>8>|1}{ zeZcM|TBN!>L_MoeC|$0T97QV7GG4sRPS#Av$@A>mAyI*5ndCb2CXsrH4bVwddvp1P zR10+T+$PJe5C4jcx9xja8b8LhAtz8JXcDYP$Fox?wd@3}D@%J7zWOx#)UIiq4za73 z0u}1AGe}V?_P;(CHc-wr9&XbtLtzL`Bs@B0G`=66Eqy78@zyXy6Zltk-hC?3zXG@G6TIu+Cmq#2m{QX(iKRWtq_`~A@Z zeY}z%dPQ7{d*DT7w$@ahH2Cr<$g~_YLu24Q=t~+4L-dEdb6GzUXL+7UX1W{d&E2S$+l*mmg@82 z`%i%0y%y*omF2dxS^maO3%0uarn?yrO?yytz;mLgX+F_2hG?a#ubc3jp3J3wow9PV za+z%jQE38{Sh~wgRgCH3Sv77#_twbB3B&;H9xxZ~wbn=lxQTXaBSI}pGH$PjtA~fr zU%tG23DRh^rbd&S&X!M!q=!sHTQ^-w^}k1Ede0~lhDOlHbyfULPV~>DD$EGfIj9T} zRZXx#S1ZcB0i2OV{Pta;c0I0X8+r+%M$t`GvJ*G4g;F8zu&MFVn`iX-`{Di1FK-vp zZ^7Bi^7-caNOaHXz1Di$z6$0PX&imcL52Is^!>iN#Z!Q4`2subNt%o4rB}P)>2gYT z`M@X4@-(IQ%L(Bbik+M_H-#qySC67X9os&}xIl$C2MrsZ4?jNt{DMI=KL1UcaeX?8 z&V=+lZa<+^fqFLY*WAP3K^A=q6ocg;J#vw&n@>fVYF~|Z{?vk*a@5eKtT+Z1kQ8Wb z4ZGekoqPL*8FfmjCaqo(s7UFQs)4&d*8(1eBEjX_yWrF+O**YS0s4J_4pWK7Hd0Nf znJ^hjYa*0vDR$V(KDo*1k`URickdpyZjJcp_9)O~&IVJgg_FzYbQs#qjt_DT$Bnki z%;IpiO^t#ry=u+rCZDI88$snss1au*>Wnx9OLX5f{YY}*Jj@ACh<-<+KST8O=6MIr z8qw6U^h_X~E}@jZ___pD6KHO;FuJ~Z3)px@zF9Kk$kb$S5S@ss$FD7BJyl`Ou={v{ zX;@vkhlV`i7n)9B>EhDf>-}7#$vFHx9~)%cSIv`*#3{b|`c!yj86VgAmhtz!`ZGL7 zqMtt-N1N+`8QU`D)bZ)guVP!M3!%0i94(s$sD1&_0cim6lZC6Zr@1Rhh+k;MCa~ z-frXx&LKKX-+wlS!qZGIQM=7m8<|cKrQ>JidGo{;%?1Gx0uzoHB;m`&hAOxS_Y)&%t zgES#4Ik&DZ0eNEfCZ<+Ssht{0w`A z5se^%3$Ebu;)5%Ss3@qYsNjMqh=Tawf{Kcui0FetKt)^;5fSu1=lsbPPiF2cUFOa= z|5@&xcvArir=R|&ZeN1WXDCr)H^4`2pp96SLsE5o-y}+%(($>1rt(yNZUl-Qn*PW@ zyQuyV*fzK@8#GBRg;NR>@NAqdaT;Wi{*G03Eu>`Y$AtyU&AwiQ|5a-v z!nNF`*F_(6#7>ZmM=qN?L5OPTpuX@Fn!o=2 n0o2t^;D^RcwklgI`dOKpL}@8} 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 a@bDYi?k3>QCPsn)00006hA3uI#HTO6 z-@kvqX3s0Tq;pY~SKHd!O8f8ZI{xnJ)vGI4uADb--t_6yo0^*R_4S))-S^JDXb^t- z`n@j`mp-1i@%ib~r_<8X4jnp_(Q>n|uW#bA$2V@=sH>}c`t)gd*(EP8uV>GmB`lCh z13HVfB*-uLy~6(W4Ehcax)>N(6g^!WLn>~)Ie$=)!GVSOfJM*p`TxB4njK29j%cyH zQkKVf_(>ISbGe)W|5Wt{UQ0w27jsCv-q1MYCTP~RA+V)aY5rZSYlQ-Ai!`G4KB_!s z?6fddcX!F`|NpnEMrcpr?ONI3vD3rs#8tuIA6a`F@36&he|zRa7taKV0;k%JAOrJl zx!UTrtt!uE<~G&FayDfi;&S}(ZPV&vg@bAdn;13<6wTY9)1b;Q>9c_3wBp^y|9r}r zC!D$XvZAAqflZ2OYU`SQRfZ4;E_wfmb6W#eZ)R|EUH(|X^xRAP4u$QiW+yzFHKdpH zUfWTVT4KewsQ(8~r$Yj3OLFrDh7SJ;F41)<>y6!4J3iu?`CYstcy9Tg_gMnV_c<6C zePo||u0cgjA=ha^$pSm)Je|8ItyqOtXudQ%vZA@L^@{X^R%NTXOpOzl<~dLBJX=4( zQ{2g>WK)=jy?A{w+nP>&frIDP)%>1%pet@ZgJdMjUOPr1HuvrR4R2m>|8%OmIX_v1 zAyI*$DKw~^`Cvl!kyHQe{hc@TzU8vEpRwP-DY@ksN3WoivWZ(p&jpEvhS&t2DHpj+ z`4Xj+7lgT z)BEF#vt<%fZ4L`g^SJQS`e^!A&yu^TCDKRy<8>wm9q!0hy1u-FZG}g_OiM z+B75Lq->lkpVO^L)A#+abe_Y^bL6b!)980^<~s|2bVEhQ#5+8mNly8h^l6{RL(4mQ zX8GM8bo8daUVr|#(#+=puipR5Rtl-w4O}8b=cxr3V`fm z{1}GLl;xOY;c~si>cGp)AGXW&WFP$4Vk0sAUCrMwmsaln!+gkKwP3-aY6)QJ!QkoY K=d#Wzp$P!ENn5l4 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/humidity_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..b530ec6f7609d53302d162b6eccb1af62781e446 GIT binary patch literal 16843 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 KMNUMnLSTaIGo6(H literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/humidity_progress_bar_with_background.png b/application/src/main/data/images/widgets/humidity_progress_bar_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a54fa832cdfb8541c0e22f26c2f2b2c082a86d GIT binary patch literal 12445 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 b?YI5_*~;n_iUXGY00000NkvXXu0mjf%ugzL literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_card.png b/application/src/main/data/images/widgets/illuminance_card.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7635b6941db0ac18173ea363f79df88b985838 GIT binary patch literal 1829 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_card_with_background.png b/application/src/main/data/images/widgets/illuminance_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..425b30ae9bc1c6d4029ee0ffd9ad6c8915b6fee7 GIT binary patch literal 10750 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_chart_card.png b/application/src/main/data/images/widgets/illuminance_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..8ba409f33b576062147e1d4238d98d16991c1190 GIT binary patch literal 2414 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/illuminance_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9db3312f3124a12c75674b373125d008f1c661 GIT binary patch literal 50586 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_progress_bar.png b/application/src/main/data/images/widgets/illuminance_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..167b372b5998ca24ab378adf152ae95c312f4a77 GIT binary patch literal 1300 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2Q!eYQ@lJINX-xM32}Y!;KBX-_kko(0K)$N z|NjjM3m{ujQSsZiZ;u~8j);huFk!;Sj~{JqZP%<>bK=B_yQYC9B_+Fd?RpfHsjsj9 z>(R6K@85q|vE}R0v-9T7`}^^8TU*g6^lsLQ z`_8eq)LgD!z3S!Vb?DHc&)W~)xpSwku5RPTjUR8`{jhS&lZ3Lgw6q5EaktaqG>E*la0Bkz<9qhbGIUJwJ0IXSrgq%F=Bi z`Jeypk3RpRYns6J3EcBf{5-tw^CEHk67icy?|wS{=;P+{{d=Ny#QlGKS!wuA)cnHa zziSGFb@Nz1y%5+Wb7-3LjUtX{zQogtIhHND?His7Y?C>3jrGI~QAf6f2@T)1cx7T6 zcs9*y%}HhNv*S3}_4MPt|4zp;W`y4PmaH?o;V-9@vB2zOlM-9QlH9j1d%I!L+WqIb zHg0JMzTPAQ*^UxF>(c>8*$F!yYI=i;VtHN=%mVA74S*U?FbjX4>ggyv2Y zkwH$8pugWrVd3Ph3Wdg^OmnAI>9!%cO6HI)qynEVXN~SO^ zP@8j{o3lAWcuD=5{P*2O9Lr}YdWLlscgVdz=NnhdzkD5=WaC+$CDLDHnnJGralR36 z88D|*)noFMmd_pA*n@@5gY?(&%X+ijcY5|xX>EN#;d#%=B3U03kC zb~f7?@h^8(w;sIx=l*)<8^stQg*EtKg4t}J9{>C)-B-I^GGaH!&%d7%YUgUawyTb8 z-t0Z$>*0m=)hE|yeiNP&+wdoKKVO(k%R&vF_vaYJV`DfRIUO}UV|L7#w(tLDUzxQ$ zJuY0%)!v^kU%C~#@0iP073&?wnG9Q=oIS*~^79uh2Q?#x0$X>6@JmcDw)lB6UYev^ z)W&kbIC0%_hh)|hf6t3^J@9DW>Ee{k%F*(erQ#CvH$Fpc6~2H_&ZO2i)kX>IO1dGT zO%~^Oe*E-qg0$oKFkIgAE%V-@*m)I-_G6nv;5*FNpXd?Ehk(z{oS3N%5mmq zcXQt;9t8< z7j7-L*}UIhbkSO_i(#!9tDUxlD&ATpkXy@eM9OaOm#Z>gEmS_T&V06^U9rZ~_gzSp zEuUeHqh|lt{pm;4>})r$nRxlnz5kbLKCJti7TU2*>&foDyVDCL+87PqY$?}2s>=S* zhNDX$g!?k*GuJn^t-_#?1@B6^eGUwx@9Ok{>)9TkUJzCpP0kn^+V>>$YwZnuX zio2FvX7uwvd_Dcur0K6s{8je%6n`(Q{Ca7n^?wHLWc71e>sO`#%MJ!lS3j3^P6tCZ$~J0Oe=9nDsDw6I4UA=M<_opByveADbKDkO7DENet3U_dE(O)En%Buq9Z{QUZ3 zLMn4eC_FACV?{7MEF)GzHEu{PQ93DUNHAbRENVn3i(NHfL^5zoFK9+BWkoD(N-!QC z9*$o(PdF!ALo=FaJ#a}aM=~XlV?3N_I+$fRdr~lcPb^tJD{Dq6fmSkzTQqi1F;zV) zh+sZuM=^X&DXDTnMl>jMO)sHrJfCVhi(fjCVmW3*C~8J4Loz0$Z9Qm2DnKzOQ9w0X zJSUoGIgMdFJTNGMTRoIzJXJa;HZ3NXW;~K%HD5+GYEwgmSTk@~M{QL^Pd+kBJThEC zFIPo5T0}O3Q7TzMGF?9@h*T+zV?kd-FhDaacUC@QM>SSJF;hP>aZWRKO)f|`D=R4{ zgkM2qKqjkmLWNyDhg~^fNI7^Y4j zXi`x;Ev|GysAMa4TStdwN_${RvUx^fJ|_OvrFT;}{@JVk%aP!OGXBn%bY4teOFg}B zEB(BApI%{bF(vDo#%6i5p`~vur7*0_w;n>WuD(Dv8>pMoUMc~PV}C(C$gr0o z2o?&1LZS2z=*f#Gy?FPi2an$TK8dsHlh&nfY|kg(m)~)KkgQvwKmdxs+n%OLw-7J4mVS+R;RmY zj4I_?E-$eh$7M1ZIwNs{Ac(b^ST0-E2+Jy$#jGGmEX&ap!$hOe2(D<9Vkq+StSl;( z{o?JX?;qZ`FD^bEcx|t3w|kzaX%k2HZyCmwm6erClI53`D=X_)Vk_&h_1J1;EgB&p zTtdRGxjg<&WTNpcKw#ynwIiic+1Y>F1;s|PIdxA;LwDn(S>o%h&a-Z#QBg!OClCr6 zr$Xte_D26Z)kZXh^LxVyP%Z>e;&vqXgzI}Xg&^|agKJbo@ zJsv62jmY)vF`lr7P!iGrMCSvo`E z7c)>Icrj557@V9Ht;YV_-MyD{zil5}d^)z-(DH z^)9@Fwr2yxwtZW3bVHx3lfMO6S>A^E0L(q)A{wPBj^;8fhh(q>iK63ChEC-3x$5(3 zwShG%5;6F~)NPusi&&UEpB`)%7mB5n%f$3RCzfZB4ah2kqbAfuEQBI36iG!u5iV!~ z3<`$Il`D^L-q?FT*VG=26Q>rDzV?!(@s43;DTNfuV?_HtVHi+Dy5_A@B0(62CF*bY|U=rC7C^EGLlF@Hx{I zC?uH`uyR?1yasa#vc$q|Oq4+)@Haz4VL@-vdi>_j-PiL6e$Q*ax zwTa;yWb;Td*?Xu0?#V(h2+F+}EESJa)K+E-a?muLr@=x|fS{m7HCL@3Dvh1-?6ml_ zmE7b{&Q9F4J9VdLD6H0(*{ESDVmT|5RDb{&R1k3q9D*#@vSqOIJ#7>c0)5s1M6 z0~8D;U{al1+`s35>PAi$LmrT=5r%swKKTH=o=d*6$C=rh0NQXw&0D^>bG@>EN zIYC6o1yPjYFoZs=S!e+e=mGZuSjZh!c5d!IdN4QCHW&`Po^7j|;pnQb>i&FgINHC> zv;t9x1eXH?!9czv(RhSfLsOxmGN@S+!e|^6QeLQ{qENJpVsX1wubZWk*&Omsvy?WI z_4C%OzZfAF*{sacQHEK=-bn9|p5kCBWCI*nLJm)d&18UxWCJ5G6`2@l<>%$f{+&mA zdlS_r{o3|OxHaw8M7yQy&SY*F+ERm+APwQP2-UzRP^^L?y0sO>fZ$NKs9dZl6=#rk z6n|McRCX}*PK&M0I$y%Tb4_5FCSRxzisNy^!ZgTAY>;iTwXi-}EF>I-3pqe3kdc=O zO&0+McyY%d7WfN|H`|Y1&wD*=-yxysX2-QB!CSHh(<*r zUvLjDGBt8FK%lN9{Nj)Txd^p@{TMV>3-UiFUKD5!&88)ibXRp0R8s)-MZ z|HoZevf({$P_>b(XsLKS6Vxq&P2-M%yGij^%VNcX7N96@w)o9qb9z=9riO)jGLNkP)RdhIG1rExsVI5y4(5Ja5>Cn26B+?D;s z_UWKrFQn5+*X7+5Zzc<=!t4vuJyH}4OR+}e%+y#c@IL?(1eSEIToZv2Xce4LfD!nK zEKEL%WAmc2^XAU(dt}?g;R$ok(NtB{C;nuDL>QBaHu1x8x4xWqODggv>AtqM1~Jf6 z7^EDjTM9gQ2c!ECXCchI@wnTmZ(QF@Ci(PqnobpXya%&xx4&34uzUPOchKn!2D9@o z=Y#PW99c3g1ehwIU}X-uAQ}e{$VEtzuaztPH@ka#FZCW~p6b{=&CxI_F!7AJuFofv zm;TFt4^iQqSYNrE9GKncsI@hOIgY0f>v9YYnm8$1)RmAE4;7^WN1IBgC~ zrBa%|J~%(`%x2wwe>7T*$FuW7YIyeU?CcDYNe#vegr4L93p~J(f^>)D;&(6zMNT}b z?C;-wz4y>)JD%tGwyJA7VXK}#F&u1N({$Jg$Ef-8G`KvUhwsZ^ zK#gB)Sj~$PaTul|i7arp!qLg>LuYE*ZFVaf?w zL9R|QI61NB-n9!Cj>aBj9?jmpY(>2ogXjYgHi$oXw3Vq$l`5G^%aZ0lFTec0^r_eH z_j}*p)Sl-v3seJVz$Zr+P&@p4i+!N&%^Q(@uI&dvsK|rU2N8Lkem_1J*TeUb5@qN? zFa!)jFLRn!#eQMqa2|ftsR#v}7V6#s*Yi-@M_6F))HZ=>d>>$>XF~WrnaZq{5(84e zixMb`K~~DM(N?R{0;wt~Cii)HssDOyZDnQc^@k5Xddr`)QsqGrg_hJ!jG`3@81|Ddf594H!_F`c00j{WvT#sf_-OFy*wd*~361CH?u3P#bG(2$uJb}wC_@ok z7<~}D!o#jV{U{!MIwl2*dhiM;hb|n&j+B|2vMw`0I8+c@E0i4Y z2ibfoA8n<{>wA12f30%=(P8a zr6KO(!le@0pq~jc5-YNJ2QUnv5c3T7j2FGN!C+YLHX4m?vpyW!FnZrjHd88=iZcig zLg92;bS=lDXc!Q8I&}5Y-Ses;#E}#N7=*N|f=9q1b5*S>$bwNeMz}P39JjSE5WpwY zb23}R1`aJ@Xc0uHnGnQHj7lA5@#xTn!~_EjreQ_JJSzo~$>p`du-Sh1s{IPDcDK2> zNUZ9;G|_oW3&lMk6mnyHA6h1C!@)ptv3KVr)&57f3k6NrkrOxNFvo>$cM|xp5$3eA z9IjTY@;^ixy-Oezo3LYSag%kpKqF*0=!Cljpx6zg-E-{%mLzgoMw||^fRXh2qu5rX z(I^YcO(xBsgJI(x5HxVwfYPWB0pmme&2z}VvQQ+qg)Zz}&)JgfV<8gHV8hYVP(xYaU>5+1eQMxM}Uil7v|t z4aH*6#cb+uetMdb0t_1sFigN|i7C;CweRBc%CJEYI-M?1GziAxfTXcxf_r(ZNOlVl zaN4~tx04r8w;O#Hgo>P;JzLNOsvY+gUC=n5aKw42gX084zQt8_dHwF@UwI?>2*x%K z;u|=C0$ig0VYlmDLg={D&F#idGj}}7H9nC}$0D<*9zQmC1O*zbRyJgn56e6Pyb5Ar z9EzsM!ruqRU;aPxaQK8ei0uX&hAj z0Zo`WbFGO%5Qt8*(`@1!Fgk%^Udn3ZU+FmO*(bFJJ7g|qW>aCYkH+Lvm4tW zVh=g=CokM%xI&~vojsATeU|5R4I+>YRf7_E{+57AJXDmhqG_XIAP}SXom=s8?{IJ4 z=mrYxsUQ>W{}>5s)b5F6p_vew6jYHq;t%@0!9Y+H{cN7KSjP8kKAW9?*=%D51OUfD z(P+P0v{5YA%;dA@Ql$uGP+*|+0|pHPD7H@=OUEufJ(EzY<#_!5oPaS1vH>Wv!OK9R z$cCcGa@9yUv-rnhiC;L*C@3*tQf`;s$?-7;iC_sIhtYyhp%^@>ayxa{%LEweAn;i+ zU|FJ+%bN4GrFO@D{w95N?E@5b8^tFxM@KBpI6DRr>UVUzx9^<1myTS0dQj!d=;Oki z&MUWMSu>0(U(l)=gslROrWu9Ah)0b8SzlSfC#TjDowiU*Af1oznskaeWC5qO@`&r; zGoK`h64JsFMQ?ICTQjr$SM}lIVjY4YY11KrH*FL>Gh55fXQdXDK{pJ4^J3$UE!*Kx zM`M=`o>Flqh$74BGzwX%DynMms;U@VvLDRTjlL6mY}oP)LzdCnD1K|q;Bo4v(j#Z%;41x*F5R0sqR)WnlS z;tD}b@w(~m25A9t00T7QrklY76UT^A5jZU>ZOVr`b1%aNym{0Q7JR}p zn&ywra9D4D{PN`+oiASi1!vJlu~e&luD!@U&shs_+kF&!=pYo`xIf&DL0>(6T9t8& zc4H2k9?#24ScXy2914c2Caxr|T&F__M)kd61dL;~7=_z0DWLhqr`d(Hb%$Ym?2EB6 z*t(6JBsb4v!D&LA0N!!+rH@lSyoFTn1NizkGG)r{7V8yBn(;8{6Z8 z-yaeU^x!L0+E+*@xc#&1v*4vsPdJ>4&gZAR;qcUyXCOWh=nVv#gTel~=DOCpmX@I* zM>&a9C|W*gh*Wow7Q_tv7UX~tqKt^#!aHZ`ZfH35Df4Qp4FO`7bUG80s=+#qlA29s z#szgVe=j~D6dDBWZ2t1s`qtLQ?#k+T`qqsz)Y=c;RLRYJEbezms851TwefIX38$2K zOtnOK%9HrAy(tjr51u>M-`eVOwZeE;;Y zxDLC}J!Xr+3%g$DMuH3)jc%uLGL+0LjAt^X<;B|%1PTp;c6RpG@7=p!+D3-lXkcm; z*8dyA6#U@G>5=ni`&vHn9q-ELQpLQI%|;=)Cq6Ln<>;u7OsZ>Xbzr?X9I?SzITTs| z4w0NYCB_TLE&gvx)Eks2f+8{s6sPMOhJ_Zq&~3Bzm@RZ}<~*n|Z8gcEWD*RS!e2L+ ze-gW+XyKHm9#{qg;+)l6vmMgv`s!CR0U2S?c0a6349GLcu56i+diil&rkyq3mC zI=KkM*cg1Y&Dkm_wAbMp^%8UUJ4o}_-Vv^psy~PdAV9%I5(cM0VIvkgyzd zDkG_BQ zrp=PUt~cw9XhFB6bBdOiS;!P`FD@_t`VbHY08|7|VO(7lRzfm8ccJ49sutF9#K1j# zzOV0-pf6CPq`+)kkk+)-=Wx#uR!-aN_(Pz85csq7 z3w{gzqUs`(7`hxE$MyN(P|QrzGZ-bSi4R$}+9xM73x&+zYZ?j_11}y8$IhSYTZQr2 ziEGtos@|>m&E>w`=laGM_{y72WwXUBFtWvBHl>8U1EbX0=ArLxzz~6m&6%~Pt%A_< zOVd#(bE*dYnublsQ*v)l-^L?C&VJYJ3Ij-d+H5_n3RB_DnhY} zaFMW|7a4Wd#*&7)$D}h!vdPK2(KtJsM$&@fZ>Ec%Dy(?+*?e-plu24Kraq)!P@f3J z`y+(nN?q^u;}JzEhO?>tVsW37Rf?XP0Z`PzYcM!s6ETCqBvl%Bg%V{2rL_=ZK`^+v zZ+qoM7>*Dm9HQik>*6vmkb>QasG&xTL4zy_O)E3y8Fd&33z@?HojZ$bB-Ha!>^!-* zRS3DsC{=)n0)>S7_AGY)=y9$iv&9_MX$f8skyO}wvNv$KzfMgk+nhUw1~nKe0z@1E zr9zX+ziQ1}+>5;?d`_VXRc*_7L7~O;I@NdWTI-P6fO(+z%V=`uBqL(PADSJ{6n2;I z+*ust=BkQ7nGc6Nq^eRxy3BKQc{ac4{e-`ZOyqn-;wRNAeL?b%yolo<7JPKCv+_U+yuYgskO zMZ!w7xJ0d`TOiMWoSC`Y>2TO$=mm7No?dIOvr2?5xIX8EY8=0$+;W;G|_3b+X$@PT8FhgJEv>?ypy$ABsJ$GLp{e zxgXA)5c>&Syqpkjf9p5>0cb%Ekx^kKl_C;|!ui?(Mx;xP4lLCka}Od~Z=d!1pH|w+ z$01b+y9ElgIb&ocr_@-W%j-vmv0B7z95Y)kS@b5mjw9=3t1~T0k|~`Ip$HjC?>~9? zTok`N`mIzDR?g86->rI+e4^uF!jBP(CU2ZQqDYR63WH!NmCAbZo|>jnpQXplO@rI& z#*MVwlOcEk08aT+ljvHZZ6lq~AO|4egG9s?b3m*CV!NQDbF+LzC@8bSzqwL3d1%@^Ns3168$CP^>8FlLH**;WRow?Hj z2#zSUpwP)_BO)X{nVei$E!|&Vem23^o~+ZjXSv7!l;ua(cDQ`TgzvM}^&V{*K}74hA@oo8_3*C&{q+Y9o<=ha7P z7AQe(cG#E@)<-WWaz(a?;yBHoc|}q3N@^Y{*c6xn1!KO6U+DKI^+~6`oI2%46C>KJ z0lSF>;~rThaEOCzj!IzC8zB~b7hG3b%@+M7y^hBT3S^Wd;Wk?(u8x_$GX&$_`V)HJ zq3X2vXq{?=8z{O!kqu)CvO7B;p3g(=d?JxhQFLB5ON}O3 z@AnHBPUBNHaCp}wu6A+%A_!DRia3x{tkNEX7VlmBV)(p3apn8gW(#H8uP4G1d>|Nf z46c)=brOCK1m6J0<41q|8^`8@Kg12?Mqx4}-@5jLD6?!Gu`@-p5L>6*Sj2NIYUaGP zaqpBD5c#lzn^W6PN?qzS4WW4S{^Vpx03oBaQx1mqq2dq;#i2wI3o;5E$6h`5=0_I= zif_L=%NI9TH)OF06yR|3w>u@KZ?oBI9dyc*p~>;>%u1%ZMEtrS9ODLrum<3Js`kx=!56{5^uuMJ02(I|V^ z+^!}t)bjKBc_m*{lW4y_Gc&_iW(nzaghB6@45kAKsG;HW0M>z!Vr1nZsR)E>=755! zn~V}DY#3XY{Ce1JGBIS(H6$6|TwLuL)5ef6rdC%sL|Sd_mKQ?=odsYo;)kF$m|;2j80&3hD&Ctq`YV3aDQx6cS>3lwgH z-drxNTBp#CiVF~Q3>MbND|BF4*n)zL`r`Bm8P(C}8jE#WE*pG$1Hvq=gWWpXw_Bo8 zVRxpTp>gJn)k0>4ot#pMt(>h=X=9_1nN3R*VhfC&7OE_+API#u>tK!fa-f}!v{Wt^ z_tYM*NhIRJXr8A|O<~kFHJuF1BrSfwGYJMe7g!dv8U*!dC083VRJR#sP^h2gP{G!XZArwBx1J~8!G(~s9@ z{1kR16mRw(v+5pjv?fuZheq!(4dGwSzG+5sW^O@^MBqawmJPH2MgVC-(Ij2NO@ z{KK``yfzUTUYwu_`7dvqrOSf(nb4D?>qPNJdTx8I-j6-K?~x~sQ4L;v)T35I1i3k-0ZGez%Q zB~l`DKKF3-!mXD$+PQqSy<~@)7?)o=MrvNr3w+2xX_G3PfBYwicte~!I(h=idS`tN zA)Zp>oK{j=3U0W~^l0|YOdYlI?dA%sxQ#@xx!|Qz-ray^d4+{tyy-84`Thi?(2Ry{ z={c*t<5`Co{#E3NRP72G$X;a(CHI0C$5eGeN=uEu$Sk*N+fh{4s4*B}=l~dNSpYyw zVbD-O4JlV+kf?r|oJ5r%LOcYKv2akv+{6k%&^5R~PM&Y~yJ>TUL=ag#lX}xjIoHg< zyXN#@c+Yey)6+XJAYwvqwR4^J-zQ1EhwU{Sl!8J20T5w@3Vm@#OOqBC^>T6Q&0Hyy zi9%ZlN72dvV;xYulL-yS^=TwI`F2!Kwl+6A<7=o<3OE(nRn%URZPc}@XcgW{-EwwN#nA+UTIix4<&=L zDD;j)?l_O)6L!Sou+{r_Uh-GxAjVQPsyE^?iO1FG)mmykjbl|C0eat+0Ww-zQKq)_}9}41BReG%MhK);v^og*d3T=lgenN zf@^XfIVnt#Mp=%Bs%%w!W@1iy(48OPp)|eP>2#0-4R`*J6?jx9O4|PWcoYCUln?`L z!ztCIrM>m2@!cH-$?>OHYlNcirxVysvd=rR!7>5tL02VY9nbS4Y-aV zVUjOy0?RY?5tXng&ndD+d&=b=3?Ussx^$OL&d!yt()kMu1HxK4 zGaetMgYoVah#0~Sh!_XkmkFhUA;yS7K#U)Yi*M%gnIh~)j!};$T*EThu%QVnEW;`w z5FW)w1s!vIZmkjQP-aW&1Pt*`0znNeKruV@Zl>RLn$2xm{S>J^(+kX0kRo`)3;%WP zo*(!@FYp2~!iA_FR*U1f+5FS83JJUbFoeMS03e2IAGFxDhZGp_;@th!TN@i2&-3D< z!muAnORC}0Q-c+D!Acf%9i20SS37}G?Dl#)`*e-FF`@)kIwIwsFa;nOAJN>(mzF3j zn%mnSwjpva?Klj#9nbqBiUZ#V1!oE)@k6KE?}r&Xn`NYwEkTDEfb3u9MgZ9{0i0$j zGRTj3LvFFfQI6COibZH~c_x#KFht01HR1#V1=+S$Xt{+1MYxgBEX(Z_TG?^j>=f5A z)O9ON0SvK)(1N}uar^T1h4eLMs?sN@1gSt2cHT5V9M50&mn+M@psV<(DCpKk)yz10 z0Y>+rVBc^#UhMTRBgh$|qBweJmm2^fkAfGRD0l%1;zbcjew{Pb*J!O-94Xz^I8C}P zU^YcpVe6aZ3a#<+_p^dR@>nG-S9SmcHyDK$@3>m%@z17*CK1jLJc5HsN#T3Gzg(-; zUVrz=Y=t0*yTFkvbD*-NcQGYosW}C2+57(eeBl8C51%^-So{oPC=@RsH^#VJnt|OB zw$LM6vJlsT&KQRBWz5hhi>Z=1UM(ETg9i`JbMuXGAqOfZMLZg&_wlAo;C3p2pu*I1NQ%cyJ?PDOI%SAovMJs=*Ir zDw$SI8y$=RnbDf!6f#!oB3hk=n=X`A&{V;O8IUrIZYttVm%|VY>Y`-ZmC%1sH}eyG zPU6RHnwD{MpT6fk=j7(bFK^zg)0pQ=wVHbCLswPl&%3is9e`YpEUT$3O{ui$x!mmG zoQ4)JK8Y6iB6+keHiZ;!p0LK;Jh*eRxwXa4m5r^HRU+y76=%h9tUIeK&Z^~y4q7yc zsi z45^(EWSDhY0OHxFcmJ0~yn*}S{OgNl-2G~?S}ox2+M0fAE!Q=3IrVT?lsItt09wp8 zW|z(#o~2bVFH>l_r8vK^AWyAJFUZa`q!2Oo9i6*5f48hxu3X>v#!@D}SY@m!Cu8^SojcR1bSjm~2tbxI6uc7{q#(n_ z1(1(SlA~UJksQ@(4Lqe%qXgkLv#Ty?rg>PUpGQGHI@DoF`kg6&Of*` zcj(Msy1=CQkb8M7e#njq-};8RsTLLi@`R2msFAY_jn%Opb>po;zdr<7xEFrJDp*2hqE24zEM6Cz1!jp~;(`Q7XF zhS@buQ#feXRjgtzU2ZhuvUh?c1;x>LA&rQF;^=XCDz93ZUWrrGRd+U=>}HQimWKITrk4hw{)*i#uh}>j#LUQ5CJLDyR+F03_!f)69$f03mEz4)Ej5ZFC^98Tt(Lxv|BXY_xg<4A;5x%y$9tlc;Jk`6vhi6mjj)A62G?VIaj~aRwcP z0fb}#!H7v1au!qkarZSYU6Vd4ruZ@*w^~gRd_N;$gba*qe99inz7>xBBFdkjN+`Huir1y+Y2WVOgaTiT zTb-6?=+X(^($`G0tF1|0(CQjd#fNEvASbPBs!HSR`^CGYTCw-(Gpre~uT>~8_cB{> zyo%q9Hn#3<6El{S>d<#A-);KBfJsPJ00kB=0%|&%>fW$gEe~2~Au@0P5g&|13v}QO z3;#?Rj4_h_B-Y~d)0c17p}5+q4h`ao4Y~^UHfu^<*8x!K_cc|kFR7+xY8(pD)_8Gt zaejUQUtBsZ`%Yts-Lf5uJ0XjPR|%aU+TNDX2Z2fZGDHPVfcUTwQ4&^tyEmCuyn>N0 z7K@#k1c5*T01QEheUXr)$-9!j5-p&R4kgJ^PbqrXyOkdnVhkC&spWKqDJ!)8byL+i zH;AXMYO1i*%V*y&+`Yis!Q32=A+fB5yLtSXMP}B7$`v9i+7>C~$0ji`{c!3d1e(A= zQ`<)&H|Y2KZf`W2PKI8&`aWOG&%`n$uXsotfe}+AWsj040|FV+fn>3Fl4-}|PQFm} z_!(~jqSUx>(Ug*MQM70%S{EWy#ThD8O0H36tKY&r#+W;Gnnnr;Hu1@(uH_4NTZPFK z_aa3<>O+AcaD@~4p_n^FlfGl~*M1PRgWz#5>`f*U!>Hy5osLj&B$nV{@>v+(#y}it zI4FoP?1Vz%iOLvLyu{t>ukW@xd1GkQJaM?fW@A%PIFvdb=WRBWx~A0{iit%U+Sviu z-K5%w=jTrI|D2Gd;`ZYVtBi}Cf;V+tp$Pg>z{G7o7!gUZ#KFYLwfpUM&}Rfa`|*#- z5Aj7uv`9mdsKMa(XYNoS2MCE4SRxs_5-F%DZ#OqLAH96}=FRwds|tl@R6Hpfx}pQMu`~3hP6UNuwEMo@bDhw2 z{Snqc39ww-b=;`k-iD=T_kK(#g<&;c&F3Ye5{Q@s2)>Ymk}uf|wSr;-LF(TH2o!SN z{q?D6@#=X83d1XSy3W3D`a(_D%ZgbpDRm-?xLQ+cT3y8$T|(`}***|_vJfl!8UhTA~dWgaNIYg0UB-)UmQVg2)KNNz&w``VrvH4j#^VhFB zooa!Q8cqs^SF31-QY&dh6r;>pgT?F;T5PDUY2}M$3dRByBq_=sTCjIdy7D*U{LmYP z?LOZA7|&8BI;B99i^9>U7uv!F0-x=6UmzY&e+>)yJP=nUq8JE~FeK#cNK^vGiK|uqBT((jQjY&JUK#_sy!7>Om5DJb- z&=Ju>XoLwp?66D!1M^S#dEUmMPv0bMgz{CNI*TYWP0el_Xdy~~as9MU zsrOugAZlRLFt$RFpwV90+4F)M*Ts<#P-sF z;ah$D@aZGvZdrk_1mUZ4zP3I#?5&(9O+5iZGaZugk0CPr{sBqT`RQ;T4yB-A;6jU9 zlv^>r@Vw=G!NE`j9K09=AGnXXrO&dPmHiak!V9WLegE|44IA%%-_qhTg2P0Mt=r~p zvtdGEn`^5hv!Op|(6XN45caj^+KBDI!-w~_*I9wIZeF`|OB$5?guogg%A4=skH>J( zNu6d70P#>N!~YH~Ba71rR?;AAq4lEn%Bs7=jUPrMl5JEaMDGk@jhjz8nN1 zFj>%NYv+JK1`rtBz!zvCzStO8-5?EYCXDC_#UynE#Au}JCJ&#euj&nR)M#uqOz;|Z zrN#3XcX2liS8>Ju`f)pm7o;Zy<2eophw{+#A5>C~3XYSD4A_BJ*lUKNqbQ;jA-Yze zv=9<0p6XmtsXd2mWf|3MfgGa6&aIuV-zlm6&5c3d4dO_HBElFbVgeva=xa8b00mlo zjeEL2vh~s9clcs`{RKVhE?V$Qi0o7PZd@)F)AwVd3B`LTa5p zGzml2A88r~hSx=lWkJ;{0FH`%D9$m?R}^yh`pynb>hqV)&A~?Ba*cSaj3Vh6 zwlL^~JzCXJq`^P|(&zS?KGL+uG%0%2ix;nvr8Umytq&F#e6IJ*f$=RtX_>RTJTqyFb40S?te_?9M7$OD`=aeltq(>==9YyiwU~{7r zNJ&Ly8u4f(RgHu>SoQ0xn$4U@Xq1x);XAMW^y$OhbtvvLdGk`+_kK4m{bUYiIB+&gS~vg!hZ19QghDVj zH#c6o-5^dEu^#ChnoSsnr+Hf2Tcwu+q!_s1m3M9LFcH84DCl)&Duys*M;GkIFeojT*C6p9U zq(uUSC^4VT#lTK7OZ-_P=R5(y&$3yTWN-jD#oc~Ure)x|R>wjMQdJN#{*$G~AYiD$ zz)&E3eWfS_0(&FITPqIYG7Zw$Hex}Lg^fDD^Sm}oP8b+KporIQKR({we!l&>)w`MNPQ>-V>;(5Spwh_S;z?nfEZaAPUo{3u1L@##TKq*tq6q*g~C9P3PV+z$iS#5 zB$gE7i_f3Fd^yZ0YWH}_G7fLIoT50QVZ;TynFndiUQ#^T^5LL zoEAkAj)}Ph4||qnnJ_32FbX9Gw-1x)Odtj;u%ue{YY^=#@>leVBn(6h-owsjOWequ7EC&LE`P48#F}j|F5!i-mv|!-w-Cc!2ym*5Y zgKj7OIGLOrj>kviBQOAw>LJycpP)cd_+S(n@25rPPbQPuY~t^g>Bj&mR^WhwZ#b72 zGI*Vizn%c%F9zdpMIib|I^pAlvqz_?%$`Jq!bd^yWPCzGr57-Nf^XuVAnl z*lbcyWXM+OJGM7j`XUt%f%xvNuzZ9feVcuFd^u|o=UGzJm)!{h!8o0MpMLDN+fU-1 zZx<+lxR5omlk>DYopxK~slOIQQi6c19vE%1mBeRL(akfg72>G~K_G?E0t%^%W9zE2 zDEi{7XVmaK#K=6(Y_o!e8*vy-Z1$1DXVdfR*W=^*^Q-k5DPp83zSer8;Dm!L2?QWl zM7q>l6YqIs-T;CUm%cBGqAZ<-f_zC{6fteO@MhM+GFV4FgF@=!ONuUToe$!m~URN3Drh>qC?~UR~E@1_TTsz_F82uXVlC8X>kQvC~_< zqsbfE1wR3iB!z-OsRtM)5M!aaAdEi$`pIBS6o>%@zgd}TTcKcB_?s(F79g^h#8Tr5*Y~ULV`TC=7bNz`oaeq4C8hHNKbEyvM2?@ zamxo&6m*0wak_b>Sd@4Q0!>7lDE3(DAQTP=G#ES&D+Up; z0)ZT-pFj-bt|QT~hM~GJ>RNYn9ihi=7>BN|s=6-=r5qSs)i6g11Yv6d5;@>mFf0R( z;sIhH1sI~m@nFiE$pQ)rgxsABmGdZtL*xL!W7o+614{e?;98TL+y74 zfwR(r5`u=E0vN-naF!2tn6{TzJ`62BK_Tw{4md3KN!stHqH;n=m@iz%YTKWC!wGC`@%Dsw(fQBxL4x z-6-d9A{v6w*k`f4QZ(`)MhRKC_fRkf4PULo5iKC#1m}!pNO>fG->0jpu<|9~LWK@7 zc+=nSLeaEt+cs_cV3y-qka-Je0nBOrWVHZ->bBd#BO?KU;*TcOnozj06U7{eAqW&nKg3(3}PCAr;01ok$AVhI|5QaU$mkkAjd?S4z z2r$m$Fa$(M_I>4x5F$w62LxntQ&sm;#BlKwA$4KHXhJMY1&<7b1z6VZC$kn`aFk#O z10hm4AjG5_a|_2r!Yz*vhvVntdi`bpegDP^iJ{2q27)x=HlByThXXg6{H2h6lRiNo z(pP;2#AK)#3`4Paii?!@495Ox)?qFT)^4kX)CHlGaGVcagf5mQiMx$Tr|Kr1Q@X}MXehXOlJoY|FYhHCk#b=5Q>1r&r?7WKq2GZ zQ`7<{n1{{%VWZ7fB3F-tWi)0IFV z!U2f3jfDeYT46YvKm;h{yJiGb2}J+}$E1W%aFD7=pD^kBd^8s076?K$L`z74{{ar< Vj!4Sa@c#e+002ovPDHLkV1m-u#smNW literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/illuminance_progress_bar_with_background.png b/application/src/main/data/images/widgets/illuminance_progress_bar_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5ff5af9884bfb64a8b0c2f2770ac2664cdc8e0 GIT binary patch literal 11035 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_co2_card.png b/application/src/main/data/images/widgets/indoor_co2_card.png new file mode 100644 index 0000000000000000000000000000000000000000..8184577233361d42063ca7823e4b7ae0a81c17ea GIT binary patch literal 1721 zcma)6|3A}-AAdXFHs9LVaJVz?(0n_qlg=Sude40SHeXu^ixMSqLiuROHZjv(%X~ZR zGrCb5sinF!x#r7p3g=r|CQ^wViKyNFg3sggd^}&z=kxXY>Gji-792>>)-cil06^Qv z8wyppSTVoClogt9_N-cARl)vYc!@;v;>8PvDxkQ@<#I)EYc`5(cRc-oxVSFm@p!{a zf0&t>)jzu|6behk>1%6ii|ccDX0NZVu8PHCzgDbND&5-Js;jFLi9}IRQEQ)Md_LdB z#bsK7mC>Q0p({iAi;IgK4u?0vwzsz*8ym~a%&e%WNEG6G=7kgrB~KKel$10&I$B#> z>*wdko2K^Q-JDPrm+;L;Wxo&BYNz5LJF9&Vb1T)4@U`1X?M>;>Gs0>W~Ht*O38>dzDGKfHu zR;5|GTIiDb4wET@ZMoa2?D4L$Moi(?PwMPH-tH@Lxv%}%ps%c+hR}XivE|s{qszta z=hi?*jMw{1^pT{xZ45COODEPC6TQHB=ad9oMer4oioRZQUN)%VlZq(MGVmcv#@oQUJIe33&VyFP#GKq;w8PkU9=v}sN6X3!6y85_c zlg2A&_b}q^`ITN4XjB zDAyRkvj#Bja57I@t)Rii5|N`c1BC?%bC(GhxEEWbR^x6@GS1xb9(X`&b#J^> zG$6>1NFgVkMgbe<*o9jvfG?}8*I$$ML(+-#Pd_1dO+@O!-On3)01L0tfqI?4o5HoQ zD1TR%Bk;m_cgeX9ap@xg4Fc}&N;B9C1cKeCVp^7Mt&;EgAxmN7sim#`5mT&cyouyG z&D>$ZzvCx&ah%U)u85_l>}&Z1WrZAjUHe5z-`1NPBZ~e)-aIr4NPPY%;?zZd3WF z%uBb#HS|?`$!J53I`d#i3|W2j0A&4{WrxVTkej_6FJQ%(bDE~pO=UzXq(PBmujA8bD9xrI ztI0ay!8&niJ&RW5GjVO~Gr0Tk+fw1_4eW;i&i(%k?%4Y#qL5wUk1r6WOal2^i>eDHzL4bP*Le*u-zCyxLC literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_co2_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_co2_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..133e2eb2831cddfdb713c0007432dedccadfb1f6 GIT binary patch literal 24358 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%0AD`k_88(iMUwM45+(^QN%<=sO{CK_ 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 BC5Zq4 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_co2_chart_card.png b/application/src/main/data/images/widgets/indoor_co2_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..ef1f8897ddca690679e645d6fa3709280a43294a GIT binary patch literal 2513 zcmV;?2`=`DP)SmtgM29g1Wl8N=izf(~PRBs%2$mlg@ritSH;>)UdFyd%|JE1M6e#XCKdC4|}U{+XxG^6{B`@gOu89OG7IbD-UWS;7+ehs@k zT)e;h>%uyB-d(=GxV*4&_K?zeM|cC+Dy;A(xOgifRxM%}wTNldBBoJ`n8qJ2(xi%< zYK|^4jT6rSdC6=FjPy|vI9NmFoRVr0Cum|4!&}faaHc6W`$e@K(i@RZoq@H0En*sfj)-gH)!6R(hlPs@jwM2EzrCe0g0O)E57)CoRB$vAZo{?(Y%64z zkgm@KnB?>z0GCP0B#1MznH1qX=yEARtAj zzLkp*BYpoS#};vWoWWWsb}?P4SFNK6kSa;+6gky|D5rJ?C& zm2SNhxyP$P&UJulHF#HvfZ}Zt`fgB|=_b5?HQH1dUMDCVjQYq4DU4P8Z zI=*gyMTBNS>L6!9z$6~&Y!QjyFQNsm3X#pC?yrb|Jm+Zh$Ux89+eM(7*gpK4C(>=Ku)fH8%tSg{CPec@t~W$lgTdgwu+*W25339OFUT-X zWO$XM1L#pd5$eQk+1YcS;fsEBbMqB{-?YA>bKknUX;nuXNqMX%#Im!0$S1;~?l!G_ z@pboN89#XXc-{H@^u5)3y!rh7ri*GAeAy1h{0x1k)+_hYKy}cR!`p)7smg;mvABcX*}b zhC}F0eH5=jw*oWl1>K!?{bc{#}pyJ>o9GXC8n(?Cf?LG**D z>c`KXqrUiYJ1hzls`zWg?-p5xKvOl!&ZuglWRehe z`_6$y$lgWztw@d1f5ckhzu)@*@U=YN|IglmNF#d>s6u4V1}W2ymyCBtRmptkKl>s+ z*%P9Z%(23#?>W1os=AwuQs-nMQMx9khQ+n9Y7!zg$SD4 zhrg4FcriB6v*WI)DnroO(zwo1L}Z*ZUTqMuHQoXpRX-$-D;oE3A|hI%7Y9WxJ#W|Z zX=O}qELD=pvEOUaJPkaj_%+R+W!e{Ofkg)r@j={z&Fw8umD4zgr+T%B*HJwNH~08A z+3!(T^uS!^O0>7Wd~m#e;sp+V9!kCDGt(r({_t0bkk4Mc*J?9=U1gp|_!XQqC`qw5 zK4Y&CVSdk+N<^OZ3pxc++ZCY-EUS%kVMk{tAat|+Trl=6N-c8k)FP(wc12b%*9PCv zUgnmUWXR8*Z4+U-sv+s!?b#~5{HY@XY#zc^Tib=c1n(jAv%8m{(78vYT13t0YG>3| zBB8Ic9;}|rEEZZ)T6WLn7I&41&$WmvLyn#`hqPpfV^S?5cn@4^gIt7VD@Z>i$+)^` zb7nzhao=Cw9rElZ;y5DJBCcu=_~>OKw#Y7-I*O3nVJ6}dX%Tm>L@b|Fb3xstk~kXG zB8<60a#&m-6e>fiL{IG`g-w!M;5KpL0+x#~)S)E=eEy(s!0FH;)i6{bPyQW=-!+e% z{Kx#??u2-*)FP%)i)g5c b>+=2oD;w{NhhZMT00000NkvXXu0mjf3ufRH literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_co2_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_co2_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..04324174a407f09e8579c275bf3d30eba4a6214d GIT binary patch literal 42374 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

ObflwOfz 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_co2_card.png b/application/src/main/data/images/widgets/indoor_horizontal_co2_card.png new file mode 100644 index 0000000000000000000000000000000000000000..f4161e781c44f4e60dedc4f49f37ce23520fb467 GIT binary patch literal 1152 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2Q!eYQ@lJINX-oJ32_C|_rc%+7yz07|NnpT zlj{L4L8uU`H6^Jhdv zg!dYa+qZ9T+qUh{p+kH2?0NqD`H2%JCQO(x`CMK2Ci9Y#lEaU8+gZN)X-*b*#-dz0t*ZKIJhfltE=lOi)ccqt%Df)Zu zY+LM{@_3x`cwy-5b0@RKQ#7P>&j!qXuK8Ex?xp|VS5A0qX614^c1yI|?h^gZWrCib zd=r!97SGW$Ew+_=zHVuyl-{K4uUlnQmioyBZh4%%U9ogt{B)CV)uzcCrl{%xb@*VznN>Kda5S z`Mt-k?Z#KVBX8#M{j?R`@v!rE@sV*ile45&)%bLaQ=3e=?{%N;D;IkjQ9?U$S z9qY0EoMM^nf^MgtWRF?LQZFB|S-nDQwUu;8;ViSlzjD_l18t_1#!l*a>vreL^Og%y zoQhK{r~Rza5KFo7`P1e1^Ef3x`@GyQWHiCorswvA#HdemuD7Men3^q#pC)tZ%3-&n zJk^&vw=Q4#)Ms4W|KajG;rnOoEX-3Rr-#~j%=Vh4Ep$EAbV9S*v#sTJ6+UVz#^EUu z`e)suLccuE=}2^5_vz>=nRz#SW=}f)o8#oB;MtS@P5Sw9^+}zXk5|9j>v&=<1XV7W zFrEE}srAH~m$sJtAG*JtseJWypWXMl)!+Yo@u&|06&#r0L;oL!)q5FQ?%n&k8YJuK L>gTe~DWM4fQZ_k% literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_co2_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_horizontal_co2_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..25f13915fac6da5344b5beb4b54f4188a54a8571 GIT binary patch literal 23369 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 k^3;*S!fMbNEhw$=Huw&;^xJ{ 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_humidity_card.png b/application/src/main/data/images/widgets/indoor_horizontal_humidity_card.png new file mode 100644 index 0000000000000000000000000000000000000000..2cac3051e11e236dd09ad8708433508d32424782 GIT binary patch literal 1053 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_illuminance_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_horizontal_illuminance_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a26915e93c0a31bfcf608f70c9a1630dbd08a977 GIT binary patch literal 18015 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 VxghXC!My+g002ovPDHLkV1kq+%7p*` literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_pm10_card.png b/application/src/main/data/images/widgets/indoor_horizontal_pm10_card.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4616bfc4faba63d014ca9fa8d7e13b7fc886bc GIT binary patch literal 1130 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 SRD5Ls0000-tO=3;^N`sltv+S=XS-RtY@ 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_pm2_5_card_with_background.png b/application/src/main/data/images/widgets/indoor_horizontal_pm2_5_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0aec40d3a3c7c0054e9d43445d892a07b27a660f GIT binary patch literal 6188 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 KMNUMnLSTZgkkNhs literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_temperature_card.png b/application/src/main/data/images/widgets/indoor_horizontal_temperature_card.png new file mode 100644 index 0000000000000000000000000000000000000000..7e42c0b1a3451dece3a90f6a69ae962fc818c196 GIT binary patch literal 1134 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 P00000NkvXXu0mjf*J8S~ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_horizontal_temperature_card_with_background.png b/application/src/main/data/images/widgets/indoor_horizontal_temperature_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ac36c6415ee0f82cb09eb85be905c01f3da08b49 GIT binary patch literal 6558 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 E7s^svod5s; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_humidity_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_humidity_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..573da73496bc60d226f04f2b13158d6715fc24bf GIT binary patch literal 24176 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 LNkvXXu0mjfH3G@O literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_humidity_card_with_background.png b/application/src/main/data/images/widgets/indoor_humidity_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..100721c76ffabce7d6e48c53f0f871a1071eac96 GIT binary patch literal 14580 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�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 W@4c|O@i1}#0000FVq1>gML= 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 IM6N<$g5$M`c>n+a literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_humidity_progress_bar.png b/application/src/main/data/images/widgets/indoor_humidity_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..325e0a03877d4a75ea6aa7e4838b0a34ff499e90 GIT binary patch literal 1265 zcmVL$hJk^BZ@p5Uo}QPNmoG0b^ZN16>BgVajAFM$ z)z#Ihsj1xV*2~Mw!{oSTW@byQD3i{9!otFP!(lu;Jlx#e=H}+q)YP%Dv8&meN=izp z%hY24000JbQchFvAin^wuWD*yj&o4~GE6cSSbk#do2kgFr6@YQ+)>7rYDfV?G2!;U*1mfnGU7Z6F8-T$CY9c8Om=?e?08J@+%5-iw`Z!nzAe%#@ z;~~ZfL>h#Fg{+T700uw{ACFAup)gd(0w_l`Iu26(y|9LiiZm~NhV(S(I75C%tDn9S z8XX4-kGO_-Kv)4~KSNjm_!T76rXShpw9#51eu3QgCx~Nkyy1OUgE)pK2zq8lG&%#4 znSs0sL7)Tb8q%>eC+if5FytJzA;u7m3#4{{E9}we6bOtgbsK_2j_D6Fj1$2hI#~;( zom2Pb4F6I$K@@wt@aZgvJPs5gH>jMre%C7@;vjV}!;CjS(6nG)8EQ z(Dae2ifPm`f~bw$nMX`-E>943kvjj#wRhxWzYcmF1c5LN-zJ~gxf&tiAdnD)@znqS z-xgbF*TYg9+jN@p>dn&=VNitvF^KxyL=w9LnShufUg)dX2N|G-42f7saCL}7&jkX^ zBz0ungD{{eLm2Q8fMU8Nj8ugTP*flmx&9(i-UJd<4dMX4LfFKaDfm2ots%P*%h~@G z2m_7^q%=lgTp@~rAth%NS0D=_rxJvDbFhRJ)KBxQ6^ZG8$b>&_)|;giyAvBGG3|!T zO3~VqAt|M;6SKBzdn8qs)(tQKV}9%(dg zX*I}idv~njFbo4=*lF+nVs6NRL4!iIg)D|NdH;vIYiZX)x>!y1gLi#+&?s*O#9L1w zwYNg!avcFNGr1469U>~&Ow+Qi3XGM>m^I5F+ab#tO7kxf1yslbb%k--4w*(bkl))Y zB_LiPDlkxAgvgLNFSP6dv6;n~4fL`dLebu6+5>V?y9(C6FT4ODXS^i$fj)b)zgGeA zRzSQJ5N`#= zby5EQ{_XDY=jrRRcT%o$PtMQM@bUBG&RX%(c0_qok*%Y)hd!M4Dzpo)u*baQl`p{2d7oP~mbe|dII zML&;_l!}0QW=cY=tgn84fTDO_c4Jv+S5Ad=Y+F}UnwpxEl9GXbdxB?J$H&Q+mX?Qy zijRzoiCR8vWnye!TbgK0lwU!Ynw^o9mu6#PqM@RJYF%YhN?AWPdUSEk!@7`fUT|Gf zQ#vrDo||!KXQ6FRaZpHwdv|hXVX%B$QA(8|V6 zI52!+PmOkJ$HKo~QAx|k#A9GyUtC+u#K5bkq?wS5#J;?#qn~eYZ@{~`udJ$+mYS@W zk5*Alqnnk1Ze`BQ&C1Hlm2g(i#=oDJkg0oKOf@W|kcqyxw8FBhw2ynUhitQhWy!s^ zMLadVppeJ6va^?qj)Z-Ye|Xu{)7Htqvze5UiG-tyfs=f2se^1iGcB`=bDNWpp@3*( zLNSPYbf0lp($37YsGz>4n606gtdNC@go1KPHo2RMl81knbz;)RxtWB2ig#|Na#gmi zsYfs=xt^HCpN8Dn*158+nuK_oc3W3PKD?oxkZM(fVokP{f`3yw%C4;6+}qB*t*D81 z=Hubo&dK1uu*0UM#;23Mm3eqoLhS13;>Nz#zO>My2QtPYV5&rU5-e1yR_va_+of2MnQ|FFXmi#Z&_13fkuU&XtElP}|4aYdd~p3haNY7RZL z@6AkxhllsZVo{^D8fj@Un!4)hnwy&)j^5th;r;vfpQk*1`|Ynh_sTopeDluvUgOfq z6A#{dYHB8KM{LzrtJUdDIXG)joH{i&Ha1%6V^q3&A(zJ&@+Ax&yk4g<6lnFWjWyb$ z`g1#^`0E#;WJfFzOAx-4$CpTC3Y}(p+UGN9D<>iWyEPgkL@XGL24g|LyT4K>=U#CI zPsS$&!{^Ei?!)8nr8xG2fCSqwQ9R%L{4Kq`k34eiwIsM5f>&O72l)oMX*jyEHHpWC z;tXORu-R7U=bbT9jIBjxmffyagHBg2=1GAN3W~}YIis1ThwDTw4E5*00AlA{eLZue zUMUcZ@z-P$p+qT{D^wbTsI_PLj5QhzI);bwVBOLF?x3y7)5iz}`B&_c3i-Qs?jjur8T2ralezCByu=C3=3nK>)9zHy- z_30S7Sf*6UWMVm^Q=?!o4D_|N_eW!U3DMuy*4A(F_ql~)S>CQZDDZ=)5|x&;0deT5 z?tc>uc0*ycwp6#INCCtxKtO>q5F)4e^qupumigq=+St_0axxwVW57NaPp=v|Gc(C# ze9mLDSsJw(g-i&9SgtA3$dw8e4N3vpy{2`15i*!txnqk!1 z%G)}7{DBTzUp2L9e=v*av-Y_yceQdE$*x`KQYeJNq6hBl1|s%UcYiifgcO(80;M1Y z5y+8+P)oJ1rkAHE%LujAT-si3+)cP>P&_4ICt4TWWvMxSCGROhv{b$kcLRF}^qe zMcQsp&sF2M2CmoY6atA%URGROs#Yap+MBy*hs}Vw^M$2ZR@LNpMADAkuq94 z+?{T>JJ3R@(r@+8?EdgaPHXHQ_VKM=y!R{9Rm`O5GNtQjpTxW~DDHIjn3c zoKRfWQO{v4s2CJ-u&Wdpi_243j7CStdLsVi<)pp3okOiPfKSq9F43x0a)Df3d`)qI zTBBmrY6kW28H#r|HcseA%FhAu^U7Dx4h~in7Pd#DizRIU#CnI37!)8N)$Q$37J+nl zY9uN-jfFrV+{F{9i)?#oU3!Wdj#6z!6C$K=q86dc=K>1Ka}+R8jNA9eqSm=&WNdVT zGD-!B+pVPV*!sKMJnj+^`dqF;DMSTDYMoA_k}JzG7?qt+j2|igVjKuk95_%_xSC9k zRy(jI?5BXyO$s{{*7o)`>MpE;o`6<~vB=ApDpj&PnX;(NPpcA*jg>`E`Z5Zq(+NdI zRZc<0$Re@~TBU}AR(mosdbV}5rlzKK0u`A`+BtJTv~_piZ!tIBrY%xoVNw^A7L;Lj z8M#0#sP~C5+^v;{FOJL-VrBad?}4hSE_=jf?1iEi24XmZZPi%1?W?QREmkX)0w|lS zfDv=^xcNM}MwTzfC)62)AsQuxjSV@h=q5^n6xr#{76T8DKN$rvUb+3eqn%Z3&g#d< z@n~nyjz*FkPe+Fb3Qxf7+O0(`luD(h6ve>5iDeQoQ=r%5uOA$lrb-}3sT6fxU0v8; z9pUi5#pn&Tw?KicZs7B+1_E_y)NA-ynz($WO2}0x1Zur4NNW-Xq8cGXR#BZ*WY;Km zzHdi}fgd@>)5Godcx1G7b9@|2{_O1L=H}Toj@9Pz^!4{y{BD0|fez0u5U4TU8l^yn z{aLKjSBiYTk&%({Q>O{B4MkN|l_`ufLUVIC97ZwDU#eJ#W1yNcP(4s1D&yuUe<{z06zkPp{YOy&xewcQyaX@Cza@wpmR09Z$ zxkO*2qRmVtDlU@4AjHO8RH?^N*@JbXA83GGbr*Eot1K~P|4*9lsu(ey9k95UkH9s ztSO_BHBd`ox=E3n@En7MWEE#;#}B?XGQv6zA3V#&@$1l(qit;1DQq%IXfqESh3 zvc;)TsVOL9Fyb%2b^NNUuDti>qu;TLx~fE?qKZ|ZF1;CrDYY@bwSJ5ePtR?nj4i1a zU%i;8Z|YR%^ORhvOu!clm`Icm6cYjt1;qfHicyhOAS?rpTrMic&dwfwZ3HnKL|%J_ z(}(fy2>8t&kENkl)OqvGyG3Ohv6Rb&LZZ;9Rpnyk!pm>nbKQ0Kyt{IgYEf~ZqGBn% zfu2GzBh6s+I)Ys$=MqXWIZ2H5d3?YjV~s>68+DgxxmfFkE$yJ|S2I7kRo1BlmN<5;bpfaQ!iaHqvx(%A4sPfx@3#SA|`pDRT} zDHujkE?!vp_2ZAf{^`N@wpoSuK<&`6`4lQbwO|=Iij!i4RgeP;lPMHRN|a1w(N!bN z6Z54w0n5ZfJs#SGr!OoF7b0MggWdD+hXy07$W`MK27+2FXB003kyZ5f+x!-bC1Cb9 zHCQZ9HZ(lhAi^4-m(S%1WpbRR>ctCS{QB|lpFOsX6$%Qkch5RH3aP6D0}8wog~Ox( z0>Ny|rz$E;p<0975Sfd2%JX zuv$^D-Ufr=aB71TCr+?EwN>k_@P=yV4f?Sedyg-VOA4`E#y6Nk6%~c#Z>|HQs;~=O z6BI@^rouW>Ty$g^EFkm!NY}vf*d{yNIYpZdW8rcK{GCnRPkCI|l$L4)83k7=6e#57 z<>gAr&cY3Uy#E*}?(lj;p^!IZsyM&~5^9UCV7O~z6^auGt4KgmyJt^)W+oDk>+|!3 zTqtxho}nTHL{)Z)tHb|IibO_%!N*Aoia)aqT5q$n0Sx8VN4i!q7qrkK2eCpSoIab! zW@+%7{gtk#?ti0LrNEBCgMu7FrCcnouNU&qUH!-VFF8#@9(jG4%_S7aej?JVSd3k)QMUhM@@_L~F;-aD}t7vD_6?RZD0LdwGAw}33 z$4ZN*2ZFXethJmz#N%r6H;8%y4aF)6Uf={g97FNNlVJlFFan|S_z&;D@HQ##7_3bU z4Gkp{iCQlZn2}Iz!kNMe*Eknv72i@zks=h@LyFqa#(FwZo=0!Of&!UT4+YlhOBk7s z$||B+1rS*Ua*5&AYkLb@G76e(AizK^+N@CYxH@$Ox0R~Ie2GBG)&j4|LIItn1cLh6 zA6|MPtEe4X+S;1mNDL*=-k5V3oK7PU_T=*V(#gpa-+p^y^7P5Ar6CMYmXR2mGGMXb zK_TGH<`k666zscS*wG6Hg3f}1Jr@#$G*pV`3sdQ-Qy7d)DQ1Bf;m|3%qp9h7oS`)e zrGzIDl*{;1E*v~sXq956@9gQ7w_kec?YE(Lc4#Y}oJppKHi!|btxX^)BTgTSGt28# z3Q`=qQ~^e4zLm@6qd^OlyiL$ADu5tGMYf{|5e+&Vmu(ru$mQBw>bg?%Gh=K^vByEI zR!2BMc+4(Wt4=JC%LNjiuw0=m7x3|0#kkriQm8v4>tAg@#xk~#?wOCz&~?Mo($YpM zlp+G{ywwA9@#L|Sr$5RlPUaNEfHlJB^7HwEg7SYAImX552BJIK9Sx$T9?2a;E=Qmg zb*9v69L1PD3v>q@ZNVK;MrvL$QJD955)PIKps%Fb6tZdWJR!MlR8n8VtUA z0ZvfY?7sQ>YnpCsi*_9tJi7hZW1nN^UOEN@F5%*rgfYSv)kQa>Di45D8BiD$}+uSdfK2DHM-1q z-gy7RkJH<}qwc`qcPwLjW%AS}GBGokPR8v{qcMd+ars?6k;nxYej~+4TSG%x1rS3p zAQ36vz9o!`SB}znNdW>7;p~2aQb6(4Q-}5r57YhZwb$lq!6wsCP=vdTEgS53M$p@% zo8t!GG{@pLn>*aD5>dfzPu^)RsnP1DwVfrcuE2edzJCA1H}2c}>fT<*fk7(9_V)J5 z8frK`yEzt*FDFq9dwdFaDvhl*6KCIj_s1W9`w@!MARtgs?id{OVyjHz5`imG=y*zM zu!=0>-(4@1V#flCSKoYd-@fz6wGfaY$H*ug;VvphI-XpfK_U~le)Vwz=78Dk@;5bh zy6(T*T!QK`{9Ql{s_mnCr)l;6bPDWkaEWz>*b_S>iFVBZO8-#F$j^F3v?7IP>Ox~9(w4e zn~1>%lK)dUX*r?HjJE2v296o8NDWPR?w&gj#cb|QMt8kA;PRW@e)C;-y6?tS-rhIC z@P4)O$tORbo;>v-yJsGM_rX(ZxEq}sYt@So+%OzJ4h9q-Z6z{@1Tnm*#2rv98F0@j z6sUxqH+@*LH0QOQ2pA+O`LZjVZ;Gm?pRQLnsEhBpAfg5g+2Xq`#>%;^B+saeo*K#F*La>T*>NBNbb> zJ+tB^tS-K6o|u~4OY7lRj`S@pEx7PHQekmeERgKqPY5X9pT=E;a=~IV3@mCanNZ{v z=E|? zJa@-9H2(yi>*#H|423=r_qH?zV}eaEn>{VQq4BNb8z07^8;HriKB}ia#ANBxi3>BB zu^K5XqoXj80tF>1UJ?~xhzc1x=Q4#_c2rbQHvXZ&PJs`}U>h`;Qs|P?!Tv#nel$nL zZkO1%3x?f%y+hLPheoi}o0CxZJ-k65Xpi`O)t)-NUSGzwc}MVzJ6E0Baqz;#Kf23sx^Im*Jk=WD2>pdduL zqE>-1GBV;z_1~+GOqJ!VDw#grc z!qZTl7#bO9)fCT`0{$aaeNK5lLM;Wmg@F_cF4S*u2yqheVHDUqSzAG=?v0B z>>NpYLrFImwOZ_?2!?rMnWuVW82fGm=5no}SZid&V8DQHqfRK$Ak5uQ3q<4s3Nc9W?6NJ9V7oUS z9~g)S0&Q(=ozB)gY~CNx|YJQ6UB?OiZCD6cs%S3Ir*F zm+5*DRQ3phuzx|o*+D?@s0z`>N9T1R$gn7D@nVU?RL}8IgNeuXA{4x>EQHzBm)JU< zsE&8Hwsyxo_(e&MZ$yiI4HPH-oJag|W(ozg{GO-o-Soo8C@HLIN%1)u5H&TF3i_n@ z+LTF(Je3na#e$F&Xsl5{u?z|}Zo3ghl$wzS-8f zEUlp40{UY$P>3TNF}wMT(fs@zD5NjXLa~7q0Ei4Ip1gcHPFWbE=yJ8Twz?>2H0zNE z%tLvyoNN$q;Y+ARgP?CL6B0?KRnypL(wUNx-X_Y0#o}t|9P0F~A0Hp~RS)1nkhc>f z$?b!pdCi)%;>?k$nH{G-UbX$3Cx(`tdKD#g?TA{4;V~Ah}q2-MsxCWvKPsu zPAITcXE%(y75+e57Yjm&0fQYQT5CWlVFWOMcowdY)(Y9-G;LwM_r|t;4HmV0_6GNCuvs zdWex$%pM#?UoCq{PNnlK#yd*|x{B0SgkmKrJl$Qak_f@EAVfJ3QbOcs5+Hr`6rzC? zl?FNAsF8=Dz-q)I*SlI0h+)jOzUsKAi?`XJAjWI2fiW>rQg!RjnI92HUOx8Pj`uG6 zBZ=|tt1vLAb#U_bxwBY(^sFETQ!vB2b(cmJnX>%MY;}|=#Cl?Zgh1i(6 zEa(qVDq0bEF*5@YY)q)sN?8h#zIgFtJ`C2VgSQ#${TSUrPg1Utw>C8OccQ2gzNSb= z2n$}GbB9ul8CpyY4xaxJ9q98o>tcI8lr*~oEuAab@V6bylY0t`}gU`kB|mqOI*@2)4xL|X9A&}cMzo5{&}gDnw^WRuZU z=f|zTGl8=jU_rrgNQJ1t2JPft90-}ikq|{?t<-7~%=I=t7HsM##R(|h0b{mi#r+5< zfS_DZG&?cVqJt2LX#8QF7P$>nLMlA3xg`km5sZiu)rxE`WWUyD8MK0GEjNxFg z#T!oAjXG^v%JlF*RPY}q?0E4eA%I+yICs4L_G5xo*$T^&4nwk!}W7SUZveS zDH9c<;s3%cSTqKy1xwvte@Kv{iKF3NF+V1(rd}i`DcA*b(w*GbXv6cZb3Z9?QVPA} zJVj+C<~O^*yF+ckRm-kkI!TIOKYDjTu>s?Px(=Uw0>y{>vzO3yWG%^D-9yhv48dX} zDZ;H-=#|ymnE+8wgM#WwO|$Hhl;Yor4Eo5BxVc87O3LHRMsEivr=uS_hrosW5gdTP zV_+kWDF{L%Wen%)Sa0```X&|u=;z|RSJb30vmhBATRy%^v2GS`HWYZ|{+3!mK%n(d zyI2APZdRuUuhHI(c({&Y`^w&6e9T-XFE20G10ot2f~6uaJD(~3l?njnBjgsGDs8AY z5{ZQC(Qn3~EsegO!@i8)kH(J8f{SMl))b>+MJaCPh=LXO89ejxO4oCn8Qv_UgEIxHwBOs7q`8|(NSpo(1tkW@2_};eSc^#_X;i7z(qf!G6Uvch z1H_fml53AqJhKUrQnb~{4S3@VRk#2+H05F{XjG&XBI17}f?(6z-2R|95T;=v)oC>r zWWwc6HkzDPG@w-~l~rppIdSw(M4X3WPECp^yqJaY93q$7X66;gcdio;i`=F7Q&Kru zP*8f`6&SAES6Wi^5E-Dr7ZliB9J3pXY0pPZXDM}Bf-nYhAn`j29PvGez= z^A%N96{Sn>17c}KNzt`UEE9X!=f7 zjzy!faN!PbJRC-Ykf&O5#c-6)ZNoV)DSNb1Ixt2U*O*4Caz;5_Q#=;5f=VRLA7 zYL&C`U`lcP_|EH4q>}L+Q+%J1v$vqCpaP7gOYbYaRaMmd5DdiFBP!ypD5zZ8*GDo? zRR#kXsbnmaR2IAPv;dKE=(Sq88AmX&0pJO=;YExXZ$WJtR9M5{xlox~oKgT$Svfby z6j7(sXq20*R;yZV+IJL+6JLGx(edMNGetTX*FRdkxU!EFX#XHeE2>JGk1~T8PbD24K-LNN!06UUxS z*miPgt&Zof{!_6_RA4PNJDHJ@Rk?QxxnPW26$J%VP^>9=dK)RWkz%0BT&BUm$fJ|h zN(2%DMllo^-qhL%TG1YgI&3(NhtvKBC%@y`zZ5Xg)|52djbePy z_WqOti`Q&&u)?BIjsQaehAh?lUNO6J`*ioj6+9ht-eLe_8=Ak~Mf(AxG zic!KCx2`e`0B3!x{^uMH5gDx7?YMoB4_U}5*11PR4 z3d2jHV95$g5F#$1!-is%5EUjyTp1A=(OHbB197Z?8pfcGi9-;j*(XkHBbJOU)@Urj zj=dyCV~NHV%UEL>W5%vn#_#<1y?qOge-<_@Wb(fK&$;*9^X?^d_F`+(%+(rV(aGdC z{Q@hWDoHJN%rn|TkypYOMbogkzJ7|{6DrzO-Q7j`c{Pl2WotiqCFzCkC|^xcd-`GL zU-#k9Kx~tLi>yG7!8hZ?UGKdHFX(0u4^n_+Oko{?h`M-n>+xh%^-ux;2OKpstQdN~Bip)qAQ5K1C zh@^C3>lKH*=qNsbf}Ivx%^h~g1CMVvY0{+aGFRP}q=3U9pfHS`b{+i$j5CMm;FXr- zh=n^`yhdi)06Nb=sQ|p&q z{502Yaz>aJ!Z>lK9Y22i8YpTztFt&ZLFpqD0U>pRl2Hrd? zbqif#jUWKw7!Yo!W<8vgHVXP2`}0k{x1j92+xIUVVN5lMX%T|Qf|L(kc@BqoG9>~k z!=f{5!J=dDJ7E49hp-0~isy~uBPecs<*RK3vCUN50eUeM03^+TA{ArJ!>yeSGpA)w z1tP#uRAutNiehFZTgAy&AK{+4w{!nz;lhX6^?wHx)YiIDItM>Ey~BL1qOt}E0IVI# z`+_*>L%cG^S)GtyZxcwRLClBZIFI7JpMC=3l~+ES41yr?>o@omk{BF?#NCitYkpZa zr)g$h_Et#>d7(GYqbQkKc@UQm0Aja42N&2Wun>f6+4>M#xbX1v=FTCAn2FIrEW)em zId;*V0fhRxUT2iIX6oe0Q*-jkkBC8JjAYF{`}k|Fnt#Am*Wkrt_lkne=wE;3F>E(^ zdxN;;;)}U~7Es8G6pVd#wf@$sDVd@WhED;8Q83^aniX>b2=2pit_Ow>=}v}dZZN}9 zooZc5dCN*mEEUI4XzlL6^>#DQE+9X1Ww%b zx*f_ohx_dF@3T`j58r$5yURji@SKPMyuncthIq4zAQ(lIj+F}SG z9=6kNFNh)wiK42$s0N5B7Bcx>lUm*iLVtl}dq>ed=k`lqUwf8Eapo1rzkkQ;k3G)d z>RT~+tL?E=5TXb$Jc_`MK#n6*6CTAHf4tPL)Er?50fY-E&x=Y^w_U#N|FuF(&sgD8 z2m&u0MGh488I{LCarVigV8hF?`@Mh1{SglVDV!!kkQ*j{oC+{fNGw6ttY&USD*u46 z2`_+9X8ZAE0VRrqt*RQSw{(c`uLPlh^3uUjT&OaF5K-Ax8CBFB$J~D2!bL5o96Q7| z5$?fUe)JrI$;aSOm|BNkIQbAP^Bl(b`0|D7{)|yRPJJ?(5W^K)MLU0U8h=2ms zSUOmlM>)*@ZWLZpn*g!F+rH!!MSXovgd59rdlnzvx?=g6?AjSR7a!fVLfcQ~&D|~)!VXN^I0nN6C-?xu+z2QH;!#M>jvv?wOC`Mr zIbjegIOKxQp!p8jDJb)zn}CAC&TD52W&{b1baa@?Nes>g zozH^8tbihu>A}npg^G{ho~$?Z@vPb~axisc$H1cImiFcQ{r>AVsSuM5LPi8B5kRD5 z#`xqA1sG0X?D_GUO@HoiupwXsE|>#cKk~*`J4z>p<3*uaLbDuhWD`;OIZz-EM6-rJ z_1UZ0)92L9Eo&TXZW-S3pT9z>5NzejQ8cli4T!)ApTi)04q*fw!tmsZ#2@|~nM?g$ zcAnB1fV0=0y%v4wQP=^^Q#c;zQ4m86(B?*VJ`@qZ=O7Gk0{2QZUe7KmZCX$b#oWLC z`NaVQiER)gI&3r1h=9X43wuENpTjUSrDRC zHd0hi&nIHZz{+IGG_0XRAa5X16_TV-We~xOx`vLGSwDZdDPRx;Ue>G{fdL4bLV=Xlo|{|c{ES3 z1`IA46kWMjp%Ze9$N9E0U(my{=3IxPtPAABTz=(+uV5ET1oRVaRpW(@<+G(E? z-~H#w&%h9cAOac4$zY(+oP#i6IL?tPH3@9dGAX-CjefP%O9S)*dmoD*a5ME2RHPpmi z$B`LHK$&b4#$hT@Em^KJzlh~(9up_YLHB@HB7B4HoN7!Kta;N*XVlH`%GcDS&}^5SDA24_nI%Hu z5d>Be!@1%6VRz2gU7wqqm_2**)o;AZsLqZr_T8Dfx`y>=MIf}duL#kLqNiL#w})n; zI?MXK2Yb*Y&8Mugwg;_d`Z*%W;dzP$RMU1z3qpFbq{s%s)g8k4m^&`BFe6n-Q-mUn zAN`;bhXyKaSog@%{{BQkVm27xt-E&+ieWBV0>mT^N3nQdZUv1Sx*jEV%Y)11#*lUN zX*jZMx8IjhRKlryv&vIZXrQE++1lPJ~*0}3!CJqH|tBS4@aH$X5K zKF#gVP4pMcP81l$<_FhZ+T7F9)v7I?4q{jW#5h7d^s_2TE9`cl?(|cD%`9!Q{b3~> zjt49QYuIr}k5i3C(55$4XL=A&MDj{14_>u_yJVE&KE;|f4}EOn@&& zRMuElmsL`<2PSa?y0nl_-19WIGC(V>u1SuqEQV@E*qmeM7WVo3Z+c6TAc6}YPk;g^ z=q3GTrrtQA(2HZ@gL0NJGb=rz-dvdU%{f#PWg&JvE?bm!xvqrZ`l z-#_uh6MuY(e*fp6eSUOO=ySQg^rFIt4EX)`-?{qNo_y-cBX%o~#f#%ye{MV;PdE&V zr+)LJcWm=%&yyDxN!lbiIOsM=b~YPHOK5pdV<)fkje(V&&4V2cb)4nlFV)#ygEj=1tE(;w)|iTXq0 z=KhmUp}qG`FD{P7V&&!KF;q-2<>ChzvkPD-nBAYS&tqd(zwvNat01(wxzX*AghLeb znmfB{TWec~*~?nnKHSOoS9U_tP*F&tWHr^5vCE`-U=YA+_P=G-4Gw1ngX^|AHQl#y zsDzVYIAK=?#t}#CCT+dj)@biQTc`1LS~#4Zo}QML9!^i&dT(9`$Ky~$qtWv6;_~u% ze}CL!3O9N&Vm3I5gkgNQ?hY4E%|3;>K~(h+QMJu2wmW@Ad+Ts5o8;|hcnmhqu)F^= zXEaoIbS$VV8*F3m9T;^TJ?#rp3fS!YZdu_5_}7RH^Ww@Q0I?6Jy%5)rbopuFXxIqE zVVL1u!{9~i0E3uVo>+9XJaqPjLTH9;EkQv(TDI;w2c4)Y*-F68sA6l_u zi0zK%SR1Fjv4Zd^Y-(WBRa0GKXEQsb$(_Njd9B+8eU9wB40anm_uMWg3PM&q0>Ew( zAcAlpX)*%wDI5;la~K-z*xR{*9R?GNCzRrhQvmSEC=vx5H*S9LW!`Op*a)SBFogCM zD?%+@^OoOg8#Ybz+Vvv?)eWUsF});<0-QK%7$9rd7FyO>J2X_~Ss{p;?wjs@e3WB6 z-xE(zC@t_Jzz~Jw&^ylu7oP4g(y_z73>O!dgMnf^U_eR@5HKXsx3sSpjE~;Db!grS z10g>U41$;!8g3Va{dz5aggIrH8KlmJs=|`#Sqx36W93SQv9iV;aE22tfB@X5uIOBD#@N*d35TW%NzP6QZA4JZmcjIs4&SATTQa)$v2 z5`?2zAqr%i{6tq0Y=~KEt@xgcjM5IMHOyH9>ly*OZ&VbI1u0G zl@(os4Yp~F8Uzx=^kKVn2ij`Mo_Se<@Opo%$O%Dw??YHL8HJbAdg1{`n$M92L=wXQ zoEy=2tT|30ONSszpH*QFZPUtZsG)6>rhLZg!?u)&lZoFtb7X*`=`hfwUZMlNG1w+!bI4*M7h zVe}_4h^ft&$P73T1a|3Md#J~%69JjXi~%NTq`hL?RHCS=?pWDE_TWUjri$%UgtIce z1uIVaf@Of06pAG<6hvMeMWe>S2&u`bx40`~z%&K5JH7)0yhkSjchrz!O#x7|59N--)5oDhUJEct?CYo&Eq94@ZHK*h?z z@ZC_bS>nXNz=W7m!=E*5q%{>71!i1*^HoXB_nt$YJzdB_w6-ulaW@|fYT5nk7Bm3S z)76fBjKa0U`QDs8)%H)^MpF1z$caZ__!Ndz=LYhYZm?e{C&dayzT zO8ao5vx2)s*;T7-d`f}f7Ygk5sV|ML0wLVpWv1Im6(&C{v-c{G6_drO6fWF~!HAL9 z;jq=WPy`sh8DI#)m*+*B5(81y+6f3dQ8Pf9rBVgNS`L*EPqi(B^>TuE%8n3EKsx23xs-8DQW+3{GJnFes;zW)M>c1`LuY zSS-PzlGh!~!k$`0v7%yY9%>(MTUi!zoiiG5k@{s&?BtwS2gGUY`~{-Vw6s_x;;<^p zjjM1dt(h*;eT;Hp$O|v`%SDlJF;(s`5}GbV;h8Z3Vm=gBp`(^IE64}+WtTgMIqU{u z{yN;o>SCIA|CfG2)dmN_7|W@V(~O~SDHLEh6(d7YQEqY=aF`pqUVb8m8=1Y=NXT7yn=u%K4*TIj3omtATxp#?$U2aH48xEMD&_LtBplKztC!mmy2$9_bCU@Sf#EnnN3VzSp=sV9lh|?Y+D;T1J z$!@PGHY~LvhNv+N^TW?`+_2S=Fk*aL^+*s?;aD6cdV7mih{O}g1a}x4WyZG$pl4Dj zsu_%I@s~X5=Z?wg7)OJ5vPK7Bw+*>bHuHzo8*X`el;dFUvFC%|BfwlC2oD2CqAo3p z;}#!UjB0QKLQ&-?NE0YxVPSYy@F^O%f3{^~K{O17R^T)UWd@%`v3~5(XM8!9kR20X zT%|h@90{_6yPV;m{ZR*jorFLk7f}43-3`lbqI?2k-8v?1bpetTyP>EjChetM5=#gC z2x~^*frNoIdALf{2^7b##tp_eZM znt066!2uc|$PN*pj1UkML(RY^1@1TrG~8FLl#5{e{onOB?l|S zHEaF@L#qro^}!k??eRip5OZ;v(cfEuTw)yg==w2*R1j7n?Mw%SWu0d2QeC$-J!cw) zT5YDO8le8fiq#JhPtU&xgKAkA{Eh)mD7%9x!xSxt1B|^~QSK%|2@Dmng42s&$PCt} zTM}T{nj_Jlm_V^)?9d6>T_o*c7&?JsolaI3s4y$=A}h;nDS%@21|VK~?>*{qtPq5j zN2>g6jIu!%FRUgH+v<+_jzqTf5QbmIBA#tPCBvQI;wPe9dH+T*;*3*_W3+4uDKPlZ zAhqPk-Ny*2|5B9D$F%kz>r@!*qe2YAFqIg^Hc)K(6Ac; zIZ0G6=K=qC!@ z49-Z^ONA~9%y@M7%U(@Ys7Se8T321xpaGUQUPG@_gUp~o>svuQamNaZ0D}4>S$Y64 zTVk^EK>WAbu3DL484d|Kft2B(s(F|$h0}o=5Ac!Uypzs(Zp9BsjJ)1CMW(OXqe~@nJ;FcX8hUKtj zcrr8g!VECz{kzO4RxxE1W(E|DQU{Eqm_|62GGQo&H-0;gB5w~yC*}n5Tcau%3a2u^_RvWCrwgdn%bpvxT9)0vKu|*gA&kBW%AGCs zI}D_0L80#l6-skyfJHQE9R;S@XDA4wM2u0+rVP&v62oQ;D3+{0bzFAmO|QsehM=8U zp_ziuGmt~lc5^gcceBk3b(R%R4#IL9FMJG*OOnfSMHL8)I*eD2!J(J4{qezJ;2U5H=7-qQ)Br}$ZBc>L4n%3U{DW*)oL^YX^81_xSZc&E{2>xy@ mHd&$B`|~ABHqQ5CApZi4l(O(F>WKmX0000H&8nrI>)qA)`TFI_VxAW+SBds@9*#M)zHrV{{H3W=GfBD@$Ko`+S%IE(cakA=jZ6)+}hsR*Xru( z=;`X<-P`2Z(cs|V^r^6=y0;^5lW>g(*`-rd^Q*5%~m;^E-p z-P-N!?Ck66-Q3&i=;!I**xc3A-P+mS-rm*8!RY4Y+Sb(V=jH6**yH5o>*nL-;^6G# z-s0EM@a*c=)6v(})b8ft9vvO!;N8!}y{mIkp=?a*;oI=;?ds&=sd7-`-`(Wi+of+# zqis!@Wk=@T*`I1koM=en+t$9o!%9Iq(9_nmwYb#P*iA(}=j7w<>F4L-;OE@d*xTN> zxx7a{Ht*=;r*Kcs(9_Dz(5-b-)5gEo*xSv{(8b5fQAlGwkBqg@S+G;Nz&Lr`z4&*UZMs%FKg(dVhCvQ%F9IjElm<#Kpk9 zcyVolbZUNmeT92^1c4k_VkdS_GWzfvY!NkbP!@#Sqv8Ji4iH3xF zY+;mQM4XzMW@2GKHZS1f1L$Sn=xRxw5X2l$M5w zij;|gZ*FeX*xaL~r;dbxzPYuHkdlXaZQIh$xxK-&tfq8xbC6&|nw_9tTw5ZLT$HvBZcX*nUk5*Mwm6@E&wxp$^p{}K#iHnYIU{srIP_vthbZlmt zbYGs9lw?{{HZwB9y}7-omS<*Wq=Rp4YG{~lRcKdB;q2b5kA0G5Oo&@S#jc&7duCBJ zCz6SY(!Q;JwQD;%I&DfdVnHr&WnPhhcHHLK*u}NVy|ts5k7}w@pTv>W;m@zmq{-dF zUZO;gynaTQDwBF?h;U!K)v_~%j-mhn00eYWPE!@Px3}uVH}U`gH77|#K~#9!jMi^V z8)X~^@ERkMrZ1Xyxsom*e@YrMoTbGA5rn0ZNE3abnJ-MdUaz=Zo7}~_gQT5>tel0~ zvCt_{&_I0-^`+nEX=^q5!ta)im1Eqezwhrk zbUNMBD^Fg3@6&f)yL73$`{Kp(ZEnV5FfcZaQ02ZONy(>XjG}}Zh7O4H(FdS zS5pt4Vf5wYW#xLk(P4AQQ&Bd`29=mKBS(TaZZ2Kv^92HZ_ZJpsFS9boX&#%yY_7I> zq_1Xj*&LGcUH_iuqmO>-TNoV~9v&VUJ$Sf~%cc^c!9iajk;>-w#^>fHCnx9T#>eNb zJ^E$;&V$Df9z3{neDB`=>FMU`*tLU)d%1)!6naXB?CgHMa{I~4@4xf*Yu(*VP3LXq zJVcO^Q3BaYN}>{1RfTJHwY9k0I-6TN?DmY+V$kdLDdqf~` zFj_1Yqs694s*?04d5PBqL94dKL{?0)ALbHBUm|s7 z`rC*Ui+LPo{HG2N=bt~oJ*EqpT_^A}@1< zA!u4hhrOfKtEA&wl4i95%rLP?Fg!5i7q|$=iHdB+NH{@OF5k}v0)bRt>O=o!m5X`I zjKOHoGges&&gU?!KxmON$UyoQemI$!m>>`;L5>hODC8P4Nk{TC9SNPuz5P`J*~_J< zBb43K`NKQ&8$|N**>hFt<+RhDL7{Cn41oyM9$R&FhL0qtRFOv%G8N4pvuhwJipmCAiCYu2SS%Cc{R0C7Lqk!CQ=`)Z ztemmhwG1Qp+3AA-lAZTQlQEltF_f1Z3>>`5;xxaW-3YPE9_Rh7Wt zlsFtRk!Ui9#IZXOMdbLkHBMENK|i_`jEl)IJff@#e9X%E(I6aLzP``CRYeb@cL1Wd z7|eoz`A+!o%>f|}H0wJGIo!O}KL*JpLdrxyYG@g_a)>QI$AFipLc^Mj{ef6hS7{pf66bQG^W+EL~m-#*?gnXdoC( zav7Y#=;YMWLh)&k8eNLn92NpGnq!(4(-d(&fMyZL;vyiq`y;a_nG<_?k=ZEaLZfK zxSa98A@C8Ec1Vqr8YPo)kqA3FTJ4%FN|+Pb8ZkP3V`wHE9N3vZ+zChHf(OUl6nk?t zMMDQNuL&OPh|yuRVba#>Nch_WbPI|>I0Ajyg@cj){(gF90YXo!QpRb>JW>frXt|D$ z31keX7LgL&cUQX`&fqJHDLZ2@TbrETo0SQ?0&sdF_|=I`KKd;R$~v*G_h z>ftCrpeQ(s4B`L;l5>r3T_TVRy_XvMM@A_HIm+rzDP-mL?Ymo|%>)Q;kwCy8jt1N( z!vLZ${}%)w<2pkFBxbkUZDtsd8F!tlxfKxNsBLd@wYjnAB}bXQ!EEg)K)eWrwAMpH zAaE27B?K5fP!LF0?TeS*ynuA}b}yrhpdjPpM>^u5S&7C?bRhZ4m}m@e6d=WFl|z}A z6fP`a-N2w@ZJjPV98M>C;cTyIcGY3g|K`Bb*SP>G1`a?l5~Kim3F&$X2+}CZ$SY{K zo~t3#D(Kfig;tg`93WJcea}#w`R#w)ww>LFg>nx_yKu8zO)y=KWya5QL1R>2j2MAJyPz43hr11;gx_If8 zwzjrTNcxfCk&!VxQ}zHsHt@5~`~V9`$w5MPong#?;1GZWRYK>UZ-5aPG8?EcHqxk; z0;9gY;2?#upYLoj>H#S^7@MmDR}@08{3nDmNX}v}N(kyex7wS!d-IT9dT0+1-&$Q= zf2iBoINdniUY(u&a3`7{NI4uuNWL~^tg#6avN{dVzCmK77=+A&GO7u~-c&;!l+jw> z)aL@V^jtZ|6BPmGmbIr+YKOi{2{^ZO4UYZKSIDqf2SVE%W!qVkz!NOQVL_whtr=&xWa@bf`!+s1lD4densCA)~6j*}YNG!tZKAX1x$k?N? zw`0k*_0RM9;i?+xAjyWfMUWNIR|^Sx>!_#f7znfm0`AxewM~dV41Y98PK-BZ#G<0C zrk0iFPU#@Xp?WM42|;H$T8`070$1tEf8AEfYeh(93D@E`YJrw+UocDaHfdGibY=9y}dc{psjm+pAti9 zcwfU`6NHDa9NQ9ticok9r25J5Z+5H*E1t`(gjNYdg18Ia!S(d(>bFmiY&5@;zjB2a z>FiSvOEw{mCgfUXIpTPjDPEn@=N6L5qJN=KDB`tK8SHwALLp6%;ncX2x-5QZ#ndX^ z)_m%`a^hG|8Nwr-jsev{tPye$MB!`;sgyj&hpY%n(&#?X-qRHf&J7of!*dG@xQcwT zjp=~oa-R)Dd*;DRrKL`g8bGk{0lDIs7kNiyRp_BPQ4&i+tk9QnU$-cEy@@4(4?xl) zrIeOL>BD)kq$taxqyR!|U7i7uI!xb#$K2MKVn-!}ddrejhEI;o4C%lT@q4j2hb(-w zB_{w`FX-u45<(jsb_x52$Q6(c(N{e$R;we^LXQG6JCqcqgtH)WE-yhw#pkB)B?&=m z-3fd21STA47mmy*a2fLgFnNw9mq++9D zSy5u`T^L%F&GQVM@!g#S*+vqe(=QxWNw%#CLumScPb8i|LMhtt*fnDqX>DHDHNJRo za8}t6op@nPt+pyac1cKX2#}o9|3pFn!s%`+WMrgQl={SFMMC&ivnipHC@4wuUtts= zZi4V4sg!U%%;nAyY{`iyNP_d*meex@N$WGIG@ZkFq1(~e1mQK(SYuQ|{60XO1ewAo zPc5$riO1uk!Vnr7C8h#GM;K2HIrzR-9gLrF`+VJq&y1w-xMK)s$C{kS8i|)7v$HIL z$2O^FbluR>sTo~6UW@RV9h1g_*fpW;+Vw@~=S+yN84#CKl$_3znDX|nlpz6vVB3Fy z)jx|yQPiFehsRM{>!_-e5_=VTiy*GelqKwtW2;ial>PreB5)v7mf4H8WO4#e!qWyc z?++b1)Pg6v)wG9gh1?SxnzkV!eum7NkQq@*&xkU_4akQFp^$e;jD`UTgyX@8qdpj{ z_1MjlR7JW}KwMV*<)UywEC|Pv$gpU8$lBVZW@HRnCesZK2k8lRH5!2-bPNWhuFeo* z>4VVw7tD$T0P!;f^GlQpW<@Z+RzjiBy2yrOcvmqMuNTCCq1{B@JPE=MCx;|{f&?}p z-hU+wFd(y_m(T#*PMM4>e@ z3&4Q!IoOtSqLvqPR-FhN3NgiKRGzqI@Bs1KEEmP%U*ZG5yd@pYEFEh zBbm<^7*I#zJvdI#lN5&72@>!#1AdlJNi2wKC&+#n;9y9MD}qX(B7mSMydh??nxQ>? zlOu=2gQX6|UVH+AkYm?@>*wyDJUQ6P2}p<;mf&~=2;HZ#@lO$iG7wf(9E^evyE%Uu z!VH8Z43WWPc6qn!Ey*DVo(V|^6R?Zm8`~tJXQy9j!}%F%E80R(5Lpq+ap8VHAdukA z4bYo3CA3oU$qtnvb6Hok3~8l*i$9KcMQY^ZvI>Y-LZ~FnKrF~zOHu)8?;!{~ibY5O zNn%UX^4j#JYj1E?=S!l5(ChMD7JWqyhTxsiePn%(A2N!S4hp32c;2PB)H9=>t&67Ph&Ng^H0a71u=zu$kBA%o$t ziiE>l6bkMp2oCk?2s;Q8We7XaiRiD9E{C1B5ewq|52W`$kfu#YkXowjSbk`OVAb#bsVKA<(2|nPrKhrfQ;O7aD)W7%#l_5AbRi8vg>{-|ury zPfOL0#xao6*S_aG=bZ2JO!ivr81uOe?$11Gg9nDRc{-yLQ*#Sc!a|q@9Q%=1GC_Y-^S(f2&seVHGeFj5 zXz3nLd(reqqS0`0bS%cZSzQ$d5bci9!E%y5KEN@mj;*b&X?18tOeo1pwxg>RVkH(r zj01=>khYPW9(I5c;WTeS65eY zNI@p(oJ?FFotp#Dr;Irmqf=AU(^(t>!J!Z*VQlFn0g_!=)+NX|S|K81q~6~*WyUDcszY9QWaL>S15EfU6eN;NrRb+jNKs@=NjrnY<4GbAT|@+e#5#Z^F0??9U{Qx1 zTH{_p)ZrvJP!i_lXW#uqss--l|KQVoZ#7@7*H3>Rqr=IGBnl%KoI#=m zp=(Y_a9p{vxHz3nru=@9WVMexCD(JlClybn0)ap>$;iT?5aKzIEUzR68<3^vUZ5nJ z_K}67k#iG8X|(X4=YT15^NTM&BR~Bj5+57i{K?7B`IGy1Kco-EF1|M$433TpWq6Dk z(tuofm1RO5gB^a}G87mru$@%#i4+iGAvjtgdfC$3Bk}7C&)JgTa1g1;NGqf*>d@{z zOP4fB-+705!L4y$rC2`Mt>>$?`=9&tuqJM07lsQbkI%RY9^Zlc>^!7TC)9OiPFH<-v-Bw6A zG(5>S^z%5DEGYbr7nWwL&X0g~d_<6Br&&)3r@-m0hzD6(ip7B7Kw@&$KxkwOgt4U( zH?(k&Nt1puNhlHl$;Yu6h~d$hU?>zOjDn-g8u|Kg9{Q zhzAind-?5Tzc!6oDr6QQ0ip>+WNKgHq{_aUYcmc5iHV~f@{mBX9)vVOaHv2GcV;wq zWJ$ILgOHtvYzZ}j&_{s6PjvXog(DyvJGpA*Ht*L$ko1p+cs8_g4eJF0gJ?w@L{1ky zT-Dh7Dr5o3i#83&iiJGtAkHBW6ue_41U330pJ6nC2umTfJ1xCr&5au{0f$ z?qqj!FP$sj{?S1slSpI(%!}a&1Bt7Hk_f^wK^lmVi!!7Z4)KtQ7Aj0bmQVXO_I3(|^mcl; zc=ML4h#m_>GGksj3;VH7TA&WMAGys@#fTS)IzfebUUqP@BVYQ~!(a(c=lNy>VN;^IY)_3>VP zaDz3tFE+PmAy=1yXpF-^E_#rxKwLpMm3WZRRtP^g`ag~*fuMk)U+}G8+Xiy5RxaN9 zTrRTl1iO+3M6bI*LJH{xl1$j2^$im-9h2FMQ2?5?FZ z>y^scy{T|7YdIxBGJbAkg{>on1BN_&L+2|M=gWLUe>3FDRkDhYci< zU15jj93wrKCj}x~LV5PE@dM4kYA=X}PdiAyRybJStexE}-Ybb;I=kQV}*NYxy5<7w_hEd#n(1onox<&gI!l6L!!Zq)Q$2hnXVLUNSLd91RFV z$CiW{@@Bx#+|qF4NXFK)7&Jhh20}sjlaz=>(%}l?AR0Hc>=%4>&bd2<(!JuRr7CYz zUWMrngbA(}amk>4X>|Y*hZIC1i6|3@elV-Ze?W9#4K?ETC#UIT8;CY|#$y6uV@Q;u zX@#^`qzj1#NP){%u2w42lds93q#nj0TTXr3`jDndL~0;7v?2^Gy-dav>Hs1)8&_Xf zh#gx}5KrL!*Z)*j$CibR0FlQZbsP!BSXzcwdr2T7@#4#^t!0k$rMq{_FQ@CN^61WcvA=) zMlFcm{%wX_Wt%m0Q6T{fp(JxJHcFxprU(!#;pH{$5Ep@JXDM0V(B6!!|&4 zrgz8)Z9pXY2@A0d(jBKD4aikn5hM&O*7U9}bvQ^QD~DtdbVgesyk}PwB7@sNh}|@5 z!cm(ix_z1Ly~9lX^iv?^u`$!Nun@Os=rj?BEs@a7{FlP;#0igX%q!%TW(c=NW+Q&C zxowc?6{d+wUK2eVEQ1SHJqTe0qw*gXqWt!aINP z;6ax_dLNkdnvIsNh&NH<-1=>U;Gp@vh~p6hK@t#$N@i7JAv1FL#$jS9dbLrAT3q<8 z{5>ghLw@nqXxGtZ%$Mmto-YWFzaM}6dmTuBJ#O+R5Q&{NKydU<@qqTcg{*pz9voT^ zmUA2y5>QCeNJfyfLtI&i3<6_m`7(dG@Y=eUw|%Fz-NI2}_vC&a2omFn>r}t+;ClnP z_(ucM{P!)O%Dz$VDaz9V0?~`s01$F%X>OMJA^pWc12Lgv89~B4xlFI!KsxNf!&SwF zvbZp``OMz-rkBIR&3{Navk)7@Fphs0j(t1UC?UI0vJA3h7g5M1QG}#KvW>DAF)k)y zC}OfC(=?gVMA0EG+)wJ?LH9h9E#7*|%oz=DD)etRQhdPe2JQ1B0aDM+f(y zlcwkvRf>UQ4QGe%tyn=XvZ70amCF`#*_{5q&TIh+=LjGJ;b0wQ3d`66;;k#C`g8F8&9euy$hlfz}j2k`J!fKF$K*CH{KzOydf`zQi5Q-yBRuaTX*uYz}cP$l~ zp%(84Llj69Mf*nw0KsQ00zsDl6ZF79E->Q4qY9nS!a)$j@hzKe?G1=jj(j%T-bug| z^8ULkjAJ1j|`~tWEs4-zzcPA)_`(o~4=f<5SS=X?3Gug$ z>NT9^xUDd(R2*Gs9Xo%@I5_M`hj2(@jbk{69+MLg8T=+dTsnARdB#ZGk0b~jF$Q|~ zPC3|Y2ZV589fiv_u2mlNxjtfGP{?-X5g_?|_|?o!)Mmfcdt z*ua$5Fq{KJ6vR>ZNhj%3CW#e7B*6g)Q&LVH29UEdMdWDoVGgAa^}($S3g|+DoC8tc z+GGUzt)rz>EXiS31<`F^&5M{#h-a8H=zp=%=4@mf_K-q?Y)RQ?uYto2(Fp0z0SE!2 z6-z+&urpf8$#pIixHix@G#T(0kd8t@b7%{I*d%vhq2)(MD41vQPIarB~ajgTFI}8&mkdB-4C{!&0kVs+dRYBnxn3UQ} zxt8`82azPhg}U4hhWTORu^1#MI3g_RuDHC(a*luj2Qow45xKfy7a&}La9AK>kc`DR zAVUz%Z?0`f9-acfSOzA!QcK7D)`Ed7;;6_rcBH`g6G!(bN!sElqRyHL=BlYiF^Ps{>0%VNmDi;dPlVd zl(4?+9HZa}6ks4Y)DQzf#JbE+F7gQoNZF78l0mIGFggo)EuictO!$^7=Gy4iokQ&i z;XzXqIFcaAh@WYqi?pT~6dwmUhf_EP5)L=yX7mA$57aC;&a0Ji%|hLK*-~3+8!@Oy zkC{rbs@k@3neE6=8al!;oFlelMiK<2fnbOUTg((>9A-y13X+fKL17r2(2qW#%ZKIW zmT610se@n|5A5ZwE;saS+Ytv;7@10og2YjKI-9!I7%85oE#?E&_l< z><|#gAXgENImfT4Ze9V0egu%+ggOZ-4uSxIBwbRqu$yHuwiNpqN74^4jHBl$?nw|N zyoZcKFqC7gQ@HM*%inTDH`D324ahgzaxcss;Ztn`xu?A z*;9FnyR&4;jZ)BeD`w}K^k;6hclLO`O^1DJuXc+$h;utUX zK>>tP>>tTi5hPSA!w4usfrO(z`uyZxC5w*SpLOh%&#EY=&lP#iS1jWMlo^If>;hJ!VwWH>PX|uhS$4Z@49nm*RDHSrONjO zfg<~dlslI5U>NZcb9jr51j5?gzhrQT7YYG|F1rE&g$Yj}nQtKO#~fk=IZ9OZrQx8= z66HZRwi(+&}g9Z;aFS?WLz!6nBi}U5nmyL~$MiafQd-JC8<>$|D zkmf;JB7+{xL6U)1Vbc|gM?r`%R`ZZ4xtxGQF6Y^#Wxc~tI(2O3V{+J z>v!&4u){%wV=VeC5*A3JhhIL|Raaxrm&Qi^UC$_pO2zDdDfj(SS&zHvQc}xBN6Omr z8*xzj_R(csLHO(ed5I@DQs4NcslKVH=~;DcwV0;wz?$~#f2y6r#UmNRRiyk(=9p@yn7h3#Zj$ArLI@OUsdx9k#U%x$Z(IQZ+ z;i@CZrSYXd{2JAM6pT;kEg+ILryRpe?f+S`Uj6c+%MXvPe=!A++v8^~U1TVz8W{&5 z)lGnafdCOpNG;T6IBv5v>1nLw$n!Z&9@=+EmmY+9j~qu@X^qdSSp9xguUP%k)Jxhc z)gXN`(nM>eUx=sc*R#R8)JTNonT;3WsBeyH0YPHOLj{??nxtecIK}# zg<%|@lzmCEWlLx*MamCClzl4(Q!|(tlyzMDzLcdXYSnle&+i;&wJi8=RK2pPP!P@bpgQ;0xRUe5aGZMo;kQ* z*Cw))|DyBFHf+e|fwUWD}-~vQR1{ui8ohv=a&1(mc1L-5@H$kFWdv@0* zEmy{&r58h#!x;icFE^f34lW9zjg&iZY9&bmkGZQ5s~!pm z7k#j+wa!6RAbX^Lys+m$I9ZVnaM^`rov%Gs4nTyXpDVp~ti(7huoy=mnrDjTK>|p# zBoya^k!;xgb~o#fo~3WEO26BEYsiNoj-*p315uPY4&=GU7CLbDulZ)fHy#>3eCt-G zv;$&gxpgCkA^IkcokxZr;rJQ_6j7W+7TOsj(anG;iE6um?B1Tf^*a6RZ94tvwpkK@ zc$Adw1v4bM_B@>a$8ncg>-!A9aRU$=?o-Wrnj!UEhG^vl1C9sZ`W??R<};- zFaz0Vx)`DyBLpJ^Y3PzYLV}V=yeIx4pCu|ETCLKAmIr}EINEZR^_hWE_s%oOLJZph zVdv1a>`wR2hi3RGjji=fDLAb3j_C!*6hM^ZuU;@fX&OgK_9U5vYTK$=)9t%iU-i4y zl~w8AtJ3M+6AT0r0Wm2Ehfi*tKYvfFbkODf+Ou$ z>4chg?f#ltV~0pBL+H}szz?asReLAyHLX@{@#R7Mb_JoySYrJOv4w8kVyjxx9+@L> zxX|Jh%^4M;0Y)ciscdSEt+U61AsShh=_Cjo3KHS4#>JH!Uy%ob+yTT$s`~e8kg>|Z zq98Rj9QK8#GHdNIrSOw?Ah8V?5=NGu9F8I5Ll7b>8diAV+aD)EwRqArw8XlT7|0nV z0YoqiWO+>upJcI4N!*Jc$j^1M$U^iX7~(4L_>hC~)Ie)mSh1>%s14<>G-0t#twKxi z#FOYoa|9Bf>I(r`Uc(Izf=k*QrLYuf;Xup~8>I_JSbaT)DX=9LL{U@1?H*2JYl90e zi!S4^Y*z^dU!u*a;$ke}^f}HlJ?a^5srED9E4$*q9~}A+SM>(3C%V~ z5-zn9;eJrV(bw`dI5s(`F0s;vjUVu=3slQa;zd#}!L9T0H35XfuIk;6r&@ZQ}ND@(^m5Z;CL@h8! zkO#q%B#`1dCLJ%(e#GU72QdumMM6V5Xk;0OXkHA&P(ne1A|!DXlkeW8{#xq!*isNA zp=A<~+3PC2S5>LZ;8bjz1!@^$6l`oxWcdtHL#B8RK#=?^mP93_N~$(tJW_#zljx{i%~i%?Jvx$U9ibtBkRj3;dJdl=EKdJJQpMsyqIJuI1UtVAk> z?pBcXZTtjN=LFJCL{?}>heSgJ#H;rD)lioNkccDVv2jE|EZgSE)U2Ln(GT=CpD0m=RNY zZ2$fH_ftNv^V6sI@4tTi`sUKdOP4NvL@!l^sZ*yGGMRinlbJq!dWL&l$>(yp>4m8$ zPVi`fm8qFrY2uQJ*=(* z{=gIXWuD>gg+?#{K_SRb2&@~~pDNGha$zu(%ctibp)U~%M)ADKh2Ov%_)sY;Qz~RJeit=Ojh{rf3SaGK4vw#qCu3)oMALXX*@J#u$ec#d}HHD%iN zrAvP+$opy#ILwj4%Z&N}L* z5)y7SlzUy%Odts$apC5&LqRmUpv4)n1n4{r;VqvLTO?s3vGubW1QLlYKDM=T3_s+p zYdfU_Jt0N7jAO?RmnYqtFeDyXq{)K^4?e3%XR?__iUmSJ^Yu$sHIguAy8MQq0>T%M zE^(e@#S#cIC9www#1+1AC;6gbMw*x<20~nM69Ize&)>3bOZmvGW9K!$ZyYIjC3;|WeV028Izm`VwRk}#i?lM$clA(O4@*P0h^fRm*7WT$nA(zDm$c#w!uq685XK+w6+yU@Lq zscC?;Y&?F$(xrSc;E5!>MU}at}(C`!ht;F!&!2~oWcqbR<7RA({=ApCtC`K*GOY|TI_wu38%Ca(r>OfEt zJJ_Aajcp-DaWOl^I$Ei>XwvrW)GQAoVHGL_(a3VP6tvEktRxXMD%~B?9T$|dM~#G9 wpk+Xy;~sZ{#wgFtqdDijLWmlv1fkt`O=(b2K9vvYNIbzxzlt*x!4rKPg6QX-M~`};2! z;(B{~*F=r)-o0B&1%5td4G#~`%*_1AwrFZ<`Zc_9in3gUOGrpyGMOuNv1~S*L?X#0 zedgxoa=AP_JY07Dn0&I&GVhViMn7nRx2Mk{AOJNsE#CYWdm~`Ex#E43hyNZ5$*-_5 z=!$EzMwZvB%1ExETxe|{S=TCAW2O-6IZmWHB_4%iF6+C&(oi|GB&Cw+MBGNY|p z{g~lfu`{>JLml?DXId{jda@>)us_s~TD+8Muri{(nMV-0=iZfJePi_O*12B^kO369*I3C8ofCpPOK3ny#Zv5(V)GR+pjPj2ljqmQ&$ zjdD|MHI#FMmBQAdJ->f}+^8VO zU7XIYL=?+_l$=u>5O1!`g?BhM4~0a%@i@P%pW#0kh%MKFXGFPM!Pp$~`X!-Lp#*V^ zEw%v)3Gz&XoRvpc?_lI)5c=+VvRsY*#F;o5e_~*9B@`=k2;((6c4?wzCSi)td0C?s zNC$;PJw*S?@);7bd9An7kk_IO3DNCH_lwRkYlB4|Q1`PT&YE1DRVZlJruemzQ;3hQ z=!=%&x?HWIf`<<&20PkG8ZnpoyZo27%T=17+%J33{*Ava2*~Y)n5ex!>|tYkkA{yc zDI)+THouV;^7hJdmzoXHS;hYrtqy{=btZI7idn=;gA(Ha>k&$3;z*ha(XrX<7-Ro7 zlVfUo3UK6TR^k(^4&`+4@#G_UO{KiEZcGhxB;L*GZNKqY?K#KAb-0^KLvV&2$2aNl z{2N2qYNFJ5-3S$Ls&@R3a{$6hZ={_21sRn473RV}>G^|4F-%g|aZ(*Hep;TMVHCR}WS)yW7I*W8E^tgprQ8cv1p)IJ|w83}9WRS15W_ z4d(3|^ncB-nqD!@c}%}~JzR_+W1$R-wEec= zfc{if?d<```1c)(`&QwfJ*(~2dtP2ER)`KBo>XWb(V$UF?&r;mV&0m~_1B)5i}6uJ zvV@vLoWeTRGw-O~Jhg!xwG6;c@E5CrC)Nk%E9nm8uMuVal(fSPtV5oo_&Wg;S>G#?kb%(-_UbaZuR2+%7S_}ZB`!FZ;g9)2|4NG5 zTF$A&XnM1-?=-A(wwPGQA}dn02o2v8oqig8koNCW?H!!3E5L0=X67JWPik?oRr@RQ z#SFT_?vj97rw4#*Fq$a)>SSovWxc9pb`+i7^{o>xQc%Aby8qmrH!L-@7_6i3e(3~p z(|<;HPkzyOz>_XIQzWYg4@jyrahFE};hPRRsWCq=k{Uru&^8k!>b%1(Xq*wA`2gHZ zH93!rJUiLPpl01T1ySyq4|d<%#RW~aVOM{3A9M-rZqoxEZaR=pfq^L90o$3lTv7p} z)FbqC!;B1=P7%O?ByDAn^6Lh1#`AOBF*kr`nZH)0XE#tX5OaRlGp#$4M_b|t%Vkqn zGerrr=n#xw+S!>$WLwR9dCL)EyvI@yOU2w?AWcKOSgrB69_x4iGtPV!V3v0KOc**r znewFR5Uz7WlwKXTAQ*iOk0^UnN&BU&nu0NoOUxrFo2j_BS}lYEq}2F&zpL)PZMNI8 zI*fs3U+t;x-$^=|uf9n(S&Ze1X}J{_k6Tn6=KQ`+nMF@WaFsFL+}6!6%vEqt`xPtc zQ%a9iUj00093P)t-s{Qda+ z{Pz6){QUg%{rK(v?%w_Q@%!)Q{`BVl^5g#T;QsaN{`cz@78w5Y=>7Wd{_*A=A}Rg( z^ZxPa{p{Nq7#aQg@&5Md`RwEU>e>G8+y3_LwX?YX@Z|mL*8J$zyt}{p<%fZ0??&9~|$M)#oxw*dk@$A06!T#;o{O8jkBrN#g%>MA+8z3g~ z*2C`8!Tamr&ceX@CC(K=G)B0$o1>y)62~H;K;qWyyC;J!m6R=$hiLa?%~$d^V-SH!^H05-QUm2`{K&x z+}X&jpz+tn>Fe&{fYJd%gD&Sz4hbQ@Z8Yn!lvKT z(B{<5;KjHoA|K@0*7)Yx^WW0y;N9EN(ER1h%y_BNjWh?EgbOh^3lJzoqJ?RK|qd)h_Q)n zm33WcQAO;?t-h6ZqK<*5fn_{2G1;MLwV;-=w!NK$b(@osSw}y~p@Vu`L1jiITR$Uj zOC@+sAz4yTfMid{r<3ETYJFKSs+p9Icx`)dYSGWr+_#w2t&ZxmevM-{n4F`qm4won zV#SYHy_W)-BWu&}76 z%X|^`&Xx4SbxKlO%#A|%+N!X4FyMnLDa%%Fo8k_ff2Z9@M43C27xKsL_a`?wr=eQFmZxuFy1nRjx`yI zGnJB(Ztmb_%2Es=)DRC{d(OF%mC(|o_vcDU-S_jk@9MQXtwzIXNv`WUuB*8LVQ9Gx zUiCU2)$0v*UU&dCZEQB0nh`;Dw!c&_XH$b}x9e>xMenEmewy^7DC$PtZWMHbE*owG z+yyzB=Z76C%)C5^rpvRlDSkc2k9xszp?5o2dCLgU)v$gnoD4=t6g-jYs`YbcQfchE5iP5s4%c!8DAb zlrl{iC6$N_fh0t*2egKx0+3cqEqLmGBW+>o$THAKfJtyg36raT-fXtHP_9}mV?-V> z$YLbXmEHM-Y8nk!|Od|QWH~OK$m^o#pC4Inf zzg(?O7xTsS^|Bv$5N$!wlQWs;8=yIp_j(yw1^_Xf9p#rp8mR>`*DNu=c%yq2gEm&J z5Z|hsVlA=-FkBvIEwpsyF;azEk~~FeQfo@fU-_ zb<=b=E%M#=l%6&u^Qy4w5szZCM?X>}Y11L(SrTI^gE118N#q&5 zg)>RFJ&!AvTJ7m=kRg=>lPSS?!y%YnZehX!amaE!*pU~G(P*@NqD>?eQKYTZNXgJ| zC#i!8!WZfgj&WMZB~fJ&h3SzqVzKO0lC|+kNpdx-)#BO~X0-16fC)Sk)~p+(TP|n3 zY>+_%ZW_QqfRTuS3q(pZ>oyr`>Li#kBnjTunD}BqF~#hFC=r^7%r6nO-KuiSlnREv zsTv}8-8OAbZlA}`*Rz_T0OoW90>O{~aiAN727?@OndP>KK=c?R>C}c^5o0y#U>I7S*UtZB>bd2R5_poTlj<*n4yu480WJND2G-)IY_Jv@`Ap*}9OxJmK!iZ?hC>TS&=VL6GL?a?W>0K*^I!4Y`)2?Qt zr@v2Qg8|KGag{T{nyW=S%lxc2$mU<_gbB?VgE5^5h9K78$)9&dV`GAG>q`&?6t-cW zW7&Bi03BzU2jepKO=E=P97xJS7#2;@iDf1!xsYre1#^M@U%|kaTTk-6)gthjVcBBd z55p41!;`Q`G)ptVNb;qM#g`-qX-a@gCvgyPlndIJz7&#z^Uxpa!4M67?BVjqXi&i< zktY$9!Qf4G3z%O;Wsc#@;e{_2KbtP@!VH&xy~+eLCJbh3u+{#KOP#=mx>qo03vQpzpU@C&`BU z7fwT}^FFdy#Y9$gLP9_qCK?V7CNC$Gm(ZkYysN}NP=OUt(m5*gdi`{}|5qOu^Z9!5 z^X|uw&zqysoB8T?b#xKp0}2@I8M2h_5Qe+LaE{p!TXn+;t$E*a`$4c#!5WWgx=}y} zyf7UcykvXHQF_e_dW-NaCWL&1;h{uGCkZ8!z2%otyte(%mrU*G`^Rr{>hSRBO>MNg zSYF-E-)s&@Grs%)XY`#?`+%W#xPH^Ig#_UV4KIV6R{eZ>e#VlNPsd|p5lSgxXz>Cu zy?rbqiK&7$9N5IA@%uscTtAKD8IGFe+kf==)A;;yc{e+q;St(sv{$R$9q^C%fca#r zd4&(?gs(cU2-7tZ<1iGb#T5J6Y~H+c-ha59M$j~x=8;M<%Sy=JF`LXNd?-JfjkoHO zeuc`ogYhz_4`mgn;d#yiKE3!dB8VBo=*?$XH<@fsS9`_t*?LjC)(3ww82ei|0tq;! zGmf@AIKF;G``U!=zuwk6C$Z~A#O^%42-(OCC*DsG+tw(@ArQ_l-Eoh*a(n(OK0*o0kv!dH-a=jWe)##8RK z^sIX)#e!Su(>SBYwm%KT1NuDxWrPief~WxOXwS`o>A?_$XeOaafQiLO)ai7xg_!;p zi!(BFawiy#L^&;1a(+)Q3Yl>P(mpWIGcbTHHjo(;{|kT*5Py#;I@cqaZ@>ELoj0c^ zuBHdu?YG^IXPJBG$?jpwbfB}dvmNh)6Cy%BABIAhXb3m-Vdrh|HZ*uw2x2%K!C=sf z1z(55qi~5@oEDZLNG6&*wNsYm-I4G8q(X!Ci{sQfQpYC8caj1=d4Lu&A{i_SutJT9 zN%Q{lbz|>;HTKx`?_a(8-$nG_A%%&F+a?(7AK{~CCnio_f@e>jJaTgK;@2kdqxj*M zQ{+--u^==>9$0u%sycx%0 zkIhD-aig)M@|7f9>V!=l4RH{yL!)*kQ(gGLefv&XoHybwIx2q_mEL$0*H4Cw9OB!T zFO>Ef98`@_7FbAyJUTHt#Z$uA^4KjyU0p3B==NZUkujK#4)S3hWUsRBZd%J3l7dk+ zZQ!K<6C>n^^~TL#CnBwoA<{B*fEBX@(YUK{)oK@h`}W7^yxToAiw+R-h2+C`jmRO! zNAy6YXHbPd1PE5?#Dc*xoewW>f4R1$gUgHh4p$f6#Z8b(94O%s91SE`0}jZADFLw9 zNDd%}$jv!67xVjD>sm3evJzmK=xj>7dsS+7X?9VL$K7Ww`h{_yPd+@-C6fp<=o=KM z$b(@SfIdZi6*9{^t6FN6hb^Eqtcz!emw*D+8ikb@CQZ-%MrbQ+7}K%#;vHVKr(D|3p_}LZRoKJ{b4v%Cd({= z4Zzv=q46?t5`l_Nw4T3a#D&;d%X?e8A)35h24kubiX))9gX)W65n9?i2fC}o zb*EK1XSy)}+R>fD(cIr4Ud30Q5`<6!lp?}l=&VgTEGE+$lc_)p3JMBzI<3}VFvxQv z7$_V%gn>0}B*L;-B8mB+2L!!KPU*ZCpPh>8Uz%ueKiAQL6C)LdwN}b39ZP#V2@OD| zg>2X*6F?9{!O?%TA1}en;qe$Z3K5PVLvF4W7If|frh+wV3JiukLmozfkjX_b5!k>5 zoH%g;n?vLj!K+Be;!hs;dOQK>O#AgQ86PUo;tA9nf3Bm2&I|$#eHkNFdgcRm!DvT; z?d*Pj%NF;_q@W0zF`6k70#^O?NBb!v50RU@v8iOWi>RdBT+9m$qO_tkFRw_gE-qH9 z)mohnV%`suk%Ph|HZ?W%n&8CLi4(EdA<}8Jw8j>P0))%EC`spn$mn}X`f)OTtOYU+ zOka8+8KuCG42dZ8Y}@tBmb*IQNRNN1xfw&?06|Bv?`VDf{iiL)NN;7Cj#dBEjz1sCx!u<-Ggo4j5}b2DlMG|&Q68JE?$wD;5;Kr-Ai z1j0gWAVbx5e?4S89)~BuGMo%|EF~AlkOwL%NCqm|ggS3+etxz}b;VovPoH}G-Os=K z;=SL0|KW!}FMRpwi!Z+L>Z`AbZ2XWpAGX7;hG7{p86L!g&hTJO(}D7*6q$=vAk*e(BbohBAsL&^Kr+VlnOry( z>co&y7w^$jXvhUNDv+J8$%f3OQ03dmHb@+&>xQR*Sn8Rw z8V_(_r5%*oScXMdg>o4LzM7`{%AS%%jj@U1(abK8sqeklm3Fadwdeo{W>tOR1}RL6 zi`QbZs5KRZh2+9Am^#>9aXB^(?Vdk7vygao?)W6$%S1wQM4yx~e}XfT^K5xJWC)kX z<${Vp#a&F1ArK779H_2*%I!n@R*H;Wup(6aX8+ON-W^ae8ts&fL7TI8ea=Pmo`NBl zV)Y(Pz6NAxWB}^yvZ%5!y`I?dXh?S34C{nWfo(>L&f8&=vPcUpyUYQXC*WepXDiFJ zDNys=xuDY#UuL2;mUx(j^-n5+FV;9vkVEvgk3~3<^xT;_PKp@FXAF| z09J88#^u^iGWLMoxZY;93Ym>0lTHOH0#q2O6mAeQS>(bp>_W>WAdf8iu|kcyn0!jn zO4fuIB>!k5X3ufG<&|=Xz=LFj&ely^x2ig+xWvjP3}o=f$Ub*`bvwr3R9qx;Z+&n5 z4yrI4WY%DI`rPznpNDlQkxsQy<5O}v=00oGF%%h^WEo>9L(IRcjq zn_MoE$z;MVcMsl8!)IJ{NK}ILqaVC{wq=E|Du%R$} z17z5MZL2ZbF&G z!>b<1I2RNr2G~I|c2+T&iq;n8Tt&%1MUhb>7Lv&qcYT}}1Qhs?O#W-5$bxK=(d;Sa zsbfQ(rKqvZJEa*y<-d(QJb_m=rwu>eCgjb!={KA|xzK_M5N%v%}iF{Np4Zf-h& z%N2oOn`|~{3A0dM3>QPZ7L94(Y%1ZDQ+8=E7VY@(Vz}`BAf|^;2Yle^&HA)NEU0H5 zduFEV2?rxv3zk2jWV81&CYQ^pvB%jyH~>q9qRKEh76;R?CkC%IFr?vdP%mDz7e7QR z&uoP4t*rXeJ$M-;5Hvof0D~8rmT9cT)6>t)^gnSB*9;0m7F9z-6^MEpLYrlBxys?C z*=P?L zd8}Y>ABn}<|F~#RJ<@?<4>XBf0vPEp9{y=Skj(f9FkSb*eZsLEg@rVjHI0#AfH8ti zQL)hE)40SPOao)&+jfnNCmAU$YSd{ciswjabgDcXYyWO5W$$ETxL^_yI0;}#f=I-I zC(bZkPv6sh2QW;bc_B+LC>q1Dpwy*s6OBwV&(neygN7trR)fxEAB-m%b;efNh$gf- zTr9oO(f-N9IBmWhi>flCCRHxsqg)6B3QB24rbkA)`tLc2E1*My;an7kIfDu_)?<>z zh2aAX6)b{5HRvs$Tg)^1-ehz%?7@*{@rPU5Kk3I3P>x1joSd(ES{|DopPmL}dSYY* z_l92rMkO;u7UB>F%OEhBJuq#+IHOOqFB%_`!K-L^NNQWy%s&QIr0G4oYR{j)8KD!M&q<2*asxGN7Oog)mP!mjxWgt#)k?7~%k=F$zMK@o`WH)79C1%i|}2 zfrc#-3uzLZOjIyf%?Lvj7lss!5sO4qQ=?C5y3yj6aczEWVR`9~?sul_)el1vRqQdN zKBfo;e**aR*ej*g5h8|8DP}FkcCc{4PK1P;`3tUp)tZ?4C>vf`Gw`> z%fH{Y5iXYL$R_cagb@kV1T=>Z5#|Oj2FWlcCzuZWJ&{n0!UUR=&3*~SV#_`lvAC-S z1{z+XBO9stm9>QnFZ^kTOW6={ViC$ll7R?4Mi>-0t(|?q@W{yMGlql7WzH!~IvOPm z%?#cFLlw7bVnkC1#-%}@wUmeLh0oX4e)xSJx1U2?Hz|$6a4bSWn}GsMyTZ&8g)p+i zP%MKvNv4A|NCud;X5RVbsI0q8FuT6%8hs`hx5h#`FRt3dD<7<_t#5}9Z>6!Vaj!*y z(UZ>@uA_Iiws-d5aF>IrTWX^MJFQ`?zDG? zad+m*Qem+eE?!FH9ZrOjaa#_7a`XXUx^BGdZpnopc%qOCFge0R(-n+C7&*pxF}3#@ zZK+3-ShW|vc<%DjXvz*xm2sZ|7%GjKAPPcJ4~6OLLYE0eG+88rtDy?!^{O^&QJ8$5 z2L>e;_smrHSsfO}xI4{i!Htdep7%dk8CAa!m^7fFbdZdUK3jl6DNJi$*Uh(0f}-bz zazQdU_?r$U_FphsP*iU7 z(ZRrzB@0HTry7%XVf-57Spb9}nA+p7uRC3sP$@Nf(g>B8RuRqA_QuB9uS~{BCM*Gj zlNoG10E}#vIv8{rC1bvR?%X+GKtb^Wzz2X9Im*;MGul!|GARG0Df^1)H#e6Gn3_*} z4}E>M^e(=*Z&xaFBw@_cDjA_vG_Vi`s~KUSNvo?E2nd5*NV5mVa|PgYTk1^)(Y&%6 zUVPGT4V~UNY}*$%)A>w!;~B=xjf0^qb92B@4GrZE5JtC{B*T~ereGu)!pQNz#y%s0 z+8X7SWVos^mRYh>e;WSe7t8eT?MnA0Z`v#!N%}yU;{pa6jcM#WID14aQj|+hVKRh? z5ynYI_8G5+Up;%gmm>esYtd5^-5j^NcABAC2jtUb?WUX7O`$@m20(E#%TF3rApyp#%qqCmr?yYIU^>4QN^=W_4R zP|tyZ3TBKgf-z0%GIQ+saY@F(AQ;B@9ZW;5WaR#=n}Vm4j4oF)pQ*buJHuGaDxA@G z((5M)Lkzr;=3bQxFs+n~o_?p*Osc40BpE|67S+Edc;MA>)#e!W` z!&gJkt^=b(AqrAKGP=zq7NH2{b!xK+YZ%ka7=Mdrr*SZzWV{b;@wAyvrsql_B@h~% zv$+S?eOf}5xfhU(nwdt%00PXQD;TQRkqlu%l{O1jF!<0f7Qy_V$y{f}qn`!W&#WlL zVX_nocJYx%&-)kP0Sne&e?M+oVWfVN7q6!c6MP*BXuSEX{H^Ls6=N zaYULxol}eA#b}V#c4Oq$g`yssRH1Nj{kf1&Iq(pQdZRaFQ#wXuyYNWD zu*@=!X~%AYr8*g*3}rH7V`IG?s?By`Ov30Bz;VX#0zep}8Y4H(#iB7D4XPH$Z2{&~ z_Z2&}na2M7@gi=~Ta>(Go|qSG4z-x8PpgcTxL_SwSQ*NJupZn=UL78IAd@!qM@15(KJx6dxNRXk)7YY zlqt+l7sHFEAxM{t_L<%|S%Ast79)swOe_FhRT#5s_t(kLZ6?Cd0??dyF#g@qSkh>M zsV5pu(HcD4FWZN=LRkMFUbI(dv8@S4&pk0Dn+_zSF)R^`By$`XS2BW;-~YRlQSUUM zfj_BTg3(>3hQ_!$Z!ev|SHVhFxSB*Tf{|4C;Z(FK*w+b+OiSg(y=gKgCdsrJ+-J<; zt;X4HEXz4^%CC{@=rV8N(ERv{y?ENN;<55@>O#&>7Qsj?Y!OT_*w>zA3=fPenKZ9v zu<+^3V2okpb*EJtEzZ&46SD9N#k7AI^ud0Z*qP$+dalLqzkStSecMmd@5Ts3V>()a zF$JR+GuNgW-5;ZG23pWmFier=_c(TslShIwPLA5!H#GaLnNq57%%JJ7jY*_2Gn@=D zWW&@YGXsu;Nuu(yKI3c1+^A>-BPVF}r)~(p;YA;O+z?)wpWC)a%MrsLDvzeFC1{5c z%tWQ;@Hk3^V>B>mvjd&Ln5q)=F!j2OH%SH-!9>(e?7U=SSuKo-t86U6NRd$|;Z99B zyD%!{$c19+%nSIry}F!Qc^S=Ih52TW`sJ@X6X{^EkuW*(2t{is8I3W#7~VT!K}j;Y zII$Y#wp0#zapUAvc;%MQ+6=5@Q&;_Q7bd)C{qkafli}H?S9dYSRG65?gwSVtMWYQM zt`;@qvv)G}VZ;v1iEVr8bnsLlc)pmrmX%;?Vh;b94g?$9vz67@dFR?R858wjSi_h& z<`WXKRNu0d59`NpnOnu;g#fNJv0bjbEs9zg)Nf`WKo}NyF)}lZxk$H!mFs7 z1tri3#%I775nwRO4K%=kLlh2$B;{Z`6bojsrn~?K zi`(7e33H(|j1IE(@pyMtdAZetj{i+m{9U2&lx%5VcHWlu_J;S`&!g>o=PheLCd4pS ztc+ob70fFDP!WuHk^q=vP)wD>eEO&S0%ne+`2k zA;HWg4lGIvCWHcDm=*KD0{v$-n{rYR-Y`r+!pyZs8$%0t=tc^_C{#txxSQ81ga3wB->|l2ZIb%?md8g!9j&hB0+nFhR zFRpUNCorxx_{Q*ycEH@YQv8&3679t!!Wb8GXex@XUr&IMB)s}7B?(x z&s7Y=f;04BLo5#lwi~gUx&sFe?Ay0*0@Hz5Wo2pZfGNs6lVQ;JahbSDC1WIIW;CI> zybDdta-3Z*u#$Y!AttQBA@Zv*BP30wV7LHCm@y0{CSqT7&KxTO3^{{VlLeScBevp~ zi9OK4gP6CEb?x(6NF5R#w1gQ71HYmVn1-Z2VN0|#)7Ph+mNU>0*ETuzBYr=_6pC&H zA~WVHAYSreP|R553a-eKmUaE7 z?I|Y`K7MkBtU()unTlOGlRG)s;ntL17 zOh}4gv@5z0Fig13Z3i zLHD|NqH{6cnbC|(7zRDLX(a(utP%jotR|EL9cDh2GYSSEnucLM5E$1PA7DUZ+rE#p z?>c}9t=gDLO?~&d`jit|x4$j%<%G|pY5pGu#5nDabghfW(<2B_Yoy+3s`XH_V*DqJ zP8Td(r!|bFU^ESJa6MyZf_X4Of$<_|Y|Fw^@L#n#D_7#58tcDI!=6lAYAV+CPW}Gv zn;$>lqhSs$$sS+dIwu|h-Rf#>iywrtAQZyee*G=9@zk{0Nj9zs&KZ4|P&({c@- zV5?|~C;CkMses=GjAa*)SS0S7i6g*(bUS03MvReTw7HQ7!5-93-bnxbQsjFw?#>*dEXnXt$0*56VNWH`FX~B)v+v{P>hFZK>oC(1o{%PB9 zCW8#(0#y-BiBvI#1ADMxn4no0W`GeI9cu(r<>rj7V9w25P-tjxZ(q6;L%rO6-GVvu z@p$o!NTkeX%0CvA7Q+aO?263KcC^Kv>{C?9ILIo+8NlFIDGuxiN-$U=w&c7aqCA)? z%>ro{%mkE!31U7g1wGnHM#$7zP}&OPfl0ZI^vF z)>iMNd+_t$;=K1)DU|@_TFqllHz?y{uz|wt9uoM=6 z|Dw?_{3sq^EF%`9!K4I+fjDbuOrF=5pK*5U3k(wp$HW;M?qp1W8TDdUZNief?z7)WKM#2m*Mh<2f!$1#ThC%BTOcF5U zjILgXhB4kr^N5=9j=_YJ{noN=A|V#e8AEu28bx3PM8rEG4I|aem9A(KXbJ{m7$e37 z;9}RA_6C9h4Z)nvFpDBlAlu@MEjjPX&c&IHxq1+-E)U~~om^l5X-`Qr2d1Q@?%YZ%a|gzQk5tV_l-g$UmU=Ut_natu16O6=|tVJ58Ou;-k zs|pLT(8WIuBRL~N&KOk9EWosL(hv;MJU}onJ_eW<2!{JJ=weqg0T>_#kqyrz;N)0}x|Z4kmp zZ4~Kq7>3m#&fIs)V-#j5OPEnl)1oHvza{+>U&VEA{?Oc+qWT=~iS=}u9F49sVhYI{ z3quT3;7!gMkWR0wmwhP0~*kCc0uv4rcw;hP|$8P;(Ln0LKG8PQpXo!sjTI~gj z_#qrnBmx+rKrK@{4D$&FTs$_HbM-??; z3<-Fbz-VV~z`!q{xlY4O2Mnba(Z_s~6w_M@oiKHLP!5dw{pbLg#_O5QF^WxwSsjkK z7z`4rS+uBR_FNrbSn-~~ltm(SC(o}vB~N$t^zI-QzznQ?>n-4{9T>(4m^;4Ov*$o8 zT!Xq>=FNk_(3E&QuMkE$XK1u>w9zmQ2nQZ6QWSF}5)FgKGHRNfc&}+2XJtP3DjUPC zH2@IRkU&ybmn;DTCq9XY@RDI7HK!#p?%oy9IeMtNp2mJe)+lI3cS571qr3L*{d?cU z!GnM8*>~UoP9!TTYHwMplIEdhcmU*v3!%p_BsFzss;jA-g-x)4AgY8NSHO_(IZ}fk z^`R(K_hwgyvYX2cTokt%1{7hW)F7_V0bisq4n zFwetYa(okO! zV4Tj&xrcoU(^Rsv?ll0-1Q?M%6;PL&G>p(-Loj7Mn>Gr~TN>ppf?3x#FuuMYG=J{F z80L>X3z{342G12?q|F&K&P*l|)`Wr}3lw4q3%0a}6NzX|UG?f#7DeXjo-}>A*=yJ) z&lOEA%UxPaq=~dM5@$l>Is+OEEe90L!1DGr5=z%s8X+ReV_7q>f7^hqv^;D(2;7Z_Nx2m%b9XL|T9lhVVn%G2ScfkhKrzslEVqDFpvxqke!t-m~)G(45d zv+HfpXi;xku51EE$ChM&egPa?wdI9S-KD>S+^y8;-o2uwd<1^^?rKx;>LZ*6^{wY7I(*RIdbKK+H6 zXTN{KaWCDz<>93dT!?|hADmO2q?{p|NH~yp9}_0VfdY?i+q-wWAP5IYw$Z9Tf!IL5?zQlaTUwun^jnd)x|KO!cZu2 z?djWxfx^N-VCMUGV<7&x2vKmB$$LB6cWH5PR8m@6TH)!< zmjM3A@XS5B75WxL9WP&k%BCa2Ezo0;%k8v?2x$-YetdE@5;DR#Sv&s5ITe`T&JG|GhKQQb% zB`>d>EL(4rX)Ih{#^=_N*cS6N2F;Yv)gSS%8|ytx046C1gDlfzhB`!@zf z!KwnntE0)MF+`+mzJf(+qa>-!7w+s*dhgBC8>2?em@#MN8kzU3d#bCQ%qg;F+p-x2 zd2+tYHvnj6_Ry~|@gx;s)~{v42_3@(RJKR&tdCHqr&!A!_etf66R}uTrvJRw_*~s* z{!^Ku5`Dw+^FSs}-)=_byS9v%E8Abl`l{c8Eu)3#-?=$SAuEjJ$z%?5!+XI zvb$)gjBX1{B{hshE|GYAhkxQkzki~DJa{ON^aatIkx1%Fs*Wy98N6_udEn`1|H!`S zr*FS~l=~aQfibR+eXA}TKB);B^MG(d&lGxjlYOIX?dDwP4eSHWP!dfWG;b|O+wl$40ECcxwnSzXB5?RRlx>M2Gt)-EM5a)t6-v#fjCr2(Ah8ZxLtM$A_T5D<=>NhRda64@@ z=7Hl$L}-e2Rv9dc;Y0Il$D6M=zWZ{+ad3!?Xc5O`95e>7m}+<*@2c8#Qx#23Fhl{? zyY)yo(v&V*UKC2CE~hK}1s?h(n~J~j^6+fI#A_NFPSrPZT1b``;URwG z6lCH|4N->%#~vI?x^@l97mp7J6f9&&9wHz4l|yK1I->l0ddrx=s)}eP(Nq(Uh3O2| zI~JaV$#%k(k=CY`(%KTY+f!1JZm4R19Bhn68-wXgOD0|H@9Sz7&FJRQ16ZE`(;Uar zl!)2^2qZ(>>$yD^9>mH+d=AE1_n(;lGA`ir zdN{3LUK>5Ku_aO8bgJfXtEPs3QGKE%9Sm(P;+)7wTV^1{zp1{VKEdy6s;}oaw>Px8 z77SS1JOGIV(a=km`IBI3Eqt;EB#Ra;+Piea%p)~mgu)pa7^0X?j~fJkfxM6*Pz*!( zWr9bVnrZ&54WokAt4lC}VvwSUttlI|NYCw75szL+M9wbKcU5g;sDd#eH_0Erqu#|0 z8%~FZiiG~Gx%tG=RxA{g@-=Qca%7)mx2(34L#xlnPgI@+!c#P;*00}uZ>vWLZlf?p zl%K7PMK#1JO+PfhVbCZCkS{x|M+Cs)#LM*^=`v-E9*zeigE;(*N1ltGBOG5_zIJW+ z=oZpUw@le+gXtZX?W<7;M6%?;lkk=@4L#3EJp@@_)mfr{o!8=FaZ{U|hV->4Mn4nK z^sJ0CSScW%Mr)*??0YjPqi-S?n+gAw%qy3CyhHK?`hijyfNdwJn zG|Rpnt4*Vp^T}7Qt7SSL$wC(T%W!+=R@KN5m~K<8OkU6Yg3*sT=Q2|d3>pGQK~AA< zL)pghS$*woPR-AwF>=n6w{WW1mpHmHN zh{MTrv}l!AqZ`wiy2(HeE32_f8NXj#Rt+(c!vTZFEYe;TGt!!w{Z=|q-E!QH#f3zp z8ZcNCW0f%s63dcXFYerV)}1>^>X*qpPTo$o1#3%m`+2OT3&!HMM-Pp2Xv414uZP9? z_w~SFDKL$LVX860p%QC?LjDd01f?=&vD$!1YAd5MSh4BN>tJ~#-(!-|EBvm+>XzG9%5!}b_Dv(D0} zhW@#@xR?)_H38;kEDSUTC8eF3(oz-@jfQIND*vhiFcKvcVA3K<+!8y$aXO=Heyxj0 zox*@IiysV~GO_9iL5kCD$y3Y_uj_Vql9sb)&ptT6F)f&orZ7}kICbjOv1IDh!s14; z1QFyCRSX)&`28GYW8o>7d_8#pq)@_^ig7dqj4Xu#Fu!S{EQ*oZP#hcr0>TpuFGk94TcK_euy80t#nHGWPI*|2p%TMX|DM-Jn*`HnmYig)gE0<|tVS`WneK;z zhw)`Jqriy9IUz#hbg$hQThlQ)87T`E!>q!h7%J|uj!_EafDDquydqsZojiN?qAeI~ z6iWaIQ3)~3rcJ?|M;61NA)*;&0Ru;58a#SrMSOW^?4O+zSbB6%?jiYLgyLxE7WJSH z&!0j0v#4aAKaz(Zq!io%r<#@EijD*2b8r^O@yM*CG*dZFHYZ_sWgn?62nAM0oL~s~) zp4BOdK?deXAH0GYQ<+@yYa>oZ1dB1s7ffoC|f7 z2F^z+XFm<4D0&wQi|X53Mkt_x0Q(^wiX-pQ?LK?Kc=vaq8+qB3F0>+bm*YUdJ3 z2 zCrp*5EXFX-SSvyk-=;m>!|<@H+8ASvJ&GZ1rS(dt{c^mIQF#p#sZ`wQ!M)WAMgM{{?FH#)3 z!`xe;Iq;N*aW(^^h!mGKz*w^_j8^g8<_hNcDc?ukal^t-4P(twT{2P!Qwj4!e zgkdIzCpe0$W6}qeh@Kz8n6oMjNz8Ia3d1p*Q5hDxiwjz1v*Enj3jh`ZCjx{tP1gzY zJVpkVyD>PTEDW;1FkwCh=4oj@>P4~0C_2m^a*H;`9y)70Ym8|g3bR~-K{JooLIJfU zNdw0k=gpoc*EH?paLAn;O9+M0Qbt`I*Cx}pcT3_t8tC9L2`z)%6JGy zsh!~7VzKzMSWp;KXoZ;z1K}HG;ZR{nI=1Rm7z8jJr69g-+1fvw8^WU51NL@ z1m!bVhPe(#7MeY;6VuWiHw+Xkx|y@XOk5gaNVuR(CX@M`7QvO3X{AXHinS;_iPG@T zC1zI|+8#z0U1tf*b76+Y`1d%+lt-(|vF`{w!7wl_i9vIPW?~EhqY}9=V4@kbNlovl zH0w1jB+;)$+bazm?VP06=cb|Mxt89fJ`M|*0V&L&Jb*wb!~C&fRva~HF42IAVEJYf zmb0^oJ2>_ zLPu+u7FkYyL}|WGBGh7e7LL>uXB)>{D!^1GH3W|`f@93VNRtMPQqx~$c@Za^ZLa~t zCW6M8f8%9_&SCvDrfIH!pgGY6OgKFCGjr$~MI2)%8i{cFQ!J^O@@}rNLew-qeZEzi z{BQ7n!(4mKquAbS(p3D~_&0i)8LUeK=KJ?XQE7fia|MQ&uykijWp0i%F>QD+SMTOp z)&ix*8+e^Q8w1B0iK;kYI5(p*!-nw{qUu$1m42-V^WB=t_38(?B*vu0In>y~v?0Qr z_IUo`piwl+rSXcU^MG6LYY3e&jIx+CP=qmIT1Rv?wSd7=5Ne}=CXI#}?H~ap+-+;1 zDV$Bqqw@5;|JgH5Nn)C&PSFl5T(Nn=Xme?FW%O~)e?9+c%ZLYlsiK7nS77YA# z(ZEd`1btz_3-cT|N8Xw@$vlk^ZNJo`u6k5$;tZo_xAGe z`1bYo^YZxh^Zobn`1JAb?(g#P^6cs7^6%~O>*)0J^XTT~`}FYn@$2H?-u(Rc=;Y%1 z^X>NZ^z7*6`SkDZ>*(s| z{`Bd~!NDOQAk@^=)z;YA&&S~1+S}OH`1ttq*v0(m*!Az~&d<@>*3`?)&eYG#`|jl8 z-rLmD(ci+c`Ibul^5)vw+t$_8*VEGb=F`~H&hgd6ys4nl&&{^Ez5Mg+_~Fs^+{nki zzwPGWytlgY=iL44-SyhV#=^zCyS~A@zQCxU(bCl7+}8Nu&C0;T)E-erQp=e z@zlWK#<=C<Eqqg$-%*?v`;N0rXyx+sLtE#B> z?dJIA*V53?%)`a_g)Q>h%DukA*52gy>fhJa*xc36y{e=1>*MXx!NtbP-{9fg+1cvk z-Qd{KkBo}=-pcRe*txvGx3;y#tDqVj9z8oc<=M~g(Y(T{qE}W`=-}F&oSWOhw&ljN z>dUs$+Tilx*8ADMh>VafEiK;U>HFl($giV>g@{T=M%TWx_>XGTFl`?!QEIz!pSzxTzS%VA{>f_OgI_eSrF}cJ`xV`JPx{TUhvwJFc9VQfYc%V`jmztID;i zq@tkv(XUlaM&G=jN>NpLR7ljqz2~HG@2YmeqmhztWEo>sYaXfj@TDMvI&})dLqrE_Nf^3BZORlo z2O~GZ0W<1S#(EfKArInV6~Uo{33@OHTrj4fqy-l{L_tu8ilVwC1VMG!Qv@9%I`#kl zZycQ_Df-X6H>0!5zMtRs+_|k=wihM3j#D@EgpQc&Bg_e;m?#gJ?OQOqYLoF{SLWTHrUqs$mhr0S+rs^jpIPOp7L*3#)x_3PDdtJxE*BB(1&Y5XZSx z$mIm`b|7n}L-qx;zK%)Ss?zI;Lrew=BRrJHjZrpD)#co@1e#5fu)=5*9%(hU*)&C` zQCD3llIkZql;j;2kN%SIPBys*k*xB71bajvg~H0^93epXQyGm+K_n_Y9E5OtR7?Xr zsSm4EX`0PyxoWb_n;28!cdJ;W&vX{X-6ag(#UpS{fixcshiAu-_hocY9jhiokqDuJ zaf@G+jAYB&<%iiy(aevvD1utRzu}0geUCi#I4%v{z`-ROZ$e`E4BL4;n`wc|=J;X3UimWu!NIA7wmX71uu9MOl za6lqY5d}Fx2oWCS0DG&j`Qaxay#dmzjaLZ><9B!%m*LC*X%=vV1!AYp)h_N*kXX)1 z+Hg>^=z2T|>oI{GYM@E`E1N&3A#HE13o{^Lj(>85Ciz>d5t6UPJV-y;h#Wi^i9|4W zq{kElWno2ddX7UKKrXCoet7YLke(mHl1PXC4q;|PLbF0oXhv}sI}zK;jJHS@TLhhj zG;F(pK!V;1>=8Nuv8;ZdkYGhrNl?!}I>x%cF!td@0-RuR1adbH$ZCr0bg24C&$hr1bh8h z!^YQc+`%`JmDC~~AP_=S=x{4yE!`sIH6Y9sB&;Aoh6IoNmXN0jN+z06ATFd6(fTY1 z!@b^UXelR?Lo#{nm<~6H+9LZg7!Q&fLv98kkPs4NP!gcb+#|D#!oYFj2)4S@jnToq zeqkA%rCIrIOp?o68hZ;l9on~_A;*RE`x8h@9IZe_f(02{C_w^}-!Kr&3TdZZM~)6g zAcrG|QKVS*`0;G4n~Ns_5yt5dAu8e^B*}_Adi0ACduvf54C4S^U!b)tb1HSx6kD|o z8`d1AXc2;F6ItkHF0=!?iy{bu zK0yEHc{gV!EBcSG!)~PS&*y#K8Fv=bGH)di7ewO8j7ctA|^a+IrxH@R3OQZj-y3p#`kXCI;o}w zB<#o_L6XVhiPLk>&O#7|(7xV}Cx%RWz5NtG0HRDYhL)?>o6VjZ_4&U12)%807m#i0 zQ@M!jjNgxkJ#sXgQIn4*O2eW-j^n{48O>{IO3}8CV%OR`T6i=9$WV6ECW6qXGH8RW zo3tR*BMk9EL38&qk$&nLQs;T5=*4fC%N265}8y|nVp-~Iu@yL2*|U!m(DWe0XY~V!q@h%ZucI6ScL;u zqCIZ+SNrN0kVr+BOJ<3OSuu@H31ji%PG|A^?=_=YUAC-d7-rFP+^iVQn#VI^8qNJK z*OY0PqcJUqg$2kkAF~-QP2{!MP$r>j$zoEYZ&Hey7}~TJl87UK#1-wuML;f{1?0^i zAlQ_?Qbq24*z?-`de6sI;c&SHht#B5X~VD;#?aaVBs-LbL{k(6UkerdjFLoThl3#sL9Si9 z#1J^_5HCZP-s|r_)^dxq4nY#`DrB^B55%um{AsxQ1B zQPs!$GVSqBBbk4%4;Kp)Go{ilk>Op!GQ44?kW@2S?9Ga%DJrgxNli^)ZOPsIf&}8q z;l~%B-M@D28g{J(?-(*^LA_AB1H`@M+?gt`3L$64Ze!~fI z70rfeFr*LThTcbM>y)WvZWMo9yNm2ccI_&a*fO&>4@fARR#6XCRq!1hB>}_{as;x6 z0l9VHJ|Hhq5oE!FUlmzJ-A)c4+S|(Oax}7<66r$x0>TIkNv|vc#8bo&5Emddl%itv zbs@=l@f-0@W8tER_llAn$>(zU6DLkQdGZ7rSU{mBQ4*nO2qgg|HK1`xvVizGc=Nz) ze1{Jot^;zPAY%e@PB2z+Mfjc>{cg+Gze3Vj@ok1k4v0%YYE`503leX9Ki+9f9@oDg zubA<4Y(POCKYsk;#S7xVQYw{ZCURODn=ML05LHQ{B#CSkjsOQIk)UsS`f&a7fdgmG z%z63p%{zunG6N8jFyyrZ@_M%{+aWc>?>9Svnh^+8j7GX_U%@WoP$9?eAF9t@2B4&A7z>LFIhlH!4kY;5DtbgfYa;f z2`IpDFfkdNYzC92j-by!Ajv4n03axdrlp2LvgAwG`h?b}yoh(OT6=|XIZ-y92Z{Kl}wT5GH5+gUgQhief^k`g6B)2Fi$ z3Aou3QgDtA-Mn|ZTt0a6U>7oGgZRW9`ZtH8#dokGRymvyQHOt(V?G`8Y4k=|g4?#y zt1awvEt0}wZN*XqiAVitLIDAYA**lRyor+R+sBYGFve^UpMZovI9r6b@xMDP2o>XB z4nA9yg_eXZB7F$1HN3WXn~r5de#t{wWJTV&<>v0&N6Y0hL&ka`C`dTG=l6mLh=U(>{ce)gDse8Y3?wvWg-j4Ch!!~L&KhL>$?o7rluQrFw0D^U*IG)FlS>*^%X@-In zRwIby_&_ZKWZXM|VbZ?a_mge{bUfem-h|`^KFxNHu~x!N3`w4Hl=upf(kp z4SX)ia3$k}!y!Y4_k(U`addyQk_m^wqH3)%id&egR{SQGDVTx%#!M-jmM91$H*a3O zc@vP&m&m~ok>DuMfD|JK7bJps&35xw>sH{`d~d@QNG0{Fe&@Jze30u;T@ReafwOqO z+`Z4u1&BY&^a#@P%iSOo_;_t?h?jcOU>f2Tr+C4I2M$WmTi!S%4amXUx6hxydGkC& z;D{lI_U@engCV8Tdky(rED9tWK|JqpaQIitTMb7G-i9ZTld0j-a2XIM91IvTz!!@# zB*xbQj&HP1~^*OTRDbEw!v}aHY~RRc?bnTfH;KvAsh`d z1c&&LaNfc}kZlCXYRIj2doH**_p5dJuy^OMw^70mzCKJ1s3O&0CwE}$2Ty+W)&V)| zbceliha3dyjmkVmI-?9KGThM%SNu`A10G_G5*qFmAUIgK7TOgCTGAj^KWn>4aghl35G`p9C^_F~rTyH0rgd9O*5AfN|~|9Onqa zC3y&l4$d$zgbpU3b7wtgM;2#AVu@$Pjiz3-R>JBE5<6?1POui&g2T-vy;Z{}yhy95 zdMh;sIYI&Eh=LFW5Rt$^5abi>L{8)cB927JFgMvDDG!I;j2RbqQt@!F&bM$Jc?y_T zrCRd%U9`j9%8XsRj_d;D!lg@~JTxHeV90X}5jYqU7sT7l;g0VO&CQqF#4v*paY<$x zEjma61&1kf1uw;6M{4UXV&J|@RRomo6AMy|l2Z^!Krtb*V6Y&rEm8l_xKCgpE*FF# zhuS{QQe3{gda|nL z%Os&uQiw*QRAhEmL%Ik-iWHn!-OZ=HNg)n_c>jcGjoDhfP5*_FzG8+N?v>WHi>H>6 zrG8@yl9-YPVb`|l>Dk#WA75R#K#mJskqEMz3j&2W7=jQ)A`nk1VvlvRt!#_^vZFPS z^ky1<4H8h$T#)3lcw+_O^Ze5YAnzFR`bm+aB`ApHupxR9bnS}#RS+%-|AK68a;-1u z7d70mcdvn>B`4?dIVEw@+h%c=Um&=E%Yc;N$Qurkm<2H*c17Hbs)#kxC-#>UjTINe zy@3-ckSt$jNp)u_=eY{PQsaayWv9-KPdr(vouZ2&)TgBv>kWpO72zvK&nzvBK_IajOG7LM zx0XOSy04@t_7Jf(t~o|1@w}DW*=Q-qVSz|R4jecD$l7CMX=$O?EA|Q$tV;k90Y^)w z1!7essUY!GD&3VdGUQbj#3jk@Zr3kTYr%oms?i}94|W?;+XICPYQiJLb|7{^1QJK@ z3sDd}DE2Neu{!3?1PleKHftE{n6+rIx9FhPwIOht||yXQt@6JP3)QAm2W&Q6AL*i6vRYcBB>&^34u5OA%(8UM-Ay2kU|n9J)t5n7>Byl=S)#s zr=K0%jap=)QrQ&jM(}B3vx&3vz*O2Z#R7h`1wn7Y(Qh$CB$mU)_9sC+aik77q!Ec^ zY-w(+A!RYf9ucTN=F+L`200p)`T0tFN*sW|ArLtF^{Ik6+U>!vBxyrp&sxMtkg!9K z5?vy#ibQcVn;t003J)UHm z)sOh5x{06o<+vblRN%nGD?imWApJ*h)EEA~M%281u!O@a9wh20eKUwVF42)4iZNm7 z{ffFtl^AKR88P)@5kHTDumg<+M?yvVeS+XW1#}jowA%}2a2Yfm^CuU?JkpKkU)&8+ z)cCT!>U%BJy{A_MTs_@b%?d>tODduzxP(LhpTvv(vG{er?;Cl-AL7F?xwSMXE`~&J zwLJ8UrYa!?lZj16dW8l^J8CR@*7^`-L;c?)Ngqq;N^BVLjy zn|5$x&BIW^aOcKKg#2mkPGI7w;y8}4QDZbwh*nlsL=;o-KtV*-BSthD!9Y-myYW^; zK|!=?(2%a0N+VtgCLUDLps589>JcwIBO0uln0i!;pfMitzVG|{|Gzi$W_Na3H2#*| zB5mn>`2XLV*|~hgrj3f+MSz5&lKbvGaIdAA6-i~pIZ_|a&3?9F+ONYBH(c~QgeKQw z#2fGaOR%wwt9;0dFsTRfpLXE4i7=L%L;if?TcR}q$Ygit%yyqu@2wU zckHl~#>!a{rr(#=AMwZ|M;!6?6}iJPEv|hMNX8J+rFZEu!(&Xo+_PbNdR8TKfj!&# zA(@RO4qmmfvO%k_akmS(ipkK2)caReb_vhYo2 zn|^LPvZ0j7Kewb{(U2vz;_wSn#oBm@GICXfVi19ByI=&eS7t@@XK&Uc4l*NOoK?p5 zu`aDnT_cH?$+3VCM2AmM;MHSk3ytM(yqjI5PQZtQkVu;#+Q@%_d?sTV2nBHv)%_@r z;+^A-uS$6)CMJgEf&-B_$XpNEV3%w|51I2dZd(xtt3uAqG^0$PL|!r=AQlG+kC88A zP)kLE5Oka*ERM4Bjw(Il>xM}(Fx*kTb8P^^2m_hW8Z>Q}RwnoERvYVZcD~oT1Fi0u zYXI^A6=94l3c{K_ygr;QEbLFE`hi%9=(bC7`rFRs4Z{NpSv5#TCWl)pV@UkgQu1fI z9#slA5t!;b%*xJ;>?BT>ioJ zo%b2YDWr9aE;BE@y8mk~@q6rHrW!5sI z9ms;oggA-)iZ0O?0m%M4an=3J3VD`QTmA6xa0Az_l{$!KRvohiHe8}WOLDfHoVJ{& zu?js1i73LWh@M-XeXyUA2`SK3xpk1FH%Puv2nX`^-+PZ8cQ=r#s)mM!4j9#?vD$Qq z>8&2BK{y@0^6&#kPHq)Qy>7hcE{L2in?zzN^3Auu{POL$-_Fm!tqje=6@gGt5U2^C zYqZn7A93nbk#HWduGuecX<@6euCAJCzo^hmzZq{PH@JexnSUoU*5z$_`GSrh^b+G(+s)TE(bg9_^8;@6W`e8I$Qdkg#=p13TxwIg~OZQ^! z)7eQ$2h)U0rX0p_Eso;W&@2+Bl*` z>5y4%NIOpeVanRCwUZ0qI2H3?bACfUNQHsSfBf)q^ISRs1 zzmJ=8$f+}2Rmmo1R!4z_lqA~CXy@ciqiD-pkuyRN^TvvdeKE_$;^=4!G}Rkq-+@e$*X&UAm#wdP?7UeVuy7iCkD|9Zq2xKzfG+!inw) z#>gUPtv-R276lyDb)G%2qs*&TDC|?VNC8a!hX5y_HAty2-kj>#kQ{vJ5b<=wx8Y( zgm0aQ%+JrS=ONo#3&n#J>p2`+ka+XNauko*V0m!)awz?>vgLYc&%udo;>Zt?<%|iX z{BYjwvufwI0_BxUxz<<-@-Pl0I23Ze3=;X)k&nGRwWx~3iinh?xU6mz2ZF0LO1S~b z>Mo&_viKH)q*NI=azp$P9F3J$%A3p9)^1KFEidPmE6lIiMhKFonIR9t4s5c>H9M`P z;ky-=HBJmXc>|2=H3lP;)vLSu`>XZt66yeg#6p<0vMOZZqBf;vjm%vPlKt4BMUW^& zwI-frXquAH0YKRBB_FgcevIJY854--ILWhklIA*YsUQ-2icTqs<}65|Tn16$=cu}l z;gMFhfEgr|q{T=IT%092jU*|5C-Uu2KmGL5`X?5K5C;*4LaGLyT)P&CN_ap~h)8Pc zD%miBVov@NgM}0jw;!5EZEXw%7vXuSX`UG9?mX|jQ@Z7LC@n1_iPdK9#YEH0^!Z)M z#8C;i9$7TRSYqtA0zyTMLn4p|fgowFiE|Syy^h0lRdIAX*L=55WgFedUHe3bB-!g{%oeq_ZXzLTfQh1)^7!mjhwngN3-r ziLm-@G)&)`$JBv@efVOTtgqV3l_Ug7NPA^KoWBLqrcno>G`vZ#nxv65EH@gSIJmbH6#d%Zh$~450wY0s0}uo#LKGDC zJns6Acxe;|@gc_HAhZ@?L#2-UKFQttWbQKev#PFU?otQ>W#|xT9A=7Q!R7W;f+6N+ zNJPK3rj*0sz!FO*(hWf$g*V!(jlYbh|2X?#9c5)%)d`V8HQ9OMqx(=x%E45rhpI>Uc|=H z2x%?Z+sX>wej_~>Q6UKfNk(4aM(4-Bz;j(r2qo6<<{-p_;5f^NtOY_jn(K~=%0LoJ zEO=Ew@C+!$ELoyk2yz>z&b~e{hH|Jx6t}a7>y&N=yXo zIA$RT1vzDKa-gAx(MrtrUl|b7-B9#lA@Y_42U`$1Zo$K9&>tg|q^zZi)5W=ulU!%W zmI~*qWC92;wjgp$mYGP_YSq=eYh`DG zLOOv!d7sBw0-2nk9O57_f{=iuz}5qjNXof$9(QI$vv0R}Y~*tM5!rFd5qb#_W1h5Wtf-8sQ^DY;viabA2onW4)WtL^eL5(R ziRNZ*L(=G_qoJO64d)>dhCSLj+#!9X5Lc8ig{TCJQkdZ?E8}dkx9ru?pfSfGI$F44 zCWj&QXm0e=(m-o>w{jo-Wz7E) zR$T)VOb9q!azQZEqTqutsp^uJ;fYtqUFaZD=zCIQ@lz%xdhmkV+ItP;rI%iM=N)-I z1%a^SE}a^V{*4&OXopD)=@7^Wm(QB$#sm|B6og>$IU$MD*r(O#JQsC~8zp=fGga_v zCc=^uUYIqdCNKZ`>tA30`Oz(_?ufke&ZF-TAm+#4XBXb4l?>u=5RF0_*m1*T(`x>V z!FDk7B2h{(PO?w}JKv)ATcrK9z}xm%RI1W^$2ouA|JSbsh=jWQ&_@K&8pxo81DUcp zjib4vk%^Egok&S^rZJI?ROW+5frKcUycCTu$%N=L_@*6-8SG7`Uwp^iv=;e^{BV~j z?z0o0O*iol$g-x(9PN5rLJf#vvs;TvOX5pHl>9aEA)#5%K~x({xas#x^2C?le);9C z_Yt|jt^h(1aj=*gGX>WPh1q371ccvL2M{YM=E1V?^hr*V&!ImGr+0A>l1R0;TgW={ z>AHj7e)~>Nl}$e*9s}X>EY?a|5DdgPkkr-Gbaae*(R%gw13_Xbg7M=Ziy0%Xw{kmx zw6`}kwRbtl+w0aHXBVFZ=PAKpBal&9PEk~Q5lOR)I?^F9c=8Cfd`^em#l^$v7pe%1 zCM@ld^<-XNez;e%Z(mdwVMKsh7*IbU8RJ`{7`}3=m=%#6oH^Ap}S`p2SfKodJb|h#}jAVGz3I<3mnA zJw@8vyCNGmj*m}`Z``#*Lb6D_O&1@MKBER2%Oyy0 zf*^zpVF5y3Bv;qx2xqob;joanl~@P~K~z$jqbM2M_F;#Egv*ixLV&E8+PLxIhaZ0N zYR<6b!=x%bdLD^F;@KfMR8r?dvN-b0sK((S`6(qpyhJWsv0}y4im8VmzPgHp0DNe4 zZH^?cB^_4?2}0^DB)23V1V<=t8rLm2!zwAZ6}gQEkT+M1UnrVPh!vzmRAL=IgcwL2 zVLAh%61&;Q>tah%MAQ+cU@;H(3F#NZZAgGbE+kYXYegJHB?=+xa1auL5Fju}fRcCJ zpascgNnghn1HoVt5y_huUN|-NZrDK_#Fa#n69R>J5Er*Nb^;1JG9bCl{2~5mdsmLgZ#MJFpF0117<|aD z5w9dd0mD?xTr63^Q}ZJE=%bHbfBl?uZh7WL%__n#*Ydy1ILGE0@+^7$@yD+r7n~-! zLvz|`mtK0wC6}yRxl;d8SrwC}%nUX0)zeSsPt2@b`M@QYTuLq>4`^0Cu+rsX`*E?0 zFwEmk0tgFF5n*u@g&?_BAvQRG7zYxitU`k2G$axj3b~X8G7u!hhqUv-Q-i~Y;82MT zFy-8I6EEZ@eFh;{*_uG0EW|h-RtpjbK?1}{q#)-236=y15+D~4EasIM$;HHzq&$fY z8e5W?nUxP{MMyg5Ci7~ekee>1FcxyvRpUq`5hqc{)YOzXd<|?OTy?5R|E;ak3%2|xJDg( zgJ59T_>e6l4uZr44==P99~-BpfPDY`>*VRDpAJg+F95s*d&^K(-F-J2q9jb$oOaEn zMl$1-BsfC4j3i|sGdgRX#@}(dzy;L>U@kBa#cUPX+=uA$YgzPjkw|#Ef`dqFA)&b( zgjj{-87CnMS%nA5<2oaYM4D^H*2FbdFArOi^95oY;oNOwJy=XO*(|c@=39eEPsGZ+ zVEN9YU~zdlkaJ$PplfBUFj@jx^{lLV%qoTsGld~`0@Lt`8l)OD)isZ6R;|(>j6C>A i4?iW7O}5x<(|-U>a{@R@{AAAn0000+8b8!sFxP`T6=jYYc z)jT{r{_Nk7kdSnAbnfo%+S=Oj@$tO8yjWOR`Luxad>}3^F08Dqwzjr{f`b0`@2jh; zo}QjcN=nE&-t`}VPRqSm{1K34gKQJadB}|Q&aoUu%V%$`n`{Vfq_LuMK?D$prD|4pBa(> z000JbQchFvAin^wu#v5(EV1ebm(*-F@Ht z{-0?{P;ugBbyH)VCm$ANSZ<~eyX4s9VAz?Wgiti86=5JyTqdOmV_feSRz#K}iOlFiL?p_b zTIJ9ptSdMa=@ufiE5=qNlZA+tBQPQ~qlJjlX*CuZvmz?%dQOO(47G@B)FQ62gGhoo zlBodx^p2vMK_;2Y zZRF~V`Bu;5uE=)OBDKh=P>Z-mE#exrh-=g$u2GA)MlIqRwaBhC&d>WWxGr-4?Ck75 zEDz2~&I^lYkIcrC3te_xq;Xb?v{pqLR%3RA<07r4%RE~VX_%d@$2L$e92a@9^m_Mo z>1ks|f0lKxXF`wqPK)T=DMjAv(yNtdwHCS;PK!J~JA1qkIoGA~buYwTEMoN-SAtT? zC}yOo{Ws+Oi(KfJyitf0TaU2BC(~3Gv3Y_k!4eHDe%uy7lurOL*`r92`{$*|eRH*q zr%&hO#)~r59%y4+iNx2?A|4_an8YdtdL6&BH<2Q-P>Sfy)PVaHNu=Mh zT~R6WM3){uzW?^jtalaZ3_lKHih^8dA&g8*i4g5cq-YY$BIoxXe8GGiJl|0SA6~W< zX7rT)9SwCURl~_%L<)gMDN<7O!_RgV!B=(Iaimp@+Eo$FBO9!$h>HWFxypwI(=u8Q zAHKp8x~^5}ejOFjmsV1ae9PB;Vdh>7vxhc(?uk6Eh}>_rTKz?8JuIgv8eMv84Y4D1 zZzBE14BN8xY}W?hqHOF7AI>s}MQYXJR`fVIX_IA1NDq|Iut9?Az|Qym>4t8imNS z^M~7tu%;Ga%995Y!52F_x&Q2uSruv~rHYEzup(OO0$af)j0iZ#p+xX(d5Tg@V&=TX zOr-JTKDMP0A%_#eMRC{u=yiX-^TDhFbCD;Fx391z9tD@4+;eKd-q+4~_4MN6yuZBn zmx?|b==YuKeveKq;u^JxYt$mHQH!`nE#exrh-*|tsPe$Lf+si>KOM`82unCPnu&m* z1O%r-HMN)(kp!Hbyoe}7sF;al}0xM?E#Ci3Bp*N=s4ns5tbNCgK+4dposQZtr_G&-tqS(GV!q) zKN@y~@Y8KP;&rvXFo-965%I$y!Uoc)J<7v&5QOQj9wj0U!&v-#kzS}aeawysLs4Aa zDBl#`Xht~w(^0y)bpEl3A54(;{uC5HZ%6689QOYFY&voU)AY{=4krItB%VSu`E5|r zD3~toQo#U!AdHVSjrRk;SjX#w(rJ$bmKnDHkcLs{?^h(b_dDK9=cVEIkC&@^Cm-9< zYTfjkR}`vT2HksG@GnR9jt$7-pLd2>MmL>aTFtexnN;>fN4rB@8GFOnUrwT2te<#H ze%JruSR$R3oc5=SUQy&L@!8l+baam<5)P^tX@io+WmZ+m^9?hSLyJTqD)^(YW3oy? zvrS`&a~wis5*PHu@@qI)s~3dr!KV8qQ3++}A4Eh%1#vLyU`8DNZi1L@p4X%+=VAT)K0;bR~I2Og)Wz?ujue^lOYP0h<4E6>gpn={RZ6wJm1y&ql&NwKWMJO2) zbjMlpTmntWi0rBi*?7RzIHQ7qkBu(j%!qh`$V4b}2Ejqu9FZo^zy$-rOr!}y1qe$- zCS{Wj$bdmtWk!T?(&P!uLHd*fvRTA_Xsk!GLc~i75rT|qKO;hHZV`Cahsmarlq6gq zgkw={?1FO;!l8tM8k;;*W0~{Y*V5uCO(S?S5r*(*Z)O zZO2hWK(T?Hd#rjutVLX>7IBSQ#5HOW*QiBY!@F?<*8=axE%(17@Cu}N^|w!71Cvy1 j+`f6oJ9Tc{x_SF24W)7(07eEr00000NkvXXu0mjfs{Oc( literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd71b34de56dd78e9eab3160c368d2cca12607d GIT binary patch literal 34444 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background.png b/application/src/main/data/images/widgets/indoor_illuminance_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..50e11f8037cec85f14457dadad4a75d11f567bf2 GIT binary patch literal 13422 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 QVgLXD07*qoM6N<$g4`;U00000 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_illuminance_progress_bar.png b/application/src/main/data/images/widgets/indoor_illuminance_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad42a0df11d4e79b1cc0cf1888d92036f108e5e GIT binary patch literal 1375 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm10_card.png b/application/src/main/data/images/widgets/indoor_pm10_card.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0ac93afd19350082d3eaabd0469de8923050e0 GIT binary patch literal 1763 zcma)-X*Ao38pdM@sWs_hFR@)+>{Es+vQ;AXh@PMeV`5msntlZn3d|4J5CkOvRztvD0oZ{8n~>mm3OE>4 zS68>QvjZ-c>+9>cw6yg0_8uG@fQMU~o0}901+0UYm6eT-j#8;qaJ38k)HOFZ2l6ae zR#rMXIvN`rMIzDUi zfU`N_;o%=%Imbzo$x%t3zFWvH$cx6UCvUkB2=t$>I5hc}xs7R$Xr`skU~I|9n>`Pz zwd#Mpb6a7(M@Ds4oE#-)&7xotg{Bl8!El!jeV@DQ9epw3%SUXqEr)(0I;Uqa-AeQe zb8k0r>FjnH)LKtJ+XizrGPQLI7F&;44lwL{<-(54f=?elhwF{*o#)^7DT=ALu`t2g z#E97jGjyHMeoD$Y<1;l)YG)x@d5}snZZy9LY4&R=IksZ23v{?#XWXEwO$a3 z=p|Xe+gV7+aWtF*$pvK7gJHdjxZ0qaWWtAAXtE1%N#spJ$Qt7^Y*6NIou~~JCV}&? z1nCpc@OOKz-!AO-)VnwAgW0~6iH4W*GlVMGc&EnDiAriSvVur3q{)7zK!b9dp z;e&o2mrBJ3;jXe!PwWudlr{M{C5^9!_LY7=dAC?;1rr;+ysf1w{K7FaYfzHqrV+mN zntEuDR^F*U8x-ThlwBdbb!JCX;+r5ZSv1yq!U2OP<=cHzX~M)D$s7|rdwJ&uu#oNt zy~T^zNW#}mn+@%)XayzCtM5S>V1M@MX4@0e!8%=zdBbmq?Ua7~{P1DoKbi&Lx}V4R z*q9ET@>y7J>`uM2Zyc(4nvO z%c}U6N63RvvQLXVPJ1VXf;HyX7*`Ltv?^Gi1+U-u9Eic0t04vrdOype6hEB6S1UZS zD*G!VKoi@B?U0c^R!Jk7Hqnna+Tzpb$Y5;mQxBR)acyw|NGtwACJ#7FCFZ+~>_-!qfbE`xzzZEuoRBZ7 z!BeiUk+7GZu5-H8@exNWdtU(&u9U6<+NrMxJL@1%XlPxi@KyVmr|XD zGWaX}eT?S&98`6?NsPAgUURG=Ty-aEAqN%zNoM?S+KjiBtpU;=QU_@?Xm8Xrs;JF8 zHB&HTsOU;dSXgjw`+4li`@OKnIq6WV&1)N5OZ()*Kw+zAT?;`bHi44n2IkZM!SW2th+ zEomvb8@m3suf60DVLsWLPVBSgX`I^5!tQTmxbH^P?^Of7M~d7neX;A`S29DVM4buT zLylDeyMj)+Sf?`2dTdm05)|XQHe{6HKQu7CyPPbqNvMiw+pxDTptUAC!@Yjc-BE1a zo)R-2Prv-$S$fwQZjz{Wx?$t19P+*R&19YiM&n%OkB|hM9-zu^|0J`0`!MA{9qO8I zXBk3*HQ0<5*<};wLyJeYsrY%uIe3=-g|v4Xm=M_ihSCzm#mH{@VabYTSa;H)N7(da da*>}{#xTlh>~vd&iR2YPTrYd#8Zbf3e*>vVPQm~H literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm10_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_pm10_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..d688dac8b9253be45e4e91ab941d813132e8497f GIT binary patch literal 23965 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

Z*c<*^BK{&l*p=+ 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 IM6N<$f`j!zF#rGn literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm10_card_with_background.png b/application/src/main/data/images/widgets/indoor_pm10_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..d85f6c975501fbdcbcf2a1f8ae445223c510ff70 GIT binary patch literal 12867 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm10_chart_card.png b/application/src/main/data/images/widgets/indoor_pm10_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..a01537e314c443ff8ea59c7627fd5f8336e64a9f GIT binary patch literal 2401 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 z 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
u{aBwEqI}JgSev$!g^!qt%)&ZO$&w$KQqJN{i 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 JPDHLkV1f>g-z)$C literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm10_chart_card_with_background.png b/application/src/main/data/images/widgets/indoor_pm10_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7024b3110d9beae15c146e01c49733d7aa1e67e7 GIT binary patch literal 14429 zcmV-jIHJdiP)+H?V&Fbpv_Vx7TcPp-|Xz|+uGXJ)zjnR z;p5}v+1S?Rgea&+19G6snylh=H=z%zqz@%D=RDS?d~ZlDWs&N z;o;)q;o#ZX*}c8I$Hv9P#Kq?4>7}Km>*?sbySuiwwY0RfJ3BisFE85I)v&Oy%F4;I zva!O#!sX-QqN1UwsHmr>r}FRaot&J=$jC`ZNUW@^+}qk9ARsd{Gc7GG_SK(?ii@kO ztB;S4pr4>tRaW%!@pN-^aBy(y>g@O7y!Y(cn3$Nv!@<40xtp7sl#`P_K0e;t+04w! zfq{d;!M{~dM>#n;jevO1&dayAw|RMaTvtqVZEI?3YHn#@ zT3J~4v`3GNg^7fKeSLj>dURuBV|i;`Qc+QATTo3+OofDwfq#2vWo0@xFSoR@xwo#J znwFiDkAZ)U_rGLNN0G zw|#qxhktryW_0$$a?Q=snVF=bnUHpKZS?Qvh=`MrkdpV?u9%jT_qkR0qZ^x!hFx1~ z`RL5><gt?wAzJstyXB|it%#3q2&6{eE9ldV4&R2#qWK&b3d-| zC@MrGQkO32RH2v-B{>e|M1~|dR%Qqh1|^hW`8r8*x_^Zc=-&e*QB9X_TnQ(9JM{W_ z0gopTINysWd@kQkA5J;;#RhZrOf##lgpze8l00=h+=KK`3EZ_a;0f$R950`a8aiAv z>~1y-AZQjtbtv0xwhOg(f2~lw7f+>9<#=wO_Uh)%oBgSLK9g$PyH^(K93coSN=jlU zF^t1d6va4!Ckc|1c^Jn?Qep{KB1r5X3>1|G6#GpDx4=Y7(StEZg0^etz4mnLcX_t- z(zKt(eR$ZrFV=S?!U(La{wzz?>Z9c6AWb1X4wq}^7GU)|LcJ%?9vi9|ozG?=G?`Ur z>bOj*Ki}#v6rO!36w82;FBe*cfvdGlKG$qk?+@OqGzgTd6C{gaKXQ>dmcsysR7(aT zbO0t*cwS~%^dAtC6M618h-xQae-ynDJBM!xSe&n4@7K=TzboKEXqv+Du=~rwzGSH? z>m(NH%!<{@-6IcTVL#R5pmuKA>2oDqbl9Oed-miA%~d6n1p+jSs*B1>yO3`ci^YL! zwf=!z>P0@@QWT}#R^o&4Y^HJl&|s921fG>;zLO*e7b~OS3{jP!!!VA-FpSMm_j!?J z|8<1G7@qs(2Z$8v=_3#N_62u(y3FR+JM>!ZuKfWVp^#9I^;d{ItvOhbFst_H4ICb2I*e&_P92M<8yiT}vtPVzKtD|JAdyGMG!n zn@zDEkC)3Cf)oeuUw*)lku)!oqTDGe)SqWjFhqzluv=IOqOr=075a3ANB`X;3?~xo zPYzOM1+kvKo4j(!O9%Gv*l#ymv|9asPXGx9d))huevTcwk}O4dUSybRgsH>azJvRM zVG3~|G_Hz*n+A|K7c~RLCOGl~glqyxu~m$x`fpyn37_siOyv~uky6eL<|HW0jT;C1 zDw4>E71-~cbifRjkx`Omk|N6pg2c&W=0$wY%)1RB-2XOQqWrM!m~5C2imE3_j0*Rh7t3rhYtvjFCRQk z`zgvxQ3!$4?e==ZP$1_D)2_s=TfL{xPMp5WMNzoN@9=uP zp^(=N3Wae$^nxPa{S} zv~vCC&3izbH=p>fJu6MdE~Ck0GA>-W(74fTvn_IN1ev<#Y4yJa{~FEK#apK=pJiEU z**d+ z*fHbBPna}m*~H1qr_WhDd;Th`#bU6op1EM#tQoVXE}k=e+O)|NRZX4@Z&j=59^}%k zOCRoN6a_#qtkFqk;h!KX$>u#P*P6OO#-AW&n|YDb>HHtaBJ12K6DDt1alo){6Mz_O zi_9tra4ejs1sQGD)du^bjm9pO!)!OqoDbO)UDxN~RXb9i) zz2}@v0r`$$KXIKMCdMEj5CkQYqbji*#A^%?a!}P7#C1@bfcU1k89k$iqM9aTnz=k6 zG5Xjfy+LV;VzH6~M8yX+3#GV#Yo<#McmZLN*oioh`4ZxYFHjumG|#&ZN8&GB{owhv zgDH6b`ui}ve(5M3hPtroKuE$I3J5U35sRs2%B~#lm2UZONM^>j#}`fLy1@IV8#wbK zgU~I+@P_(YA}*rgB-~eOw}bN$WG@_mAP|D2XCn)c%sULU)ifO0fD575%%KlEo*j(z z+t=e$C)U@`P9Ta4A<1H%IS7(u5Cv^znsv%WQAzS2NKF(E@_v61XEuzggvO%2#IIDL z7D{BAfFzY%r3eRg3qdFmNLV1*ELWapi5y#q$K!t(MIn-Nw7Vh|N+pcs^xY8Jy#Q#=QPegQ`6Vh#9>etP@rrGuYrQpqO(fp-2{S1Mtt!)iI_Iz;SEYemLIp< z-KS^n_HP67#frt2KHW2wd;MC?m!wm$7#_Sp{5^E2vRqxoea^2D5{bx zh=S_~c)f5i25T(l037iMR5T)GN{rWdJ_>B?{3XKTyz5(+$LIFKqq79Vym ztWqHI{q~c~-QLO|d?tB3+)s9_{)S@qJ1gM>NCc6P#BHsd&I58Tgc*ryeofQ(xlp01 z(r8x|>=8K;iPUIqne}GzbTB&2?GD6Y{ObS%4yRZk1c8IzBW->IWVGcug(n|8gW9c? z#L~)N>>cf1ID%r3s@bzv2G&yYfz?NcS)0nrKvKFl41+-=>{Z)=L~iM_$P=S;+O32L*+`Zd$BusEXxx}xc9NW@nq1klKsuLB&pV>bbg?!)t-v`UlQ*#nvBs;bnHnI8Vxdy06i-L~bXFFSJ%9u_8ggRH zB8yhA)k>$~U*R1DC_tiKtlwo_2Sqr1a?c*0HYXZYGqt#y&*x>m z)(8rr1ir3I39Mc>5w?B3oF5HENkk}&7CG*eZ3ZhlkIBXYB-ju_r?2!r-yQvUH2zJN zowPO;MR5R+pFj|_V$+l)lBr4b>8my-FO4y_F|mnFkTyfDX~5Vf)mDR`R;%Dd9KfL} z2J1pZT)1(eWZ{5A5yyoKi|9&45ygez%7y=P?rWaIDJ@!>lHWV$o_p@C?#;D(moRQ^ zF(3fhypSZZt{KP2%q>994- zo-+?kSaz@WQ6KE8)H>Ga*IA4X%p67@P3jUr<~24n13@jfyBpmK4D>6ciy8CqDI6MP zsjihEO<;xHE?h)j~iOVlyo<@C2?2tGA*%!g4)nw|Xz$Y5yLTTv7@w-@o>cGL+q36<)MbZ*7Wa*-BoSoq{I->zE_VcwN=2%56xZo(Ts%Ag zA{sPF;{q$v0R{q)e;f$0<*Nb5x{j1bs+_xa=32G7=do_;&iLc%wo7>$M3$pPy2HmO z&#p#bJK-e{3YsSeJlLQOB7}s8C=uAYaawSiq_P}R6am?4HA-Q3t9w(WQX|Jwo7IYb z0|p!{!3TL7QCND58CBN{2W5=vN;u{s2vSeT{^rG4Am)?@)A_kGC$2uP-mB`W&!?WB zu5Qb#4;}9x^A){uqJ+bNF5ccF@wgi;G{Q5}%=;!d{$F?4X@ZiJP#_?OLQ2rG09|Ws zQ3_MTLR}TtEVWT4co$%Yh$eB!Xj-I)gGTnwP74yEIYbZy5>R-2S%=NGf|W;*+jme} z<5SPSU4Q;0k5Q1Gxtk!A0hG;ZH*fQD04Z^k3NZ~TK-Y6W#|MS5RRf2tn$FL3)L3}8!+vEH8oz~&L z<>AA9dy;&{h@i5%cv;}#QxJd!zCgLmsbPwWaq&O2i~!^%MO`gk>gjoM2OUTwSqQDA7Y_?{b_GCC@bz0gv&fMEzi%ZNC4F(jQ1Db7U=jcqGy z6(2H!gxEGhAwq)yz>6QB7A`Eag*yT7gJ9GhEa3(Wh@R(rEOi|G&fUHJ=*qFli@KfP z#-~nCP4%VIpdcXxQ6xlJrbTY=YvqayD>XC;d6N$(Dhfy_;L#E?)Pi$YKsb<;pv9E1 z7HhJPmPl%)l^IyoBvBnaE^)x&MDS6IPlB`yf&oW8gro@x>Fh-~O>|5+boofj`2 z(M|8Xer$5zuUsfZYk^ypf}I(^)Z~`~M@I&}8|c99Q&PoZN|M7qZ#)toxlW5;wAK3B@Ff});Egy3ql42)s=}HeAZ&eAL*E*<^;vH3XpC(IXX?) zMI`0;mj_3V95_6pdpG^=*v?;j1{FxWSlhB(mOQlNu>YH+?W6AOXpbwC%#>WwsFW<^ z4F`s|WRIMREXj=Z^o;ep5)&h%1Ennk1G{s>6Nmfa?v_~pW_y2h$eWHFI2exM9&jQr zOC7eh6^)JaDOjR82!Rj_-6GCf|KtNlM-76?>g)x?WC{j79)I@!?$VaAu^!#@*XeK9 zZ%<_uNCIA87eP!^s#Y8)QZY&Pt{!vc@&no0@XC|X>|w)%yA0%^tAk6&5$Y(7c zBiW&4ge2U7Rfvi2B@iv&Mq-7+mSNrGk;%!^<6jcU5*1efmE}i{F`Hudv?N`gAw$WP z$q!ucMAx)Nv!g9NaX_$A5-P-=D9u2!1Zf$KC8I5oe%$vQ4jnHT`cD>Q2?vw~*u5zj zQcnodAq-}2yX-*qabal^4h_=n=mmiwPKRN4PySSHFsl3ddDi6g`16e4&k`hrAiYNY zVob_5XV0lvXmIRs{uCfZslRY)bE&lykLJB`hD>Cm6C*=~WXp)*NN!6ulaIuQVzGo_ zxU_3YYy5z3s1)sY4N9KW(v1!OK-d9@nhOis6+4!31#-jU_y>aRP;a4>P~dg01JPV2 zIhfZyef|2|zGM4F+k+&5qfA$O?G6j>Y50*j6)!eNH)e2i2X<+`c8u`7mWx9@?5cZx zYn-l%c*4hz#p!gfcuc9Ht&JfxYA~cpI5;C_au9t4&MtB9p zWAwL_C_|=?P43)`stZB_2O#b3y~f2&^w2iw9a4Z!MzWMb{|&f#Cc|4Kh~3T(K(z5I z0*ML{jXUH|nT<=aM8s2Oh}LDZ@sgkM2OeortMZ12Y5tf?9P&R`mYR#+~3YBf4R66 zUt8dylqg6DIogc^(!8NNn0C|dAVcUc%XCm*&SB@!4v2Jr$CCh!mz)hMv$W(y;Och1Q}t6U@RuZ z%=I)0;LspKqLw5oi$_bIE!olFNaC-inM_jmW6zI|AK$*~V~8L5@Ow;vaA~cg$)6yB zv`kS3)4zl$C>==p@ct775etMI5pqDn9*pyf-^uq^jcP(P2qX*9*3yfy4rv6C0s-lXRE8tt^=!-cvI#>$yQ>K# zC`@I06Z_!8@C~~Z1A-rjCTaMgmX<&xngkefJsa6<5X}vZDPkyylIZKLgoBYqkQ4`B z>y1Rn(d+o&{fAF~edbIL6Qi|`9F%~d`H$=ig?A0bcK7uM`fB#}^`QwH@9Zn@DGJ=X zBl6UEZTrw9K!%3)mv!HB*S*!ubmkLQ0&ru5++Jh|11r_aDv0cM`XF#{?5S-;qF4-C zVZ^}FR7bToadj)-*4rQH1xTl3@#O5(?CH~SZ~z2CIY3E>(h-0}`gcTzV!hS(G!EAc zjFV`Cmyr%$`y`lLwYpV>-g;X}TS2xz*S=$4 z<6vZ>YB(^|xToCf-Je&zzc-P$zy7%!`#O88C(5SE4%bd3CaWX6k=`It5KgP)5JNQD zm4hI#M8pPBD77lFT#-ZVa6&>t4*5UYW3mU3ojZAL zMYlcmbl<(KRw!4xrYY6_$(JkVQ4~qi;Z6vO97?EtnEIm}1Th?Hh=_S53l?$N9Z%py zJMoxfczAd$nVjn`Ek-r4Ajr{53d^x*E5!rhx;zYytNtdQV!Ff8);X=H9nPnEePn8$E)3=R(tzx?A9)u;s?FG$G2(Beo7s1RB( z10s$T;8m?rEP>oS2M=)5LO6t^fe!)FSl7i}YIE{z_YVxn#(5iZrapVk4*YCEm^qqN zsVaA=ak;e+wmShbJb7U7a2bXuB&t@#7D2+{5aI`wl&VvZ5L(Y-4>tY5*eaGZG}Pn# z7GEtbw=+RTkRcvFKfNptN+XC$uK*#<65*g+l#_JE5VIR57?=FtO720I6_q#+KQWb@ zo1MC$SV)*B5ON}j*mBd5Xk8${R+2mHET<%ih6)gOnj|rfzD0L|FbR(EweZ8w2Erb5 zS`huLHJnogl4?y!g36_8a0w-4h;4q6;!(kc?VptHBO$A8r z>=XKvra%2qZQw|QaQOfj$B~Om%WHGVZ!o-Yhzn?-WJ@_rre|~5HvkCifROC#>r1Q2)8B-lkXKa- zkn)=5orky{L6Wd-QjlU!n^@kHgxSumGF56b02H=^N*5$bb0dpGL9(SFh9sk0TMjsa zr8h_%$5Cojrxz*)` zowA)!ICSS1NdJpO;6N2bG8yHUr+kn#Bou;Ea#VXOR!63R z$ObV_*|_>wSwl>BZ?nyEXuUHaoY~ixmzGyom%k|>iAP52@ix_zBiSo?(3Ojf#^=wy zaxFvrE&BPaX=$LN&ww z3=U&Qwz4@a2rb!QiUpCY&>im|S-N;}DMx2^CE<)12(*U85rU8eA_!94hc6n!UowI8 z+G5{mzSUQka2&_akLXW^VlxnvAa+?u4(o_|lH~|8J>COHKA6Kqvb>@bB6A%=Y&BJ( z`(^a-5S1iQhyx}Ccbs8}Zp8vaPGT=)fS5mZG@l^pYPC5ALAI(P8&ZTK#wL#B7L}AB zv?7l0K0C0qx|X9LVKm@{h5j}!OS(K29CBqP%Nc(e(tR;vfPx%|t%?HSK<;ONI8~44 z3rJ>`Zw_KhR*E7ctTM7MmwrTg_c*>g|K8Y{wH0>1GS))K-{BeXdfWUJluR3PXlX$7 zG@l$iKavaf*eU*$pTEE>!&9<>1(3^ThXt{QsBCAFEt7n{csEYo?%L%zH8cP5$>pUI zc8mmpBf_$6o8Rv*^pgr4vg!qpo@AgU#D+6&h%Fz}h9C?1`4_IU-EBIseold8V_coZ zVGU7=lpmX`B7u|3@xe*Q^z{6RBo|f?PuBqfmOJjiy%PC5KmrK}vz;Iyp{ zpZ(EmGe8~%#ZiL%ryb;AWQifxj4ip?I!TSWqXTbS5~CBm>66$p?QEZz90SPoiSu&= zi7JT5=et8h5@f$ygnPeRuV%j+aV3sikG~|AT#xaNUYlXaSKt^Wh)s|Gn;|-LbOejN zL4CuPhaRkPIuAY+aXKUS*iO{_bno6>Q*#eHW~OIm&VQCHi9!USA&4oOVo*Ae9fVPo zLi8cL$_M$*`U@$@Zy4|2-;a)t{%JwLaNKD@uDCph1+nqe8Vkf?`hJBq&jg%(2TKAj z=h$TIp47Dv-p4d0!W*OeH0kz4iX1XO6j6_m+RwP z_&3J;M?Q6YG*z*V!=(QQauqqYI!)7?=5W?jCu_^_bS#310?5e+KDpoRnmjofOTDt~ z@y}m>=iT}9j$>zMraxXhnJBd&9o&K#7-)kq?l$g6z$!r$382r26`E!1()sXcIRn^{CTjK>mwk zt8ze!p&)aEFARR*QW0d=!NLb3F4x$YbIdd{Z@>1^n_r$dHp9?5b(SFL(+!Bz)K#6 zoUz10NbIR4hxEWg0%8Fp{~l8aGd%@@v0g4abT##F9e>5az*d-*)>cbQj$3Yd^7S|7 z=jRFX>8GEb`fl+tUUJ-JKrlp(a{$`54Ma4AC0UAb8bd*tC1@cnhl`f{DZR;~_(?%F z=g{o1AQr<6oG-8&Ec((k$CfR3zVXT{znnOB%rX7ytFN9q_2J_Ip5p{LVExqjjo*3S zhI??}c*0uJCa`!~PWyE~jv$)dqwGz7UZ9vXe=ICqw(LUOR)1b>oc~YMbsWdUb<>>fgz)DEWfwmBfky*1Obl#jZxJh=DUYQ>2 z7LAbG5l71bRt9DGi!l_q0tE*H$^kWUt1%e1m7A>1v8fxnhO@1;^?bcwpO3Hmd_I1f z^~3?k`Ejp@&)4hydVk*U_Xo#mfK2~#A%@L>lI$0<5E^rc_$4BS%242vT(D2=9X#g| zLl|V~=A$Orb4XqpKo|ocB2GepupzsPy;Wt;4}CL&5;^U-dTDz4?8OT)Y{lYO)tl^r zk%V3#X7oXN)qu=^S8+m0g$XRbFfsw zXoeKSkg|0{LnB0@QVSsMrL=*GB2hVotYHLQ1VT~M^FY+?31UsvYEXEzr@b(%nqZIt zRqTzr{vv}K8xi!fb9uqNw6x@Q*G3zcYa64rjjrh3dm!4Lh!nNX@yh-T0jXp|o~X!9 zBSXs8{n6DmG=v%%n!eQEf8j(-fn-xzqt?+3wQ|O{EEGH9rpFzsNUPZj+0$H9jWC%F znNPSqSHjR666Vw<@YH($DqnUm2OuDMeQxfLt`XG8@n8Bc!4con+e)_<5D1h* zJskoDHF%=p0m^gu@ZsWOg~1fGQORFY{v;Ast*kQ`K-}HY+XOP-=+rreS44VCUK0?EsRqt{huAG!2vfB%Wr{n(V{U49KD2e#1c zBpW1esxmoWR#bfWC`gnTBPC&V;Lbc_O#Hdxejx7XK=<8f^!DPT$Sk*jaBmP%^pBvZ znL~{YJCfZ8^A0#ep^DP16^}oYo|hUT4n^|OXlLhWylcoYbQX>PWCxw&ClIx7#XNiS zY2O{sOFVm?R8@5N@KHqqV-!dVNp>f1Mr&)AZWtH24NwbMhKH39KZZ^3kGBa*{vYbpceqr+u0X)petVOIq@Y@3pK*y zuL41@fGN}zQ6PAA?i`98W-93%Mv!CyVGdhEWZp|M637)oAt2fgDG0Pd^Tn2q;oi~F z>yD9;|u1`_&UEc#3&3}W`f-VliiAA+GkY%$z|kqCl;S`K!l zDrL3DW&kqkm>jt_b>hs8*z-G{#$ie(p;Ctph+G%7o;B3kk(=B=#1Q-^9W@xjB$jGT z;#`LW#3dX8Ay*`dK=_!Az9FZBbPRX)^*QRMrcU=7HuMk6!rsyaG4mgYiCnSdk0z~IWqFY z#nzUB0^C<&^@NP1woH4w=xRxXMiAcKy#-n#PE?09^$YTJnLv0#dCl|S9L%BTMS z*#rS$5;KT2bZdc#{x64Q7B~ci%RLu{%wYM~@%Ew4^3E%L8#DOCp!YRT@~&jRXIC;n zpzXdq6Np+nHm8>9#E+#w1mwSP?Dty@(Mn{O&&MD;TVlh#eW;Q0^6kUJ+lNblLDBhr z{+xCGwJX-{T1#;QN0-h)l_IAVi9sYBf?-o455UnJ4u@+Rn*E6!;s|97lvUxw3QO%TxIYQXc2SR8DihNA4+-%vT`VaCQ=iw+4qc`_LQrWg;mL*CiHu!3TkG{l0Vp zkr_%VdR+D!z2KM|bF@^34*dRmXpM}YtV9xVMo1*HWTEqcIIMPvgr!h8^gH~_NFW?J zm;gep*|TYT`DkB!Zq8A8;J~r9A7`%CgR&tpPpa6z$SZP*fbgVU)cp0S=0m|?i3LO` zL>fmmI7}c&tX+{nTVxjp!W`a$@+*Ub@v$yP=-9`{^70BZ1j7aCEVdwuV^28zo{7V1 zhrhnMp}xK*5U$BEVF<{>&_fUFEH)e*)WJx&EwWbk!{dGD%4hMhv958)vCKShyyVqF zVGbJ-_+S8Odv9MLuvIV^#DKBo=Wv}@MUxST*l+-ZRj13qAt0P4>3izKZJYJS$x8=k z<6YxJ1cKk(@X`(s2O=v=w&^7mz9+C^<;Dn15e!qK^PZ}%-=c?8^6n`kh4`Uy1R69Q zF-@4o5RRvGPmX3t(YCQTHs3~u9I&GhYg!)D0-t!ox(~-IZTnV2WQul~*^m8!fIp$q zgW(|FwB@J_=i@V%iH#vLXlWG!kh!_JaqN&d@Z>fvQP{%44FP>6$XbZ{u!Kefz-|ZF#sKBNb(6D)}`0T?v0%L{e{kS)*QOcv+rAefznG z#ZT{OqQgh>#JK*eM{=-ro~ufvsC4$$Efjl~qwsm+*qCa2vO-KTj?a;Z98fHXgijgE z7{wtoK7I#(yn(On66;7HpACVGnPv1t9%A6s+WP*H+1WAl5%@v-peeQ>l3^T<%ke`X1XREPpWZoTt1NXU_=w{6D4T*)e@ zMVx6mh)BV?0uiE+(kN*NpVEh16o=PtMq9nb$bsNVfrf|05E~AIA(|r@TLE%}K>lg% zTzZrUqA1+HVl-)NY!qYrKv|$-G?*wVGBL&&%|tXz3^76o1L`;e63Hwih%VGIJ~k%f z57CvbT)A_hTUY)Q&#g;y`#}k)C&K{R&D6)ax2n3jt1AaXGH1>RNZ1!Y1*?jxDlkr4 zXf!UUDt84{u2$b3`Z?U1*Ab9#rYF2j0du%h$l%CY|NF}y24$ z{CKG9amk5C4dIXhQJ8Z3_Ns-p{@|PeuY7VWY5xW zeioJpwHJ*>I}^#Q>>G7QX5>IQt$5>&C8C;_ozZbXt|0_6Y}PMh5K)0(l?ad+JZjA# zLPA#>@Uz62(%u%1ZoWQ^xFE9`VsV~VRyyu{K>ReGurm;0`umCuA{io%EW!|Ijuwm{ zkV7~h4O7N|*i_Q)t!u#{&gG{o8TZ``3_#%DP-n%XhT}OH@g<1(5fcv1kz0$42rUKD z?X^nHHRBLYM?*1NLHS0Q76J1j7d+GtOKP&UJQVzECaojXj{i?2niV z6Vbxa1v^B-Z>9#}!V|Bw$33D)r#1+X466acLzKhs`BXp@E9#K0;q92eFkU!eNX3U^*902iiP_FwNxi{aP zFSM%$9Y!z+6+XzJClL_67-eP*$alHCKSM%}5J;hI>?g4!_|dg-ehzywhY-wyA%4i= zt&f8v%Lmd$^@}VSf~2BS1WoyD;hZYf!`Un^^&o=5h6sm{Fi4z4j`S$qTL4jtYQ9yi zGqZ7^rQk!4i5%jGfCvRJMh7G8NWNR>^$P8_4uoatK_+E-sH+YP^=d+3`8mdc4Dap6 zAmm7))h?9`H7+0^8BbxN{=>B+$JJljX0!5fGnLYC_%TK#!T~A`h9tTS7YK)d#NE)k zcejUjq-lWTG~|L5@rWe>aUdG4fg~EUVpcTem}V-MG>^y4BNf{|6vy8y*3Ddwx5gue z4IBXxF@;D7gd+$deXOt{;s}G}?^5MkY8tyi5dc}p)U4WEZC8EHvJRZL>bvGMb+edR zNMur;^Uam(2Q7@d&nbYH5JP(z#+Xhy51JOitn|48r1! z*Ku&PkhfGZrHdr-_nh zGEOm-#(p(3#|h>^U*np z6V}{$DlPx|u3x0~k_rkwUYk0ueu; zV1@_?a->&9t%d$DSZ)A>HKq|mXt7McA-cYJTE(esKhb1K> z`>qGh1N_+GG?l~8sO8E_;r$nfUIh0Ji}AQsoM1>W(IrL15N;5u9jO9@Wos)l4&zNoFC!HA`tW#(IOf8 zYKQm%3CG@i7fDieLBtWx$bTZ4gdx%zqHhTWWVkZJ#a@@YC;%Zvq<^Q8BK)r)rnYku zY6<-y-qTvkv?L+=D2Cg7ntBkuCtGgb<1D>FhR5$p9=H_tQyJJhJd)pLQ%@K&_OpabM z)lMs!3&M8>3hg}@@bT&c2Yn+H7$sJ-YA@Y9h~+EpT&9(x=tk98WA^pyrKMlxavAGn zK3`rgLb%y7trYrhv5v(yaY%)*;&n1RhLmec5F(Muf{8zaK%pBP4OFaPCJi_U1RQFf z^G$H5<^E1G2SC69jPmp6&)>dvG2Sgg^?Tp|NR@;$J!{X5z(lPHVh$-YpG+G6Jtznt z3fHNl7y^j$Lm861gvEU>^J;&tA8d!hc>DfVu~-8K^bQzzc@(Gxj1o>*byf{W^KD9b zf*}6+rwQ-=qg@DLB=64Th&Ql+K^!pT6IMJ?9Kbj{v_pX~2B`*!#dq%(?-2$LsH&|3 zajbQob)FfUxJW(@y%J$y-Wd`jY#HqyW5{4YfpvodOE_+RI)jy4T#mzvLs3BQ-@m{0 z;uhOcuh;J>4mET_O?q>!-&tMVVyt%(qUf}W_#{LL-!;F1EmZR`00$-nJ#gdd1Li(q z^8csItE=Y}holEb)pNplq1Ks3a)3f%6e!Cn%_*=}pRL08o?7RNC+AQi>Nlw5weq?2pUIOcjo!YvdHThvBFGjo^mx|TVH+(br<@s7s0 z5UI)F7B-36U?`@N`#7#l4LEAzobTs*&a3n4oZ=9ipEeW$1%W`? z0sa`gk|JfXz^Y2kNB&x+#KVxli#}4RR3ecmRT;|J;o+gu6!h6`DwgTPzN|@tV4?iU z{Ozr+EhG}z*w`qM5Ak?Bp-{N9v$L_Wq1gLtVwKBeGRMZoD1&ZcVPPVXh%pwrxVR`5 zi&s`wrl+U*d_I@U?R-PY$jBI6uA5!!Zf0Vx5<1#LLCY3}Yt$dhubacdG zu`3_u=GMC7;^LZ`nm{ZUbLCp<8F*aiCLnkMazsg~%KonajQ7PH@!EKo9>@u->ZH#s zEj_q7in#Zai>}Z#(W9dvI=%Z|uLq1#G^9_o!c*xN$TaihW6^cs6Fze`LSH?Xhx_gk zDY_bcPI({nlBx*U{x1_QV@+yx&FA(6yaV63mY4xTY(=+qu?7-`)ch3cPoCbk5T$-m zL2UUl+hWj(*k5!5%KW7B^t#^7ETH2=WI+$4M-|h@7zhe8`A|Wqk<$nBIBE50w7`T?khi(AbWnQ(K!3#iw zTC!1Qda04x_k}jdqZ#zPxm!{4cGTp0!j{#lu_-w5kvoMK6kg%>RO>ZwXoAXiqFcsI z0dChTI1A!gMEE&wMMI=fgz6H0VkFd%a=pX~GV=x=+jp|eM9HOrlVyhQQXysBo3DnM z;6I9&E^UJ0E@jPspIy2NP89$Pes)<9^?-4UfRfz3R}VHBAF~SHr`HdZ4s?|KV96>D6nWZHy0@J#8#|Ju+kar#bHME;*b8cB-F_!XaXaCkQL zWLNvZtPwkuZpp8{)OaRG@bcf~1Vw{>Y}#%Y@W)0;d{wh<`*ORN8EAW0!vhu7DW}PDK?d7f_K4|*}>BDlf%T0(}0>R zJy4F9O!@&=CQgh8X{ns9cGBm>4gZzOa2Jx8eq#P?!0!YtlieKLeo8OQQTJY=fJ%7_)lQ{yKz>-g)v0j?;6>60H(v z=bwMl5>&YhjA;LGEc%Y*vEhgx8=R+?z_FO=a?|lY=WSQTv_JZbW^N9){V47TMrEh6 zcR#(iEw|EBL;){70zPhfr3Q4tgzp`v(L4uePy2}2xzGW+=!t)5K7I#&r~yGGd%q~a z(tcD-k>XqLwk9ATwesrcm0PQY#DsWnXTlz^c!tKA`Ak!7>#7dQr9(iHs*_y_SbB+j zNKeG>!I_u>{%O&JYcvZFAo70v#4~#eD^obo1}|6|f!4PK=*hJyMZX(hCX#&if0~bW z<%jzvOHrDP6mKw!4qJAh%$~pPImti5>fFC4rET(nuy>QH(K~*Xy!j*ukgA1FT85%A z5)>N5AHwjz`pthUZJTm6nhk$c%)r4Pcjx(pGh6TMpnKyMXq&ZfzR`(5A>It*2yr3Q zmVA`1dT!OqagQch4)E=)*B!~2DJ&L_XpT=>R6$ka6`XQn#JeeiF=)x82Cx=g$RMo+ zS&M$pAnhk^;;0~v7(k;`A$JtW2N4J=b`%B1TnE#T&i5t^(f`u~S!a{S5M1U9#XLug i5iHiUj0007fP)t-s`1tts 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 N002ovPDHLkV1mc1`X&GX literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm2_5_card_with_background.png b/application/src/main/data/images/widgets/indoor_pm2_5_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..5213cad50215fd2411222d34cfdaac8e09c27354 GIT binary patch literal 14377 zcmV+^IM&CBP)E;^YZcW z+S%CL+uY~o=JD|G-P_yQ*x2dl=;-I?>+9?F^!4QAcz=>Cey4<>lq)=I8VA^4i+k;^E@m-QC>T+1J(9`S|$u_4VA^ z+TPsT(9h7$&d%!T=-JoU?CR;^-`?Ne-{9We*L|z&dki(*VozE*~-ew z>F4O@<>lVq-r3gHS5s7!$xzA1$F8faTv%Dx*Vl)|IHRASh{rj!v9jjmXG};*($3Du#m2zCzp}5eh=qod$WG?t<4;Xa%*o2Sx45^nw6LwN@9ypI?d^|@ zjcR3PWnyAsU0xg<9F&ofiie0(Pf*p-(#FHYV_#rdRaV2n!mO#PsHmud#Vy0Xz^kXI zv(1sN(134jY|zlq$j`gIySuoywzaghfP8&zYHD6vTgk=6(AUG9n3;uvf_-{>xs;a%trlX;v zkBW-T)xpWpy|1sXoSU1Bii@$UZxz3!Kk&lv%jk(*5=I`0m*v{7F!LqBVqswrX%Tg*TD!SB{n8{k`?BTq% zv#!mCsMK$o&{p2&(c9zC&(q1!;<&)voTZ(c^!V=N=-$`f%FN}f#@?s1(u<3RhNsVT zpU_~8%01le$H~>VetCK9_2Amx)W6iCy3n2R+_+T$000hjQchFvAOP>LARzC*zrVk* zuX5=K>;M2X(@8`@RCwB?lrd}DP!PwRlA&Gddm7bE53JDiQQ@J3hYTjfP;45M3T(2s z6g&wsm~LLXm4X+!U>TZHus=gaOB#d%%A(DyH%}RRcX|oL#Ebp6b$ag!y}RGLJ5^pB zysQ{iqgpip0Ifk6&_sYB0VrEa(=wG1rX@{!U>E|FC7pKfs6U%$^I3Q{I8i_^<5v8q zvEEJ#NN91*;ESym?4`ql7nOqwpkt0epamcd5)g;7ER0`TDAUB5?SBwTy{AW}-RK3) z{-TJJBu@MOzygj8bns})iC%>Vp}!5m-a?E+?U4*xFbITr7{rnUAu$_tvrPNE+jX6q zlG3hskNS&wlx11IUPa?h_e20mDF)%=0eCvb_|`3QnCgk$NGDKjhdrn;;)L105-N16(O zfWZcUY$>6HP^OS5EGk*nm$FZ6+ZnWvTrcp0NpqSmeyKN*X|ya>f8u1l zT4h7uA!0;r6y~e;2f>R1*uX9}y2w4`u z^AKWBkd2QyGFX%qrRdXSbCVo5dXrHYj-n_^<6@cOJ^c5kg|#e#g3j{qtGjh50rCc*9YC^S?jXj55rj)hM%Y5 z;_KD?YM#!1&Szt9_$jz}!I}gAq zd6ztFf1bE;vD-=+C$MW+FCX8`gdAT^ugeRvs~>_I!96VT(m*h6=ib0CP|ZA z*UQDpdpRO34Bz*^V9*Ppex|KCK@UCWOzXFAU!4&HBS0ZAI@Ju#0TA!Bc>7Uy5*TgU zf+LN1wpwKmkOmlKSvHrq{VPab#y)5V zhXX?5p=L~os?r>YEU#D~!wv{#QFLALz4;^kwDJIO-BGNK`D_P?-AjS*^v>Z8Op zLIv+Bj%(R%Yo;jDJm-9#Wdsscx4I8OQoMI@7{>3ryOaMJ@hu~k5JQ2jGh8EzLcL(b z1B#O38qxK!U!y?!nh`~$bYuu{%%cr*tKZ5HAtm;)B3YasH8MrG-|X!`Q1OAE3r%2 z8lx$DxJEpR$>W)QYOPQ80gjKRkkEn3;7Y{#{CP%FAvoIBMlgm>RtE#M=0JAk1>e1n z)b~vgjJZk+zz#k4gb@Nk0K_&z&yuL~I|n)yxd6q_+3a)0Bb8-JNm^Ax!GNO0rjH2( zsb$B%jrh+fagFGhJf7Z+5yGIvLf=gkM;Z}_qBtB5vu|0HZWKtyqdZSHmAJ81sR?9J z;xQOyr@!gy7-yJo33)<^W5j?!2lVJ-*Fo2CPpn_8n9Yk4aU90~1!t4hMkI8^9kXd> zrx5Gl!BR_C6m7w(rh)1VKWF>QvBw z(DVH|!?cp5vCqDZEbPw5=l6VHrZX203^+oO`GS9!Z+d##Ur6VY$yqr)NDJ8l6tI*} zAtRd8-luj$9uF=-;uc}&1Qu9al%b4_tW6U;LL)nO6$WuQfB}v$HIP6M`M|y6`)fZ)d_I36 zgp9}p=C9WgeRx73l4C#?8xi-CO?TkCWGF}ItFeCP&z6OK~){I6RH54ss7{qZW2LVNv@e?5ED~tWYS#zm> zJonr|+?hza7UBMR7p{5ib-REvFIMARQG;Mm$hW zqVO_@Y=ba~yl5^gteQ)av*ykI;biZ=VPMp%EnAoKw3(<6+l{u>(lHF%hA_#WL*zdl znJgoN=ROp9a5x}BhCtxRkIz@V4}RTY4ge4a>>(6@EG@NPX0!Lq3rCGt=Com8)LOCb z=ApStqN8=XRvS%)L2RwHWE~t?10v!>5tJ#H!^0rjmv3|VcV6f!aq#VDd8Z2DI=g7% zHN3fJo_J##&x3{$ET6RQMr#am;>LEZLm(**`#?_Ghgklai-{dk6p8wXsC$Tl6EXn# z^6~16Z?*kI!hVnuRJ3A+2rVQ4k$KR%Z#IfO^9?|XjsD}6m6c2R<+GJw|6=Q*>(uANB1xfUPaxwlOzsF}B#cjw140~x!A|_F7MbJ&9stoC zkEz6ug@lBfECU2%7O7O4#hg+tH}}^zqj;%_Zl{BOg5H>N#4{L3M%?&+JEAa%$mLg( z6dQySl6k=xOj0Zn$uXJJQ6P|dEH*z6m{8W9;z`L_T+!gTBO0%9-C`D?kaUfpQej2d z4Un<*Z%0sm=@TFlgTVPI+mI;&K{6bYCnX{|$RNB|;cT&JYv&5U{SksaK`e{d-5G^h z0HdLPCDckqO=wh%$4<#uom~_i5P?Ay8)V9fi1!bYWb!&32}J-B0|<@07#{rva)sjp z8WMqEhsO#Jl+A_Sm1I&$da#rlH_vNKcv&K z0&lvm*cl9wG0<>eO2r^=y^In?Rv_j9MSe47N7Yjb?QrWPIO2kc_@Urvd29}VxR%(p zmy=$g8|PgYUnB=;6Q8oIOiKwZy;b|cN|Y66Ab#|P2VWq`;6JS!2pud4AYc%rurwoh zYz_ty!|&FR@Se-Uj_3mfEm#f-EOGWkMqyLH5=c)soAlVL246rDkH_=d5;I{wTwB)( z1Po6371ZZK(-paBx&M%}p9jqdylT==~2_Z<$n6UPTKa}Fix z_sjF%zHbh{eRhiEO}ATm0S+@r@V4^^w`2!6NRPM{6N{BhAx#$*QlZs^0LzglgSon8 z%azLj*{c+YB!MGNut3rg-f7b*>F?hdAa7`bg8(49FwZWNC8meKFh4N6J0?u+vDm;s zCZE6Bs`lcrtG$1@*muojx^}g^uXGN(dq6VSUs`KKY$bdGB$2?254#~;`py?xV&)B1 zh2jwxZd|S!VF+{3v0Uzt*G@pbCWD#gkR zJ;&QekFD?SZ0{8N4nE$QcCQ`vXZDImrcRWy$o}(Jo+*~g3{oB`)mHZ&j2vjyhvic5 zxj~R0aKs-Cg&0JZ-YejUr?I8_Q;)7+g&Pb)7!m~5-0r`9e0OcP$YgbD#7TSkx-*JqCJ=0}d^8XXgD4AMTd z6uWPVtvy^D>nZQ|?G=jvnJFCJ86SV-$5`9Vn~m#FO~(&L#@%LchJAp&vwqP{dnyQqsXK#{&4#1!Ntz( z?Ci+$`uj&?FJX3XbZ^f&@(%OP+(EHz;$UvMt#xnii$m-9PH`_|+AAyNoi($!GZ=M^ zv^;y^W~t1pzFQhOtWF#rmbB{L!&3NsAS@)iFBc6)eeeZA#T)fR4j5VH$ah&ds_KNy ztU3W=vzbgb+}MRMd+EwgH0B|+NII-fQiEg-dqqFw8Nyi1D~UwumGhQg=3qyB&RiPP zTs(691w>Ue9VCnbK4&8i&E6_4;DSY~$J%knAW(x@1Z%9=<*@1aBvbR3@d%s4B`r1kjt&bjM6GBh=V{H#Gu6#Qgp#24Gkj1ASUS&ASr8oIO}Z=G-LV& zNfamuuL^=VB?vl6E?6k|ebKifiNP#!Ah5bPL|_D#Co@8T;0_$M&r6*K!LKq4gHVoe zlE9GRrsn2mcmk5db$z2)k)hE5i6Y0-{`6p9Axg8u zj*bojVG_y`;aLNN5Jro`LmV&!5ZUZ7-pP~*5``?OtRoRuI+DX9io@P`G!pcCmE_g# zOiY5{MO0lALbB zxwX+Z7=1g!4>+X2(T0*m;n79)3gKlk1UF!Z1mVzP(HrA3hnpxo#BoUpH+d0P;HZa` zY~X(aNf#zJ=2u5oZ%w8nC|TipYj;fbINU&>jK!+}sWmFp2?wW$_#ulpq#uN#zL-fR z6<}a%=xqW>GI>cE4&)G87b_N8P93B$kl&o2-x}R&4<RCrR zgdZ}r0L2;qPmZt`#mXOOCXh>%F98gW0J&UgN7`=p|2Vp`ySr=l2QXnJQ!$UgKmpPV zuT6p&BuI0_6@%y)0?UT>i8N=BShuxaX=?WS3B(&#U1L+Pq|A5Y_9hFDB>XmvItv$@vlGD!H^u!ti|CqACdzq>LZ)7CP8p~chh>g~llbL$^|_+-WnQJxzhqVv5ZKsscd(o2-yAn_td1SeU-u_Z|^p?M^& zXid~pfJKh@Xl$&UBjCVs(ERSuz4iMay#9Jg!#;whs|H#ZbC4eZ0SOr*oYB+8WTVN& zXp)ct(ghHRD=;YruRSqgi7dYWfhtjcL-bu!wKX!d_{F#PznoYA1a}Q1MT8^55aS90 zkBLf}0ivgk=!hCDfrKrpiim9yARuYt`dc9qfbbR(XTK{W52lya-~05*f@Tq2T!I+G zp3rTarQekIk`Cg@zT=Hv_q2E z#K!Lggbl%kE-_`%iW>|NV{&8?xkY4;d8l{9tV&jlz+t^`RiKwV8-j@AnW_!dzq+zG zvNH3~)8fYeEMm(fbP`!c3dqD3vBw~%JG@RJQ8-rVPV;ovXL)v1lqSSh8ha}y`L7^M z!GEpL+8W7k-kSfs_%!BWPxO7PUbMJov5??(2Tj4DWwC2}SK$4d|_5g-k9$Xa`y%?Ks_C1ZDG zkcf8W1(28z6l#FID*|SZQIEbp!}yqIr9idu*uuDnxCHe zc1)pB!h_H;`keGcPPS%?TkTH0=&%695S29}Nn{-`Gl&pxPhL#%{D^GFYXXk&BN0xp zh(Y+=AR!%OAQ#S0t!zJjvh2lhXN|RK7*bB1mdLH30J(uv5w*o`#*alUlR3im%m9%| zV$m@iJPBXI#2A3+90jLaJ{JTSm~#G27C=JyhN=cSy_-`{XO4gAN+5#kQ>sQ4n9r!F zH!=dmn?H+&CBZYZiTK1n=mpIri!n196<8w-%v`Z%QGo_>PP z6>*^_x-M32wyU>?cKesM62U~SS+S~afas#787%@JSQfH~l0CAs;=K*u~%A;e7+)CkjPHir%cLCHXzF$^;g zNF2hPK%(*i36VuMG6DuXKu|HD#={4%>w50jcVh;OcW76-c6)yBeSGfc?m~~w@9Lg6 zylQYTQALn+w9HWyTb5V%9lKww&+VBY+_Fp$RJO@gUGG5brD`>Tfl`g#NVZ13Z0ZCk z5L3zj+h?izB}NrOM`+8VAGJ1jy?gJYn*dT5PDhGebwpv~S8CAGxmFR{-YeKsK^(|G zr8A0rfG}Et1MRH(u&aD4ve}B7Y`h#Kl|}+L;XVr_7eR5KMw}^^@=)gnDmV0ccOl%c z@YT)hZ?8<1*VHEgf`}7<$iumj=K`%mq`g;AmCOW@@F+_l*dtbxK@d3X;e%|ckq|{7 zE}dLZDWo9Ec_5qw)8z;)eEPO{>w?vH-}P(?jo+eVjv&^Xb08(rd@N!rftbq}2Spr! z6p8JBsS!Fl6jC2%&$lLP{aQ|#46;G z`gDvSSgwva3sHRH9xRo_${V3xmi05KA(1RyL{gd&+u zV$bU~?MZ-GAP+s-U4Qt4O}@ z@9(FgDAcA>kXk8-SZO)AK-Aw-iNd7#!?)iWiQ*PXOevDn6ThCG4PrF@Qv@N0KpF;~ ze(tH|Up@8dv*~mugJO#y=GodzAf0E@O!!!0-;f&?0!q;E9lRoqlGB^Lv57s9atR6}q0=wQSe&jk{h_ zn*a^$VptJvULMcV73*=0)UBQ`TEt7bNWh0fzvDVjMit1qp6aOV~NO{3CV7^G>D`6i34PQ7CeiZ+Hm_MwtdgRPm!4^`xCEL2K`uvCaifAIkI(-eGwDXW;qnhzB|Gb=6P2BBO_(8x&s?9$e%n^X&_OfWpG>=G8l1 zS+RZl7yIAT*^WOqgKj~XDJ%?~hy$^VYn8Oqw8XI$y6K+*GDjfXgb0Lv@!d9x$1mH| zH@*6ZH^hSK!~AuB@nht-vRsvF3IBSN6$OT;~0Q= zJ!emSHtO-g%2O*x@#Tla*JsX5AlZA~ss8{12ukRk;m5vQvuOJlixyHN4upNEOg(Du zI)G&0=;H9x_xEyodB`y!I1qkE!zjfLqy#7gLBUDi+RD5$LXapu=Vz)0r{DxxhZg;J zRLkK+B6Sj9&(x-RywSrGu)C9&Ulc?oBl3G_-rD;YF2C!8MRzUq=dskjiDs&?4Jt*^ zk_QLMM0M>nZ!!Wk>=8#Fh~)1A@%_AwAQXZicJTFTXN+;#YHW9SZA@A+KAm7A(VjyL zE02%Dw&HO!v!$#gFAP!zh8uZ@^O4TyU%mU06)QFbu@gZj3SUS1LKW%S5#X@l2FBZi z{QunkcCWpE?p%WG0pUy#sDdEKs959_6)2G1Wp~_B@*6CRIZCLSDL4YJFE2;x2gqlo zrFAFI4UL{Vb-j`bT(l=6>>E}IIU7c5RF8Yr(9bVEXekfe+3~2CDaR& zN7wIsVEqD=?ZlvUbBmg9D$?O742vMfaa;zkqz=Ox8iO$5kB=SnGvPlV#R9o!j?yOs zi9ndA+P#rE5`_bnmISFmL0QoO5PU^N0}}RCt=(fd{|X|K(BgNRTlVf+^TJb0Tu;!| zDgI^~h9wRPImXFh+bNh#AX=K3mjS;Wi;);PpqXbcTNf0-*g60vXYgMJI1!num^FY8r5NM=u>*CJV z=a=nx``+T|Aj|{I0djOUNQkqCftOY$ma#r3$LTeF2TCZ^XB$^{2SPSMP(@B5Hz-pI zB$q4e@kW5w?HSeK&p5bYPoG-VBX^A*6&>4 zKo}m$5G98SNQm3}kz>fta&3r_Cpmj)F?VR#A!1k8I{=07 zl+fiNidvlEQ4*!M5CjFYNb0SF1W|pN@~4IaxgHEq8E&D$O}E814bETk>5^i%8A?(z z8CCE$3TXRxZ@ToAy+lH{M7xP6** z{25DXuaQh{>*(m%=H7z0He~=ZGz5(I$J^VFT`7{Oc9v2H3DR^FchQ^!IgVFE7*Iyq z+oxm>Z5@Ov&;j zXU6Q8VJ@se8F(R-ZG9@Id!(^2u40oCqRyrzApeV5Hp&FG=fidrE=gE$R^OH=20$yJ1qgg#udwyAQAQec&8Xyp6F`P4(xTo^6 z!f1t#k>;pA()uxSj5|sR^NduLk2TeoCa$|`CI}Uh!b(EDEjKsB z8oRsa&qd6(xxG4i2skYKx{fb6Vi}w5t7Yp}Av^&gN}LDJ@O4D7qbpbb8H<|8Nb=i` z?%TKTXJLd{QJ3f#l7mNf*s6&T%S;3?u}XsmMoCr^gnu11FfH}Q@GsQTkjXR-G#BeoVl{4v%A4{`x7`yBnSLM>M(`yAhZda z#&W8HQYC>>$O8CmMVJa9gK{ceG-e!@3xGkXPUlNtTCgaB+tY?;k1`ltSTtd4@xh00bm*6OB$;`xra| z0YH)<5jOUj534liH60{XZqDA_-J6UwwYD^uI?K0@EWp(X0?|n`he;~1Wdn!)T2nv* z4(N~r<5p@pX%Y$_Sb;%>WWk}VX&X-?fo%yyp$ioa{@KSilzs_567R-h5+ zgWTU^1VTlT+!l`FP$#sPl16vbK>{Hm@eBGR55N=f{$gf!Y$shc0z|3& zWp;1(_V&VISo|n|xBspm@MsF+H6=lL5{J6bgY$@*MD$69NJ0?{Qut1{*(A>yD2PDX zz#xa3umW*>fWsiWK>GYCA3ipaOZ;;~64gn`Y3 z9Il7qHeyJRX|5O;QyU;UQr?glWAGgZx3^3(Wp@~|KJPj{Chu_9Rq?kr5m zQFn|Fa~y%(k09XSJ8q6CAZ7#0V!_Ko#!wS>9%PYC7&?56f2GR-^oO`piWVxqjzCcL z;j05kTWZ<2L)m;BLzp1FhHD~!c%OH=z)Hiu0x*PuwFFg;i~JS77q+NG{UEd;ozVgaHjG84BMw(d2RFm2XGl1 zA~;u*FG^V)5Rt1Jkwl2JTkL&2ubXzxgMo357kGn%v92ugW(taN0LyK(;+DZd!UeHh`uikIGlI(`NDJ8N(c~2 zw`xj-9>d~uxxKlOBJ0(zWE3c<6dxf7Z+rMG9~OedI=xxhRjx6^zL%^P;{(`1ek z(_GfRRwx3HTKi4jw5hE5p-x|}UM=$!lcOXA-1){4LgBWcL10hSU%1vok0H5X{W(5t8s#Y^E6M7DOT9Iwk}`R;Tv>q>L0cgQ(s0 zx94)atR((R57RV-GrYSgn)fz|B+5kgNCi zOzYPG!P~MO%1)j&N4h~KL8OTM$+3}YP#8pdfukz)g-ltr5Z=41NPhgx+RTa&WbuiIh}ccBkw1CXxb%wSImm-JOknFQi8-j9Di^l$ z;9j0^VP8n*8G9^UPVq=5eI<#vLAG;~L}o7+1uIVNngOlRi=mVZMHC}Uhgc=GyY$*S zbDSi@2}IAw$5mK#Vg8k#M-G3Vm`Q?|M@|Xng8iV4S4+nX?}p%NMR=NIH}q zKx&gpsV!>8{2rf3#Shlvu8JotiQcvX>cf>I%x=yt$VmSICD6%Hv0Tn@$88{n!oGs5q!A)vp)p_tgT&INFlek?$Aoig@0LPr~JJzY<3Sksu8Ok}x=;J_>6?dV!RdH8pPBJk3uZv9Oa_9+rMpVGQxxmONP>{z^Mz%Z=XVfWsT#|}%884?C^hSLks_Y3m$)jL z96i$a2oZ=R$+*62PJblvD2Jt2$m+DV)@W&LtqqI4zY0a7Q&jAQtHKn+HJ2nnhSy^O zqX1$Bpt0JG%+j`;jku%K=QOAQE2Fyi5QzC%8JJ6JBI`T1d^~&=DRk=CMg04M~6Zq^5}veOK*IC z4VC(rd~V+A+H;yezwT=NIIQkm{oLu_p41a0Pb-uK>tAcZ93(L?rIb{}t&J%(s{=%q zBspf3YY`-z9Fn~QAW1Ru4xqh3VOAn!l<(b75rN4!0NYN020G-lYw9 zr%(|Vd;-CGHLnXx91a2rwv&L;Ksa?glUNf(tJLJ_1j+65pEf>U!)gT(qp*I>+wkMf zj|zt5a6^vsA=EnvC?e6OesF|fjiZA^77>TW-7%czxShmsL{GK4B#>YN z>5sbrsbj2!3nYV`qg~fWsqaL2ttYGhO18ciq@gGrMFstMinT$TvWv$h0C2ca8m1d^elR%-#Pc_-MxEH&tHCA6qHAglt#-|8rg>3XzY3r=@&UQ zXBfGchV#Nu)e^*41?{y%DzZvTdhY7fBt&x!8I6Q zoD@0YA{UL_g1pE0bLEsS#eI#@l{M@@&>5tB&?Wi!&*=(~>bI(ho+56OF^``dueK}u! zQ~S0U=lko|hrl0L*50x#Gx*|$;Rjx`>1mqp)ir-#@!X)I`NO8??+<2eUR$hxf39w3 z6E(ei(m1bEyci|9Bu0rh#hWpZ7FZ;nNa{ElCqTR`6(_;~N5=n^MvTJoa4#T&bn%F! z2$;m&LmBil&ntFAk-9V^Ns7W_v|^`ohFW^!I8LWCOQj6ecru!d+K%zQ{N_#d z^P4~8alV}2n(Nogz+5ha<#I6C53GT^|Ke8mnmp7rcbIAVT6of|d!8)&&B|agnwG6) z?ah4EnW&qTAxILAFG!vD=$pfy+sNOBxNp^>h{bR!5u zM^KD!2`G+qnXb|*zA8#MFWHhL07SI=NRSv@$8070#Ch_3*UK53RBDw{JDc`sG%|9| zd^8)C|9q>KYvr10nOpO)1T^OBtz|+C27&uU`{Ff$6IaVUdIFRZ|_g2U_nVr;Gt<`VdD;q8x#)*Nc}y5?01vIbBJaz@U4DtP-$#t-tT z)pVX;_h0`m&r>g2kU)^TNC_kqg2YWQ`z^>ntknDi7UPH*;E5#x2pKwrC0S8qVSrS) zo(x<-_PdgVC@oxggy1?I0ipnk!01qUbQ(n>#aCb)sqrMIwl|a6EVpq+rBS<-nzz-| zsyZJ3s8wrg6OaVkac$9G_uGgHW9KFOZ|h&8YdORM6$ zOYqoertTbt!IGTB{WC-K$f-o)5+J!0?tlwr7McXy9|waZ0RqSAIuIygC=6G}B%ESV z8q*_TR}?|fF3opEmJ&$}BiSg6VN?WMBNRVmcf0J1UR%v&(~j|^1$8u+T8*Zmyg&a~ zY`25KBA>4TqHVw5-({S(yBniSwvSbpB6lFQcGA4p*5DXJAL;w&N zqDQ)+AzG+TgSc4e)M%WJilhi6MRV<+U%kGzoRbCw2VL_{S!MEC* zw(9I`menziy9u=_aqPsAqsPwz9pDz=1Z>0oqa#Le@sJu;1gnTTMYB3k(#3E=hdL~Q zEg}-n^gwVJCPo1&DgqxQi&DDYRRrOALs2CAc@`!>$!=tOjb6Hx?vP)+8b8!uk36$jHd^^YhNm&g0|b=jZ3!+uQH= z<*cl%ARr)+kdX25@$T;KSXfwebacGDyw%m!)YQ~HJw3nSl}buVFE1}UJ3FA#VYarm zo}QlJ;o;x#%J=*7y1Kf8f`X9CM$hT6W@cvR^w_Z3d(Y^v&(F`8&QsXzy|A#bsMc>(D(UIzw6wI9m6d^kf$R&&W&i*H26R$R zQ|}Y-`0_<<2=HD$Z!$@wtscF9_tR0Y?fv}j{n5Ll0IkngjGukHfdaK#;Z1b( zRv^6&Vptu-v^t1sbr93)Ag0v>NfMMzvMgVKWe$KmLXr<6AF43RLYPzoB*`t5d7+i$ z6Xu41{-Qv+1C^Ut7EJ0f$lRMNM+E_v3zp>!(J}-BvN-^MFmVir_+FmmE<*(wdW%8A zGH;=_JuFv1Wi6eh;k%aSx|!OU?(XJ} zDN>PwiI|Ep{UBlhJ;rE{#2hF-1U(khG!9T}-;gm>1hy1`{v(yKv_Z<%BH#isB}gSf z&*nm{6&w(@RQ`aKFO&t*FRiz42%)fP3E?0}uVk=>a4yv2tc1ulB#<$^gRmggFRiz4 z2p_X6BxJmT&@r=1NGvM|5<#FLG^Q&^LSk;SSS{&C<8fgGq&0OA)9N6m^#VwMDoOzu z@^`|UAVL5{K$l?ExB^LA0wC0e0d0hgfmlFaW!Mlb1@M6}*ffw*K`0XnLIo?3GC^^$ zHbW9=CxS{&KoBF=5Pd4=(pJedpoFU%#xw@wI9Qt@K}@*dq##(`fH7oIK^TXI2#h&{ zFdD)|!j(qEYe*V%Td)!$iMWM;*dI)WQ2jx{DF-cY0O#s!Ky~_o)oKnI#3s*?r)P@- z&&XWJ^XecSq%Cz2)9N6m)j>?FgP2waF|7__S{>xkX6MuC3{T2r$aHk9yS}`SJ5}rY zsAVqXt#;>k7;9;i@eMFR$S;T&M| zeVh=_)P_&*7EiGiB(PKzI-i9M^Cpkm2O%QAcvC?IlQoxDkC1f!{7 z)0>Yc$GE`rAVq*UCAdn*L4iPW8}`m1v;Mti_aDJ(M9yb3b#HWjqt?za1NwMs1OT%W zYQh_I=U?@gi!YaWL8X9q?=-fj4q{pz#I!nyX>}0O>L8|7g9IW)j|rrrK%1&TYzWT4 zC;>s6szE@?{o2&O!>eDP)2p4?qY$d5L1Ec&{@BqdLPM789OgSj%e7Edn<Mu>#O@)?TNMqniB)Y((>0dmSufZty`i<& z_qCkdjTm&%5L=|CN$tqHGYC&PbisqmXg70wST4g$t4|aEWk+8AG)PPZbfk8`$PlL4o4Z7P{@J1lKplDOZzKha9 z+Fl1Stv3sy5{;!C-&X*EIfv+n5Kgp)m!FhSK!4EH3c|rDdMQwf#sWew@YPfFEB4xE z2qiYb*p7n_60jvFa-777ZHFgzOc{Z&HJ1pkAq68cV2OSO!Cu=uBDRPj7ze>E#0H@Z zga<5^(xwh^IMk|GL%1Ne2%w+DIQH0P2p5QHLE{yq2v!h+m@A)#5O4qlMd{(vP9-IQ z0HHWk^~uhJ03iYiOOV(AC5bI#VWSXNv|uct3dw9u1Ox?wSd>3g4~a;yMf*7XN_*22 zn4)dbz9693(2I{)-3hUSm|h1ltqx*Z9mKRch-vkXj_@Yx9sTqser2=&i~8-;Z$RQJ k#`||a_uAgkPw(FU58m5tyS+PKwEzGB07*qoM6N<$g0G2^`Tzg` literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_pm2_5_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_pm2_5_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed7882567a345cd0d62ca21be64e5e68651c972 GIT binary patch literal 50660 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 lV4ZP`T6*M3&;^N}>_xJq#{NCQ)>FMdh!ovLg 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
v5A2N=T0bLR%=JnsOY1iMVw^VK~I$ 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_co2_chart_card.png b/application/src/main/data/images/widgets/indoor_simple_co2_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..eda998a13017b4a31936027d1a1fcacb15ed2679 GIT binary patch literal 1471 zcmV;w1wi_VP){r&y=`ubg6UF78C^78WT?(Wpo)QXCV;^N}}|NlRy8X+MeSF$$a6Q!g(spVN$0X0000DbW%=J03XK? z@#8FyxvO(KkH>D|fdBvm(Md!>RCwC#&&d&hAP@jB7^UYp5Hnu?vgQ0?dXb*v0*Ng_2giogYtoEh;1S_NW0y+Bm!`|q=o z0C2o7Rq)5PE(iy+#FYfyCbx&~1Y&%0kBZMUd|f&Ka8RsFp7rGKOGfim~p9!Sp1FG;C1y0V$eA^(I*(u5uFKG|4nKQd}g)YC(d<7#m{J zjz)PNh!4m;wko)iRHOx)+gl3(C@C_3ytR(Rk{cwY+x$}&^#zey8TZaWWDM}NOe+Q6 zA)-WsmkvM+M8(O&{%b7Pir{C$KhOMo`xE7b+YoPUh_^PxTN~o74e{27cxyxcAvt=m z!gwOrkeq0!5gmA(XGkUEIov7ZVU8gj2CjM%JjyZTjXkqlQWOTl=o5732QmQ^5CL&T zo%escZIec4*JXnRRdV6ENi&&??~qPA!o9UN5mg)xJ6FXUc#s$furiVTW^*+D^_v4c$oY82S(%723ZM{Gq+*UfwYT0Z z5>-Z+SUo208HhpmM~}|1 zt=jFLltLn>Mrt6ebohs>L`1!i%O-Y9B_i)-qW_Emv)ik$L=a{N%rp^=n7Qoe$$Z_B ziY#G1{vX7I5`|x47)KoivB{M>8^PCVnn;T*vc)WQP%ZJhgj0uGSb&^Q0t!*k+ve^W zWqg&>T2WlH2z zMS9fQi)4@Yzr~IZtK?_7MMQaZzFObv+8tbY2a~c0VsndZX^-oUwj?bX)shyfx1(2NE@2UgEwD(34w>FX><^JENq3kz zk=kwb0Mh+-kFF^jY~TqVRsrUVY+W>Nt*)@-L)*3)%GLtIVV^}f@vzqhMFM|yEGcrrI~p9E z>UnCh$m=Jv-^37LzDTJZ5~Xh8>QlEA)+Od>KSlH(cccl3ut(@)W4;K(cZBEAiLA)5 z!*5q>7(}-2*-x#D^X(^yoC6+MHnTAEq;ut}IC9L?U(XIwIBW};Pq@rDSOa?+A*U(v&J;@YnZh3}#{}t#I==h2RK3+aqc8vf0001h ZJq!GY_iN{jV#ELd002ovPDHLkV1meMu($vK literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..322bab201c54ef8e5191dd13ab4a08a8ac0db0e9 GIT binary patch literal 19629 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background.png b/application/src/main/data/images/widgets/indoor_simple_co2_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..efd659a6f61749a2185ec879ecf859603cbb6d0c GIT binary patch literal 9311 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 N002ovPDHLkV1fx1VnzS} literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_humidity_chart_card.png b/application/src/main/data/images/widgets/indoor_simple_humidity_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..63134b4c1fda50cad78537c7aa0075024c94d3db GIT binary patch literal 1354 zcmV-Q1-1H#P)JwhsbbPSXfuG zHs|!?baZs9tE--#p10nq)z#I4f`VpdX1cn%N=i!e`tj%V;(NkjOROkwy;GmljGxnu z+wauR>Bf`Jeq*>r!{oTD*qU%FBNPAt00neXPE!EyAiu9s4jnN700eePL_t(|+U(Cs z0l**(05HnY5B~iQ8PFvT(f|Me0001fr;o_j&3+!S*YkGtHVZt?WVBo*M3qR2Tt?(J zAN%#TVkrznVfbpXsLF|ehM4U4f6m!D3`*NghK3H2&QHXm?mozcPRM9Y$Y@Q-Xidmy z{Q}6tep9}L$jjl9x_##ax1=0orI?b@xi&;Bd6hT(b`vJgi;Vg3>2YvmeDZ5Q_!dj zL}*h8h4BJ8Iw1*_8C%#P%8GhG;4Bd1ep+>bY+Mj?Ci4kV)pUXQT>!`ZtQQ0j!8dcx;QyOnzY{Wc z6Ea#8GFlTdS`#u_6Y?V&?-rNx(;>11(vr0P(U26vrUsDJaxu?^I7T_=mw75gx!`Q& z@>IwlcI|FQRTv7x@X?pGN(-eeP<4xds55i_H@F=^82@o+w!wtw#K=+KELx+elsuhJ z@SY(NrT9rI^PV9};Z#b|JBD-v=@}*8Aw>R(0(oa3KtSR6LxiDki9jQx6c>z^qX`jN zl7s=y&9n|@B1lNh+Kwe~Z6qTJkqaWNh?F?X)9n?ZXpu#kAtP}`qQ(CVaoZe&2&F>_ z$W-YWeo|eT3>6WX6juptej{Yd9Aj_IjTqln6*GTf2&HFTkw7n`6g?>P zLTtPC-APEyyRGFM*t+2-s?c+E0-9r}kW|q2Mn)5nN`hxY*2lFM9J_CMllK95_JFmx zZ>i9k_ahNXNeuQ!(Q+O|S)xfFUKOe6sgM=hvI(hpjZPP`W{10Gl%gZ_QlhaSfoG(K z_S8H$zE}GXh}0-$ zLWy4?<*<-~YaBxgTf0roy#CQ?V?3aic!5VDo-LY?PQ@iUF}qDs6%IEHd9M44kkvlH zdtY+pH+>ts{-d&9aaq{X-8*|9ctwck&KkMP&qJ)mjyKry4mX73_zTA-J}BA7pNQEu zcN6y~nnT6F?ISp(IbNv`xzz2E?O~g5%68T5`eV+qxiOKz(5RlXw;_m`OUrECF=Xce z&&6lK9+%{tbcV-XAA;I4bLDWNX671~LQSE>OZ6cSIhW&He&rehMMmIhWBWB;7*YWS z8gWRbb%?=69I{9xh8uCnQ>Kt95+}%@i^=Q^?p%A%EMsj{*Qd7zl!)<%55} z7(f7J#=!}=J&hr!$tdFq8SSz!>)!0|M3AEPyj^KE00000004fo0CLHrTYaM~OaK4? M07*qoM6N<$f^JfLr2qf` literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_humidity_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_simple_humidity_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bac12ed0a539bf5748d0425eb6408d258b76c4 GIT binary patch literal 18661 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 D|Gl>| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c1859f1fb5a37fbf6b6d33b747fe95394ea69a67 GIT binary patch literal 15653 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background.png b/application/src/main/data/images/widgets/indoor_simple_illuminance_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..45d4343784aa3dd412e0b78f544fc51be1832a21 GIT binary patch literal 8362 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 ASXfy9u^|8HzyIBzkdTo7yg+nx zbpO(T^78Wks}TSC?=LSe|HoiGJw3BceZF zYs8haZ*OFcGWr2#iR?#6k;RCtM&xC`4ptN z8Hgk0340)*_56Sul!I3G{ zC}+q5-%r7=Ay~PW{4->s;s*lNKCt}%`xye`o}6h3N8<+n%2<*Bunm9=j2XqdfFO{D zJ9PztM4>5PXiuqr(e?w6NyTNT5*VyRP~(l4wX}|1ftB@>RTcudZyqJcKRh857DS@ zj;J8Y%4eQdUdz{0d}D4mtSVL&Nq3PJm9+5S)k$QHStNS0e+9)qPw#g&_d^1YO{#QH z7I{&#yt9bH^6oVi`hkeq%Il55i#V5CAhyzYl~Un4-svp&V?85n1|kG^)))#R!Ot&{Zpe7m=f@EDE`ppe2nIGThkL!o=(4`n^(7ETJn&z3(J)LeIgt zcP!*_5ss*g74Ra$B})oE*3t$|SBVEHH9l&Q@6t`=fX!JR(RIp^u5l5X+g^}fMEWi6 zm%>tOtF1vqy?)RlgNhKwx4gC~3G+atr1cpP zOQV(iv&a<1RpdlBQISBrMgE%z{RGO-BF*g+$#B|RWR?yrGDUI8)|{0?qgGjvi}r{@ z*;gcI%YjACXwMNYLK^oy(f}A?MNZmnXsrk*_nsp8_glTk$&U6ZAdiXoC3GhY3OAP& zFMEgtkHJMwMw|FYz&!AM{bY~8so~S{{Pnb+1*D(o$F_*vUUoE0RR91006x50LK0K UY#q&G6aWAK07*qoM6N<$f*i!8vj6}9 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_pm10_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_simple_pm10_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0ab3509189855fcce84e492cf1f36a83dd71f8 GIT binary patch literal 21911 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card.png b/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d9fa86bb8e9891f4374dccd1283d88dd7b1782fe GIT binary patch literal 1405 zcmV-@1%mpCP)wi_LFoV{QebOc zbD)*IUr5BO1Bn3Kp_T*COxZZ2y%r~2?IuV_p*P1HWOu0N0_25)qsqXMP&EZEbqi#6 znj|`2At@;f)RUvybV9@uTJyS;?6}q)kV2l4H;B7dKs`7eKT31x>rUWOcR(ValJW+@ znL1o44HD~$ujUP?Jwi~}B=IxkgN_DS^EOR_GGSs7H(cr-2$V8%0jtpVw+0qLy)>8;)&5q|*^DU-Iy z(;;HqOWA4iY>3#GU^a_KLq6Fzw;e}e7=XSRD-M@XAffaE(@xp_{~uhBfy_l=r>w*d zm3kgRYof|Wu|ry^dli9jQ2U1#Ip;8v=Z`EBy{|)}b`LDls3U-{t;ZAD9mo7%Q}Cqu z!-+JtQmLraF)+Ti9!%t@&cB+pj^1)V0OM80I;|`D?P14pMn^mxwJ(GbA=N#tl0?iDZc58UZ7%#37k(q<#=NZH`jL z_l6IkO6vkbyi9xSF;!`;&Jo#&rOy`iqG~aT_AxjqE zhBjO;zU!MfZWf&I&kICK)MMvUNJLC4%kxGNEy=RN5W5196@0vif&+$+aJR z3J8hF>sCriM9eS+dAh%K#R}kph_0Jyk@ZD7&S=P7+pq`^4!j5p_n$;aVik|n_jcy# za9CZWA3caW-WbC*V(6<#iND`PENTdfc!Djmwn#hew;6hhuOgR^E0STkSR~EY79l-l z&{u*(S7oCJ1$(4Ivs5He&B`LAr7=98d*lLOH6o8r^1Qx@5NcQ`lBfh$7P%ohEwlj< z>u z1qqC$xpVLaUPv`Us>wdfoyZ0yJICEpt^c=FGdhjJ00000005pGVf6Q$>QzYI00000 LNkvXXu0mjf>z|e^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..553a46d79d20e116efdddfee859f41524ee0de6b GIT binary patch literal 18896 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background.png b/application/src/main/data/images/widgets/indoor_simple_pm2_5_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..9e202fa403600176a202e5821ceb6f1feda9bcfa GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_simple_temperature_chart_card.png b/application/src/main/data/images/widgets/indoor_simple_temperature_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..490e9ea0a8bc4d704af4be0cf0c05fa4e336b844 GIT binary patch literal 1412 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⪻^f_HCtZDpyn&)n6`OH*4fJVRMqUmG(+ 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_temperature_card_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_temperature_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..26aad77fd8fc1e12abe6068036da2e880bd162dc GIT binary patch literal 22488 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 T?!>oK00000NkvXXu0mjft~wxI literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_temperature_chart_card.png b/application/src/main/data/images/widgets/indoor_temperature_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..b349da4f7514c81203b2ac4cdc2b6a4c4a9c04c9 GIT binary patch literal 2003 zcmV;^2Q2uBP)d4aZK4Q+Wu&|M)<1kmtXoT6GvFC%D;JU}{th?%MZEZ$IM%Lc+>gwue zgV;=N(oAj9VDSV<000K&Nkl{%6%2}|NJG}4n|Nk=+Y{d?{ zy1G@WdDlMVz{h+GiKrd$JkRqy&+|O*AFzyCY$cJ^;1IgR2+1I#*r2p+C;_1WA+}&& zpsx14$+D-o?6%i7b$#xnQIJ7P`&tqJvoc8_qa?g;!;FS)oq$GdM6)tl25oyy+px(Z z*jExINZNXaF_5d9K}wA_lMSSVY-mVGsckW6vXWq>bx3T4O^^Vq#1+OshT(1y8YW4S z$pG#pX$VAFQYXpG4Y)~UNc$iw1a|r)Mu3)KC~wS228})lp>{?ZP&a;JYr8>a2|zId zv(VZNvaX|q^g-Ivrl_N6>1IThZAeKiNnIvg5Hw{JU<8&nM~xduU!)<(wy8gopQeF~ zWY=oSR%1Upj+N|r-u;SG{I)d4E-o+@yjWB*1~i5=1jnu-#aNgWDK}7gUZjl0T4-Jw zlRjSniW$QUTyt(jondV@w!`3ROaR<>1EUtbIqRm1X(*=o( z{Cfwpq0E?r#4+3#Pwg8Vv1{TfpavaW=^Xz8ZZ6?@p67X<=XsvzdB1Rlf5Fx3M-y0+ z9q({vo?g71OwK;Y(-$^{1MBe*uJI$z$b7Pe9T$_y7n~CpvP=QCu(gn z(THLtH35PdJx!Eh5L>^%5$K{>EZi}pfDO{L*Ac<2nNgg;Fv#3ipW+CMOL=(-U@ezj z5V=BPOEd^hkz^R;;;5x=HR})S_t>yOW|Bl15CjPD;D$lwlVkT@@*%7#Hm(WKBs15n zgC!o^Fv#o4>CRGreQ|a5>hr5} znW1fv;oke^&HTj^%wOS-cwwf176K5L5Tc540)3F--g|{dI6@qA18^81Unq@~<3SCB zTnv`_5kZuQQ`TMWx60abh7PSI4xqu7&2bBAv$XdYMM{85 zJI?)RQU>Hlr3`R8*~*PWXWA?T_hc1PSnE2W_%+gm*A%@hT;euCP4O3OS0j~S@ar{R zCfUv9LT|lP*LWyozo5>y#aUhJLI1L@XM@J~H6{DxwIp}L?`NA|!`e3~S+_U_$Sn(A z);PK0Z@aD|+SiB-CHZy!!QL>q>`se@bg-}kGFTi#%TOOkcv{zTIFvfdV6CD$!+uRf z@C%W|Y4uz0P!LM$76)#XBp3>6f`?_2jerif-r=N_VM8!9yoiS1mBhr5BJzfw|>}ap?KvKcKA8*{>)ZMhm7Jnv5?&a1*;UEUKIo^=j zX_@`;1x@RQ_LgCWqp;r(@|;a!-Ix}MKc(yNCjpLO7{fsZ|G+=cIfW|lZ%{Ej&-1*K z%F&ClL!~>dIY&C;$DJ_%v2yP?F5>M|kWvn$Qw4ie25?od3e#zScGo&0E=Z9V?#-(l zP*YU=d0v6#h02Xli-McnMPx?1Alzud3wwgj*_e{JAX*o=G^s6bf-o3fVXC+hQ!Y>m zrU1qZVS~hC%IrxD1xEGAGX`)sC_Da5khpuGY|J2(;dvJXaqNQd*%Zig&QgKy*No|Z z!;BEIHUbNwkuQLl3BjM+N@_&PjZqMs8x3F)W1-xPXbmkYd&1~HX22N^5c)hmVi4ny lF)ee?^E}VMq>X^Ju(cE!8Sn4& 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 t#ubDVcNYr^ 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 Bj-~(r literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_temperature_progress_bar.png b/application/src/main/data/images/widgets/indoor_temperature_progress_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..6743671177b5c4e013f0fd363e3832b82314b0ee GIT binary patch literal 1299 zcmV+u1?>8XP)-rYtgNg(Jw0@EbdZpc$H&Lx==kyR z@h>kgSXfw|o}TaT?}34Vy1KgZ^!qhKAME)t8r-ti0-4dDT2TJWFlS zFjvc|sj0})@wvIV_xJb9%gf~H_>raKgPY(=N=oDD_}bs`XM@<()YQYn!@9@rpRngw zcG9b>t7c|q&3hoz00006bW%=J?;yVbudwf$%%lJS1Qba`K~#9!?9agw06+u-z&M7# zhyF{wHo{~(ShzjZc3}>~eO)o%#PiTT(WHT{zxi3Oj?D1B4M7hTutn#C|uIDgTqlx661|9gd7FuX%P^5sgno0Xp$ULkB?bp+8pa21nUPwv!xAM{%R&|8 z=-D1t(@O02sBN2-U|cUEo}R1#OVLBH5P^xlkQ0EwQW(aw=8dxIu(PLu1EC zJxAF0bZmO)z=LrtZDd&(jv{q`<4A$aMT8sfl}KXHWDs_d$4ccWGPdX7E|J+8axPMx zl5FYGo{&yO$~Nl`5fq9gcqJ0}fiPC=`_d0K{3Ege?I|)@3o-^*i&XmRCVv$1F0u%E zDbWS?O(bb|^$g|^9;l=1DYA@N<(_W@aVE=h6bV{R0J^&$|8Ucj7x;PX3AjJ>iY`0XJ6Pj9-yI?9ZVJz%UTN zP0vP=!esr~==jZ#t9+EDUDd}th@afHSZ8b@dxp>c%95gJEm9HDW9#t|AvXdIz& zgvJpXM`#?OafD_+(nhZ-h&Cgwo{a9!sRC#@Qs0|-z{t;j9jrzOLs1ys9Xv~yX|hO2 zkU_-}X6F50t&ovYEljzVFxQ%IquZbB4JI*Le_DwS8odf3!|*}kJ5PFO^eSX%fo(`s zI*{L%eH+q|15^@*%w&tF6NL1Ed&O&0j65WAzeiKdMI6GvXvz_X1nw7`V&oHv3GLpO+U_>{SL)NSVSu+iI;&`Wq&{+p04|$v(FalFK zgj0ucgF*}0e!iZ~%ORL;aHvEBdUNZ4fM8i57XN#*pR0hV6%e%oqEkDuN_bQJXFmoSp_=_tc~cj!*MoT$@{a_R^)fz5xM4CIcW3*1G@z002ov JPDHLkV1kIiXS)CZ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a752d8ea6d6056974531c2d60bd2e02038aacac5 GIT binary patch literal 16653 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background.png b/application/src/main/data/images/widgets/indoor_temperature_progress_bar_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..53cbfe9ea639655b5b95f993649ea085943d2664 GIT binary patch literal 14767 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 KA5>~UBmV^v?hBs) literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.markers_placement_google_maps.png b/application/src/main/data/images/widgets/input_widgets.markers_placement_google_maps.png new file mode 100644 index 0000000000000000000000000000000000000000..e4016df36dfd013563473fe2604a5d6638458be2 GIT binary patch literal 15423 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 p9fbl(*t!tTuo<0 + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lincoln + Harry + Woodlawn + Edgemoor + Oliver + Hillside + Rock + Webb + Central + 13th + 21st + 29th + 37th + 25th + 21st + 13th + Amidon + Arkansas + West + Waco + Mazie + Zoo + 13th + 21st + Nims + Maple + Douglas + + Meridian + Central + Douglas + 47th + Kellogg + McClean + + MacArthur + Seneca + + Pawnee + + Broadway + + diff --git a/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map.png b/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map.png new file mode 100644 index 0000000000000000000000000000000000000000..d7897eac1192e4bda46d6724bf47b2392c457d10 GIT binary patch literal 9675 zcmV;+B{bTJP)CbcFfS1i5vHcRGcz*g=IrX~>eSTV z$jQmVZQ+R)I@q@}xNXJ_&8@v^ePs;aA`q@-lNkm0O<>l(*=I3gAgyX(YCMG2X1qI&T-qhLK*4Eq8 z)Yy}hl{`{j?#4|_OikzN>%+s*#Kg-uI5^sR$IH;Jx4oR5w3L;vkdTmleSTJHbU062p{uf(rK^;nr-g-vPh)OLU20ZVRy;jD zFD)suv%{#ex16S~k&&zm3k%cRvA&9zo`HgbU}0jlo>qW$Q+aPsM?*Qf zzr(n=!?nG^qNca2ms_8&!?C)*w6wjBp}CluvRiqYSa+F#kCixGg-v2?Qc_Zgd{o%C zQOnietGdj(!p2H#kVIyTYu(=B?m*9dx;1bCt3V|g=Rw_c8p=C+>P?=_0Sy^gkYMEK4 zm05P#ec$(e_taB8PxaLE^iNOk%N`-H)}U
- {{ item.title }} + {{ item.title }}
@@ -95,7 +95,7 @@
- {{ item.title }} + {{ item.title }}
diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts index 7e8f31578b..ff9afe6920 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts @@ -28,8 +28,7 @@ import { } from '@shared/models/widget.models'; import { debounceTime, distinctUntilChanged, map, skip } from 'rxjs/operators'; import { BehaviorSubject, combineLatest } from 'rxjs'; -import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; -import { isDefinedAndNotNull, isObject } from '@core/utils'; +import { isObject } from '@core/utils'; import { PageLink } from '@shared/models/page/page-link'; import { Direction } from '@shared/models/page/sort-order'; import { GridEntitiesFetchFunction, ScrollGridColumns } from '@home/models/datasource/scroll-grid-datasource'; @@ -158,8 +157,7 @@ export class DashboardWidgetSelectComponent implements OnInit { widgetsFilter: BundleWidgetsFilter = {search: '', filter: null, deprecatedFilter: DeprecatedFilter.ACTUAL, widgetsBundleId: null}; constructor(private widgetsService: WidgetService, - private cd: ChangeDetectorRef, - private sanitizer: DomSanitizer) { + private cd: ChangeDetectorRef) { this.widgetBundlesFetchFunction = (pageSize, page, filter) => { const pageLink = new PageLink(pageSize, page, filter, { @@ -241,13 +239,6 @@ export class DashboardWidgetSelectComponent implements OnInit { } } - getPreviewImage(imageUrl: string | null): SafeUrl | string { - if (isDefinedAndNotNull(imageUrl)) { - return this.sanitizer.bypassSecurityTrustUrl(imageUrl); - } - return '/assets/widget-preview-empty.svg'; - } - isObject(value: any): boolean { return isObject(value); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/common-maps-utils.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/common-maps-utils.ts index 934f9be6fe..476a755bc2 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/common-maps-utils.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/common-maps-utils.ts @@ -25,10 +25,11 @@ import { isUndefined, padValue } from '@core/utils'; -import { Observable, Observer, of } from 'rxjs'; +import { Observable, Observer, of, switchMap } from 'rxjs'; import { map } from 'rxjs/operators'; import { FormattedData } from '@shared/models/widget.models'; import L from 'leaflet'; +import { ImagePipe } from '@shared/pipe/image.pipe'; export function getRatio(firsMoment: number, secondMoment: number, intermediateMoment: number): number { return (intermediateMoment - firsMoment) / (secondMoment - firsMoment); @@ -71,44 +72,59 @@ export function getDefCenterPosition(position): [number, number] { } -const imageAspectMap = {}; - -function imageLoader(imageUrl: string): Observable { - return new Observable((observer: Observer) => { - const image = document.createElement('img'); // support IE - image.style.position = 'absolute'; - image.style.left = '-99999px'; - image.style.top = '-99999px'; - image.onload = () => { - observer.next(image); - document.body.removeChild(image); - observer.complete(); - }; - image.onerror = err => { - observer.error(err); - document.body.removeChild(image); - observer.complete(); - }; - document.body.appendChild(image); - image.src = imageUrl; - }); +const imageAspectMap: {[key: string]: ImageWithAspect} = {}; + +const imageLoader = (imageUrl: string): Observable => new Observable((observer: Observer) => { + const image = document.createElement('img'); // support IE + image.style.position = 'absolute'; + image.style.left = '-99999px'; + image.style.top = '-99999px'; + image.onload = () => { + observer.next(image); + document.body.removeChild(image); + observer.complete(); + }; + image.onerror = err => { + observer.error(err); + document.body.removeChild(image); + observer.complete(); + }; + document.body.appendChild(image); + image.src = imageUrl; +}); + +const loadImageAspect = (imageUrl: string): Observable => + imageLoader(imageUrl).pipe(map(image => image.width / image.height)); + +export interface ImageWithAspect { + url: string; + aspect: number; } -export function aspectCache(imageUrl: string): Observable { +export const loadImageWithAspect = (imagePipe: ImagePipe, imageUrl: string): Observable => { if (imageUrl?.length) { const hash = hashCode(imageUrl); - let aspect = imageAspectMap[hash]; - if (aspect) { - return of(aspect); + let imageWithAspect = imageAspectMap[hash]; + if (imageWithAspect) { + return of(imageWithAspect); + } else { + return imagePipe.transform(imageUrl, {asString: true, ignoreLoadingImage: true}).pipe( + switchMap((res) => { + const url = res as string; + return loadImageAspect(url).pipe( + map((aspect) => { + imageWithAspect = {url, aspect}; + imageAspectMap[hash] = imageWithAspect; + return imageWithAspect; + }) + ); + }) + ); } - return imageLoader(imageUrl).pipe(map(image => { - aspect = image.width / image.height; - imageAspectMap[hash] = aspect; - return aspect; - })); + } else { + return of(null); } - return of(0); -} +}; export type TranslateFunc = (key: string, defaultTranslation?: string) => string; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/markers.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/markers.ts index 5a4c80b12c..29d92b2057 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/markers.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/markers.ts @@ -17,11 +17,12 @@ import L, { LeafletMouseEvent } from 'leaflet'; import { MarkerIconInfo, MarkerIconReadyFunction, MarkerImageInfo, WidgetMarkersSettings, } from './map-models'; import { bindPopupActions, createTooltip } from './maps-utils'; -import { aspectCache, parseWithTranslation } from './common-maps-utils'; +import { loadImageWithAspect, parseWithTranslation } from './common-maps-utils'; import tinycolor from 'tinycolor2'; import { fillDataPattern, isDefined, isDefinedAndNotNull, processDataPattern, safeExecute } from '@core/utils'; import LeafletMap from './leaflet-map'; import { FormattedData } from '@shared/models/widget.models'; +import { ImagePipe } from '@shared/pipe/image.pipe'; export class Marker { @@ -167,16 +168,16 @@ export class Marker { } } if (currentImage && currentImage.url) { - aspectCache(currentImage.url).subscribe( - (aspect) => { - if (aspect) { + loadImageWithAspect(this.map.ctx.$injector.get(ImagePipe), currentImage.url).subscribe( + (aspectImage) => { + if (aspectImage?.aspect) { let width; let height; - if (aspect > 1) { + if (aspectImage.aspect > 1) { width = currentImage.size; - height = currentImage.size / aspect; + height = currentImage.size / aspectImage.aspect; } else { - width = currentImage.size * aspect; + width = currentImage.size * aspectImage.aspect; height = currentImage.size; } let iconAnchor = currentImage.markerOffset; @@ -188,7 +189,7 @@ export class Marker { popupAnchor = [width * this.tooltipOffset[0], height * this.tooltipOffset[1]]; } const icon = L.icon({ - iconUrl: currentImage.url, + iconUrl: aspectImage.url, iconSize: [width, height], iconAnchor, popupAnchor @@ -237,7 +238,15 @@ export class Marker { } createColorIconURI(color: tinycolor.Instance): string { - const svg = ``; + const svg = `` + + ``; return 'data:image/svg+xml;base64,' + btoa(svg); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts index be6ee64753..1a05ec547b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts @@ -23,11 +23,10 @@ import { PosFunction, WidgetUnitedMapSettings } from '../map-models'; -import { Observable, ReplaySubject } from 'rxjs'; +import { Observable, of, ReplaySubject, switchMap } from 'rxjs'; import { catchError, map, mergeMap } from 'rxjs/operators'; import { - aspectCache, - calculateNewPointCoordinate + calculateNewPointCoordinate, loadImageWithAspect } from '@home/components/widget/lib/maps/common-maps-utils'; import { WidgetContext } from '@home/models/widget-component.models'; import { DataSet, DatasourceType, FormattedData, widgetType } from '@shared/models/widget.models'; @@ -35,6 +34,7 @@ import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { WidgetSubscriptionOptions } from '@core/api/widget-api.models'; import { isDefinedAndNotNull, isEmptyStr, isNotEmptyStr, parseFunction } from '@core/utils'; import { EntityDataPageLink } from '@shared/models/query/query.models'; +import { ImagePipe } from '@shared/pipe/image.pipe'; const maxZoom = 4; // ? @@ -122,39 +122,43 @@ export class ImageMap extends LeafletMap { } private imageFromUrl(url: string): Observable { - return aspectCache(url).pipe( - map( aspect => { - const mapImage: MapImage = { - imageUrl: url, - aspect, - update: false - }; - return mapImage; + return loadImageWithAspect(this.ctx.$injector.get(ImagePipe), url).pipe( + switchMap( aspectImage => { + if (aspectImage) { + return of({ + imageUrl: aspectImage.url, + aspect: aspectImage.aspect, + update: false + }); + } else { + return this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl); + } } ), - catchError((e) => { - return this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl); - }) + catchError((e) => this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl)) ); } private imageFromAlias(alias: Observable<[DataSet, boolean]>): Observable { return alias.pipe( - mergeMap(res => { + switchMap(res => { + const url = res[0][0][1]; const mapImage: MapImage = { - imageUrl: res[0][0][1], + imageUrl: null, aspect: null, update: res[1] }; - return aspectCache(mapImage.imageUrl).pipe( - map((aspect) => { - mapImage.aspect = aspect; - return mapImage; - } - ), - catchError((e) => { - return this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl); - }) + return loadImageWithAspect(this.ctx.$injector.get(ImagePipe), url).pipe( + switchMap((aspectImage) => { + if (aspectImage) { + mapImage.aspect = aspectImage.aspect; + mapImage.imageUrl = aspectImage.url; + return of(mapImage); + } else { + return this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl); + } + }), + catchError((e) => this.imageFromUrl(defaultImageMapProviderSettings.mapImageUrl)) ); }) ); @@ -249,7 +253,7 @@ export class ImageMap extends LeafletMap { } } - extractPosition(data: FormattedData): {x: number, y: number} { + extractPosition(data: FormattedData): {x: number; y: number} { if (!data) { return null; } @@ -261,7 +265,7 @@ export class ImageMap extends LeafletMap { return {x: xPos, y: yPos}; } - positionToLatLng(position: {x: number, y: number}): L.LatLng { + positionToLatLng(position: {x: number; y: number}): L.LatLng { return this.pointToLatLng( position.x * this.width, position.y * this.height); diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html index fdd49c4a61..f9f4990d21 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html @@ -62,7 +62,7 @@
- {{ widget.name }} + {{ widget.name }}
{{ widget.name }}
{{ 'widget.deprecated' | translate }}
diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts index cc54c53901..23cc43bada 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts @@ -28,8 +28,6 @@ import { widgetType as WidgetDataType, WidgetTypeInfo } from '@shared/models/wid import { CdkDragDrop } from '@angular/cdk/drag-drop'; import { ImportExportService } from '@home/components/import-export/import-export.service'; import { WidgetService } from '@core/http/widget.service'; -import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; -import { isDefinedAndNotNull } from '@core/utils'; import { FormControl, Validators } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { SelectWidgetTypeDialogComponent } from '@home/pages/widget/select-widget-type-dialog.component'; @@ -61,7 +59,6 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn private route: ActivatedRoute, private widgetsService: WidgetService, private importExport: ImportExportService, - private sanitizer: DomSanitizer, private cd: ChangeDetectorRef, private dialog: MatDialog) { super(store); @@ -86,13 +83,6 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn ngOnInit(): void { } - getPreviewImage(imageUrl: string | null): SafeUrl | string { - if (isDefinedAndNotNull(imageUrl)) { - return this.sanitizer.bypassSecurityTrustUrl(imageUrl); - } - return '/assets/widget-preview-empty.svg'; - } - trackByWidget(index: number, widget: WidgetTypeBundle): any { return widget; } diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index 3014711d57..e494e3842e 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -17,6 +17,8 @@ import { BaseData, ExportableEntity } from '@shared/models/base-data'; import { TenantId } from '@shared/models/id/tenant-id'; import { TbResourceId } from '@shared/models/id/tb-resource-id'; +import { NULL_UUID } from '@shared/models/id/has-uuid'; +import { BaseWidgetType } from '@shared/models/widget.models'; export enum ResourceType { LWM2M_MODEL = 'LWM2M_MODEL', @@ -55,15 +57,40 @@ export const ResourceTypeTranslationMap = new Map( ] ); -export interface ResourceInfo extends Omit, 'name' | 'label'>, ExportableEntity { +export interface TbResourceInfo extends Omit, 'name' | 'label'>, ExportableEntity { tenantId?: TenantId; resourceKey?: string; title?: string; resourceType: ResourceType; fileName: string; + descriptor?: D; } +export type ResourceInfo = TbResourceInfo; + export interface Resource extends ResourceInfo { data: string; name?: string; } + +export interface ImageDescriptor { + mediaType: string; + width: number; + height: number; + size: number; + etag: string; + previewDescriptor: ImageDescriptor; +} + +export type ImageResourceInfo = TbResourceInfo; + +export type ImageResourceType = 'tenant' | 'system'; + +export const imageResourceType = (imageInfo: ImageResourceInfo): ImageResourceType => + (!imageInfo.tenantId || imageInfo.tenantId?.id === NULL_UUID) ? 'system' : 'tenant'; + +export const IMAGES_URL_PREFIX = '/api/images'; + +export const isImageResourceUrl = (url: string): boolean => url && url.startsWith(IMAGES_URL_PREFIX); + +export const NO_IMAGE_DATA_URI = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; diff --git a/ui-ngx/src/app/shared/pipe/image.pipe.ts b/ui-ngx/src/app/shared/pipe/image.pipe.ts new file mode 100644 index 0000000000..fb54cb6985 --- /dev/null +++ b/ui-ngx/src/app/shared/pipe/image.pipe.ts @@ -0,0 +1,52 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Pipe, PipeTransform } from '@angular/core'; +import { ImageService } from '@core/http/image.service'; +import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; +import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; +import { isDefinedAndNotNull } from '@core/utils'; +import { NO_IMAGE_DATA_URI } from '@shared/models/resource.models'; + +const LOADING_IMAGE_DATA_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDIwIDIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgo='; + +@Pipe({ + name: 'image' +}) +export class ImagePipe implements PipeTransform { + + constructor(private imageService: ImageService, + private sanitizer: DomSanitizer) { } + + transform(url: string, args?: any): Observable { + const ignoreLoadingImage = !!args?.ignoreLoadingImage; + const asString = !!args?.asString; + const image$ = ignoreLoadingImage ? new Subject() : new BehaviorSubject(LOADING_IMAGE_DATA_URI); + if (isDefinedAndNotNull(url)) { + const preview = !!args?.preview; + this.imageService.resolveImageUrl(url, preview, asString).subscribe((imageUrl) => { + image$.next(imageUrl); + image$.complete(); + }); + } else { + const emptyUrl = args?.emptyUrl || NO_IMAGE_DATA_URI; + image$.next(asString ? emptyUrl : this.sanitizer.bypassSecurityTrustUrl(emptyUrl)); + image$.complete(); + } + return image$.asObservable(); + } + +} diff --git a/ui-ngx/src/app/shared/pipe/public-api.ts b/ui-ngx/src/app/shared/pipe/public-api.ts index 9ba3be3610..f03d669345 100644 --- a/ui-ngx/src/app/shared/pipe/public-api.ts +++ b/ui-ngx/src/app/shared/pipe/public-api.ts @@ -23,3 +23,4 @@ export * from './nospace.pipe'; export * from './truncate.pipe'; export * from './file-size.pipe'; export * from './selectable-columns.pipe'; +export * from './image.pipe'; diff --git a/ui-ngx/src/app/shared/shared.module.ts b/ui-ngx/src/app/shared/shared.module.ts index 042e453fe1..f1302e0b24 100644 --- a/ui-ngx/src/app/shared/shared.module.ts +++ b/ui-ngx/src/app/shared/shared.module.ts @@ -200,6 +200,7 @@ import { ColorPickerPanelComponent } from '@shared/components/color-picker/color import { TbIconComponent } from '@shared/components/icon.component'; import { HintTooltipIconComponent } from '@shared/components/hint-tooltip-icon.component'; import { StringAutocompleteComponent } from '@shared/components/string-autocomplete.component'; +import { ImagePipe } from '@shared/pipe/image.pipe'; export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) { return markedOptionsService; @@ -217,6 +218,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) DateAgoPipe, SafePipe, ShortNumberPipe, + ImagePipe, { provide: FlowInjectionToken, useValue: Flow @@ -340,6 +342,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) TbJsonPipe, FileSizePipe, DateAgoPipe, + ImagePipe, SafePipe, ShortNumberPipe, SelectableColumnsPipe, @@ -576,6 +579,7 @@ export function MarkedOptionsFactory(markedOptionsService: MarkedOptionsService) KeyboardShortcutPipe, FileSizePipe, DateAgoPipe, + ImagePipe, SafePipe, ShortNumberPipe, SelectableColumnsPipe, From 336161e1a2101ad442570021699fa15c73319089 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Fri, 17 Nov 2023 17:36:22 +0200 Subject: [PATCH 074/162] Added fix for docker command for gateway launch command and support for ipv6 adresses in device connectivity --- .../DeviceConnectivityController.java | 2 +- .../DeviceConnectivityControllerTest.java | 271 ++++++++++++------ .../device/DeviceConnectivityServiceImpl.java | 20 +- .../dao/util/DeviceConnectivityUtil.java | 50 +++- 4 files changed, 235 insertions(+), 108 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java b/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java index 83d4d16034..dca113621c 100644 --- a/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java +++ b/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java @@ -106,7 +106,7 @@ public class DeviceConnectivityController extends BaseController { @RequestMapping(value = "/device-connectivity/gateway-launch/{deviceId}", method = RequestMethod.GET) @ResponseBody public JsonNode getGatewayLaunchCommands(@ApiParam(value = DEVICE_ID_PARAM_DESCRIPTION) - @PathVariable(DEVICE_ID) String strDeviceId, HttpServletRequest request) throws ThingsboardException, URISyntaxException { + @PathVariable(DEVICE_ID) String strDeviceId, HttpServletRequest request) throws ThingsboardException, URISyntaxException { checkParameter(DEVICE_ID, strDeviceId); DeviceId deviceId = new DeviceId(toUUID(strDeviceId)); Device device = checkDeviceId(deviceId, Operation.READ_CREDENTIALS); diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java index 227d37f483..b629408855 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java @@ -18,8 +18,6 @@ package org.thingsboard.server.controller; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.util.concurrent.ListeningExecutorService; -import com.google.common.util.concurrent.MoreExecutors; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -32,7 +30,6 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.common.util.ThingsBoardExecutors; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; @@ -46,7 +43,6 @@ import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileCon import org.thingsboard.server.common.data.device.profile.DeviceProfileData; import org.thingsboard.server.common.data.device.profile.MqttDeviceProfileTransportConfiguration; import org.thingsboard.server.common.data.id.DeviceProfileId; -import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; @@ -58,14 +54,16 @@ import java.nio.file.Path; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_ROOT_CERT_PEM; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAP; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.COAPS; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.DOCKER; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.HTTP; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.HTTPS; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.LINUX; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTT; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTTS; -import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_ROOT_CERT_PEM; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.WINDOWS; @TestPropertySource(properties = { "device.connectivity.mqtts.pem_cert_file=/tmp/" + CA_ROOT_CERT_PEM @@ -294,6 +292,140 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { DEVICE_TELEMETRY_TOPIC, credentials.getCredentialsId())); } + @Test + public void testFetchGatewayLaunchCommands() throws Exception { + Device device = new Device(); + device.setName("My device"); + device.setType("default"); + ObjectNode additionalInfo = JacksonUtil.newObjectNode(); + additionalInfo.put("gateway", true); + device.setAdditionalInfo(additionalInfo); + Device savedDevice = doPost("/api/device", device, Device.class); + DeviceCredentials credentials = + doGet("/api/device/" + savedDevice.getId().getId() + "/credentials", DeviceCredentials.class); + + JsonNode commands = + doGetTyped("/api/device-connectivity/gateway-launch/" + savedDevice.getId().getId(), new TypeReference<>() { + }); + + JsonNode dockerMqttCommands = commands.get(MQTT); + assertThat(dockerMqttCommands.get(LINUX).asText()).isEqualTo(String.format("docker run -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --network=host -p 5000:5000 --name tbGatewayLocalhost -e host=localhost -e port=1883 -e accessToken=%s --restart always thingsboard/tb-gateway", credentials.getCredentialsId())); + assertThat(dockerMqttCommands.get(WINDOWS).asText()).isEqualTo("docker run -it -v %HOMEPATH%/tb-gateway/logs:/thingsboard_gateway/logs -v %HOMEPATH%/tb-gateway/extensions:/thingsboard_gateway/extensions -v %HOMEPATH%/tb-gateway/config:/thingsboard_gateway/config --network=host -p 5000:5000 --name tbGatewayLocalhost -e host=localhost -e port=1883 -e accessToken=" + credentials.getCredentialsId() + " --restart always thingsboard/tb-gateway"); + + JsonNode dockerMqttsCommands = commands.get(MQTTS); + assertThat(dockerMqttsCommands.get(LINUX).asText()).isEqualTo(String.format("docker run -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --network=host -p 5000:5000 --name tbGatewayLocalhost -e host=localhost -e port=8883 -e accessToken=%s --restart always thingsboard/tb-gateway", credentials.getCredentialsId())); + assertThat(dockerMqttsCommands.get(WINDOWS).asText()).isEqualTo("docker run -it -v %HOMEPATH%/tb-gateway/logs:/thingsboard_gateway/logs -v %HOMEPATH%/tb-gateway/extensions:/thingsboard_gateway/extensions -v %HOMEPATH%/tb-gateway/config:/thingsboard_gateway/config --network=host -p 5000:5000 --name tbGatewayLocalhost -e host=localhost -e port=8883 -e accessToken=" + credentials.getCredentialsId() + " --restart always thingsboard/tb-gateway"); + } + + @Test + public void testFetchPublishTelemetryCommandsForDeviceWithIpV6LocalhostAddress() throws Exception { + loginSysAdmin(); + setConnectivityHost("::1"); + loginTenantAdmin(); + + Device device = new Device(); + device.setName("My device"); + device.setType("default"); + Device savedDevice = doPost("/api/device", device, Device.class); + DeviceCredentials credentials = + doGet("/api/device/" + savedDevice.getId().getId() + "/credentials", DeviceCredentials.class); + + JsonNode commands = + doGetTyped("/api/device-connectivity/" + savedDevice.getId().getId(), new TypeReference<>() { + }); + + assertThat(commands).hasSize(3); + JsonNode httpCommands = commands.get(HTTP); + assertThat(httpCommands.get(HTTP).asText()).isEqualTo(String.format("curl -v -X POST http://localhost:8080/api/v1/%s/telemetry " + + "--header Content-Type:application/json --data \"{temperature:25}\"", + credentials.getCredentialsId())); + assertThat(httpCommands.get(HTTPS).asText()).isEqualTo(String.format("curl -v -X POST https://localhost/api/v1/%s/telemetry " + + "--header Content-Type:application/json --data \"{temperature:25}\"", + credentials.getCredentialsId())); + + JsonNode mqttCommands = commands.get(MQTT); + assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h localhost -p 1883 -t v1/devices/me/telemetry " + + "-u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 " + + "-t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + + JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); + assertThat(dockerMqttCommands.get(MQTT).asText()).isEqualTo(String.format("docker run --rm -it --network=host thingsboard/mosquitto-clients mosquitto_pub -d -q 1 -h localhost" + + " -p 1883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it --network=host thingsboard/mosquitto-clients " + + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"\"", + credentials.getCredentialsId())); + + JsonNode linuxCoapCommands = commands.get(COAP); + assertThat(linuxCoapCommands.get(COAP).asText()).isEqualTo(String.format("coap-client -v 6 -m POST coap://localhost:5683/api/v1/%s/telemetry " + + "-t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(linuxCoapCommands.get(COAPS).asText()).isEqualTo(String.format("coap-client-openssl -v 6 -m POST coaps://localhost:5684/api/v1/%s/telemetry" + + " -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + + JsonNode dockerCoapCommands = commands.get(COAP).get(DOCKER); + assertThat(dockerCoapCommands.get(COAP).asText()).isEqualTo(String.format("docker run --rm -it --network=host" + + " thingsboard/coap-clients coap-client -v 6 -m POST coap://localhost:5683/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(dockerCoapCommands.get(COAPS).asText()).isEqualTo(String.format("docker run --rm -it --network=host" + + " thingsboard/coap-clients coap-client-openssl -v 6 -m POST coaps://localhost:5684/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + } + + @Test + public void testFetchPublishTelemetryCommandsForDeviceWithIpV6Address() throws Exception { + + loginSysAdmin(); + setConnectivityHost("1:1:1:1:1:1:1:1"); + loginTenantAdmin(); + + Device device = new Device(); + device.setName("My device"); + device.setType("default"); + Device savedDevice = doPost("/api/device", device, Device.class); + DeviceCredentials credentials = + doGet("/api/device/" + savedDevice.getId().getId() + "/credentials", DeviceCredentials.class); + + JsonNode commands = + doGetTyped("/api/device-connectivity/" + savedDevice.getId().getId(), new TypeReference<>() { + }); + assertThat(commands).hasSize(3); + JsonNode httpCommands = commands.get(HTTP); + assertThat(httpCommands.get(HTTP).asText()).isEqualTo(String.format("curl -v -X POST http://[1:1:1:1:1:1:1:1]:8080/api/v1/%s/telemetry " + + "--header Content-Type:application/json --data \"{temperature:25}\"", + credentials.getCredentialsId())); + assertThat(httpCommands.get(HTTPS).asText()).isEqualTo(String.format("curl -v -X POST https://[1:1:1:1:1:1:1:1]/api/v1/%s/telemetry " + + "--header Content-Type:application/json --data \"{temperature:25}\"", + credentials.getCredentialsId())); + + JsonNode mqttCommands = commands.get(MQTT); + assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h 1:1:1:1:1:1:1:1 -p 1883 -t v1/devices/me/telemetry " + + "-u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h 1:1:1:1:1:1:1:1 -p 8883 " + + "-t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + + JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); + assertThat(dockerMqttCommands.get(MQTT).asText()).isEqualTo(String.format("docker run --rm -it thingsboard/mosquitto-clients mosquitto_pub -d -q 1 -h 1:1:1:1:1:1:1:1" + + " -p 1883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it thingsboard/mosquitto-clients " + + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h 1:1:1:1:1:1:1:1 -p 8883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"\"", + credentials.getCredentialsId())); + + JsonNode linuxCoapCommands = commands.get(COAP); + assertThat(linuxCoapCommands.get(COAP).asText()).isEqualTo(String.format("coap-client -v 6 -m POST coap://[1:1:1:1:1:1:1:1]:5683/api/v1/%s/telemetry " + + "-t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(linuxCoapCommands.get(COAPS).asText()).isEqualTo(String.format("coap-client-openssl -v 6 -m POST coaps://[1:1:1:1:1:1:1:1]:5684/api/v1/%s/telemetry" + + " -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + + JsonNode dockerCoapCommands = commands.get(COAP).get(DOCKER); + assertThat(dockerCoapCommands.get(COAP).asText()).isEqualTo(String.format("docker run --rm -it" + + " thingsboard/coap-clients coap-client -v 6 -m POST coap://[1:1:1:1:1:1:1:1]:5683/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + assertThat(dockerCoapCommands.get(COAPS).asText()).isEqualTo(String.format("docker run --rm -it" + + " thingsboard/coap-clients coap-client-openssl -v 6 -m POST coaps://[1:1:1:1:1:1:1:1]:5684/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + + } + @Test public void testFetchPublishTelemetryCommandsForDeviceWithMqttBasicCreds() throws Exception { Device device = new Device(); @@ -449,47 +581,7 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { public void testFetchPublishTelemetryCommandsForDefaultDeviceIfPortsSetToDefault() throws Exception { loginSysAdmin(); - ObjectNode config = JacksonUtil.newObjectNode(); - - ObjectNode http = JacksonUtil.newObjectNode(); - http.put("enabled", true); - http.put("host", ""); - http.put("port", 80); - config.set("http", http); - - ObjectNode https = JacksonUtil.newObjectNode(); - https.put("enabled", true); - https.put("host", ""); - https.put("port", 443); - config.set("https", https); - - ObjectNode mqtt = JacksonUtil.newObjectNode(); - mqtt.put("enabled", false); - mqtt.put("host", ""); - mqtt.put("port", 1883); - config.set("mqtt", mqtt); - - ObjectNode mqtts = JacksonUtil.newObjectNode(); - mqtts.put("enabled", false); - mqtts.put("host", ""); - mqtts.put("port", 8883); - config.set("mqtts", mqtts); - - ObjectNode coap = JacksonUtil.newObjectNode(); - coap.put("enabled", false); - coap.put("host", ""); - coap.put("port", 5683); - config.set("coap", coap); - - ObjectNode coaps = JacksonUtil.newObjectNode(); - coaps.put("enabled", false); - coaps.put("host", ""); - coaps.put("port", 5684); - config.set("coaps", coaps); - - AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class); - adminSettings.setJsonValue(config); - doPost("/api/admin/settings", adminSettings).andExpect(status().isOk()); + setConnectivityHost(""); login("tenant2@thingsboard.org", "testPassword1"); @@ -518,47 +610,7 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { public void testFetchPublishTelemetryCommandsForDefaultDeviceIfHostIsNotLocalhost() throws Exception { loginSysAdmin(); - ObjectNode config = JacksonUtil.newObjectNode(); - - ObjectNode http = JacksonUtil.newObjectNode(); - http.put("enabled", true); - http.put("host", "test.domain"); - http.put("port", 8080); - config.set("http", http); - - ObjectNode https = JacksonUtil.newObjectNode(); - https.put("enabled", true); - https.put("host", "test.domain"); - https.put("port", 443); - config.set("https", https); - - ObjectNode mqtt = JacksonUtil.newObjectNode(); - mqtt.put("enabled", true); - mqtt.put("host", "test.domain"); - mqtt.put("port", 1883); - config.set("mqtt", mqtt); - - ObjectNode mqtts = JacksonUtil.newObjectNode(); - mqtts.put("enabled", true); - mqtts.put("host", "test.domain"); - mqtts.put("port", 8883); - config.set("mqtts", mqtts); - - ObjectNode coap = JacksonUtil.newObjectNode(); - coap.put("enabled", true); - coap.put("host", "test.domain"); - coap.put("port", 5683); - config.set("coap", coap); - - ObjectNode coaps = JacksonUtil.newObjectNode(); - coaps.put("enabled", true); - coaps.put("host", "test.domain"); - coaps.put("port", 5684); - config.set("coaps", coaps); - - AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class); - adminSettings.setJsonValue(config); - doPost("/api/admin/settings", adminSettings).andExpect(status().isOk()); + setConnectivityHost("test.domain"); login("tenant2@thingsboard.org", "testPassword1"); @@ -612,4 +664,49 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { assertThat(dockerCoapCommands.get(COAPS).asText()).isEqualTo(String.format("docker run --rm -it " + "thingsboard/coap-clients coap-client-openssl -v 6 -m POST coaps://test.domain:5684/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); } + + + private void setConnectivityHost(String host) throws Exception { + ObjectNode config = JacksonUtil.newObjectNode(); + + ObjectNode http = JacksonUtil.newObjectNode(); + http.put("enabled", true); + http.put("host", host); + http.put("port", 8080); + config.set("http", http); + + ObjectNode https = JacksonUtil.newObjectNode(); + https.put("enabled", true); + https.put("host", host); + https.put("port", 443); + config.set("https", https); + + ObjectNode mqtt = JacksonUtil.newObjectNode(); + mqtt.put("enabled", true); + mqtt.put("host", host); + mqtt.put("port", 1883); + config.set("mqtt", mqtt); + + ObjectNode mqtts = JacksonUtil.newObjectNode(); + mqtts.put("enabled", true); + mqtts.put("host", host); + mqtts.put("port", 8883); + config.set("mqtts", mqtts); + + ObjectNode coap = JacksonUtil.newObjectNode(); + coap.put("enabled", true); + coap.put("host", host); + coap.put("port", 5683); + config.set("coap", coap); + + ObjectNode coaps = JacksonUtil.newObjectNode(); + coaps.put("enabled", true); + coaps.put("host", host); + coaps.put("port", 5684); + config.set("coaps", coaps); + + AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class); + adminSettings.setJsonValue(config); + doPost("/api/admin/settings", adminSettings).andExpect(status().isOk()); + } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java index 9f67093529..58f2f352d7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceConnectivityServiceImpl.java @@ -43,7 +43,6 @@ import org.thingsboard.server.dao.util.DeviceConnectivityUtil; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -64,6 +63,7 @@ import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.LINUX; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTT; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTTS; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.WINDOWS; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.getHost; @Service("DeviceConnectivityDaoService") @Slf4j @@ -230,7 +230,7 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService deviceCredentials.getCredentialsType() != DeviceCredentialsType.ACCESS_TOKEN) { return null; } - String hostName = getHost(baseUrl, properties); + String hostName = getHost(baseUrl, properties, protocol); String propertiesPort = properties.getPort(); String port = (propertiesPort.isEmpty() || HTTP_DEFAULT_PORT.equals(propertiesPort) || HTTPS_DEFAULT_PORT.equals(propertiesPort)) ? "" : ":" + propertiesPort; @@ -278,14 +278,14 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService private String getMqttPublishCommand(String baseUrl, String deviceTelemetryTopic, DeviceCredentials deviceCredentials) throws URISyntaxException { DeviceConnectivityInfo properties = getConnectivity(MQTT); - String mqttHost = getHost(baseUrl, properties); + String mqttHost = getHost(baseUrl, properties, MQTT); String mqttPort = properties.getPort().isEmpty() ? null : properties.getPort(); return DeviceConnectivityUtil.getMqttPublishCommand(MQTT, mqttHost, mqttPort, deviceTelemetryTopic, deviceCredentials); } private List getMqttsPublishCommand(String baseUrl, String deviceTelemetryTopic, DeviceCredentials deviceCredentials) throws URISyntaxException { DeviceConnectivityInfo properties = getConnectivity(MQTTS); - String mqttHost = getHost(baseUrl, properties); + String mqttHost = getHost(baseUrl, properties, MQTTS); String mqttPort = properties.getPort().isEmpty() ? null : properties.getPort(); String pubCommand = DeviceConnectivityUtil.getMqttPublishCommand(MQTTS, mqttHost, mqttPort, deviceTelemetryTopic, deviceCredentials); @@ -301,7 +301,7 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService private JsonNode getGatewayDockerCommands(String baseUrl, DeviceCredentials deviceCredentials, String mqttType) throws URISyntaxException { ObjectNode dockerLaunchCommands = JacksonUtil.newObjectNode(); DeviceConnectivityInfo properties = getConnectivity(mqttType); - String mqttHost = getHost(baseUrl, properties); + String mqttHost = getHost(baseUrl, properties, mqttType); String mqttPort = properties.getPort().isEmpty() ? null : properties.getPort(); Optional.ofNullable(DeviceConnectivityUtil.getGatewayLaunchCommand(LINUX, mqttHost, mqttPort, deviceCredentials)) .ifPresent(v -> dockerLaunchCommands.put(LINUX, v)); @@ -312,7 +312,7 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService private String getDockerMqttPublishCommand(String protocol, String baseUrl, String deviceTelemetryTopic, DeviceCredentials deviceCredentials) throws URISyntaxException { DeviceConnectivityInfo properties = getConnectivity(protocol); - String mqttHost = getHost(baseUrl, properties); + String mqttHost = getHost(baseUrl, properties, protocol); String mqttPort = properties.getPort().isEmpty() ? null : properties.getPort(); return DeviceConnectivityUtil.getDockerMqttPublishCommand(protocol, baseUrl, mqttHost, mqttPort, deviceTelemetryTopic, deviceCredentials); } @@ -352,20 +352,16 @@ public class DeviceConnectivityServiceImpl implements DeviceConnectivityService private String getCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException { DeviceConnectivityInfo properties = getConnectivity(protocol); - String hostName = getHost(baseUrl, properties); + String hostName = getHost(baseUrl, properties, protocol); String port = properties.getPort().isEmpty() ? "" : ":" + properties.getPort(); return DeviceConnectivityUtil.getCoapPublishCommand(protocol, hostName, port, deviceCredentials); } private String getDockerCoapPublishCommand(String protocol, String baseUrl, DeviceCredentials deviceCredentials) throws URISyntaxException { DeviceConnectivityInfo properties = getConnectivity(protocol); - String host = getHost(baseUrl, properties); + String host = getHost(baseUrl, properties, protocol); String port = properties.getPort().isEmpty() ? "" : ":" + properties.getPort(); return DeviceConnectivityUtil.getDockerCoapPublishCommand(protocol, host, port, deviceCredentials); } - private String getHost(String baseUrl, DeviceConnectivityInfo properties) throws URISyntaxException { - return properties.getHost().isEmpty() ? new URI(baseUrl).getHost() : properties.getHost(); - } - } diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index aa446c12b5..f905a9d288 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -19,9 +19,14 @@ import org.apache.commons.lang3.StringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.device.credentials.BasicMqttCredentials; import org.thingsboard.server.common.data.security.DeviceCredentials; +import org.thingsboard.server.dao.device.DeviceConnectivityInfo; -import java.util.Arrays; -import java.util.List; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.UnknownHostException; +import java.util.regex.Pattern; public class DeviceConnectivityUtil { @@ -41,7 +46,7 @@ public class DeviceConnectivityUtil { public static final String GATEWAY_DOCKER_RUN = "docker run -it "; public static final String MQTT_IMAGE = "thingsboard/mosquitto-clients "; public static final String COAP_IMAGE = "thingsboard/coap-clients "; - public static final List LOCAL_HOSTS = Arrays.asList("localhost", "127.0.0.1"); + private final static Pattern VALID_URL_PATTERN = Pattern.compile("^(http|https|ftp)://.*$"); public static String getHttpPublishCommand(String protocol, String host, String port, DeviceCredentials deviceCredentials) { return String.format("curl -v -X POST %s://%s%s/api/v1/%s/telemetry --header Content-Type:application/json --data " + JSON_EXAMPLE_PAYLOAD, @@ -71,7 +76,7 @@ public class DeviceConnectivityUtil { command.append(" -u \"").append(credentials.getUserName()).append("\""); } if (credentials.getPassword() != null) { - command.append(" -P \"").append(credentials.getPassword()).append("\"");; + command.append(" -P \"").append(credentials.getPassword()).append("\""); } } else { return null; @@ -90,17 +95,19 @@ public class DeviceConnectivityUtil { gatewayVolumePathPrefix = "%HOMEPATH%/tb-gateway"; } - String gatewayContainerName = "tbGateway" + StringUtils.capitalize(host.replace(".", "")); + String gatewayContainerName = "tbGateway" + StringUtils.capitalize(host.replaceAll("[^A-Za-z0-9]", "")); StringBuilder command = new StringBuilder(GATEWAY_DOCKER_RUN); command.append("-v {gatewayVolumePathPrefix}/logs:/thingsboard_gateway/logs".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); command.append(" -v {gatewayVolumePathPrefix}/extensions:/thingsboard_gateway/extensions".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); command.append(" -v {gatewayVolumePathPrefix}/config:/thingsboard_gateway/config".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); + command.append(isLocalhost(host) ? " --network=host" : ""); + command.append(" -p 5000:5000"); command.append(" --name ").append(gatewayContainerName); command.append(" -e host=").append(host); command.append(" -e port=").append(port); - switch(deviceCredentials.getCredentialsType()) { + switch (deviceCredentials.getCredentialsType()) { case ACCESS_TOKEN: command.append(" -e accessToken=").append(deviceCredentials.getCredentialsId()); break; @@ -139,7 +146,7 @@ public class DeviceConnectivityUtil { } StringBuilder mqttDockerCommand = new StringBuilder(); - mqttDockerCommand.append(DOCKER_RUN).append(LOCAL_HOSTS.contains(host) ? "--network=host ":"").append(MQTT_IMAGE); + mqttDockerCommand.append(DOCKER_RUN).append(isLocalhost(host) ? "--network=host " : "").append(MQTT_IMAGE); if (MQTTS.equals(protocol)) { mqttDockerCommand.append("/bin/sh -c \"") @@ -171,6 +178,33 @@ public class DeviceConnectivityUtil { public static String getDockerCoapPublishCommand(String protocol, String host, String port, DeviceCredentials deviceCredentials) { String coapCommand = getCoapPublishCommand(protocol, host, port, deviceCredentials); - return coapCommand != null ? String.format("%s%s%s", DOCKER_RUN + (LOCAL_HOSTS.contains(host) ? "--network=host ":""), COAP_IMAGE, coapCommand) : null; + return coapCommand != null ? String.format("%s%s%s", DOCKER_RUN + (isLocalhost(host) ? "--network=host " : ""), COAP_IMAGE, coapCommand) : null; + } + + public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException { + String host = properties.getHost().isEmpty() ? baseUrl : properties.getHost(); + if (VALID_URL_PATTERN.matcher(host).matches()) { + host = new URI(host).getHost(); + } else { + try { + InetAddress inetAddress = InetAddress.getByName(host); + host = inetAddress.getCanonicalHostName().replaceAll("[\\[\\]]", ""); + if (inetAddress instanceof Inet6Address && !inetAddress.isLoopbackAddress() && !protocol.startsWith(MQTT)) { + host = "[" + host + "]"; + } + } catch (UnknownHostException e) { + return host; + } + } + return host; + } + + private static boolean isLocalhost(String host) { + try { + InetAddress inetAddress = InetAddress.getByName(host); + return inetAddress.isLoopbackAddress(); + } catch (UnknownHostException e) { + return false; + } } } From b6b501c3a3507906f2de27239f72bf020ed3cb26 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 17 Nov 2023 18:53:40 +0200 Subject: [PATCH 075/162] UI: Fix scroll grid. --- .../home/components/grid/scroll-grid.component.html | 4 ++-- .../modules/home/components/grid/scroll-grid.component.ts | 8 ++++++++ ui-ngx/src/app/shared/models/resource.models.ts | 4 +++- ui-ngx/src/app/shared/pipe/image.pipe.ts | 6 ++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html index 5340293a12..849dc2e6a9 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html @@ -16,9 +16,9 @@ --> - +
-
+
diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts index e0eea202ff..7044fc040e 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts @@ -100,4 +100,12 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang isObject(value: any): boolean { return isObject(value); } + + trackByItemsRow(index: number, itemsRow: T[]): number { + return index; + } + + trackByItem(index: number, item: T): T { + return item; + } } diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index e494e3842e..02ae41d481 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -82,7 +82,9 @@ export interface ImageDescriptor { previewDescriptor: ImageDescriptor; } -export type ImageResourceInfo = TbResourceInfo; +export interface ImageResourceInfo extends TbResourceInfo { + link?: string; +} export type ImageResourceType = 'tenant' | 'system'; diff --git a/ui-ngx/src/app/shared/pipe/image.pipe.ts b/ui-ngx/src/app/shared/pipe/image.pipe.ts index fb54cb6985..24f91c500d 100644 --- a/ui-ngx/src/app/shared/pipe/image.pipe.ts +++ b/ui-ngx/src/app/shared/pipe/image.pipe.ts @@ -17,11 +17,13 @@ import { Pipe, PipeTransform } from '@angular/core'; import { ImageService } from '@core/http/image.service'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; +import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { isDefinedAndNotNull } from '@core/utils'; import { NO_IMAGE_DATA_URI } from '@shared/models/resource.models'; -const LOADING_IMAGE_DATA_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDIwIDIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgo='; +const LOADING_IMAGE_DATA_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG' + + 'LTgiPz4KPHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAw' + + 'IDIwIDIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgo='; @Pipe({ name: 'image' From 9a14260bf1d42d83882d452606a2e6e86263bf29 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Fri, 17 Nov 2023 18:54:01 +0200 Subject: [PATCH 076/162] Host check refactoring --- .../DeviceConnectivityControllerTest.java | 42 ++++++++++++++++++- .../dao/util/DeviceConnectivityUtil.java | 21 ++++++---- 2 files changed, 53 insertions(+), 10 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java index b629408855..4ca59dc843 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java @@ -581,7 +581,47 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { public void testFetchPublishTelemetryCommandsForDefaultDeviceIfPortsSetToDefault() throws Exception { loginSysAdmin(); - setConnectivityHost(""); + ObjectNode config = JacksonUtil.newObjectNode(); + + ObjectNode http = JacksonUtil.newObjectNode(); + http.put("enabled", true); + http.put("host", ""); + http.put("port", 80); + config.set("http", http); + + ObjectNode https = JacksonUtil.newObjectNode(); + https.put("enabled", true); + https.put("host", ""); + https.put("port", 443); + config.set("https", https); + + ObjectNode mqtt = JacksonUtil.newObjectNode(); + mqtt.put("enabled", false); + mqtt.put("host", ""); + mqtt.put("port", 1883); + config.set("mqtt", mqtt); + + ObjectNode mqtts = JacksonUtil.newObjectNode(); + mqtts.put("enabled", false); + mqtts.put("host", ""); + mqtts.put("port", 8883); + config.set("mqtts", mqtts); + + ObjectNode coap = JacksonUtil.newObjectNode(); + coap.put("enabled", false); + coap.put("host", ""); + coap.put("port", 5683); + config.set("coap", coap); + + ObjectNode coaps = JacksonUtil.newObjectNode(); + coaps.put("enabled", false); + coaps.put("host", ""); + coaps.put("port", 5684); + config.set("coaps", coaps); + + AdminSettings adminSettings = doGet("/api/admin/settings/connectivity", AdminSettings.class); + adminSettings.setJsonValue(config); + doPost("/api/admin/settings", adminSettings).andExpect(status().isOk()); login("tenant2@thingsboard.org", "testPassword1"); diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index f905a9d288..d1eb434100 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -183,17 +183,20 @@ public class DeviceConnectivityUtil { public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException { String host = properties.getHost().isEmpty() ? baseUrl : properties.getHost(); + InetAddress inetAddress; if (VALID_URL_PATTERN.matcher(host).matches()) { host = new URI(host).getHost(); - } else { - try { - InetAddress inetAddress = InetAddress.getByName(host); - host = inetAddress.getCanonicalHostName().replaceAll("[\\[\\]]", ""); - if (inetAddress instanceof Inet6Address && !inetAddress.isLoopbackAddress() && !protocol.startsWith(MQTT)) { - host = "[" + host + "]"; - } - } catch (UnknownHostException e) { - return host; + } + try { + inetAddress = InetAddress.getByName(host); + host = inetAddress.getHostName(); + } catch (UnknownHostException e) { + return host; + } + if (inetAddress instanceof Inet6Address) { + host = host.replaceAll("[\\[\\]]", ""); + if (!inetAddress.isLoopbackAddress() && !protocol.startsWith(MQTT)) { + host = "[" + host + "]"; } } return host; From bb8af6cb220090f691d81964fc983bd190320a85 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Fri, 17 Nov 2023 19:05:14 +0200 Subject: [PATCH 077/162] Local ETag cache --- .../server/controller/ImageController.java | 49 +++++++++++-------- .../resource/DefaultTbImageService.java | 29 ++++++++++- .../service/resource/ImageCacheKey.java | 13 +++++ .../service/resource/TbImageService.java | 3 ++ .../src/main/resources/thingsboard.yml | 3 ++ 5 files changed, 74 insertions(+), 23 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 98e7a3a4e8..2ae358ff15 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -15,6 +15,7 @@ */ package org.thingsboard.server.controller; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -37,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.exception.ThingsboardException; @@ -46,11 +48,13 @@ import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.dao.resource.ImageService; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.resource.ImageCacheKey; import org.thingsboard.server.service.resource.TbImageService; import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; +import java.time.Duration; import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; @@ -122,11 +126,7 @@ public class ImageController extends BaseController { public ResponseEntity downloadImage(@PathVariable String type, @PathVariable String key, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws Exception { - TenantId tenantId = getTenantId(); - TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); - ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); - return downloadIfChanged(etag, descriptor, imageInfo.getFileName(), - () -> imageService.getImageData(tenantId, imageInfo.getId())); + return downloadIfChanged(type, key, etag, false); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @@ -134,11 +134,7 @@ public class ImageController extends BaseController { public ResponseEntity downloadImagePreview(@PathVariable String type, @PathVariable String key, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws Exception { - TenantId tenantId = getTenantId(); - TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); - ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); - return downloadIfChanged(etag, descriptor.getPreviewDescriptor(), imageInfo.getFileName(), - () -> imageService.getImagePreview(tenantId, imageInfo.getId())); + return downloadIfChanged(type, key, etag, true); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @@ -178,22 +174,33 @@ public class ImageController extends BaseController { tbImageService.delete(imageInfo, getCurrentUser()); } - private ResponseEntity downloadIfChanged(String actualEtag, ImageDescriptor imageDescriptor, - String fileName, Supplier dataSupplier) { - if (imageDescriptor.getEtag().equals(actualEtag)) { - return ResponseEntity.status(HttpStatus.NOT_MODIFIED) - .eTag(actualEtag) - .build(); + private ResponseEntity downloadIfChanged(String type, String key, String etag, boolean preview) throws ThingsboardException, JsonProcessingException { + ImageCacheKey cacheKey = new ImageCacheKey(getTenantId(type), key, preview); + if (StringUtils.isNotEmpty(etag)) { + etag = etag.replaceAll("\"", ""); // TODO: investigate why Spring provides extra quotes. + if (etag.equals(tbImageService.getETag(cacheKey))) { + return ResponseEntity.status(HttpStatus.NOT_MODIFIED).build(); + } } - - byte[] data = dataSupplier.get(); + TenantId tenantId = getTenantId(); + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); + String fileName = imageInfo.getFileName(); + ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); + byte[] data; + if (preview) { + descriptor = descriptor.getPreviewDescriptor(); + data = imageService.getImagePreview(tenantId, imageInfo.getId()); + } else { + data = imageService.getImageData(tenantId, imageInfo.getId()); + } + tbImageService.putETag(cacheKey, descriptor.getEtag()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName) .header("x-filename", fileName) .contentLength(data.length) - .header("Content-Type", imageDescriptor.getMediaType()) + .header("Content-Type", descriptor.getMediaType()) .cacheControl(CacheControl.noCache()) - .eTag(imageDescriptor.getEtag()) + .eTag(descriptor.getEtag()) .body(new ByteArrayResource(data)); } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 65304c8270..5ded1d7fb5 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -15,7 +15,10 @@ */ package org.thingsboard.server.service.resource; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.TbResource; @@ -28,12 +31,34 @@ import org.thingsboard.server.dao.resource.ImageService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.entitiy.AbstractTbEntityService; +import java.util.concurrent.TimeUnit; + @Service @TbCoreComponent -@RequiredArgsConstructor public class DefaultTbImageService extends AbstractTbEntityService implements TbImageService { private final ImageService imageService; + private final Cache cache; + + public DefaultTbImageService(ImageService imageService, + @Value("${cache.imageETags.timeToLiveInMinutes:120}") int cacheTtl, + @Value("${cache.imageETags.maxSize:200000}") int cacheMaxSize) { + this.imageService = imageService; + this.cache = Caffeine.newBuilder() + .expireAfterAccess(cacheTtl, TimeUnit.MINUTES) + .maximumSize(cacheMaxSize) + .build(); + } + + @Override + public String getETag(ImageCacheKey imageCacheKey) { + return cache.getIfPresent(imageCacheKey); + } + + @Override + public void putETag(ImageCacheKey imageCacheKey, String etag) { + cache.put(imageCacheKey, etag); + } @Override public TbResourceInfo save(TbResource image, User user) throws Exception { diff --git a/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java b/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java new file mode 100644 index 0000000000..222fc5e875 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java @@ -0,0 +1,13 @@ +package org.thingsboard.server.service.resource; + +import lombok.Data; +import org.thingsboard.server.common.data.id.TenantId; + +@Data +public class ImageCacheKey { + + private final TenantId tenantId; + private final String key; + private final boolean preview; + +} diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java index a1f6cf3e7e..3db512528a 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -27,4 +27,7 @@ public interface TbImageService { void delete(TbResourceInfo imageInfo, User user); + String getETag(ImageCacheKey imageCacheKey); + + void putETag(ImageCacheKey imageCacheKey, String etag); } diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index ecc89c84c5..9e59db76e8 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -586,6 +586,9 @@ cache: entityLimits: timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled + imageETags: + timeToLiveInMinutes: "${CACHE_SPECS_IMAGE_ETAGS_TTL:44640}" # Image ETags cache TTL + maxSize: "${CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE:1000000}" # 0 means the cache is disabled # Spring data parameters spring.data.redis.repositories.enabled: false # Disable this because it is not required. From 0051abee3446a8264ab0a2217fa9cc30b1e081cd Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Fri, 17 Nov 2023 19:06:14 +0200 Subject: [PATCH 078/162] Local ETag cache --- .../server/controller/ImageController.java | 2 +- .../service/resource/DefaultTbImageService.java | 2 +- .../server/service/resource/ImageCacheKey.java | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 2ae358ff15..a027e77b2e 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 5ded1d7fb5..4b70814e26 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java b/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java index 222fc5e875..55ddb25dec 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/ImageCacheKey.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.service.resource; import lombok.Data; From 754399edf193e87b8de4a84a355fa793d5d15e65 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 17 Nov 2023 19:10:03 +0200 Subject: [PATCH 079/162] UI: Fix widgets bundle widgets row height. --- .../home/pages/widget/widgets-bundle-widgets.component.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.scss b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.scss index 3c971105ff..11c611c739 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.scss +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.scss @@ -154,7 +154,8 @@ gap: 12px; .tb-bundle-widget-image-preview { width: 64px; - max-height: 100%; + max-height: 52px; + height: 100%; object-fit: contain; border-radius: 6px; } From d196e69b23be90617c78826cdddb6fa2642484f1 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Mon, 20 Nov 2023 09:11:52 +0200 Subject: [PATCH 080/162] Updated regex to check url --- .../org/thingsboard/server/dao/util/DeviceConnectivityUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index d1eb434100..151932af1a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -46,7 +46,7 @@ public class DeviceConnectivityUtil { public static final String GATEWAY_DOCKER_RUN = "docker run -it "; public static final String MQTT_IMAGE = "thingsboard/mosquitto-clients "; public static final String COAP_IMAGE = "thingsboard/coap-clients "; - private final static Pattern VALID_URL_PATTERN = Pattern.compile("^(http|https|ftp)://.*$"); + private final static Pattern VALID_URL_PATTERN = Pattern.compile("^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); public static String getHttpPublishCommand(String protocol, String host, String port, DeviceCredentials deviceCredentials) { return String.format("curl -v -X POST %s://%s%s/api/v1/%s/telemetry --header Content-Type:application/json --data " + JSON_EXAMPLE_PAYLOAD, From 8777f1297240470aa238ce3231c88fc25212f860 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Mon, 20 Nov 2023 09:47:25 +0200 Subject: [PATCH 081/162] Added null safety if user set a bad ipv6 address --- .../server/dao/util/DeviceConnectivityUtil.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index 151932af1a..44ddb095aa 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -182,12 +182,17 @@ public class DeviceConnectivityUtil { } public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException { - String host = properties.getHost().isEmpty() ? baseUrl : properties.getHost(); + String initialHost = properties.getHost().isEmpty() ? baseUrl : properties.getHost(); InetAddress inetAddress; - if (VALID_URL_PATTERN.matcher(host).matches()) { - host = new URI(host).getHost(); + String host = null; + if (VALID_URL_PATTERN.matcher(initialHost).matches()) { + host = new URI(initialHost).getHost(); + } + if (host == null) { + host = initialHost; } try { + host = host.replaceAll("^https?://", ""); inetAddress = InetAddress.getByName(host); host = inetAddress.getHostName(); } catch (UnknownHostException e) { From 5e8858d5637ad1801761c2de5998379ed3c6ef8b Mon Sep 17 00:00:00 2001 From: imbeacon Date: Mon, 20 Nov 2023 11:17:19 +0200 Subject: [PATCH 082/162] Updated host check logic and related test --- .../DeviceConnectivityControllerTest.java | 20 +++++++++---------- .../dao/util/DeviceConnectivityUtil.java | 3 +-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java index 4ca59dc843..f517d2e9c5 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java @@ -336,39 +336,39 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { assertThat(commands).hasSize(3); JsonNode httpCommands = commands.get(HTTP); - assertThat(httpCommands.get(HTTP).asText()).isEqualTo(String.format("curl -v -X POST http://localhost:8080/api/v1/%s/telemetry " + + assertThat(httpCommands.get(HTTP).asText()).isEqualTo(String.format("curl -v -X POST http://[::1]:8080/api/v1/%s/telemetry " + "--header Content-Type:application/json --data \"{temperature:25}\"", credentials.getCredentialsId())); - assertThat(httpCommands.get(HTTPS).asText()).isEqualTo(String.format("curl -v -X POST https://localhost/api/v1/%s/telemetry " + + assertThat(httpCommands.get(HTTPS).asText()).isEqualTo(String.format("curl -v -X POST https://[::1]/api/v1/%s/telemetry " + "--header Content-Type:application/json --data \"{temperature:25}\"", credentials.getCredentialsId())); JsonNode mqttCommands = commands.get(MQTT); - assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h localhost -p 1883 -t v1/devices/me/telemetry " + + assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h ::1 -p 1883 -t v1/devices/me/telemetry " + "-u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); - assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 " + + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h ::1 -p 8883 " + "-t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); - assertThat(dockerMqttCommands.get(MQTT).asText()).isEqualTo(String.format("docker run --rm -it --network=host thingsboard/mosquitto-clients mosquitto_pub -d -q 1 -h localhost" + + assertThat(dockerMqttCommands.get(MQTT).asText()).isEqualTo(String.format("docker run --rm -it --network=host thingsboard/mosquitto-clients mosquitto_pub -d -q 1 -h ::1" + " -p 1883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"", credentials.getCredentialsId())); assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it --network=host thingsboard/mosquitto-clients " + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + - "mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"\"", + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h ::1 -p 8883 -t v1/devices/me/telemetry -u \"%s\" -m \"{temperature:25}\"\"", credentials.getCredentialsId())); JsonNode linuxCoapCommands = commands.get(COAP); - assertThat(linuxCoapCommands.get(COAP).asText()).isEqualTo(String.format("coap-client -v 6 -m POST coap://localhost:5683/api/v1/%s/telemetry " + + assertThat(linuxCoapCommands.get(COAP).asText()).isEqualTo(String.format("coap-client -v 6 -m POST coap://[::1]:5683/api/v1/%s/telemetry " + "-t json -e \"{temperature:25}\"", credentials.getCredentialsId())); - assertThat(linuxCoapCommands.get(COAPS).asText()).isEqualTo(String.format("coap-client-openssl -v 6 -m POST coaps://localhost:5684/api/v1/%s/telemetry" + + assertThat(linuxCoapCommands.get(COAPS).asText()).isEqualTo(String.format("coap-client-openssl -v 6 -m POST coaps://[::1]:5684/api/v1/%s/telemetry" + " -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); JsonNode dockerCoapCommands = commands.get(COAP).get(DOCKER); assertThat(dockerCoapCommands.get(COAP).asText()).isEqualTo(String.format("docker run --rm -it --network=host" + - " thingsboard/coap-clients coap-client -v 6 -m POST coap://localhost:5683/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + " thingsboard/coap-clients coap-client -v 6 -m POST coap://[::1]:5683/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); assertThat(dockerCoapCommands.get(COAPS).asText()).isEqualTo(String.format("docker run --rm -it --network=host" + - " thingsboard/coap-clients coap-client-openssl -v 6 -m POST coaps://localhost:5684/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); + " thingsboard/coap-clients coap-client-openssl -v 6 -m POST coaps://[::1]:5684/api/v1/%s/telemetry -t json -e \"{temperature:25}\"", credentials.getCredentialsId())); } @Test diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index 44ddb095aa..efd75e305e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -194,13 +194,12 @@ public class DeviceConnectivityUtil { try { host = host.replaceAll("^https?://", ""); inetAddress = InetAddress.getByName(host); - host = inetAddress.getHostName(); } catch (UnknownHostException e) { return host; } if (inetAddress instanceof Inet6Address) { host = host.replaceAll("[\\[\\]]", ""); - if (!inetAddress.isLoopbackAddress() && !protocol.startsWith(MQTT)) { + if (!protocol.startsWith(MQTT)) { host = "[" + host + "]"; } } From 561e825eda32a70499052e6bfccfa59d6b626a8e Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Mon, 20 Nov 2023 13:22:15 +0200 Subject: [PATCH 083/162] Minor refactoring: use edgeVersion instead of passing boolean --- .../rpc/processor/alarm/AlarmEdgeProcessor.java | 3 +-- .../rpc/processor/alarm/BaseAlarmProcessor.java | 3 ++- .../rpc/processor/asset/AssetEdgeProcessor.java | 7 +++---- .../processor/asset/AssetProfileEdgeProcessor.java | 11 +++++------ .../rpc/processor/asset/BaseAssetProcessor.java | 10 ++++++---- .../processor/asset/BaseAssetProfileProcessor.java | 14 ++++++++------ .../dashboard/BaseDashboardProcessor.java | 6 ++++-- .../dashboard/DashboardEdgeProcessor.java | 3 +-- .../rpc/processor/device/BaseDeviceProcessor.java | 10 ++++++---- .../device/BaseDeviceProfileProcessor.java | 14 ++++++++------ .../rpc/processor/device/DeviceEdgeProcessor.java | 7 +++---- .../device/DeviceProfileEdgeProcessor.java | 11 +++++------ .../entityview/BaseEntityViewProcessor.java | 10 ++++++---- .../entityview/EntityViewEdgeProcessor.java | 7 +++---- .../processor/relation/BaseRelationProcessor.java | 6 ++++-- .../processor/relation/RelationEdgeProcessor.java | 3 +-- .../processor/resource/BaseResourceProcessor.java | 6 ++++-- .../processor/resource/ResourceEdgeProcessor.java | 3 +-- .../telemetry/TelemetryEdgeProcessor.java | 3 +-- 19 files changed, 72 insertions(+), 65 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index a09d36f656..b934a33d54 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -37,7 +37,6 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.List; @@ -52,7 +51,7 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { log.trace("[{}] processAlarmMsgFromEdge [{}]", tenantId, alarmUpdateMsg); try { edgeSynchronizationManager.getEdgeId().set(edgeId); - return processAlarmMsg(tenantId, alarmUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + return processAlarmMsg(tenantId, alarmUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index ab30d21e1f..fd53e38f4a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -47,9 +47,10 @@ import java.util.UUID; @Slf4j public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { - public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] processAlarmMsg [{}]", tenantId, alarmUpdateMsg); AlarmId alarmId = new AlarmId(new UUID(alarmUpdateMsg.getIdMSB(), alarmUpdateMsg.getIdLSB())); + boolean isEdgeVersionOlderThan_3_6_2 = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); Alarm alarm = isEdgeVersionOlderThan_3_6_2 ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); if (alarm == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index 36a04dbb62..886a148f5a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -84,8 +84,7 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { } private void saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, Edge edge, EdgeVersion edgeVersion) { - Pair resultPair = super.saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + Pair resultPair = super.saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, edgeVersion); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), assetId); @@ -148,8 +147,8 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, EdgeVersion edgeVersion) { + CustomerId customerUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetCustomerId(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()) : asset.getCustomerId() != null ? asset.getCustomerId() : customerId; asset.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index 7f8efe1392..d5a98b523e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -74,8 +74,7 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } private void saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, Edge edge, EdgeVersion edgeVersion) { - Pair resultPair = super.saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + Pair resultPair = super.saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg, edgeVersion); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), assetProfileId); @@ -134,16 +133,16 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } @Override - protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - UUID defaultEdgeRuleChainUUID = isEdgeVersionOlderThan_3_6_2 + protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion) { + UUID defaultEdgeRuleChainUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetUUID(assetProfileUpdateMsg.getDefaultRuleChainIdMSB(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()) : ruleChainId != null ? ruleChainId.getId() : null; assetProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); } @Override - protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - UUID defaultDashboardUUID = isEdgeVersionOlderThan_3_6_2 + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion) { + UUID defaultDashboardUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetUUID(assetProfileUpdateMsg.getDefaultDashboardIdMSB(), assetProfileUpdateMsg.getDefaultDashboardIdLSB()) : assetProfile.getDefaultDashboardId() != null ? assetProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); assetProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java index b5a1b48a1c..6403631f50 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java @@ -26,19 +26,21 @@ import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseAssetProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, EdgeVersion edgeVersion) { boolean created = false; boolean assetNameUpdated = false; assetCreationLock.lock(); try { - Asset asset = isEdgeVersionOlderThan_3_6_2 + Asset asset = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createAsset(tenantId, assetId, assetUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); if (asset == null) { @@ -60,7 +62,7 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { assetNameUpdated = true; } asset.setName(assetName); - setCustomerId(tenantId, created ? null : assetById.getCustomerId(), asset, assetUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setCustomerId(tenantId, created ? null : assetById.getCustomerId(), asset, assetUpdateMsg, edgeVersion); assetValidator.validate(asset, Asset::getTenantId); if (created) { @@ -94,5 +96,5 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { return asset; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index bae0c8c068..98061dbecc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -26,19 +26,21 @@ import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; @Slf4j public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion) { boolean created = false; boolean assetProfileNameUpdated = false; assetCreationLock.lock(); try { - AssetProfile assetProfile = isEdgeVersionOlderThan_3_6_2 + AssetProfile assetProfile = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); if (assetProfile == null) { @@ -63,8 +65,8 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { RuleChainId ruleChainId = assetProfile.getDefaultRuleChainId(); setDefaultRuleChainId(tenantId, assetProfile, created ? null : assetProfileById.getDefaultRuleChainId()); - setDefaultEdgeRuleChainId(assetProfile, ruleChainId, assetProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); - setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setDefaultEdgeRuleChainId(assetProfile, ruleChainId, assetProfileUpdateMsg, edgeVersion); + setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, edgeVersion); assetProfileValidator.validate(assetProfile, AssetProfile::getTenantId); if (created) { @@ -95,7 +97,7 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, RuleChainId ruleChainId); - protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion); - protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 46f4088f41..0ae26d5160 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -25,16 +25,18 @@ import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Set; @Slf4j public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2, CustomerId customerId) { + protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, CustomerId customerId, EdgeVersion edgeVersion) { boolean created = false; - Dashboard dashboard = isEdgeVersionOlderThan_3_6_2 + Dashboard dashboard = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createDashboard(tenantId, dashboardId, dashboardUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); if (dashboard == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index a7e7cdbc12..eec398e5ff 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -35,7 +35,6 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Set; import java.util.UUID; @@ -80,7 +79,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { private void saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, Edge edge, EdgeVersion edgeVersion) { boolean created = super.saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion), edge.getCustomerId()); + edge.getCustomerId(), edgeVersion); if (created) { createRelationFromEdge(tenantId, edge.getId(), dashboardId); pushDashboardCreatedEventToRuleEngine(tenantId, edge, dashboardId); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index 4c5141034d..771073b091 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -32,8 +32,10 @@ import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Optional; import java.util.UUID; @@ -44,12 +46,12 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { @Autowired protected DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, EdgeVersion edgeVersion) { boolean created = false; boolean deviceNameUpdated = false; deviceCreationLock.lock(); try { - Device device = isEdgeVersionOlderThan_3_6_2 + Device device = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createDevice(tenantId, deviceId, deviceUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); if (device == null) { @@ -71,7 +73,7 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { deviceNameUpdated = true; } device.setName(deviceName); - setCustomerId(tenantId, created ? null : deviceById.getCustomerId(), device, deviceUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setCustomerId(tenantId, created ? null : deviceById.getCustomerId(), device, deviceUpdateMsg, edgeVersion); deviceValidator.validate(device, Device::getTenantId); if (created) { @@ -157,5 +159,5 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { return deviceCredentials; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index 97d751dc27..e97f0aaac1 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -32,8 +32,10 @@ import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; import java.util.Optional; @@ -45,12 +47,12 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion) { boolean created = false; boolean deviceProfileNameUpdated = false; deviceCreationLock.lock(); try { - DeviceProfile deviceProfile = isEdgeVersionOlderThan_3_6_2 + DeviceProfile deviceProfile = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); if (deviceProfile == null) { @@ -75,8 +77,8 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { RuleChainId ruleChainId = deviceProfile.getDefaultRuleChainId(); setDefaultRuleChainId(tenantId, deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId()); - setDefaultEdgeRuleChainId(deviceProfile, ruleChainId, deviceProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); - setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setDefaultEdgeRuleChainId(deviceProfile, ruleChainId, deviceProfileUpdateMsg, edgeVersion); + setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, edgeVersion); deviceProfileValidator.validate(deviceProfile, DeviceProfile::getTenantId); if (created) { @@ -127,7 +129,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, RuleChainId ruleChainId); - protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion); - protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index fb8db00890..b4ca6b3436 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -110,8 +110,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { } private void saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, Edge edge, EdgeVersion edgeVersion) { - Pair resultPair = super.saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + Pair resultPair = super.saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, edgeVersion); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), deviceId); @@ -289,8 +288,8 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, EdgeVersion edgeVersion) { + CustomerId customerUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetCustomerId(deviceUpdateMsg.getCustomerIdMSB(), deviceUpdateMsg.getCustomerIdLSB()) : device.getCustomerId() != null ? device.getCustomerId() : customerId; device.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 7e265e6907..4f43fea35b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -74,8 +74,7 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } private void saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, Edge edge, EdgeVersion edgeVersion) { - Pair resultPair = super.saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + Pair resultPair = super.saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg, edgeVersion); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), deviceProfileId); @@ -134,16 +133,16 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } @Override - protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - UUID defaultEdgeRuleChainUUID = isEdgeVersionOlderThan_3_6_2 + protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion) { + UUID defaultEdgeRuleChainUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetUUID(deviceProfileUpdateMsg.getDefaultRuleChainIdMSB(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()) : ruleChainId != null ? ruleChainId.getId() : null; deviceProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); } @Override - protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - UUID defaultDashboardUUID = isEdgeVersionOlderThan_3_6_2 + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion) { + UUID defaultDashboardUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetUUID(deviceProfileUpdateMsg.getDefaultDashboardIdMSB(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()) : deviceProfile.getDefaultDashboardId() != null ? deviceProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); deviceProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index 7ffa4874fd..723f3e0e2f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -27,18 +27,20 @@ import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.EdgeEntityType; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, EdgeVersion edgeVersion) { boolean created = false; boolean entityViewNameUpdated = false; - EntityView entityView = isEdgeVersionOlderThan_3_6_2 + EntityView entityView = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createEntityView(tenantId, entityViewId, entityViewUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); if (entityView == null) { @@ -60,7 +62,7 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { entityViewNameUpdated = true; } entityView.setName(entityViewName); - setCustomerId(tenantId, created ? null : entityViewById.getCustomerId(), entityView, entityViewUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setCustomerId(tenantId, created ? null : entityViewById.getCustomerId(), entityView, entityViewUpdateMsg, edgeVersion); entityViewValidator.validate(entityView, EntityView::getTenantId); if (created) { @@ -92,5 +94,5 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { return entityView; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 50c5755661..73f66fc614 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -81,8 +81,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } private void saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, Edge edge, EdgeVersion edgeVersion) { - Pair resultPair = super.saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + Pair resultPair = super.saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, edgeVersion); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), entityViewId); @@ -140,8 +139,8 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 + protected void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, EdgeVersion edgeVersion) { + CustomerId customerUUID = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? safeGetCustomerId(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()) : entityView.getCustomerId() != null ? entityView.getCustomerId() : customerId; entityView.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java index d5987c29cd..d673b1a613 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java @@ -25,18 +25,20 @@ import org.thingsboard.server.common.data.id.EntityIdFactory; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseRelationProcessor extends BaseEdgeProcessor { - protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] processRelationMsg [{}]", tenantId, relationUpdateMsg); try { - EntityRelation entityRelation = isEdgeVersionOlderThan_3_6_2 + EntityRelation entityRelation = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createEntityRelation(relationUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); if (entityRelation == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 8c6854ff3d..566bed5146 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -35,7 +35,6 @@ import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.HashSet; @@ -51,7 +50,7 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { log.trace("[{}] executing processRelationMsgFromEdge [{}] from edge [{}]", tenantId, relationUpdateMsg, edge.getId()); try { edgeSynchronizationManager.getEdgeId().set(edge.getId()); - return processRelationMsg(tenantId, relationUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + return processRelationMsg(tenantId, relationUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index 5ed377fed2..ebcbb2b7c9 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -25,16 +25,18 @@ import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageDataIterable; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Slf4j public abstract class BaseResourceProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg, EdgeVersion edgeVersion) { boolean resourceKeyUpdated = false; try { - TbResource resource = isEdgeVersionOlderThan_3_6_2 + TbResource resource = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createTbResource(tenantId, resourceUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(resourceUpdateMsg.getEntity(), TbResource.class); if (resource == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index bd99e48622..ae514d0a54 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -33,7 +33,6 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -50,7 +49,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { switch (resourceUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - boolean resourceKeyUpdated = super.saveOrUpdateTbResource(tenantId, tbResourceId, resourceUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + boolean resourceKeyUpdated = super.saveOrUpdateTbResource(tenantId, tbResourceId, resourceUpdateMsg, edgeVersion); if (resourceKeyUpdated) { saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.TB_RESOURCE, EdgeEventActionType.UPDATED, tbResourceId, null); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/TelemetryEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/TelemetryEdgeProcessor.java index 667d661d2e..af9ff3de37 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/TelemetryEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/TelemetryEdgeProcessor.java @@ -15,7 +15,6 @@ */ package org.thingsboard.server.service.edge.rpc.processor.telemetry; -import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.DataConstants; @@ -37,7 +36,7 @@ public class TelemetryEdgeProcessor extends BaseTelemetryProcessor { return DataConstants.EDGE_MSG_SOURCE; } - public DownlinkMsg convertTelemetryEventToDownlink(EdgeEvent edgeEvent) throws JsonProcessingException { + public DownlinkMsg convertTelemetryEventToDownlink(EdgeEvent edgeEvent) { if (edgeEvent.getBody() != null) { String bodyStr = edgeEvent.getBody().toString(); if (bodyStr.length() > 1000) { From 320de6b6c98cf20e4e6d73f72f3c94fb3b05f599 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Mon, 20 Nov 2023 13:28:28 +0200 Subject: [PATCH 084/162] Provide same logic with edgeVersion for updateDeviceCredentials --- .../edge/rpc/processor/device/BaseDeviceProcessor.java | 4 ++-- .../edge/rpc/processor/device/DeviceEdgeProcessor.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index 771073b091..e2ac06e84b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -121,8 +121,8 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { return device; } - protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { - DeviceCredentials deviceCredentials = isEdgeVersionOlderThan_3_6_2 + protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, EdgeVersion edgeVersion) { + DeviceCredentials deviceCredentials = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? createDeviceCredentials(deviceCredentialsUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); if (deviceCredentials == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index b4ca6b3436..97eb6bcfa1 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -102,7 +102,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { try { edgeSynchronizationManager.getEdgeId().set(edgeId); - updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } From 932c6e8b706ab89ef2e5c9e4ab4b914759babeb7 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Mon, 20 Nov 2023 15:18:33 +0200 Subject: [PATCH 085/162] Add settings for browser cache TTL for system and tenant images --- .../server/controller/ImageController.java | 22 ++++++++++++++----- .../resource/DefaultTbImageService.java | 4 ++-- .../src/main/resources/thingsboard.yml | 9 +++++--- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index a027e77b2e..1a1b4e3b46 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; import org.springframework.http.CacheControl; import org.springframework.http.HttpHeaders; @@ -55,6 +56,7 @@ import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; import java.time.Duration; +import java.util.concurrent.TimeUnit; import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; @@ -73,6 +75,10 @@ public class ImageController extends BaseController { private final ImageService imageService; private final TbImageService tbImageService; + @Value("${cache.image.systemImagesBrowserTtlInMinutes:0}") + private int systemImagesBrowserTtlInMinutes; + @Value("${cache.image.tenantImagesBrowserTtlInMinutes:0}") + private int tenantImagesBrowserTtlInMinutes; private static final String IMAGE_URL = "/api/images/{type}/{key}"; private static final String SYSTEM_IMAGE = "system"; @@ -194,14 +200,20 @@ public class ImageController extends BaseController { data = imageService.getImageData(tenantId, imageInfo.getId()); } tbImageService.putETag(cacheKey, descriptor.getEtag()); - return ResponseEntity.ok() + var result = ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName) .header("x-filename", fileName) - .contentLength(data.length) .header("Content-Type", descriptor.getMediaType()) - .cacheControl(CacheControl.noCache()) - .eTag(descriptor.getEtag()) - .body(new ByteArrayResource(data)); + .contentLength(data.length) + .eTag(descriptor.getEtag()); + if (systemImagesBrowserTtlInMinutes > 0 && imageInfo.getTenantId().isSysTenantId()) { + result.cacheControl(CacheControl.maxAge(systemImagesBrowserTtlInMinutes, TimeUnit.MINUTES)); + } else if (tenantImagesBrowserTtlInMinutes > 0 && !imageInfo.getTenantId().isSysTenantId()) { + result.cacheControl(CacheControl.maxAge(tenantImagesBrowserTtlInMinutes, TimeUnit.MINUTES)); + } else { + result.cacheControl(CacheControl.noCache()); + } + return result.body(new ByteArrayResource(data)); } private TbResourceInfo checkImageInfo(String imageType, String key, Operation operation) throws ThingsboardException { diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 4b70814e26..0820965544 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -41,8 +41,8 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb private final Cache cache; public DefaultTbImageService(ImageService imageService, - @Value("${cache.imageETags.timeToLiveInMinutes:120}") int cacheTtl, - @Value("${cache.imageETags.maxSize:200000}") int cacheMaxSize) { + @Value("${cache.image.etag.timeToLiveInMinutes:120}") int cacheTtl, + @Value("${cache.image.etag.maxSize:200000}") int cacheMaxSize) { this.imageService = imageService; this.cache = Caffeine.newBuilder() .expireAfterAccess(cacheTtl, TimeUnit.MINUTES) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 9e59db76e8..6dde5de957 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -586,9 +586,12 @@ cache: entityLimits: timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled - imageETags: - timeToLiveInMinutes: "${CACHE_SPECS_IMAGE_ETAGS_TTL:44640}" # Image ETags cache TTL - maxSize: "${CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE:1000000}" # 0 means the cache is disabled + image: + etag: + timeToLiveInMinutes: "${CACHE_SPECS_IMAGE_ETAGS_TTL:44640}" # Image ETags cache TTL + maxSize: "${CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE:1000000}" # 0 means the cache is disabled + systemImagesBrowserTtlInMinutes: "${CACHE_SPECS_IMAGE_SYSTEM_BROWSER_TTL:0}" # Browser cache TTL for system images in minutes. 0 means the cache is disabled + tenantImagesBrowserTtlInMinutes: "${CACHE_SPECS_IMAGE_TENANT_BROWSER_TTL:0}" # Browser cache TTL for tenant images in minutes. 0 means the cache is disabled # Spring data parameters spring.data.redis.repositories.enabled: false # Disable this because it is not required. From fa12ba544d3f35bd01afa169728e8881054c8222 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 20 Nov 2023 15:20:40 +0200 Subject: [PATCH 086/162] moved pubsub queue executor to PubSubSettings --- .../src/main/resources/thingsboard.yml | 6 +- .../pubsub/TbPubSubConsumerTemplate.java | 2 +- .../pubsub/TbPubSubProducerTemplate.java | 2 +- .../pubsub/TbPubSubQueueExecutorProvider.java | 60 ------------------- .../server/queue/pubsub/TbPubSubSettings.java | 25 +++++++- .../src/main/resources/tb-vc-executor.yml | 2 +- .../src/main/resources/tb-coap-transport.yml | 2 +- .../src/main/resources/tb-http-transport.yml | 2 +- .../src/main/resources/tb-lwm2m-transport.yml | 2 +- .../src/main/resources/tb-mqtt-transport.yml | 2 +- .../src/main/resources/tb-snmp-transport.yml | 2 +- 11 files changed, 35 insertions(+), 72 deletions(-) delete mode 100644 common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 304ad96a34..6025114a3d 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1411,8 +1411,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + # Thread pool size for pubsub queue executor provider. If set to 0 - default pubsub executor provider value will be used (5 * number of available processors) + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" @@ -1643,7 +1643,7 @@ service: assigned_tenant_profiles: "${TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES:}" pubsub: # Thread pool size for pubsub rule node executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" # Metrics parameters metrics: diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java index 1135053a66..1a84b80cd2 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java @@ -77,7 +77,7 @@ public class TbPubSubConsumerTemplate extends AbstractPara SubscriberStubSettings.defaultGrpcTransportProviderBuilder() .setMaxInboundMessageSize(pubSubSettings.getMaxMsgSize()) .build()) - .setExecutorProvider(FixedExecutorProvider.create(pubSubSettings.getTbPubSubQueueExecutorProvider().getExecutor())) + .setExecutorProvider(pubSubSettings.getExecutorProvider()) .build(); this.subscriber = GrpcSubscriberStub.create(subscriberStubSettings); } catch (IOException e) { diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java index bf297d8af4..3107855ab1 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java @@ -123,7 +123,7 @@ public class TbPubSubProducerTemplate implements TbQueuePr ProjectTopicName topicName = ProjectTopicName.of(pubSubSettings.getProjectId(), topic); Publisher publisher = Publisher.newBuilder(topicName) .setCredentialsProvider(pubSubSettings.getCredentialsProvider()) - .setExecutorProvider(FixedExecutorProvider.create(pubSubSettings.getTbPubSubQueueExecutorProvider().getExecutor())) + .setExecutorProvider(pubSubSettings.getExecutorProvider()) .build(); publisherMap.put(topic, publisher); return publisher; diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java deleted file mode 100644 index 370670d554..0000000000 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.queue.pubsub; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.ExecutorProvider; -import org.thingsboard.common.util.ThingsBoardThreadFactory; - -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; - -@ConditionalOnExpression("'${queue.type:null}'=='pubsub'") -@Component -public class TbPubSubQueueExecutorProvider implements ExecutorProvider { - - @Value("${queue.pubsub.executor_thread_pool_size}") - private Integer threadPoolSize; - /** - * Refers to com.google.cloud.pubsub.v1.Publisher default executor configuration - */ - private static final int THREADS_PER_CPU = 5; - private ScheduledExecutorService executor; - - @PostConstruct - public void init() { - if (threadPoolSize == null) { - threadPoolSize = THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(); - } - executor = Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-queue-executor")); - } - - @Override - public ScheduledExecutorService getExecutor() { - return executor; - } - - @PreDestroy - private void destroy() { - if (executor != null) { - executor.shutdownNow(); - } - } -} diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java index 530453f26b..145661fed1 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java @@ -17,16 +17,20 @@ package org.thingsboard.server.queue.pubsub; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.api.gax.core.FixedExecutorProvider; import com.google.auth.oauth2.ServiceAccountCredentials; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.ThingsBoardThreadFactory; import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.util.concurrent.Executors; @Slf4j @ConditionalOnExpression("'${queue.type:null}'=='pubsub'") @@ -46,7 +50,15 @@ public class TbPubSubSettings { @Value("${queue.pubsub.max_messages}") private int maxMessages; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; + @Value("${queue.pubsub.executor_thread_pool_size:0}") + private int threadPoolSize; + + /** + * Refers to com.google.cloud.pubsub.v1.Publisher default executor configuration + */ + private static final int THREADS_PER_CPU = 5; + + private FixedExecutorProvider executorProvider; private CredentialsProvider credentialsProvider; @@ -55,6 +67,17 @@ public class TbPubSubSettings { ServiceAccountCredentials credentials = ServiceAccountCredentials.fromStream( new ByteArrayInputStream(serviceAccount.getBytes())); credentialsProvider = FixedCredentialsProvider.create(credentials); + if (threadPoolSize == 0) { + threadPoolSize = THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(); + } + executorProvider = FixedExecutorProvider + .create(Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-queue-executor"))); } + @PreDestroy + private void destroy() { + if (executorProvider != null) { + executorProvider.getExecutor().shutdownNow(); + } + } } diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index 62957debcf..8c363b019c 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -173,7 +173,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index c376d6a176..0db3e71f52 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -296,7 +296,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index f3fd100fd7..d4fda384c7 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -279,7 +279,7 @@ queue: # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 968385b5e2..06b8c1a84a 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -375,7 +375,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 1e97c59253..afb34d7063 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -312,7 +312,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 8d3f842325..6ee6333fc2 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -265,7 +265,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:0}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" From 8a926ae239820181778314c071e8f605fd63dbbf Mon Sep 17 00:00:00 2001 From: imbeacon Date: Mon, 20 Nov 2023 17:25:19 +0200 Subject: [PATCH 087/162] Changes, due to comments --- .../dao/util/DeviceConnectivityUtil.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index efd75e305e..3434b47965 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -44,6 +44,8 @@ public class DeviceConnectivityUtil { public static final String JSON_EXAMPLE_PAYLOAD = "\"{temperature:25}\""; public static final String DOCKER_RUN = "docker run --rm -it "; public static final String GATEWAY_DOCKER_RUN = "docker run -it "; + + public static final String NETWORK_HOST_PARAM = "--network=host "; public static final String MQTT_IMAGE = "thingsboard/mosquitto-clients "; public static final String COAP_IMAGE = "thingsboard/coap-clients "; private final static Pattern VALID_URL_PATTERN = Pattern.compile("^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); @@ -98,14 +100,14 @@ public class DeviceConnectivityUtil { String gatewayContainerName = "tbGateway" + StringUtils.capitalize(host.replaceAll("[^A-Za-z0-9]", "")); StringBuilder command = new StringBuilder(GATEWAY_DOCKER_RUN); - command.append("-v {gatewayVolumePathPrefix}/logs:/thingsboard_gateway/logs".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); - command.append(" -v {gatewayVolumePathPrefix}/extensions:/thingsboard_gateway/extensions".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); - command.append(" -v {gatewayVolumePathPrefix}/config:/thingsboard_gateway/config".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); - command.append(isLocalhost(host) ? " --network=host" : ""); - command.append(" -p 5000:5000"); - command.append(" --name ").append(gatewayContainerName); - command.append(" -e host=").append(host); - command.append(" -e port=").append(port); + command.append("-v {gatewayVolumePathPrefix}/logs:/thingsboard_gateway/logs ".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); + command.append("-v {gatewayVolumePathPrefix}/extensions:/thingsboard_gateway/extensions ".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); + command.append("-v {gatewayVolumePathPrefix}/config:/thingsboard_gateway/config ".replace("{gatewayVolumePathPrefix}", gatewayVolumePathPrefix)); + command.append(isLocalhost(host) ? NETWORK_HOST_PARAM : ""); + command.append("-p 5000:5000 "); + command.append("--name ").append(gatewayContainerName).append(" "); + command.append("-e host=").append(host).append(" "); + command.append("-e port=").append(port); switch (deviceCredentials.getCredentialsType()) { case ACCESS_TOKEN: @@ -146,7 +148,7 @@ public class DeviceConnectivityUtil { } StringBuilder mqttDockerCommand = new StringBuilder(); - mqttDockerCommand.append(DOCKER_RUN).append(isLocalhost(host) ? "--network=host " : "").append(MQTT_IMAGE); + mqttDockerCommand.append(DOCKER_RUN).append(isLocalhost(host) ? NETWORK_HOST_PARAM : "").append(MQTT_IMAGE); if (MQTTS.equals(protocol)) { mqttDockerCommand.append("/bin/sh -c \"") @@ -178,7 +180,7 @@ public class DeviceConnectivityUtil { public static String getDockerCoapPublishCommand(String protocol, String host, String port, DeviceCredentials deviceCredentials) { String coapCommand = getCoapPublishCommand(protocol, host, port, deviceCredentials); - return coapCommand != null ? String.format("%s%s%s", DOCKER_RUN + (isLocalhost(host) ? "--network=host " : ""), COAP_IMAGE, coapCommand) : null; + return coapCommand != null ? String.format("%s%s%s", DOCKER_RUN + (isLocalhost(host) ? NETWORK_HOST_PARAM : ""), COAP_IMAGE, coapCommand) : null; } public static String getHost(String baseUrl, DeviceConnectivityInfo properties, String protocol) throws URISyntaxException { @@ -199,7 +201,7 @@ public class DeviceConnectivityUtil { } if (inetAddress instanceof Inet6Address) { host = host.replaceAll("[\\[\\]]", ""); - if (!protocol.startsWith(MQTT)) { + if (!MQTT.equals(protocol) && !MQTTS.equals(protocol)) { host = "[" + host + "]"; } } From 276debbd5d9e11b6b70e9e9c6ce818f4fbbda3f7 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 21 Nov 2023 11:27:37 +0200 Subject: [PATCH 088/162] UI: Image Gallery component. --- .../server/controller/ImageController.java | 12 +- .../server/dao/util/ImageUtils.java | 53 +- ui-ngx/src/app/core/http/image.service.ts | 5 +- ui-ngx/src/app/core/services/menu.service.ts | 7 + .../components/grid/scroll-grid.component.ts | 4 + .../home/components/home-components.module.ts | 10 +- .../image/image-gallery.component.html | 269 +++++++++ .../image/image-gallery.component.scss | 182 ++++++ .../image/image-gallery.component.ts | 545 ++++++++++++++++++ .../image/upload-image-dialog.component.html | 61 ++ .../image/upload-image-dialog.component.ts | 90 +++ .../datasource/scroll-grid-datasource.ts | 4 + .../home/pages/admin/admin-routing.module.ts | 20 + .../components/image-input.component.ts | 38 +- .../assets/locale/locale.constant-en_US.json | 28 +- 15 files changed, 1310 insertions(+), 18 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/image/image-gallery.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index a027e77b2e..0d5630c2c1 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -54,9 +54,6 @@ import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; -import java.time.Duration; -import java.util.function.Supplier; - import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES; @@ -80,14 +77,19 @@ public class ImageController extends BaseController { @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @PostMapping("/api/image") - public TbResourceInfo uploadImage(@RequestPart MultipartFile file) throws Exception { + public TbResourceInfo uploadImage(@RequestPart MultipartFile file, + @RequestPart(required = false) String title) throws Exception { SecurityUser user = getCurrentUser(); TbResource image = new TbResource(); image.setTenantId(user.getTenantId()); accessControlService.checkPermission(user, Resource.TB_RESOURCE, Operation.CREATE, null, image); image.setFileName(file.getOriginalFilename()); - image.setTitle(file.getOriginalFilename()); + if (StringUtils.isNotEmpty(title)) { + image.setTitle(title); + } else { + image.setTitle(file.getOriginalFilename()); + } image.setResourceType(ResourceType.IMAGE); ImageDescriptor descriptor = new ImageDescriptor(); descriptor.setMediaType(file.getContentType()); diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/ImageUtils.java b/dao/src/main/java/org/thingsboard/server/dao/util/ImageUtils.java index 6f312b3b72..ee10a403fd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/ImageUtils.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/ImageUtils.java @@ -18,11 +18,21 @@ package org.thingsboard.server.dao.util; import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.batik.anim.dom.SAXSVGDocumentFactory; +import org.apache.batik.bridge.BridgeContext; +import org.apache.batik.bridge.DocumentLoader; +import org.apache.batik.bridge.GVTBuilder; +import org.apache.batik.bridge.UserAgent; +import org.apache.batik.bridge.UserAgentAdapter; +import org.apache.batik.gvt.GraphicsNode; import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder.TranscoderOutput; import org.apache.batik.transcoder.image.PNGTranscoder; +import org.apache.batik.util.XMLResourceDescriptor; import org.springframework.util.MimeType; import org.springframework.util.MimeTypeUtils; +import org.thingsboard.server.common.data.StringUtils; +import org.w3c.dom.Document; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; @@ -52,7 +62,7 @@ public class ImageUtils { public static ProcessedImage processImage(byte[] data, String mediaType, int thumbnailMaxDimension) throws Exception { if (mediaTypeToFileExtension(mediaType).equals("svg")) { - return processSvgImage(data, thumbnailMaxDimension); + return processSvgImage(data, mediaType, thumbnailMaxDimension); } BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(data)); @@ -90,10 +100,45 @@ public class ImageUtils { return image; } - public static ProcessedImage processSvgImage(byte[] data, int thumbnailMaxDimension) throws Exception { + public static ProcessedImage processSvgImage(byte[] data, String mediaType, int thumbnailMaxDimension) throws Exception { + SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory( + XMLResourceDescriptor.getXMLParserClassName()); + Document document = factory.createDocument( + null, new ByteArrayInputStream(data)); + Integer width = null; + Integer height = null; + String strWidth = document.getDocumentElement().getAttribute("width"); + String strHeight = document.getDocumentElement().getAttribute("height"); + if (StringUtils.isNotEmpty(strWidth) && StringUtils.isNotEmpty(strHeight)) { + width = Integer.parseInt(strWidth); + height = Integer.parseInt(strHeight); + } else { + String viewBox = document.getDocumentElement().getAttribute("viewBox"); + if (StringUtils.isNotEmpty(viewBox)) { + String[] viewBoxValues = viewBox.split(" "); + if (viewBoxValues.length > 3) { + width = Integer.parseInt(viewBoxValues[2]); + height = Integer.parseInt(viewBoxValues[3]); + } + } + } + if (width == null) { + UserAgent agent = new UserAgentAdapter(); + DocumentLoader loader= new DocumentLoader(agent); + BridgeContext context = new BridgeContext(agent, loader); + context.setDynamic(true); + GVTBuilder builder= new GVTBuilder(); + GraphicsNode root = builder.build(context, document); + var bounds = root.getPrimitiveBounds(); + if (bounds != null) { + width = (int) bounds.getWidth(); + height = (int) bounds.getHeight(); + } + } ProcessedImage image = new ProcessedImage(); - image.setWidth(0); - image.setHeight(0); + image.setMediaType(mediaType); + image.setWidth(width == null ? 0 : width); + image.setHeight(height == null ? 0 : height); image.setData(data); image.setSize(data.length); diff --git a/ui-ngx/src/app/core/http/image.service.ts b/ui-ngx/src/app/core/http/image.service.ts index f52f55eb27..699582eb38 100644 --- a/ui-ngx/src/app/core/http/image.service.ts +++ b/ui-ngx/src/app/core/http/image.service.ts @@ -41,12 +41,13 @@ export class ImageService { ) { } - public uploadImage(file: File, config?: RequestConfig): Observable { + public uploadImage(file: File, title: string, config?: RequestConfig): Observable { if (!config) { config = {}; } const formData = new FormData(); formData.append('file', file); + formData.append('title', title); return this.http.post('/api/image', formData, defaultHttpUploadOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest)); } @@ -133,7 +134,7 @@ export class ImageService { } public deleteImage(type: ImageResourceType, key: string, config?: RequestConfig) { - return this.http.delete(`${IMAGES_URL_PREFIX}${type}/${encodeURIComponent}`, defaultHttpOptionsFromConfig(config)); + return this.http.delete(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, defaultHttpOptionsFromConfig(config)); } } diff --git a/ui-ngx/src/app/core/services/menu.service.ts b/ui-ngx/src/app/core/services/menu.service.ts index d48b0619ca..aa622af51b 100644 --- a/ui-ngx/src/app/core/services/menu.service.ts +++ b/ui-ngx/src/app/core/services/menu.service.ts @@ -143,6 +143,13 @@ export class MenuService { } ] }, + { + id: 'images', + name: 'image.gallery', + type: 'link', + path: '/resources/images', + icon: 'filter' + }, { id: 'resources_library', name: 'resource.resources-library', diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts index 7044fc040e..b2b6e79fe9 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts @@ -108,4 +108,8 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang trackByItem(index: number, item: T): T { return item; } + + public update() { + this.dataSource.update(); + } } diff --git a/ui-ngx/src/app/modules/home/components/home-components.module.ts b/ui-ngx/src/app/modules/home/components/home-components.module.ts index 46e9f15275..4e3a52e9f1 100644 --- a/ui-ngx/src/app/modules/home/components/home-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/home-components.module.ts @@ -182,6 +182,8 @@ import { ExportWidgetsBundleDialogComponent } from '@home/components/import-export/export-widgets-bundle-dialog.component'; import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; +import { ImageGalleryComponent } from '@home/components/image/image-gallery.component'; +import { UploadImageDialogComponent } from '@home/components/image/upload-image-dialog.component'; @NgModule({ declarations: @@ -327,7 +329,9 @@ import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component RateLimitsTextComponent, RateLimitsDetailsDialogComponent, SendNotificationButtonComponent, - ScrollGridComponent + ScrollGridComponent, + ImageGalleryComponent, + UploadImageDialogComponent ], imports: [ CommonModule, @@ -466,7 +470,9 @@ import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component RateLimitsTextComponent, RateLimitsDetailsDialogComponent, SendNotificationButtonComponent, - ScrollGridComponent + ScrollGridComponent, + ImageGalleryComponent, + UploadImageDialogComponent ], providers: [ WidgetComponentService, diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html new file mode 100644 index 0000000000..ebb4a40507 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -0,0 +1,269 @@ + +
+
+ +
+ image.gallery +
+
+ +
+
+ +
+
+
+
+ +
+ + + +
+ +
+
+ +
+ + +   + + + +
+
+ +
+ + {{ translate.get('image.selected-images', {count: dataSource.selection.selected.length}) | async }} + + + +
+
+
+
+ + + + + + + + + + + + + + + {{ image.title }} + + + + {{ 'image.name' | translate }} + + {{ image.title }} + + + + {{ 'image.created-time' | translate }} + + {{ image.createdTime | date:'yyyy-MM-dd HH:mm:ss' }} + + + + {{ 'image.resolution' | translate }} + + {{ image.descriptor.width }}x{{ image.descriptor.height }} + + + + {{ 'image.size' | translate }} + + {{ image.descriptor.size | fileSize }} + + + + {{ 'image.system' | translate }} + + {{isSystem(image) ? 'check_box' : 'check_box_outline_blank'}} + + + + + + +
+ + + + +
+
+
+ + +
+ + + + {{ 'common.loading' | translate }} +
+ + +
+
+ + +
+
+
+ +
+ + {{ 'common.loading' | translate }} + + +
+
+ +
+
+
image.no-images
+
+
+ +
+
+
+ {{ item.title }} +
+
+
+
+ {{ item.title }} +
+
sys
+
+
+
{{ item.descriptor.width }}x{{ item.descriptor.height }}
+ +
{{ item.descriptor.size | fileSize }}
+
+
+
+
+ +
TODO
+
diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss new file mode 100644 index 0000000000..fe48ba197f --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -0,0 +1,182 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$tb-button-selected-color: rgb(255, 110, 64) !default; + +.tb-images { + .tb-images-content { + width: 100%; + height: 100%; + background: #fff; + overflow: hidden; + + &.tb-outlined-border { + box-shadow: 0 0 0 0 rgb(0 0 0 / 20%), 0 0 0 0 rgb(0 0 0 / 14%), 0 0 0 0 rgb(0 0 0 / 12%); + border: solid 1px #e0e0e0; + border-radius: 4px; + } + + .tb-images-title { + padding-right: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .tb-images-view-type-toolbar { + height: 55px; + min-height: 55px; + padding-right: 16px; + background-color: transparent; + box-shadow: none; + + .tb-toolbar-button { + height: 48px; + button.mat-mdc-icon-button { + margin: 0; + } + &.tb-selected { + background-color: rgba(255, 255, 255, .15); + border-bottom: $tb-button-selected-color solid 4px; + + button.mat-mdc-icon-button { + margin-bottom: -4px; + + .mat-icon { + color: $tb-button-selected-color; + fill: $tb-button-selected-color; + } + } + } + } + } + + .table-container, tb-scroll-grid { + position: relative; + } + + .tb-no-images { + position: absolute; + inset: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + + .tb-image-card { + height: 100%; + border-radius: 8px; + padding: 8px; + display: flex; + gap: 8px; + flex-direction: column; + cursor: pointer; + transition: box-shadow 0.2s; + + .tb-image-preview-container { + position: relative; + .tb-image-preview-spacer { + margin-top: 100%; + } + .tb-image-preview { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + } + } + + .tb-image-details { + flex: 1; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + gap: 4px; + align-self: stretch; + .tb-image-title-container { + display: flex; + align-items: center; + gap: 8px; + align-self: stretch; + .tb-image-title { + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 2; + display: -webkit-box; + -webkit-box-orient: vertical; + color: rgba(0, 0, 0, 0.76); + font-size: 12px; + font-style: normal; + font-weight: 500; + line-height: 16px; + } + .tb-image-sys { + padding: 1px 4px; + border-radius: 4px; + background: rgba(236, 236, 236, 0.64); + color: rgba(0, 0, 0, 0.54); + font-size: 11px; + font-style: normal; + font-weight: 500; + line-height: 16px; + letter-spacing: 0.017px; + } + } + .tb-image-info-container { + display: flex; + align-items: center; + gap: 8px; + align-self: stretch; + color: rgba(0, 0, 0, 0.38); + font-size: 10px; + font-style: normal; + font-weight: 400; + line-height: 16px; + .mat-divider.mat-divider-vertical { + height: 16px; + } + } + } + + &:hover { + box-shadow: 0 0 28px 0 rgba(0, 0, 0, 0.24); + } + } + + .table-container { + overflow: auto; + + .mat-sort-header-sorted .mat-sort-header-arrow { + opacity: 1 !important; + } + .mat-mdc-cell.mat-column-preview { + width: 50px; + height: 50px; + padding: 2px 12px; + display: block; + } + } + + .tb-image-preview { + width: 50px; + height: 50px; + object-fit: contain; + border-radius: 4px; + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts new file mode 100644 index 0000000000..6b1b931d7a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -0,0 +1,545 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { CollectionViewer, DataSource, SelectionModel } from '@angular/cdk/collections'; +import { ImageResourceInfo, imageResourceType } from '@shared/models/resource.models'; +import { BehaviorSubject, forkJoin, merge, Observable, of, ReplaySubject, Subject, Subscription } from 'rxjs'; +import { emptyPageData, PageData } from '@shared/models/page/page-data'; +import { ImageService } from '@core/http/image.service'; +import { TranslateService } from '@ngx-translate/core'; +import { PageLink, PageQueryParam } from '@shared/models/page/page-link'; +import { catchError, debounceTime, distinctUntilChanged, map, skip, takeUntil, tap } from 'rxjs/operators'; +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation +} from '@angular/core'; +import { PageComponent } from '@shared/components/page.component'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort, SortDirection } from '@angular/material/sort'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { UtilsService } from '@core/services/utils.service'; +import { DialogService } from '@core/services/dialog.service'; +import { FormBuilder } from '@angular/forms'; +import { Direction, SortOrder } from '@shared/models/page/sort-order'; +import { ResizeObserver } from '@juggle/resize-observer'; +import { hidePageSizePixelValue } from '@shared/models/constants'; +import { coerceBoolean } from '@shared/decorators/coercion'; +import { ActivatedRoute, QueryParamsHandling, Router } from '@angular/router'; +import { isEqual, isNotEmptyStr } from '@core/utils'; +import { BaseData, HasId } from '@shared/models/base-data'; +import { NULL_UUID } from '@shared/models/id/has-uuid'; +import { getCurrentAuthUser } from '@core/auth/auth.selectors'; +import { Authority } from '@shared/models/authority.enum'; +import { GridEntitiesFetchFunction, ScrollGridColumns } from '@home/models/datasource/scroll-grid-datasource'; +import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; +import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; +import { + AddWidgetDialogComponent, + AddWidgetDialogData +} from '@home/components/dashboard-page/add-widget-dialog.component'; +import { Widget } from '@shared/models/widget.models'; +import { MatDialog } from '@angular/material/dialog'; +import { UploadImageDialogComponent } from '@home/components/image/upload-image-dialog.component'; + +@Component({ + selector: 'tb-image-gallery', + templateUrl: './image-gallery.component.html', + styleUrls: ['./image-gallery.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ImageGalleryComponent extends PageComponent implements OnInit, OnDestroy, AfterViewInit { + + @Input() + @coerceBoolean() + pageMode = true; + + @Input() + mode: 'list' | 'grid' = 'list'; + + @ViewChild('searchInput') searchInputField: ElementRef; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @ViewChild(ScrollGridComponent) gridComponent: ScrollGridComponent; + + defaultPageSize = 10; + defaultSortOrder: SortOrder = { property: 'createdTime', direction: Direction.DESC }; + hidePageSize = false; + + displayedColumns: string[]; + pageSizeOptions: number[]; + pageLink: PageLink; + + textSearchMode = false; + + dataSource: ImagesDatasource; + + textSearch = this.fb.control('', {nonNullable: true}); + + gridColumns: ScrollGridColumns = { + columns: 2, + breakpoints: { + 'screen and (min-width: 2320px)': 10, + 'screen and (min-width: 2000px)': 8, + 'gt-lg': 7, + 'screen and (min-width: 1600px)': 6, + 'gt-md': 5, + 'screen and (min-width: 1120px)': 4, + 'gt-xs': 3 + } + }; + + gridImagesFetchFunction: GridEntitiesFetchFunction; + gridImagesFilter = ''; + + authUser = getCurrentAuthUser(this.store); + + private updateDataSubscription: Subscription; + + private widgetResize$: ResizeObserver; + private destroy$ = new Subject(); + private destroyListMode$: Subject; + + constructor(protected store: Store, + private route: ActivatedRoute, + private router: Router, + private dialog: MatDialog, + public translate: TranslateService, + private imageService: ImageService, + private dialogService: DialogService, + private elementRef: ElementRef, + private cd: ChangeDetectorRef, + private fb: FormBuilder) { + super(store); + + this.gridImagesFetchFunction = (pageSize, page, filter) => { + const pageLink = new PageLink(pageSize, page, filter, { + property: 'createdTime', + direction: Direction.DESC + }); + return this.imageService.getImages(pageLink); + }; + } + + ngOnInit(): void { + this.displayedColumns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size', 'system', 'actions']; + let sortOrder: SortOrder = this.defaultSortOrder; + this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3]; + const routerQueryParams: PageQueryParam = this.route.snapshot.queryParams; + if (this.pageMode) { + if (routerQueryParams.hasOwnProperty('direction') + || routerQueryParams.hasOwnProperty('property')) { + sortOrder = { + property: routerQueryParams?.property || this.defaultSortOrder.property, + direction: routerQueryParams?.direction || this.defaultSortOrder.direction + }; + } + } + this.pageLink = new PageLink(this.defaultPageSize, 0, null, sortOrder); + if (this.pageMode) { + if (routerQueryParams.hasOwnProperty('page')) { + this.pageLink.page = Number(routerQueryParams.page); + } + if (routerQueryParams.hasOwnProperty('pageSize')) { + this.pageLink.pageSize = Number(routerQueryParams.pageSize); + } + const textSearchParam = routerQueryParams.textSearch; + if (isNotEmptyStr(textSearchParam)) { + const decodedTextSearch = decodeURI(textSearchParam); + this.textSearchMode = true; + this.pageLink.textSearch = decodedTextSearch.trim(); + this.textSearch.setValue(decodedTextSearch, {emitEvent: false}); + } + } + if (this.mode === 'list') { + this.dataSource = new ImagesDatasource(this.imageService); + } + } + + ngOnDestroy(): void { + if (this.widgetResize$) { + this.widgetResize$.disconnect(); + } + if (this.destroyListMode$) { + this.destroyListMode$.next(); + this.destroyListMode$.complete(); + } + this.destroy$.next(); + this.destroy$.complete(); + } + + ngAfterViewInit() { + this.textSearch.valueChanges.pipe( + debounceTime(150), + distinctUntilChanged((prev, current) => + ((this.mode === 'list' ? this.pageLink.textSearch : this.gridImagesFilter) ?? '') === current.trim()), + takeUntil(this.destroy$) + ).subscribe(value => { + if (this.mode === 'list') { + if (this.pageMode) { + const queryParams: PageQueryParam = { + textSearch: isNotEmptyStr(value) ? encodeURI(value) : null, + page: null + }; + this.updatedRouterParamsAndData(queryParams); + } else { + this.pageLink.textSearch = isNotEmptyStr(value) ? value.trim() : null; + this.paginator.pageIndex = 0; + this.updateData(); + } + } else { + this.gridImagesFilter = isNotEmptyStr(value) ? value.trim() : null; + this.cd.markForCheck(); + } + }); + this.updateMode(); + } + + public setMode(targetMode: 'list' | 'grid') { + if (this.mode !== targetMode) { + if (this.widgetResize$) { + this.widgetResize$.disconnect(); + this.widgetResize$ = null; + } + if (this.destroyListMode$) { + this.destroyListMode$.next(); + this.destroyListMode$.complete(); + this.destroyListMode$ = null; + } + this.mode = targetMode; + if (this.mode === 'list') { + this.dataSource = new ImagesDatasource(this.imageService); + } + setTimeout(() => { + this.updateMode(); + }); + } + } + + private updateMode() { + if (this.mode === 'list') { + this.initListMode(); + } else { + this.initGridMode(); + } + } + + private initListMode() { + this.destroyListMode$ = new Subject(); + this.widgetResize$ = new ResizeObserver(() => { + const showHidePageSize = this.elementRef.nativeElement.offsetWidth < hidePageSizePixelValue; + if (showHidePageSize !== this.hidePageSize) { + this.hidePageSize = showHidePageSize; + this.cd.markForCheck(); + } + }); + this.widgetResize$.observe(this.elementRef.nativeElement); + if (this.pageMode) { + this.route.queryParams.pipe( + skip(1), + takeUntil(this.destroyListMode$) + ).subscribe((params: PageQueryParam) => { + this.paginator.pageIndex = Number(params.page) || 0; + this.paginator.pageSize = Number(params.pageSize) || this.defaultPageSize; + this.sort.active = params.property || this.defaultSortOrder.property; + this.sort.direction = (params.direction || this.defaultSortOrder.direction).toLowerCase() as SortDirection; + const textSearchParam = params.textSearch; + if (isNotEmptyStr(textSearchParam)) { + const decodedTextSearch = decodeURI(textSearchParam); + this.textSearchMode = true; + this.pageLink.textSearch = decodedTextSearch.trim(); + this.textSearch.setValue(decodedTextSearch, {emitEvent: false}); + } else { + this.pageLink.textSearch = null; + this.textSearch.reset('', {emitEvent: false}); + } + this.updateData(); + }); + } + this.updatePaginationSubscriptions(); + this.updateData(); + } + + private initGridMode() { + + } + + private updatePaginationSubscriptions() { + if (this.updateDataSubscription) { + this.updateDataSubscription.unsubscribe(); + this.updateDataSubscription = null; + } + const sortSubscription$: Observable = this.sort.sortChange.asObservable().pipe( + map((data) => { + const direction = data.direction.toUpperCase(); + const queryParams: PageQueryParam = { + direction: (this.defaultSortOrder.direction === direction ? null : direction) as Direction, + property: this.defaultSortOrder.property === data.active ? null : data.active + }; + queryParams.page = null; + this.paginator.pageIndex = 0; + return queryParams; + }) + ); + const paginatorSubscription$ = this.paginator.page.asObservable().pipe( + map((data) => ({ + page: data.pageIndex === 0 ? null : data.pageIndex, + pageSize: data.pageSize === this.defaultPageSize ? null : data.pageSize + })) + ); + this.updateDataSubscription = (merge(sortSubscription$, paginatorSubscription$) as Observable).pipe( + takeUntil(this.destroyListMode$) + ).subscribe(queryParams => this.updatedRouterParamsAndData(queryParams)); + } + + clearSelection() { + this.dataSource.selection.clear(); + this.cd.detectChanges(); + } + + updateData() { + if (this.mode === 'list') { + this.pageLink.page = this.paginator.pageIndex; + this.pageLink.pageSize = this.paginator.pageSize; + if (this.sort.active) { + this.pageLink.sortOrder = { + property: this.sort.active, + direction: Direction[this.sort.direction.toUpperCase()] + }; + } else { + this.pageLink.sortOrder = null; + } + this.dataSource.loadEntities(this.pageLink); + } else { + this.gridComponent.update(); + } + } + + enterFilterMode() { + this.textSearchMode = true; + setTimeout(() => { + this.searchInputField.nativeElement.focus(); + this.searchInputField.nativeElement.setSelectionRange(0, 0); + }, 10); + } + + exitFilterMode() { + this.textSearchMode = false; + this.textSearch.reset(); + } + + trackByEntityId(index: number, entity: BaseData) { + return entity.id.id; + } + + isSystem(image?: ImageResourceInfo): boolean { + return image?.tenantId?.id === NULL_UUID; + } + + deleteEnabled(image?: ImageResourceInfo): boolean { + return this.authUser.authority === Authority.SYS_ADMIN || !this.isSystem(image); + } + + deleteImage($event: Event, image: ImageResourceInfo) { + if ($event) { + $event.stopPropagation(); + } + const title = this.translate.instant('image.delete-image-title', {imageTitle: image.title}); + const content = this.translate.instant('image.delete-image-text'); + this.dialogService.confirm(title, content, + this.translate.instant('action.no'), + this.translate.instant('action.yes')).subscribe((result) => { + if (result) { + this.imageService.deleteImage(imageResourceType(image), image.resourceKey).subscribe( + () => { + this.updateData(); + } + ); + } + }); + } + + deleteImages($event: Event) { + if ($event) { + $event.stopPropagation(); + } + const selectedImages = this.dataSource.selection.selected; + if (selectedImages && selectedImages.length) { + const title = this.translate.instant('image.delete-images-title', {count: selectedImages.length}); + const content = this.translate.instant('image.delete-images-text'); + this.dialogService.confirm(title, content, + this.translate.instant('action.no'), + this.translate.instant('action.yes')).subscribe((result) => { + if (result) { + const tasks = selectedImages.map((image) => + this.imageService.deleteImage(imageResourceType(image), image.resourceKey)); + forkJoin(tasks).subscribe( + () => { + this.updateData(); + } + ); + } + }); + } + } + + downloadImage($event, image: ImageResourceInfo) { + if ($event) { + $event.stopPropagation(); + } + this.imageService.downloadImage(imageResourceType(image), image.resourceKey).subscribe(); + } + + exportImage($event, image: ImageResourceInfo) { + if ($event) { + $event.stopPropagation(); + } + // TODO: + } + + importImage(): void { + // TODO: + } + + uploadImage(): void { + this.dialog.open(UploadImageDialogComponent, { + disableClose: true, + panelClass: ['tb-dialog', 'tb-fullscreen-dialog'] + }).afterClosed().subscribe((result) => { + if (result) { + this.updateData(); + } + }); + } + + editImage($event, image: ImageResourceInfo) { + if ($event) { + $event.stopPropagation(); + } + // TODO: + } + + protected updatedRouterParamsAndData(queryParams: object, queryParamsHandling: QueryParamsHandling = 'merge') { + if (this.pageMode) { + this.router.navigate([], { + relativeTo: this.route, + queryParams, + queryParamsHandling + }); + if (queryParamsHandling === '' && isEqual(this.route.snapshot.queryParams, queryParams)) { + this.updateData(); + } + } else { + this.updateData(); + } + } + +} + +class ImagesDatasource implements DataSource { + private entitiesSubject = new BehaviorSubject([]); + private pageDataSubject = new BehaviorSubject>(emptyPageData()); + + public pageData$ = this.pageDataSubject.asObservable(); + + public selection = new SelectionModel(true, []); + + public dataLoading = true; + + constructor(private imageService: ImageService) { + } + + connect(collectionViewer: CollectionViewer): + Observable> { + return this.entitiesSubject.asObservable(); + } + + disconnect(collectionViewer: CollectionViewer): void { + this.entitiesSubject.complete(); + this.pageDataSubject.complete(); + } + + reset() { + const pageData = emptyPageData(); + this.entitiesSubject.next(pageData.data); + this.pageDataSubject.next(pageData); + } + + loadEntities(pageLink: PageLink): Observable> { + this.dataLoading = true; + const result = new ReplaySubject>(); + this.fetchEntities(pageLink).pipe( + tap(() => { + this.selection.clear(); + }), + catchError(() => of(emptyPageData())), + ).subscribe( + (pageData) => { + this.entitiesSubject.next(pageData.data); + this.pageDataSubject.next(pageData); + result.next(pageData); + this.dataLoading = false; + } + ); + return result; + } + + fetchEntities(pageLink: PageLink): Observable> { + return this.imageService.getImages(pageLink); + } + + isAllSelected(): Observable { + const numSelected = this.selection.selected.length; + return this.entitiesSubject.pipe( + map((entities) => numSelected === entities.length) + ); + } + + isEmpty(): Observable { + return this.entitiesSubject.pipe( + map((entities) => !entities.length) + ); + } + + total(): Observable { + return this.pageDataSubject.pipe( + map((pageData) => pageData.totalElements) + ); + } + + masterToggle() { + const entities = this.entitiesSubject.getValue(); + const numSelected = this.selection.selected.length; + if (numSelected === entities.length) { + this.selection.clear(); + } else { + entities.forEach(row => { + this.selection.select(row); + }); + } + } + +} diff --git a/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.html b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.html new file mode 100644 index 0000000000..91a668daab --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.html @@ -0,0 +1,61 @@ + +
+ +

{{ 'image.upload-image' | translate }}

+ + +
+ + +
+
+
+ + + + image.name + + + {{ 'image.name-required' | translate }} + + +
+
+
+ + +
+
diff --git a/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts new file mode 100644 index 0000000000..46a2843f7a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts @@ -0,0 +1,90 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, OnInit, SkipSelf } from '@angular/core'; +import { ErrorStateMatcher } from '@angular/material/core'; +import { MatDialogRef } from '@angular/material/dialog'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { + FormGroupDirective, + NgForm, + UntypedFormBuilder, + UntypedFormControl, + UntypedFormGroup, + Validators +} from '@angular/forms'; +import { DialogComponent } from '@shared/components/dialog.component'; +import { Router } from '@angular/router'; +import { ImageService } from '@core/http/image.service'; + +@Component({ + selector: 'tb-upload-image-dialog', + templateUrl: './upload-image-dialog.component.html', + providers: [{provide: ErrorStateMatcher, useExisting: UploadImageDialogComponent}], + styleUrls: [] +}) +export class UploadImageDialogComponent extends + DialogComponent implements OnInit, ErrorStateMatcher { + + uploadImageFormGroup: UntypedFormGroup; + + submitted = false; + + constructor(protected store: Store, + protected router: Router, + private imageService: ImageService, + @SkipSelf() private errorStateMatcher: ErrorStateMatcher, + public dialogRef: MatDialogRef, + public fb: UntypedFormBuilder) { + super(store, router, dialogRef); + } + + ngOnInit(): void { + this.uploadImageFormGroup = this.fb.group({ + file: [null, [Validators.required]], + title: [null, [Validators.required]] + }); + } + + imageFileNameChanged(fileName: string) { + const titleControl = this.uploadImageFormGroup.get('title'); + if (!titleControl.value || !titleControl.touched) { + titleControl.setValue(fileName); + } + } + + isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean { + const originalErrorState = this.errorStateMatcher.isErrorState(control, form); + const customErrorState = !!(control && control.invalid && this.submitted); + return originalErrorState || customErrorState; + } + + cancel(): void { + this.dialogRef.close(false); + } + + upload(): void { + this.submitted = true; + const file: File = this.uploadImageFormGroup.get('file').value; + const title: string = this.uploadImageFormGroup.get('title').value; + this.imageService.uploadImage(file, title).subscribe( + () => { + this.dialogRef.close(true); + } + ); + } +} diff --git a/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts index c653ed0121..83087eadc0 100644 --- a/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts +++ b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts @@ -90,6 +90,10 @@ export class ScrollGridDatasource extends DataSource<(T | GridCellType)[]> public updateFilter(filter: F) { this.filter = filter; + this.update(); + } + + public update() { if (this.active) { const prevLength = this._rows.length; this._reset(); diff --git a/ui-ngx/src/app/modules/home/pages/admin/admin-routing.module.ts b/ui-ngx/src/app/modules/home/pages/admin/admin-routing.module.ts index 5d2727533c..7be45724e8 100644 --- a/ui-ngx/src/app/modules/home/pages/admin/admin-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/admin/admin-routing.module.ts @@ -39,6 +39,7 @@ import { TwoFactorAuthSettingsComponent } from '@home/pages/admin/two-factor-aut import { widgetsLibraryRoutes } from '@home/pages/widget/widget-library-routing.module'; import { RouterTabsComponent } from '@home/components/router-tabs.component'; import { auditLogsRoutes } from '@home/pages/audit-log/audit-log-routing.module'; +import { ImageGalleryComponent } from '@home/components/image/image-gallery.component'; @Injectable() export class OAuth2LoginProcessingUrlResolver implements Resolve { @@ -71,6 +72,25 @@ const routes: Routes = [ } }, ...widgetsLibraryRoutes, + { + path: 'images', + data: { + breadcrumb: { + label: 'image.gallery', + icon: 'filter' + } + }, + children: [ + { + path: '', + component: ImageGalleryComponent, + data: { + auth: [Authority.TENANT_ADMIN, Authority.SYS_ADMIN], + title: 'image.gallery', + }, + } + ] + }, { path: 'resources-library', data: { diff --git a/ui-ngx/src/app/shared/components/image-input.component.ts b/ui-ngx/src/app/shared/components/image-input.component.ts index 026b64a413..8d41532405 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.ts +++ b/ui-ngx/src/app/shared/components/image-input.component.ts @@ -14,7 +14,16 @@ /// limitations under the License. /// -import { AfterViewInit, ChangeDetectorRef, Component, forwardRef, Input, OnDestroy, ViewChild } from '@angular/core'; +import { + AfterViewInit, + ChangeDetectorRef, + Component, EventEmitter, + forwardRef, + Input, + OnDestroy, + Output, + ViewChild +} from '@angular/core'; import { PageComponent } from '@shared/components/page.component'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; @@ -27,6 +36,7 @@ import { UtilsService } from '@core/services/utils.service'; import { DialogService } from '@core/services/dialog.service'; import { TranslateService } from '@ngx-translate/core'; import { FileSizePipe } from '@shared/pipe/file-size.pipe'; +import { coerceBoolean } from '@shared/decorators/coercion'; @Component({ selector: 'tb-image-input', @@ -74,7 +84,16 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, @Input() inputId = this.utils.guid(); + @Input() + @coerceBoolean() + resultAsFile = false; + + @Output() + fileNameChanged = new EventEmitter(); + imageUrl: string; + file: File; + fileName: string; safeImageUrl: SafeUrl; @ViewChild('flow', {static: true}) @@ -97,7 +116,9 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, ngAfterViewInit() { this.autoUploadSubscription = this.flow.events$.subscribe(event => { if (event.type === 'fileAdded') { - const file = (event.event[0] as flowjs.FlowFile).file; + const flowFile = event.event[0] as flowjs.FlowFile; + const file = flowFile.file; + const fileName = flowFile.name; if (this.maxSizeByte && this.maxSizeByte < file.size) { this.dialog.alert( this.translate.instant('dashboard.cannot-upload-file'), @@ -108,10 +129,12 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, return false; } const reader = new FileReader(); - reader.onload = (loadEvent) => { + reader.onload = (_loadEvent) => { if (typeof reader.result === 'string' && reader.result.startsWith('data:image/')) { this.imageUrl = reader.result; this.safeImageUrl = this.sanitizer.bypassSecurityTrustUrl(this.imageUrl); + this.file = file; + this.fileName = fileName; this.updateModel(); } }; @@ -146,12 +169,19 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, private updateModel() { this.cd.markForCheck(); - this.propagateChange(this.imageUrl); + if (this.resultAsFile) { + this.propagateChange(this.file); + } else { + this.propagateChange(this.imageUrl); + } + this.fileNameChanged.emit(this.fileName); } clearImage() { this.imageUrl = null; this.safeImageUrl = null; + this.file = null; + this.fileName = null; this.updateModel(); } } diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index d043b7d86f..98e7334e58 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -77,7 +77,8 @@ "show-more": "Show more", "dont-show-again": "Do not show again", "see-documentation": "See documentation", - "clear": "Clear" + "clear": "Clear", + "upload": "Upload" }, "aggregation": { "aggregation": "Aggregation", @@ -2942,6 +2943,31 @@ "browse-file": "Browse file", "browse-files": "Browse files" }, + "image": { + "gallery": "Image gallery", + "search": "Search image", + "selected-images": "{ count, plural, =1 {1 image} other {# images} } selected", + "created-time": "Created time", + "name": "Name", + "name-required": "Name is required.", + "resolution": "Resolution", + "size": "Size", + "system": "System", + "download-image": "Download image", + "export-image": "Export image", + "import-image": "Import image", + "upload-image": "Upload image", + "edit-image": "Edit image", + "no-images": "No images found", + "delete-image": "Delete image", + "delete-image-title": "Are you sure you want to delete image '{{imageTitle}}'?", + "delete-image-text": "Be careful, after the confirmation image will become unrecoverable.", + "delete-images-title": "Are you sure you want to delete { count, plural, =1 {1 image} other {# images} }?", + "delete-images-text": "Be careful, after the confirmation all selected images will be removed and all related data will become unrecoverable.", + "list-mode": "List view", + "grid-mode": "Grid view", + "image-preview": "Image preview" + }, "image-input": { "drop-images-or": "Drag and drop an images or", "drag-and-drop": "Drag & Drop", From 31aa1d25e030243dd2599913396e3f148699d274 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Tue, 10 Oct 2023 16:22:57 +0200 Subject: [PATCH 089/162] added fst stats --- .../server/service/stats/FstStats.java | 29 +++++ .../src/main/resources/thingsboard.yml | 6 +- .../server/common/data/FSTUtils.java | 122 +++++++++++++++++- 3 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/stats/FstStats.java diff --git a/application/src/main/java/org/thingsboard/server/service/stats/FstStats.java b/application/src/main/java/org/thingsboard/server/service/stats/FstStats.java new file mode 100644 index 0000000000..d66b9fd138 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/stats/FstStats.java @@ -0,0 +1,29 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.stats; + +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.FSTUtils; + +@Service +public class FstStats { + + @Scheduled(initialDelayString = "${fst.stats.printInterval}", fixedDelayString = "${fst.stats.printInterval}") + public void printStats() { + FSTUtils.printStats(); + } +} diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index ecc89c84c5..bba7800a28 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1680,4 +1680,8 @@ management: web: exposure: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). - include: '${METRICS_ENDPOINTS_EXPOSE:info}' \ No newline at end of file + include: '${METRICS_ENDPOINTS_EXPOSE:info}' + +fst: + stats: + printInterval: "${FST_STATS_PRINT_INTERVAL:600000}" # 10 min by default \ No newline at end of file diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/FSTUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/FSTUtils.java index 83447d7a6b..e70c6f29c6 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/FSTUtils.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/FSTUtils.java @@ -15,21 +15,137 @@ */ package org.thingsboard.server.common.data; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.nustaq.serialization.FSTConfiguration; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; + @Slf4j public class FSTUtils { public static final FSTConfiguration CONFIG = FSTConfiguration.createDefaultConfiguration(); + private static final ConcurrentHashMap STATS = new ConcurrentHashMap<>(); + @SuppressWarnings("unchecked") public static T decode(byte[] byteArray) { - return byteArray != null && byteArray.length > 0 ? (T) CONFIG.asObject(byteArray) : null; + long startTime = System.nanoTime(); + T result = byteArray != null && byteArray.length > 0 ? (T) CONFIG.asObject(byteArray) : null; + long endTime = System.nanoTime(); + + if (log.isDebugEnabled() && result != null) { + String className = result.getClass().getSimpleName(); + STATS.computeIfAbsent(className, k -> new Stats()).incrementDecode(endTime - startTime); + } + + return result; + } + + public static byte[] encode(T msg) { + long startTime = System.nanoTime(); + byte[] result = CONFIG.asByteArray(msg); + long endTime = System.nanoTime(); + + if (log.isDebugEnabled() && msg != null) { + String className = msg.getClass().getSimpleName(); + STATS.computeIfAbsent(className, k -> new Stats()).incrementEncode(endTime - startTime); + } + + return result; + } + + public static void printStats() { + if (log.isDebugEnabled()) { + List topDecode = STATS.entrySet().stream() + .filter(e -> e.getValue().getAvgDecodeTime() > 0) + .sorted((e1, e2) -> Long.compare(e2.getValue().getAvgDecodeTime(), e1.getValue().getAvgDecodeTime())) + .limit(5) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + + List topEncode = STATS.entrySet().stream() + .filter(e -> e.getValue().getAvgEncodeTime() > 0) + .sorted((e1, e2) -> Long.compare(e2.getValue().getAvgEncodeTime(), e1.getValue().getAvgEncodeTime())) + .limit(5) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + + List topDecodeCount = STATS.entrySet().stream() + .filter(e -> e.getValue().getDecodeCount().get() > 0) + .sorted((e1, e2) -> Long.compare(e2.getValue().getDecodeCount().get(), e1.getValue().getDecodeCount().get())) + .limit(5) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + + List topEncodeCount = STATS.entrySet().stream() + .filter(e -> e.getValue().getEncodeCount().get() > 0) + .sorted((e1, e2) -> Long.compare(e2.getValue().getEncodeCount().get(), e1.getValue().getEncodeCount().get())) + .limit(5) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + + for (Map.Entry entry : STATS.entrySet()) { + Stats stats = entry.getValue(); + if (stats.isNotEmpty()) { + log.debug("[FST stats] [{}] {}", entry.getKey(), stats); + stats.reset(); + } + } + + log.debug("[FST stats] Top 5 slowest 'decode' {}", topDecode); + log.debug("[FST stats] Top 5 slowest 'encode' {}", topEncode); + log.debug("[FST stats] Top 5 'decode' count {}", topDecodeCount); + log.debug("[FST stats] Top 5 'encode' count {}", topEncodeCount); + } } - public static byte[] encode(T msq) { - return CONFIG.asByteArray(msq); + @Data + private static class Stats { + private final AtomicLong encodeCount = new AtomicLong(); + private final AtomicLong decodeCount = new AtomicLong(); + private final AtomicLong totalEncodeTime = new AtomicLong(); + private final AtomicLong totalDecodeTime = new AtomicLong(); + + private void incrementEncode(long time) { + encodeCount.incrementAndGet(); + totalEncodeTime.addAndGet(time); + } + + private void incrementDecode(long time) { + decodeCount.incrementAndGet(); + totalDecodeTime.addAndGet(time); + } + + private boolean isNotEmpty() { + return encodeCount.get() > 0 || decodeCount.get() > 0; + } + + private long getAvgEncodeTime() { + long count = encodeCount.get(); + return count > 0 ? totalEncodeTime.get() / count : 0; + } + + private long getAvgDecodeTime() { + long count = decodeCount.get(); + return count > 0 ? totalDecodeTime.get() / count : 0; + } + + private void reset() { + encodeCount.set(0); + decodeCount.set(0); + totalEncodeTime.set(0); + totalDecodeTime.set(0); + } + + @Override + public String toString() { + return String.format("decodeCount [%d] avgDecodeTime [%d] encodedCount [%d] avgEncodeTime [%d]", decodeCount.get(), getAvgDecodeTime(), encodeCount.get(), getAvgEncodeTime()); + } } } From b61e6d878c7555f68e2c2a275baecc9e0227bbad Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 21 Nov 2023 12:03:07 +0200 Subject: [PATCH 090/162] Implement force delete of the image --- .../server/controller/ImageController.java | 11 +-- .../controller/WidgetTypeController.java | 1 + .../resource/DefaultTbImageService.java | 11 +-- .../service/resource/TbImageService.java | 3 +- .../server/dao/resource/ImageService.java | 3 +- .../server/dao/resource/ResourceService.java | 2 + .../common/data/TbImageDeleteResult.java | 32 +++++++++ .../server/dao/ImageContainerDao.java | 29 ++++++++ .../server/dao/asset/AssetDao.java | 2 + .../server/dao/asset/AssetProfileDao.java | 4 +- .../dao/dashboard/DashboardInfoDao.java | 7 +- .../server/dao/device/DeviceProfileDao.java | 4 +- .../server/dao/resource/BaseImageService.java | 69 ++++++++++++++++++- .../dao/resource/BaseResourceService.java | 10 ++- .../dao/sql/asset/AssetProfileRepository.java | 10 +++ .../dao/sql/asset/JpaAssetProfileDao.java | 12 ++++ .../dashboard/DashboardInfoRepository.java | 13 ++++ .../sql/dashboard/JpaDashboardInfoDao.java | 12 +++- .../sql/device/DeviceProfileRepository.java | 10 +++ .../dao/sql/device/JpaDeviceProfileDao.java | 13 ++++ .../dao/sql/widget/JpaWidgetTypeDao.java | 10 +++ .../dao/sql/widget/JpaWidgetsBundleDao.java | 10 +++ .../sql/widget/WidgetTypeInfoRepository.java | 13 ++++ .../sql/widget/WidgetsBundleRepository.java | 6 ++ .../server/dao/widget/WidgetTypeDao.java | 3 +- .../server/dao/widget/WidgetsBundleDao.java | 4 +- .../dao/sql/widget/JpaWidgetTypeDaoTest.java | 23 +++++++ 27 files changed, 307 insertions(+), 20 deletions(-) create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/ImageContainerDao.java diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 1a1b4e3b46..25d04bec5f 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -50,14 +50,13 @@ import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.dao.resource.ImageService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.resource.ImageCacheKey; +import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.service.resource.TbImageService; import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; -import java.time.Duration; import java.util.concurrent.TimeUnit; -import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION; @@ -174,10 +173,12 @@ public class ImageController extends BaseController { @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @DeleteMapping(IMAGE_URL) - public void deleteImage(@PathVariable String type, - @PathVariable String key) throws ThingsboardException { + public ResponseEntity deleteImage(@PathVariable String type, + @PathVariable String key, + @RequestParam(name = "force", required = false) boolean force) throws ThingsboardException { TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.DELETE); - tbImageService.delete(imageInfo, getCurrentUser()); + TbImageDeleteResult result = tbImageService.delete(imageInfo, getCurrentUser(), force); + return (result.isSuccess() ? ResponseEntity.ok() : ResponseEntity.badRequest()).body(result); } private ResponseEntity downloadIfChanged(String type, String key, String etag, boolean preview) throws ThingsboardException, JsonProcessingException { diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java index f90a196edf..8d475a211d 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java @@ -369,6 +369,7 @@ public class WidgetTypeController extends AutoCommitController { String typeFqn = fqn.substring(scopeQualifier.length() + 1); WidgetType widgetType = widgetTypeService.findWidgetTypeByTenantIdAndFqn(tenantId, typeFqn); checkNotNull(widgetType); + accessControlService.checkPermission(getCurrentUser(), Resource.WIDGET_TYPE, Operation.READ, widgetType.getId(), widgetType); return widgetType; } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 0820965544..f24b11afd7 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -17,10 +17,10 @@ package org.thingsboard.server.service.resource; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; -import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.User; @@ -90,12 +90,15 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb } @Override - public void delete(TbResourceInfo imageInfo, User user) { + public TbImageDeleteResult delete(TbResourceInfo imageInfo, User user, boolean force) { TenantId tenantId = imageInfo.getTenantId(); TbResourceId imageId = imageInfo.getId(); try { - imageService.deleteImage(tenantId, imageId); - notificationEntityService.logEntityAction(tenantId, imageId, imageInfo, ActionType.DELETED, user, imageId.toString()); + TbImageDeleteResult result = imageService.deleteImage(imageInfo, force); + if (result.isSuccess()) { + notificationEntityService.logEntityAction(tenantId, imageId, imageInfo, ActionType.DELETED, user, imageId.toString()); + } + return result; } catch (Exception e) { notificationEntityService.logEntityAction(tenantId, imageId, ActionType.DELETED, user, e, imageId.toString()); throw e; diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java index 3db512528a..2e2f95e4c7 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.resource; +import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.User; @@ -25,7 +26,7 @@ public interface TbImageService { TbResourceInfo save(TbResourceInfo imageInfo, User user); - void delete(TbResourceInfo imageInfo, User user); + TbImageDeleteResult delete(TbResourceInfo imageInfo, User user, boolean force); String getETag(ImageCacheKey imageCacheKey); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java index f294083290..82779fca21 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.resource; +import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TbResourceId; @@ -40,7 +41,7 @@ public interface ImageService { byte[] getImagePreview(TenantId tenantId, TbResourceId imageId); - void deleteImage(TenantId tenantId, TbResourceId imageId); + TbImageDeleteResult deleteImage(TbResourceInfo imageInfo, boolean force); List findSimilarImagesByTenantIdAndKeyStartingWith(TenantId tenantId, byte[] data, String imageKeyStartingWith); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 8614b74502..b4cda2d733 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -56,6 +56,8 @@ public interface ResourceService extends EntityDaoService { void deleteResource(TenantId tenantId, TbResourceId resourceId); + void deleteResource(TenantId tenantId, TbResourceId resourceId, boolean force); + void deleteResourcesByTenantId(TenantId tenantId); long sumDataSizeByTenantId(TenantId tenantId); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java new file mode 100644 index 0000000000..22f01c83a9 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java @@ -0,0 +1,32 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.data; + +import lombok.Builder; +import lombok.Data; +import org.thingsboard.server.common.data.id.HasId; + +import java.util.List; +import java.util.Map; + +@Data +@Builder +public class TbImageDeleteResult { + + private boolean success; + private Map>> affectedEntities; + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/ImageContainerDao.java b/dao/src/main/java/org/thingsboard/server/dao/ImageContainerDao.java new file mode 100644 index 0000000000..162ce75dc0 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/ImageContainerDao.java @@ -0,0 +1,29 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao; + +import org.thingsboard.server.common.data.id.HasId; +import org.thingsboard.server.common.data.id.TenantId; + +import java.util.List; + +public interface ImageContainerDao> { + + List findByTenantAndImageLink(TenantId tenantId, String imageUrl, int limit); + + List findByImageLink(String imageUrl, int limit); + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java index 5e7c3ff455..37d5dcea7c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java @@ -24,8 +24,10 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.util.TbPair; +import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.ExportableEntityDao; +import org.thingsboard.server.dao.ImageContainerDao; import org.thingsboard.server.dao.TenantEntityDao; import java.util.List; diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileDao.java index b7fc5fedc6..bffe9e86e9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileDao.java @@ -21,12 +21,14 @@ import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.ExportableEntityDao; +import org.thingsboard.server.dao.ImageContainerDao; import java.util.UUID; -public interface AssetProfileDao extends Dao, ExportableEntityDao { +public interface AssetProfileDao extends Dao, ExportableEntityDao, ImageContainerDao { AssetProfileInfo findAssetProfileInfoById(TenantId tenantId, UUID assetProfileId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardInfoDao.java index 887c39109e..1d1cf36fff 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/DashboardInfoDao.java @@ -16,16 +16,20 @@ package org.thingsboard.server.dao.dashboard; import org.thingsboard.server.common.data.DashboardInfo; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.dao.Dao; +import org.thingsboard.server.dao.ImageContainerDao; +import java.util.List; import java.util.UUID; /** * The Interface DashboardInfoDao. */ -public interface DashboardInfoDao extends Dao { +public interface DashboardInfoDao extends Dao, ImageContainerDao { /** * Find dashboards by tenantId and page link. @@ -78,4 +82,5 @@ public interface DashboardInfoDao extends Dao { DashboardInfo findFirstByTenantIdAndName(UUID tenantId, String name); String findTitleById(UUID tenantId, UUID dashboardId); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileDao.java index c221002413..d3a13d82bf 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceProfileDao.java @@ -17,16 +17,18 @@ package org.thingsboard.server.dao.device; import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.DeviceProfileInfo; +import org.thingsboard.server.common.data.asset.AssetProfileInfo; import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.ExportableEntityDao; +import org.thingsboard.server.dao.ImageContainerDao; import java.util.UUID; -public interface DeviceProfileDao extends Dao, ExportableEntityDao { +public interface DeviceProfileDao extends Dao, ExportableEntityDao, ImageContainerDao { DeviceProfileInfo findDeviceProfileInfoById(TenantId tenantId, UUID deviceProfileId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 500fe37d33..e7469038a3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -18,23 +18,40 @@ package org.thingsboard.server.dao.resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.thingsboard.common.util.RegexUtils; +import org.thingsboard.server.common.data.DashboardInfo; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfoFilter; +import org.thingsboard.server.common.data.id.HasId; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.WidgetTypeInfo; +import org.thingsboard.server.dao.ImageContainerDao; +import org.thingsboard.server.dao.asset.AssetProfileDao; +import org.thingsboard.server.dao.dashboard.DashboardInfoDao; +import org.thingsboard.server.dao.device.DeviceProfileDao; +import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.validator.ResourceDataValidator; import org.thingsboard.server.dao.util.ImageUtils; import org.thingsboard.server.dao.util.ImageUtils.ProcessedImage; +import org.thingsboard.server.dao.widget.WidgetTypeDao; +import org.thingsboard.server.dao.widget.WidgetsBundleDao; +import javax.annotation.PostConstruct; +import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.regex.Pattern; @@ -43,10 +60,34 @@ import java.util.regex.Pattern; @Slf4j public class BaseImageService extends BaseResourceService implements ImageService { + private static final int MAX_ENTITIES_TO_FIND = 10; + @Autowired + private AssetProfileDao assetProfileDao; + @Autowired + private DeviceProfileDao deviceProfileDao; + @Autowired + private WidgetsBundleDao widgetsBundleDao; + @Autowired + private WidgetTypeDao widgetTypeDao; + @Autowired + private DashboardInfoDao dashboardInfoDao; + + private final Map> imageContainerDaoMap = new HashMap<>(); + public BaseImageService(TbResourceDao resourceDao, TbResourceInfoDao resourceInfoDao, ResourceDataValidator resourceValidator) { super(resourceDao, resourceInfoDao, resourceValidator); } + @PostConstruct + public void init() { + imageContainerDaoMap.put(EntityType.WIDGET_TYPE, widgetTypeDao); + imageContainerDaoMap.put(EntityType.WIDGETS_BUNDLE, widgetsBundleDao); + imageContainerDaoMap.put(EntityType.DEVICE_PROFILE, deviceProfileDao); + imageContainerDaoMap.put(EntityType.ASSET_PROFILE, assetProfileDao); + imageContainerDaoMap.put(EntityType.DASHBOARD, dashboardInfoDao); + } + + @Transactional @Override public TbResourceInfo saveImage(TbResource image) throws Exception { @@ -147,8 +188,32 @@ public class BaseImageService extends BaseResourceService implements ImageServic } @Override - public void deleteImage(TenantId tenantId, TbResourceId imageId) { - deleteResource(tenantId, imageId); + public TbImageDeleteResult deleteImage(TbResourceInfo imageInfo, boolean force) { + var tenantId = imageInfo.getTenantId(); + var imageId = imageInfo.getId(); + log.trace("Executing deleteImage [{}] [{}]", tenantId, imageId); + Validator.validateId(imageId, INCORRECT_RESOURCE_ID + imageId); + TbImageDeleteResult.TbImageDeleteResultBuilder result = TbImageDeleteResult.builder(); + boolean success = true; + if (!force) { + var link = imageInfo.getLink(); + Map>> affectedEntities = new HashMap<>(); + imageContainerDaoMap.forEach((entityType, imageContainerDao) -> { + var entities = tenantId.isSysTenantId() ? imageContainerDao.findByImageLink(link, MAX_ENTITIES_TO_FIND) : + imageContainerDao.findByTenantAndImageLink(tenantId, link, MAX_ENTITIES_TO_FIND); + if (!entities.isEmpty()) { + affectedEntities.put(entityType.name(), entities); + } + }); + if (!affectedEntities.isEmpty()) { + success = false; + result.affectedEntities(affectedEntities); + } + } + if (success) { + deleteResource(tenantId, imageId, force); + } + return result.success(success).build(); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 13ed98b461..d935409afb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -145,13 +145,21 @@ public class BaseResourceService extends AbstractCachedEntityService findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { TenantId tenantId = filter.getTenantId(); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetProfileRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetProfileRepository.java index f23478e6d5..6c66363ed1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetProfileRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetProfileRepository.java @@ -23,7 +23,9 @@ import org.springframework.data.repository.query.Param; import org.thingsboard.server.common.data.asset.AssetProfileInfo; import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.AssetProfileEntity; +import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; +import java.util.List; import java.util.UUID; public interface AssetProfileRepository extends JpaRepository, ExportableEntityRepository { @@ -60,4 +62,12 @@ public interface AssetProfileRepository extends JpaRepository findByTenantAndImageLink(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, Pageable page); + + @Query("SELECT new org.thingsboard.server.common.data.asset.AssetProfileInfo(a.id, a.tenantId, a.name, a.image, a.defaultDashboardId) " + + "FROM AssetProfileEntity a WHERE a.image = :imageLink") + List findByImageLink(@Param("imageLink") String imageLink, Pageable page); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetProfileDao.java index e34df2f21c..4d6c8c0406 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetProfileDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetProfileDao.java @@ -16,6 +16,7 @@ package org.thingsboard.server.dao.sql.asset; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -31,6 +32,7 @@ import org.thingsboard.server.dao.asset.AssetProfileDao; import org.thingsboard.server.dao.model.sql.AssetProfileEntity; import org.thingsboard.server.dao.sql.JpaAbstractDao; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -118,6 +120,16 @@ public class JpaAssetProfileDao extends JpaAbstractDao findByTenantAndImageLink(TenantId tenantId, String imageLink, int limit) { + return assetProfileRepository.findByTenantAndImageLink(tenantId.getId(), imageLink, PageRequest.of(0, limit)); + } + + @Override + public List findByImageLink(String imageLink, int limit) { + return assetProfileRepository.findByImageLink(imageLink, PageRequest.of(0, limit)); + } + @Override public EntityType getEntityType() { return EntityType.ASSET_PROFILE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java index bddda18563..a92da55c03 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java @@ -22,6 +22,7 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.model.sql.DashboardInfoEntity; +import java.util.List; import java.util.UUID; /** @@ -74,4 +75,16 @@ public interface DashboardInfoRepository extends JpaRepository findByTenantAndImageLink(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, @Param("lmt") int lmt); + + @Query(nativeQuery = true, + value = "SELECT * FROM dashboard d WHERE d.image = :imageLink or d.configuration ILIKE CONCAT('%', :imageLink, '%') limit :lmt" + ) + List findByImageLink(@Param("imageLink") String imageLink, @Param("lmt") int lmt); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java index b988048db8..c9318db61e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.DashboardInfo; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.SortOrder; @@ -31,7 +32,6 @@ import org.thingsboard.server.dao.util.SqlDao; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.UUID; /** @@ -123,4 +123,14 @@ public class JpaDashboardInfoDao extends JpaAbstractDao findByTenantAndImageLink(TenantId tenantId, String imageLink, int limit) { + return DaoUtil.convertDataList(dashboardInfoRepository.findByTenantAndImageLink(tenantId.getId(), imageLink, limit)); + } + + @Override + public List findByImageLink(String imageLink, int limit) { + return DaoUtil.convertDataList(dashboardInfoRepository.findByImageLink(imageLink, limit)); + } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceProfileRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceProfileRepository.java index 295b64cd89..996e29f81f 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceProfileRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceProfileRepository.java @@ -22,9 +22,11 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.common.data.DeviceProfileInfo; import org.thingsboard.server.common.data.DeviceTransportType; +import org.thingsboard.server.common.data.asset.AssetProfileInfo; import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.DeviceProfileEntity; +import java.util.List; import java.util.UUID; public interface DeviceProfileRepository extends JpaRepository, ExportableEntityRepository { @@ -68,6 +70,14 @@ public interface DeviceProfileRepository extends JpaRepository findByTenantAndImageLink(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, Pageable page); + + @Query("SELECT new org.thingsboard.server.common.data.DeviceProfileInfo(d.id, d.tenantId, d.name, d.image, d.defaultDashboardId, d.type, d.transportType) " + + "FROM DeviceProfileEntity d WHERE d.image = :imageLink") + List findByImageLink(@Param("imageLink") String imageLink, Pageable page); + @Query("SELECT externalId FROM DeviceProfileEntity WHERE id = :id") UUID getExternalIdById(@Param("id") UUID id); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java index 7b334330fd..201545d164 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceProfileDao.java @@ -16,6 +16,7 @@ package org.thingsboard.server.dao.sql.device; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +25,7 @@ import org.thingsboard.server.common.data.DeviceProfileInfo; import org.thingsboard.server.common.data.DeviceTransportType; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.StringUtils; +import org.thingsboard.server.common.data.asset.AssetProfileInfo; import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; @@ -34,6 +36,7 @@ import org.thingsboard.server.dao.model.sql.DeviceProfileEntity; import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -136,6 +139,16 @@ public class JpaDeviceProfileDao extends JpaAbstractDao findByTenantAndImageLink(TenantId tenantId, String imageLink, int limit) { + return deviceProfileRepository.findByTenantAndImageLink(tenantId.getId(), imageLink, PageRequest.of(0, limit)); + } + + @Override + public List findByImageLink(String imageLink, int limit) { + return deviceProfileRepository.findByImageLink(imageLink, PageRequest.of(0, limit)); + } + @Override public EntityType getEntityType() { return EntityType.DEVICE_PROFILE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index f1878e1de8..d105943a80 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -236,6 +236,16 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findByTenantAndImageLink(TenantId tenantId, String imageUrl, int limit) { + return DaoUtil.convertDataList(widgetTypeInfoRepository.findByTenantAndImageUrl(tenantId.getId(), imageUrl, limit)); + } + + @Override + public List findByImageLink(String imageUrl, int limit) { + return DaoUtil.convertDataList(widgetTypeInfoRepository.findByImageUrl(imageUrl, limit)); + } + @Override public EntityType getEntityType() { return EntityType.WIDGET_TYPE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index 2475da8fb7..27759864d0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -146,6 +146,16 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findByTenantAndImageLink(TenantId tenantId, String imageUrl, int limit) { + return DaoUtil.convertDataList(widgetsBundleRepository.findByTenantAndImageUrl(tenantId.getId(), imageUrl, limit)); + } + + @Override + public List findByImageLink(String imageUrl, int limit) { + return DaoUtil.convertDataList(widgetsBundleRepository.findByImageUrl(imageUrl, limit)); + } + @Override public EntityType getEntityType() { return EntityType.WIDGETS_BUNDLE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java index f9114a9e40..e9dcca7914 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java @@ -194,4 +194,17 @@ public interface WidgetTypeInfoRepository extends JpaRepository widgetTypes, Pageable pageable); + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti WHERE wti.id IN " + + "(select id from widget_type where tenant_id = :tenantId " + + "and (image = :imageLink or descriptor ILIKE CONCAT('%', :imageLink, '%')) limit :lmt)" + ) + List findByTenantAndImageUrl(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, @Param("lmt") int lmt); + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti WHERE wti.id IN " + + "(select id from widget_type where image = :imageLink or descriptor ILIKE CONCAT('%', :imageLink, '%') limit :lmt)" + ) + List findByImageUrl(@Param("imageLink") String imageLink, @Param("lmt") int lmt); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java index 9db39aab8f..64440fb1f4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java @@ -21,6 +21,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.ExportableEntityRepository; +import org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; import java.util.List; @@ -133,4 +134,9 @@ public interface WidgetsBundleRepository extends JpaRepository findByTenantAndImageUrl(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, @Param("lmt") int lmt); + + @Query(nativeQuery = true, value = "SELECT * FROM widgets_bundle wb WHERE wb.image = :imageLink limit :lmt") + List findByImageUrl(@Param("imageLink") String imageLink, @Param("lmt") int lmt); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java index 55fb5bcff4..23e25d12ec 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.common.data.widget.WidgetsBundleWidget; import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.ExportableEntityDao; +import org.thingsboard.server.dao.ImageContainerDao; import java.util.List; import java.util.UUID; @@ -33,7 +34,7 @@ import java.util.UUID; /** * The Interface WidgetTypeDao. */ -public interface WidgetTypeDao extends Dao, ExportableEntityDao { +public interface WidgetTypeDao extends Dao, ExportableEntityDao, ImageContainerDao { /** * Save or update widget type object diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java index e83da6cc8e..939f9e43e5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.widget; +import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.page.PageData; @@ -22,13 +23,14 @@ import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.ExportableEntityDao; +import org.thingsboard.server.dao.ImageContainerDao; import java.util.UUID; /** * The Interface WidgetsBundleDao. */ -public interface WidgetsBundleDao extends Dao, ExportableEntityDao { +public interface WidgetsBundleDao extends Dao, ExportableEntityDao, ImageContainerDao { /** * Save or update widgets bundle object diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java index e6d46bb942..0a466d033c 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java @@ -110,6 +110,7 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { widgetType.setName("WIDGET_TYPE_" + number); widgetType.setDescription("WIDGET_TYPE_DESCRIPTION" + number); widgetType.setFqn("FQN_" + number); + widgetType.setImage("/image/system/logo.png"); var descriptor = JacksonUtil.newObjectNode(); descriptor.put("type", number % 2 == 0 ? "latest" : "static"); widgetType.setDescriptor(descriptor); @@ -124,6 +125,7 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { widgetType.setName("WIDGET_TYPE_" + number); widgetType.setDescription("WIDGET_TYPE_DESCRIPTION" + number); widgetType.setFqn("FQN_" + number); + widgetType.setImage("/image/tenant/logo.png"); var descriptor = JacksonUtil.newObjectNode(); descriptor.put("type", number % 2 == 0 ? "latest" : "static"); widgetType.setDescriptor(descriptor); @@ -332,4 +334,25 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { WidgetType widgetType = widgetTypeDao.findByTenantIdAndFqn(TenantId.SYS_TENANT_ID.getId(), "FQN_0"); assertEquals(result.getId(), widgetType.getId()); } + + @Test + public void testFindByTenantAndImageLink() { + var result = widgetTypeDao.findByImageLink("/image/system/logo.png", 5); + assertEquals(3, result.size()); + result = widgetTypeDao.findByImageLink("/image/system/logo2.png", 5); + assertEquals(0, result.size()); + } + + @Test + public void testFindByImageLink() { + TenantId tenantId = new TenantId(UUID.randomUUID()); + WidgetTypeDetails details = createAndSaveWidgetType(tenantId, 0, new String[]{"a"}); + details.setDescriptor(JacksonUtil.newObjectNode().put("bg", "/image/tenant/widget.png")); + widgetTypeDao.save(tenantId, details); + var result = widgetTypeDao.findByTenantAndImageLink(tenantId, "/image/tenant/widget.png", 3); + assertEquals(1, result.size()); + result = widgetTypeDao.findByTenantAndImageLink(tenantId, "/image/tenant/widget2.png", 3); + assertEquals(0, result.size()); + widgetTypeDao.removeById(tenantId, details.getUuidId()); + } } From eabc5d4a49ccfd51d42a786a711ada4c0db844b4 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 21 Nov 2023 12:55:14 +0200 Subject: [PATCH 091/162] Minor improvement --- .../common/data/TbImageDeleteResult.java | 2 +- .../server/dao/resource/BaseImageService.java | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java index 22f01c83a9..9782b2b58f 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbImageDeleteResult.java @@ -27,6 +27,6 @@ import java.util.Map; public class TbImageDeleteResult { private boolean success; - private Map>> affectedEntities; + private Map>> references; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index e7469038a3..559e220b48 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.resource; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; @@ -22,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.thingsboard.common.util.RegexUtils; -import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; @@ -35,7 +35,6 @@ import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; -import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.dao.ImageContainerDao; import org.thingsboard.server.dao.asset.AssetProfileDao; import org.thingsboard.server.dao.dashboard.DashboardInfoDao; @@ -48,7 +47,6 @@ import org.thingsboard.server.dao.widget.WidgetTypeDao; import org.thingsboard.server.dao.widget.WidgetsBundleDao; import javax.annotation.PostConstruct; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -61,21 +59,23 @@ import java.util.regex.Pattern; public class BaseImageService extends BaseResourceService implements ImageService { private static final int MAX_ENTITIES_TO_FIND = 10; - @Autowired - private AssetProfileDao assetProfileDao; - @Autowired - private DeviceProfileDao deviceProfileDao; - @Autowired - private WidgetsBundleDao widgetsBundleDao; - @Autowired - private WidgetTypeDao widgetTypeDao; - @Autowired - private DashboardInfoDao dashboardInfoDao; + private final AssetProfileDao assetProfileDao; + private final DeviceProfileDao deviceProfileDao; + private final WidgetsBundleDao widgetsBundleDao; + private final WidgetTypeDao widgetTypeDao; + private final DashboardInfoDao dashboardInfoDao; private final Map> imageContainerDaoMap = new HashMap<>(); - public BaseImageService(TbResourceDao resourceDao, TbResourceInfoDao resourceInfoDao, ResourceDataValidator resourceValidator) { + public BaseImageService(TbResourceDao resourceDao, TbResourceInfoDao resourceInfoDao, ResourceDataValidator resourceValidator, + AssetProfileDao assetProfileDao, DeviceProfileDao deviceProfileDao, WidgetsBundleDao widgetsBundleDao, + WidgetTypeDao widgetTypeDao, DashboardInfoDao dashboardInfoDao) { super(resourceDao, resourceInfoDao, resourceValidator); + this.assetProfileDao = assetProfileDao; + this.deviceProfileDao = deviceProfileDao; + this.widgetsBundleDao = widgetsBundleDao; + this.widgetTypeDao = widgetTypeDao; + this.dashboardInfoDao = dashboardInfoDao; } @PostConstruct @@ -207,7 +207,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic }); if (!affectedEntities.isEmpty()) { success = false; - result.affectedEntities(affectedEntities); + result.references(affectedEntities); } } if (success) { From 678ac153247fa479a0e16de0557857ab3f64a63d Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 21 Nov 2023 14:08:52 +0200 Subject: [PATCH 092/162] UI: Implement image edit/update. --- .../server/controller/ImageController.java | 1 + ui-ngx/src/app/core/http/image.service.ts | 2 +- .../home/components/home-components.module.ts | 7 +- .../image/image-dialog.component.html | 94 +++++++++++ .../image/image-dialog.component.scss | 83 ++++++++++ .../image/image-dialog.component.ts | 147 ++++++++++++++++++ .../image/image-gallery.component.html | 4 +- .../image/image-gallery.component.ts | 37 +++-- .../image/upload-image-dialog.component.html | 9 +- .../image/upload-image-dialog.component.ts | 54 +++++-- .../components/image-input.component.html | 5 +- .../components/image-input.component.scss | 29 +++- .../components/image-input.component.ts | 25 ++- ui-ngx/src/app/shared/pipe/image.pipe.ts | 7 +- .../assets/locale/locale.constant-en_US.json | 4 +- 15 files changed, 468 insertions(+), 40 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/image/image-dialog.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index bfaad1c38d..42881c2cbe 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -113,6 +113,7 @@ public class ImageController extends BaseController { TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.WRITE); TbResource image = new TbResource(imageInfo); image.setData(file.getBytes()); + image.setFileName(file.getOriginalFilename()); image.updateDescriptor(ImageDescriptor.class, descriptor -> { descriptor.setMediaType(file.getContentType()); return descriptor; diff --git a/ui-ngx/src/app/core/http/image.service.ts b/ui-ngx/src/app/core/http/image.service.ts index 699582eb38..e13acb0b3e 100644 --- a/ui-ngx/src/app/core/http/image.service.ts +++ b/ui-ngx/src/app/core/http/image.service.ts @@ -58,7 +58,7 @@ export class ImageService { } const formData = new FormData(); formData.append('file', file); - return this.http.post(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, formData, + return this.http.put(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, formData, defaultHttpUploadOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest)); } diff --git a/ui-ngx/src/app/modules/home/components/home-components.module.ts b/ui-ngx/src/app/modules/home/components/home-components.module.ts index 4e3a52e9f1..bb6c47c924 100644 --- a/ui-ngx/src/app/modules/home/components/home-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/home-components.module.ts @@ -184,6 +184,7 @@ import { import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; import { ImageGalleryComponent } from '@home/components/image/image-gallery.component'; import { UploadImageDialogComponent } from '@home/components/image/upload-image-dialog.component'; +import { ImageDialogComponent } from '@home/components/image/image-dialog.component'; @NgModule({ declarations: @@ -331,7 +332,8 @@ import { UploadImageDialogComponent } from '@home/components/image/upload-image- SendNotificationButtonComponent, ScrollGridComponent, ImageGalleryComponent, - UploadImageDialogComponent + UploadImageDialogComponent, + ImageDialogComponent ], imports: [ CommonModule, @@ -472,7 +474,8 @@ import { UploadImageDialogComponent } from '@home/components/image/upload-image- SendNotificationButtonComponent, ScrollGridComponent, ImageGalleryComponent, - UploadImageDialogComponent + UploadImageDialogComponent, + ImageDialogComponent ], providers: [ WidgetComponentService, diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html new file mode 100644 index 0000000000..23ef4dcb2a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html @@ -0,0 +1,94 @@ + +
+ +

{{ (readonly ? 'image.image-details' : 'image.edit-image') | translate }}

+ + +
+ + +
+
+
+ + image.name + + + {{ 'image.name-required' | translate }} + + +
+
+
image.image-preview
+
+
+ +
+
+
{{ image.descriptor.width }}x{{ image.descriptor.height }}
+ +
{{ image.descriptor.size | fileSize }}
+
+
+ + + +
+
+
+
+
+
+ + +
+
diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss new file mode 100644 index 0000000000..813974e541 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss @@ -0,0 +1,83 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:host { + .tb-image-container { + width: fit-content; + border-radius: 4px; + border: 1px solid rgba(0, 0, 0, 0.05); + padding: 12px; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 12px; + + .tb-image-content { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 8px; + .tb-image-preview-title { + color: rgba(0, 0, 0, 0.54); + font-size: 13px; + font-style: normal; + font-weight: 500; + line-height: 16px; + } + .tb-image-preview-container { + position: relative; + width: 100%; + height: 100%; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 4px; + background: #fff; + display: flex; + align-items: center; + justify-content: center; + z-index: 1; + .tb-image-preview-spacer { + margin-top: 100%; + } + .tb-image-preview { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: contain; + } + } + .tb-image-preview-details { + display: flex; + align-items: center; + gap: 8px; + color: rgba(0, 0, 0, 0.38); + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 20px; + .mat-divider.mat-divider-vertical { + height: 20px; + } + } + .tb-image-actions { + display: flex; + align-items: center; + gap: 8px; + color: rgba(0,0,0,0.54); + } + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts new file mode 100644 index 0000000000..72b2bbf85c --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts @@ -0,0 +1,147 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { ChangeDetectorRef, Component, Inject, OnInit, SkipSelf } from '@angular/core'; +import { ErrorStateMatcher } from '@angular/material/core'; +import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { + FormGroupDirective, + NgForm, + UntypedFormBuilder, + UntypedFormControl, + UntypedFormGroup, + Validators +} from '@angular/forms'; +import { DialogComponent } from '@shared/components/dialog.component'; +import { Router } from '@angular/router'; +import { ImageService } from '@core/http/image.service'; +import { ImageResourceInfo, imageResourceType } from '@shared/models/resource.models'; +import { + UploadImageDialogComponent, + UploadImageDialogData +} from '@home/components/image/upload-image-dialog.component'; +import { UrlHolder } from '@shared/pipe/image.pipe'; + +export interface ImageDialogData { + readonly: boolean; + image: ImageResourceInfo; +} + +@Component({ + selector: 'tb-image-dialog', + templateUrl: './image-dialog.component.html', + providers: [{provide: ErrorStateMatcher, useExisting: ImageDialogComponent}], + styleUrls: ['./image-dialog.component.scss'] +}) +export class ImageDialogComponent extends + DialogComponent implements OnInit, ErrorStateMatcher { + + image: ImageResourceInfo; + + readonly: boolean; + + imageFormGroup: UntypedFormGroup; + + submitted = false; + + imageChanged = false; + + imagePreviewData: UrlHolder; + + constructor(protected store: Store, + protected router: Router, + private imageService: ImageService, + private dialog: MatDialog, + @Inject(MAT_DIALOG_DATA) private data: ImageDialogData, + @SkipSelf() private errorStateMatcher: ErrorStateMatcher, + public dialogRef: MatDialogRef, + public fb: UntypedFormBuilder) { + super(store, router, dialogRef); + this.image = data.image; + this.readonly = data.readonly; + this.imagePreviewData = { + url: this.image.link + }; + } + + ngOnInit(): void { + this.imageFormGroup = this.fb.group({ + title: [this.image.title, [Validators.required]] + }); + if (this.data.readonly) { + this.imageFormGroup.disable(); + } + } + + isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean { + const originalErrorState = this.errorStateMatcher.isErrorState(control, form); + const customErrorState = !!(control && control.invalid && this.submitted); + return originalErrorState || customErrorState; + } + + cancel(): void { + this.dialogRef.close(this.imageChanged); + } + + downloadImage($event) { + if ($event) { + $event.stopPropagation(); + } + this.imageService.downloadImage(imageResourceType(this.image), this.image.resourceKey).subscribe(); + } + + exportImage($event) { + if ($event) { + $event.stopPropagation(); + } + // TODO: + } + + updateImage($event): void { + if ($event) { + $event.stopPropagation(); + } + this.dialog.open(UploadImageDialogComponent, { + disableClose: true, + panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], + data: { + image: this.image + } + }).afterClosed().subscribe((result) => { + if (result) { + this.imageChanged = true; + this.image = result; + this.imagePreviewData = { + url: this.image.link + }; + } + }); + } + + save(): void { + this.submitted = true; + const title: string = this.imageFormGroup.get('title').value; + const image = {...this.image, ...{title}}; + this.imageService.updateImageInfo(image).subscribe( + () => { + this.dialogRef.close(true); + } + ); + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html index ebb4a40507..44bf4a4fd5 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -110,7 +110,7 @@
- @@ -185,7 +185,7 @@ (click)="editImage($event, image)"> edit - diff --git a/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts index 46a2843f7a..841f64c883 100644 --- a/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/upload-image-dialog.component.ts @@ -14,9 +14,9 @@ /// limitations under the License. /// -import { Component, OnInit, SkipSelf } from '@angular/core'; +import { Component, Inject, OnInit, SkipSelf } from '@angular/core'; import { ErrorStateMatcher } from '@angular/material/core'; -import { MatDialogRef } from '@angular/material/dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { @@ -30,6 +30,11 @@ import { import { DialogComponent } from '@shared/components/dialog.component'; import { Router } from '@angular/router'; import { ImageService } from '@core/http/image.service'; +import { ImageResourceInfo, imageResourceType } from '@shared/models/resource.models'; + +export interface UploadImageDialogData { + image?: ImageResourceInfo; +} @Component({ selector: 'tb-upload-image-dialog', @@ -38,32 +43,40 @@ import { ImageService } from '@core/http/image.service'; styleUrls: [] }) export class UploadImageDialogComponent extends - DialogComponent implements OnInit, ErrorStateMatcher { + DialogComponent implements OnInit, ErrorStateMatcher { uploadImageFormGroup: UntypedFormGroup; + uploadImage = true; + submitted = false; constructor(protected store: Store, protected router: Router, private imageService: ImageService, + @Inject(MAT_DIALOG_DATA) public data: UploadImageDialogData, @SkipSelf() private errorStateMatcher: ErrorStateMatcher, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, public fb: UntypedFormBuilder) { super(store, router, dialogRef); } ngOnInit(): void { + this.uploadImage = !this.data?.image; this.uploadImageFormGroup = this.fb.group({ - file: [null, [Validators.required]], - title: [null, [Validators.required]] + file: [this.data?.image?.link, [Validators.required]] }); + if (this.uploadImage) { + this.uploadImageFormGroup.addControl('title', this.fb.control(null, [Validators.required])); + } } imageFileNameChanged(fileName: string) { - const titleControl = this.uploadImageFormGroup.get('title'); - if (!titleControl.value || !titleControl.touched) { - titleControl.setValue(fileName); + if (this.uploadImage) { + const titleControl = this.uploadImageFormGroup.get('title'); + if (!titleControl.value || !titleControl.touched) { + titleControl.setValue(fileName); + } } } @@ -74,17 +87,26 @@ export class UploadImageDialogComponent extends } cancel(): void { - this.dialogRef.close(false); + this.dialogRef.close(null); } upload(): void { this.submitted = true; const file: File = this.uploadImageFormGroup.get('file').value; - const title: string = this.uploadImageFormGroup.get('title').value; - this.imageService.uploadImage(file, title).subscribe( - () => { - this.dialogRef.close(true); - } - ); + if (this.uploadImage) { + const title: string = this.uploadImageFormGroup.get('title').value; + this.imageService.uploadImage(file, title).subscribe( + (res) => { + this.dialogRef.close(res); + } + ); + } else { + const image = this.data.image; + this.imageService.updateImage(imageResourceType(image), image.resourceKey, file).subscribe( + (res) => { + this.dialogRef.close(res); + } + ); + } } } diff --git a/ui-ngx/src/app/shared/components/image-input.component.html b/ui-ngx/src/app/shared/components/image-input.component.html index 2ed771d8b2..039611bbf3 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.html +++ b/ui-ngx/src/app/shared/components/image-input.component.html @@ -63,5 +63,8 @@ -
dashboard.maximum-upload-file-size
+
+
{{ fileName }}
+
dashboard.maximum-upload-file-size
+
diff --git a/ui-ngx/src/app/shared/components/image-input.component.scss b/ui-ngx/src/app/shared/components/image-input.component.scss index ee4f6451c4..36f4c59557 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.scss +++ b/ui-ngx/src/app/shared/components/image-input.component.scss @@ -23,9 +23,12 @@ $previewSize: 78px !default; .tb-container { margin-top: 0; padding: 0 0 16px; + display: flex; + flex-direction: column; + gap: 8px; label.tb-title { display: block; - padding-bottom: 8px; + padding-bottom: 0px; } } @@ -72,6 +75,30 @@ $previewSize: 78px !default; max-height: $previewSize - 2px; } + .tb-image-info-container { + display: flex; + gap: 12px; + font-size: 13px; + font-style: normal; + line-height: 16px; + letter-spacing: normal; + } + + .tb-image-file-name { + width: 136px; + color: rgba(0, 0, 0, 0.54); + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + } + + .tb-image-file-hint { + color: rgba(0, 0, 0, 0.38); + font-weight: 400; + overflow: hidden; + text-overflow: ellipsis; + } + .file-input { display: none; } diff --git a/ui-ngx/src/app/shared/components/image-input.component.ts b/ui-ngx/src/app/shared/components/image-input.component.ts index 8d41532405..21722159d4 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.ts +++ b/ui-ngx/src/app/shared/components/image-input.component.ts @@ -37,6 +37,7 @@ import { DialogService } from '@core/services/dialog.service'; import { TranslateService } from '@ngx-translate/core'; import { FileSizePipe } from '@shared/pipe/file-size.pipe'; import { coerceBoolean } from '@shared/decorators/coercion'; +import { ImagePipe } from '@shared/pipe/image.pipe'; @Component({ selector: 'tb-image-input', @@ -84,16 +85,27 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, @Input() inputId = this.utils.guid(); + @Input() + @coerceBoolean() + processImageApiLink = false; + @Input() @coerceBoolean() resultAsFile = false; + @Input() + @coerceBoolean() + showFileName = false; + + @Input() + fileName: string; + @Output() fileNameChanged = new EventEmitter(); imageUrl: string; file: File; - fileName: string; + safeImageUrl: SafeUrl; @ViewChild('flow', {static: true}) @@ -106,6 +118,7 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, constructor(protected store: Store, private utils: UtilsService, private sanitizer: DomSanitizer, + private imagePipe: ImagePipe, private dialog: DialogService, private translate: TranslateService, private fileSize: FileSizePipe, @@ -161,7 +174,15 @@ export class ImageInputComponent extends PageComponent implements AfterViewInit, writeValue(value: string): void { this.imageUrl = value; if (this.imageUrl) { - this.safeImageUrl = this.sanitizer.bypassSecurityTrustUrl(this.imageUrl); + if (this.processImageApiLink) { + this.imagePipe.transform(this.imageUrl, {preview: true, ignoreLoadingImage: true}).subscribe( + (res) => { + this.safeImageUrl = res; + } + ); + } else { + this.safeImageUrl = this.sanitizer.bypassSecurityTrustUrl(this.imageUrl); + } } else { this.safeImageUrl = null; } diff --git a/ui-ngx/src/app/shared/pipe/image.pipe.ts b/ui-ngx/src/app/shared/pipe/image.pipe.ts index 24f91c500d..6cad747676 100644 --- a/ui-ngx/src/app/shared/pipe/image.pipe.ts +++ b/ui-ngx/src/app/shared/pipe/image.pipe.ts @@ -25,6 +25,10 @@ const LOADING_IMAGE_DATA_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS 'LTgiPz4KPHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAw' + 'IDIwIDIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgo='; +export interface UrlHolder { + url?: string; +} + @Pipe({ name: 'image' }) @@ -33,10 +37,11 @@ export class ImagePipe implements PipeTransform { constructor(private imageService: ImageService, private sanitizer: DomSanitizer) { } - transform(url: string, args?: any): Observable { + transform(urlData: string | UrlHolder, args?: any): Observable { const ignoreLoadingImage = !!args?.ignoreLoadingImage; const asString = !!args?.asString; const image$ = ignoreLoadingImage ? new Subject() : new BehaviorSubject(LOADING_IMAGE_DATA_URI); + const url = (typeof urlData === 'string') ? urlData : urlData?.url; if (isDefinedAndNotNull(url)) { const preview = !!args?.preview; this.imageService.resolveImageUrl(url, preview, asString).subscribe((imageUrl) => { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 98e7334e58..14e0beaff1 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2958,6 +2958,7 @@ "import-image": "Import image", "upload-image": "Upload image", "edit-image": "Edit image", + "image-details": "Image details", "no-images": "No images found", "delete-image": "Delete image", "delete-image-title": "Are you sure you want to delete image '{{imageTitle}}'?", @@ -2966,7 +2967,8 @@ "delete-images-text": "Be careful, after the confirmation all selected images will be removed and all related data will become unrecoverable.", "list-mode": "List view", "grid-mode": "Grid view", - "image-preview": "Image preview" + "image-preview": "Image preview", + "update-image": "Update image" }, "image-input": { "drop-images-or": "Drag and drop an images or", From d6b56177a27dd3cf139a5f8f73ea2da3eab0b800 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Tue, 21 Nov 2023 16:00:30 +0100 Subject: [PATCH 093/162] fst stats in Grafana --- .../src/main/resources/thingsboard.yml | 6 +- .../cache/RedisTbTransactionalCache.java | 12 +- .../server/common/data/FSTUtils.java | 122 +----------------- .../server/common/data/FstStatsService.java | 15 +-- .../queue/util/ProtoWithFSTService.java | 13 +- .../common/stats/FstStatsServiceImpl.java | 42 ++++++ 6 files changed, 73 insertions(+), 137 deletions(-) rename application/src/main/java/org/thingsboard/server/service/stats/FstStats.java => common/data/src/main/java/org/thingsboard/server/common/data/FstStatsService.java (59%) create mode 100644 common/stats/src/main/java/org/thingsboard/server/common/stats/FstStatsServiceImpl.java diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index bba7800a28..ecc89c84c5 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1680,8 +1680,4 @@ management: web: exposure: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). - include: '${METRICS_ENDPOINTS_EXPOSE:info}' - -fst: - stats: - printInterval: "${FST_STATS_PRINT_INTERVAL:600000}" # 10 min by default \ No newline at end of file + include: '${METRICS_ENDPOINTS_EXPOSE:info}' \ No newline at end of file diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java b/common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java index c5af954392..c2dd66dde0 100644 --- a/common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java +++ b/common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java @@ -17,6 +17,7 @@ package org.thingsboard.server.cache; import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.support.NullValue; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -27,6 +28,7 @@ import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.types.Expiration; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.thingsboard.server.common.data.FstStatsService; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.util.JedisClusterCRC16; @@ -44,6 +46,9 @@ public abstract class RedisTbTransactionalCache STATS = new ConcurrentHashMap<>(); - @SuppressWarnings("unchecked") public static T decode(byte[] byteArray) { - long startTime = System.nanoTime(); - T result = byteArray != null && byteArray.length > 0 ? (T) CONFIG.asObject(byteArray) : null; - long endTime = System.nanoTime(); - - if (log.isDebugEnabled() && result != null) { - String className = result.getClass().getSimpleName(); - STATS.computeIfAbsent(className, k -> new Stats()).incrementDecode(endTime - startTime); - } - - return result; - } - - public static byte[] encode(T msg) { - long startTime = System.nanoTime(); - byte[] result = CONFIG.asByteArray(msg); - long endTime = System.nanoTime(); - - if (log.isDebugEnabled() && msg != null) { - String className = msg.getClass().getSimpleName(); - STATS.computeIfAbsent(className, k -> new Stats()).incrementEncode(endTime - startTime); - } - - return result; - } - - public static void printStats() { - if (log.isDebugEnabled()) { - List topDecode = STATS.entrySet().stream() - .filter(e -> e.getValue().getAvgDecodeTime() > 0) - .sorted((e1, e2) -> Long.compare(e2.getValue().getAvgDecodeTime(), e1.getValue().getAvgDecodeTime())) - .limit(5) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - - List topEncode = STATS.entrySet().stream() - .filter(e -> e.getValue().getAvgEncodeTime() > 0) - .sorted((e1, e2) -> Long.compare(e2.getValue().getAvgEncodeTime(), e1.getValue().getAvgEncodeTime())) - .limit(5) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - - List topDecodeCount = STATS.entrySet().stream() - .filter(e -> e.getValue().getDecodeCount().get() > 0) - .sorted((e1, e2) -> Long.compare(e2.getValue().getDecodeCount().get(), e1.getValue().getDecodeCount().get())) - .limit(5) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - - List topEncodeCount = STATS.entrySet().stream() - .filter(e -> e.getValue().getEncodeCount().get() > 0) - .sorted((e1, e2) -> Long.compare(e2.getValue().getEncodeCount().get(), e1.getValue().getEncodeCount().get())) - .limit(5) - .map(Map.Entry::getKey) - .collect(Collectors.toList()); - - for (Map.Entry entry : STATS.entrySet()) { - Stats stats = entry.getValue(); - if (stats.isNotEmpty()) { - log.debug("[FST stats] [{}] {}", entry.getKey(), stats); - stats.reset(); - } - } - - log.debug("[FST stats] Top 5 slowest 'decode' {}", topDecode); - log.debug("[FST stats] Top 5 slowest 'encode' {}", topEncode); - log.debug("[FST stats] Top 5 'decode' count {}", topDecodeCount); - log.debug("[FST stats] Top 5 'encode' count {}", topEncodeCount); - } + return byteArray != null && byteArray.length > 0 ? (T) CONFIG.asObject(byteArray) : null; } - @Data - private static class Stats { - private final AtomicLong encodeCount = new AtomicLong(); - private final AtomicLong decodeCount = new AtomicLong(); - private final AtomicLong totalEncodeTime = new AtomicLong(); - private final AtomicLong totalDecodeTime = new AtomicLong(); - - private void incrementEncode(long time) { - encodeCount.incrementAndGet(); - totalEncodeTime.addAndGet(time); - } - - private void incrementDecode(long time) { - decodeCount.incrementAndGet(); - totalDecodeTime.addAndGet(time); - } - - private boolean isNotEmpty() { - return encodeCount.get() > 0 || decodeCount.get() > 0; - } - - private long getAvgEncodeTime() { - long count = encodeCount.get(); - return count > 0 ? totalEncodeTime.get() / count : 0; - } - - private long getAvgDecodeTime() { - long count = decodeCount.get(); - return count > 0 ? totalDecodeTime.get() / count : 0; - } - - private void reset() { - encodeCount.set(0); - decodeCount.set(0); - totalEncodeTime.set(0); - totalDecodeTime.set(0); - } - - @Override - public String toString() { - return String.format("decodeCount [%d] avgDecodeTime [%d] encodedCount [%d] avgEncodeTime [%d]", decodeCount.get(), getAvgDecodeTime(), encodeCount.get(), getAvgEncodeTime()); - } + public static byte[] encode(T msq) { + return CONFIG.asByteArray(msq); } } diff --git a/application/src/main/java/org/thingsboard/server/service/stats/FstStats.java b/common/data/src/main/java/org/thingsboard/server/common/data/FstStatsService.java similarity index 59% rename from application/src/main/java/org/thingsboard/server/service/stats/FstStats.java rename to common/data/src/main/java/org/thingsboard/server/common/data/FstStatsService.java index d66b9fd138..06f0d1a528 100644 --- a/application/src/main/java/org/thingsboard/server/service/stats/FstStats.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/FstStatsService.java @@ -13,17 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.stats; +package org.thingsboard.server.common.data; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; -import org.thingsboard.server.common.data.FSTUtils; +public interface FstStatsService { -@Service -public class FstStats { + void incrementEncode(Class clazz); + + void incrementDecode(Class clazz); - @Scheduled(initialDelayString = "${fst.stats.printInterval}", fixedDelayString = "${fst.stats.printInterval}") - public void printStats() { - FSTUtils.printStats(); - } } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/util/ProtoWithFSTService.java b/common/queue/src/main/java/org/thingsboard/server/queue/util/ProtoWithFSTService.java index b0d0b182e9..e35c86e070 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/util/ProtoWithFSTService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/util/ProtoWithFSTService.java @@ -17,8 +17,10 @@ package org.thingsboard.server.queue.util; import lombok.extern.slf4j.Slf4j; import org.nustaq.serialization.FSTConfiguration; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.FSTUtils; +import org.thingsboard.server.common.data.FstStatsService; import java.util.Optional; @@ -26,12 +28,17 @@ import java.util.Optional; @Service public class ProtoWithFSTService implements DataDecodingEncodingService { + @Autowired + private FstStatsService fstStatsService; + public static final FSTConfiguration CONFIG = FSTConfiguration.createDefaultConfiguration(); @Override public Optional decode(byte[] byteArray) { try { - return Optional.ofNullable(FSTUtils.decode(byteArray)); + Optional optional = Optional.ofNullable(FSTUtils.decode(byteArray)); + optional.ifPresent(obj -> fstStatsService.incrementDecode(obj.getClass())); + return optional; } catch (IllegalArgumentException e) { log.error("Error during deserialization message, [{}]", e.getMessage()); return Optional.empty(); @@ -41,7 +48,9 @@ public class ProtoWithFSTService implements DataDecodingEncodingService { @Override public byte[] encode(T msq) { - return FSTUtils.encode(msq); + var bytes = FSTUtils.encode(msq); + fstStatsService.incrementEncode(msq.getClass()); + return bytes; } diff --git a/common/stats/src/main/java/org/thingsboard/server/common/stats/FstStatsServiceImpl.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/FstStatsServiceImpl.java new file mode 100644 index 0000000000..5d78b8c36a --- /dev/null +++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/FstStatsServiceImpl.java @@ -0,0 +1,42 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.stats; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.FstStatsService; + +import java.util.concurrent.ConcurrentHashMap; + +@Service +public class FstStatsServiceImpl implements FstStatsService { + private final ConcurrentHashMap encodeCounters = new ConcurrentHashMap<>(); + private final ConcurrentHashMap decodeCounters = new ConcurrentHashMap<>(); + + @Autowired + private StatsFactory statsFactory; + + @Override + public void incrementEncode(Class clazz) { + encodeCounters.computeIfAbsent(clazz.getSimpleName(), key -> statsFactory.createStatsCounter("fstEncode", key)).increment(); + } + + @Override + public void incrementDecode(Class clazz) { + decodeCounters.computeIfAbsent(clazz.getSimpleName(), key -> statsFactory.createStatsCounter("fstDecode", key)).increment(); + } + +} From c09caa22dca0b1272f3f0d1a04f76066d3b7a439 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 21 Nov 2023 17:43:02 +0200 Subject: [PATCH 094/162] Improvements to queries and cache cleanup --- .../main/data/upgrade/3.6.1/schema_update.sql | 6 +-- .../queue/DefaultTbCoreConsumerService.java | 16 ++++++- .../resource/DefaultTbImageService.java | 46 +++++++++++++++++-- .../service/resource/TbImageService.java | 3 ++ .../src/main/resources/thingsboard.yml | 2 +- common/cluster-api/src/main/proto/queue.proto | 7 +++ .../dashboard/DashboardInfoRepository.java | 4 +- .../sql/widget/WidgetTypeInfoRepository.java | 4 +- 8 files changed, 76 insertions(+), 12 deletions(-) diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql index 27c7adf523..19362bb38e 100644 --- a/application/src/main/data/upgrade/3.6.1/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -27,9 +27,9 @@ $$ END IF; END; $$; -ALTER TABLE resource - ADD COLUMN IF NOT EXISTS descriptor varchar, - ADD COLUMN IF NOT EXISTS preview bytea; + +ALTER TABLE resource ADD COLUMN IF NOT EXISTS descriptor varchar; +ALTER TABLE resource ADD COLUMN IF NOT EXISTS preview bytea; ALTER TABLE resource ADD COLUMN IF NOT EXISTS external_id uuid -- RESOURCES UPDATE END diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java index 754537ef11..ac074f983b 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java @@ -82,6 +82,8 @@ import org.thingsboard.server.service.profile.TbAssetProfileCache; import org.thingsboard.server.service.profile.TbDeviceProfileCache; import org.thingsboard.server.service.queue.processing.AbstractConsumerService; import org.thingsboard.server.service.queue.processing.IdMsgPair; +import org.thingsboard.server.service.resource.ImageCacheKey; +import org.thingsboard.server.service.resource.TbImageService; import org.thingsboard.server.service.rpc.TbCoreDeviceRpcService; import org.thingsboard.server.common.msg.rpc.ToDeviceRpcRequestActorMsg; import org.thingsboard.server.service.security.auth.jwt.settings.JwtSettingsService; @@ -140,6 +142,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService> usageStatsConsumer; private final TbQueueConsumer> firmwareStatesConsumer; + private final TbImageService imageService; protected volatile ExecutorService consumersExecutor; protected volatile ExecutorService usageStatsExecutor; @@ -165,7 +168,8 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService jwtSettingsService, NotificationSchedulerService notificationSchedulerService, - NotificationRuleProcessor notificationRuleProcessor) { + NotificationRuleProcessor notificationRuleProcessor, + TbImageService imageService) { super(actorContext, encodingService, tenantProfileCache, deviceProfileCache, assetProfileCache, apiUsageStateService, partitionService, eventPublisher, tbCoreQueueFactory.createToCoreNotificationsMsgConsumer(), jwtSettingsService); this.mainConsumer = tbCoreQueueFactory.createToCoreMsgConsumer(); this.usageStatsConsumer = tbCoreQueueFactory.createToUsageStatsServiceMsgConsumer(); @@ -181,6 +185,7 @@ public class DefaultTbCoreConsumerService extends AbstractConsumerService cache; - public DefaultTbImageService(ImageService imageService, - @Value("${cache.image.etag.timeToLiveInMinutes:120}") int cacheTtl, - @Value("${cache.image.etag.maxSize:200000}") int cacheMaxSize) { + public DefaultTbImageService(TbClusterService clusterService, ImageService imageService, + @Value("${cache.image.etag.timeToLiveInMinutes:44640}") int cacheTtl, + @Value("${cache.image.etag.maxSize:10000}") int cacheMaxSize) { + this.clusterService = clusterService; this.imageService = imageService; this.cache = Caffeine.newBuilder() .expireAfterAccess(cacheTtl, TimeUnit.MINUTES) @@ -60,13 +69,33 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb cache.put(imageCacheKey, etag); } + @Override + public void evictETag(ImageCacheKey imageCacheKey) { + cache.invalidate(imageCacheKey); + } + @Override public TbResourceInfo save(TbResource image, User user) throws Exception { ActionType actionType = image.getId() == null ? ActionType.ADDED : ActionType.UPDATED; TenantId tenantId = image.getTenantId(); try { + var oldEtag = getEtag(image); TbResourceInfo savedImage = imageService.saveImage(image); notificationEntityService.logEntityAction(tenantId, savedImage.getId(), savedImage, actionType, user); + if (oldEtag.isPresent()) { + var newEtag = getEtag(savedImage); + if (newEtag.isPresent() && !oldEtag.get().equals(newEtag.get())) { + evictETag(new ImageCacheKey(image.getTenantId(), image.getResourceKey(), false)); + evictETag(new ImageCacheKey(image.getTenantId(), image.getResourceKey(), true)); + clusterService.broadcastToCore(TransportProtos.ToCoreNotificationMsg.newBuilder() + .setResourceCacheInvalidateMsg(TransportProtos.ResourceCacheInvalidateMsg.newBuilder() + .setTenantIdMSB(tenantId.getId().getMostSignificantBits()) + .setTenantIdLSB(tenantId.getId().getLeastSignificantBits()) + .setResourceKey(image.getResourceKey()) + .build()) + .build()); + } + } return savedImage; } catch (Exception e) { image.setData(null); @@ -75,6 +104,17 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb } } + private Optional getEtag(TbResourceInfo image) throws JsonProcessingException { + var descriptor = image.getDescriptor(ImageDescriptor.class); + return Optional.ofNullable(descriptor != null ? descriptor.getEtag() : null); + } + + private Optional getPreviewEtag(TbResourceInfo image) throws JsonProcessingException { + var descriptor = image.getDescriptor(ImageDescriptor.class); + descriptor = descriptor != null ? descriptor.getPreviewDescriptor() : null; + return Optional.ofNullable(descriptor != null ? descriptor.getEtag() : null); + } + @Override public TbResourceInfo save(TbResourceInfo imageInfo, User user) { TenantId tenantId = imageInfo.getTenantId(); diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java index 2e2f95e4c7..adcf3736f1 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -19,6 +19,7 @@ import org.thingsboard.server.common.data.TbImageDeleteResult; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.id.TenantId; public interface TbImageService { @@ -31,4 +32,6 @@ public interface TbImageService { String getETag(ImageCacheKey imageCacheKey); void putETag(ImageCacheKey imageCacheKey, String etag); + + void evictETag(ImageCacheKey imageCacheKey); } diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 6dde5de957..faa799b7e4 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -589,7 +589,7 @@ cache: image: etag: timeToLiveInMinutes: "${CACHE_SPECS_IMAGE_ETAGS_TTL:44640}" # Image ETags cache TTL - maxSize: "${CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE:1000000}" # 0 means the cache is disabled + maxSize: "${CACHE_SPECS_IMAGE_ETAGS_MAX_SIZE:10000}" # 0 means the cache is disabled systemImagesBrowserTtlInMinutes: "${CACHE_SPECS_IMAGE_SYSTEM_BROWSER_TTL:0}" # Browser cache TTL for system images in minutes. 0 means the cache is disabled tenantImagesBrowserTtlInMinutes: "${CACHE_SPECS_IMAGE_TENANT_BROWSER_TTL:0}" # Browser cache TTL for tenant images in minutes. 0 means the cache is disabled diff --git a/common/cluster-api/src/main/proto/queue.proto b/common/cluster-api/src/main/proto/queue.proto index 0cb91faee0..57922e3177 100644 --- a/common/cluster-api/src/main/proto/queue.proto +++ b/common/cluster-api/src/main/proto/queue.proto @@ -306,6 +306,12 @@ message CoreStartupMsg { int64 ts = 3; } +message ResourceCacheInvalidateMsg { + int64 tenantIdMSB = 1; + int64 tenantIdLSB = 2; + string resourceKey = 3; +} + message LwM2MRegistrationRequestMsg { string tenantId = 1; string endpoint = 2; @@ -1273,6 +1279,7 @@ message ToCoreNotificationMsg { EdgeEventUpdateMsgProto edgeEventUpdate = 14; ToEdgeSyncRequestMsgProto toEdgeSyncRequest = 15; FromEdgeSyncResponseMsgProto fromEdgeSyncResponse = 16; + ResourceCacheInvalidateMsg resourceCacheInvalidateMsg = 17; } /* Messages that are handled by ThingsBoard RuleEngine Service */ diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java index a92da55c03..35c765dccf 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java @@ -78,12 +78,12 @@ public interface DashboardInfoRepository extends JpaRepository findByTenantAndImageLink(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, @Param("lmt") int lmt); @Query(nativeQuery = true, - value = "SELECT * FROM dashboard d WHERE d.image = :imageLink or d.configuration ILIKE CONCAT('%', :imageLink, '%') limit :lmt" + value = "SELECT * FROM dashboard d WHERE d.image = :imageLink or d.configuration ILIKE CONCAT('%\"', :imageLink, '\"%') limit :lmt" ) List findByImageLink(@Param("imageLink") String imageLink, @Param("lmt") int lmt); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java index e9dcca7914..83797d7baa 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java @@ -198,13 +198,13 @@ public interface WidgetTypeInfoRepository extends JpaRepository findByTenantAndImageUrl(@Param("tenantId") UUID tenantId, @Param("imageLink") String imageLink, @Param("lmt") int lmt); @Query(nativeQuery = true, value = "SELECT * FROM widget_type_info_view wti WHERE wti.id IN " + - "(select id from widget_type where image = :imageLink or descriptor ILIKE CONCAT('%', :imageLink, '%') limit :lmt)" + "(select id from widget_type where image = :imageLink or descriptor ILIKE CONCAT('%\"', :imageLink, '\"%') limit :lmt)" ) List findByImageUrl(@Param("imageLink") String imageLink, @Param("lmt") int lmt); } From 3e6f101a881cde1e587d2a9253240748a33742cb Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 21 Nov 2023 20:27:24 +0200 Subject: [PATCH 095/162] UI: Improve edit image. Improve image gallery grid view. --- ui-ngx/src/app/core/services/menu.service.ts | 7 ++ .../grid/scroll-grid.component.html | 6 +- .../components/grid/scroll-grid.component.ts | 8 ++ .../image/image-dialog.component.html | 102 ++++++++++-------- .../image/image-dialog.component.scss | 32 ++++-- .../image/image-dialog.component.ts | 52 ++++----- .../image/image-gallery.component.html | 98 ++++++++++++++--- .../image/image-gallery.component.scss | 61 +++++++++-- .../image/image-gallery.component.ts | 70 +++++++----- .../datasource/scroll-grid-datasource.ts | 22 ++++ 10 files changed, 325 insertions(+), 133 deletions(-) diff --git a/ui-ngx/src/app/core/services/menu.service.ts b/ui-ngx/src/app/core/services/menu.service.ts index aa622af51b..924d741cf6 100644 --- a/ui-ngx/src/app/core/services/menu.service.ts +++ b/ui-ngx/src/app/core/services/menu.service.ts @@ -534,6 +534,13 @@ export class MenuService { } ] }, + { + id: 'images', + name: 'image.gallery', + type: 'link', + path: '/resources/images', + icon: 'filter' + }, { id: 'resources_library', name: 'resource.resources-library', diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html index 849dc2e6a9..5d6c066c94 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html @@ -16,14 +16,14 @@ --> - +
-
+
- +
diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts index b2b6e79fe9..dcced7b3c0 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts @@ -112,4 +112,12 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang public update() { this.dataSource.update(); } + + public updateItem(index: number, item: T) { + this.dataSource.updateItem(index, item); + } + + public deleteItem(index: number) { + this.dataSource.deleteItem(index); + } } diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html index 23ef4dcb2a..6526da5392 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.html @@ -15,7 +15,7 @@ limitations under the License. --> -
+

{{ (readonly ? 'image.image-details' : 'image.edit-image') | translate }}

@@ -30,65 +30,73 @@
- - image.name - - - {{ 'image.name-required' | translate }} - - +
+ + image.name + + + {{ 'image.name-required' | translate }} + + + + +
-
image.image-preview
-
-
- -
-
-
{{ image.descriptor.width }}x{{ image.descriptor.height }}
- -
{{ image.descriptor.size | fileSize }}
-
- - +
+ + +
+
+
+ +
+
+
{{ image.descriptor.width }}x{{ image.descriptor.height }}
+ +
{{ image.descriptor.size | fileSize }}
+
-
- - -
diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss index 813974e541..f812ff4fb9 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.scss @@ -14,9 +14,24 @@ * limitations under the License. */ +@import '../../../../../scss/constants'; + :host { + .tb-image-dialog { + @media #{$mat-gt-xs} { + width: 50vh; + } + .mat-mdc-dialog-content { + max-height: 100%; + } + fieldset { + height: 100%; + display: flex; + flex-direction: column; + } + } .tb-image-container { - width: fit-content; + height: 100%; border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.05); padding: 12px; @@ -26,17 +41,12 @@ gap: 12px; .tb-image-content { + height: 100%; + width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; - .tb-image-preview-title { - color: rgba(0, 0, 0, 0.54); - font-size: 13px; - font-style: normal; - font-weight: 500; - line-height: 16px; - } .tb-image-preview-container { position: relative; width: 100%; @@ -49,7 +59,9 @@ justify-content: center; z-index: 1; .tb-image-preview-spacer { - margin-top: 100%; + @media #{$mat-gt-xs} { + margin-top: 100%; + } } .tb-image-preview { position: absolute; @@ -75,6 +87,8 @@ .tb-image-actions { display: flex; align-items: center; + align-self: stretch; + justify-content: space-between; gap: 8px; color: rgba(0,0,0,0.54); } diff --git a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts index 72b2bbf85c..c248275b99 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-dialog.component.ts @@ -14,19 +14,12 @@ /// limitations under the License. /// -import { ChangeDetectorRef, Component, Inject, OnInit, SkipSelf } from '@angular/core'; +import { Component, Inject, OnInit, SkipSelf } from '@angular/core'; import { ErrorStateMatcher } from '@angular/material/core'; import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; -import { - FormGroupDirective, - NgForm, - UntypedFormBuilder, - UntypedFormControl, - UntypedFormGroup, - Validators -} from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { DialogComponent } from '@shared/components/dialog.component'; import { Router } from '@angular/router'; import { ImageService } from '@core/http/image.service'; @@ -45,11 +38,10 @@ export interface ImageDialogData { @Component({ selector: 'tb-image-dialog', templateUrl: './image-dialog.component.html', - providers: [{provide: ErrorStateMatcher, useExisting: ImageDialogComponent}], styleUrls: ['./image-dialog.component.scss'] }) export class ImageDialogComponent extends - DialogComponent implements OnInit, ErrorStateMatcher { + DialogComponent implements OnInit { image: ImageResourceInfo; @@ -57,8 +49,6 @@ export class ImageDialogComponent extends imageFormGroup: UntypedFormGroup; - submitted = false; - imageChanged = false; imagePreviewData: UrlHolder; @@ -68,8 +58,7 @@ export class ImageDialogComponent extends private imageService: ImageService, private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) private data: ImageDialogData, - @SkipSelf() private errorStateMatcher: ErrorStateMatcher, - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, public fb: UntypedFormBuilder) { super(store, router, dialogRef); this.image = data.image; @@ -88,14 +77,25 @@ export class ImageDialogComponent extends } } - isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean { - const originalErrorState = this.errorStateMatcher.isErrorState(control, form); - const customErrorState = !!(control && control.invalid && this.submitted); - return originalErrorState || customErrorState; + cancel(): void { + this.dialogRef.close(this.imageChanged ? this.image : null); } - cancel(): void { - this.dialogRef.close(this.imageChanged); + revertInfo(): void { + this.imageFormGroup.get('title').setValue(this.image.title); + this.imageFormGroup.markAsPristine(); + } + + saveInfo(): void { + const title: string = this.imageFormGroup.get('title').value; + const image = {...this.image, ...{title}}; + this.imageService.updateImageInfo(image).subscribe( + (saved) => { + this.image = saved; + this.imageChanged = true; + this.imageFormGroup.markAsPristine(); + } + ); } downloadImage($event) { @@ -134,14 +134,4 @@ export class ImageDialogComponent extends }); } - save(): void { - this.submitted = true; - const title: string = this.imageFormGroup.get('title').value; - const image = {...this.image, ...{title}}; - this.imageService.updateImageInfo(image).subscribe( - () => { - this.dialogRef.close(true); - } - ); - } } diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html index 44bf4a4fd5..1f071790be 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -19,7 +19,7 @@
- image.gallery + image.gallery
@@ -43,7 +43,7 @@
-
+
+
-
+
+ + + + + + + +
@@ -243,9 +286,40 @@
image.no-images
- -
+ +
+
+
+ + + +
+
+
+ +
{{ item.title }}
diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss index fe48ba197f..0fe15f8e3e 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -77,17 +77,70 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; } .tb-image-card { + position: relative; height: 100%; - border-radius: 8px; + border-radius: 4px; + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.24); padding: 8px; display: flex; gap: 8px; flex-direction: column; cursor: pointer; - transition: box-shadow 0.2s; + + .tb-image-card-overlay { + position: absolute; + pointer-events: none; + inset: 0; + border-radius: 4px; + z-index: 2; + display: flex; + flex-direction: column; + .tb-image-card-overlay-buttons { + width: 100%; + display: flex; + justify-content: flex-end; + align-items: center; + color: rgba(0,0,0,0.78); + opacity: 0; + transition: opacity 0.5s; + } + } + + &:hover { + .tb-image-card-overlay { + .tb-image-card-overlay-buttons { + opacity: 1; + } + } + .tb-image-preview-container { + .tb-image-preview-overlay { + background: rgba(245,245,245,0.6); + backdrop-filter: blur(4px); + .mdc-button { + opacity: 1; + } + } + } + } .tb-image-preview-container { position: relative; + .tb-image-preview-overlay { + position: absolute; + inset: 0; + z-index: 1; + background: rgba(245,245,245,0); + backdrop-filter: none; + transition: all 0.5s; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + .mdc-button { + opacity: 0; + transition: opacity 0.5s; + } + } .tb-image-preview-spacer { margin-top: 100%; } @@ -152,10 +205,6 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; } } } - - &:hover { - box-shadow: 0 0 28px 0 rgba(0, 0, 0, 0.24); - } } .table-container { diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts index 2f0ee673bd..7e8cae6719 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -21,7 +21,7 @@ import { emptyPageData, PageData } from '@shared/models/page/page-data'; import { ImageService } from '@core/http/image.service'; import { TranslateService } from '@ngx-translate/core'; import { PageLink, PageQueryParam } from '@shared/models/page/page-link'; -import { catchError, debounceTime, distinctUntilChanged, map, skip, takeUntil, tap } from 'rxjs/operators'; +import { catchError, debounceTime, distinctUntilChanged, map, skip, take, takeUntil, tap } from 'rxjs/operators'; import { AfterViewInit, ChangeDetectorRef, @@ -38,7 +38,6 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatSort, SortDirection } from '@angular/material/sort'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; -import { UtilsService } from '@core/services/utils.service'; import { DialogService } from '@core/services/dialog.service'; import { FormBuilder } from '@angular/forms'; import { Direction, SortOrder } from '@shared/models/page/sort-order'; @@ -52,19 +51,14 @@ import { NULL_UUID } from '@shared/models/id/has-uuid'; import { getCurrentAuthUser } from '@core/auth/auth.selectors'; import { Authority } from '@shared/models/authority.enum'; import { GridEntitiesFetchFunction, ScrollGridColumns } from '@home/models/datasource/scroll-grid-datasource'; -import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; -import { - AddWidgetDialogComponent, - AddWidgetDialogData -} from '@home/components/dashboard-page/add-widget-dialog.component'; -import { Widget } from '@shared/models/widget.models'; import { MatDialog } from '@angular/material/dialog'; import { UploadImageDialogComponent, UploadImageDialogData } from '@home/components/image/upload-image-dialog.component'; import { ImageDialogComponent, ImageDialogData } from '@home/components/image/image-dialog.component'; +import { EntityBooleanFunction } from '@home/models/entity/entities-table-config.models'; @Component({ selector: 'tb-image-gallery', @@ -178,7 +172,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } } if (this.mode === 'list') { - this.dataSource = new ImagesDatasource(this.imageService); + this.dataSource = new ImagesDatasource(this.imageService, entity => !this.readonly(entity)); } } @@ -234,7 +228,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } this.mode = targetMode; if (this.mode === 'list') { - this.dataSource = new ImagesDatasource(this.imageService); + this.dataSource = new ImagesDatasource(this.imageService, entity => !this.readonly(entity)); } setTimeout(() => { this.updateMode(); @@ -341,6 +335,22 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } } + private imageUpdated(image: ImageResourceInfo, index = -1) { + if (this.mode === 'list') { + this.updateData(); + } else { + this.gridComponent.updateItem(index, image); + } + } + + private imageDeleted(index = -1) { + if (this.mode === 'list') { + this.updateData(); + } else { + this.gridComponent.deleteItem(index); + } + } + enterFilterMode() { this.textSearchMode = true; setTimeout(() => { @@ -366,7 +376,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe return this.authUser.authority !== Authority.SYS_ADMIN && this.isSystem(image); } - deleteImage($event: Event, image: ImageResourceInfo) { + deleteImage($event: Event, image: ImageResourceInfo, itemIndex = -1) { if ($event) { $event.stopPropagation(); } @@ -378,7 +388,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe if (result) { this.imageService.deleteImage(imageResourceType(image), image.resourceKey).subscribe( () => { - this.updateData(); + this.imageDeleted(itemIndex); } ); } @@ -440,12 +450,12 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe }); } - editImage($event: Event, image: ImageResourceInfo) { + editImage($event: Event, image: ImageResourceInfo, itemIndex = -1) { if ($event) { $event.stopPropagation(); } this.dialog.open(ImageDialogComponent, { + ImageResourceInfo>(ImageDialogComponent, { disableClose: true, panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], data: { @@ -454,7 +464,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } }).afterClosed().subscribe((result) => { if (result) { - this.updateData(); + this.imageUpdated(result, itemIndex); } }); } @@ -486,7 +496,8 @@ class ImagesDatasource implements DataSource { public dataLoading = true; - constructor(private imageService: ImageService) { + constructor(private imageService: ImageService, + protected selectionEnabledFunction: EntityBooleanFunction) { } connect(collectionViewer: CollectionViewer): @@ -548,15 +559,24 @@ class ImagesDatasource implements DataSource { } masterToggle() { - const entities = this.entitiesSubject.getValue(); - const numSelected = this.selection.selected.length; - if (numSelected === entities.length) { - this.selection.clear(); - } else { - entities.forEach(row => { - this.selection.select(row); - }); - } + this.entitiesSubject.pipe( + tap((entities) => { + const numSelected = this.selection.selected.length; + if (numSelected === this.selectableEntitiesCount(entities)) { + this.selection.clear(); + } else { + entities.forEach(row => { + if (this.selectionEnabledFunction(row)) { + this.selection.select(row); + } + }); + } + }), + take(1) + ).subscribe(); } + private selectableEntitiesCount(entities: Array): number { + return entities.filter((entity) => this.selectionEnabledFunction(entity)).length; + } } diff --git a/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts index 83087eadc0..1298ec4f8f 100644 --- a/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts +++ b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts @@ -88,6 +88,10 @@ export class ScrollGridDatasource extends DataSource<(T | GridCellType)[]> return !!this._subscription && !this._subscription.closed; } + get currentColumns(): number { + return this._columns; + } + public updateFilter(filter: F) { this.filter = filter; this.update(); @@ -123,6 +127,24 @@ export class ScrollGridDatasource extends DataSource<(T | GridCellType)[]> } } + public updateItem(index: number, item: T) { + this._data[index] = item; + this._dataUpdated(); + } + + public deleteItem(index: number) { + if (index < this._data.length) { + this._data.splice(index, 1); + this._totalElements--; + const rowsLength = this._totalElements ? Math.ceil(this._totalElements / this._columns) : 100000; + this._rows = Array.from({length: rowsLength}); + this._dataUpdated(); + if (this._hasNext) { + this._fetchDataFromRange(this._viewport.getRenderedRange()); + } + } + } + private _detectColumns(): number { if (typeof this.columns !== 'object') { return this.columns; From 414d758429aafbbe8e89cd74c1886bbe45236db3 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 22 Nov 2023 14:49:46 +0200 Subject: [PATCH 096/162] UI: Improve image grid loading. --- .../dashboard-widget-select.component.html | 4 +- .../dashboard-widget-select.component.ts | 6 +++ .../grid/scroll-grid.component.html | 3 +- .../components/grid/scroll-grid.component.ts | 52 +++++++++++++++++-- .../image/image-gallery.component.html | 10 +++- .../image/image-gallery.component.scss | 15 ++++++ .../image/image-gallery.component.ts | 7 ++- .../components/image-input.component.html | 2 +- 8 files changed, 88 insertions(+), 11 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html index a32dc812cd..5bb677e814 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html @@ -27,7 +27,7 @@ (itemWidth - 24) * 0.8 + 76 + }; + widgetBundlesFetchFunction: GridEntitiesFetchFunction; allWidgetsFetchFunction: GridEntitiesFetchFunction; widgetsFetchFunction: GridEntitiesFetchFunction; diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html index 5d6c066c94..43b877d295 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html @@ -15,7 +15,8 @@ limitations under the License. --> - +
diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts index dcced7b3c0..cf9f9f4cd3 100644 --- a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts @@ -15,10 +15,10 @@ /// import { - AfterViewInit, + AfterViewInit, ChangeDetectorRef, Component, Input, - OnChanges, + OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, @@ -34,6 +34,14 @@ import { import { BreakpointObserver } from '@angular/cdk/layout'; import { isObject } from '@app/core/utils'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; +import { ResizeObserver } from '@juggle/resize-observer'; + +export type ItemSizeFunction = (itemWidth: number) => number; + +export interface ItemSizeStrategy { + defaultItemSize: number; + itemSizeFunction: ItemSizeFunction; +} @Component({ selector: 'tb-scroll-grid', @@ -41,7 +49,7 @@ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; styleUrls: ['./scroll-grid.component.scss'], encapsulation: ViewEncapsulation.None }) -export class ScrollGridComponent implements OnInit, AfterViewInit, OnChanges { +export class ScrollGridComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy { @ViewChild('viewport') viewport: CdkVirtualScrollViewport; @@ -56,7 +64,7 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang filter: F; @Input() - itemSize = 200; + itemSize: number | ItemSizeStrategy = 200; @Input() gap = 12; @@ -75,17 +83,37 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang dataSource: ScrollGridDatasource; + calculatedItemSize: number; + minBuffer: number; + maxBuffer: number; + + private contentResize$: ResizeObserver; + constructor(private breakpointObserver: BreakpointObserver, + private cd: ChangeDetectorRef, private renderer: Renderer2) { } ngOnInit(): void { + if (typeof this.itemSize === 'number') { + this.calculatedItemSize = this.itemSize; + } else { + this.calculatedItemSize = this.itemSize.defaultItemSize; + } + this.minBuffer = this.calculatedItemSize; + this.maxBuffer = this.calculatedItemSize * 2; this.dataSource = new ScrollGridDatasource(this.breakpointObserver, this.columns, this.fetchFunction, this.filter); } ngAfterViewInit() { this.renderer.setStyle(this.viewport._contentWrapper.nativeElement, 'gap', this.gap + 'px'); this.renderer.setStyle(this.viewport._contentWrapper.nativeElement, 'padding', this.gap + 'px'); + if (!(typeof this.itemSize === 'number')) { + this.contentResize$ = new ResizeObserver(() => { + this.onContentResize(); + }); + this.contentResize$.observe(this.viewport._contentWrapper.nativeElement); + } } ngOnChanges(changes: SimpleChanges): void { @@ -97,6 +125,12 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang } } + ngOnDestroy() { + if (this.contentResize$) { + this.contentResize$.disconnect(); + } + } + isObject(value: any): boolean { return isObject(value); } @@ -120,4 +154,14 @@ export class ScrollGridComponent implements OnInit, AfterViewInit, OnChang public deleteItem(index: number) { this.dataSource.deleteItem(index); } + + private onContentResize() { + const contentWidth = this.viewport._contentWrapper.nativeElement.getBoundingClientRect().width; + const columns = this.dataSource.currentColumns; + const itemWidth = (contentWidth - this.gap * (columns + 1)) / columns; + this.calculatedItemSize = (this.itemSize as ItemSizeStrategy).itemSizeFunction(itemWidth); + this.minBuffer = this.calculatedItemSize; + this.maxBuffer = this.calculatedItemSize * 2; + this.cd.markForCheck(); + } } diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html index 1f071790be..bae808aaaf 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -260,7 +260,7 @@
-
TODO
+
+
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss index 0fe15f8e3e..0216445bee 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -153,6 +153,7 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; } .tb-image-details { + min-height: 52px; flex: 1; display: flex; flex-direction: column; @@ -205,6 +206,14 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; } } } + &.loading-cell { + .tb-image-preview-container, .tb-image-details { + background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%); + border-radius: 5px; + background-size: 200% 100%; + animation: 1s shine linear infinite; + } + } } .table-container { @@ -229,3 +238,9 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; } } } + +@keyframes shine { + to { + background-position-x: -200%; + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts index 7e8cae6719..4d28f0f810 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -51,7 +51,7 @@ import { NULL_UUID } from '@shared/models/id/has-uuid'; import { getCurrentAuthUser } from '@core/auth/auth.selectors'; import { Authority } from '@shared/models/authority.enum'; import { GridEntitiesFetchFunction, ScrollGridColumns } from '@home/models/datasource/scroll-grid-datasource'; -import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; +import { ItemSizeStrategy, ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; import { MatDialog } from '@angular/material/dialog'; import { UploadImageDialogComponent, @@ -112,6 +112,11 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe gridImagesFetchFunction: GridEntitiesFetchFunction; gridImagesFilter = ''; + gridImagesItemSizeStrategy: ItemSizeStrategy = { + defaultItemSize: 200, + itemSizeFunction: itemWidth => itemWidth + 72 + }; + authUser = getCurrentAuthUser(this.store); private updateDataSubscription: Subscription; diff --git a/ui-ngx/src/app/shared/components/image-input.component.html b/ui-ngx/src/app/shared/components/image-input.component.html index 039611bbf3..96f674a745 100644 --- a/ui-ngx/src/app/shared/components/image-input.component.html +++ b/ui-ngx/src/app/shared/components/image-input.component.html @@ -64,7 +64,7 @@
-
{{ fileName }}
+
{{ fileName }}
dashboard.maximum-upload-file-size
From 3322957630744dd471a9c8923f1af6cefc6b067f Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Wed, 22 Nov 2023 15:45:14 +0200 Subject: [PATCH 097/162] Import Export of images. Search without system images --- .../controller/ControllerConstants.java | 2 + .../server/controller/ImageController.java | 40 ++++++++++++++++++- .../resource/DefaultTbImageService.java | 6 +++ .../server/common/data/ImageExportData.java | 33 +++++++++++++++ .../server/common/data/TbResourceInfo.java | 2 +- .../server/dao/resource/BaseImageService.java | 4 +- 6 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/ImageExportData.java diff --git a/application/src/main/java/org/thingsboard/server/controller/ControllerConstants.java b/application/src/main/java/org/thingsboard/server/controller/ControllerConstants.java index e6b4235cf9..ee24c7755c 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ControllerConstants.java +++ b/application/src/main/java/org/thingsboard/server/controller/ControllerConstants.java @@ -142,6 +142,8 @@ public class ControllerConstants { protected static final String RESOURCE_INFO_DESCRIPTION = "Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. "; protected static final String RESOURCE_DESCRIPTION = "Resource is a heavyweight object that includes main information about the Resource and also data. "; + protected static final String RESOURCE_INCLUDE_SYSTEM_IMAGES_DESCRIPTION = "Use 'true' to include system images. Disabled by default. Ignored for requests by users with system administrator authority."; + protected static final String RESOURCE_TEXT_SEARCH_DESCRIPTION = "The case insensitive 'substring' filter based on the resource title."; protected static final String RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES = "createdTime, title, resourceType, tenantId"; protected static final String RESOURCE_TYPE_PROPERTY_ALLOWABLE_VALUES = "LWM2M_MODEL, JKS, PKCS_12, JS_MODULE"; diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index f3e9183053..3bfd342cad 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -26,6 +26,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.Base64Utils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.thingsboard.server.common.data.ImageDescriptor; +import org.thingsboard.server.common.data.ImageExportData; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -60,6 +62,7 @@ import java.util.concurrent.TimeUnit; import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION; +import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_INCLUDE_SYSTEM_IMAGES_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES; import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_TEXT_SEARCH_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.SORT_ORDER_ALLOWABLE_VALUES; @@ -140,6 +143,39 @@ public class ImageController extends BaseController { return downloadIfChanged(type, key, etag, false); } + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @GetMapping(value = IMAGE_URL + "/export") + public ImageExportData exportImage(@PathVariable String type, @PathVariable String key) throws Exception { + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); + ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); + byte[] data = imageService.getImageData(imageInfo.getTenantId(), imageInfo.getId()); + return new ImageExportData(descriptor.getMediaType(), imageInfo.getFileName(), imageInfo.getTitle(), imageInfo.getResourceKey(), Base64Utils.encodeToString(data)); + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PutMapping("/api/image/import") + public TbResourceInfo importImage(@RequestBody ImageExportData imageData) throws Exception { + SecurityUser user = getCurrentUser(); + TbResource image = new TbResource(); + image.setTenantId(user.getTenantId()); + accessControlService.checkPermission(user, Resource.TB_RESOURCE, Operation.CREATE, null, image); + + image.setFileName(imageData.getFileName()); + if (StringUtils.isNotEmpty(imageData.getTitle())) { + image.setTitle(imageData.getTitle()); + } else { + image.setTitle(imageData.getFileName()); + } + image.setResourceKey(imageData.getResourceKey()); + image.setResourceType(ResourceType.IMAGE); + ImageDescriptor descriptor = new ImageDescriptor(); + descriptor.setMediaType(imageData.getMediaType()); + image.setDescriptorValue(descriptor); + image.setData(Base64Utils.decodeFromString(imageData.getData())); + return tbImageService.save(image, user); + + } + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @GetMapping(value = IMAGE_URL + "/preview", produces = "image/png") public ResponseEntity downloadImagePreview(@PathVariable String type, @@ -161,6 +197,8 @@ public class ImageController extends BaseController { @RequestParam int pageSize, @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) @RequestParam int page, + @ApiParam(value = RESOURCE_INCLUDE_SYSTEM_IMAGES_DESCRIPTION) + @RequestParam(required = false) boolean includeSystemImages, @ApiParam(value = RESOURCE_TEXT_SEARCH_DESCRIPTION) @RequestParam(required = false) String textSearch, @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES) @@ -170,7 +208,7 @@ public class ImageController extends BaseController { // PE: generic permission PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); TenantId tenantId = getTenantId(); - if (getCurrentUser().getAuthority() == Authority.SYS_ADMIN) { + if (getCurrentUser().getAuthority() == Authority.SYS_ADMIN || includeSystemImages) { return checkNotNull(imageService.getImagesByTenantId(tenantId, pageLink)); } else { return checkNotNull(imageService.getAllImagesByTenantId(tenantId, pageLink)); diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 5f1e665ac4..822b46bc1d 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -80,6 +80,12 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb TenantId tenantId = image.getTenantId(); try { var oldEtag = getEtag(image); + if (image.getId() == null && StringUtils.isNotEmpty(image.getResourceKey())) { + var existingImage = imageService.getImageInfoByTenantIdAndKey(tenantId, image.getResourceKey()); + if (existingImage != null) { + image.setId(existingImage.getId()); + } + } TbResourceInfo savedImage = imageService.saveImage(image); notificationEntityService.logEntityAction(tenantId, savedImage.getId(), savedImage, actionType, user); if (oldEtag.isPresent()) { diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ImageExportData.java b/common/data/src/main/java/org/thingsboard/server/common/data/ImageExportData.java new file mode 100644 index 0000000000..d1b33f202a --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ImageExportData.java @@ -0,0 +1,33 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.data; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +@ApiModel +@Slf4j +@Data +public class ImageExportData { + + private final String mediaType; + private final String fileName; + private final String title; + private final String resourceKey; + private final String data; + +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 61df84af44..ad292fdf67 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -109,7 +109,7 @@ public class TbResourceInfo extends BaseData implements HasName, H @JsonProperty(access = JsonProperty.Access.READ_ONLY) public String getLink() { if (resourceType == ResourceType.IMAGE) { - return "/api/images/" + (tenantId.isSysTenantId() ? "system" : "tenant") + "/" + resourceKey; + return "/api/images/" + ((tenantId == null || !tenantId.isSysTenantId()) ? "tenant" : "system") + "/" + resourceKey; // tenantId is null in case of export to git } return null; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 559e220b48..fa06ba6e95 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -15,11 +15,9 @@ */ package org.thingsboard.server.dao.resource; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.thingsboard.common.util.RegexUtils; @@ -91,7 +89,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic @Transactional @Override public TbResourceInfo saveImage(TbResource image) throws Exception { - if (image.getId() == null) { + if (image.getId() == null && StringUtils.isEmpty(image.getResourceKey())) { image.setResourceKey(getUniqueKey(image.getTenantId(), image.getFileName())); } resourceValidator.validate(image, TbResourceInfo::getTenantId); From 3f2633fba55e718873712cfcf4d0ba7db19a157b Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 23 Nov 2023 12:22:15 +0200 Subject: [PATCH 098/162] extended widgetTypes access to customer user authority --- .../server/controller/WidgetTypeController.java | 4 ++-- .../controller/WidgetTypeControllerTest.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java index f90a196edf..0109a327e8 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java @@ -216,7 +216,7 @@ public class WidgetTypeController extends AutoCommitController { @ApiOperation(value = "Get all Widget types for specified Bundle (getBundleWidgetTypes)", notes = "Returns an array of Widget Type objects that belong to specified Widget Bundle." + WIDGET_TYPE_DESCRIPTION + " " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/widgetTypes", params = {"widgetsBundleId"}, method = RequestMethod.GET) @ResponseBody public List getBundleWidgetTypes( @@ -248,7 +248,7 @@ public class WidgetTypeController extends AutoCommitController { @ApiOperation(value = "Get all Widget types details for specified Bundle (getBundleWidgetTypes)", notes = "Returns an array of Widget Type Details objects that belong to specified Widget Bundle." + WIDGET_TYPE_DETAILS_DESCRIPTION + " " + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @RequestMapping(value = "/widgetTypesDetails", params = {"widgetsBundleId"}, method = RequestMethod.GET) @ResponseBody public List getBundleWidgetTypesDetails( diff --git a/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java index 9cc9fd0596..553b0d6490 100644 --- a/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java @@ -190,6 +190,20 @@ public class WidgetTypeControllerTest extends AbstractControllerTest { Collections.sort(loadedWidgetTypes, idComparator); Assert.assertEquals(widgetTypes, loadedWidgetTypes); + + loginCustomerUser(); + + List loadedWidgetTypes2 = doGetTyped("/api/widgetTypes?widgetsBundleId={widgetsBundleId}", + new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); + Collections.sort(loadedWidgetTypes2, idComparator); + Assert.assertEquals(widgetTypes, loadedWidgetTypes2); + + List loadedWidgetTypes3 = doGetTyped("/api/widgetTypesDetails?widgetsBundleId={widgetsBundleId}", + new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); + List widgetTypes3 = loadedWidgetTypes3.stream().map(WidgetType::new).collect(Collectors.toList()); + Collections.sort(widgetTypes3, idComparator); + Assert.assertEquals(widgetTypes3, loadedWidgetTypes); + } @Test From 12fafa40f534b327931f981a924efab169fe3ee0 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 23 Nov 2023 17:56:04 +0200 Subject: [PATCH 099/162] UI: Images import/export suppoer. Implement flow to delete images used by other entities. --- ui-ngx/src/app/core/http/image.service.ts | 16 +- .../components/details-panel.component.html | 2 +- .../entity/entity-details-page.component.html | 2 +- .../entity/entity-details-page.component.ts | 6 +- .../home/components/home-components.module.ts | 10 +- .../image/image-gallery.component.html | 8 +- .../image/image-gallery.component.ts | 218 +++++++++--------- .../image/image-references.component.html | 49 ++++ .../image/image-references.component.ts | 171 ++++++++++++++ .../components/image/images-datasource.ts | 130 +++++++++++ .../image/images-in-use-dialog.component.html | 82 +++++++ .../image/images-in-use-dialog.component.scss | 39 ++++ .../image/images-in-use-dialog.component.ts | 112 +++++++++ .../import-export/import-export.service.ts | 44 +++- .../widget/widget-library-routing.module.ts | 48 ++++ .../pages/widget/widget-type.component.html | 6 + .../widget-types-table-config.resolver.ts | 20 +- .../widget/widgets-bundle.component.html | 6 + .../widgets-bundles-table-config.resolver.ts | 16 +- .../shared/components/popover.component.ts | 3 + .../app/shared/components/popover.service.ts | 11 +- ui-ngx/src/app/shared/models/alarm.models.ts | 3 +- ui-ngx/src/app/shared/models/asset.models.ts | 6 +- .../src/app/shared/models/customer.model.ts | 3 +- .../src/app/shared/models/dashboard.models.ts | 3 +- ui-ngx/src/app/shared/models/device.models.ts | 8 +- ui-ngx/src/app/shared/models/edge.models.ts | 3 +- .../app/shared/models/entity-type.models.ts | 4 +- .../app/shared/models/entity-view.models.ts | 3 +- ui-ngx/src/app/shared/models/entity.models.ts | 5 + .../app/shared/models/notification.models.ts | 9 +- .../app/shared/models/ota-package.models.ts | 3 +- ui-ngx/src/app/shared/models/queue.models.ts | 3 +- .../src/app/shared/models/resource.models.ts | 42 +++- .../app/shared/models/rule-chain.models.ts | 3 +- ui-ngx/src/app/shared/models/user.model.ts | 3 +- ui-ngx/src/app/shared/models/widget.models.ts | 3 +- .../app/shared/models/widgets-bundle.model.ts | 3 +- .../assets/locale/locale.constant-en_US.json | 17 +- 39 files changed, 959 insertions(+), 164 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/image/image-references.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/image-references.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/image/images-datasource.ts create mode 100644 ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts diff --git a/ui-ngx/src/app/core/http/image.service.ts b/ui-ngx/src/app/core/http/image.service.ts index e13acb0b3e..cde43b0d8b 100644 --- a/ui-ngx/src/app/core/http/image.service.ts +++ b/ui-ngx/src/app/core/http/image.service.ts @@ -25,7 +25,7 @@ import { ImageResourceInfo, imageResourceType, ImageResourceType, - IMAGES_URL_PREFIX, isImageResourceUrl + IMAGES_URL_PREFIX, isImageResourceUrl, ImageExportData } from '@shared/models/resource.models'; import { catchError, map, switchMap } from 'rxjs/operators'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; @@ -133,8 +133,18 @@ export class ImageService { ); } - public deleteImage(type: ImageResourceType, key: string, config?: RequestConfig) { - return this.http.delete(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, defaultHttpOptionsFromConfig(config)); + public deleteImage(type: ImageResourceType, key: string, force = false, config?: RequestConfig) { + return this.http.delete(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}?force=${force}`, defaultHttpOptionsFromConfig(config)); + } + + public exportImage(type: ImageResourceType, key: string, config?: RequestConfig): Observable { + return this.http.get(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}/export`, + defaultHttpOptionsFromConfig(config)); + } + + public importImage(imageData: ImageExportData, config?: RequestConfig): Observable { + return this.http.put('/api/image/import', + imageData, defaultHttpOptionsFromConfig(config)); } } diff --git a/ui-ngx/src/app/modules/home/components/details-panel.component.html b/ui-ngx/src/app/modules/home/components/details-panel.component.html index 748723197f..bbb0e2006e 100644 --- a/ui-ngx/src/app/modules/home/components/details-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/details-panel.component.html @@ -56,7 +56,7 @@ - -
+ + + + + + + + + + + + + + {{ image.title }} + + + + + + {{ 'image.name' | translate }} + + + {{ translate.get('image.selected-images', {count: dataSource.selection.selected.length}) | async }} + + + + {{ image.title }} + + + + + + + + + + +
+
+ +
+
+ + +
+ + +
+
diff --git a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.scss b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.scss new file mode 100644 index 0000000000..a53c97404d --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.scss @@ -0,0 +1,39 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host { + .tb-images-in-use-content { + display: flex; + flex-direction: column; + &.multiple { + gap: 16px; + } + .table-container { + overflow: auto; + .mat-mdc-cell.mat-column-preview { + width: 50px; + height: 50px; + padding: 2px 12px; + display: block; + } + } + .tb-image-preview { + width: 50px; + height: 50px; + object-fit: contain; + border-radius: 4px; + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts new file mode 100644 index 0000000000..9e1e7708c9 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts @@ -0,0 +1,112 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, Inject, OnInit, Renderer2, ViewContainerRef } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { DialogComponent } from '@shared/components/dialog.component'; +import { Router } from '@angular/router'; +import { ImageReferences, ImageResourceInfo, ImageResourceInfoWithReferences } from '@shared/models/resource.models'; +import { ImagesDatasource } from '@home/components/image/images-datasource'; +import { MatButton } from '@angular/material/button'; +import { TbPopoverService } from '@shared/components/popover.service'; +import { ImageReferencesComponent } from '@home/components/image/image-references.component'; +import { TranslateService } from '@ngx-translate/core'; + +export interface ImagesInUseDialogData { + multiple: boolean; + images: ImageResourceInfoWithReferences[]; +} + +@Component({ + selector: 'tb-images-in-use-dialog', + templateUrl: './images-in-use-dialog.component.html', + styleUrls: ['./images-in-use-dialog.component.scss'] +}) +export class ImagesInUseDialogComponent extends + DialogComponent implements OnInit { + + title: string; + message: string; + + references: ImageReferences; + + dataSource: ImagesDatasource; + + constructor(protected store: Store, + protected router: Router, + @Inject(MAT_DIALOG_DATA) public data: ImagesInUseDialogData, + public dialogRef: MatDialogRef, + public translate: TranslateService, + private renderer: Renderer2, + private viewContainerRef: ViewContainerRef, + private popoverService: TbPopoverService) { + super(store, router, dialogRef); + } + + ngOnInit(): void { + if (this.data.multiple) { + this.title = 'image.images-are-in-use'; + this.message = 'image.images-are-in-use-text'; + this.dataSource = new ImagesDatasource(null, this.data.images, entity => true); + } else { + this.title = 'image.image-is-in-use'; + this.message = 'image.image-is-in-use-text'; + this.references = this.data.images[0].references; + } + } + + cancel() { + this.dialogRef.close(null); + } + + delete() { + if (this.data.multiple) { + this.dialogRef.close(this.dataSource.selection.selected); + } else { + this.dialogRef.close(this.data.images); + } + } + + toggleShowReferences($event: Event, image: ImageResourceInfoWithReferences, referencesButton: MatButton) { + if ($event) { + $event.stopPropagation(); + } + const trigger = referencesButton._elementRef.nativeElement; + if (this.popoverService.hasPopover(trigger)) { + this.popoverService.hidePopover(trigger); + } else { + const referencesPopover = this.popoverService.displayPopover(trigger, this.renderer, + this.viewContainerRef, ImageReferencesComponent, 'top', true, null, + { + references: image.references + }, {}, {}, {}, + false, + visible => { + const addClasses = visible ? 'mdc-button--unelevated mat-mdc-unelevated-button' : 'mdc-button--outlined mat-mdc-outlined-button'; + const removeClasses = visible ? 'mdc-button--outlined mat-mdc-outlined-button' : 'mdc-button--unelevated mat-mdc-unelevated-button'; + addClasses.split(' ').forEach(clazz => { + this.renderer.addClass(trigger, clazz); + }); + removeClasses.split(' ').forEach(clazz => { + this.renderer.removeClass(trigger, clazz); + }); + }); + referencesPopover.tbComponentRef.instance.popoverComponent = referencesPopover; + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts index 620c1aaab3..1409be7c1a 100644 --- a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts +++ b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts @@ -21,7 +21,7 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { ActionNotificationShow } from '@core/notification/notification.actions'; import { Dashboard, DashboardLayoutId } from '@shared/models/dashboard.models'; -import { deepClone, guid, isDefined, isObject, isString, isUndefined } from '@core/utils'; +import { deepClone, guid, isDefined, isNotEmptyStr, isObject, isString, isUndefined } from '@core/utils'; import { WINDOW } from '@core/services/window.service'; import { DOCUMENT } from '@angular/common'; import { @@ -79,6 +79,8 @@ import { ExportWidgetsBundleDialogData, ExportWidgetsBundleDialogResult } from '@home/components/import-export/export-widgets-bundle-dialog.component'; +import { ImageService } from '@core/http/image.service'; +import { ImageExportData, ImageResourceInfo, ImageResourceType } from '@shared/models/resource.models'; // @dynamic @Injectable() @@ -99,12 +101,44 @@ export class ImportExportService { private deviceService: DeviceService, private assetService: AssetService, private edgeService: EdgeService, + private imageService: ImageService, private utils: UtilsService, private itembuffer: ItemBufferService, private dialog: MatDialog) { } + public exportImage(type: ImageResourceType, key: string) { + this.imageService.exportImage(type, key).subscribe( + { + next: (imageData) => { + let name = imageData.title; + name = name.toLowerCase().replace(/\W/g, '_'); + this.exportToPc(imageData, name); + }, + error: (e) => { + this.handleExportError(e, 'image.export-failed-error'); + } + } + ); + } + + public importImage(): Observable { + return this.openImportDialog('image.import-image', 'image.image-json-file').pipe( + mergeMap((imageData: ImageExportData) => { + if (!this.validateImportedImage(imageData)) { + this.store.dispatch(new ActionNotificationShow( + {message: this.translate.instant('image.invalid-image-json-file-error'), + type: 'error'})); + throw new Error('Invalid image JSON file'); + } else { + return this.imageService.importImage(imageData); + } + }), + catchError(() => of(null)) + ); + } + public exportDashboard(dashboardId: string) { this.dashboardService.getDashboard(dashboardId).subscribe( (dashboard) => { @@ -818,6 +852,14 @@ export class ImportExportService { type: 'error'})); } + private validateImportedImage(image: ImageExportData): boolean { + return !(!isNotEmptyStr(image.data) + || !isNotEmptyStr(image.title) + || !isNotEmptyStr(image.fileName) + || !isNotEmptyStr(image.mediaType) + || !isNotEmptyStr(image.resourceKey)); + } + private validateImportedDashboard(dashboard: Dashboard): boolean { if (isUndefined(dashboard.title) || isUndefined(dashboard.configuration)) { return false; diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts index 8519b9d4d0..9b14558086 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts @@ -31,6 +31,8 @@ import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard'; import { RouterTabsComponent } from '@home/components/router-tabs.component'; import { WidgetTypesTableConfigResolver } from '@home/pages/widget/widget-types-table-config.resolver'; import { WidgetsBundleWidgetsComponent } from '@home/pages/widget/widgets-bundle-widgets.component'; +import { EntityDetailsPageComponent } from '@home/components/entity/entity-details-page.component'; +import { entityDetailsPageBreadcrumbLabelFunction } from '@home/pages/home-pages.models'; export interface WidgetEditorData { widgetTypeDetails: WidgetTypeDetails; @@ -122,6 +124,29 @@ const widgetTypesRoutes: Routes = [ entitiesTableConfig: WidgetTypesTableConfigResolver } }, + { + path: 'details', + children: [ + { + path: ':entityId', + component: EntityDetailsPageComponent, + canDeactivate: [ConfirmOnExitGuard], + data: { + breadcrumb: { + labelFunction: entityDetailsPageBreadcrumbLabelFunction, + icon: 'now_widgets' + } as BreadCrumbConfig, + auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN], + title: 'widget.widgets', + hideTabs: true, + backNavigationCommands: ['../..'] + }, + resolve: { + entitiesTableConfig: WidgetTypesTableConfigResolver + } + } + ] + }, ...widgetEditorRouter ] }, @@ -148,6 +173,29 @@ const widgetsBundlesRoutes: Routes = [ entitiesTableConfig: WidgetsBundlesTableConfigResolver } }, + { + path: 'details', + children: [ + { + path: ':entityId', + component: EntityDetailsPageComponent, + canDeactivate: [ConfirmOnExitGuard], + data: { + breadcrumb: { + labelFunction: entityDetailsPageBreadcrumbLabelFunction, + icon: 'now_widgets' + } as BreadCrumbConfig, + auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN], + title: 'widgets-bundle.widgets-bundles', + hideTabs: true, + backNavigationCommands: ['../..'] + }, + resolve: { + entitiesTableConfig: WidgetsBundlesTableConfigResolver + } + } + ] + }, { path: ':widgetsBundleId', data: { diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html index 9db9780b70..46068bf9f8 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html @@ -22,6 +22,12 @@ [fxShow]="!isEdit"> {{ 'widget.edit' | translate }} + + - -
- + +
+
+ image.gallery +
+
+ +
+
+ +
+ {{ 'image.include-system-images' | translate }}
-
-
- -
- - - - + + + +
+
- - +
+ {{ 'image.include-system-images' | translate }}
diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss index 0216445bee..0b7b5e3c65 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -28,6 +28,18 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; border-radius: 4px; } + .mat-mdc-table-toolbar { + &.multi-row { + &.mat-toolbar-single-row { + height: 112px; + } + .mat-mdc-slide-toggle { + display: flex; + min-height: 48px; + } + } + } + .tb-images-title { padding-right: 20px; white-space: nowrap; diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts index 1b59f34455..43938f2515 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -69,6 +69,11 @@ import { } from '@home/components/image/images-in-use-dialog.component'; import { ImagesDatasource } from '@home/components/image/images-datasource'; +interface GridImagesFilter { + search: string; + includeSystemImages: boolean; +} + @Component({ selector: 'tb-image-gallery', templateUrl: './image-gallery.component.html', @@ -104,6 +109,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe dataSource: ImagesDatasource; textSearch = this.fb.control('', {nonNullable: true}); + includeSystemImages = this.fb.control(false); gridColumns: ScrollGridColumns = { columns: 2, @@ -118,8 +124,11 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } }; - gridImagesFetchFunction: GridEntitiesFetchFunction; - gridImagesFilter = ''; + gridImagesFetchFunction: GridEntitiesFetchFunction; + gridImagesFilter: GridImagesFilter = { + search: '', + includeSystemImages: false + }; gridImagesItemSizeStrategy: ItemSizeStrategy = { defaultItemSize: 200, @@ -148,16 +157,16 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe super(store); this.gridImagesFetchFunction = (pageSize, page, filter) => { - const pageLink = new PageLink(pageSize, page, filter, { + const pageLink = new PageLink(pageSize, page, filter.search, { property: 'createdTime', direction: Direction.DESC }); - return this.imageService.getImages(pageLink); + return this.imageService.getImages(pageLink, filter.includeSystemImages); }; } ngOnInit(): void { - this.displayedColumns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size', 'system', 'actions']; + this.displayedColumns = this.computeDisplayedColumns(); let sortOrder: SortOrder = this.defaultSortOrder; this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3]; const routerQueryParams: PageQueryParam = this.route.snapshot.queryParams; @@ -208,7 +217,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe this.textSearch.valueChanges.pipe( debounceTime(150), distinctUntilChanged((prev, current) => - ((this.mode === 'list' ? this.pageLink.textSearch : this.gridImagesFilter) ?? '') === current.trim()), + ((this.mode === 'list' ? this.pageLink.textSearch : this.gridImagesFilter.search) ?? '') === current.trim()), takeUntil(this.destroy$) ).subscribe(value => { if (this.mode === 'list') { @@ -224,7 +233,25 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe this.updateData(); } } else { - this.gridImagesFilter = isNotEmptyStr(value) ? value.trim() : null; + this.gridImagesFilter = { + search: isNotEmptyStr(value) ? encodeURI(value) : null, + includeSystemImages: this.includeSystemImages.value + }; + this.cd.markForCheck(); + } + }); + this.includeSystemImages.valueChanges.pipe( + takeUntil(this.destroy$) + ).subscribe(value => { + this.displayedColumns = this.computeDisplayedColumns(); + this.gridImagesFilter = { + search: this.gridImagesFilter.search, + includeSystemImages: value + }; + if (this.mode === 'list') { + this.paginator.pageIndex = 0; + this.updateData(); + } else { this.cd.markForCheck(); } }); @@ -253,6 +280,19 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } } + public get isSysAdmin(): boolean { + return this.authUser.authority === Authority.SYS_ADMIN; + } + + private computeDisplayedColumns(): string[] { + const columns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size']; + if (!this.isSysAdmin && this.includeSystemImages.value) { + columns.push('system'); + } + columns.push('actions'); + return columns; + } + private updateMode() { if (this.mode === 'list') { this.initListMode(); @@ -346,7 +386,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } else { this.pageLink.sortOrder = null; } - this.dataSource.loadEntities(this.pageLink); + this.dataSource.loadEntities(this.pageLink, this.includeSystemImages.value); } else { this.gridComponent.update(); } @@ -386,7 +426,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } isSystem(image?: ImageResourceInfo): boolean { - return image?.tenantId?.id === NULL_UUID; + return !this.isSysAdmin && image?.tenantId?.id === NULL_UUID; } readonly(image?: ImageResourceInfo): boolean { diff --git a/ui-ngx/src/app/modules/home/components/image/images-datasource.ts b/ui-ngx/src/app/modules/home/components/image/images-datasource.ts index 604b96d25b..8be2f30cc0 100644 --- a/ui-ngx/src/app/modules/home/components/image/images-datasource.ts +++ b/ui-ngx/src/app/modules/home/components/image/images-datasource.ts @@ -64,10 +64,10 @@ export class ImagesDatasource implements DataSource { } } - loadEntities(pageLink: PageLink): Observable> { + loadEntities(pageLink: PageLink, includeSystemImages = false): Observable> { this.dataLoading = true; const result = new ReplaySubject>(); - this.fetchEntities(pageLink).pipe( + this.fetchEntities(pageLink, includeSystemImages).pipe( tap(() => { this.selection.clear(); }), @@ -83,8 +83,8 @@ export class ImagesDatasource implements DataSource { return result; } - fetchEntities(pageLink: PageLink): Observable> { - return this.imageService.getImages(pageLink); + fetchEntities(pageLink: PageLink, includeSystemImages = false): Observable> { + return this.imageService.getImages(pageLink, includeSystemImages); } isAllSelected(): Observable { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index b48cd84a5e..9bd9ef140c 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2981,7 +2981,8 @@ "delete-image-in-use-text": "If you still want to delete the image, click the Delete anyway button.", "system-entities": "System entities:", "entities": "entities:", - "references": "References" + "references": "References", + "include-system-images": "Include system images" }, "image-input": { "drop-images-or": "Drag and drop an images or", From 18e9a5916c0b8f830fa424b9fd82600032e76aac Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Fri, 24 Nov 2023 13:33:41 +0200 Subject: [PATCH 101/162] Provide OOP concept for Edge entities MsgConstructor: add factory and 2 versions implementation --- .../service/edge/EdgeContextComponent.java | 2 +- .../rpc/constructor/AssetMsgConstructor.java | 71 ------- .../rpc/constructor/DeviceMsgConstructor.java | 169 ---------------- .../constructor/RuleChainMsgConstructor.java | 83 -------- .../TenantProfileMsgConstructor.java | 60 ------ .../WidgetsBundleMsgConstructor.java | 77 -------- .../alarm/AlarmMsgConstructor.java | 25 +++ .../alarm/AlarmMsgConstructorFactory.java | 45 +++++ .../AlarmMsgConstructorV1.java} | 24 +-- .../alarm/AlarmMsgConstructorV2.java | 36 ++++ .../asset/AssetMsgConstructor.java | 35 ++++ .../asset/AssetMsgConstructorFactory.java | 45 +++++ .../AssetMsgConstructorV1.java} | 47 +++-- .../asset/AssetMsgConstructorV2.java | 44 +++++ .../asset/BaseAssetMsgConstructor.java | 41 ++++ .../customer/BaseCustomerMsgConstructor.java | 31 +++ .../customer/CustomerMsgConstructor.java | 28 +++ .../CustomerMsgConstructorFactory.java | 45 +++++ .../CustomerMsgConstructorV1.java} | 26 +-- .../customer/CustomerMsgConstructorV2.java | 35 ++++ .../BaseDashboardMsgConstructor.java | 31 +++ .../dashboard/DashboardMsgConstructor.java | 28 +++ .../DashboardMsgConstructorFactory.java | 45 +++++ .../DashboardMsgConstructorV1.java} | 26 +-- .../dashboard/DashboardMsgConstructorV2.java | 35 ++++ .../device/BaseDeviceMsgConstructor.java | 102 ++++++++++ .../device/DeviceMsgConstructor.java | 38 ++++ .../device/DeviceMsgConstructorFactory.java | 45 +++++ .../DeviceMsgConstructorV1.java} | 75 +++++-- .../device/DeviceMsgConstructorV2.java | 51 +++++ .../{ => edge}/EdgeMsgConstructor.java | 2 +- .../BaseEntityViewMsgConstructor.java | 31 +++ .../entityview/EntityViewMsgConstructor.java | 28 +++ .../EntityViewMsgConstructorFactory.java | 45 +++++ .../EntityViewMsgConstructorV1.java} | 26 +-- .../EntityViewMsgConstructorV2.java | 35 ++++ .../ota/BaseOtaPackageMsgConstructor.java | 31 +++ .../ota/OtaPackageMsgConstructor.java | 28 +++ .../ota/OtaPackageMsgConstructorFactory.java | 45 +++++ .../OtaPackageMsgConstructorV1.java} | 26 +-- .../ota/OtaPackageMsgConstructorV2.java | 35 ++++ .../queue/BaseQueueMsgConstructor.java | 31 +++ .../queue/QueueMsgConstructor.java | 28 +++ .../queue/QueueMsgConstructorFactory.java | 45 +++++ .../QueueMsgConstructorV1.java} | 24 +-- .../queue/QueueMsgConstructorV2.java | 35 ++++ .../relation/RelationMsgConstructor.java | 25 +++ .../RelationMsgConstructorFactory.java | 45 +++++ .../RelationMsgConstructorV1.java} | 16 +- .../relation/RelationMsgConstructorV2.java | 34 ++++ .../resource/BaseResourceMsgConstructor.java | 31 +++ .../resource/ResourceMsgConstructor.java | 28 +++ .../ResourceMsgConstructorFactory.java | 45 +++++ .../ResourceMsgConstructorV1.java} | 29 +-- .../resource/ResourceMsgConstructorV2.java | 35 ++++ ... => BaseRuleChainMetadataConstructor.java} | 11 -- .../rule/BaseRuleChainMsgConstructor.java | 44 +++++ .../RuleChainMetadataConstructorFactory.java | 6 +- .../RuleChainMetadataConstructorV330.java | 2 + .../RuleChainMetadataConstructorV340.java | 2 + .../RuleChainMetadataConstructorV362.java | 29 +++ .../rule/RuleChainMsgConstructor.java | 37 ++++ .../rule/RuleChainMsgConstructorFactory.java | 45 +++++ .../rule/RuleChainMsgConstructorV1.java | 45 +++++ .../rule/RuleChainMsgConstructorV2.java | 39 ++++ .../settings/AdminSettingsMsgConstructor.java | 24 +++ .../AdminSettingsMsgConstructorFactory.java | 45 +++++ .../AdminSettingsMsgConstructorV1.java} | 16 +- .../AdminSettingsMsgConstructorV2.java | 32 +++ .../EntityDataMsgConstructor.java | 5 +- .../tenant/TenantMsgConstructor.java | 30 +++ .../tenant/TenantMsgConstructorFactory.java | 45 +++++ .../TenantMsgConstructorV1.java} | 38 +++- .../tenant/TenantMsgConstructorV2.java | 41 ++++ .../user/BaseUserMsgConstructor.java | 31 +++ .../constructor/user/UserMsgConstructor.java | 32 +++ .../user/UserMsgConstructorFactory.java | 45 +++++ .../UserMsgConstructorV1.java} | 40 +--- .../user/UserMsgConstructorV2.java | 42 ++++ .../widget/BaseWidgetMsgConstructor.java | 43 ++++ .../widget/WidgetMsgConstructor.java | 38 ++++ .../widget/WidgetMsgConstructorFactory.java | 45 +++++ .../WidgetMsgConstructorV1.java} | 48 +++-- .../widget/WidgetMsgConstructorV2.java | 48 +++++ .../edge/rpc/processor/BaseEdgeProcessor.java | 80 +++----- .../processor/alarm/BaseAlarmProcessor.java | 4 +- .../processor/asset/AssetEdgeProcessor.java | 6 +- .../asset/AssetProfileEdgeProcessor.java | 4 +- .../customer/CustomerEdgeProcessor.java | 4 +- .../dashboard/DashboardEdgeProcessor.java | 4 +- .../processor/device/DeviceEdgeProcessor.java | 20 +- .../device/DeviceProfileEdgeProcessor.java | 4 +- .../entityview/EntityViewEdgeProcessor.java | 4 +- .../ota/OtaPackageEdgeProcessor.java | 4 +- .../processor/queue/QueueEdgeProcessor.java | 6 +- .../relation/RelationEdgeProcessor.java | 2 +- .../resource/ResourceEdgeProcessor.java | 4 +- .../rule/RuleChainEdgeProcessor.java | 6 +- .../settings/AdminSettingsEdgeProcessor.java | 3 +- .../processor/tenant/TenantEdgeProcessor.java | 4 +- .../tenant/TenantProfileEdgeProcessor.java | 2 +- .../rpc/processor/user/UserEdgeProcessor.java | 6 +- .../widget/WidgetBundleEdgeProcessor.java | 4 +- .../widget/WidgetTypeEdgeProcessor.java | 7 +- .../RuleChainMsgConstructorTest.java | 15 +- .../rpc/processor/BaseEdgeProcessorTest.java | 184 ++++++++++++++---- 106 files changed, 2661 insertions(+), 892 deletions(-) delete mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java delete mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java delete mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java delete mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java delete mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{AlarmMsgConstructor.java => alarm/AlarmMsgConstructorV1.java} (67%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{AssetProfileMsgConstructor.java => asset/AssetMsgConstructorV1.java} (63%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/BaseAssetMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/BaseCustomerMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{CustomerMsgConstructor.java => customer/CustomerMsgConstructorV1.java} (65%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/BaseDashboardMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{DashboardMsgConstructor.java => dashboard/DashboardMsgConstructorV1.java} (60%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/BaseDeviceMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{DeviceProfileMsgConstructor.java => device/DeviceMsgConstructorV1.java} (55%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV2.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{ => edge}/EdgeMsgConstructor.java (96%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/BaseEntityViewMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{EntityViewMsgConstructor.java => entityview/EntityViewMsgConstructorV1.java} (67%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/BaseOtaPackageMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{OtaPackageMsgConstructor.java => ota/OtaPackageMsgConstructorV1.java} (69%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/BaseQueueMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{QueueMsgConstructor.java => queue/QueueMsgConstructorV1.java} (77%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{RelationMsgConstructor.java => relation/RelationMsgConstructorV1.java} (74%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/BaseResourceMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{ResourceMsgConstructor.java => resource/ResourceMsgConstructorV1.java} (57%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV2.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/{AbstractRuleChainMetadataConstructor.java => BaseRuleChainMetadataConstructor.java} (87%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{AdminSettingsMsgConstructor.java => settings/AdminSettingsMsgConstructorV1.java} (67%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV2.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{ => telemetry}/EntityDataMsgConstructor.java (98%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{TenantMsgConstructor.java => tenant/TenantMsgConstructorV1.java} (62%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/BaseUserMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{UserMsgConstructor.java => user/UserMsgConstructorV1.java} (57%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV2.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/BaseWidgetMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java rename application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/{WidgetTypeMsgConstructor.java => widget/WidgetMsgConstructorV1.java} (67%) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV2.java diff --git a/application/src/main/java/org/thingsboard/server/service/edge/EdgeContextComponent.java b/application/src/main/java/org/thingsboard/server/service/edge/EdgeContextComponent.java index 0d2b6675c9..c62bd81242 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/EdgeContextComponent.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/EdgeContextComponent.java @@ -42,7 +42,7 @@ import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.EdgeEventStorageSettings; -import org.thingsboard.server.service.edge.rpc.constructor.EdgeMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.edge.EdgeMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.alarm.AlarmEdgeProcessor; import org.thingsboard.server.service.edge.rpc.processor.asset.AssetEdgeProcessor; import org.thingsboard.server.service.edge.rpc.processor.asset.AssetProfileEdgeProcessor; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java deleted file mode 100644 index f46ec7ab2d..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.service.edge.rpc.constructor; - -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.asset.Asset; -import org.thingsboard.server.common.data.id.AssetId; -import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; -import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; - -@Component -@TbCoreComponent -public class AssetMsgConstructor { - - public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedAssetUpdateMsg(msgType, asset); - } - return AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) - .setIdMSB(asset.getUuidId().getMostSignificantBits()) - .setIdLSB(asset.getUuidId().getLeastSignificantBits()).build(); - } - - private AssetUpdateMsg constructDeprecatedAssetUpdateMsg(UpdateMsgType msgType, Asset asset) { - AssetUpdateMsg.Builder builder = AssetUpdateMsg.newBuilder() - .setMsgType(msgType) - .setIdMSB(asset.getUuidId().getMostSignificantBits()) - .setIdLSB(asset.getUuidId().getLeastSignificantBits()) - .setName(asset.getName()) - .setType(asset.getType()); - if (asset.getLabel() != null) { - builder.setLabel(asset.getLabel()); - } - if (asset.getCustomerId() != null) { - builder.setCustomerIdMSB(asset.getCustomerId().getId().getMostSignificantBits()); - builder.setCustomerIdLSB(asset.getCustomerId().getId().getLeastSignificantBits()); - } - if (asset.getAssetProfileId() != null) { - builder.setAssetProfileIdMSB(asset.getAssetProfileId().getId().getMostSignificantBits()); - builder.setAssetProfileIdLSB(asset.getAssetProfileId().getId().getLeastSignificantBits()); - } - if (asset.getAdditionalInfo() != null) { - builder.setAdditionalInfo(JacksonUtil.toString(asset.getAdditionalInfo())); - } - return builder.build(); - } - - public AssetUpdateMsg constructAssetDeleteMsg(AssetId assetId) { - return AssetUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(assetId.getId().getMostSignificantBits()) - .setIdLSB(assetId.getId().getLeastSignificantBits()).build(); - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java deleted file mode 100644 index bbdfc098c5..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java +++ /dev/null @@ -1,169 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.service.edge.rpc.constructor; - -import com.fasterxml.jackson.databind.JsonNode; -import com.google.protobuf.ByteString; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.Device; -import org.thingsboard.server.common.data.id.DeviceId; -import org.thingsboard.server.common.data.security.DeviceCredentials; -import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; -import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; -import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; -import org.thingsboard.server.gen.edge.v1.RpcRequestMsg; -import org.thingsboard.server.gen.edge.v1.RpcResponseMsg; -import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.queue.util.DataDecodingEncodingService; -import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; - -import java.util.UUID; - -@Component -@TbCoreComponent -public class DeviceMsgConstructor { - - @Autowired - private DataDecodingEncodingService dataDecodingEncodingService; - - public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedDeviceUpdateMsg(msgType, device); - } - return DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) - .setIdMSB(device.getId().getId().getMostSignificantBits()) - .setIdLSB(device.getId().getId().getLeastSignificantBits()).build(); - } - - private DeviceUpdateMsg constructDeprecatedDeviceUpdateMsg(UpdateMsgType msgType, Device device) { - DeviceUpdateMsg.Builder builder = DeviceUpdateMsg.newBuilder() - .setMsgType(msgType) - .setIdMSB(device.getId().getId().getMostSignificantBits()) - .setIdLSB(device.getId().getId().getLeastSignificantBits()) - .setName(device.getName()) - .setType(device.getType()); - if (device.getLabel() != null) { - builder.setLabel(device.getLabel()); - } - if (device.getCustomerId() != null) { - builder.setCustomerIdMSB(device.getCustomerId().getId().getMostSignificantBits()); - builder.setCustomerIdLSB(device.getCustomerId().getId().getLeastSignificantBits()); - } - if (device.getDeviceProfileId() != null) { - builder.setDeviceProfileIdMSB(device.getDeviceProfileId().getId().getMostSignificantBits()); - builder.setDeviceProfileIdLSB(device.getDeviceProfileId().getId().getLeastSignificantBits()); - } - if (device.getAdditionalInfo() != null) { - builder.setAdditionalInfo(JacksonUtil.toString(device.getAdditionalInfo())); - } - if (device.getFirmwareId() != null) { - builder.setFirmwareIdMSB(device.getFirmwareId().getId().getMostSignificantBits()) - .setFirmwareIdLSB(device.getFirmwareId().getId().getLeastSignificantBits()); - } - if (device.getSoftwareId() != null) { - builder.setSoftwareIdMSB(device.getSoftwareId().getId().getMostSignificantBits()) - .setSoftwareIdLSB(device.getSoftwareId().getId().getLeastSignificantBits()); - } - if (device.getDeviceData() != null) { - builder.setDeviceDataBytes(ByteString.copyFrom(dataDecodingEncodingService.encode(device.getDeviceData()))); - } - return builder.build(); - } - - public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedDeviceCredentialsUpdatedMsg(deviceCredentials) - : DeviceCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(deviceCredentials)).build(); - } - - private DeviceCredentialsUpdateMsg constructDeprecatedDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials) { - DeviceCredentialsUpdateMsg.Builder builder = DeviceCredentialsUpdateMsg.newBuilder() - .setDeviceIdMSB(deviceCredentials.getDeviceId().getId().getMostSignificantBits()) - .setDeviceIdLSB(deviceCredentials.getDeviceId().getId().getLeastSignificantBits()); - if (deviceCredentials.getCredentialsType() != null) { - builder.setCredentialsType(deviceCredentials.getCredentialsType().name()) - .setCredentialsId(deviceCredentials.getCredentialsId()); - } - if (deviceCredentials.getCredentialsValue() != null) { - builder.setCredentialsValue(deviceCredentials.getCredentialsValue()); - } - return builder.build(); - } - - public DeviceUpdateMsg constructDeviceDeleteMsg(DeviceId deviceId) { - return DeviceUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(deviceId.getId().getMostSignificantBits()) - .setIdLSB(deviceId.getId().getLeastSignificantBits()).build(); - } - - public DeviceRpcCallMsg constructDeviceRpcCallMsg(UUID deviceId, JsonNode body) { - DeviceRpcCallMsg.Builder builder = constructDeviceRpcMsg(deviceId, body); - if (body.has("error") || body.has("response")) { - RpcResponseMsg.Builder responseBuilder = RpcResponseMsg.newBuilder(); - if (body.has("error")) { - responseBuilder.setError(body.get("error").asText()); - } else { - responseBuilder.setResponse(body.get("response").asText()); - } - builder.setResponseMsg(responseBuilder.build()); - } else { - RpcRequestMsg.Builder requestBuilder = RpcRequestMsg.newBuilder(); - requestBuilder.setMethod(body.get("method").asText()); - requestBuilder.setParams(body.get("params").asText()); - builder.setRequestMsg(requestBuilder.build()); - } - return builder.build(); - } - - private DeviceRpcCallMsg.Builder constructDeviceRpcMsg(UUID deviceId, JsonNode body) { - DeviceRpcCallMsg.Builder builder = DeviceRpcCallMsg.newBuilder() - .setDeviceIdMSB(deviceId.getMostSignificantBits()) - .setDeviceIdLSB(deviceId.getLeastSignificantBits()) - .setRequestId(body.get("requestId").asInt()); - if (body.get("oneway") != null) { - builder.setOneway(body.get("oneway").asBoolean()); - } - if (body.get("requestUUID") != null) { - UUID requestUUID = UUID.fromString(body.get("requestUUID").asText()); - builder.setRequestUuidMSB(requestUUID.getMostSignificantBits()) - .setRequestUuidLSB(requestUUID.getLeastSignificantBits()); - } - if (body.get("expirationTime") != null) { - builder.setExpirationTime(body.get("expirationTime").asLong()); - } - if (body.get("persisted") != null) { - builder.setPersisted(body.get("persisted").asBoolean()); - } - if (body.get("retries") != null) { - builder.setRetries(body.get("retries").asInt()); - } - if (body.get("additionalInfo") != null) { - builder.setAdditionalInfo(JacksonUtil.toString(body.get("additionalInfo"))); - } - if (body.get("serviceId") != null) { - builder.setServiceId(body.get("serviceId").asText()); - } - if (body.get("sessionId") != null) { - builder.setSessionId(body.get("sessionId").asText()); - } - return builder; - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java deleted file mode 100644 index 705bea0fae..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.service.edge.rpc.constructor; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.id.RuleChainId; -import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.rule.RuleChain; -import org.thingsboard.server.common.data.rule.RuleChainMetaData; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; -import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; -import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; -import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMetadataConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMetadataConstructorFactory; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; - -@Component -@Slf4j -@TbCoreComponent -public class RuleChainMsgConstructor { - - public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { - boolean isTemplateRoot = ruleChain.isRoot(); - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain, isRoot); - } - ruleChain.setRoot(isRoot); - RuleChainUpdateMsg result = RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) - .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) - .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); - ruleChain.setRoot(isTemplateRoot); - return result; - } - - private RuleChainUpdateMsg constructDeprecatedRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { - RuleChainUpdateMsg.Builder builder = RuleChainUpdateMsg.newBuilder() - .setMsgType(msgType) - .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) - .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()) - .setName(ruleChain.getName()) - .setRoot(isRoot) - .setDebugMode(ruleChain.isDebugMode()) - .setConfiguration(JacksonUtil.toString(ruleChain.getConfiguration())); - if (ruleChain.getFirstRuleNodeId() != null) { - builder.setFirstRuleNodeIdMSB(ruleChain.getFirstRuleNodeId().getId().getMostSignificantBits()) - .setFirstRuleNodeIdLSB(ruleChain.getFirstRuleNodeId().getId().getLeastSignificantBits()); - } - return builder.build(); - } - - public RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, - UpdateMsgType msgType, - RuleChainMetaData ruleChainMetaData, - EdgeVersion edgeVersion) { - RuleChainMetadataConstructor ruleChainMetadataConstructor - = RuleChainMetadataConstructorFactory.getByEdgeVersion(edgeVersion); - return ruleChainMetadataConstructor.constructRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData, edgeVersion); - } - - public RuleChainUpdateMsg constructRuleChainDeleteMsg(RuleChainId ruleChainId) { - return RuleChainUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(ruleChainId.getId().getMostSignificantBits()) - .setIdLSB(ruleChainId.getId().getLeastSignificantBits()).build(); - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java deleted file mode 100644 index 6b47b6859d..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.service.edge.rpc.constructor; - -import com.google.protobuf.ByteString; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.TenantProfile; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; -import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; -import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.queue.util.DataDecodingEncodingService; -import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; - -@Component -@TbCoreComponent -public class TenantProfileMsgConstructor { - - @Autowired - private DataDecodingEncodingService dataDecodingEncodingService; - - public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? - ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); - return constructDeprecatedTenantProfileUpdateMsg(msgType, tenantProfile, profileData); - } - return TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); - } - - private TenantProfileUpdateMsg constructDeprecatedTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, ByteString profileData) { - TenantProfileUpdateMsg.Builder builder = TenantProfileUpdateMsg.newBuilder() - .setMsgType(msgType) - .setIdMSB(tenantProfile.getId().getId().getMostSignificantBits()) - .setIdLSB(tenantProfile.getId().getId().getLeastSignificantBits()) - .setName(tenantProfile.getName()) - .setDefault(tenantProfile.isDefault()) - .setIsolatedRuleChain(tenantProfile.isIsolatedTbRuleEngine()) - .setProfileDataBytes(profileData); - if (tenantProfile.getDescription() != null) { - builder.setDescription(tenantProfile.getDescription()); - } - return builder.build(); - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java deleted file mode 100644 index 5093ddf554..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.service.edge.rpc.constructor; - -import com.google.protobuf.ByteString; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.id.WidgetsBundleId; -import org.thingsboard.server.common.data.widget.WidgetsBundle; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; -import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; -import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; - -import java.nio.charset.StandardCharsets; -import java.util.List; - -@Component -@TbCoreComponent -public class WidgetsBundleMsgConstructor { - - public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); - } - return WidgetsBundleUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetsBundle)) - .setWidgets(JacksonUtil.toString(widgets)) - .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) - .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()).build(); - } - - private WidgetsBundleUpdateMsg constructDeprecatedWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets) { - WidgetsBundleUpdateMsg.Builder builder = WidgetsBundleUpdateMsg.newBuilder() - .setMsgType(msgType) - .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) - .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()) - .setTitle(widgetsBundle.getTitle()) - .setAlias(widgetsBundle.getAlias()); - if (widgetsBundle.getImage() != null) { - builder.setImage(ByteString.copyFrom(widgetsBundle.getImage().getBytes(StandardCharsets.UTF_8))); - } - if (widgetsBundle.getDescription() != null) { - builder.setDescription(widgetsBundle.getDescription()); - } - if (widgetsBundle.getOrder() != null) { - builder.setOrder(widgetsBundle.getOrder()); - } - if (widgetsBundle.getTenantId().equals(TenantId.SYS_TENANT_ID)) { - builder.setIsSystem(true); - } - builder.setWidgets(JacksonUtil.toString(widgets)); - return builder.build(); - } - - public WidgetsBundleUpdateMsg constructWidgetsBundleDeleteMsg(WidgetsBundleId widgetsBundleId) { - return WidgetsBundleUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(widgetsBundleId.getId().getMostSignificantBits()) - .setIdLSB(widgetsBundleId.getId().getLeastSignificantBits()) - .build(); - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java new file mode 100644 index 0000000000..7251c067d7 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java @@ -0,0 +1,25 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.alarm; + +import org.thingsboard.server.common.data.alarm.Alarm; +import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface AlarmMsgConstructor { + + AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java new file mode 100644 index 0000000000..41a13e4447 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.alarm; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AlarmMsgConstructorFactory { + + @Autowired + protected AlarmMsgConstructorV1 alarmMsgConstructorV1; + + @Autowired + protected AlarmMsgConstructorV2 alarmMsgConstructorV2; + + public AlarmMsgConstructor getAlarmMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return alarmMsgConstructorV1; + default: + return alarmMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV1.java similarity index 67% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV1.java index ef2a353e8e..b1294f5904 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV1.java @@ -13,33 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.alarm; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class AlarmMsgConstructor { +public class AlarmMsgConstructorV1 implements AlarmMsgConstructor { - public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedAlarmUpdatedMsg(msgType, alarm, entityName); - } - return AlarmUpdateMsg.newBuilder().setMsgType(msgType) - .setEntity(JacksonUtil.toString(alarm)) - .setIdMSB(alarm.getId().getId().getMostSignificantBits()) - .setIdLSB(alarm.getId().getId().getLeastSignificantBits()).build(); - } - - private AlarmUpdateMsg constructDeprecatedAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName) { - AlarmUpdateMsg.Builder builder = AlarmUpdateMsg.newBuilder() + @Override + public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName) { + return AlarmUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(alarm.getId().getId().getMostSignificantBits()) .setIdLSB(alarm.getId().getId().getLeastSignificantBits()) @@ -56,7 +45,6 @@ public class AlarmMsgConstructor { .setDetails(JacksonUtil.toString(alarm.getDetails())) .setPropagate(alarm.isPropagate()) .setPropagateToOwner(alarm.isPropagateToOwner()) - .setPropagateToTenant(alarm.isPropagateToTenant()); - return builder.build(); + .setPropagateToTenant(alarm.isPropagateToTenant()).build(); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV2.java new file mode 100644 index 0000000000..9034755db6 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorV2.java @@ -0,0 +1,36 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.alarm; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.alarm.Alarm; +import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AlarmMsgConstructorV2 implements AlarmMsgConstructor { + + @Override + public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName) { + return AlarmUpdateMsg.newBuilder().setMsgType(msgType) + .setEntity(JacksonUtil.toString(alarm)) + .setIdMSB(alarm.getId().getId().getMostSignificantBits()) + .setIdLSB(alarm.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java new file mode 100644 index 0000000000..0223351f54 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.asset; + +import org.thingsboard.server.common.data.asset.Asset; +import org.thingsboard.server.common.data.asset.AssetProfile; +import org.thingsboard.server.common.data.id.AssetId; +import org.thingsboard.server.common.data.id.AssetProfileId; +import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface AssetMsgConstructor { + + AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset); + + AssetUpdateMsg constructAssetDeleteMsg(AssetId assetId); + + AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile); + + AssetProfileUpdateMsg constructAssetProfileDeleteMsg(AssetProfileId assetProfileId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java new file mode 100644 index 0000000000..d4fa79c6c5 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.asset; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AssetMsgConstructorFactory { + + @Autowired + protected AssetMsgConstructorV1 assetMsgConstructorV1; + + @Autowired + protected AssetMsgConstructorV2 assetMsgConstructorV2; + + public AssetMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return assetMsgConstructorV1; + default: + return assetMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV1.java similarity index 63% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV1.java index 0c6247754c..95e1e0e597 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV1.java @@ -13,35 +13,51 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.asset; import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.AssetProfile; -import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; @Component @TbCoreComponent -public class AssetProfileMsgConstructor { +public class AssetMsgConstructorV1 extends BaseAssetMsgConstructor { - public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedAssetProfileUpdatedMsg(msgType, assetProfile); + @Override + public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset) { + AssetUpdateMsg.Builder builder = AssetUpdateMsg.newBuilder() + .setMsgType(msgType) + .setIdMSB(asset.getUuidId().getMostSignificantBits()) + .setIdLSB(asset.getUuidId().getLeastSignificantBits()) + .setName(asset.getName()) + .setType(asset.getType()); + if (asset.getLabel() != null) { + builder.setLabel(asset.getLabel()); } - return AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) - .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) - .setIdLSB(assetProfile.getId().getId().getLeastSignificantBits()).build(); + if (asset.getCustomerId() != null) { + builder.setCustomerIdMSB(asset.getCustomerId().getId().getMostSignificantBits()); + builder.setCustomerIdLSB(asset.getCustomerId().getId().getLeastSignificantBits()); + } + if (asset.getAssetProfileId() != null) { + builder.setAssetProfileIdMSB(asset.getAssetProfileId().getId().getMostSignificantBits()); + builder.setAssetProfileIdLSB(asset.getAssetProfileId().getId().getLeastSignificantBits()); + } + if (asset.getAdditionalInfo() != null) { + builder.setAdditionalInfo(JacksonUtil.toString(asset.getAdditionalInfo())); + } + return builder.build(); } - private AssetProfileUpdateMsg constructDeprecatedAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile) { + @Override + public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile) { AssetProfileUpdateMsg.Builder builder = AssetProfileUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) @@ -67,11 +83,4 @@ public class AssetProfileMsgConstructor { } return builder.build(); } - - public AssetProfileUpdateMsg constructAssetProfileDeleteMsg(AssetProfileId assetProfileId) { - return AssetProfileUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(assetProfileId.getId().getMostSignificantBits()) - .setIdLSB(assetProfileId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV2.java new file mode 100644 index 0000000000..b7e00473b5 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorV2.java @@ -0,0 +1,44 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.asset; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.asset.Asset; +import org.thingsboard.server.common.data.asset.AssetProfile; +import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AssetMsgConstructorV2 extends BaseAssetMsgConstructor { + + @Override + public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset) { + return AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) + .setIdMSB(asset.getUuidId().getMostSignificantBits()) + .setIdLSB(asset.getUuidId().getLeastSignificantBits()).build(); + } + + @Override + public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile) { + return AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) + .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) + .setIdLSB(assetProfile.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/BaseAssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/BaseAssetMsgConstructor.java new file mode 100644 index 0000000000..b8fe8ad870 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/BaseAssetMsgConstructor.java @@ -0,0 +1,41 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.asset; + +import org.thingsboard.server.common.data.id.AssetId; +import org.thingsboard.server.common.data.id.AssetProfileId; +import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseAssetMsgConstructor implements AssetMsgConstructor { + + @Override + public AssetUpdateMsg constructAssetDeleteMsg(AssetId assetId) { + return AssetUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(assetId.getId().getMostSignificantBits()) + .setIdLSB(assetId.getId().getLeastSignificantBits()).build(); + } + + @Override + public AssetProfileUpdateMsg constructAssetProfileDeleteMsg(AssetProfileId assetProfileId) { + return AssetProfileUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(assetProfileId.getId().getMostSignificantBits()) + .setIdLSB(assetProfileId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/BaseCustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/BaseCustomerMsgConstructor.java new file mode 100644 index 0000000000..6d532a5e1c --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/BaseCustomerMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.customer; + +import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseCustomerMsgConstructor implements CustomerMsgConstructor { + + @Override + public CustomerUpdateMsg constructCustomerDeleteMsg(CustomerId customerId) { + return CustomerUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(customerId.getId().getMostSignificantBits()) + .setIdLSB(customerId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java new file mode 100644 index 0000000000..fd9139de12 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.customer; + +import org.thingsboard.server.common.data.Customer; +import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface CustomerMsgConstructor { + + CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer); + + CustomerUpdateMsg constructCustomerDeleteMsg(CustomerId customerId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java new file mode 100644 index 0000000000..350a4b6f9d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.customer; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class CustomerMsgConstructorFactory { + + @Autowired + protected CustomerMsgConstructorV1 customerMsgConstructorV1; + + @Autowired + protected CustomerMsgConstructorV2 customerMsgConstructorV2; + + public CustomerMsgConstructor getCustomerMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return customerMsgConstructorV1; + default: + return customerMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV1.java similarity index 65% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV1.java index cbfb9004eb..e6bb95defa 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV1.java @@ -13,32 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.customer; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class CustomerMsgConstructor { +public class CustomerMsgConstructorV1 extends BaseCustomerMsgConstructor { - public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedCustomerUpdatedMsg(msgType, customer); - } - return CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) - .setIdMSB(customer.getId().getId().getMostSignificantBits()) - .setIdLSB(customer.getId().getId().getLeastSignificantBits()).build(); - } - - private CustomerUpdateMsg constructDeprecatedCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer) { + @Override + public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer) { CustomerUpdateMsg.Builder builder = CustomerUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(customer.getId().getId().getMostSignificantBits()) @@ -73,11 +62,4 @@ public class CustomerMsgConstructor { } return builder.build(); } - - public CustomerUpdateMsg constructCustomerDeleteMsg(CustomerId customerId) { - return CustomerUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(customerId.getId().getMostSignificantBits()) - .setIdLSB(customerId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV2.java new file mode 100644 index 0000000000..94764e1178 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.customer; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Customer; +import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class CustomerMsgConstructorV2 extends BaseCustomerMsgConstructor { + + @Override + public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer) { + return CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) + .setIdMSB(customer.getId().getId().getMostSignificantBits()) + .setIdLSB(customer.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/BaseDashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/BaseDashboardMsgConstructor.java new file mode 100644 index 0000000000..f8e42c1461 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/BaseDashboardMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.dashboard; + +import org.thingsboard.server.common.data.id.DashboardId; +import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseDashboardMsgConstructor implements DashboardMsgConstructor { + + @Override + public DashboardUpdateMsg constructDashboardDeleteMsg(DashboardId dashboardId) { + return DashboardUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(dashboardId.getId().getMostSignificantBits()) + .setIdLSB(dashboardId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java new file mode 100644 index 0000000000..e2ca09b1d3 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.dashboard; + +import org.thingsboard.server.common.data.Dashboard; +import org.thingsboard.server.common.data.id.DashboardId; +import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface DashboardMsgConstructor { + + DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard); + + DashboardUpdateMsg constructDashboardDeleteMsg(DashboardId dashboardId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java new file mode 100644 index 0000000000..5e566297fd --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.dashboard; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class DashboardMsgConstructorFactory { + + @Autowired + protected DashboardMsgConstructorV1 dashboardMsgConstructorV1; + + @Autowired + protected DashboardMsgConstructorV2 dashboardMsgConstructorV2; + + public DashboardMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return dashboardMsgConstructorV1; + default: + return dashboardMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV1.java similarity index 60% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV1.java index 82f83a32ff..6a3bb43797 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV1.java @@ -13,32 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.dashboard; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Dashboard; -import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class DashboardMsgConstructor { +public class DashboardMsgConstructorV1 extends BaseDashboardMsgConstructor { - public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedDashboardUpdatedMsg(msgType, dashboard); - } - return DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) - .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) - .setIdLSB(dashboard.getId().getId().getLeastSignificantBits()).build(); - } - - private DashboardUpdateMsg constructDeprecatedDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard) { + @Override + public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard) { DashboardUpdateMsg.Builder builder = DashboardUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) @@ -57,11 +46,4 @@ public class DashboardMsgConstructor { } return builder.build(); } - - public DashboardUpdateMsg constructDashboardDeleteMsg(DashboardId dashboardId) { - return DashboardUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(dashboardId.getId().getMostSignificantBits()) - .setIdLSB(dashboardId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV2.java new file mode 100644 index 0000000000..0940423119 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.dashboard; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Dashboard; +import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class DashboardMsgConstructorV2 extends BaseDashboardMsgConstructor { + + @Override + public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard) { + return DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) + .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) + .setIdLSB(dashboard.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/BaseDeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/BaseDeviceMsgConstructor.java new file mode 100644 index 0000000000..21d761dc26 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/BaseDeviceMsgConstructor.java @@ -0,0 +1,102 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.device; + +import com.fasterxml.jackson.databind.JsonNode; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.id.DeviceProfileId; +import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; +import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.RpcRequestMsg; +import org.thingsboard.server.gen.edge.v1.RpcResponseMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +import java.util.UUID; + +public abstract class BaseDeviceMsgConstructor implements DeviceMsgConstructor { + + @Override + public DeviceUpdateMsg constructDeviceDeleteMsg(DeviceId deviceId) { + return DeviceUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(deviceId.getId().getMostSignificantBits()) + .setIdLSB(deviceId.getId().getLeastSignificantBits()).build(); + } + + @Override + public DeviceProfileUpdateMsg constructDeviceProfileDeleteMsg(DeviceProfileId deviceProfileId) { + return DeviceProfileUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(deviceProfileId.getId().getMostSignificantBits()) + .setIdLSB(deviceProfileId.getId().getLeastSignificantBits()).build(); + } + + @Override + public DeviceRpcCallMsg constructDeviceRpcCallMsg(UUID deviceId, JsonNode body) { + DeviceRpcCallMsg.Builder builder = constructDeviceRpcMsg(deviceId, body); + if (body.has("error") || body.has("response")) { + RpcResponseMsg.Builder responseBuilder = RpcResponseMsg.newBuilder(); + if (body.has("error")) { + responseBuilder.setError(body.get("error").asText()); + } else { + responseBuilder.setResponse(body.get("response").asText()); + } + builder.setResponseMsg(responseBuilder.build()); + } else { + RpcRequestMsg.Builder requestBuilder = RpcRequestMsg.newBuilder(); + requestBuilder.setMethod(body.get("method").asText()); + requestBuilder.setParams(body.get("params").asText()); + builder.setRequestMsg(requestBuilder.build()); + } + return builder.build(); + } + + private DeviceRpcCallMsg.Builder constructDeviceRpcMsg(UUID deviceId, JsonNode body) { + DeviceRpcCallMsg.Builder builder = DeviceRpcCallMsg.newBuilder() + .setDeviceIdMSB(deviceId.getMostSignificantBits()) + .setDeviceIdLSB(deviceId.getLeastSignificantBits()) + .setRequestId(body.get("requestId").asInt()); + if (body.get("oneway") != null) { + builder.setOneway(body.get("oneway").asBoolean()); + } + if (body.get("requestUUID") != null) { + UUID requestUUID = UUID.fromString(body.get("requestUUID").asText()); + builder.setRequestUuidMSB(requestUUID.getMostSignificantBits()) + .setRequestUuidLSB(requestUUID.getLeastSignificantBits()); + } + if (body.get("expirationTime") != null) { + builder.setExpirationTime(body.get("expirationTime").asLong()); + } + if (body.get("persisted") != null) { + builder.setPersisted(body.get("persisted").asBoolean()); + } + if (body.get("retries") != null) { + builder.setRetries(body.get("retries").asInt()); + } + if (body.get("additionalInfo") != null) { + builder.setAdditionalInfo(JacksonUtil.toString(body.get("additionalInfo"))); + } + if (body.get("serviceId") != null) { + builder.setServiceId(body.get("serviceId").asText()); + } + if (body.get("sessionId") != null) { + builder.setSessionId(body.get("sessionId").asText()); + } + return builder; + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java new file mode 100644 index 0000000000..514aeceb68 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java @@ -0,0 +1,38 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.device; + +import com.fasterxml.jackson.databind.JsonNode; +import org.thingsboard.server.common.data.Device; +import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.security.DeviceCredentials; +import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; +import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +import java.util.UUID; + +public interface DeviceMsgConstructor { + + DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device); + + DeviceUpdateMsg constructDeviceDeleteMsg(DeviceId deviceId); + + DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials); + + DeviceRpcCallMsg constructDeviceRpcCallMsg(UUID deviceId, JsonNode body); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java new file mode 100644 index 0000000000..2f14c401ea --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.device; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class DeviceMsgConstructorFactory { + + @Autowired + protected DeviceMsgConstructorV1 deviceMsgConstructorV1; + + @Autowired + protected DeviceMsgConstructorV2 deviceMsgConstructorV2; + + public DeviceMsgConstructor getDeviceMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return deviceMsgConstructorV1; + default: + return deviceMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV1.java similarity index 55% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV1.java index 6d3e9da378..4442387b21 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV1.java @@ -13,40 +13,84 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.device; import com.google.protobuf.ByteString; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; -import org.thingsboard.server.common.data.id.DeviceProfileId; +import org.thingsboard.server.common.data.security.DeviceCredentials; +import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; @Component @TbCoreComponent -public class DeviceProfileMsgConstructor { +public class DeviceMsgConstructorV1 extends BaseDeviceMsgConstructor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedDeviceProfileUpdatedMsg(msgType, deviceProfile); + @Override + public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device) { + DeviceUpdateMsg.Builder builder = DeviceUpdateMsg.newBuilder() + .setMsgType(msgType) + .setIdMSB(device.getId().getId().getMostSignificantBits()) + .setIdLSB(device.getId().getId().getLeastSignificantBits()) + .setName(device.getName()) + .setType(device.getType()); + if (device.getLabel() != null) { + builder.setLabel(device.getLabel()); } - return DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) - .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) - .setIdLSB(deviceProfile.getId().getId().getLeastSignificantBits()).build(); + if (device.getCustomerId() != null) { + builder.setCustomerIdMSB(device.getCustomerId().getId().getMostSignificantBits()); + builder.setCustomerIdLSB(device.getCustomerId().getId().getLeastSignificantBits()); + } + if (device.getDeviceProfileId() != null) { + builder.setDeviceProfileIdMSB(device.getDeviceProfileId().getId().getMostSignificantBits()); + builder.setDeviceProfileIdLSB(device.getDeviceProfileId().getId().getLeastSignificantBits()); + } + if (device.getAdditionalInfo() != null) { + builder.setAdditionalInfo(JacksonUtil.toString(device.getAdditionalInfo())); + } + if (device.getFirmwareId() != null) { + builder.setFirmwareIdMSB(device.getFirmwareId().getId().getMostSignificantBits()) + .setFirmwareIdLSB(device.getFirmwareId().getId().getLeastSignificantBits()); + } + if (device.getSoftwareId() != null) { + builder.setSoftwareIdMSB(device.getSoftwareId().getId().getMostSignificantBits()) + .setSoftwareIdLSB(device.getSoftwareId().getId().getLeastSignificantBits()); + } + if (device.getDeviceData() != null) { + builder.setDeviceDataBytes(ByteString.copyFrom(dataDecodingEncodingService.encode(device.getDeviceData()))); + } + return builder.build(); + } + + @Override + public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials) { + DeviceCredentialsUpdateMsg.Builder builder = DeviceCredentialsUpdateMsg.newBuilder() + .setDeviceIdMSB(deviceCredentials.getDeviceId().getId().getMostSignificantBits()) + .setDeviceIdLSB(deviceCredentials.getDeviceId().getId().getLeastSignificantBits()); + if (deviceCredentials.getCredentialsType() != null) { + builder.setCredentialsType(deviceCredentials.getCredentialsType().name()) + .setCredentialsId(deviceCredentials.getCredentialsId()); + } + if (deviceCredentials.getCredentialsValue() != null) { + builder.setCredentialsValue(deviceCredentials.getCredentialsValue()); + } + return builder.build(); } - private DeviceProfileUpdateMsg constructDeprecatedDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile) { + @Override + public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile) { DeviceProfileUpdateMsg.Builder builder = DeviceProfileUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) @@ -91,11 +135,4 @@ public class DeviceProfileMsgConstructor { } return builder.build(); } - - public DeviceProfileUpdateMsg constructDeviceProfileDeleteMsg(DeviceProfileId deviceProfileId) { - return DeviceProfileUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(deviceProfileId.getId().getMostSignificantBits()) - .setIdLSB(deviceProfileId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV2.java new file mode 100644 index 0000000000..189251f8c4 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorV2.java @@ -0,0 +1,51 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.device; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Device; +import org.thingsboard.server.common.data.DeviceProfile; +import org.thingsboard.server.common.data.security.DeviceCredentials; +import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class DeviceMsgConstructorV2 extends BaseDeviceMsgConstructor { + + @Override + public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device) { + return DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) + .setIdMSB(device.getId().getId().getMostSignificantBits()) + .setIdLSB(device.getId().getId().getLeastSignificantBits()).build(); + } + + @Override + public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials) { + return DeviceCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(deviceCredentials)).build(); + } + + @Override + public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile) { + return DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) + .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) + .setIdLSB(deviceProfile.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EdgeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/edge/EdgeMsgConstructor.java similarity index 96% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EdgeMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/edge/EdgeMsgConstructor.java index 3416240b2c..c3741ee8bf 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EdgeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/edge/EdgeMsgConstructor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.edge; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/BaseEntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/BaseEntityViewMsgConstructor.java new file mode 100644 index 0000000000..a037e3ee09 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/BaseEntityViewMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.entityview; + +import org.thingsboard.server.common.data.id.EntityViewId; +import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseEntityViewMsgConstructor implements EntityViewMsgConstructor { + + @Override + public EntityViewUpdateMsg constructEntityViewDeleteMsg(EntityViewId entityViewId) { + return EntityViewUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(entityViewId.getId().getMostSignificantBits()) + .setIdLSB(entityViewId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java new file mode 100644 index 0000000000..60a404669c --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.entityview; + +import org.thingsboard.server.common.data.EntityView; +import org.thingsboard.server.common.data.id.EntityViewId; +import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface EntityViewMsgConstructor { + + EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView); + + EntityViewUpdateMsg constructEntityViewDeleteMsg(EntityViewId entityViewId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java new file mode 100644 index 0000000000..b2c7f3b0c3 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.entityview; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class EntityViewMsgConstructorFactory { + + @Autowired + protected EntityViewMsgConstructorV1 entityViewMsgConstructorV1; + + @Autowired + protected EntityViewMsgConstructorV2 entityViewMsgConstructorV2; + + public EntityViewMsgConstructor getEntityViewMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return entityViewMsgConstructorV1; + default: + return entityViewMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV1.java similarity index 67% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV1.java index bfa69459cc..da369ecf90 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV1.java @@ -13,34 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.entityview; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityView; -import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.gen.edge.v1.EdgeEntityType; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class EntityViewMsgConstructor { +public class EntityViewMsgConstructorV1 extends BaseEntityViewMsgConstructor { - public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedEntityViewUpdatedMsg(msgType, entityView); - } - return EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) - .setIdMSB(entityView.getId().getId().getMostSignificantBits()) - .setIdLSB(entityView.getId().getId().getLeastSignificantBits()).build(); - } - - private EntityViewUpdateMsg constructDeprecatedEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView) { + @Override + public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView) { EdgeEntityType edgeEntityType = checkEntityType(entityView.getEntityId().getEntityType()); EntityViewUpdateMsg.Builder builder = EntityViewUpdateMsg.newBuilder() .setMsgType(msgType) @@ -71,11 +60,4 @@ public class EntityViewMsgConstructor { throw new RuntimeException("Unsupported entity type [" + entityType + "]"); } } - - public EntityViewUpdateMsg constructEntityViewDeleteMsg(EntityViewId entityViewId) { - return EntityViewUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(entityViewId.getId().getMostSignificantBits()) - .setIdLSB(entityViewId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV2.java new file mode 100644 index 0000000000..c1eae91097 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.entityview; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.EntityView; +import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class EntityViewMsgConstructorV2 extends BaseEntityViewMsgConstructor { + + @Override + public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView) { + return EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) + .setIdMSB(entityView.getId().getId().getMostSignificantBits()) + .setIdLSB(entityView.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/BaseOtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/BaseOtaPackageMsgConstructor.java new file mode 100644 index 0000000000..110c24caca --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/BaseOtaPackageMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.ota; + +import org.thingsboard.server.common.data.id.OtaPackageId; +import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseOtaPackageMsgConstructor implements OtaPackageMsgConstructor { + + @Override + public OtaPackageUpdateMsg constructOtaPackageDeleteMsg(OtaPackageId otaPackageId) { + return OtaPackageUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(otaPackageId.getId().getMostSignificantBits()) + .setIdLSB(otaPackageId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java new file mode 100644 index 0000000000..17b6ea8338 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.ota; + +import org.thingsboard.server.common.data.OtaPackage; +import org.thingsboard.server.common.data.id.OtaPackageId; +import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface OtaPackageMsgConstructor { + + OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage); + + OtaPackageUpdateMsg constructOtaPackageDeleteMsg(OtaPackageId otaPackageId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java new file mode 100644 index 0000000000..ae7a48028c --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.ota; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class OtaPackageMsgConstructorFactory { + + @Autowired + protected OtaPackageMsgConstructorV1 otaPackageMsgConstructorV1; + + @Autowired + protected OtaPackageMsgConstructorV2 otaPackageMsgConstructorV2; + + public OtaPackageMsgConstructor getOtaPackageMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return otaPackageMsgConstructorV1; + default: + return otaPackageMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV1.java similarity index 69% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV1.java index a626574d92..5e1f297c01 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV1.java @@ -13,33 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.ota; import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.OtaPackage; -import org.thingsboard.server.common.data.id.OtaPackageId; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class OtaPackageMsgConstructor { +public class OtaPackageMsgConstructorV1 extends BaseOtaPackageMsgConstructor { - public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedOtaPackageUpdatedMsg(msgType, otaPackage); - } - return OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) - .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) - .setIdLSB(otaPackage.getId().getId().getLeastSignificantBits()).build(); - } - - private OtaPackageUpdateMsg constructDeprecatedOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage) { + @Override + public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage) { OtaPackageUpdateMsg.Builder builder = OtaPackageUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) @@ -80,11 +69,4 @@ public class OtaPackageMsgConstructor { } return builder.build(); } - - public OtaPackageUpdateMsg constructOtaPackageDeleteMsg(OtaPackageId otaPackageId) { - return OtaPackageUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(otaPackageId.getId().getMostSignificantBits()) - .setIdLSB(otaPackageId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV2.java new file mode 100644 index 0000000000..69d7f12874 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.ota; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.OtaPackage; +import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class OtaPackageMsgConstructorV2 extends BaseOtaPackageMsgConstructor { + + @Override + public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage) { + return OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) + .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) + .setIdLSB(otaPackage.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/BaseQueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/BaseQueueMsgConstructor.java new file mode 100644 index 0000000000..486a143d85 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/BaseQueueMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.queue; + +import org.thingsboard.server.common.data.id.QueueId; +import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseQueueMsgConstructor implements QueueMsgConstructor { + + @Override + public QueueUpdateMsg constructQueueDeleteMsg(QueueId queueId) { + return QueueUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(queueId.getId().getMostSignificantBits()) + .setIdLSB(queueId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java new file mode 100644 index 0000000000..a7d0776136 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.queue; + +import org.thingsboard.server.common.data.id.QueueId; +import org.thingsboard.server.common.data.queue.Queue; +import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface QueueMsgConstructor { + + QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue); + + QueueUpdateMsg constructQueueDeleteMsg(QueueId queueId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java new file mode 100644 index 0000000000..d250c5fd24 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.queue; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class QueueMsgConstructorFactory { + + @Autowired + protected QueueMsgConstructorV1 queueMsgConstructorV1; + + @Autowired + protected QueueMsgConstructorV2 queueMsgConstructorV2; + + public QueueMsgConstructor getQueueMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return queueMsgConstructorV1; + default: + return queueMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV1.java similarity index 77% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV1.java index d1901cdf83..8621ce1011 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV1.java @@ -13,37 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.queue; import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.queue.ProcessingStrategy; import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.common.data.queue.SubmitStrategy; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ProcessingStrategyProto; import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; import org.thingsboard.server.gen.edge.v1.SubmitStrategyProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class QueueMsgConstructor { +public class QueueMsgConstructorV1 extends BaseQueueMsgConstructor { - public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedQueueUpdatedMsg(msgType, queue); - } - return QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) - .setIdMSB(queue.getId().getId().getMostSignificantBits()) - .setIdLSB(queue.getId().getId().getLeastSignificantBits()).build(); - } - - private QueueUpdateMsg constructDeprecatedQueueUpdatedMsg(UpdateMsgType msgType, Queue queue) { - QueueUpdateMsg.Builder builder = QueueUpdateMsg.newBuilder() + @Override + public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue) { + return QueueUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(queue.getId().getId().getMostSignificantBits()) .setIdLSB(queue.getId().getId().getLeastSignificantBits()) @@ -56,8 +45,7 @@ public class QueueMsgConstructor { .setConsumerPerPartition(queue.isConsumerPerPartition()) .setPackProcessingTimeout(queue.getPackProcessingTimeout()) .setSubmitStrategy(createSubmitStrategyProto(queue.getSubmitStrategy())) - .setProcessingStrategy(createProcessingStrategyProto(queue.getProcessingStrategy())); - return builder.build(); + .setProcessingStrategy(createProcessingStrategyProto(queue.getProcessingStrategy())).build(); } private ProcessingStrategyProto createProcessingStrategyProto(ProcessingStrategy processingStrategy) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV2.java new file mode 100644 index 0000000000..1bf80eea64 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.queue; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.queue.Queue; +import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class QueueMsgConstructorV2 extends BaseQueueMsgConstructor { + + @Override + public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue) { + return QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) + .setIdMSB(queue.getId().getId().getMostSignificantBits()) + .setIdLSB(queue.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java new file mode 100644 index 0000000000..10d0a71830 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java @@ -0,0 +1,25 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.relation; + +import org.thingsboard.server.common.data.relation.EntityRelation; +import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface RelationMsgConstructor { + + RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java new file mode 100644 index 0000000000..a17266300d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.relation; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class RelationMsgConstructorFactory { + + @Autowired + protected RelationMsgConstructorV1 relationMsgConstructorV1; + + @Autowired + protected RelationMsgConstructorV2 relationMsgConstructorV2; + + public RelationMsgConstructor getRelationMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return relationMsgConstructorV1; + default: + return relationMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV1.java similarity index 74% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV1.java index 01abb37236..394086fdd0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV1.java @@ -13,29 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.relation; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.relation.EntityRelation; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class RelationMsgConstructor { +public class RelationMsgConstructorV1 implements RelationMsgConstructor { - public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedRelationUpdatedMsg(msgType, entityRelation); - } - return RelationUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityRelation)).build(); - } - - private RelationUpdateMsg constructDeprecatedRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { + @Override + public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { RelationUpdateMsg.Builder builder = RelationUpdateMsg.newBuilder() .setMsgType(msgType) .setFromIdMSB(entityRelation.getFrom().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV2.java new file mode 100644 index 0000000000..4510909490 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorV2.java @@ -0,0 +1,34 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.relation; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.relation.EntityRelation; +import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class RelationMsgConstructorV2 implements RelationMsgConstructor { + + + @Override + public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { + return RelationUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityRelation)).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/BaseResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/BaseResourceMsgConstructor.java new file mode 100644 index 0000000000..620f71c9e7 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/BaseResourceMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.resource; + +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class BaseResourceMsgConstructor implements ResourceMsgConstructor { + + @Override + public ResourceUpdateMsg constructResourceDeleteMsg(TbResourceId tbResourceId) { + return ResourceUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(tbResourceId.getId().getMostSignificantBits()) + .setIdLSB(tbResourceId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java new file mode 100644 index 0000000000..b631e737e2 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java @@ -0,0 +1,28 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.resource; + +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface ResourceMsgConstructor { + + ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource); + + ResourceUpdateMsg constructResourceDeleteMsg(TbResourceId tbResourceId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java new file mode 100644 index 0000000000..ef32b623de --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class ResourceMsgConstructorFactory { + + @Autowired + protected ResourceMsgConstructorV1 resourceMsgConstructorV1; + + @Autowired + protected ResourceMsgConstructorV2 resourceMsgConstructorV2; + + public ResourceMsgConstructor getResourceMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return resourceMsgConstructorV1; + default: + return resourceMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV1.java similarity index 57% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV1.java index bf9a0e4521..fa92832741 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV1.java @@ -13,33 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.resource; import org.springframework.stereotype.Component; -import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.TbResource; -import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class ResourceMsgConstructor { +public class ResourceMsgConstructorV1 extends BaseResourceMsgConstructor { - public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedResourceUpdateMsg(msgType, tbResource); - } - return ResourceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tbResource)) - .setIdMSB(tbResource.getId().getId().getMostSignificantBits()) - .setIdLSB(tbResource.getId().getId().getLeastSignificantBits()).build(); - } - - private ResourceUpdateMsg constructDeprecatedResourceUpdateMsg(UpdateMsgType msgType, TbResource tbResource) { + @Override + public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource) { ResourceUpdateMsg.Builder builder = ResourceUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(tbResource.getId().getId().getMostSignificantBits()) @@ -54,16 +42,9 @@ public class ResourceMsgConstructor { if (tbResource.getEtag() != null) { builder.setEtag(tbResource.getEtag()); } - if (tbResource.getTenantId().equals(TenantId.SYS_TENANT_ID)) { + if (TenantId.SYS_TENANT_ID.equals(tbResource.getTenantId())) { builder.setIsSystem(true); } return builder.build(); } - - public ResourceUpdateMsg constructResourceDeleteMsg(TbResourceId tbResourceId) { - return ResourceUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(tbResourceId.getId().getMostSignificantBits()) - .setIdLSB(tbResourceId.getId().getLeastSignificantBits()).build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV2.java new file mode 100644 index 0000000000..094e5636bb --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorV2.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.resource; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class ResourceMsgConstructorV2 extends BaseResourceMsgConstructor { + + @Override + public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource) { + return ResourceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tbResource)) + .setIdMSB(tbResource.getId().getId().getMostSignificantBits()) + .setIdLSB(tbResource.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java similarity index 87% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java index eaab137301..77815351bc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java @@ -30,7 +30,6 @@ import org.thingsboard.server.gen.edge.v1.RuleChainConnectionInfoProto; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleNodeProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.List; @@ -45,17 +44,7 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM UpdateMsgType msgType, RuleChainMetaData ruleChainMetaData, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData) - : RuleChainMetadataUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChainMetaData)).build(); - } - - private RuleChainMetadataUpdateMsg constructDeprecatedRuleChainMetadataUpdatedMsg(TenantId tenantId, - UpdateMsgType msgType, - RuleChainMetaData ruleChainMetaData) { RuleChainMetadataUpdateMsg.Builder builder = RuleChainMetadataUpdateMsg.newBuilder(); - builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) - .setRuleChainIdLSB(ruleChainMetaData.getRuleChainId().getId().getLeastSignificantBits()); constructRuleChainMetadataUpdatedMsg(tenantId, builder, ruleChainMetaData); builder.setMsgType(msgType); return builder.build(); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java new file mode 100644 index 0000000000..da237de924 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java @@ -0,0 +1,44 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.thingsboard.server.common.data.id.RuleChainId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.rule.RuleChainMetaData; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; +import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public abstract class AbstractRuleChainMsgConstructor implements RuleChainMsgConstructor { + + @Override + public RuleChainUpdateMsg constructRuleChainDeleteMsg(RuleChainId ruleChainId) { + return RuleChainUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(ruleChainId.getId().getMostSignificantBits()) + .setIdLSB(ruleChainId.getId().getLeastSignificantBits()).build(); + } + + @Override + public RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, + UpdateMsgType msgType, + RuleChainMetaData ruleChainMetaData, + EdgeVersion edgeVersion) { + RuleChainMetadataConstructor ruleChainMetadataConstructor = RuleChainMetadataConstructorFactory.getByEdgeVersion(edgeVersion); + return ruleChainMetadataConstructor.constructRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData, edgeVersion); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorFactory.java index 1c581267c4..cdc7e128d3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorFactory.java @@ -25,8 +25,12 @@ public final class RuleChainMetadataConstructorFactory { return new RuleChainMetadataConstructorV330(); case V_3_3_3: case V_3_4_0: - default: + case V_3_6_0: + case V_3_6_1: return new RuleChainMetadataConstructorV340(); + case V_3_6_2: + default: + return new RuleChainMetadataConstructorV362(); } } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java index 33fc39b7e7..cfa6f5edbe 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java @@ -45,6 +45,8 @@ public class RuleChainMetadataConstructorV330 extends AbstractRuleChainMetadataC protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) { + builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) + .setRuleChainIdLSB(ruleChainMetaData.getRuleChainId().getId().getLeastSignificantBits()); List supportedNodes = filterNodes(ruleChainMetaData.getNodes()); NavigableSet removedNodeIndexes = getRemovedNodeIndexes(ruleChainMetaData.getNodes(), ruleChainMetaData.getConnections()); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java index 9a37e416db..48c36c2b4d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java @@ -29,6 +29,8 @@ public class RuleChainMetadataConstructorV340 extends AbstractRuleChainMetadataC protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) { + builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) + .setRuleChainIdLSB(ruleChainMetaData.getRuleChainId().getId().getLeastSignificantBits()); builder.addAllNodes(constructNodes(ruleChainMetaData.getNodes())) .addAllConnections(constructConnections(ruleChainMetaData.getConnections())) .addAllRuleChainConnections(constructRuleChainConnections(ruleChainMetaData.getRuleChainConnections(), new TreeSet<>())); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java new file mode 100644 index 0000000000..e1b1ea4d13 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java @@ -0,0 +1,29 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.rule.RuleChainMetaData; +import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; + +public class RuleChainMetadataConstructorV362 extends AbstractRuleChainMetadataConstructor { + + @Override + protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) { + builder.setEntity(JacksonUtil.toString(ruleChainMetaData)); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java new file mode 100644 index 0000000000..c1665ef48d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java @@ -0,0 +1,37 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.thingsboard.server.common.data.id.RuleChainId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.rule.RuleChain; +import org.thingsboard.server.common.data.rule.RuleChainMetaData; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; +import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface RuleChainMsgConstructor { + + RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot); + + RuleChainUpdateMsg constructRuleChainDeleteMsg(RuleChainId ruleChainId); + + RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, + UpdateMsgType msgType, + RuleChainMetaData ruleChainMetaData, + EdgeVersion edgeVersion); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java new file mode 100644 index 0000000000..b989612431 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class RuleChainMsgConstructorFactory { + + @Autowired + protected RuleChainMsgConstructorV1 ruleChainMsgConstructorV1; + + @Autowired + protected RuleChainMsgConstructorV2 ruleChainMsgConstructorV2; + + public RuleChainMsgConstructor getRuleChainMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return ruleChainMsgConstructorV1; + default: + return ruleChainMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java new file mode 100644 index 0000000000..8404b5d67d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.rule.RuleChain; +import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class RuleChainMsgConstructorV1 extends AbstractRuleChainMsgConstructor { + + @Override + public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { + RuleChainUpdateMsg.Builder builder = RuleChainUpdateMsg.newBuilder() + .setMsgType(msgType) + .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) + .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()) + .setName(ruleChain.getName()) + .setRoot(isRoot) + .setDebugMode(ruleChain.isDebugMode()) + .setConfiguration(JacksonUtil.toString(ruleChain.getConfiguration())); + if (ruleChain.getFirstRuleNodeId() != null) { + builder.setFirstRuleNodeIdMSB(ruleChain.getFirstRuleNodeId().getId().getMostSignificantBits()) + .setFirstRuleNodeIdLSB(ruleChain.getFirstRuleNodeId().getId().getLeastSignificantBits()); + } + return builder.build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java new file mode 100644 index 0000000000..492ea6c40d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java @@ -0,0 +1,39 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.rule; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.rule.RuleChain; +import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class RuleChainMsgConstructorV2 extends AbstractRuleChainMsgConstructor { + + @Override + public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { + boolean isTemplateRoot = ruleChain.isRoot(); + ruleChain.setRoot(isRoot); + RuleChainUpdateMsg result = RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) + .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) + .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); + ruleChain.setRoot(isTemplateRoot); + return result; + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java new file mode 100644 index 0000000000..4e5aa7bf54 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java @@ -0,0 +1,24 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.settings; + +import org.thingsboard.server.common.data.AdminSettings; +import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; + +public interface AdminSettingsMsgConstructor { + + AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java new file mode 100644 index 0000000000..060c7fa3a5 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.settings; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AdminSettingsMsgConstructorFactory { + + @Autowired + protected AdminSettingsMsgConstructorV1 adminSettingsMsgConstructorV1; + + @Autowired + protected AdminSettingsMsgConstructorV2 adminSettingsMsgConstructorV2; + + public AdminSettingsMsgConstructor getAdminSettingsMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return adminSettingsMsgConstructorV1; + default: + return adminSettingsMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV1.java similarity index 67% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV1.java index e82f3553c3..cbbd9b5bb8 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV1.java @@ -13,29 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.settings; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class AdminSettingsMsgConstructor { +public class AdminSettingsMsgConstructorV1 implements AdminSettingsMsgConstructor { - public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedAdminSettingsUpdateMsg(adminSettings); - } - return AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); - } - - private AdminSettingsUpdateMsg constructDeprecatedAdminSettingsUpdateMsg(AdminSettings adminSettings) { + @Override + public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings) { AdminSettingsUpdateMsg.Builder builder = AdminSettingsUpdateMsg.newBuilder() .setKey(adminSettings.getKey()) .setJsonValue(JacksonUtil.toString(adminSettings.getJsonValue())); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV2.java new file mode 100644 index 0000000000..de92d2a1f9 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorV2.java @@ -0,0 +1,32 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.settings; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.AdminSettings; +import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class AdminSettingsMsgConstructorV2 implements AdminSettingsMsgConstructor { + + @Override + public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings) { + return AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/telemetry/EntityDataMsgConstructor.java similarity index 98% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/telemetry/EntityDataMsgConstructor.java index 47dbad231d..9a2ea2abf6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityDataMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/telemetry/EntityDataMsgConstructor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.telemetry; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -36,8 +36,8 @@ import org.thingsboard.server.queue.util.TbCoreComponent; import java.util.List; -@Component @Slf4j +@Component @TbCoreComponent public class EntityDataMsgConstructor { @@ -106,5 +106,4 @@ public class EntityDataMsgConstructor { } return result; } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java new file mode 100644 index 0000000000..612703b3c6 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java @@ -0,0 +1,30 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.tenant; + +import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; + +public interface TenantMsgConstructor { + + TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant); + + TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java new file mode 100644 index 0000000000..753eb0dc05 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.tenant; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class TenantMsgConstructorFactory { + + @Autowired + protected TenantMsgConstructorV1 tenantMsgConstructorV1; + + @Autowired + protected TenantMsgConstructorV2 tenantMsgConstructorV2; + + public TenantMsgConstructor getTenantMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return tenantMsgConstructorV1; + default: + return tenantMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV1.java similarity index 62% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV1.java index 93bf46899e..a3f815cc18 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV1.java @@ -13,29 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.tenant; +import com.google.protobuf.ByteString; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class TenantMsgConstructor { +public class TenantMsgConstructorV1 implements TenantMsgConstructor { - public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedTenantUpdateMsg(msgType, tenant); - } - return TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); - } + @Autowired + private DataDecodingEncodingService dataDecodingEncodingService; - private TenantUpdateMsg constructDeprecatedTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { + @Override + public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { TenantUpdateMsg.Builder builder = TenantUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(tenant.getId().getId().getMostSignificantBits()) @@ -73,4 +75,22 @@ public class TenantMsgConstructor { } return builder.build(); } + + @Override + public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { + ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? + ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); + TenantProfileUpdateMsg.Builder builder = TenantProfileUpdateMsg.newBuilder() + .setMsgType(msgType) + .setIdMSB(tenantProfile.getId().getId().getMostSignificantBits()) + .setIdLSB(tenantProfile.getId().getId().getLeastSignificantBits()) + .setName(tenantProfile.getName()) + .setDefault(tenantProfile.isDefault()) + .setIsolatedRuleChain(tenantProfile.isIsolatedTbRuleEngine()) + .setProfileDataBytes(profileData); + if (tenantProfile.getDescription() != null) { + builder.setDescription(tenantProfile.getDescription()); + } + return builder.build(); + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV2.java new file mode 100644 index 0000000000..69531e5630 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorV2.java @@ -0,0 +1,41 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.tenant; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class TenantMsgConstructorV2 implements TenantMsgConstructor { + + @Override + public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { + return TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); + } + + @Override + public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { + return TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/BaseUserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/BaseUserMsgConstructor.java new file mode 100644 index 0000000000..aef35d8f50 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/BaseUserMsgConstructor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.user; + +import org.thingsboard.server.common.data.id.UserId; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; + +public abstract class BaseUserMsgConstructor implements UserMsgConstructor { + + @Override + public UserUpdateMsg constructUserDeleteMsg(UserId userId) { + return UserUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(userId.getId().getMostSignificantBits()) + .setIdLSB(userId.getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java new file mode 100644 index 0000000000..e6e2c9572b --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java @@ -0,0 +1,32 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.user; + +import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.id.UserId; +import org.thingsboard.server.common.data.security.UserCredentials; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; + +public interface UserMsgConstructor { + + UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user); + + UserUpdateMsg constructUserDeleteMsg(UserId userId); + + UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java new file mode 100644 index 0000000000..47554ce398 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.user; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class UserMsgConstructorFactory { + + @Autowired + protected UserMsgConstructorV1 userMsgConstructorV1; + + @Autowired + protected UserMsgConstructorV2 userMsgConstructorV2; + + public UserMsgConstructor getUserMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return userMsgConstructorV1; + default: + return userMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV1.java similarity index 57% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV1.java index 43771a77c0..3fe635c54c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV1.java @@ -13,34 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.user; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.User; -import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.security.UserCredentials; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent -public class UserMsgConstructor { +public class UserMsgConstructorV1 extends BaseUserMsgConstructor { - public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedUserUpdatedMsg(msgType, user); - } - return UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) - .setIdMSB(user.getId().getId().getMostSignificantBits()) - .setIdLSB(user.getId().getId().getLeastSignificantBits()).build(); - } - - private UserUpdateMsg constructDeprecatedUserUpdatedMsg(UpdateMsgType msgType, User user) { + @Override + public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user) { UserUpdateMsg.Builder builder = UserUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(user.getId().getId().getMostSignificantBits()) @@ -63,25 +52,12 @@ public class UserMsgConstructor { return builder.build(); } - public UserUpdateMsg constructUserDeleteMsg(UserId userId) { - return UserUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(userId.getId().getMostSignificantBits()) - .setIdLSB(userId.getId().getLeastSignificantBits()).build(); - } - - public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedUserCredentialsUpdatedMsg(userCredentials) - : UserCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(userCredentials)).build(); - } - - private UserCredentialsUpdateMsg constructDeprecatedUserCredentialsUpdatedMsg(UserCredentials userCredentials) { - UserCredentialsUpdateMsg.Builder builder = UserCredentialsUpdateMsg.newBuilder() + @Override + public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials) { + return UserCredentialsUpdateMsg.newBuilder() .setUserIdMSB(userCredentials.getUserId().getId().getMostSignificantBits()) .setUserIdLSB(userCredentials.getUserId().getId().getLeastSignificantBits()) .setEnabled(userCredentials.isEnabled()) - .setPassword(userCredentials.getPassword()); - return builder.build(); + .setPassword(userCredentials.getPassword()).build(); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV2.java new file mode 100644 index 0000000000..0b4c592712 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorV2.java @@ -0,0 +1,42 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.user; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.security.UserCredentials; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class UserMsgConstructorV2 extends BaseUserMsgConstructor { + + @Override + public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user) { + return UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) + .setIdMSB(user.getId().getId().getMostSignificantBits()) + .setIdLSB(user.getId().getId().getLeastSignificantBits()).build(); + } + + @Override + public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials) { + return UserCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(userCredentials)).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/BaseWidgetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/BaseWidgetMsgConstructor.java new file mode 100644 index 0000000000..6b4b3ac821 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/BaseWidgetMsgConstructor.java @@ -0,0 +1,43 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.widget; + +import org.thingsboard.server.common.data.id.WidgetTypeId; +import org.thingsboard.server.common.data.id.WidgetsBundleId; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; +import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; + +public abstract class BaseWidgetMsgConstructor implements WidgetMsgConstructor { + + @Override + public WidgetsBundleUpdateMsg constructWidgetsBundleDeleteMsg(WidgetsBundleId widgetsBundleId) { + return WidgetsBundleUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(widgetsBundleId.getId().getMostSignificantBits()) + .setIdLSB(widgetsBundleId.getId().getLeastSignificantBits()) + .build(); + } + + @Override + public WidgetTypeUpdateMsg constructWidgetTypeDeleteMsg(WidgetTypeId widgetTypeId) { + return WidgetTypeUpdateMsg.newBuilder() + .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) + .setIdMSB(widgetTypeId.getId().getMostSignificantBits()) + .setIdLSB(widgetTypeId.getId().getLeastSignificantBits()) + .build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java new file mode 100644 index 0000000000..5d2366eef5 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java @@ -0,0 +1,38 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.widget; + +import org.thingsboard.server.common.data.id.WidgetTypeId; +import org.thingsboard.server.common.data.id.WidgetsBundleId; +import org.thingsboard.server.common.data.widget.WidgetTypeDetails; +import org.thingsboard.server.common.data.widget.WidgetsBundle; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; +import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; + +import java.util.List; + +public interface WidgetMsgConstructor { + + WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets); + + WidgetsBundleUpdateMsg constructWidgetsBundleDeleteMsg(WidgetsBundleId widgetsBundleId); + + WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion); + + WidgetTypeUpdateMsg constructWidgetTypeDeleteMsg(WidgetTypeId widgetTypeId); +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java new file mode 100644 index 0000000000..ce1ae735f3 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.widget; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public class WidgetMsgConstructorFactory { + + @Autowired + protected WidgetMsgConstructorV1 widgetMsgConstructorV1; + + @Autowired + protected WidgetMsgConstructorV2 widgetMsgConstructorV2; + + public WidgetMsgConstructor getWidgetMsgConstructor(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return widgetMsgConstructorV1; + default: + return widgetMsgConstructorV2; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV1.java similarity index 67% rename from application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java rename to application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV1.java index d4e5810c04..67bdbf1f54 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV1.java @@ -13,35 +13,55 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.thingsboard.server.service.edge.rpc.constructor; +package org.thingsboard.server.service.edge.rpc.constructor.widget; +import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; +import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; +import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; +import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.List; @Component @TbCoreComponent -public class WidgetTypeMsgConstructor { +public class WidgetMsgConstructorV1 extends BaseWidgetMsgConstructor { - public WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); + @Override + public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets) { + WidgetsBundleUpdateMsg.Builder builder = WidgetsBundleUpdateMsg.newBuilder() + .setMsgType(msgType) + .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) + .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()) + .setTitle(widgetsBundle.getTitle()) + .setAlias(widgetsBundle.getAlias()); + if (widgetsBundle.getImage() != null) { + builder.setImage(ByteString.copyFrom(widgetsBundle.getImage().getBytes(StandardCharsets.UTF_8))); } - return WidgetTypeUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetTypeDetails)) - .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) - .setIdLSB(widgetTypeDetails.getId().getId().getLeastSignificantBits()).build(); + if (widgetsBundle.getDescription() != null) { + builder.setDescription(widgetsBundle.getDescription()); + } + if (widgetsBundle.getOrder() != null) { + builder.setOrder(widgetsBundle.getOrder()); + } + if (widgetsBundle.getTenantId().equals(TenantId.SYS_TENANT_ID)) { + builder.setIsSystem(true); + } + builder.setWidgets(JacksonUtil.toString(widgets)); + return builder.build(); } - private WidgetTypeUpdateMsg constructDeprecatedWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { + @Override + public WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { WidgetTypeUpdateMsg.Builder builder = WidgetTypeUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) @@ -82,12 +102,4 @@ public class WidgetTypeMsgConstructor { } return builder.build(); } - - public WidgetTypeUpdateMsg constructWidgetTypeDeleteMsg(WidgetTypeId widgetTypeId) { - return WidgetTypeUpdateMsg.newBuilder() - .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) - .setIdMSB(widgetTypeId.getId().getMostSignificantBits()) - .setIdLSB(widgetTypeId.getId().getLeastSignificantBits()) - .build(); - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV2.java new file mode 100644 index 0000000000..aacc3c8399 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorV2.java @@ -0,0 +1,48 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor.widget; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.widget.WidgetTypeDetails; +import org.thingsboard.server.common.data.widget.WidgetsBundle; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; +import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; +import org.thingsboard.server.queue.util.TbCoreComponent; + +import java.util.List; + +@Component +@TbCoreComponent +public class WidgetMsgConstructorV2 extends BaseWidgetMsgConstructor { + + @Override + public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets) { + return WidgetsBundleUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetsBundle)) + .setWidgets(JacksonUtil.toString(widgets)) + .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) + .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()).build(); + } + + @Override + public WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { + return WidgetTypeUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetTypeDetails)) + .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) + .setIdLSB(widgetTypeDetails.getId().getId().getLeastSignificantBits()).build(); + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessor.java index 8790b5d1fd..fe5fc76f2c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessor.java @@ -90,27 +90,23 @@ import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueMsgMetadata; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; -import org.thingsboard.server.service.edge.rpc.constructor.AdminSettingsMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AlarmMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AssetMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AssetProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.CustomerMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DashboardMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DeviceMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DeviceProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EdgeMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EntityDataMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EntityViewMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.OtaPackageMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.QueueMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.RelationMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.RuleChainMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.ResourceMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.TenantMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.TenantProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.UserMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.WidgetTypeMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.WidgetsBundleMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.alarm.AlarmMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.dashboard.DashboardMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.edge.EdgeMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.entityview.EntityViewMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.ota.OtaPackageMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.queue.QueueMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.relation.RelationMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.resource.ResourceMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.settings.AdminSettingsMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.telemetry.EntityDataMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.user.UserMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructorFactory; import org.thingsboard.server.service.entitiy.TbNotificationEntityService; import org.thingsboard.server.service.executors.DbCallbackExecutorService; import org.thingsboard.server.service.profile.TbAssetProfileCache; @@ -253,61 +249,49 @@ public abstract class BaseEdgeProcessor { protected EntityDataMsgConstructor entityDataMsgConstructor; @Autowired - protected RuleChainMsgConstructor ruleChainMsgConstructor; + protected RuleChainMsgConstructorFactory ruleChainMsgConstructorFactory; @Autowired - protected AlarmMsgConstructor alarmMsgConstructor; + protected AlarmMsgConstructorFactory alarmMsgConstructorFactory; @Autowired - protected DeviceMsgConstructor deviceMsgConstructor; + protected DeviceMsgConstructorFactory deviceMsgConstructorFactory; @Autowired - protected AssetMsgConstructor assetMsgConstructor; + protected AssetMsgConstructorFactory assetMsgConstructorFactory; @Autowired - protected EntityViewMsgConstructor entityViewMsgConstructor; + protected EntityViewMsgConstructorFactory entityViewMsgConstructorFactory; @Autowired - protected DashboardMsgConstructor dashboardMsgConstructor; + protected DashboardMsgConstructorFactory dashboardMsgConstructorFactory; @Autowired - protected RelationMsgConstructor relationMsgConstructor; + protected RelationMsgConstructorFactory relationMsgConstructorFactory; @Autowired - protected UserMsgConstructor userMsgConstructor; + protected UserMsgConstructorFactory userMsgConstructorFactory; @Autowired - protected CustomerMsgConstructor customerMsgConstructor; + protected CustomerMsgConstructorFactory customerMsgConstructorFactory; @Autowired - protected DeviceProfileMsgConstructor deviceProfileMsgConstructor; + protected TenantMsgConstructorFactory tenantMsgConstructorFactory; @Autowired - protected AssetProfileMsgConstructor assetProfileMsgConstructor; + protected WidgetMsgConstructorFactory widgetMsgConstructorFactory; @Autowired - protected TenantMsgConstructor tenantMsgConstructor; + protected AdminSettingsMsgConstructorFactory adminSettingsMsgConstructorFactory; @Autowired - protected TenantProfileMsgConstructor tenantProfileMsgConstructor; + protected OtaPackageMsgConstructorFactory otaPackageMsgConstructorFactory; @Autowired - protected WidgetsBundleMsgConstructor widgetsBundleMsgConstructor; + protected QueueMsgConstructorFactory queueMsgConstructorFactory; @Autowired - protected WidgetTypeMsgConstructor widgetTypeMsgConstructor; - - @Autowired - protected AdminSettingsMsgConstructor adminSettingsMsgConstructor; - - @Autowired - protected OtaPackageMsgConstructor otaPackageMsgConstructor; - - @Autowired - protected QueueMsgConstructor queueMsgConstructor; - - @Autowired - protected ResourceMsgConstructor resourceMsgConstructor; + protected ResourceMsgConstructorFactory resourceMsgConstructorFactory; @Autowired protected EdgeSynchronizationManager edgeSynchronizationManager; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index fd53e38f4a..edc03469e0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -132,13 +132,13 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ALARM_CLEAR: Alarm alarm = alarmService.findAlarmById(tenantId, alarmId); if (alarm != null) { - return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm), edgeVersion); + return alarmMsgConstructorFactory.getAlarmMsgConstructor(edgeVersion).constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); } break; case DELETED: Alarm deletedAlarm = JacksonUtil.convertValue(body, Alarm.class); if (deletedAlarm != null) { - return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm), edgeVersion); + return alarmMsgConstructorFactory.getAlarmMsgConstructor(edgeVersion).constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); } } return null; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index 886a148f5a..fb1362a9da 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -121,14 +121,14 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { if (asset != null && !BaseAssetService.TB_SERVICE_QUEUE.equals(asset.getType())) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); AssetUpdateMsg assetUpdateMsg = - assetMsgConstructor.constructAssetUpdatedMsg(msgType, asset, edgeVersion); + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetUpdatedMsg(msgType, asset); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetUpdateMsg(assetUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { AssetProfile assetProfile = assetProfileService.findAssetProfileById(edgeEvent.getTenantId(), asset.getAssetProfileId()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); - builder.addAssetProfileUpdateMsg(assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile, edgeVersion)); + builder.addAssetProfileUpdateMsg(assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileUpdatedMsg(msgType, assetProfile)); } downlinkMsg = builder.build(); } @@ -136,7 +136,7 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: AssetUpdateMsg assetUpdateMsg = - assetMsgConstructor.constructAssetDeleteMsg(assetId); + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetDeleteMsg(assetId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetUpdateMsg(assetUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index d5a98b523e..76c43b0c01 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -108,7 +108,7 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); AssetProfileUpdateMsg assetProfileUpdateMsg = - assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile, edgeVersion); + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileUpdatedMsg(msgType, assetProfile); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetProfileUpdateMsg(assetProfileUpdateMsg) @@ -117,7 +117,7 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { break; case DELETED: AssetProfileUpdateMsg assetProfileUpdateMsg = - assetProfileMsgConstructor.constructAssetProfileDeleteMsg(assetProfileId); + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileDeleteMsg(assetProfileId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetProfileUpdateMsg(assetProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java index 04d786022f..2ece4edbb5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java @@ -58,7 +58,7 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { if (customer != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructor.constructCustomerUpdatedMsg(msgType, customer, edgeVersion); + customerMsgConstructorFactory.getCustomerMsgConstructor(edgeVersion).constructCustomerUpdatedMsg(msgType, customer); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) @@ -67,7 +67,7 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructor.constructCustomerDeleteMsg(customerId); + customerMsgConstructorFactory.getCustomerMsgConstructor(edgeVersion).constructCustomerDeleteMsg(customerId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index eec398e5ff..5c3c921cde 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -111,7 +111,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { if (dashboard != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructor.constructDashboardUpdatedMsg(msgType, dashboard, edgeVersion); + dashboardMsgConstructorFactory.getDashboardMsgConstructor(edgeVersion).constructDashboardUpdatedMsg(msgType, dashboard); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) @@ -121,7 +121,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructor.constructDashboardDeleteMsg(dashboardId); + dashboardMsgConstructorFactory.getDashboardMsgConstructor(edgeVersion).constructDashboardDeleteMsg(dashboardId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 97eb6bcfa1..2677004678 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -228,14 +228,14 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { if (device != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); DeviceUpdateMsg deviceUpdateMsg = - deviceMsgConstructor.constructDeviceUpdatedMsg(msgType, device, edgeVersion); + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceUpdatedMsg(msgType, device); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceUpdateMsg(deviceUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(edgeEvent.getTenantId(), device.getDeviceProfileId()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); - builder.addDeviceProfileUpdateMsg(deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile, edgeVersion)); + builder.addDeviceProfileUpdateMsg(deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileUpdatedMsg(msgType, deviceProfile)); } downlinkMsg = builder.build(); } @@ -243,7 +243,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: DeviceUpdateMsg deviceUpdateMsg = - deviceMsgConstructor.constructDeviceDeleteMsg(deviceId); + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceDeleteMsg(deviceId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceUpdateMsg(deviceUpdateMsg) @@ -253,7 +253,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(edgeEvent.getTenantId(), deviceId); if (deviceCredentials != null) { DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = - deviceMsgConstructor.constructDeviceCredentialsUpdatedMsg(deviceCredentials, edgeVersion); + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceCredentialsUpdatedMsg(deviceCredentials); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg) @@ -261,20 +261,16 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { } break; case RPC_CALL: - return convertRpcCallEventToDownlink(edgeEvent); + return DownlinkMsg.newBuilder() + .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) + .addDeviceRpcCallMsg(deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) + .build(); case CREDENTIALS_REQUEST: return convertCredentialsRequestEventToDownlink(edgeEvent); } return downlinkMsg; } - private DownlinkMsg convertRpcCallEventToDownlink(EdgeEvent edgeEvent) { - return DownlinkMsg.newBuilder() - .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addDeviceRpcCallMsg(deviceMsgConstructor.constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) - .build(); - } - private DownlinkMsg convertCredentialsRequestEventToDownlink(EdgeEvent edgeEvent) { DeviceId deviceId = new DeviceId(edgeEvent.getEntityId()); DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = DeviceCredentialsRequestMsg.newBuilder() diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 4f43fea35b..0b8fa1025a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -108,7 +108,7 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); DeviceProfileUpdateMsg deviceProfileUpdateMsg = - deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile, edgeVersion); + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileUpdatedMsg(msgType, deviceProfile); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceProfileUpdateMsg(deviceProfileUpdateMsg) @@ -117,7 +117,7 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { break; case DELETED: DeviceProfileUpdateMsg deviceProfileUpdateMsg = - deviceProfileMsgConstructor.constructDeviceProfileDeleteMsg(deviceProfileId); + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileDeleteMsg(deviceProfileId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceProfileUpdateMsg(deviceProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 73f66fc614..50eb258b7d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -118,7 +118,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { if (entityView != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructor.constructEntityViewUpdatedMsg(msgType, entityView, edgeVersion); + entityViewMsgConstructorFactory.getEntityViewMsgConstructor(edgeVersion).constructEntityViewUpdatedMsg(msgType, entityView); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) @@ -128,7 +128,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructor.constructEntityViewDeleteMsg(entityViewId); + entityViewMsgConstructorFactory.getEntityViewMsgConstructor(edgeVersion).constructEntityViewDeleteMsg(entityViewId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java index 3c710fd3ee..dd94cc8803 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java @@ -43,7 +43,7 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { if (otaPackage != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructor.constructOtaPackageUpdatedMsg(msgType, otaPackage, edgeVersion); + otaPackageMsgConstructorFactory.getOtaPackageMsgConstructor(edgeVersion).constructOtaPackageUpdatedMsg(msgType, otaPackage); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) @@ -52,7 +52,7 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructor.constructOtaPackageDeleteMsg(otaPackageId); + otaPackageMsgConstructorFactory.getOtaPackageMsgConstructor(edgeVersion).constructOtaPackageDeleteMsg(otaPackageId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java index ce7bd33f9b..3836cf3c65 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java @@ -28,8 +28,8 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; -@Component @Slf4j +@Component @TbCoreComponent public class QueueEdgeProcessor extends BaseEdgeProcessor { @@ -43,7 +43,7 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { if (queue != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); QueueUpdateMsg queueUpdateMsg = - queueMsgConstructor.constructQueueUpdatedMsg(msgType, queue, edgeVersion); + queueMsgConstructorFactory.getQueueMsgConstructor(edgeVersion).constructQueueUpdatedMsg(msgType, queue); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueUpdateMsg) @@ -52,7 +52,7 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: QueueUpdateMsg queueDeleteMsg = - queueMsgConstructor.constructQueueDeleteMsg(queueId); + queueMsgConstructorFactory.getQueueMsgConstructor(edgeVersion).constructQueueDeleteMsg(queueId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueDeleteMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 566bed5146..3adf19548f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -59,7 +59,7 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { public DownlinkMsg convertRelationEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { EntityRelation entityRelation = JacksonUtil.convertValue(edgeEvent.getBody(), EntityRelation.class); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RelationUpdateMsg relationUpdateMsg = relationMsgConstructor.constructRelationUpdatedMsg(msgType, entityRelation, edgeVersion); + RelationUpdateMsg relationUpdateMsg = relationMsgConstructorFactory.getRelationMsgConstructor(edgeVersion).constructRelationUpdatedMsg(msgType, entityRelation); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRelationUpdateMsg(relationUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index ae514d0a54..89ae103b2b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -81,7 +81,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { if (tbResource != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource, edgeVersion); + resourceMsgConstructorFactory.getResourceMsgConstructor(edgeVersion).constructResourceUpdatedMsg(msgType, tbResource); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) @@ -90,7 +90,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { break; case DELETED: ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructor.constructResourceDeleteMsg(tbResourceId); + resourceMsgConstructorFactory.getResourceMsgConstructor(edgeVersion).constructResourceDeleteMsg(tbResourceId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java index d480f9e4cd..910e7e0541 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java @@ -54,7 +54,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { } UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); RuleChainUpdateMsg ruleChainUpdateMsg = - ruleChainMsgConstructor.constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot, edgeVersion); + ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRuleChainUpdateMsg(ruleChainUpdateMsg) @@ -65,7 +65,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { case UNASSIGNED_FROM_EDGE: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addRuleChainUpdateMsg(ruleChainMsgConstructor.constructRuleChainDeleteMsg(ruleChainId)) + .addRuleChainUpdateMsg(ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainDeleteMsg(ruleChainId)) .build(); break; } @@ -80,7 +80,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { RuleChainMetaData ruleChainMetaData = ruleChainService.loadRuleChainMetaData(edgeEvent.getTenantId(), ruleChainId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - ruleChainMsgConstructor.constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); + ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); if (ruleChainMetadataUpdateMsg != null) { downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java index 735c4de399..0b7f3021f3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java @@ -37,7 +37,8 @@ public class AdminSettingsEdgeProcessor extends BaseEdgeProcessor { if (adminSettings == null) { return null; } - AdminSettingsUpdateMsg adminSettingsUpdateMsg = adminSettingsMsgConstructor.constructAdminSettingsUpdateMsg(adminSettings, edgeVersion); + AdminSettingsUpdateMsg adminSettingsUpdateMsg = + adminSettingsMsgConstructorFactory.getAdminSettingsMsgConstructor(edgeVersion).constructAdminSettingsUpdateMsg(adminSettings); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAdminSettingsUpdateMsg(adminSettingsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java index f4b0c5a355..1ef44a72ad 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java @@ -43,9 +43,9 @@ public class TenantEdgeProcessor extends BaseEdgeProcessor { Tenant tenant = tenantService.findTenantById(tenantId); if (tenant != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructor.constructTenantUpdateMsg(msgType, tenant, edgeVersion); + TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantUpdateMsg(msgType, tenant); TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(tenantId, tenant.getTenantProfileId()); - TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileMsgConstructor.constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantUpdateMsg(tenantUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java index 970ea3a1f6..4f264f7bb4 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java @@ -42,7 +42,7 @@ public class TenantProfileEdgeProcessor extends BaseEdgeProcessor { if (tenantProfile != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); TenantProfileUpdateMsg tenantProfileUpdateMsg = - tenantProfileMsgConstructor.constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantProfileUpdateMsg(tenantProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java index 8d27c5fc79..3ee3fc109f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java @@ -45,21 +45,21 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructor.constructUserUpdatedMsg(msgType, user, edgeVersion)) + .addUserUpdateMsg(userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserUpdatedMsg(msgType, user)) .build(); } break; case DELETED: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructor.constructUserDeleteMsg(userId)) + .addUserUpdateMsg(userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserDeleteMsg(userId)) .build(); break; case CREDENTIALS_UPDATED: UserCredentials userCredentialsByUserId = userService.findUserCredentialsByUserId(edgeEvent.getTenantId(), userId); if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) { UserCredentialsUpdateMsg userCredentialsUpdateMsg = - userMsgConstructor.constructUserCredentialsUpdatedMsg(userCredentialsByUserId, edgeVersion); + userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserCredentialsUpdatedMsg(userCredentialsByUserId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addUserCredentialsUpdateMsg(userCredentialsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java index abef3a1ab5..e48387fc64 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java @@ -46,7 +46,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { List widgets = widgetTypeService.findWidgetFqnsByWidgetsBundleId(edgeEvent.getTenantId(), widgetsBundleId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetsBundleMsgConstructor.constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets, edgeVersion); + widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) @@ -55,7 +55,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetsBundleMsgConstructor.constructWidgetsBundleDeleteMsg(widgetsBundleId); + widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetsBundleDeleteMsg(widgetsBundleId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java index de9617d5d7..8125235ae6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java @@ -28,8 +28,8 @@ import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; -@Component @Slf4j +@Component @TbCoreComponent public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { @@ -43,7 +43,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { if (widgetTypeDetails != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetTypeMsgConstructor.constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); + widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) @@ -52,7 +52,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetTypeMsgConstructor.constructWidgetTypeDeleteMsg(widgetTypeId); + widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetTypeDeleteMsg(widgetTypeId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) @@ -61,5 +61,4 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { } return downlinkMsg; } - } diff --git a/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java b/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java index c1f34217ac..c7a3e7a24c 100644 --- a/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java +++ b/application/src/test/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructorTest.java @@ -24,11 +24,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.msg.TbNodeConnectionType; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.RuleNodeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; +import org.thingsboard.server.common.data.msg.TbNodeConnectionType; import org.thingsboard.server.common.data.rule.NodeConnectionInfo; import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.common.data.rule.RuleNode; @@ -37,6 +37,7 @@ import org.thingsboard.server.gen.edge.v1.RuleChainConnectionInfoProto; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleNodeProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructorV1; import java.util.ArrayList; import java.util.List; @@ -49,13 +50,13 @@ public class RuleChainMsgConstructorTest { private static final String RPC_CONNECTION_TYPE = "RPC"; - private RuleChainMsgConstructor constructor; + private RuleChainMsgConstructorV1 ruleChainMsgConstructorV1; private TenantId tenantId; @Before public void setup() { - constructor = new RuleChainMsgConstructor(); + ruleChainMsgConstructorV1 = new RuleChainMsgConstructorV1(); tenantId = new TenantId(UUID.randomUUID()); } @@ -65,7 +66,7 @@ public class RuleChainMsgConstructorTest { RuleChainMetaData ruleChainMetaData = createRuleChainMetaData( ruleChainId, 3, createRuleNodes(ruleChainId), createConnections()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - constructor.constructRuleChainMetadataUpdatedMsg( + ruleChainMsgConstructorV1.constructRuleChainMetadataUpdatedMsg( tenantId, UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetaData, @@ -84,7 +85,7 @@ public class RuleChainMsgConstructorTest { RuleChainMetaData ruleChainMetaData = createRuleChainMetaData( ruleChainId, 3, createRuleNodes(ruleChainId), createConnections()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - constructor.constructRuleChainMetadataUpdatedMsg( + ruleChainMsgConstructorV1.constructRuleChainMetadataUpdatedMsg( tenantId, UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetaData, @@ -123,7 +124,7 @@ public class RuleChainMsgConstructorTest { RuleChainId ruleChainId = new RuleChainId(UUID.randomUUID()); RuleChainMetaData ruleChainMetaData = createRuleChainMetaData(ruleChainId, 3, createRuleNodes(ruleChainId), createConnections()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - constructor.constructRuleChainMetadataUpdatedMsg( + ruleChainMsgConstructorV1.constructRuleChainMetadataUpdatedMsg( tenantId, UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetaData, @@ -165,7 +166,7 @@ public class RuleChainMsgConstructorTest { RuleChainId ruleChainId = new RuleChainId(UUID.randomUUID()); RuleChainMetaData ruleChainMetaData1 = createRuleChainMetaData(ruleChainId, 8, createRuleNodesInDifferentOrder(ruleChainId), createConnectionsInDifferentOrder()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - constructor.constructRuleChainMetadataUpdatedMsg( + ruleChainMsgConstructorV1.constructRuleChainMetadataUpdatedMsg( tenantId, UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetaData1, diff --git a/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java b/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java index dc59d4f7e9..c6ee264783 100644 --- a/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java +++ b/application/src/test/java/org/thingsboard/server/service/edge/rpc/processor/BaseEdgeProcessorTest.java @@ -60,27 +60,53 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.discovery.PartitionService; import org.thingsboard.server.queue.provider.TbQueueProducerProvider; import org.thingsboard.server.queue.util.DataDecodingEncodingService; -import org.thingsboard.server.service.edge.rpc.constructor.AdminSettingsMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AlarmMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AssetMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.AssetProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.CustomerMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DashboardMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DeviceMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.DeviceProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EdgeMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EntityDataMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.EntityViewMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.OtaPackageMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.QueueMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.RelationMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.ResourceMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.RuleChainMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.TenantMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.TenantProfileMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.UserMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.WidgetTypeMsgConstructor; -import org.thingsboard.server.service.edge.rpc.constructor.WidgetsBundleMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.alarm.AlarmMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.alarm.AlarmMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.alarm.AlarmMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.dashboard.DashboardMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.dashboard.DashboardMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.dashboard.DashboardMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.edge.EdgeMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.entityview.EntityViewMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.entityview.EntityViewMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.entityview.EntityViewMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.ota.OtaPackageMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.ota.OtaPackageMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.ota.OtaPackageMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.queue.QueueMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.queue.QueueMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.queue.QueueMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.relation.RelationMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.relation.RelationMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.relation.RelationMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.resource.ResourceMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.resource.ResourceMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.resource.ResourceMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.settings.AdminSettingsMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.settings.AdminSettingsMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.settings.AdminSettingsMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.telemetry.EntityDataMsgConstructor; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.user.UserMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.user.UserMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.user.UserMsgConstructorV2; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructorV2; import org.thingsboard.server.service.entitiy.TbNotificationEntityService; import org.thingsboard.server.service.executors.DbCallbackExecutorService; import org.thingsboard.server.service.profile.TbAssetProfileCache; @@ -212,61 +238,139 @@ public abstract class BaseEdgeProcessorTest { protected EntityDataMsgConstructor entityDataMsgConstructor; @MockBean - protected RuleChainMsgConstructor ruleChainMsgConstructor; + protected AdminSettingsMsgConstructorV1 adminSettingsMsgConstructorV1; @MockBean - protected AlarmMsgConstructor alarmMsgConstructor; + protected AdminSettingsMsgConstructorV2 adminSettingsMsgConstructorV2; + + @MockBean + protected AlarmMsgConstructorV1 alarmMsgConstructorV1; + + @MockBean + protected AlarmMsgConstructorV2 alarmMsgConstructorV2; + + @SpyBean + protected AssetMsgConstructorV1 assetMsgConstructorV1; + + @SpyBean + protected AssetMsgConstructorV2 assetMsgConstructorV2; + + @MockBean + protected CustomerMsgConstructorV1 customerMsgConstructorV1; + + @MockBean + protected CustomerMsgConstructorV2 customerMsgConstructorV2; + + @MockBean + protected DashboardMsgConstructorV1 dashboardMsgConstructorV1; + + @MockBean + protected DashboardMsgConstructorV2 dashboardMsgConstructorV2; + + @SpyBean + protected DeviceMsgConstructorV1 deviceMsgConstructorV1; + + @SpyBean + protected DeviceMsgConstructorV2 deviceMsgConstructorV2; + + @MockBean + protected EntityViewMsgConstructorV1 entityViewMsgConstructorV1; + + @MockBean + protected EntityViewMsgConstructorV2 entityViewMsgConstructorV2; + + @MockBean + protected OtaPackageMsgConstructorV1 otaPackageMsgConstructorV1; + + @MockBean + protected OtaPackageMsgConstructorV2 otaPackageMsgConstructorV2; + + @MockBean + protected QueueMsgConstructorV1 queueMsgConstructorV1; + + @MockBean + protected QueueMsgConstructorV2 queueMsgConstructorV2; + + @MockBean + protected RelationMsgConstructorV1 relationMsgConstructorV1; + + @MockBean + protected RelationMsgConstructorV2 relationMsgConstructorV2; + + @MockBean + protected ResourceMsgConstructorV1 resourceMsgConstructorV1; + + @MockBean + protected ResourceMsgConstructorV2 resourceMsgConstructorV2; @SpyBean - protected DeviceMsgConstructor deviceMsgConstructor; + protected RuleChainMsgConstructorV1 ruleChainMsgConstructorV1; @SpyBean - protected AssetMsgConstructor assetMsgConstructor; + protected RuleChainMsgConstructorV2 ruleChainMsgConstructorV2; + + @MockBean + protected TenantMsgConstructorV1 tenantMsgConstructorV1; @MockBean - protected EntityViewMsgConstructor entityViewMsgConstructor; + protected TenantMsgConstructorV2 tenantMsgConstructorV2; @MockBean - protected DashboardMsgConstructor dashboardMsgConstructor; + protected UserMsgConstructorV1 userMsgConstructorV1; @MockBean - protected RelationMsgConstructor relationMsgConstructor; + protected UserMsgConstructorV2 userMsgConstructorV2; @MockBean - protected UserMsgConstructor userMsgConstructor; + protected WidgetMsgConstructorV1 widgetMsgConstructorV1; + + @MockBean + protected WidgetMsgConstructorV2 widgetMsgConstructorV2; + + @SpyBean + protected RuleChainMsgConstructorFactory ruleChainMsgConstructorFactory; @MockBean - protected CustomerMsgConstructor customerMsgConstructor; + protected AlarmMsgConstructorFactory alarmMsgConstructorFactory; @SpyBean - protected DeviceProfileMsgConstructor deviceProfileMsgConstructor; + protected DeviceMsgConstructorFactory deviceMsgConstructorFactory; @SpyBean - protected AssetProfileMsgConstructor assetProfileMsgConstructor; + protected AssetMsgConstructorFactory assetMsgConstructorFactory; + + @MockBean + protected DashboardMsgConstructorFactory dashboardMsgConstructorFactory; + + @MockBean + protected EntityViewMsgConstructorFactory entityViewMsgConstructorFactory; + + @MockBean + protected RelationMsgConstructorFactory relationMsgConstructorFactory; @MockBean - protected TenantMsgConstructor tenantMsgConstructor; + protected UserMsgConstructorFactory userMsgConstructorFactory; @MockBean - protected TenantProfileMsgConstructor tenantProfileMsgConstructor; + protected CustomerMsgConstructorFactory customerMsgConstructorFactory; @MockBean - protected WidgetsBundleMsgConstructor widgetsBundleMsgConstructor; + protected TenantMsgConstructorFactory tenantMsgConstructorFactory; @MockBean - protected WidgetTypeMsgConstructor widgetTypeMsgConstructor; + protected WidgetMsgConstructorFactory widgetBundleMsgConstructorFactory; @MockBean - protected AdminSettingsMsgConstructor adminSettingsMsgConstructor; + protected AdminSettingsMsgConstructorFactory adminSettingsMsgConstructorFactory; @MockBean - protected OtaPackageMsgConstructor otaPackageMsgConstructor; + protected OtaPackageMsgConstructorFactory otaPackageMsgConstructorFactory; @MockBean - protected QueueMsgConstructor queueMsgConstructor; + protected QueueMsgConstructorFactory queueMsgConstructorFactory; @MockBean - protected ResourceMsgConstructor resourceMsgConstructor; + protected ResourceMsgConstructorFactory resourceMsgConstructorFactory; @MockBean protected EdgeSynchronizationManager edgeSynchronizationManager; From acdd90eafdd1454dbf7107bf1706db38468ea2b8 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Fri, 24 Nov 2023 13:42:42 +0200 Subject: [PATCH 102/162] Renaming MsgConstructorFactory method to get MsgConstructor by Edge Version --- .../rpc/constructor/alarm/AlarmMsgConstructorFactory.java | 2 +- .../customer/CustomerMsgConstructorFactory.java | 2 +- .../edge/rpc/constructor/device/DeviceMsgConstructor.java | 7 +++++++ .../constructor/device/DeviceMsgConstructorFactory.java | 2 +- .../entityview/EntityViewMsgConstructorFactory.java | 2 +- .../constructor/ota/OtaPackageMsgConstructorFactory.java | 2 +- .../rpc/constructor/queue/QueueMsgConstructorFactory.java | 2 +- .../relation/RelationMsgConstructorFactory.java | 2 +- .../resource/ResourceMsgConstructorFactory.java | 2 +- .../constructor/rule/BaseRuleChainMetadataConstructor.java | 2 +- .../rpc/constructor/rule/BaseRuleChainMsgConstructor.java | 2 +- .../constructor/rule/RuleChainMetadataConstructorV330.java | 2 +- .../constructor/rule/RuleChainMetadataConstructorV340.java | 2 +- .../constructor/rule/RuleChainMetadataConstructorV362.java | 2 +- .../constructor/rule/RuleChainMsgConstructorFactory.java | 2 +- .../rpc/constructor/rule/RuleChainMsgConstructorV1.java | 2 +- .../rpc/constructor/rule/RuleChainMsgConstructorV2.java | 2 +- .../settings/AdminSettingsMsgConstructorFactory.java | 2 +- .../constructor/tenant/TenantMsgConstructorFactory.java | 2 +- .../rpc/constructor/user/UserMsgConstructorFactory.java | 2 +- .../constructor/widget/WidgetMsgConstructorFactory.java | 2 +- .../edge/rpc/processor/alarm/BaseAlarmProcessor.java | 4 ++-- .../edge/rpc/processor/customer/CustomerEdgeProcessor.java | 4 ++-- .../rpc/processor/dashboard/DashboardEdgeProcessor.java | 4 ++-- .../rpc/processor/entityview/EntityViewEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/ota/OtaPackageEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/queue/QueueEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/relation/RelationEdgeProcessor.java | 2 +- .../edge/rpc/processor/resource/ResourceEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/rule/RuleChainEdgeProcessor.java | 6 +++--- .../rpc/processor/settings/AdminSettingsEdgeProcessor.java | 2 +- .../edge/rpc/processor/tenant/TenantEdgeProcessor.java | 4 ++-- .../rpc/processor/tenant/TenantProfileEdgeProcessor.java | 2 +- .../service/edge/rpc/processor/user/UserEdgeProcessor.java | 6 +++--- .../rpc/processor/widget/WidgetBundleEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java | 4 ++-- 36 files changed, 56 insertions(+), 49 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java index 41a13e4447..4a49f6cf6b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class AlarmMsgConstructorFactory { @Autowired protected AlarmMsgConstructorV2 alarmMsgConstructorV2; - public AlarmMsgConstructor getAlarmMsgConstructor(EdgeVersion edgeVersion) { + public AlarmMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java index 350a4b6f9d..ba8e643445 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class CustomerMsgConstructorFactory { @Autowired protected CustomerMsgConstructorV2 customerMsgConstructorV2; - public CustomerMsgConstructor getCustomerMsgConstructor(EdgeVersion edgeVersion) { + public CustomerMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java index 514aeceb68..3bd40a1fbb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java @@ -17,9 +17,12 @@ package org.thingsboard.server.service.edge.rpc.constructor.device; import com.fasterxml.jackson.databind.JsonNode; import org.thingsboard.server.common.data.Device; +import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; @@ -34,5 +37,9 @@ public interface DeviceMsgConstructor { DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials); + DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile); + + DeviceProfileUpdateMsg constructDeviceProfileDeleteMsg(DeviceProfileId deviceProfileId); + DeviceRpcCallMsg constructDeviceRpcCallMsg(UUID deviceId, JsonNode body); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java index 2f14c401ea..44e072cb11 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class DeviceMsgConstructorFactory { @Autowired protected DeviceMsgConstructorV2 deviceMsgConstructorV2; - public DeviceMsgConstructor getDeviceMsgConstructor(EdgeVersion edgeVersion) { + public DeviceMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java index b2c7f3b0c3..57b19d6a14 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class EntityViewMsgConstructorFactory { @Autowired protected EntityViewMsgConstructorV2 entityViewMsgConstructorV2; - public EntityViewMsgConstructor getEntityViewMsgConstructor(EdgeVersion edgeVersion) { + public EntityViewMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java index ae7a48028c..7e2b9cea7e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class OtaPackageMsgConstructorFactory { @Autowired protected OtaPackageMsgConstructorV2 otaPackageMsgConstructorV2; - public OtaPackageMsgConstructor getOtaPackageMsgConstructor(EdgeVersion edgeVersion) { + public OtaPackageMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java index d250c5fd24..e6502aaff7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class QueueMsgConstructorFactory { @Autowired protected QueueMsgConstructorV2 queueMsgConstructorV2; - public QueueMsgConstructor getQueueMsgConstructor(EdgeVersion edgeVersion) { + public QueueMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java index a17266300d..52015f38e7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class RelationMsgConstructorFactory { @Autowired protected RelationMsgConstructorV2 relationMsgConstructorV2; - public RelationMsgConstructor getRelationMsgConstructor(EdgeVersion edgeVersion) { + public RelationMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java index ef32b623de..15b571a098 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class ResourceMsgConstructorFactory { @Autowired protected ResourceMsgConstructorV2 resourceMsgConstructorV2; - public ResourceMsgConstructor getResourceMsgConstructor(EdgeVersion edgeVersion) { + public ResourceMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java index 77815351bc..be10a714f6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMetadataConstructor.java @@ -37,7 +37,7 @@ import java.util.NavigableSet; @Slf4j @AllArgsConstructor -public abstract class AbstractRuleChainMetadataConstructor implements RuleChainMetadataConstructor { +public abstract class BaseRuleChainMetadataConstructor implements RuleChainMetadataConstructor { @Override public RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java index da237de924..cf5967fac1 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/BaseRuleChainMsgConstructor.java @@ -23,7 +23,7 @@ import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; -public abstract class AbstractRuleChainMsgConstructor implements RuleChainMsgConstructor { +public abstract class BaseRuleChainMsgConstructor implements RuleChainMsgConstructor { @Override public RuleChainUpdateMsg constructRuleChainDeleteMsg(RuleChainId ruleChainId) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java index cfa6f5edbe..64d362342b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV330.java @@ -36,7 +36,7 @@ import java.util.UUID; import java.util.stream.Collectors; @Slf4j -public class RuleChainMetadataConstructorV330 extends AbstractRuleChainMetadataConstructor { +public class RuleChainMetadataConstructorV330 extends BaseRuleChainMetadataConstructor { private static final String RULE_CHAIN_INPUT_NODE = TbRuleChainInputNode.class.getName(); private static final String TB_RULE_CHAIN_OUTPUT_NODE = TbRuleChainOutputNode.class.getName(); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java index 48c36c2b4d..2133024931 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV340.java @@ -23,7 +23,7 @@ import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import java.util.TreeSet; @Slf4j -public class RuleChainMetadataConstructorV340 extends AbstractRuleChainMetadataConstructor { +public class RuleChainMetadataConstructorV340 extends BaseRuleChainMetadataConstructor { @Override protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java index e1b1ea4d13..7a8a6d02cb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructorV362.java @@ -20,7 +20,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; -public class RuleChainMetadataConstructorV362 extends AbstractRuleChainMetadataConstructor { +public class RuleChainMetadataConstructorV362 extends BaseRuleChainMetadataConstructor { @Override protected void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, RuleChainMetadataUpdateMsg.Builder builder, RuleChainMetaData ruleChainMetaData) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java index b989612431..0c169db0f4 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class RuleChainMsgConstructorFactory { @Autowired protected RuleChainMsgConstructorV2 ruleChainMsgConstructorV2; - public RuleChainMsgConstructor getRuleChainMsgConstructor(EdgeVersion edgeVersion) { + public RuleChainMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java index 8404b5d67d..6c918cfc56 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV1.java @@ -24,7 +24,7 @@ import org.thingsboard.server.queue.util.TbCoreComponent; @Component @TbCoreComponent -public class RuleChainMsgConstructorV1 extends AbstractRuleChainMsgConstructor { +public class RuleChainMsgConstructorV1 extends BaseRuleChainMsgConstructor { @Override public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java index 492ea6c40d..f5c1c12b39 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorV2.java @@ -24,7 +24,7 @@ import org.thingsboard.server.queue.util.TbCoreComponent; @Component @TbCoreComponent -public class RuleChainMsgConstructorV2 extends AbstractRuleChainMsgConstructor { +public class RuleChainMsgConstructorV2 extends BaseRuleChainMsgConstructor { @Override public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java index 060c7fa3a5..1dd9be719d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class AdminSettingsMsgConstructorFactory { @Autowired protected AdminSettingsMsgConstructorV2 adminSettingsMsgConstructorV2; - public AdminSettingsMsgConstructor getAdminSettingsMsgConstructor(EdgeVersion edgeVersion) { + public AdminSettingsMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java index 753eb0dc05..a6ce714b1a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class TenantMsgConstructorFactory { @Autowired protected TenantMsgConstructorV2 tenantMsgConstructorV2; - public TenantMsgConstructor getTenantMsgConstructor(EdgeVersion edgeVersion) { + public TenantMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java index 47554ce398..2e7f49c0fa 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class UserMsgConstructorFactory { @Autowired protected UserMsgConstructorV2 userMsgConstructorV2; - public UserMsgConstructor getUserMsgConstructor(EdgeVersion edgeVersion) { + public UserMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java index ce1ae735f3..b98494f36b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java @@ -30,7 +30,7 @@ public class WidgetMsgConstructorFactory { @Autowired protected WidgetMsgConstructorV2 widgetMsgConstructorV2; - public WidgetMsgConstructor getWidgetMsgConstructor(EdgeVersion edgeVersion) { + public WidgetMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { switch (edgeVersion) { case V_3_3_0: case V_3_3_3: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index edc03469e0..41c05a80c2 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -132,13 +132,13 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ALARM_CLEAR: Alarm alarm = alarmService.findAlarmById(tenantId, alarmId); if (alarm != null) { - return alarmMsgConstructorFactory.getAlarmMsgConstructor(edgeVersion).constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); + return alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); } break; case DELETED: Alarm deletedAlarm = JacksonUtil.convertValue(body, Alarm.class); if (deletedAlarm != null) { - return alarmMsgConstructorFactory.getAlarmMsgConstructor(edgeVersion).constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); + return alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); } } return null; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java index 2ece4edbb5..2f6a979653 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java @@ -58,7 +58,7 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { if (customer != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructorFactory.getCustomerMsgConstructor(edgeVersion).constructCustomerUpdatedMsg(msgType, customer); + customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructCustomerUpdatedMsg(msgType, customer); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) @@ -67,7 +67,7 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructorFactory.getCustomerMsgConstructor(edgeVersion).constructCustomerDeleteMsg(customerId); + customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructCustomerDeleteMsg(customerId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index 5c3c921cde..c4679b40b0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -111,7 +111,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { if (dashboard != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructorFactory.getDashboardMsgConstructor(edgeVersion).constructDashboardUpdatedMsg(msgType, dashboard); + dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDashboardUpdatedMsg(msgType, dashboard); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) @@ -121,7 +121,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructorFactory.getDashboardMsgConstructor(edgeVersion).constructDashboardDeleteMsg(dashboardId); + dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDashboardDeleteMsg(dashboardId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 50eb258b7d..0f1727ab10 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -118,7 +118,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { if (entityView != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructorFactory.getEntityViewMsgConstructor(edgeVersion).constructEntityViewUpdatedMsg(msgType, entityView); + entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructEntityViewUpdatedMsg(msgType, entityView); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) @@ -128,7 +128,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { case DELETED: case UNASSIGNED_FROM_EDGE: EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructorFactory.getEntityViewMsgConstructor(edgeVersion).constructEntityViewDeleteMsg(entityViewId); + entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructEntityViewDeleteMsg(entityViewId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java index dd94cc8803..1b06f323d0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java @@ -43,7 +43,7 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { if (otaPackage != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructorFactory.getOtaPackageMsgConstructor(edgeVersion).constructOtaPackageUpdatedMsg(msgType, otaPackage); + otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructOtaPackageUpdatedMsg(msgType, otaPackage); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) @@ -52,7 +52,7 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructorFactory.getOtaPackageMsgConstructor(edgeVersion).constructOtaPackageDeleteMsg(otaPackageId); + otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructOtaPackageDeleteMsg(otaPackageId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java index 3836cf3c65..fa35f35151 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java @@ -43,7 +43,7 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { if (queue != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); QueueUpdateMsg queueUpdateMsg = - queueMsgConstructorFactory.getQueueMsgConstructor(edgeVersion).constructQueueUpdatedMsg(msgType, queue); + queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructQueueUpdatedMsg(msgType, queue); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueUpdateMsg) @@ -52,7 +52,7 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: QueueUpdateMsg queueDeleteMsg = - queueMsgConstructorFactory.getQueueMsgConstructor(edgeVersion).constructQueueDeleteMsg(queueId); + queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructQueueDeleteMsg(queueId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueDeleteMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 3adf19548f..530ee47982 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -59,7 +59,7 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { public DownlinkMsg convertRelationEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { EntityRelation entityRelation = JacksonUtil.convertValue(edgeEvent.getBody(), EntityRelation.class); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RelationUpdateMsg relationUpdateMsg = relationMsgConstructorFactory.getRelationMsgConstructor(edgeVersion).constructRelationUpdatedMsg(msgType, entityRelation); + RelationUpdateMsg relationUpdateMsg = relationMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRelationUpdatedMsg(msgType, entityRelation); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRelationUpdateMsg(relationUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index 89ae103b2b..fb811d2112 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -81,7 +81,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { if (tbResource != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructorFactory.getResourceMsgConstructor(edgeVersion).constructResourceUpdatedMsg(msgType, tbResource); + resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructResourceUpdatedMsg(msgType, tbResource); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) @@ -90,7 +90,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { break; case DELETED: ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructorFactory.getResourceMsgConstructor(edgeVersion).constructResourceDeleteMsg(tbResourceId); + resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructResourceDeleteMsg(tbResourceId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java index 910e7e0541..b71abd97e0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java @@ -54,7 +54,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { } UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); RuleChainUpdateMsg ruleChainUpdateMsg = - ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); + ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRuleChainUpdateMsg(ruleChainUpdateMsg) @@ -65,7 +65,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { case UNASSIGNED_FROM_EDGE: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addRuleChainUpdateMsg(ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainDeleteMsg(ruleChainId)) + .addRuleChainUpdateMsg(ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainDeleteMsg(ruleChainId)) .build(); break; } @@ -80,7 +80,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { RuleChainMetaData ruleChainMetaData = ruleChainService.loadRuleChainMetaData(edgeEvent.getTenantId(), ruleChainId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - ruleChainMsgConstructorFactory.getRuleChainMsgConstructor(edgeVersion).constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); + ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); if (ruleChainMetadataUpdateMsg != null) { downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java index 0b7f3021f3..fa2517f7df 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java @@ -38,7 +38,7 @@ public class AdminSettingsEdgeProcessor extends BaseEdgeProcessor { return null; } AdminSettingsUpdateMsg adminSettingsUpdateMsg = - adminSettingsMsgConstructorFactory.getAdminSettingsMsgConstructor(edgeVersion).constructAdminSettingsUpdateMsg(adminSettings); + adminSettingsMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAdminSettingsUpdateMsg(adminSettings); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAdminSettingsUpdateMsg(adminSettingsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java index 1ef44a72ad..b421b1768c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java @@ -43,9 +43,9 @@ public class TenantEdgeProcessor extends BaseEdgeProcessor { Tenant tenant = tenantService.findTenantById(tenantId); if (tenant != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantUpdateMsg(msgType, tenant); + TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantUpdateMsg(msgType, tenant); TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(tenantId, tenant.getTenantProfileId()); - TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantUpdateMsg(tenantUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java index 4f264f7bb4..84b51b09b5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java @@ -42,7 +42,7 @@ public class TenantProfileEdgeProcessor extends BaseEdgeProcessor { if (tenantProfile != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); TenantProfileUpdateMsg tenantProfileUpdateMsg = - tenantMsgConstructorFactory.getTenantMsgConstructor(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantProfileUpdateMsg(tenantProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java index 3ee3fc109f..68ac558e39 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java @@ -45,21 +45,21 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserUpdatedMsg(msgType, user)) + .addUserUpdateMsg(userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserUpdatedMsg(msgType, user)) .build(); } break; case DELETED: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserDeleteMsg(userId)) + .addUserUpdateMsg(userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserDeleteMsg(userId)) .build(); break; case CREDENTIALS_UPDATED: UserCredentials userCredentialsByUserId = userService.findUserCredentialsByUserId(edgeEvent.getTenantId(), userId); if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) { UserCredentialsUpdateMsg userCredentialsUpdateMsg = - userMsgConstructorFactory.getUserMsgConstructor(edgeVersion).constructUserCredentialsUpdatedMsg(userCredentialsByUserId); + userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserCredentialsUpdatedMsg(userCredentialsByUserId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addUserCredentialsUpdateMsg(userCredentialsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java index e48387fc64..89ebf9513a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java @@ -46,7 +46,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { List widgets = widgetTypeService.findWidgetFqnsByWidgetsBundleId(edgeEvent.getTenantId(), widgetsBundleId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); + widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) @@ -55,7 +55,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetsBundleDeleteMsg(widgetsBundleId); + widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetsBundleDeleteMsg(widgetsBundleId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java index 8125235ae6..4e611c83f0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java @@ -43,7 +43,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { if (widgetTypeDetails != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); + widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) @@ -52,7 +52,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetMsgConstructorFactory.getWidgetMsgConstructor(edgeVersion).constructWidgetTypeDeleteMsg(widgetTypeId); + widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetTypeDeleteMsg(widgetTypeId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) From d83d1fe720cf12b0d8c00fc07cabadcc1987af12 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Fri, 24 Nov 2023 17:27:42 +0200 Subject: [PATCH 103/162] Improve factory implementation: add abstract factory and common interface to reduce code duplicate --- .../edge/rpc/constructor/MsgConstructor.java | 20 ++++++++ .../constructor/MsgConstructorFactory.java | 46 +++++++++++++++++++ .../alarm/AlarmMsgConstructor.java | 3 +- .../alarm/AlarmMsgConstructorFactory.java | 23 +--------- .../asset/AssetMsgConstructor.java | 3 +- .../asset/AssetMsgConstructorFactory.java | 23 +--------- .../customer/CustomerMsgConstructor.java | 3 +- .../CustomerMsgConstructorFactory.java | 23 +--------- .../dashboard/DashboardMsgConstructor.java | 3 +- .../DashboardMsgConstructorFactory.java | 23 +--------- .../device/DeviceMsgConstructor.java | 3 +- .../device/DeviceMsgConstructorFactory.java | 21 +-------- .../entityview/EntityViewMsgConstructor.java | 3 +- .../EntityViewMsgConstructorFactory.java | 23 +--------- .../ota/OtaPackageMsgConstructor.java | 3 +- .../ota/OtaPackageMsgConstructorFactory.java | 23 ++-------- .../queue/QueueMsgConstructor.java | 3 +- .../queue/QueueMsgConstructorFactory.java | 23 +--------- .../relation/RelationMsgConstructor.java | 3 +- .../RelationMsgConstructorFactory.java | 23 ++-------- .../resource/ResourceMsgConstructor.java | 3 +- .../ResourceMsgConstructorFactory.java | 23 +--------- .../rule/RuleChainMsgConstructor.java | 3 +- .../rule/RuleChainMsgConstructorFactory.java | 23 +--------- .../settings/AdminSettingsMsgConstructor.java | 3 +- .../AdminSettingsMsgConstructorFactory.java | 23 +--------- .../tenant/TenantMsgConstructor.java | 3 +- .../constructor/user/UserMsgConstructor.java | 3 +- .../user/UserMsgConstructorFactory.java | 23 +--------- .../widget/WidgetMsgConstructor.java | 3 +- .../widget/WidgetMsgConstructorFactory.java | 23 +--------- .../processor/alarm/BaseAlarmProcessor.java | 7 ++- .../processor/asset/AssetEdgeProcessor.java | 12 +++-- .../asset/AssetProfileEdgeProcessor.java | 9 ++-- .../customer/CustomerEdgeProcessor.java | 9 ++-- .../dashboard/DashboardEdgeProcessor.java | 9 ++-- .../processor/device/DeviceEdgeProcessor.java | 22 +++++---- .../device/DeviceProfileEdgeProcessor.java | 9 ++-- .../entityview/EntityViewEdgeProcessor.java | 9 ++-- .../ota/OtaPackageEdgeProcessor.java | 9 ++-- .../processor/queue/QueueEdgeProcessor.java | 9 ++-- .../relation/RelationEdgeProcessor.java | 4 +- .../resource/ResourceEdgeProcessor.java | 9 ++-- .../rule/RuleChainEdgeProcessor.java | 14 ++++-- .../settings/AdminSettingsEdgeProcessor.java | 5 +- .../processor/tenant/TenantEdgeProcessor.java | 9 +++- .../tenant/TenantProfileEdgeProcessor.java | 6 ++- .../rpc/processor/user/UserEdgeProcessor.java | 7 +-- .../widget/WidgetBundleEdgeProcessor.java | 5 +- .../widget/WidgetTypeEdgeProcessor.java | 5 +- 50 files changed, 230 insertions(+), 369 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructor.java create mode 100644 application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructorFactory.java diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructor.java new file mode 100644 index 0000000000..071f2bc25d --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructor.java @@ -0,0 +1,20 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor; + +public interface MsgConstructor { + +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructorFactory.java new file mode 100644 index 0000000000..93f08c27ca --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/MsgConstructorFactory.java @@ -0,0 +1,46 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.edge.rpc.constructor; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Component +@TbCoreComponent +public abstract class MsgConstructorFactory { + + @Autowired + protected T v1Constructor; + + @Autowired + protected U v2Constructor; + + public MsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { + switch (edgeVersion) { + case V_3_3_0: + case V_3_3_3: + case V_3_4_0: + case V_3_6_0: + case V_3_6_1: + return v1Constructor; + case V_3_6_2: + default: + return v2Constructor; + } + } +} diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java index 7251c067d7..fd3b4ef95d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructor.java @@ -18,8 +18,9 @@ package org.thingsboard.server.service.edge.rpc.constructor.alarm; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface AlarmMsgConstructor { +public interface AlarmMsgConstructor extends MsgConstructor { AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java index 4a49f6cf6b..6d7e7ebd5c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/alarm/AlarmMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.alarm; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class AlarmMsgConstructorFactory { +public class AlarmMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected AlarmMsgConstructorV1 alarmMsgConstructorV1; - - @Autowired - protected AlarmMsgConstructorV2 alarmMsgConstructorV2; - - public AlarmMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return alarmMsgConstructorV1; - default: - return alarmMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java index 0223351f54..338375ac37 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructor.java @@ -22,8 +22,9 @@ import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface AssetMsgConstructor { +public interface AssetMsgConstructor extends MsgConstructor { AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java index d4fa79c6c5..880beb446c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/asset/AssetMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.asset; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class AssetMsgConstructorFactory { +public class AssetMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected AssetMsgConstructorV1 assetMsgConstructorV1; - - @Autowired - protected AssetMsgConstructorV2 assetMsgConstructorV2; - - public AssetMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return assetMsgConstructorV1; - default: - return assetMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java index fd9139de12..7351822a3f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface CustomerMsgConstructor { +public interface CustomerMsgConstructor extends MsgConstructor { CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java index ba8e643445..3e84fba57f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/customer/CustomerMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.customer; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class CustomerMsgConstructorFactory { +public class CustomerMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected CustomerMsgConstructorV1 customerMsgConstructorV1; - - @Autowired - protected CustomerMsgConstructorV2 customerMsgConstructorV2; - - public CustomerMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return customerMsgConstructorV1; - default: - return customerMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java index e2ca09b1d3..96504e5036 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface DashboardMsgConstructor { +public interface DashboardMsgConstructor extends MsgConstructor { DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java index 5e566297fd..384327f5bc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/dashboard/DashboardMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.dashboard; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class DashboardMsgConstructorFactory { +public class DashboardMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected DashboardMsgConstructorV1 dashboardMsgConstructorV1; - - @Autowired - protected DashboardMsgConstructorV2 dashboardMsgConstructorV2; - - public DashboardMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return dashboardMsgConstructorV1; - default: - return dashboardMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java index 3bd40a1fbb..4636dfd5ae 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructor.java @@ -26,10 +26,11 @@ import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; import java.util.UUID; -public interface DeviceMsgConstructor { +public interface DeviceMsgConstructor extends MsgConstructor { DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java index 44e072cb11..b384259e14 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/device/DeviceMsgConstructorFactory.java @@ -19,27 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class DeviceMsgConstructorFactory { +public class DeviceMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected DeviceMsgConstructorV1 deviceMsgConstructorV1; - - @Autowired - protected DeviceMsgConstructorV2 deviceMsgConstructorV2; - - public DeviceMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return deviceMsgConstructorV1; - default: - return deviceMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java index 60a404669c..7f14f62c68 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface EntityViewMsgConstructor { +public interface EntityViewMsgConstructor extends MsgConstructor { EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java index 57b19d6a14..849f7f093a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/entityview/EntityViewMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.entityview; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class EntityViewMsgConstructorFactory { +public class EntityViewMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected EntityViewMsgConstructorV1 entityViewMsgConstructorV1; - - @Autowired - protected EntityViewMsgConstructorV2 entityViewMsgConstructorV2; - - public EntityViewMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return entityViewMsgConstructorV1; - default: - return entityViewMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java index 17b6ea8338..500500a7fc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface OtaPackageMsgConstructor { +public interface OtaPackageMsgConstructor extends MsgConstructor { OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java index 7e2b9cea7e..fd775d77ff 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ota/OtaPackageMsgConstructorFactory.java @@ -19,27 +19,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV2; @Component @TbCoreComponent -public class OtaPackageMsgConstructorFactory { +public class OtaPackageMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected OtaPackageMsgConstructorV1 otaPackageMsgConstructorV1; - - @Autowired - protected OtaPackageMsgConstructorV2 otaPackageMsgConstructorV2; - - public OtaPackageMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return otaPackageMsgConstructorV1; - default: - return otaPackageMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java index a7d0776136..847f19419e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface QueueMsgConstructor { +public interface QueueMsgConstructor extends MsgConstructor { QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java index e6502aaff7..0f9a4b9e2e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/queue/QueueMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.queue; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class QueueMsgConstructorFactory { +public class QueueMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected QueueMsgConstructorV1 queueMsgConstructorV1; - - @Autowired - protected QueueMsgConstructorV2 queueMsgConstructorV2; - - public QueueMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return queueMsgConstructorV1; - default: - return queueMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java index 10d0a71830..f7fac6ce71 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructor.java @@ -18,8 +18,9 @@ package org.thingsboard.server.service.edge.rpc.constructor.relation; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface RelationMsgConstructor { +public interface RelationMsgConstructor extends MsgConstructor { RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java index 52015f38e7..4ec02c5b49 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/relation/RelationMsgConstructorFactory.java @@ -19,27 +19,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV1; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructorV2; @Component @TbCoreComponent -public class RelationMsgConstructorFactory { +public class RelationMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected RelationMsgConstructorV1 relationMsgConstructorV1; - - @Autowired - protected RelationMsgConstructorV2 relationMsgConstructorV2; - - public RelationMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return relationMsgConstructorV1; - default: - return relationMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java index b631e737e2..cfeedced80 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructor.java @@ -19,8 +19,9 @@ import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface ResourceMsgConstructor { +public interface ResourceMsgConstructor extends MsgConstructor { ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java index 15b571a098..2c67d8731e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/resource/ResourceMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.resource; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class ResourceMsgConstructorFactory { +public class ResourceMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected ResourceMsgConstructorV1 resourceMsgConstructorV1; - - @Autowired - protected ResourceMsgConstructorV2 resourceMsgConstructorV2; - - public ResourceMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return resourceMsgConstructorV1; - default: - return resourceMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java index c1665ef48d..8ea2ff9a63 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructor.java @@ -23,8 +23,9 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface RuleChainMsgConstructor { +public interface RuleChainMsgConstructor extends MsgConstructor { RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java index 0c169db0f4..2c1a839ab9 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.rule; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class RuleChainMsgConstructorFactory { +public class RuleChainMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected RuleChainMsgConstructorV1 ruleChainMsgConstructorV1; - - @Autowired - protected RuleChainMsgConstructorV2 ruleChainMsgConstructorV2; - - public RuleChainMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return ruleChainMsgConstructorV1; - default: - return ruleChainMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java index 4e5aa7bf54..da4f964218 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructor.java @@ -17,8 +17,9 @@ package org.thingsboard.server.service.edge.rpc.constructor.settings; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface AdminSettingsMsgConstructor { +public interface AdminSettingsMsgConstructor extends MsgConstructor { AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java index 1dd9be719d..ecf6131e52 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/settings/AdminSettingsMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.settings; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class AdminSettingsMsgConstructorFactory { +public class AdminSettingsMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected AdminSettingsMsgConstructorV1 adminSettingsMsgConstructorV1; - - @Autowired - protected AdminSettingsMsgConstructorV2 adminSettingsMsgConstructorV2; - - public AdminSettingsMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return adminSettingsMsgConstructorV1; - default: - return adminSettingsMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java index 612703b3c6..3de654fda6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/tenant/TenantMsgConstructor.java @@ -21,8 +21,9 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface TenantMsgConstructor { +public interface TenantMsgConstructor extends MsgConstructor { TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java index e6e2c9572b..3184f8c751 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructor.java @@ -21,8 +21,9 @@ import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; -public interface UserMsgConstructor { +public interface UserMsgConstructor extends MsgConstructor { UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java index 2e7f49c0fa..bf1e4197c0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/user/UserMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.user; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class UserMsgConstructorFactory { +public class UserMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected UserMsgConstructorV1 userMsgConstructorV1; - - @Autowired - protected UserMsgConstructorV2 userMsgConstructorV2; - - public UserMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return userMsgConstructorV1; - default: - return userMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java index 5d2366eef5..544ba39b13 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructor.java @@ -23,10 +23,11 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructor; import java.util.List; -public interface WidgetMsgConstructor { +public interface WidgetMsgConstructor extends MsgConstructor { WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java index b98494f36b..3a963f7041 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/widget/WidgetMsgConstructorFactory.java @@ -15,31 +15,12 @@ */ package org.thingsboard.server.service.edge.rpc.constructor.widget; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.MsgConstructorFactory; @Component @TbCoreComponent -public class WidgetMsgConstructorFactory { +public class WidgetMsgConstructorFactory extends MsgConstructorFactory { - @Autowired - protected WidgetMsgConstructorV1 widgetMsgConstructorV1; - - @Autowired - protected WidgetMsgConstructorV2 widgetMsgConstructorV2; - - public WidgetMsgConstructor getMsgConstructorByEdgeVersion(EdgeVersion edgeVersion) { - switch (edgeVersion) { - case V_3_3_0: - case V_3_3_3: - case V_3_4_0: - case V_3_6_0: - case V_3_6_1: - return widgetMsgConstructorV1; - default: - return widgetMsgConstructorV2; - } - } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index 41c05a80c2..99b8d2c12a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -39,6 +39,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.constructor.alarm.AlarmMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @@ -132,13 +133,15 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ALARM_CLEAR: Alarm alarm = alarmService.findAlarmById(tenantId, alarmId); if (alarm != null) { - return alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); + return ((AlarmMsgConstructor) alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); } break; case DELETED: Alarm deletedAlarm = JacksonUtil.convertValue(body, Alarm.class); if (deletedAlarm != null) { - return alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); + return ((AlarmMsgConstructor) alarmMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); } } return null; diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index fb1362a9da..e760a4d73a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -41,6 +41,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -120,23 +121,24 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { Asset asset = assetService.findAssetById(edgeEvent.getTenantId(), assetId); if (asset != null && !BaseAssetService.TB_SERVICE_QUEUE.equals(asset.getType())) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - AssetUpdateMsg assetUpdateMsg = - assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetUpdatedMsg(msgType, asset); + AssetUpdateMsg assetUpdateMsg = ((AssetMsgConstructor) + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructAssetUpdatedMsg(msgType, asset); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetUpdateMsg(assetUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { AssetProfile assetProfile = assetProfileService.findAssetProfileById(edgeEvent.getTenantId(), asset.getAssetProfileId()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); - builder.addAssetProfileUpdateMsg(assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileUpdatedMsg(msgType, assetProfile)); + builder.addAssetProfileUpdateMsg(((AssetMsgConstructor) assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructAssetProfileUpdatedMsg(msgType, assetProfile)); } downlinkMsg = builder.build(); } break; case DELETED: case UNASSIGNED_FROM_EDGE: - AssetUpdateMsg assetUpdateMsg = - assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetDeleteMsg(assetId); + AssetUpdateMsg assetUpdateMsg = ((AssetMsgConstructor) + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructAssetDeleteMsg(assetId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetUpdateMsg(assetUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index 76c43b0c01..a18030992d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -40,6 +40,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.asset.AssetMsgConstructor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -107,8 +108,8 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { if (assetProfile != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); - AssetProfileUpdateMsg assetProfileUpdateMsg = - assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileUpdatedMsg(msgType, assetProfile); + AssetProfileUpdateMsg assetProfileUpdateMsg = ((AssetMsgConstructor) + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructAssetProfileUpdatedMsg(msgType, assetProfile); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetProfileUpdateMsg(assetProfileUpdateMsg) @@ -116,8 +117,8 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } break; case DELETED: - AssetProfileUpdateMsg assetProfileUpdateMsg = - assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAssetProfileDeleteMsg(assetProfileId); + AssetProfileUpdateMsg assetProfileUpdateMsg = ((AssetMsgConstructor) + assetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructAssetProfileDeleteMsg(assetProfileId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetProfileUpdateMsg(assetProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java index 2f6a979653..9b9d99fcc3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java @@ -37,6 +37,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.customer.CustomerMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; import java.util.ArrayList; @@ -57,8 +58,8 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { Customer customer = customerService.findCustomerById(edgeEvent.getTenantId(), customerId); if (customer != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructCustomerUpdatedMsg(msgType, customer); + CustomerUpdateMsg customerUpdateMsg = ((CustomerMsgConstructor) + customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructCustomerUpdatedMsg(msgType, customer); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) @@ -66,8 +67,8 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { } break; case DELETED: - CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructCustomerDeleteMsg(customerId); + CustomerUpdateMsg customerUpdateMsg = ((CustomerMsgConstructor) + customerMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructCustomerDeleteMsg(customerId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index c4679b40b0..3104e1ac35 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -35,6 +35,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.dashboard.DashboardMsgConstructor; import java.util.Set; import java.util.UUID; @@ -110,8 +111,8 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { Dashboard dashboard = dashboardService.findDashboardById(edgeEvent.getTenantId(), dashboardId); if (dashboard != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDashboardUpdatedMsg(msgType, dashboard); + DashboardUpdateMsg dashboardUpdateMsg = ((DashboardMsgConstructor) + dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDashboardUpdatedMsg(msgType, dashboard); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) @@ -120,8 +121,8 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { break; case DELETED: case UNASSIGNED_FROM_EDGE: - DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDashboardDeleteMsg(dashboardId); + DashboardUpdateMsg dashboardUpdateMsg = ((DashboardMsgConstructor) + dashboardMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDashboardDeleteMsg(dashboardId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 2677004678..b65ef58e1d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -55,6 +55,7 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueMsgMetadata; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -227,23 +228,26 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { Device device = deviceService.findDeviceById(edgeEvent.getTenantId(), deviceId); if (device != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - DeviceUpdateMsg deviceUpdateMsg = - deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceUpdatedMsg(msgType, device); + DeviceUpdateMsg deviceUpdateMsg = ((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructDeviceUpdatedMsg(msgType, device); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceUpdateMsg(deviceUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(edgeEvent.getTenantId(), device.getDeviceProfileId()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); - builder.addDeviceProfileUpdateMsg(deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileUpdatedMsg(msgType, deviceProfile)); + builder.addDeviceProfileUpdateMsg(((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructDeviceProfileUpdatedMsg(msgType, deviceProfile)); } downlinkMsg = builder.build(); } break; case DELETED: case UNASSIGNED_FROM_EDGE: - DeviceUpdateMsg deviceUpdateMsg = - deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceDeleteMsg(deviceId); + DeviceUpdateMsg deviceUpdateMsg = ((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDeviceDeleteMsg(deviceId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceUpdateMsg(deviceUpdateMsg) @@ -252,8 +256,8 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { case CREDENTIALS_UPDATED: DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(edgeEvent.getTenantId(), deviceId); if (deviceCredentials != null) { - DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = - deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceCredentialsUpdatedMsg(deviceCredentials); + DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = ((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDeviceCredentialsUpdatedMsg(deviceCredentials); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg) @@ -263,7 +267,9 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { case RPC_CALL: return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addDeviceRpcCallMsg(deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) + .addDeviceRpcCallMsg(((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) .build(); case CREDENTIALS_REQUEST: return convertCredentialsRequestEventToDownlink(edgeEvent); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 0b8fa1025a..c4105f9668 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -40,6 +40,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.device.DeviceMsgConstructor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -107,8 +108,8 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { if (deviceProfile != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); - DeviceProfileUpdateMsg deviceProfileUpdateMsg = - deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileUpdatedMsg(msgType, deviceProfile); + DeviceProfileUpdateMsg deviceProfileUpdateMsg = ((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDeviceProfileUpdatedMsg(msgType, deviceProfile); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceProfileUpdateMsg(deviceProfileUpdateMsg) @@ -116,8 +117,8 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } break; case DELETED: - DeviceProfileUpdateMsg deviceProfileUpdateMsg = - deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructDeviceProfileDeleteMsg(deviceProfileId); + DeviceProfileUpdateMsg deviceProfileUpdateMsg = ((DeviceMsgConstructor) + deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDeviceProfileDeleteMsg(deviceProfileId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceProfileUpdateMsg(deviceProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 0f1727ab10..863c1112e2 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -38,6 +38,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.entityview.EntityViewMsgConstructor; import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -117,8 +118,8 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { EntityView entityView = entityViewService.findEntityViewById(edgeEvent.getTenantId(), entityViewId); if (entityView != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructEntityViewUpdatedMsg(msgType, entityView); + EntityViewUpdateMsg entityViewUpdateMsg = ((EntityViewMsgConstructor) + entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructEntityViewUpdatedMsg(msgType, entityView); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) @@ -127,8 +128,8 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { break; case DELETED: case UNASSIGNED_FROM_EDGE: - EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructEntityViewDeleteMsg(entityViewId); + EntityViewUpdateMsg entityViewUpdateMsg = ((EntityViewMsgConstructor) + entityViewMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructEntityViewDeleteMsg(entityViewId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java index 1b06f323d0..247cfe5c15 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java @@ -26,6 +26,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.ota.OtaPackageMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Component @@ -42,8 +43,8 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { OtaPackage otaPackage = otaPackageService.findOtaPackageById(edgeEvent.getTenantId(), otaPackageId); if (otaPackage != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructOtaPackageUpdatedMsg(msgType, otaPackage); + OtaPackageUpdateMsg otaPackageUpdateMsg = ((OtaPackageMsgConstructor) + otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructOtaPackageUpdatedMsg(msgType, otaPackage); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) @@ -51,8 +52,8 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { } break; case DELETED: - OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructOtaPackageDeleteMsg(otaPackageId); + OtaPackageUpdateMsg otaPackageUpdateMsg = ((OtaPackageMsgConstructor) + otaPackageMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructOtaPackageDeleteMsg(otaPackageId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java index fa35f35151..cd595c1699 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java @@ -26,6 +26,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.queue.QueueMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Slf4j @@ -42,8 +43,8 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { Queue queue = queueService.findQueueById(edgeEvent.getTenantId(), queueId); if (queue != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - QueueUpdateMsg queueUpdateMsg = - queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructQueueUpdatedMsg(msgType, queue); + QueueUpdateMsg queueUpdateMsg = ((QueueMsgConstructor) + queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructQueueUpdatedMsg(msgType, queue); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueUpdateMsg) @@ -51,8 +52,8 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { } break; case DELETED: - QueueUpdateMsg queueDeleteMsg = - queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructQueueDeleteMsg(queueId); + QueueUpdateMsg queueDeleteMsg = ((QueueMsgConstructor) + queueMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructQueueDeleteMsg(queueId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueDeleteMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 530ee47982..256d84a1e3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -35,6 +35,7 @@ import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.relation.RelationMsgConstructor; import java.util.ArrayList; import java.util.HashSet; @@ -59,7 +60,8 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { public DownlinkMsg convertRelationEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { EntityRelation entityRelation = JacksonUtil.convertValue(edgeEvent.getBody(), EntityRelation.class); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RelationUpdateMsg relationUpdateMsg = relationMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRelationUpdatedMsg(msgType, entityRelation); + RelationUpdateMsg relationUpdateMsg = ((RelationMsgConstructor) relationMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructRelationUpdatedMsg(msgType, entityRelation); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRelationUpdateMsg(relationUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index fb811d2112..fd3a9c51f4 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -33,6 +33,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.resource.ResourceMsgConstructor; import java.util.UUID; @@ -80,8 +81,8 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { TbResource tbResource = resourceService.findResourceById(edgeEvent.getTenantId(), tbResourceId); if (tbResource != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructResourceUpdatedMsg(msgType, tbResource); + ResourceUpdateMsg resourceUpdateMsg = ((ResourceMsgConstructor) + resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructResourceUpdatedMsg(msgType, tbResource); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) @@ -89,8 +90,8 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { } break; case DELETED: - ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructResourceDeleteMsg(tbResourceId); + ResourceUpdateMsg resourceUpdateMsg = ((ResourceMsgConstructor) + resourceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructResourceDeleteMsg(tbResourceId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java index b71abd97e0..c17fb8030c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java @@ -28,6 +28,7 @@ import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; import static org.thingsboard.server.service.edge.DefaultEdgeNotificationService.EDGE_IS_ROOT_BODY_KEY; @@ -53,8 +54,9 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { } catch (Exception ignored) {} } UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RuleChainUpdateMsg ruleChainUpdateMsg = - ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); + RuleChainUpdateMsg ruleChainUpdateMsg = ((RuleChainMsgConstructor) + ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRuleChainUpdateMsg(ruleChainUpdateMsg) @@ -65,7 +67,8 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { case UNASSIGNED_FROM_EDGE: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addRuleChainUpdateMsg(ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainDeleteMsg(ruleChainId)) + .addRuleChainUpdateMsg(((RuleChainMsgConstructor) ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructRuleChainDeleteMsg(ruleChainId)) .build(); break; } @@ -79,8 +82,9 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { if (ruleChain != null) { RuleChainMetaData ruleChainMetaData = ruleChainService.loadRuleChainMetaData(edgeEvent.getTenantId(), ruleChainId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = - ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); + RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = ((RuleChainMsgConstructor) + ruleChainMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructRuleChainMetadataUpdatedMsg(edgeEvent.getTenantId(), msgType, ruleChainMetaData, edgeVersion); if (ruleChainMetadataUpdateMsg != null) { downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java index fa2517f7df..6c201a261c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java @@ -25,6 +25,7 @@ import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.settings.AdminSettingsMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Component @@ -37,8 +38,8 @@ public class AdminSettingsEdgeProcessor extends BaseEdgeProcessor { if (adminSettings == null) { return null; } - AdminSettingsUpdateMsg adminSettingsUpdateMsg = - adminSettingsMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructAdminSettingsUpdateMsg(adminSettings); + AdminSettingsUpdateMsg adminSettingsUpdateMsg = ((AdminSettingsMsgConstructor) + adminSettingsMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructAdminSettingsUpdateMsg(adminSettings); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAdminSettingsUpdateMsg(adminSettingsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java index b421b1768c..92b887bf33 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java @@ -29,6 +29,7 @@ import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Component @@ -43,9 +44,13 @@ public class TenantEdgeProcessor extends BaseEdgeProcessor { Tenant tenant = tenantService.findTenantById(tenantId); if (tenant != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantUpdateMsg(msgType, tenant); + TenantUpdateMsg tenantUpdateMsg = ((TenantMsgConstructor) + tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructTenantUpdateMsg(msgType, tenant); TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(tenantId, tenant.getTenantProfileId()); - TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + TenantProfileUpdateMsg tenantProfileUpdateMsg = ((TenantMsgConstructor) + tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantUpdateMsg(tenantUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java index 84b51b09b5..57c29e8632 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantProfileEdgeProcessor.java @@ -27,6 +27,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.tenant.TenantMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Component @@ -41,8 +42,9 @@ public class TenantProfileEdgeProcessor extends BaseEdgeProcessor { TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(edgeEvent.getTenantId(), tenantProfileId); if (tenantProfile != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - TenantProfileUpdateMsg tenantProfileUpdateMsg = - tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); + TenantProfileUpdateMsg tenantProfileUpdateMsg = ((TenantMsgConstructor) + tenantMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) + .constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addTenantProfileUpdateMsg(tenantProfileUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java index 68ac558e39..c07cbc9414 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java @@ -27,6 +27,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.user.UserMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Component @@ -45,21 +46,21 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserUpdatedMsg(msgType, user)) + .addUserUpdateMsg(((UserMsgConstructor) userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructUserUpdatedMsg(msgType, user)) .build(); } break; case DELETED: downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserDeleteMsg(userId)) + .addUserUpdateMsg(((UserMsgConstructor) userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructUserDeleteMsg(userId)) .build(); break; case CREDENTIALS_UPDATED: UserCredentials userCredentialsByUserId = userService.findUserCredentialsByUserId(edgeEvent.getTenantId(), userId); if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) { UserCredentialsUpdateMsg userCredentialsUpdateMsg = - userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructUserCredentialsUpdatedMsg(userCredentialsByUserId); + ((UserMsgConstructor) userMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructUserCredentialsUpdatedMsg(userCredentialsByUserId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addUserCredentialsUpdateMsg(userCredentialsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java index 89ebf9513a..28cd3167aa 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java @@ -26,6 +26,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; import java.util.List; @@ -46,7 +47,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { List widgets = widgetTypeService.findWidgetFqnsByWidgetsBundleId(edgeEvent.getTenantId(), widgetsBundleId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); + ((WidgetMsgConstructor) widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) @@ -55,7 +56,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetsBundleDeleteMsg(widgetsBundleId); + ((WidgetMsgConstructor) widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructWidgetsBundleDeleteMsg(widgetsBundleId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java index 4e611c83f0..40556b5215 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetTypeEdgeProcessor.java @@ -26,6 +26,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.constructor.widget.WidgetMsgConstructor; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Slf4j @@ -43,7 +44,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { if (widgetTypeDetails != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); + ((WidgetMsgConstructor) widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) @@ -52,7 +53,7 @@ public class WidgetTypeEdgeProcessor extends BaseEdgeProcessor { break; case DELETED: WidgetTypeUpdateMsg widgetTypeUpdateMsg = - widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion).constructWidgetTypeDeleteMsg(widgetTypeId); + ((WidgetMsgConstructor) widgetMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructWidgetTypeDeleteMsg(widgetTypeId); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetTypeUpdateMsg(widgetTypeUpdateMsg) From bda319c3e86e1f1f48aae906021a8d786dbf54ec Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 24 Nov 2023 18:47:46 +0200 Subject: [PATCH 104/162] UI: Implement gallery image input component. --- ui-ngx/src/app/core/http/image.service.ts | 8 +- .../home/components/home-components.module.ts | 7 +- .../image/gallery-image-input.component.html | 93 ++++++++ .../image/gallery-image-input.component.scss | 180 ++++++++++++++ .../image/gallery-image-input.component.ts | 224 ++++++++++++++++++ .../image/image-gallery.component.html | 27 ++- .../image/image-gallery.component.scss | 33 +++ .../image/image-gallery.component.ts | 60 +++-- .../image/images-in-use-dialog.component.html | 4 +- .../image/images-in-use-dialog.component.ts | 14 +- .../widget/widgets-bundle.component.html | 8 +- .../shared/components/popover.component.ts | 4 +- .../src/app/shared/models/resource.models.ts | 12 +- ui-ngx/src/app/shared/pipe/image.pipe.ts | 16 +- .../assets/locale/locale.constant-en_US.json | 10 +- 15 files changed, 654 insertions(+), 46 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.html create mode 100644 ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts diff --git a/ui-ngx/src/app/core/http/image.service.ts b/ui-ngx/src/app/core/http/image.service.ts index abce29d9e3..4366d6edda 100644 --- a/ui-ngx/src/app/core/http/image.service.ts +++ b/ui-ngx/src/app/core/http/image.service.ts @@ -80,7 +80,7 @@ export class ImageService { defaultHttpOptionsFromConfig(config)); } - public getImageDataUrl(imageUrl: string, preview = false, asString = false): Observable { + public getImageDataUrl(imageUrl: string, preview = false, asString = false, emptyUrl = NO_IMAGE_DATA_URI): Observable { const parts = imageUrl.split('/'); const key = parts[parts.length - 1]; parts[parts.length - 1] = encodeURIComponent(key); @@ -92,13 +92,13 @@ export class ImageService { switchMap(val => blobToBase64(val).pipe( map((dataUrl) => asString ? dataUrl : this.sanitizer.bypassSecurityTrustUrl(dataUrl)) )), - catchError(() => of(asString ? NO_IMAGE_DATA_URI : this.sanitizer.bypassSecurityTrustUrl(NO_IMAGE_DATA_URI))) + catchError(() => of(asString ? emptyUrl : this.sanitizer.bypassSecurityTrustUrl(emptyUrl))) ); } - public resolveImageUrl(imageUrl: string, preview = false, asString = false): Observable { + public resolveImageUrl(imageUrl: string, preview = false, asString = false, emptyUrl = NO_IMAGE_DATA_URI): Observable { if (isImageResourceUrl(imageUrl)) { - return this.getImageDataUrl(imageUrl, preview, asString); + return this.getImageDataUrl(imageUrl, preview, asString, emptyUrl); } else { return of(asString ? imageUrl : this.sanitizer.bypassSecurityTrustUrl(imageUrl)); } diff --git a/ui-ngx/src/app/modules/home/components/home-components.module.ts b/ui-ngx/src/app/modules/home/components/home-components.module.ts index 75f124f2b9..14fcb6bddc 100644 --- a/ui-ngx/src/app/modules/home/components/home-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/home-components.module.ts @@ -187,6 +187,7 @@ import { UploadImageDialogComponent } from '@home/components/image/upload-image- import { ImageDialogComponent } from '@home/components/image/image-dialog.component'; import { ImagesInUseDialogComponent } from '@home/components/image/images-in-use-dialog.component'; import { ImageReferencesComponent } from '@home/components/image/image-references.component'; +import { GalleryImageInputComponent } from '@home/components/image/gallery-image-input.component'; @NgModule({ declarations: @@ -337,7 +338,8 @@ import { ImageReferencesComponent } from '@home/components/image/image-reference UploadImageDialogComponent, ImageDialogComponent, ImageReferencesComponent, - ImagesInUseDialogComponent + ImagesInUseDialogComponent, + GalleryImageInputComponent ], imports: [ CommonModule, @@ -481,7 +483,8 @@ import { ImageReferencesComponent } from '@home/components/image/image-reference UploadImageDialogComponent, ImageDialogComponent, ImageReferencesComponent, - ImagesInUseDialogComponent + ImagesInUseDialogComponent, + GalleryImageInputComponent ], providers: [ WidgetComponentService, diff --git a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.html b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.html new file mode 100644 index 0000000000..ce81ce4a1b --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.html @@ -0,0 +1,93 @@ + +
+ +
+
+ +
+
+
+
+
+ +
+ {{ imageResource.title }} +
+
+
{{ imageResource.descriptor.width }}x{{ imageResource.descriptor.height }}
+ +
{{ imageResource.descriptor.size | fileSize }}
+
+
+
+
+ + +
+ +
+
+ + +
+
+
+ + +
{{ (disabled ? 'image.no-image' : 'image.no-image-selected') | translate }}
+
+ + + diff --git a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss new file mode 100644 index 0000000000..6b64516816 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss @@ -0,0 +1,180 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +$containerHeight: 96px !default; + +:host { + .tb-container { + margin-top: 0; + padding: 0 0 16px; + display: flex; + flex-direction: column; + gap: 8px; + label.tb-title { + display: block; + padding-bottom: 0; + } + } + + .tb-image-select-container { + width: 100%; + height: $containerHeight; + border-radius: 4px; + border: 1px solid rgba(0, 0, 0, 0.12); + display: flex; + align-items: center; + &.disabled { + width: $containerHeight; + .tb-image-container { + width: $containerHeight - 2px; + border-right: none; + } + } + } + + .tb-image-container { + width: $containerHeight - 1px; + height: $containerHeight - 2px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 4px; + border-right: 1px solid rgba(0, 0, 0, 0.12); + background: #fff; + overflow: hidden; + } + + .tb-image-preview { + width: auto; + max-width: $containerHeight - 2px; + height: auto; + max-height: $containerHeight - 2px; + } + + .tb-no-image { + text-align: center; + color: rgba(0, 0, 0, 0.38); + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 16px; + letter-spacing: 0.4px; + } + + .tb-image-info-container { + display: flex; + flex: 1; + align-self: stretch; + padding: 0 8px; + justify-content: flex-end; + align-items: center; + gap: 4px; + .tb-base64-image-container, .tb-resource-image-container, .tb-external-image-container { + display: flex; + flex: 1; + align-self: stretch; + } + .tb-resource-image-container { + padding: 8px; + justify-content: center; + align-items: flex-start; + flex-direction: column; + gap: 4px; + .tb-resource-image-name { + color: rgba(0, 0, 0, 0.54); + font-size: 12px; + font-style: normal; + font-weight: 500; + line-height: 16px; + letter-spacing: 0.25px; + } + .tb-resource-image-details { + display: flex; + align-items: center; + gap: 8px; + color: rgba(0, 0, 0, 0.38); + font-size: 11px; + font-style: normal; + font-weight: 400; + line-height: 16px; + letter-spacing: 0.017px; + .mat-divider.mat-divider-vertical { + height: 16px; + } + } + &.loading { + align-items: center; + } + } + + .tb-external-image-container { + padding: 16px 8px 0 16px; + flex-direction: column; + align-items: flex-start; + gap: 4px; + .tb-external-link-label { + color: rgba(0, 0, 0, 0.54); + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 16px; + letter-spacing: 0.4px; + } + .tb-external-link-input-container { + display: flex; + justify-content: flex-end; + align-items: center; + gap: 4px; + align-self: stretch; + .tb-inline-field { + width: 100%; + } + } + } + + .tb-image-clear-btn { + color: rgba(0,0,0,0.38); + } + } + + .tb-image-select-buttons-container { + display: flex; + flex: 1; + align-self: stretch; + padding: 8px; + gap: 8px; + justify-content: center; + align-items: flex-start; + .tb-image-select-button { + width: 100%; + height: 100%; + align-self: stretch; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 4px; + padding: 16px; + line-height: normal; + font-size: 12px; + .mat-icon { + width: 24px; + height: 24px; + font-size: 24px; + margin: 0; + } + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts new file mode 100644 index 0000000000..527fe28d12 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts @@ -0,0 +1,224 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + ChangeDetectorRef, + Component, + forwardRef, + Input, + OnDestroy, + OnInit, + Renderer2, + ViewContainerRef +} from '@angular/core'; +import { PageComponent } from '@shared/components/page.component'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, } from '@angular/forms'; +import { coerceBoolean } from '@shared/decorators/coercion'; +import { + extractParamsFromImageResourceUrl, + ImageResourceInfo, + isBase64DataImageUrl, + isImageResourceUrl +} from '@shared/models/resource.models'; +import { ImageService } from '@core/http/image.service'; +import { MatButton } from '@angular/material/button'; +import { TbPopoverService } from '@shared/components/popover.service'; +import { ImageGalleryComponent } from '@home/components/image/image-gallery.component'; + +enum ImageLinkType { + none = 'none', + base64 = 'base64', + external = 'external', + resource = 'resource' +} + +@Component({ + selector: 'tb-gallery-image-input', + templateUrl: './gallery-image-input.component.html', + styleUrls: ['./gallery-image-input.component.scss'], + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => GalleryImageInputComponent), + multi: true + } + ] +}) +export class GalleryImageInputComponent extends PageComponent implements OnInit, OnDestroy, ControlValueAccessor { + + @Input() + label: string; + + @Input() + @coerceBoolean() + required = false; + + @Input() + disabled: boolean; + + imageUrl: string; + + imageResource: ImageResourceInfo; + + loadingImageResource = false; + + ImageLinkType = ImageLinkType; + + linkType: ImageLinkType = ImageLinkType.none; + + externalLinkControl = new FormControl(null); + + private propagateChange = null; + + constructor(protected store: Store, + private imageService: ImageService, + private cd: ChangeDetectorRef, + private renderer: Renderer2, + private viewContainerRef: ViewContainerRef, + private popoverService: TbPopoverService) { + super(store); + } + + ngOnInit() { + this.externalLinkControl.valueChanges.subscribe((value) => { + if (this.linkType === ImageLinkType.external) { + this.imageUrl = value; + this.updateModel(); + } + }); + } + + ngOnDestroy() { + } + + registerOnChange(fn: any): void { + this.propagateChange = fn; + } + + registerOnTouched(fn: any): void { + } + + setDisabledState(isDisabled: boolean): void { + this.disabled = isDisabled; + if (this.disabled) { + this.detectLinkType(); + this.externalLinkControl.disable({emitEvent: false}); + } else { + this.externalLinkControl.enable({emitEvent: false}); + } + } + + writeValue(value: string): void { + if (this.imageUrl !== value) { + this.reset(); + this.imageUrl = value; + this.detectLinkType(); + if (this.linkType === ImageLinkType.resource) { + const params = extractParamsFromImageResourceUrl(value); + this.loadingImageResource = true; + this.imageService.getImageInfo(params.type, params.key, {ignoreLoading: true, ignoreErrors: true}).subscribe( + { + next: (res) => { + this.imageResource = res; + this.loadingImageResource = false; + this.cd.markForCheck(); + }, + error: () => { + this.reset(); + this.loadingImageResource = false; + this.cd.markForCheck(); + } + } + ); + } else if (this.linkType === ImageLinkType.base64) { + this.cd.markForCheck(); + } else if (this.linkType === ImageLinkType.external) { + this.externalLinkControl.setValue(this.imageUrl, {emitEvent: false}); + this.cd.markForCheck(); + } + } + } + + private detectLinkType() { + if (this.imageUrl) { + if (isImageResourceUrl(this.imageUrl)) { + this.linkType = ImageLinkType.resource; + } else if (isBase64DataImageUrl(this.imageUrl)) { + this.linkType = ImageLinkType.base64; + } else { + this.linkType = ImageLinkType.external; + } + } else { + this.linkType = ImageLinkType.none; + } + } + + private updateModel() { + this.cd.markForCheck(); + this.propagateChange(this.imageUrl); + } + + private reset() { + this.linkType = ImageLinkType.none; + this.imageUrl = null; + this.imageResource = null; + this.externalLinkControl.setValue(null, {emitEvent: false}); + } + + clearImage() { + this.reset(); + this.updateModel(); + } + + setLink($event: Event) { + if ($event) { + $event.stopPropagation(); + } + this.linkType = ImageLinkType.external; + } + + toggleGallery($event: Event, browseGalleryButton: MatButton) { + if ($event) { + $event.stopPropagation(); + } + const trigger = browseGalleryButton._elementRef.nativeElement; + if (this.popoverService.hasPopover(trigger)) { + this.popoverService.hidePopover(trigger); + } else { + const ctx: any = { + pageMode: false, + popoverMode: true, + mode: 'grid', + selectionMode: true + }; + const imageGalleryPopover = this.popoverService.displayPopover(trigger, this.renderer, + this.viewContainerRef, ImageGalleryComponent, 'top', true, null, + ctx, + {}, + {}, {}, true); + imageGalleryPopover.tbComponentRef.instance.imageSelected.subscribe((image) => { + imageGalleryPopover.hide(); + this.linkType = ImageLinkType.resource; + this.imageUrl = image.link; + this.imageResource = image; + this.updateModel(); + }); + } + } + +} diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html index 96eb9c7be9..6b46bb1779 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -15,11 +15,11 @@ limitations under the License. --> -
+
+ [fxShow]="!textSearchMode && (mode === 'grid' || dataSource?.selection.isEmpty())" [ngClass.lt-md]="{'multi-row': !isSysAdmin}">
image.gallery @@ -93,7 +93,7 @@ {{ 'image.include-system-images' | translate }} - +
- +
- {{ translate.get('image.selected-images', {count: dataSource.selection.selected.length}) | async }} + {{ translate.get('image.selected-images', {count: dataSource?.selection.selected.length}) | async }} + +
-
+
+
{{ item.title }} diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss index 0b7b5e3c65..00b40ff2e1 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -13,9 +13,42 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +@import "../../../../../scss/constants"; + $tb-button-selected-color: rgb(255, 110, 64) !default; .tb-images { + + &.tb-popover-mode { + padding-top: 8px; + position: relative; + width: 300px; + height: 500px; + max-width: calc(100vw - 50px); + max-height: calc(100vh - 100px); + @media #{$mat-gt-xs} { + width: 400px; + height: 600px; + } + @media #{$mat-gt-sm} { + width: 500px; + height: 600px; + } + @media #{$mat-gt-md} { + width: 700px; + height: 700px; + } + @media #{$mat-gt-xmd} { + width: 900px; + height: 700px; + } + @media #{$mat-gt-xl} { + width: 1200px; + height: 800px; + } + } + .tb-images-content { width: 100%; height: 100%; diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts index 43938f2515..c8d65d2732 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -29,10 +29,10 @@ import { AfterViewInit, ChangeDetectorRef, Component, - ElementRef, + ElementRef, EventEmitter, Input, OnDestroy, - OnInit, + OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core'; @@ -74,6 +74,28 @@ interface GridImagesFilter { includeSystemImages: boolean; } +const pageGridColumns: ScrollGridColumns = { + columns: 2, + breakpoints: { + 'screen and (min-width: 2320px)': 10, + 'screen and (min-width: 2000px)': 8, + 'gt-lg': 7, + 'screen and (min-width: 1600px)': 6, + 'gt-md': 5, + 'screen and (min-width: 1120px)': 4, + 'gt-xs': 3 + } +}; + +const popoverGridColumns: ScrollGridColumns = { + columns: 2, + breakpoints: { + 'gt-lg': 5, + 'screen and (min-width: 1600px)': 4, + 'gt-md': 3 + } +}; + @Component({ selector: 'tb-image-gallery', templateUrl: './image-gallery.component.html', @@ -86,9 +108,19 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe @coerceBoolean() pageMode = true; + @Input() + @coerceBoolean() + popoverMode = false; + @Input() mode: 'list' | 'grid' = 'list'; + @Input() + selectionMode = false; + + @Output() + imageSelected = new EventEmitter(); + @ViewChild('searchInput') searchInputField: ElementRef; @ViewChild(MatPaginator) paginator: MatPaginator; @@ -111,18 +143,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe textSearch = this.fb.control('', {nonNullable: true}); includeSystemImages = this.fb.control(false); - gridColumns: ScrollGridColumns = { - columns: 2, - breakpoints: { - 'screen and (min-width: 2320px)': 10, - 'screen and (min-width: 2000px)': 8, - 'gt-lg': 7, - 'screen and (min-width: 1600px)': 6, - 'gt-md': 5, - 'screen and (min-width: 1120px)': 4, - 'gt-xs': 3 - } - }; + gridColumns: ScrollGridColumns; gridImagesFetchFunction: GridEntitiesFetchFunction; gridImagesFilter: GridImagesFilter = { @@ -166,6 +187,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } ngOnInit(): void { + this.gridColumns = this.popoverMode ? popoverGridColumns : pageGridColumns; this.displayedColumns = this.computeDisplayedColumns(); let sortOrder: SortOrder = this.defaultSortOrder; this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3]; @@ -285,6 +307,9 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } private computeDisplayedColumns(): string[] { + if (this.selectionMode) { + return ['preview', 'title', 'imageSelect']; + } const columns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size']; if (!this.isSysAdmin && this.includeSystemImages.value) { columns.push('system'); @@ -567,6 +592,13 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe }); } + selectImage($event, image: ImageResourceInfo) { + if ($event) { + $event.stopPropagation(); + } + this.imageSelected.next(image); + } + uploadImage(): void { this.dialog.open(UploadImageDialogComponent, { diff --git a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.html b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.html index 12690094b2..8739f7c9b2 100644 --- a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.html +++ b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.html @@ -15,9 +15,9 @@ limitations under the License. --> -

{{title | translate}}

+

{{title}}

-
+
diff --git a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts index 9e1e7708c9..2211f7e071 100644 --- a/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/images-in-use-dialog.component.ts @@ -60,12 +60,12 @@ export class ImagesInUseDialogComponent extends ngOnInit(): void { if (this.data.multiple) { - this.title = 'image.images-are-in-use'; - this.message = 'image.images-are-in-use-text'; + this.title = this.translate.instant('image.images-are-in-use'); + this.message = this.translate.instant('image.images-are-in-use-text'); this.dataSource = new ImagesDatasource(null, this.data.images, entity => true); } else { - this.title = 'image.image-is-in-use'; - this.message = 'image.image-is-in-use-text'; + this.title = this.translate.instant('image.image-is-in-use'); + this.message = this.translate.instant('image.image-is-in-use-text', {title: this.data.images[0].title}); this.references = this.data.images[0].references; } } @@ -97,8 +97,10 @@ export class ImagesInUseDialogComponent extends }, {}, {}, {}, false, visible => { - const addClasses = visible ? 'mdc-button--unelevated mat-mdc-unelevated-button' : 'mdc-button--outlined mat-mdc-outlined-button'; - const removeClasses = visible ? 'mdc-button--outlined mat-mdc-outlined-button' : 'mdc-button--unelevated mat-mdc-unelevated-button'; + const addClasses = + visible ? 'mdc-button--unelevated mat-mdc-unelevated-button' : 'mdc-button--outlined mat-mdc-outlined-button'; + const removeClasses = + visible ? 'mdc-button--outlined mat-mdc-outlined-button' : 'mdc-button--unelevated mat-mdc-unelevated-button'; addClasses.split(' ').forEach(clazz => { this.renderer.addClass(trigger, clazz); }); diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.html b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.html index 3e324a646f..89d122eccd 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle.component.html @@ -54,11 +54,15 @@ {{ 'widgets-bundle.title-max-length' | translate }} - + + widgets-bundle.description diff --git a/ui-ngx/src/app/shared/components/popover.component.ts b/ui-ngx/src/app/shared/components/popover.component.ts index 27705c4802..bd9df1b898 100644 --- a/ui-ngx/src/app/shared/components/popover.component.ts +++ b/ui-ngx/src/app/shared/components/popover.component.ts @@ -44,7 +44,7 @@ import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedOverlayPositionChange, - ConnectionPositionPair + ConnectionPositionPair, NoopScrollStrategy } from '@angular/cdk/overlay'; import { Subject, Subscription } from 'rxjs'; import { @@ -311,6 +311,7 @@ export class TbPopoverDirective implements OnChanges, OnDestroy, AfterViewInit { [cdkConnectedOverlayHasBackdrop]="hasBackdrop" [cdkConnectedOverlayOrigin]="origin" [cdkConnectedOverlayPositions]="positions" + [cdkConnectedOverlayScrollStrategy]="scrollStrategy" [cdkConnectedOverlayOpen]="visible" [cdkConnectedOverlayPush]="true" (overlayOutsideClick)="onClickOutside($event)" @@ -451,6 +452,7 @@ export class TbPopoverComponent implements OnDestroy, OnInit { public dir: Direction = 'ltr'; classMap: { [klass: string]: any } = {}; positions: ConnectionPositionPair[] = [...DEFAULT_POPOVER_POSITIONS]; + scrollStrategy = new NoopScrollStrategy(); private parentScrollSubscription: Subscription = null; private intersectionObserver = new IntersectionObserver((entries) => { if (this.lastIsIntersecting !== entries[0].isIntersecting) { diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index da6cc197a5..b019c064ea 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -127,8 +127,18 @@ export const toImageDeleteResult = (image: ImageResourceInfo, e?: any): ImageDel export const imageResourceType = (imageInfo: ImageResourceInfo): ImageResourceType => (!imageInfo.tenantId || imageInfo.tenantId?.id === NULL_UUID) ? 'system' : 'tenant'; +export const IMAGES_URL_REGEXP = /\/api\/images\/(tenant|system)\/(.*)/; export const IMAGES_URL_PREFIX = '/api/images'; -export const isImageResourceUrl = (url: string): boolean => url && url.startsWith(IMAGES_URL_PREFIX); +export const IMAGE_BASE64_URL_PREFIX = 'data:image/'; + +export const isImageResourceUrl = (url: string): boolean => url && IMAGES_URL_REGEXP.test(url); + +export const extractParamsFromImageResourceUrl = (url: string): {type: ImageResourceType; key: string} => { + const res = url.match(IMAGES_URL_REGEXP); + return {type: res[1] as ImageResourceType, key: res[2]}; +}; + +export const isBase64DataImageUrl = (url: string): boolean => url && url.startsWith(IMAGE_BASE64_URL_PREFIX); export const NO_IMAGE_DATA_URI = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; diff --git a/ui-ngx/src/app/shared/pipe/image.pipe.ts b/ui-ngx/src/app/shared/pipe/image.pipe.ts index 6cad747676..e1467fe40e 100644 --- a/ui-ngx/src/app/shared/pipe/image.pipe.ts +++ b/ui-ngx/src/app/shared/pipe/image.pipe.ts @@ -40,18 +40,22 @@ export class ImagePipe implements PipeTransform { transform(urlData: string | UrlHolder, args?: any): Observable { const ignoreLoadingImage = !!args?.ignoreLoadingImage; const asString = !!args?.asString; + const emptyUrl = args?.emptyUrl || NO_IMAGE_DATA_URI; const image$ = ignoreLoadingImage ? new Subject() : new BehaviorSubject(LOADING_IMAGE_DATA_URI); const url = (typeof urlData === 'string') ? urlData : urlData?.url; if (isDefinedAndNotNull(url)) { const preview = !!args?.preview; - this.imageService.resolveImageUrl(url, preview, asString).subscribe((imageUrl) => { - image$.next(imageUrl); - image$.complete(); + this.imageService.resolveImageUrl(url, preview, asString, emptyUrl).subscribe((imageUrl) => { + Promise.resolve().then(() => { + image$.next(imageUrl); + image$.complete(); + }); }); } else { - const emptyUrl = args?.emptyUrl || NO_IMAGE_DATA_URI; - image$.next(asString ? emptyUrl : this.sanitizer.bypassSecurityTrustUrl(emptyUrl)); - image$.complete(); + Promise.resolve().then(() => { + image$.next(asString ? emptyUrl : this.sanitizer.bypassSecurityTrustUrl(emptyUrl)); + image$.complete(); + }); } return image$.asObservable(); } diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 9bd9ef140c..f29faeaffd 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2976,13 +2976,19 @@ "invalid-image-json-file-error": "Unable to import image from JSON: Invalid image JSON data structure.", "image-is-in-use": "Image is used by other entities", "images-are-in-use": "Images are used by other entities", - "image-is-in-use-text": "The image was not deleted because it is used by the following entities:", + "image-is-in-use-text": "The image '{{title}}' was not deleted because it is used by the following entities:", "images-are-in-use-text": "Not all images have been deleted because they are used by other entities.
You can view referenced entities by clicking the References button in the corresponding image row.
If you still want to delete these images, select them in the table below and click the Delete selected button.", "delete-image-in-use-text": "If you still want to delete the image, click the Delete anyway button.", "system-entities": "System entities:", "entities": "entities:", "references": "References", - "include-system-images": "Include system images" + "include-system-images": "Include system images", + "clear-image": "Clear image", + "no-image": "No image", + "no-image-selected": "No image selected", + "browse-from-gallery": "Browse from gallery", + "set-link": "Set link", + "image-link": "Image link" }, "image-input": { "drop-images-or": "Drag and drop an images or", From 248bcefa809f86ccf9aa6003419585f28c204df0 Mon Sep 17 00:00:00 2001 From: nick Date: Sat, 25 Nov 2023 19:39:58 +0200 Subject: [PATCH 105/162] stringToBytes: refactoring, Input parameter Object as HexString, DigString, Integer, Byte --- .../thingsboard/script/api/tbel/TbUtils.java | 18 +++++- .../script/api/tbel/TbUtilsTest.java | 57 +++++++++++++++++++ 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java index 31bd634221..07c2baee2d 100644 --- a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java +++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java @@ -182,7 +182,7 @@ public class TbUtils { return TbJson.parse(ctx, jsonStr); } - public static String bytesToString(List bytesList) { + public static String bytesToString(List bytesList) { byte[] bytes = bytesFromList(bytesList); return new String(bytes); } @@ -210,10 +210,22 @@ public class TbUtils { } } - private static byte[] bytesFromList(List bytesList) { + private static byte[] bytesFromList(List bytesList) { byte[] bytes = new byte[bytesList.size()]; for (int i = 0; i < bytesList.size(); i++) { - bytes[i] = bytesList.get(i); + if (bytesList.get(i) instanceof Integer) { + byte val = ((Integer) bytesList.get(i)).byteValue(); + if (((Integer) bytesList.get(i)).intValue() > 255 || ((Integer) bytesList.get(i)).intValue() < -128){ + throw new NumberFormatException("The value " + bytesList.get(i) + " could not be converted to a byte. Integer to byte needs only 8-bits (min/max = -128/127 or 0/255) !"); + } else { + bytes[i] = val; } + } else if (bytesList.get(i) instanceof String) { + bytes[i] = parseInt((String) bytesList.get(i)).byteValue(); + } else if (bytesList.get(i) instanceof Byte) { + bytes[i] = (byte) bytesList.get(i); + } else { + throw new NumberFormatException("Value \"" + bytesList.get(i) + " could not be converted to a byte. Must be format HexDecimal/String/Integer !"); + } } return bytes; } diff --git a/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java b/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java index d2900d6ec4..b80ac85ca7 100644 --- a/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java +++ b/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.math.BigInteger; import java.nio.ByteBuffer; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.List; import java.util.Random; @@ -385,6 +386,62 @@ public class TbUtilsTest { Assert.assertThrows(IllegalAccessException.class, () -> TbUtils.stringToBytes(ctx, ((ExecutionHashMap) finalInputJson).get("hello"), "UTF-8")); } + @Test + public void bytesFromList() { + byte[] arrayBytes = {(byte)0x00, (byte)0x08, (byte)0x10, (byte)0x1C, (byte)0xFF, (byte)0xFC, (byte)0xAD, (byte)0x88, (byte)0x75, (byte)0x74, (byte)0x8A, (byte)0x82}; + Object[] arrayMix = { "0x00", 8, "16", "0x1C", 255, 252, 173, 136, 117, 116, -118, "-126"}; + + String expected = new String(arrayBytes); + ArrayList listBytes = new ArrayList<>(arrayBytes.length); + for (Byte element : arrayBytes) { + listBytes.add(element); + } + Assert.assertEquals(expected, TbUtils.bytesToString(listBytes)); + + ArrayList listMix = new ArrayList<>(arrayMix.length); + for (Object element : arrayMix) { + listMix.add(element); + } + Assert.assertEquals(expected, TbUtils.bytesToString(listMix)); + } + + @Test + public void bytesFromList_Error() { + List listHex = new ArrayList<>(); + listHex.add("0xFG"); + try { + TbUtils.bytesToString(listHex); + Assert.fail("Should throw NumberFormatException"); + } catch (NumberFormatException e) { + Assert.assertTrue(e.getMessage().contains("Failed radix: [16] for value: \"FG\"!")); + } + listHex.add(0, "1F"); + try { + TbUtils.bytesToString(listHex); + Assert.fail("Should throw NumberFormatException"); + } catch (NumberFormatException e) { + Assert.assertTrue(e.getMessage().contains("Failed radix: [10] for value: \"1F\"!")); + } + + ArrayList listIntBytes = new ArrayList<>(); + listIntBytes.add(-129); + try { + TbUtils.bytesToString(listIntBytes); + Assert.fail("Should throw NumberFormatException"); + } catch (NumberFormatException e) { + Assert.assertTrue(e.getMessage().contains("The value -129 could not be converted to a byte. Integer to byte needs only 8-bits (min/max = -128/127 or 0/255")); + } + + listIntBytes.add(0, 256); + try { + TbUtils.bytesToString(listIntBytes); + Assert.fail("Should throw NumberFormatException"); + } catch (NumberFormatException e) { + Assert.assertTrue(e.getMessage().contains("The value 256 could not be converted to a byte. Integer to byte needs only 8-bits (min/max = -128/127 or 0/255")); + } + } + + private static List toList(byte[] data) { List result = new ArrayList<>(data.length); for (Byte b : data) { From baa684f72b59b9a584a4ed8e003c14d30480ba64 Mon Sep 17 00:00:00 2001 From: nick Date: Sun, 26 Nov 2023 21:58:29 +0200 Subject: [PATCH 106/162] stringToBytes: refactoring test --- .../test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java b/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java index b80ac85ca7..3a3fe22000 100644 --- a/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java +++ b/common/script/script-api/src/test/java/org/thingsboard/script/api/tbel/TbUtilsTest.java @@ -389,7 +389,7 @@ public class TbUtilsTest { @Test public void bytesFromList() { byte[] arrayBytes = {(byte)0x00, (byte)0x08, (byte)0x10, (byte)0x1C, (byte)0xFF, (byte)0xFC, (byte)0xAD, (byte)0x88, (byte)0x75, (byte)0x74, (byte)0x8A, (byte)0x82}; - Object[] arrayMix = { "0x00", 8, "16", "0x1C", 255, 252, 173, 136, 117, 116, -118, "-126"}; + Object[] arrayMix = { "0x00", 8, "16", "0x1C", 255, (byte)0xFC, 173, 136, 117, 116, -118, "-126"}; String expected = new String(arrayBytes); ArrayList listBytes = new ArrayList<>(arrayBytes.length); From 3ab4c8d468b2986d7884cd12694921991832fb95 Mon Sep 17 00:00:00 2001 From: nick Date: Sun, 26 Nov 2023 22:28:50 +0200 Subject: [PATCH 107/162] stringToBytes: refactoring --- .../src/main/java/org/thingsboard/script/api/tbel/TbUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java index 07c2baee2d..8fde4cd332 100644 --- a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java +++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/TbUtils.java @@ -187,7 +187,7 @@ public class TbUtils { return new String(bytes); } - public static String bytesToString(List bytesList, String charsetName) throws UnsupportedEncodingException { + public static String bytesToString(List bytesList, String charsetName) throws UnsupportedEncodingException { byte[] bytes = bytesFromList(bytesList); return new String(bytes, charsetName); } From e8ba1e17ebfc3dfb6b74ca2bc14bb2018ac4ccae Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 27 Nov 2023 11:42:54 +0200 Subject: [PATCH 108/162] Monitoring for IPs associated with the domain --- .../monitoring/config/MonitoringTarget.java | 4 ++ .../transport/TransportMonitoringConfig.java | 3 +- .../transport/TransportMonitoringTarget.java | 1 + .../service/BaseMonitoringService.java | 39 ++++++++++++++++--- .../TransportsMonitoringService.java | 7 ++++ .../src/main/resources/tb-monitoring.yml | 16 ++++++-- 6 files changed, 59 insertions(+), 11 deletions(-) diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/MonitoringTarget.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/MonitoringTarget.java index 0e62670f81..0176b14d54 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/MonitoringTarget.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/config/MonitoringTarget.java @@ -21,4 +21,8 @@ public interface MonitoringTarget { UUID getDeviceId(); + String getBaseUrl(); + + boolean isCheckDomainIps(); + } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringConfig.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringConfig.java index 77d702f779..c5f843192c 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringConfig.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringConfig.java @@ -23,9 +23,8 @@ import java.util.List; @Data public abstract class TransportMonitoringConfig implements MonitoringConfig { - private int requestTimeoutMs; - private List targets; + private int requestTimeoutMs; public abstract TransportType getTransportType(); diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringTarget.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringTarget.java index 816f64fbce..e3277af0ff 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringTarget.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/config/transport/TransportMonitoringTarget.java @@ -25,6 +25,7 @@ public class TransportMonitoringTarget implements MonitoringTarget { private String baseUrl; private DeviceConfig device; // set manually during initialization + private boolean checkDomainIps; @Override public UUID getDeviceId() { diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseMonitoringService.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseMonitoringService.java index def53557db..24ca9de4d4 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseMonitoringService.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseMonitoringService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.monitoring.service; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -29,9 +30,14 @@ import org.thingsboard.monitoring.service.transport.TransportHealthChecker; import org.thingsboard.monitoring.util.TbStopWatch; import javax.annotation.PostConstruct; +import java.net.InetAddress; +import java.net.URI; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; @Slf4j public abstract class BaseMonitoringService, T extends MonitoringTarget> { @@ -60,15 +66,36 @@ public abstract class BaseMonitoringService, T ext tbClient.logIn(); configs.forEach(config -> { config.getTargets().forEach(target -> { - BaseHealthChecker healthChecker = (BaseHealthChecker) createHealthChecker(config, target); - log.info("Initializing {}", healthChecker.getClass().getSimpleName()); - healthChecker.initialize(tbClient); - devices.add(target.getDeviceId()); - healthCheckers.add(healthChecker); + initHealthChecker(target, config); + if (target.isCheckDomainIps()) { + initIpsHealthCheckers(target, config); + } }); }); } + private void initHealthChecker(T target, C config) { + BaseHealthChecker healthChecker = (BaseHealthChecker) createHealthChecker(config, target); + log.info("Initializing {} for {}", healthChecker.getClass().getSimpleName(), target.getBaseUrl()); + healthChecker.initialize(tbClient); + devices.add(target.getDeviceId()); + healthCheckers.add(healthChecker); + } + + @SneakyThrows + private void initIpsHealthCheckers(T target, C config) { + URI baseUrl = new URI(target.getBaseUrl()); + String domain = baseUrl.getHost(); + + Set ips = Arrays.stream(InetAddress.getAllByName(domain)) + .map(InetAddress::getHostAddress) + .collect(Collectors.toSet()); + for (String ip : ips) { + String url = new URI(baseUrl.getScheme(), null, ip, baseUrl.getPort(), "", null, null).toString(); + initHealthChecker(createTarget(url), config); + } + } + public final void runChecks() { if (healthCheckers.isEmpty()) { return; @@ -99,6 +126,8 @@ public abstract class BaseMonitoringService, T ext protected abstract BaseHealthChecker createHealthChecker(C config, T target); + protected abstract T createTarget(String baseUrl); + protected abstract String getName(); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/TransportsMonitoringService.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/TransportsMonitoringService.java index b3ce86e799..ca7c5a94da 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/TransportsMonitoringService.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/transport/TransportsMonitoringService.java @@ -33,6 +33,13 @@ public final class TransportsMonitoringService extends BaseMonitoringService Date: Mon, 27 Nov 2023 11:43:18 +0200 Subject: [PATCH 109/162] updated test to cover sysadmin authority --- .../controller/WidgetTypeControllerTest.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java index 553b0d6490..e515250321 100644 --- a/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/WidgetTypeControllerTest.java @@ -193,17 +193,29 @@ public class WidgetTypeControllerTest extends AbstractControllerTest { loginCustomerUser(); - List loadedWidgetTypes2 = doGetTyped("/api/widgetTypes?widgetsBundleId={widgetsBundleId}", + List loadedWidgetTypesCustomer = doGetTyped("/api/widgetTypes?widgetsBundleId={widgetsBundleId}", new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); - Collections.sort(loadedWidgetTypes2, idComparator); - Assert.assertEquals(widgetTypes, loadedWidgetTypes2); + Collections.sort(loadedWidgetTypesCustomer, idComparator); + Assert.assertEquals(widgetTypes, loadedWidgetTypesCustomer); - List loadedWidgetTypes3 = doGetTyped("/api/widgetTypesDetails?widgetsBundleId={widgetsBundleId}", + List customerLoadedWidgetTypesDetails = doGetTyped("/api/widgetTypesDetails?widgetsBundleId={widgetsBundleId}", new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); - List widgetTypes3 = loadedWidgetTypes3.stream().map(WidgetType::new).collect(Collectors.toList()); - Collections.sort(widgetTypes3, idComparator); - Assert.assertEquals(widgetTypes3, loadedWidgetTypes); + List widgetTypesFromDetailsListCustomer = customerLoadedWidgetTypesDetails.stream().map(WidgetType::new).collect(Collectors.toList()); + Collections.sort(widgetTypesFromDetailsListCustomer, idComparator); + Assert.assertEquals(widgetTypesFromDetailsListCustomer, loadedWidgetTypes); + loginSysAdmin(); + + List sysAdminLoadedWidgetTypes = doGetTyped("/api/widgetTypes?widgetsBundleId={widgetsBundleId}", + new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); + Collections.sort(sysAdminLoadedWidgetTypes, idComparator); + Assert.assertEquals(widgetTypes, sysAdminLoadedWidgetTypes); + + List sysAdminLoadedWidgetTypesDetails = doGetTyped("/api/widgetTypesDetails?widgetsBundleId={widgetsBundleId}", + new TypeReference<>(){}, widgetsBundle.getId().getId().toString()); + List widgetTypesFromDetailsListSysAdmin = sysAdminLoadedWidgetTypesDetails.stream().map(WidgetType::new).collect(Collectors.toList()); + Collections.sort(widgetTypesFromDetailsListSysAdmin, idComparator); + Assert.assertEquals(widgetTypesFromDetailsListSysAdmin, loadedWidgetTypes); } @Test From 24241010b72f6f4965d96b44be7239f99d7257db Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 27 Nov 2023 11:47:28 +0200 Subject: [PATCH 110/162] Root Rule Chain for monitoring tenant --- .../src/main/resources/root_rule_chain.json | 436 ++++++++++++++++++ 1 file changed, 436 insertions(+) create mode 100644 monitoring/src/main/resources/root_rule_chain.json diff --git a/monitoring/src/main/resources/root_rule_chain.json b/monitoring/src/main/resources/root_rule_chain.json new file mode 100644 index 0000000000..ed8a93fb63 --- /dev/null +++ b/monitoring/src/main/resources/root_rule_chain.json @@ -0,0 +1,436 @@ +{ + "ruleChain": { + "additionalInfo": null, + "name": "Root Rule Chain", + "type": "CORE", + "firstRuleNodeId": null, + "root": false, + "debugMode": false, + "configuration": null, + "externalId": null + }, + "metadata": { + "firstNodeIndex": 12, + "nodes": [ + { + "additionalInfo": { + "description": null, + "layoutX": 1202, + "layoutY": 221 + }, + "type": "org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode", + "name": "Save Timeseries", + "debugMode": true, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "defaultTTL": 0 + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 1000, + "layoutY": 167 + }, + "type": "org.thingsboard.rule.engine.telemetry.TbMsgAttributesNode", + "name": "Save Attributes", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 1, + "configuration": { + "scope": "CLIENT_SCOPE", + "notifyDevice": false, + "sendAttributesUpdatedNotification": false, + "updateAttributesOnlyOnValueChange": false + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 566, + "layoutY": 302 + }, + "type": "org.thingsboard.rule.engine.filter.TbMsgTypeSwitchNode", + "name": "Message Type Switch", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "version": 0 + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 1000, + "layoutY": 381 + }, + "type": "org.thingsboard.rule.engine.action.TbLogNode", + "name": "Log RPC from Device", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "TBEL", + "jsScript": "return '\\nIncoming message:\\n' + JSON.stringify(msg) + '\\nIncoming metadata:\\n' + JSON.stringify(metadata);", + "tbelScript": "return '\\nIncoming message:\\n' + JSON.stringify(msg) + '\\nIncoming metadata:\\n' + JSON.stringify(metadata);" + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 1000, + "layoutY": 494 + }, + "type": "org.thingsboard.rule.engine.action.TbLogNode", + "name": "Log Other", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "TBEL", + "jsScript": "return '\\nIncoming message:\\n' + JSON.stringify(msg) + '\\nIncoming metadata:\\n' + JSON.stringify(metadata);", + "tbelScript": "return '\\nIncoming message:\\n' + JSON.stringify(msg) + '\\nIncoming metadata:\\n' + JSON.stringify(metadata);" + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 1000, + "layoutY": 583 + }, + "type": "org.thingsboard.rule.engine.rpc.TbSendRPCRequestNode", + "name": "RPC Call Request", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "timeoutInSeconds": 60 + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 255, + "layoutY": 301 + }, + "type": "org.thingsboard.rule.engine.filter.TbOriginatorTypeFilterNode", + "name": "Is Entity Group", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "originatorTypes": [ + "ENTITY_GROUP" + ] + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 319, + "layoutY": 109 + }, + "type": "org.thingsboard.rule.engine.filter.TbMsgTypeFilterNode", + "name": "Post attributes or RPC request", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "messageTypes": [ + "POST_ATTRIBUTES_REQUEST", + "RPC_CALL_FROM_SERVER_TO_DEVICE" + ] + }, + "externalId": null + }, + { + "additionalInfo": { + "layoutX": 627, + "layoutY": 108 + }, + "type": "org.thingsboard.rule.engine.transform.TbDuplicateMsgToGroupNode", + "name": "Duplicate To Group Entities", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "entityGroupId": null, + "entityGroupIsMessageOriginator": true + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "Process incoming messages from devices with the alarm rules defined in the device profile. Dispatch all incoming messages with \"Success\" relation type.", + "layoutX": 45, + "layoutY": 359 + }, + "type": "org.thingsboard.rule.engine.profile.TbDeviceProfileNode", + "name": "Device Profile Node", + "debugMode": true, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "persistAlarmRulesState": false, + "fetchAlarmRulesStateOnStart": false + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 160, + "layoutY": 631 + }, + "type": "org.thingsboard.rule.engine.filter.TbJsFilterNode", + "name": "Test JS script", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "JS", + "jsScript": "var test = {\n a: 'a',\n b: 'b'\n};\nreturn test.a === 'a' && test.b === 'b';", + "tbelScript": "return msg.temperature > 20;" + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 427, + "layoutY": 541 + }, + "type": "org.thingsboard.rule.engine.filter.TbJsFilterNode", + "name": "Test TBEL script", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "TBEL", + "jsScript": "return msg.temperature > 20;", + "tbelScript": "var a = \"a\";\nvar b = \"b\";\nreturn a.equals(\"a\") && b.equals(\"b\");" + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 40, + "layoutY": 252 + }, + "type": "org.thingsboard.rule.engine.transform.TbTransformMsgNode", + "name": "Add arrival timestamp", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "TBEL", + "jsScript": "return {msg: msg, metadata: metadata, msgType: msgType};", + "tbelScript": "metadata.arrivalTs = Date.now();\nreturn {msg: msg, metadata: metadata, msgType: msgType};" + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 1467, + "layoutY": 267 + }, + "type": "org.thingsboard.rule.engine.transform.TbTransformMsgNode", + "name": "Calculate additional latencies", + "debugMode": true, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "scriptLang": "TBEL", + "jsScript": "return {msg: msg, metadata: metadata, msgType: msgType};", + "tbelScript": "var arrivalLatency = metadata.arrivalTs - metadata.ts;\nvar processingTime = Date.now() - metadata.arrivalTs;\nmsg = {\n arrivalLatency: arrivalLatency,\n processingTime: processingTime\n};\nreturn {msg: msg, metadata: metadata, msgType: msgType};" + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 1438, + "layoutY": 403 + }, + "type": "org.thingsboard.rule.engine.transform.TbChangeOriginatorNode", + "name": "To latencies asset", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "originatorSource": "ENTITY", + "entityType": "ASSET", + "entityNamePattern": "[Monitoring] Latencies", + "relationsQuery": { + "direction": "FROM", + "maxLevel": 1, + "filters": [ + { + "relationType": "Contains", + "entityTypes": [] + } + ], + "fetchLastLevelOnly": false + } + }, + "externalId": null + }, + { + "additionalInfo": { + "description": null, + "layoutX": 1458, + "layoutY": 505 + }, + "type": "org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode", + "name": "Save Timeseries", + "debugMode": true, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "defaultTTL": 0 + }, + "externalId": null + }, + { + "additionalInfo": { + "description": "", + "layoutX": 928, + "layoutY": 266 + }, + "type": "org.thingsboard.rule.engine.filter.TbCheckMessageNode", + "name": "Has testData", + "debugMode": false, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "messageNames": [ + "testData" + ], + "metadataNames": [], + "checkAllKeys": true + }, + "externalId": null + }, + { + "additionalInfo": { + "description": null, + "layoutX": 1203, + "layoutY": 327 + }, + "type": "org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode", + "name": "Save Timeseries with TTL", + "debugMode": true, + "singletonMode": false, + "configurationVersion": 0, + "configuration": { + "defaultTTL": 180, + "skipLatestPersistence": null, + "useServerTs": null + }, + "externalId": null + } + ], + "connections": [ + { + "fromIndex": 2, + "toIndex": 1, + "type": "Post attributes" + }, + { + "fromIndex": 2, + "toIndex": 3, + "type": "RPC Request from Device" + }, + { + "fromIndex": 2, + "toIndex": 4, + "type": "Other" + }, + { + "fromIndex": 2, + "toIndex": 5, + "type": "RPC Request to Device" + }, + { + "fromIndex": 2, + "toIndex": 16, + "type": "Post telemetry" + }, + { + "fromIndex": 6, + "toIndex": 2, + "type": "False" + }, + { + "fromIndex": 6, + "toIndex": 7, + "type": "True" + }, + { + "fromIndex": 7, + "toIndex": 2, + "type": "False" + }, + { + "fromIndex": 7, + "toIndex": 8, + "type": "True" + }, + { + "fromIndex": 8, + "toIndex": 2, + "type": "Success" + }, + { + "fromIndex": 9, + "toIndex": 10, + "type": "Success" + }, + { + "fromIndex": 10, + "toIndex": 11, + "type": "True" + }, + { + "fromIndex": 11, + "toIndex": 6, + "type": "True" + }, + { + "fromIndex": 12, + "toIndex": 9, + "type": "Success" + }, + { + "fromIndex": 13, + "toIndex": 14, + "type": "Success" + }, + { + "fromIndex": 14, + "toIndex": 15, + "type": "Success" + }, + { + "fromIndex": 16, + "toIndex": 0, + "type": "False" + }, + { + "fromIndex": 16, + "toIndex": 17, + "type": "True" + }, + { + "fromIndex": 17, + "toIndex": 13, + "type": "Success" + } + ], + "ruleChainConnections": null + } +} \ No newline at end of file From 98a87bfd33aa3261119759be757f8c070cfbf11b Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 27 Nov 2023 14:01:23 +0200 Subject: [PATCH 111/162] Monitoring: support for dynamic change of load-balancers list --- .../monitoring/service/BaseHealthChecker.java | 13 ++- .../service/BaseMonitoringService.java | 83 ++++++++++++++----- 2 files changed, 75 insertions(+), 21 deletions(-) diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java index 697573289d..290fd307c6 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/service/BaseHealthChecker.java @@ -15,6 +15,7 @@ */ package org.thingsboard.monitoring.service; +import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -30,13 +31,17 @@ import org.thingsboard.monitoring.util.TbStopWatch; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; +import java.util.HashMap; +import java.util.Map; import java.util.UUID; @RequiredArgsConstructor @Slf4j public abstract class BaseHealthChecker { + @Getter protected final C config; + @Getter protected final T target; private Object info; @@ -48,6 +53,9 @@ public abstract class BaseHealthChecker> associates = new HashMap<>(); + public static final String TEST_TELEMETRY_KEY = "testData"; @PostConstruct @@ -84,6 +92,10 @@ public abstract class BaseHealthChecker { + healthChecker.check(wsClient); + }); } private void checkWsUpdate(WsClient wsClient, String testValue) { @@ -99,7 +111,6 @@ public abstract class BaseHealthChecker, T ext tbClient.logIn(); configs.forEach(config -> { config.getTargets().forEach(target -> { - initHealthChecker(target, config); + BaseHealthChecker healthChecker = initHealthChecker(target, config); + healthCheckers.add(healthChecker); + if (target.isCheckDomainIps()) { - initIpsHealthCheckers(target, config); + getAssociatedUrls(target.getBaseUrl()).forEach(url -> { + healthChecker.getAssociates().put(url, initHealthChecker(createTarget(url), config)); + }); } }); }); } - private void initHealthChecker(T target, C config) { + private BaseHealthChecker initHealthChecker(T target, C config) { BaseHealthChecker healthChecker = (BaseHealthChecker) createHealthChecker(config, target); log.info("Initializing {} for {}", healthChecker.getClass().getSimpleName(), target.getBaseUrl()); healthChecker.initialize(tbClient); devices.add(target.getDeviceId()); - healthCheckers.add(healthChecker); - } - - @SneakyThrows - private void initIpsHealthCheckers(T target, C config) { - URI baseUrl = new URI(target.getBaseUrl()); - String domain = baseUrl.getHost(); - - Set ips = Arrays.stream(InetAddress.getAllByName(domain)) - .map(InetAddress::getHostAddress) - .collect(Collectors.toSet()); - for (String ip : ips) { - String url = new URI(baseUrl.getScheme(), null, ip, baseUrl.getPort(), "", null, null).toString(); - initHealthChecker(createTarget(url), config); - } + return healthChecker; } public final void runChecks() { @@ -108,9 +101,8 @@ public abstract class BaseMonitoringService, T ext try (WsClient wsClient = wsClientFactory.createClient(accessToken)) { wsClient.subscribeForTelemetry(devices, TransportHealthChecker.TEST_TELEMETRY_KEY).waitForReply(); - for (BaseHealthChecker healthChecker : healthCheckers) { - healthChecker.check(wsClient); + check(healthChecker, wsClient); } } reporter.reportLatencies(tbClient); @@ -124,6 +116,57 @@ public abstract class BaseMonitoringService, T ext } } + private void check(BaseHealthChecker healthChecker, WsClient wsClient) throws Exception { + healthChecker.check(wsClient); + + T target = healthChecker.getTarget(); + if (target.isCheckDomainIps()) { + Set associatedUrls = getAssociatedUrls(target.getBaseUrl()); + Map> associates = healthChecker.getAssociates(); + Set prevAssociatedUrls = new HashSet<>(associates.keySet()); + + boolean changed = false; + for (String url : associatedUrls) { + if (!prevAssociatedUrls.contains(url)) { + BaseHealthChecker associate = initHealthChecker(createTarget(url), healthChecker.getConfig()); + associates.put(url, associate); + changed = true; + } + } + for (String url : prevAssociatedUrls) { + if (!associatedUrls.contains(url)) { + stopHealthChecker(healthChecker); + associates.remove(url); + changed = true; + } + } + if (changed) { + log.info("Updated IPs for {}: {} (old list: {})", target.getBaseUrl(), associatedUrls, prevAssociatedUrls); + } + } + } + + @SneakyThrows + private Set getAssociatedUrls(String baseUrl) { + URI url = new URI(baseUrl); + return Arrays.stream(InetAddress.getAllByName(url.getHost())) + .map(InetAddress::getHostAddress) + .map(ip -> { + try { + return new URI(url.getScheme(), null, ip, url.getPort(), "", null, null).toString(); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + }) + .collect(Collectors.toSet()); + } + + private void stopHealthChecker(BaseHealthChecker healthChecker) throws Exception { + healthChecker.destroyClient(); + devices.remove(healthChecker.getTarget().getDeviceId()); + log.info("Stopped {} for {}", healthChecker.getClass().getSimpleName(), healthChecker.getTarget().getBaseUrl()); + } + protected abstract BaseHealthChecker createHealthChecker(C config, T target); protected abstract T createTarget(String baseUrl); From cf942478b3783bb4bb24a53d23f21c85d7842816 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 27 Nov 2023 14:56:22 +0200 Subject: [PATCH 112/162] UI: Improve image references component style. Improve browse image gallery popup. --- .../image/gallery-image-input.component.scss | 13 ++- .../image/gallery-image-input.component.ts | 16 ++-- .../image/image-gallery.component.html | 8 +- .../image/image-gallery.component.scss | 14 ++- .../image/image-gallery.component.ts | 73 +++++++++------ .../image/image-references.component.html | 27 +++--- .../image/image-references.component.scss | 92 +++++++++++++++++++ .../image/image-references.component.ts | 2 +- .../image/images-in-use-dialog.component.scss | 1 + ui-ngx/src/form.scss | 1 + 10 files changed, 190 insertions(+), 57 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/image/image-references.component.scss diff --git a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss index 6b64516816..77b3aaec7a 100644 --- a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.scss @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +@import "../../../../../scss/constants"; + $containerHeight: 96px !default; :host { @@ -94,6 +97,11 @@ $containerHeight: 96px !default; gap: 4px; .tb-resource-image-name { color: rgba(0, 0, 0, 0.54); + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 2; + display: -webkit-box; + -webkit-box-orient: vertical; font-size: 12px; font-style: normal; font-weight: 500; @@ -166,9 +174,12 @@ $containerHeight: 96px !default; justify-content: center; align-items: center; gap: 4px; - padding: 16px; + padding: 8px; line-height: normal; font-size: 12px; + @media #{$mat-gt-xs} { + padding: 16px; + } .mat-icon { width: 24px; height: 24px; diff --git a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts index 527fe28d12..e0e4166918 100644 --- a/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/gallery-image-input.component.ts @@ -97,8 +97,7 @@ export class GalleryImageInputComponent extends PageComponent implements OnInit, ngOnInit() { this.externalLinkControl.valueChanges.subscribe((value) => { if (this.linkType === ImageLinkType.external) { - this.imageUrl = value; - this.updateModel(); + this.updateModel(value); } }); } @@ -168,21 +167,23 @@ export class GalleryImageInputComponent extends PageComponent implements OnInit, } } - private updateModel() { + private updateModel(value: string) { this.cd.markForCheck(); - this.propagateChange(this.imageUrl); + if (this.imageUrl !== value) { + this.imageUrl = value; + this.propagateChange(this.imageUrl); + } } private reset() { this.linkType = ImageLinkType.none; - this.imageUrl = null; this.imageResource = null; this.externalLinkControl.setValue(null, {emitEvent: false}); } clearImage() { this.reset(); - this.updateModel(); + this.updateModel(null); } setLink($event: Event) { @@ -214,9 +215,8 @@ export class GalleryImageInputComponent extends PageComponent implements OnInit, imageGalleryPopover.tbComponentRef.instance.imageSelected.subscribe((image) => { imageGalleryPopover.hide(); this.linkType = ImageLinkType.resource; - this.imageUrl = image.link; this.imageResource = image; - this.updateModel(); + this.updateModel(image.link); }); } } diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html index 6b46bb1779..882f411dd9 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.html @@ -45,7 +45,8 @@ {{ 'image.include-system-images' | translate }} + [ngModel]="includeSystemImages" + (ngModelChange)="includeSystemImagesChanged($event)">{{ 'image.include-system-images' | translate }}
@@ -91,7 +92,8 @@
{{ 'image.include-system-images' | translate }} + [ngModel]="includeSystemImages" + (ngModelChange)="includeSystemImagesChanged($event)">{{ 'image.include-system-images' | translate }}
@@ -259,7 +261,7 @@ + *matRowDef="let image; columns: displayedColumns;" (click)="rowClick($event, image)">
diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss index 00b40ff2e1..e82fcc84b1 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.scss @@ -28,23 +28,27 @@ $tb-button-selected-color: rgb(255, 110, 64) !default; max-width: calc(100vw - 50px); max-height: calc(100vh - 100px); @media #{$mat-gt-xs} { - width: 400px; + width: 500px; height: 600px; } @media #{$mat-gt-sm} { - width: 500px; + width: 700px; height: 600px; } @media #{$mat-gt-md} { - width: 700px; + width: 1000px; height: 700px; } @media #{$mat-gt-xmd} { - width: 900px; + width: 1300px; height: 700px; } @media #{$mat-gt-xl} { - width: 1200px; + width: 1600px; + height: 800px; + } + @media screen and (min-width: 2320px) { + width: 2000px; height: 800px; } } diff --git a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts index c8d65d2732..0bad2f1f42 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts +++ b/ui-ngx/src/app/modules/home/components/image/image-gallery.component.ts @@ -88,11 +88,14 @@ const pageGridColumns: ScrollGridColumns = { }; const popoverGridColumns: ScrollGridColumns = { - columns: 2, + columns: 1, breakpoints: { - 'gt-lg': 5, - 'screen and (min-width: 1600px)': 4, - 'gt-md': 3 + 'screen and (min-width: 2320px)': 8, + 'gt-lg': 6, + 'screen and (min-width: 1600px)': 5, + 'gt-md': 4, + 'gt-sm': 3, + 'gt-xs': 2 } }; @@ -141,7 +144,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe dataSource: ImagesDatasource; textSearch = this.fb.control('', {nonNullable: true}); - includeSystemImages = this.fb.control(false); + includeSystemImages = false; gridColumns: ScrollGridColumns; @@ -257,29 +260,29 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } else { this.gridImagesFilter = { search: isNotEmptyStr(value) ? encodeURI(value) : null, - includeSystemImages: this.includeSystemImages.value + includeSystemImages: this.includeSystemImages }; this.cd.markForCheck(); } }); - this.includeSystemImages.valueChanges.pipe( - takeUntil(this.destroy$) - ).subscribe(value => { - this.displayedColumns = this.computeDisplayedColumns(); - this.gridImagesFilter = { - search: this.gridImagesFilter.search, - includeSystemImages: value - }; - if (this.mode === 'list') { - this.paginator.pageIndex = 0; - this.updateData(); - } else { - this.cd.markForCheck(); - } - }); this.updateMode(); } + public includeSystemImagesChanged(value: boolean) { + this.includeSystemImages = value; + this.displayedColumns = this.computeDisplayedColumns(); + this.gridImagesFilter = { + search: this.gridImagesFilter.search, + includeSystemImages: this.includeSystemImages + }; + if (this.mode === 'list') { + this.paginator.pageIndex = 0; + this.updateData(); + } else { + this.cd.markForCheck(); + } + } + public setMode(targetMode: 'list' | 'grid') { if (this.mode !== targetMode) { if (this.widgetResize$) { @@ -307,14 +310,20 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } private computeDisplayedColumns(): string[] { + let columns: string[]; if (this.selectionMode) { - return ['preview', 'title', 'imageSelect']; - } - const columns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size']; - if (!this.isSysAdmin && this.includeSystemImages.value) { - columns.push('system'); + columns = ['preview', 'title']; + if (!this.isSysAdmin && this.includeSystemImages) { + columns.push('system'); + } + columns.push('imageSelect'); + } else { + columns = ['select', 'preview', 'title', 'createdTime', 'resolution', 'size']; + if (!this.isSysAdmin && this.includeSystemImages) { + columns.push('system'); + } + columns.push('actions'); } - columns.push('actions'); return columns; } @@ -411,7 +420,7 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe } else { this.pageLink.sortOrder = null; } - this.dataSource.loadEntities(this.pageLink, this.includeSystemImages.value); + this.dataSource.loadEntities(this.pageLink, this.includeSystemImages); } else { this.gridComponent.update(); } @@ -599,6 +608,14 @@ export class ImageGalleryComponent extends PageComponent implements OnInit, OnDe this.imageSelected.next(image); } + rowClick($event, image: ImageResourceInfo) { + if (this.selectionMode) { + this.selectImage($event, image); + } else { + this.dataSource.selection.toggle(image); + } + } + uploadImage(): void { this.dialog.open(UploadImageDialogComponent, { diff --git a/ui-ngx/src/app/modules/home/components/image/image-references.component.html b/ui-ngx/src/app/modules/home/components/image/image-references.component.html index fd8fd29fbe..611d744cfa 100644 --- a/ui-ngx/src/app/modules/home/components/image/image-references.component.html +++ b/ui-ngx/src/app/modules/home/components/image/image-references.component.html @@ -20,15 +20,17 @@ -
JwG9yi5fVh% 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�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 GgeCyFsre!R literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_double_timeseries.png b/application/src/main/data/images/widgets/input_widgets.update_double_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ebf7fb69b452d47d95cf9988f4a838797e4d2e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nU!_UXb_dQ1_xHy9W1p@UhSF2W%v-YCsX&m=mNK#^$n}?zDy}MiDU06dh*4ji7jJW)yg;G3@zHHkGX1m>%acM z_*~+J?u>^KOqcR6KFDEdD676LEU57C(Sh#Y2j(9)U&U3!*-^4@+qP3o45xCgXdn6X zd&Ax&j*JSqRztR#P8S-!vF*RVo?~nO9}Uy&hNaT++{vkD~x#$Xgv0vcr%S*mzVZgXQg*=xc{;uoy==@_ z7S(0CFjoFc^Z!zKp=H?8#<@v5w3IS_U zSAO0&>1lbuf5rw)`+o(z4UVoR3tqXIOUze8? zD81SxUipS~aemYOo1EY@7Fj>xb|!Bc$;nMo#aJ=2*s-82=BAC_>q9pSJGZSm-Iskf Z^bf1+^5i9^|BS)8&C}J-Wt~$(696q)jne=C literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_integer_timeseries.png b/application/src/main/data/images/widgets/input_widgets.update_integer_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..c855ff403318a6b0699570a169ad905e60551992 GIT binary patch literal 904 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nU!=;`7Z zQgQ3;-Mikwi8AaT{%S9~(kj3@jZ^VT>%-6hg(tnSGdi1RK8w<=;Vj%6F+*tOT@O~* zb=RG5Tycm|2-7;%a!BV{81wlrJ2GeISzF)Nd*=PDEb+#T&HMIu7ti~AVCRny)%Pq4 z=DD|byeZ<6)3fA>J@PhOv0_DCxr_SmiEIz2m+G0yDy;H;?h@59S-^=yv4tdJLOo~Y zcS(j{*H`g=x;Fg|pP<6t?F<@Exj7Xto_OJ{JL#7|d@KKp-MnXR*|#w^ujyUE(aU(T za5oRbJ8yH{t&5qyOx(8J;j)2SR<-qdW;V+pu_JrrqHf2Y{KCs{h*xbs$K1b%P0vU< z&G@1awQ&QZWd4!S36&@BBuYb>MFMmHnYyRB^5Amp|SyGG+k)2g75_R&o zUM+9v3lEe?n!xbv>xR;by>YH9DxY}wMlwsae_VNoxw+@ndWp-)&;H2R@GVrhmCAXb z;_A_`$1FTXY+7e?s}eRWJ7}Z&=!_iiy6>~5N)!Y>7HS2B%ai}jI{BI%j2G|a#0lt{ zdv9#IvPVbAWwX@V+1VG*c%#`pBt{=lfc9n2TkM9Vg$OnLNNIaTrFC&AO6 zOzx)~o4&^|Y)Stpd%NYt-L=CwDQn(lJk-?@6Bn|mQ`+$FLqfPih{uv8 z4vY;6Vd4$n-mF+4u-0n#{f7k>B2%97>he9E<&qoaExECxrFGSsp1aQ)PAt9_)na=n zC;4zcKO|kf(Rtz*)GSG2Dgy?+r?1B?8G$)+?qE{2u9EL^j*E50i%b$8OV RvbCTr=IQF^vd$@?2>{Aog2ey; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_json_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_json_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0a90434bd91d1eee33369d37f43be5e104ec9f GIT binary patch literal 5039 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 YGH7K-s4MzWD{wS7jm!-z^^wv41Ax<#9smFU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_location_timeseries.png b/application/src/main/data/images/widgets/input_widgets.update_location_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..f8dfd2ee37fd507ad84428bc62fc43ef07d97b17 GIT binary patch literal 2459 zcmZveXEYlM8^dcGrnvU1QAMjYu91*Z z+Pb9(V%A8FR9v-J?YzC`yyx`&@SgK~p8uEU<8yxJA8%xEm!C(32LJ%@YvZscKeFq` z6m$Jp076Cx@kan1bnjvT?AVmvw*UaQsWuj4N}5=iUa=6efVKOaWb#JpJUds1TWQiA zX`FcW!b8o29N?bq*=IcstTvJEOdutgWI$|^6Rah!e6mjD)iPF2jL;p?$<&H6>PeS} z#=&Qisg7-jlE#94ZR2WmZWiN$H%m!)#&3bq9H_AG6y;59Y&=DB{U&m$i%9L)kGK%{ z#lynLLL$9*o5Em(vNr9!ur0w0` zY$|k1-sEp;ghQQ}<=okMh~32Og6peS81E*=3bOJ2$zhZQY_si773{38rfP)RO?N-H z%ml=!VLwcd7+REOb|uTT#O8zZD;qK8)*T zN`6IjIVVHC>OH}+PhT#tu6j~mD!x_6c_QT{lzdA8^j8_nu`A~q!W~8RToxc|O{kS| zchl4HhB(|J!7{&~ZdP(MMIi0r^GlwxN~2|tGUJpM87DHVI^@q5#u=y-^`ol7=@j6V zxl?4NIpN)88Q4wDG${8^QX^t>^kve!nUS;UlLEvk0XFHrMKf@HsH2c=64K!&gl_J3 zyqXK6N ztUo}@qbuJnl7eDyoBK9+@F{K_5wH@(8vm75BO26vP zy(5m}Uke0G zb0c@{QJiSjw%68Up!l4g{h$Y&{o={Ba;-)*Epfo5FT*6K1ym{cAS-|ky9V6OZ#y_n zFrKOD=@#M{=F#`BTu_$2tMzNrAhYTeJ#R85RC^n0t;p=Kjz?~vK~oiEdMhKWCKsap zS18)-!wJuA1k1?eovP{eC#H!alD-jDrK`5DZf!5NE_Dus1Us+1=jE8mQr2CbL|4d} z2$q=@ICnUs;}>_Mt6lvhmf7==vP4alX+p`hU@3#N{sYYjRc5UUyviZ+s!w{R3j9Hf z*9eQ%WePBeH$aoKtm{7$Y%d#pxj!V?F8Pb{o~f**=5rOe6JlTO_KE!qjod2}ih738 z-}3R}wjr-a9qKHn@M+<$&Gm|VQQtd*G$P&erc{$_`h`mr4+?FPz1}RFXb*iVLTE4u zpd{-OD>be^-Vx4nc{TS4s31yDIxcc`_H);b^9(DV?Wnm?nx$UqzZb(AG=~7@wcKM@ z((VvIZ8{ZqXknMI8qz;-yozqi8<6aedt6z}ciV)UFV44#Wq-GPjaDz`r<@A^6#v0T z$wf0>^FbRY4|e~?#?jt*?gz;)+3k^XvM?gr*kN$KKh_PAqAJ1goBLRz(lx-ifxfv< zx(mPr)0IxgMTK_L(Lcy_4oDL$T z9G~3%g^ z#)_cel)vP^F||Oey>EWkehcKQxCkB|YuGJ_nFB4e!E|>uA9>1X19Ysjq<#-hM8cN% zLdg6yaj@L4Cr!A})C{l-&M6$}i2ujxIhwAF`>gJA)u>ioRnTq#MqRb?&?spZ~HEqqqb6bVeN|GIP|D zENX4a)oiErQST}w6T|vtO*Vl)C8~$o^HsllT{$Bnw^VG}tVy3AY0p-|)@6;Q7yGH$eEVG+fJK#o_Hr@Euu|KY>SD|@qZJ`$hA3ojwki}MWjfMUiQD8 z4zei^yh2$IwfwC{AdqlYjIZ%Z?H-W=r_G&sk8TF;Ja8%HdwA*t&jj+E_3qQP zPbb<*`ELJu4(8+;Oox8ITw}SK^;mQxJ%9sJ?hi`p#hZMwIU4{?cqA}|9C_GYH=}kw zv6Bvdlu3PNx5_y+63gmy16STWiP=q9%htmUwH&kVmrSoNU?w^lv2=wgMd^JNI<>=L zBAX{wNa4DBLGAcq-ldta%7W1AOp@c)banAy_XgA>aDYjA)tt`;7_p9T US#oer{M)*;H4U)U8uz3A1N#l04gdfE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_multiple_attributes.png b/application/src/main/data/images/widgets/input_widgets.update_multiple_attributes.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f93432b709654610cd5c103f9e42cad0dab0e0 GIT binary patch literal 5976 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 GgeCyFsre!R literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_server_date_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_server_date_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe304a0ea712831659c9b35b3aeffb11f6c060d GIT binary patch literal 1933 zcmbW2`#;kQ1INGHY!kVZB$P|)DUm}~B4%yMEt5+`txd^wYOb4u8YT*vGS}RhgV<3W z*JVTH@*>J@m`iws8a9_WL#OBUdj5gu`Qh_rmm!Sj_#;6oK?q@jL zzpU}|Cl)8$F(^G>D7}Q~=~4>FN%5kw#-8hpn9Htdh*S;tHsKScB8a2HdOZs2cJn#` z#~Z6N@0Lom!mj&3Kdx>g#NFbh@7~@MS>!x*uNcy>>-h4F!?oq39k_rWeeG>`SYhzN zu?4sXORhq+22UtEHILjmx+HC(0p6E@k~k_KE&0F9*-&((*Xm>20JEyo7p~8Pr!q%~ z=WbmA#-{le&QatfHtMCl5zD&P<1f5} zLCdF_g)9}7#Ee@3?crZ;>i}OjNcT7#kGrN*jgMBnFr9Yz!7M3m_-+woir+{}>m|Mg zKC^iXHlz4W->o*Snz)a1q2cjECV+~IBCArG##3@q%5f)*HZ&1>6kMwJQkE@OkJV$>9fb z?Cj}=_&34DwZo`%7B6HUU%PVVbKTVV8)i#RWtHtK5P#eB;suqm9}>bjAE9;f+oi6h z6)@!nh}{bV1VWv7&TB2bbz2k`6cuh{Gn{n-)8)-0(IQDt%0tc!Qs2O?AXQad! z$nqeQqVyH1xL`u-O{J$~Zw%H7n#Z|9qovAm5BRm8Av_y`z6!TE{nXk(|L3@uX|Pr@ z(a+*6@z7kM9zr=NMh6e`TvOtv*ZImI_m;@4ftCy|6&NWP!U^~G(pf5?<$8sIie+kv zkw>R)!BsPY&0&)DIJeqq6e`Mtc|Hs#P=W*Txl z_34ND(Y{isPd>#qcTxXh!K?qUnc|bmIFqm3R+?dHIuA8F4i8D1LX{g-H?dpsJs+*q z7g}~xpY8vm5iE&Xo67*oU7=Jr<0oJ%v3t}vq{z=T`j4|j(6DB0D4`>75 zKlv}fgfMT=@x>E>Zkr(&2f3R5I;>+4@8BN&&~<6F+5xiOFch8rz-$t3x_8G|{!AD3 zMJ$t4EFXQ=&scwgdH_VpNV>l$D?AAaQso-&>^u#coh*~hcZNNNc@9dW!EH=Yv{o1B zym=-cOgDIrvKnwHK;z;dPDzp9-Y8=Uw@pd*4B*(_ANdcOP?3dMT(`R*)5H(Ry*yF` zUte`>Qi5_{AdTwkw__$fq1wfHLzMSXy*oEefXR0loQ5Hyz`~7??JyG*h3JH>c<7R@ z?WkI*J9imsB#px|2k%U+I{awdu5PMGcp?9re8aab%}JHv)aSWbowm{TOc3+a<*zyz z_a>B!orEL2&I#EEo5CT7{^)wo5yY|3H(CydWqYHM*)lIvz+so>kBp40f^fJm>_*wM z5K+FWW3{ilLn_m^&cxBpqh0NY^f+8wGd>hI><=+HM3?r%;i z(LG<@j0n9;^0Q}v@fMi=WWd?Cb}PCH>Pr)C+@3SNrh+)pTW WJj0`#8A$t&XRR+`EvnIkn12AkQI53$ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_server_double_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_server_double_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ebf7fb69b452d47d95cf9988f4a838797e4d2e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nU!_UXb_dQ1_xHy9W1p@UhSF2W%v-YCsX&m=mNK#^$n}?zDy}MiDU06dh*4ji7jJW)yg;G3@zHHkGX1m>%acM z_*~+J?u>^KOqcR6KFDEdD676LEU57C(Sh#Y2j(9)U&U3!*-^4@+qP3o45xCgXdn6X zd&Ax&j*JSqRztR#P8S-!vF*RVo?~nO9}Uy&hNaT++{vkD~x#$Xgv0vcr%S*mzVZgXQg*=xc{;uoy==@_ z7S(0CFjoFc^Z!zKp=H?8#<@v5w3IS_U zSAO0&>1lbuf5rw)`+o(z4UVoR3tqXIOUze8? zD81SxUipS~aemYOo1EY@7Fj>xb|!Bc$;nMo#aJ=2*s-82=BAC_>q9pSJGZSm-Iskf Z^bf1+^5i9^|BS)8&C}J-Wt~$(696q)jne=C literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_server_image_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_server_image_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c0ef4e1c101b12cf95b702cd7668410fced884 GIT binary patch literal 2191 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 RvbCTr=IQF^vd$@?2>{Aog2ey; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_server_location_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_server_location_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..f8dfd2ee37fd507ad84428bc62fc43ef07d97b17 GIT binary patch literal 2459 zcmZveXEYlM8^dcGrnvU1QAMjYu91*Z z+Pb9(V%A8FR9v-J?YzC`yyx`&@SgK~p8uEU<8yxJA8%xEm!C(32LJ%@YvZscKeFq` z6m$Jp076Cx@kan1bnjvT?AVmvw*UaQsWuj4N}5=iUa=6efVKOaWb#JpJUds1TWQiA zX`FcW!b8o29N?bq*=IcstTvJEOdutgWI$|^6Rah!e6mjD)iPF2jL;p?$<&H6>PeS} z#=&Qisg7-jlE#94ZR2WmZWiN$H%m!)#&3bq9H_AG6y;59Y&=DB{U&m$i%9L)kGK%{ z#lynLLL$9*o5Em(vNr9!ur0w0` zY$|k1-sEp;ghQQ}<=okMh~32Og6peS81E*=3bOJ2$zhZQY_si773{38rfP)RO?N-H z%ml=!VLwcd7+REOb|uTT#O8zZD;qK8)*T zN`6IjIVVHC>OH}+PhT#tu6j~mD!x_6c_QT{lzdA8^j8_nu`A~q!W~8RToxc|O{kS| zchl4HhB(|J!7{&~ZdP(MMIi0r^GlwxN~2|tGUJpM87DHVI^@q5#u=y-^`ol7=@j6V zxl?4NIpN)88Q4wDG${8^QX^t>^kve!nUS;UlLEvk0XFHrMKf@HsH2c=64K!&gl_J3 zyqXK6N ztUo}@qbuJnl7eDyoBK9+@F{K_5wH@(8vm75BO26vP zy(5m}Uke0G zb0c@{QJiSjw%68Up!l4g{h$Y&{o={Ba;-)*Epfo5FT*6K1ym{cAS-|ky9V6OZ#y_n zFrKOD=@#M{=F#`BTu_$2tMzNrAhYTeJ#R85RC^n0t;p=Kjz?~vK~oiEdMhKWCKsap zS18)-!wJuA1k1?eovP{eC#H!alD-jDrK`5DZf!5NE_Dus1Us+1=jE8mQr2CbL|4d} z2$q=@ICnUs;}>_Mt6lvhmf7==vP4alX+p`hU@3#N{sYYjRc5UUyviZ+s!w{R3j9Hf z*9eQ%WePBeH$aoKtm{7$Y%d#pxj!V?F8Pb{o~f**=5rOe6JlTO_KE!qjod2}ih738 z-}3R}wjr-a9qKHn@M+<$&Gm|VQQtd*G$P&erc{$_`h`mr4+?FPz1}RFXb*iVLTE4u zpd{-OD>be^-Vx4nc{TS4s31yDIxcc`_H);b^9(DV?Wnm?nx$UqzZb(AG=~7@wcKM@ z((VvIZ8{ZqXknMI8qz;-yozqi8<6aedt6z}ciV)UFV44#Wq-GPjaDz`r<@A^6#v0T z$wf0>^FbRY4|e~?#?jt*?gz;)+3k^XvM?gr*kN$KKh_PAqAJ1goBLRz(lx-ifxfv< zx(mPr)0IxgMTK_L(Lcy_4oDL$T z9G~3%g^ z#)_cel)vP^F||Oey>EWkehcKQxCkB|YuGJ_nFB4e!E|>uA9>1X19Ysjq<#-hM8cN% zLdg6yaj@L4Cr!A})C{l-&M6$}i2ujxIhwAF`>gJA)u>ioRnTq#MqRb?&?spZ~HEqqqb6bVeN|GIP|D zENX4a)oiErQST}w6T|vtO*Vl)C8~$o^HsllT{$Bnw^VG}tVy3AY0p-|)@6;Q7yGH$eEVG+fJK#o_Hr@Euu|KY>SD|@qZJ`$hA3ojwki}MWjfMUiQD8 z4zei^yh2$IwfwC{AdqlYjIZ%Z?H-W=r_G&sk8TF;Ja8%HdwA*t&jj+E_3qQP zPbb<*`ELJu4(8+;Oox8ITw}SK^;mQxJ%9sJ?hi`p#hZMwIU4{?cqA}|9C_GYH=}kw zv6Bvdlu3PNx5_y+63gmy16STWiP=q9%htmUwH&kVmrSoNU?w^lv2=wgMd^JNI<>=L zBAX{wNa4DBLGAcq-ldta%7W1AOp@c)banAy_XgA>aDYjA)tt`;7_p9T US#oer{M)*;H4U)U8uz3A1N#l04gdfE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_server_string_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_server_string_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..61399c1954f010c402f52112376757b666e2d9c3 GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nUE#M8ww zq~g}wySKeX0%h1g{0(<|t*Oen`Hh=@TWin_Uez;;1h#HHb2Z4vHO7?tY@XCl1>2Ce zz}YjR6lOKfI5q9&QH|28qVCc9m3QaPjeovl+Vs1%0@r5T+-HBoxc%_V_VfRq#gu(} zm~ldFR#m8++C?v^=>IJ)TKt)d?k^KmKf#^kbY+H0euIaauYRTL7bYeSg$4$ah)we* zn8#QAeC5A6tYqKH{lUBwcD-J+;Yi=k)*HER&!^1(r1-e-vCG$^E{A>JuaQyO?rC!W zAj7d`tRerOX8-Cb6YZHe>AK5K-7C`q!@~|JZrg19#dzM6N!D#w9=Cd%m%O)JqG-5QW!?%yOYODMz1q8LpS@o(vzS3WH7AgPkww7apZ$q7 z!LG6bKcAlBy_mD`V4$JMxmBD>_7_dp<`}-+0KC77LFpb>1j2t-tDd z*fgH&KLd1*gxbki7CsJ;NqIJ}(|T2mwGDTt)z&_NZoA?GXN#YHbkB}eG?`X@^ogCk zoa~#|+=-T+rStnuefNvXy45n)=ZD@qmcKf2D*xHmoo+_YUP_B8#F}rGuJm7N_4{4; zy^V{tEw81%@97V=(?t;XKO&*g+~%Eg=T5`oYwk!XvX5jPKwKw!=06qBLW3> zaLg3Z(sYRE&zFOK V@LjRy+gJ(8#h$KyF6*2UngBahwwnL| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_boolean_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_boolean_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb476e91862771cc6c1232fef620168015a922e GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf59A1Vx;TbZ z+iE@u|XuL)`koMw=za|NK`jZQnGL zn)PccZT9PhEf&(aXrr~lM8{r$S?I^K=e4>8HJKTiSU3a}92yu%WIU;N_EP>f zuV;!$>zm>m-&QOWxc%?@t(X&U_N<$5PdPB|o!;*BlGZsp{;8f>#wf7;?;5*ZfA`#M zTVuN?oag?QIDea;OJ$!FA3qTB>k(hd&kq-#K8Y249`WtW%UyO8>aLf@pST>Yl+X94 zN8xd;()n|zcmJ4WVzl{}LzV3DN}0MXHs*7Ce+oVceRQjR+KJxBKWp|qUzHb~{qV)o zJ9Euk#MYNA<$AP)?a-5wW*#f0`L`zYiv~{SG%fWy9i06mXM>?cbgzQ*^Q@x%o3~D? zxNxWF-fOmxe#iLk_J}HbZ2g~L6f00UyYsmIl`q^BWt z{9DF*%P!JG3>wacB1vZ&5{%u<>OZgDCF#6nYU;6wV%6I|fzz6gH72rvQjDjopUXO@ GgeCyFsre!R literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_date_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_date_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe304a0ea712831659c9b35b3aeffb11f6c060d GIT binary patch literal 1933 zcmbW2`#;kQ1INGHY!kVZB$P|)DUm}~B4%yMEt5+`txd^wYOb4u8YT*vGS}RhgV<3W z*JVTH@*>J@m`iws8a9_WL#OBUdj5gu`Qh_rmm!Sj_#;6oK?q@jL zzpU}|Cl)8$F(^G>D7}Q~=~4>FN%5kw#-8hpn9Htdh*S;tHsKScB8a2HdOZs2cJn#` z#~Z6N@0Lom!mj&3Kdx>g#NFbh@7~@MS>!x*uNcy>>-h4F!?oq39k_rWeeG>`SYhzN zu?4sXORhq+22UtEHILjmx+HC(0p6E@k~k_KE&0F9*-&((*Xm>20JEyo7p~8Pr!q%~ z=WbmA#-{le&QatfHtMCl5zD&P<1f5} zLCdF_g)9}7#Ee@3?crZ;>i}OjNcT7#kGrN*jgMBnFr9Yz!7M3m_-+woir+{}>m|Mg zKC^iXHlz4W->o*Snz)a1q2cjECV+~IBCArG##3@q%5f)*HZ&1>6kMwJQkE@OkJV$>9fb z?Cj}=_&34DwZo`%7B6HUU%PVVbKTVV8)i#RWtHtK5P#eB;suqm9}>bjAE9;f+oi6h z6)@!nh}{bV1VWv7&TB2bbz2k`6cuh{Gn{n-)8)-0(IQDt%0tc!Qs2O?AXQad! z$nqeQqVyH1xL`u-O{J$~Zw%H7n#Z|9qovAm5BRm8Av_y`z6!TE{nXk(|L3@uX|Pr@ z(a+*6@z7kM9zr=NMh6e`TvOtv*ZImI_m;@4ftCy|6&NWP!U^~G(pf5?<$8sIie+kv zkw>R)!BsPY&0&)DIJeqq6e`Mtc|Hs#P=W*Txl z_34ND(Y{isPd>#qcTxXh!K?qUnc|bmIFqm3R+?dHIuA8F4i8D1LX{g-H?dpsJs+*q z7g}~xpY8vm5iE&Xo67*oU7=Jr<0oJ%v3t}vq{z=T`j4|j(6DB0D4`>75 zKlv}fgfMT=@x>E>Zkr(&2f3R5I;>+4@8BN&&~<6F+5xiOFch8rz-$t3x_8G|{!AD3 zMJ$t4EFXQ=&scwgdH_VpNV>l$D?AAaQso-&>^u#coh*~hcZNNNc@9dW!EH=Yv{o1B zym=-cOgDIrvKnwHK;z;dPDzp9-Y8=Uw@pd*4B*(_ANdcOP?3dMT(`R*)5H(Ry*yF` zUte`>Qi5_{AdTwkw__$fq1wfHLzMSXy*oEefXR0loQ5Hyz`~7??JyG*h3JH>c<7R@ z?WkI*J9imsB#px|2k%U+I{awdu5PMGcp?9re8aab%}JHv)aSWbowm{TOc3+a<*zyz z_a>B!orEL2&I#EEo5CT7{^)wo5yY|3H(CydWqYHM*)lIvz+so>kBp40f^fJm>_*wM z5K+FWW3{ilLn_m^&cxBpqh0NY^f+8wGd>hI><=+HM3?r%;i z(LG<@j0n9;^0Q}v@fMi=WWd?Cb}PCH>Pr)C+@3SNrh+)pTW WJj0`#8A$t&XRR+`EvnIkn12AkQI53$ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_double_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_double_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ebf7fb69b452d47d95cf9988f4a838797e4d2e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nU!_UXb_dQ1_xHy9W1p@UhSF2W%v-YCsX&m=mNK#^$n}?zDy}MiDU06dh*4ji7jJW)yg;G3@zHHkGX1m>%acM z_*~+J?u>^KOqcR6KFDEdD676LEU57C(Sh#Y2j(9)U&U3!*-^4@+qP3o45xCgXdn6X zd&Ax&j*JSqRztR#P8S-!vF*RVo?~nO9}Uy&hNaT++{vkD~x#$Xgv0vcr%S*mzVZgXQg*=xc{;uoy==@_ z7S(0CFjoFc^Z!zKp=H?8#<@v5w3IS_U zSAO0&>1lbuf5rw)`+o(z4UVoR3tqXIOUze8? zD81SxUipS~aemYOo1EY@7Fj>xb|!Bc$;nMo#aJ=2*s-82=BAC_>q9pSJGZSm-Iskf Z^bf1+^5i9^|BS)8&C}J-Wt~$(696q)jne=C literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_image_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_image_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c0ef4e1c101b12cf95b702cd7668410fced884 GIT binary patch literal 2191 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 RvbCTr=IQF^vd$@?2>{Aog2ey; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_location_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_location_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..f8dfd2ee37fd507ad84428bc62fc43ef07d97b17 GIT binary patch literal 2459 zcmZveXEYlM8^dcGrnvU1QAMjYu91*Z z+Pb9(V%A8FR9v-J?YzC`yyx`&@SgK~p8uEU<8yxJA8%xEm!C(32LJ%@YvZscKeFq` z6m$Jp076Cx@kan1bnjvT?AVmvw*UaQsWuj4N}5=iUa=6efVKOaWb#JpJUds1TWQiA zX`FcW!b8o29N?bq*=IcstTvJEOdutgWI$|^6Rah!e6mjD)iPF2jL;p?$<&H6>PeS} z#=&Qisg7-jlE#94ZR2WmZWiN$H%m!)#&3bq9H_AG6y;59Y&=DB{U&m$i%9L)kGK%{ z#lynLLL$9*o5Em(vNr9!ur0w0` zY$|k1-sEp;ghQQ}<=okMh~32Og6peS81E*=3bOJ2$zhZQY_si773{38rfP)RO?N-H z%ml=!VLwcd7+REOb|uTT#O8zZD;qK8)*T zN`6IjIVVHC>OH}+PhT#tu6j~mD!x_6c_QT{lzdA8^j8_nu`A~q!W~8RToxc|O{kS| zchl4HhB(|J!7{&~ZdP(MMIi0r^GlwxN~2|tGUJpM87DHVI^@q5#u=y-^`ol7=@j6V zxl?4NIpN)88Q4wDG${8^QX^t>^kve!nUS;UlLEvk0XFHrMKf@HsH2c=64K!&gl_J3 zyqXK6N ztUo}@qbuJnl7eDyoBK9+@F{K_5wH@(8vm75BO26vP zy(5m}Uke0G zb0c@{QJiSjw%68Up!l4g{h$Y&{o={Ba;-)*Epfo5FT*6K1ym{cAS-|ky9V6OZ#y_n zFrKOD=@#M{=F#`BTu_$2tMzNrAhYTeJ#R85RC^n0t;p=Kjz?~vK~oiEdMhKWCKsap zS18)-!wJuA1k1?eovP{eC#H!alD-jDrK`5DZf!5NE_Dus1Us+1=jE8mQr2CbL|4d} z2$q=@ICnUs;}>_Mt6lvhmf7==vP4alX+p`hU@3#N{sYYjRc5UUyviZ+s!w{R3j9Hf z*9eQ%WePBeH$aoKtm{7$Y%d#pxj!V?F8Pb{o~f**=5rOe6JlTO_KE!qjod2}ih738 z-}3R}wjr-a9qKHn@M+<$&Gm|VQQtd*G$P&erc{$_`h`mr4+?FPz1}RFXb*iVLTE4u zpd{-OD>be^-Vx4nc{TS4s31yDIxcc`_H);b^9(DV?Wnm?nx$UqzZb(AG=~7@wcKM@ z((VvIZ8{ZqXknMI8qz;-yozqi8<6aedt6z}ciV)UFV44#Wq-GPjaDz`r<@A^6#v0T z$wf0>^FbRY4|e~?#?jt*?gz;)+3k^XvM?gr*kN$KKh_PAqAJ1goBLRz(lx-ifxfv< zx(mPr)0IxgMTK_L(Lcy_4oDL$T z9G~3%g^ z#)_cel)vP^F||Oey>EWkehcKQxCkB|YuGJ_nFB4e!E|>uA9>1X19Ysjq<#-hM8cN% zLdg6yaj@L4Cr!A})C{l-&M6$}i2ujxIhwAF`>gJA)u>ioRnTq#MqRb?&?spZ~HEqqqb6bVeN|GIP|D zENX4a)oiErQST}w6T|vtO*Vl)C8~$o^HsllT{$Bnw^VG}tVy3AY0p-|)@6;Q7yGH$eEVG+fJK#o_Hr@Euu|KY>SD|@qZJ`$hA3ojwki}MWjfMUiQD8 z4zei^yh2$IwfwC{AdqlYjIZ%Z?H-W=r_G&sk8TF;Ja8%HdwA*t&jj+E_3qQP zPbb<*`ELJu4(8+;Oox8ITw}SK^;mQxJ%9sJ?hi`p#hZMwIU4{?cqA}|9C_GYH=}kw zv6Bvdlu3PNx5_y+63gmy16STWiP=q9%htmUwH&kVmrSoNU?w^lv2=wgMd^JNI<>=L zBAX{wNa4DBLGAcq-ldta%7W1AOp@c)banAy_XgA>aDYjA)tt`;7_p9T US#oer{M)*;H4U)U8uz3A1N#l04gdfE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_shared_string_attribute.png b/application/src/main/data/images/widgets/input_widgets.update_shared_string_attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..61399c1954f010c402f52112376757b666e2d9c3 GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nUE#M8ww zq~g}wySKeX0%h1g{0(<|t*Oen`Hh=@TWin_Uez;;1h#HHb2Z4vHO7?tY@XCl1>2Ce zz}YjR6lOKfI5q9&QH|28qVCc9m3QaPjeovl+Vs1%0@r5T+-HBoxc%_V_VfRq#gu(} zm~ldFR#m8++C?v^=>IJ)TKt)d?k^KmKf#^kbY+H0euIaauYRTL7bYeSg$4$ah)we* zn8#QAeC5A6tYqKH{lUBwcD-J+;Yi=k)*HER&!^1(r1-e-vCG$^E{A>JuaQyO?rC!W zAj7d`tRerOX8-Cb6YZHe>AK5K-7C`q!@~|JZrg19#dzM6N!D#w9=Cd%m%O)JqG-5QW!?%yOYODMz1q8LpS@o(vzS3WH7AgPkww7apZ$q7 z!LG6bKcAlBy_mD`V4$JMxmBD>_7_dp<`}-+0KC77LFpb>1j2t-tDd z*fgH&KLd1*gxbki7CsJ;NqIJ}(|T2mwGDTt)z&_NZoA?GXN#YHbkB}eG?`X@^ogCk zoa~#|+=-T+rStnuefNvXy45n)=ZD@qmcKf2D*xHmoo+_YUP_B8#F}rGuJm7N_4{4; zy^V{tEw81%@97V=(?t;XKO&*g+~%Eg=T5`oYwk!XvX5jPKwKw!=06qBLW3> zaLg3Z(sYRE&zFOK V@LjRy+gJ(8#h$KyF6*2UngBahwwnL| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.update_string_timeseries.png b/application/src/main/data/images/widgets/input_widgets.update_string_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..61399c1954f010c402f52112376757b666e2d9c3 GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^CxCbX2asUMnNm{|xA&jf&%nUE#M8ww zq~g}wySKeX0%h1g{0(<|t*Oen`Hh=@TWin_Uez;;1h#HHb2Z4vHO7?tY@XCl1>2Ce zz}YjR6lOKfI5q9&QH|28qVCc9m3QaPjeovl+Vs1%0@r5T+-HBoxc%_V_VfRq#gu(} zm~ldFR#m8++C?v^=>IJ)TKt)d?k^KmKf#^kbY+H0euIaauYRTL7bYeSg$4$ah)we* zn8#QAeC5A6tYqKH{lUBwcD-J+;Yi=k)*HER&!^1(r1-e-vCG$^E{A>JuaQyO?rC!W zAj7d`tRerOX8-Cb6YZHe>AK5K-7C`q!@~|JZrg19#dzM6N!D#w9=Cd%m%O)JqG-5QW!?%yOYODMz1q8LpS@o(vzS3WH7AgPkww7apZ$q7 z!LG6bKcAlBy_mD`V4$JMxmBD>_7_dp<`}-+0KC77LFpb>1j2t-tDd z*fgH&KLd1*gxbki7CsJ;NqIJ}(|T2mwGDTt)z&_NZoA?GXN#YHbkB}eG?`X@^ogCk zoa~#|+=-T+rStnuefNvXy45n)=ZD@qmcKf2D*xHmoo+_YUP_B8#F}rGuJm7N_4{4; zy^V{tEw81%@97V=(?t;XKO&*g+~%Eg=T5`oYwk!XvX5jPKwKw!=06qBLW3> zaLg3Z(sYRE&zFOK V@LjRy+gJ(8#h$KyF6*2UngBahwwnL| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/input_widgets.web_camera_input.png b/application/src/main/data/images/widgets/input_widgets.web_camera_input.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e3f3ec6cdb62fa4ea32be811a56066f61ff6d9 GIT binary patch literal 2907 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 HUC6%yR^wwu literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/leaf_wetness_card.png b/application/src/main/data/images/widgets/leaf_wetness_card.png new file mode 100644 index 0000000000000000000000000000000000000000..89c23b3a08a949399fc0e0bdfd5efd26d848962f GIT binary patch literal 1771 zcmai#Yd8}O8^@O!n^ThJFk=T79zB}Fl0#0ju{kxw8`Ahx_;cU;q2deSi9Al0BRia&mH?`@w&`L?W4&VbbVv5qIrqO;|TCK`=) z_QoWe&BkCbE-o&yv9aFX-tYK7*d5<>@0CaTI9z2+@Kjp$wMV5nMgi!;o(;;&@+cPa2^{_3$ zFB&EzWt?~dZD~gMC%THCPFE7?(WNGSCckp2bblc1^n+q9jOwI;xScx8LE-kl!fVdi zuP+oo3#5`@G<@lfjbY4LqeD<%c+A{()n1ZhzfIN6%wr-)ory zDmRSXp5Cf+(fkA`2rr4j!wiTeftO^<!91T{=A=#x&926^mTXpOfE!g5Y*~=*{5ig|3~_`D=_Vhg$#u(hm{i0e z^;b|C@#Nuq2lSQy9^=_VAKwv5^R2)n3~zGI{gqG{pXZgF*4HF$3E%i4 z1euG_JfEz^R!-Q8b$C;{8NaikAojLoemI0W`tRnHj_6(4rP{p1ZaY0W8Z~c^NCj*z zT?|%pvOZSnJV37Xb;-nWmL=h58j7{dU-|GL7dDYyQ%^RLs3$a|6QKf!RznM+G2#;4*^W&s@LMkl~^tG!QFFQ<{S{PuDTQee9 z4EH88|91k(Jafg>E>-y29dhULdxVeNv7wZwIX6n2ixLOI8f!dF^C+W)S-%OYV&twx z5(2eAmnUg8yekHi@j&QdcK7<+lDgaJtpA7b zOO$7;8nWtDB@;SKa5D{V>-(^c;x<0}uF%)VU(-gF^pz(qANaGEspRhuW*^-FBfJX? zDUDR0P(x5kYbk9@50$)5w$BNJcJft;%x+{Mft~GyI#W zp;sWbl6TdOIaGiuHz7D(p=Z5S)yV$MRP%o?tOTIA_}AW=`=_9uPdkpMzvK=tp0_sjuf{bK9~>% z^SY0uWFU7C%-RtZy(HJ7%reAK-JIXuz2&X}7=yIxj=yK@pmHtnTE1HOTX&p^>2WI!J6A2fv4PVLnwCDQ&`@g1ZiKiKWHg>q?obMM3AGC88)tt_4ozE#fs?y#wm2@ zPTX^YU$*Ksmu7uKK9Tyt0_X07!}sA~IXf?z>ewJm`WH`!1UuH{Jq8-{M+ihX#+X0z z8Q!2Gz+&Y);hq#mH+F)QQ*TMhOrN4j%kXC0t@8>`h9cRB=jo|sx*IKzpA{zyn4@;^C5ohruIBML; zEg+N_`+W3cMi6q3yj*9mTc~~hqpyN|r;J8@Zz`scAPePw0I9Nq4&TUBA_en2TY$W#fpgQi#|1l+r=vZM!(Ao_z4RQ=+?8o|IeW>I!1@{BN)e7FP1OSQP Kfq#L!MEeiEKSh@S literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/leaf_wetness_card_with_background#background_image.png b/application/src/main/data/images/widgets/leaf_wetness_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..412a82b718b05cbfd6824bfbe5405f631ae1a11c GIT binary patch literal 30380 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 JPDHLkV1kjw=??$^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/leaf_wetness_chart_card.png b/application/src/main/data/images/widgets/leaf_wetness_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..8e322d99efcdd6c51972fd8cede58d29193f9b5a GIT binary patch literal 2268 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 O00001}SMsmv~m%}ud zQAc!QiMCoOhw8AITA13>FhbJK@AKn)@AJLy`@GNl*b{iWTlSm|LR*yPcU0qeFRB8`}LOsI8QmGV!!EiVnKR>^y zs3@gUnVp?2Q!FEqNIsw6-ri29(@RTBr>CbMKAT}OnRD|iS$}+t$sNzn&mS0B7#bQ{ zSXekgf7jO5#%8nm11egYR45cusZ@7&_t6gvO}sDFt)Gh;u+Ak3^7=2FT$%o4z#wC+o8}krj?p2$il|Uo6x7)k$x(;bg#KcTknb_X%qA~N1 z%sre-`A5KQO`zqhu6D5on4XhL)Omf)Mgv3Z*ZyD2U(cOeOcB|32E#4dkB+9;kUEA0 z*vf$MOrZI-Hzdvs6<#?Ie_s<|Z(fIVKH z#M?w$7KgSZ;Y+}+IX!JSJR|6rKVehGxgIr=#2|K)aN$*LJa<#hO~CCyQAJ^SQ~QSA za{Ik3c|;Y#z{gsfjV`Svp@ifHq?Q@gav7Tpt)P36>xYgc+}UNAJ8v(H5X@W;T=AeV zYG3x<)MqLkDaImf$J^jO4W%YAp>PJ~I&q7S>y1wFvUy4=@0Ws`qwz!00-v*boS^(z z4V*-3v1lY~*}Hs2AADY?J3vF}i~Z|A7D0!5zrqB0hhH}AXk-%*j!w3n837j_bzYeo b5XAvZ)9<<_!`)@-cLE@|dAl~?Lg+sLBbjzq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9680e73211bb33fe395f57c755ad403a486613dd GIT binary patch literal 18812 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 DUutt) literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background.png b/application/src/main/data/images/widgets/leaf_wetness_progress_bar_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..06a1808d1327d90a95aaeb0da862e2657ca7d3e1 GIT binary patch literal 12014 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..039409df029a7984dc666329a93bb17411476277 GIT binary patch literal 3235 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 QRsaA107*qoM6N<$f_k^?i2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e12a37b8d9b4374fbe772fe2723453b59c626b1 GIT binary patch literal 3351 zcmV+y4e0WTP)(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H143tSkK~!jg?V5X#R8@Mwf9LeQJ<~J&ng=rqI52>Nx`CA;f&wD! z#&Ufx3+fgc<72bQu4~+qKa44ZCZbhascd!=u(D<~KGrpHF~X{|uCE~CgK>3rAjm@y z0U4Qhch5{u_r3Rg`QzT68DIv%Wvo=HZ`G;3eeZX^-}%1to$ot+`zntAuoH>c4GNZ* zmX>@q94@H<$mIvRas&Af1fEExGLHi83FtibkxV8hS0oefU$tzhe9-c~9Be%(`}XaV z-FtS+j-5N?)mLAUOE0-tDw6T{Dk>`Kjz_2ZJb_p&R&86l`Qe8jsb9Eg5gi@v^1^SP z-`AVz>vKJq($Yxz!i5*qMIxnY~ogC@U+Yv^2uUAMZ(R-?2U1 z(9jTBx@3u)>Fuvgr_)`d>DI>rYb}fB&0k;vtXsGK`MSFCcb|4zoeqafRvjrDi9`~= zd#AYxV8)D@meyv`F?Ap7rc!#s)TvVesHv$+L`q{b6og~3SocWsQ>ILb15BJa5saSr zg~1{cE{Q|{2#0O^Sh4^mB@r9I4u=sXC0`gkmPZj>1Q)?Ya1mSt7r{kv5&ZucY@Lv_ zlFT^uAlMXKHf9|(<`T9`>#JSoW`sK?f9o$gy$yuK(libyK(!tSEck1WK zlvq-G(!nSDD1wXNBDe@Hf{WlHxCkzSi{K)-2rhz);QvG5y~%?L6w24FFO zr$7{V7UCWK*R%1)0DPF0hLK-E7z>MWHR1)j3)UYc^SQ4aoH*DRz-T~$VMJHUn7G;t z8i2#dt{y4i{&27wQtmRctG(l2oyQLre2cXY9MP>~5?r40!G!^g6i6d^;SUA}iDM|L zN01qdIhMiTQs9mf)ngM}3|Ztca#W8^=F&roM@t}MGRH>waHYW5Bf1(Hi{<2Scx4*N z)yMsO{zU(ia6v+h?&=dbjz6kh{E}!CI3p(za{@2TeX*!EjFLdc0xbA*Sm^PkrA${1 z1((B@SC0|=NLE2T{?f{#t1$w~8@B&CN@h$FNYE6cZv@6-j*W|-nT*0ik6a|iWI2gn zm9Q9n2QnrpvrrZlqo>R<+gCeuq80QHcq0~xvD#&3-+AwXP*ueproHRVQ3rQ2z)Hz! zgI`3U^2{-<-E&5LbJh%9KdkTZf}_!Bjb*8a&i?Azm)&&J%|6!y@p#7TSFeZiI^-Eu z1rXBG>4lAFmC5;Hr~tU^vdegO_z2=lfix#ta^X9I^Kd#tzR)xJFa``e! z7JmaBjr+X{J;iS(lP34yO=O>ank`+<#`muHiy5LyDd+N`dH=n1T{KdA5p1iN@)CtKm;y=6{`;VrB&LUn4++od0Ax;Vy zz?xi#J@agmJAOau%nvs8{-Q_r&pmHm^`yGG*xPTtd0}N`)gzfq#yJdZ+v>*`f8&x% zuekC`nx1=Z=bydy$YeVr@$&1hA~dcHOzP<7`Ayv5JfB8|J*)|}cw1Y_=d^wl|7AL~ z_uTpODl?f(&5jSZMF(>E7Y2i?qN03eB3}9Z<=0-zhugMgui5xWiB&44x=azOHb{OS zh@gys2GN29u2w>@5e)X)t|C;cP!WYKCj8x&_4@g`y6p06uZ?VOZoXAp{99L7@Be53 zG5T-+^!n>HK=0!ZtWShxk_rndESUU0#NCfL`!TNH#5n-YesGSwz8`V+Ve

VS@?_ zi4v*LJ^k1^fa|WiPJ5od3&4s-qvN8{=r`xgnZuiJywQ4FB=v1&3xov;8BF&l=qh_C z5(A4>V6hCh*aaLgoq4bfgcZtz8>6Xfe!98&(5%MB+Gu%XsWDQeLm|F3d-iM#z_sm}zUx5=$x0zu3R*}Yr1*}so!w##=gm8hx8HjEd`qFvKE0uVmX?;xT$`^bEvO^lc;M}E zF>MB2VNem@8VP>D(Xa4Q8p&wH=%AkuRUrjhsI>K&J9cdEojP?|RB1g+hiz*-K>MLX zZ76>ZQG(K-bnsaigaXNd41hR*Bgg=ld|Iun)X_~14#uB*U9Iz;LbpJqSzOOd}pp=eVp6BHOtE4;{J#5buq{1V= z7ou1N8v!xO-~5dv&*9%o%A+v=&+~HHb=`J=ipr|W!OlhvflN@DjPjR@t01qCeuZTH zb6o$P7!}AC^c=3MvZ}f=0Jm$zZ13*wV(PTh6M0wC1q=K#7(Dmz6gYm9oI(Z^lGRAR z_Rn)e_Y2QT#2Xrf7{!1q-IMDl$Gf_^Fe2NvDD_g)^G(F#arLwldwCEPq`yI6J^&0t z3s!6YTF#dl9Du8a^myI{>y%Yn+T5ED=W`4oCnc zuaKNZ1~ifl;Mw4OKqEQr%jA{c#~~PiKRtV<&6*0(@<9tC>eo7*PJh(d(eZ9;YbzIB zer4m zBEiZB)~v=3hk0fGlJVjyBS*S-K*6A;1^AHl1n}W*7e^tkGB3=&{8T#}=D`OaM2lKU zkS^#>rH*}@bFBDP*;P16cOYF@LJ@jy5(&T!6{ntNO`{&-iWrY1=K_Tf|fR@9z zJ|=kfdAwQCoySh=jTvz-;UujtO@-MQ&>de>oKfOtH9QB`H~`DdP49~xIv z!_V%&=cT{=@WsWtL@Z?sg9Su$1el>^?|r?mx1Zbo>K3;r)q6=Q zm3pbbI%=0$Rh7IUQX2W$Q%|i8&pziIHf?%6wd+TB{`Q;Z(A9pWVK9XPh^V3Go1WrV z+46PHlA9Mb&TdQ|`1AmG-f>5+zqkLpojpB|4d)DkMdVyyAu#EQCmt_bar^C;-Mi|( z>Kkvm8P|2$xM4&3;D#5sP1&-+J|){ZArayffRxK;t&z$D+fSeCmjCg*v!na~)F2*&g9T$j$SF797-FPod+-o0kczc!!VFwLv2J+)w@ z0X_rPC=po$BmmRh-K{*&p}V`gBh}q=TSsT7YHn_3?b@}}*3_`W^!T1Rinb~*_ z6DN$Pwq_hkDU?#ivUJF{!x9Q9HO%UMB_iVjS5GF`?sjx^kj?h#zD#drDwA$Vr&4vP zR63N-^wQhcM>d^Vq<~L> h{lFHbRO(2^{{mJuS#l?E$1wl^002ovPDHLkV1jMEqPGA5 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_4.png b/application/src/main/data/images/widgets/maps_v2.google_maps#marker_image_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4954a6ff81b08c01c43f33228d7a6c0f97f661 GIT binary patch literal 3280 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.here_map#map_image.svg b/application/src/main/data/images/widgets/maps_v2.here_map#map_image.svg new file mode 100644 index 0000000000..0f325fe3b6 --- /dev/null +++ b/application/src/main/data/images/widgets/maps_v2.here_map#map_image.svg @@ -0,0 +1,7 @@ + + + + Image background is not configured + + + diff --git a/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..039409df029a7984dc666329a93bb17411476277 GIT binary patch literal 3235 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 QRsaA107*qoM6N<$f_k^?i2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e12a37b8d9b4374fbe772fe2723453b59c626b1 GIT binary patch literal 3351 zcmV+y4e0WTP)(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H143tSkK~!jg?V5X#R8@Mwf9LeQJ<~J&ng=rqI52>Nx`CA;f&wD! z#&Ufx3+fgc<72bQu4~+qKa44ZCZbhascd!=u(D<~KGrpHF~X{|uCE~CgK>3rAjm@y z0U4Qhch5{u_r3Rg`QzT68DIv%Wvo=HZ`G;3eeZX^-}%1to$ot+`zntAuoH>c4GNZ* zmX>@q94@H<$mIvRas&Af1fEExGLHi83FtibkxV8hS0oefU$tzhe9-c~9Be%(`}XaV z-FtS+j-5N?)mLAUOE0-tDw6T{Dk>`Kjz_2ZJb_p&R&86l`Qe8jsb9Eg5gi@v^1^SP z-`AVz>vKJq($Yxz!i5*qMIxnY~ogC@U+Yv^2uUAMZ(R-?2U1 z(9jTBx@3u)>Fuvgr_)`d>DI>rYb}fB&0k;vtXsGK`MSFCcb|4zoeqafRvjrDi9`~= zd#AYxV8)D@meyv`F?Ap7rc!#s)TvVesHv$+L`q{b6og~3SocWsQ>ILb15BJa5saSr zg~1{cE{Q|{2#0O^Sh4^mB@r9I4u=sXC0`gkmPZj>1Q)?Ya1mSt7r{kv5&ZucY@Lv_ zlFT^uAlMXKHf9|(<`T9`>#JSoW`sK?f9o$gy$yuK(libyK(!tSEck1WK zlvq-G(!nSDD1wXNBDe@Hf{WlHxCkzSi{K)-2rhz);QvG5y~%?L6w24FFO zr$7{V7UCWK*R%1)0DPF0hLK-E7z>MWHR1)j3)UYc^SQ4aoH*DRz-T~$VMJHUn7G;t z8i2#dt{y4i{&27wQtmRctG(l2oyQLre2cXY9MP>~5?r40!G!^g6i6d^;SUA}iDM|L zN01qdIhMiTQs9mf)ngM}3|Ztca#W8^=F&roM@t}MGRH>waHYW5Bf1(Hi{<2Scx4*N z)yMsO{zU(ia6v+h?&=dbjz6kh{E}!CI3p(za{@2TeX*!EjFLdc0xbA*Sm^PkrA${1 z1((B@SC0|=NLE2T{?f{#t1$w~8@B&CN@h$FNYE6cZv@6-j*W|-nT*0ik6a|iWI2gn zm9Q9n2QnrpvrrZlqo>R<+gCeuq80QHcq0~xvD#&3-+AwXP*ueproHRVQ3rQ2z)Hz! zgI`3U^2{-<-E&5LbJh%9KdkTZf}_!Bjb*8a&i?Azm)&&J%|6!y@p#7TSFeZiI^-Eu z1rXBG>4lAFmC5;Hr~tU^vdegO_z2=lfix#ta^X9I^Kd#tzR)xJFa``e! z7JmaBjr+X{J;iS(lP34yO=O>ank`+<#`muHiy5LyDd+N`dH=n1T{KdA5p1iN@)CtKm;y=6{`;VrB&LUn4++od0Ax;Vy zz?xi#J@agmJAOau%nvs8{-Q_r&pmHm^`yGG*xPTtd0}N`)gzfq#yJdZ+v>*`f8&x% zuekC`nx1=Z=bydy$YeVr@$&1hA~dcHOzP<7`Ayv5JfB8|J*)|}cw1Y_=d^wl|7AL~ z_uTpODl?f(&5jSZMF(>E7Y2i?qN03eB3}9Z<=0-zhugMgui5xWiB&44x=azOHb{OS zh@gys2GN29u2w>@5e)X)t|C;cP!WYKCj8x&_4@g`y6p06uZ?VOZoXAp{99L7@Be53 zG5T-+^!n>HK=0!ZtWShxk_rndESUU0#NCfL`!TNH#5n-YesGSwz8`V+Ve

#T!i4Wtn@#JThKdcrDO6sfK2$B{{G9ZDLhCy{kg_xn#UI3wL z$hC;YAj{=4kl@64!2~N8Vo;(b2jpL!Ylf|mi6vsGiJ^{X`V;+rzl?%Yx9;?+2Ob_f z{S1QixM9Hf{5v9mc%vrUhX8Wy{C!}NTTiWmMe;!ct`>Dx*nY#tDVz(-Eqk5JF+T=s zRzMmNgZ3O;PA7#59H1b$WCv&Y7l>L#K)6^S)_nL5zyBF#YTCar6S)1gS`&ac_oYu# zkSX@Un}>QD&x&FzM8t8?9YK(H-G^X8{e#a$G4hTKaw~uw`@qgtZn(JIdmwP*8-Yrp z@yh|3pPwIeC0sH`06}#7E$COetjMnJMWx1*lioKF>1Z}O;(JkZ|_)P#WzH8wWA9PhZrpA|4W*>1M ztI>XaJ^Vg^d+rh0FL2l$M%#TW@ZyX;bkruWZ2({C;RZ;H1I=|BSxjuOaR5Nt+TbvP zBa4cEStOBzp$5mw=b%Cim1-7r8?zMYZJL-lIAglY#HhX2!)yKy^>&Al>?v6 zJ`-+Sg*yGWwJ!q5ay$GRFJB_RJm7U`wIF5VsJ9xIV;K-e1CB*h?#($7@j0DN-lIp3 zS_kU!F$=eUe+>_khRX>;%p*xW?*Y>#^l?dw>s95$5>GTNV|XQazMS^MfI&b;Ze#p? z!O@AC4wLO5xYn@saB{X|XX+sAB=|#j3sFG`2?!E7;qNfbKJppcjzw+y$t#G?eO$m8 zKyB)*v@lVbGaIJCV3!qlqCAuXWvDw~@P&CtD&>F+jmOFiT$~3XNpl;0#2^Nhm9j`Z zJRs(5>&G4n9riQ+NVMs}nY(SaMH|CN$-_xu`Cw>K5FYJ)bW!LRghd2N!5sYwlj*TH z?|VTDYJU0cO9=A)ImD=N4d#H9L91CpF^EgSZcY}&wK?eI0mS3z-x+j-4b2uvz;+|3 zwJyc;VAWcFt+h45^S+pWBxy|WPA1MvW36_3YwJ4fjyS#0!3OJEmn6u@UKN$c9AHvR zcxJ|ABLa~4cmzi~gj_iQ#6$NIgm5^FAWVVlW#G6(Kq?ZMY{e0aK;|zh#e9jP=LA%> z&P}`BfgldYrhOAY47G-BqoRIZVgO_l9R)se_SoPBQYi>4s0x&Vm1s%Y%&NyOGe}7Fl0jpwyMadb+p~Q0Q>04HQW{Aw#OKztLu&>2U!u&RW&66 zb2O%Rzy0y&pML)F+ud{{%UZiHUAolx&5P$03WE-~)fs^|ab={8ss9CHw*`4mtz!v6 z`~p8_G=_Pv2H1Fq(YP&x*pZ1x5Hn9e?7XA_AM1ygP>@y$atNcMdOl?KntNdwrEjQ- zWA2PbdpkQHI59DC1dr~Z+!kBtRRmf0*{$EMR`lD}o|`qj{L-byMy1;{OVZ)9rc?+ot>RiqoXihbjd@hKG2Ljo(BuH8MtVPUV zk&)YkVBhpp@Ow+ZB2A&D(Rsao13|QUy#`(_vS%+|ov({~tb6*K#!Rw;1Q%Yt2IU|e z+5Q`Q*Ft5*Eg=X>21%MJhz=)PynG$zEec|5#g9JOG!7u;8IW4uu7Ipd!+JGX; z2C`@=NGtD*>&xRQ1QBEqcbI4SpWgdje*EnoJNe$j_fif87Pkd3X9o++0G(G+o-wImOG z&Ui0}0S<)PR3HY91bk&w7KVUugNgYw`WUt-^=$e_dhM-qA2hzR^%wo&$2432>BGoj zz3Qr)at(q%uGXMMvTHdD)E}&GEbXX%yK#&sAQ%V3U?A*? z!J&rv9RvYE2595s8os9v3L~DfsRjlH+TgzyWxm#;aBzh($dN%Gml%T^aNzucUizP~ zzo@ba>H?IpD*EP>BWa%TqPVg-%J^9!as8Ux@n&`kAtS)R{IWuFgzkvRh5?D z$1H11;^S%!2FE%N%{uSErt1jQb6(oazGN8lLeCnIfK>k$hKv?4@<0p-Qk;#EU%tA5 zz2U20vN3Y*;fEjD2Yz+!b^8d%zI`{z7&igXKA393?VubQ-nq8DjWV5SEC@mW1 zp@ZMS4|olhg^U{7__ggd9`^o+dFW#{!wABM!CprDc8UiM6yF1X2hZeFc>d|@Y(v{B zqc|Rum@U`dn46lE+vSRJrkzd0tV?G!Ta1bAXfS=#Nb6Qz-vV1*YqxgOj-?%1>9pCf z8__{5qBv1dn5_u*MeV-$p-d?V19245p&#^vD2VvMbDr}&_ufqKuZu}3_WpX#dCv24 zp0gk>tXdQ%m?BCXWE%r{#P!iHJPZEu{I{?C!E@s;AGwY`_ulF2XoChGZ+~H>n_7^eC_t-$ym8hp+FOjcw``P06*o((-)y`&R%qCBU z_w9pd!)uEYrQphk=TcL_;M@0+6kRVIIQ-()&PvzlOCovv`4{*V>7}!-aP@oVHi>~S zKtzEYC{br%Y*Y5;&OZ%Kq=TXqZq4#1ye zGCAe-zU%c4KmEvbclUH=xVf+G8P`X@{RiZ?k6eM7nf&@!`6ah|BRvirZZii{O%1=9 z1Fw+e5rL$KzeI|HP~SG>Ab+_)1`7zymnz}*z5!C}YepPil6=RmLJy4wIE9Sk+A zQ`w}~`?J@Z8r|O3_C#wYlbs9Ax>ji1BJnY6#dUcml3o8QwGlbL6v-~hI!S{+0P@2Z zYHF-P9Du!mV(_HILC@^43lg?#ag$;X_Dhf;6sWf_fiRbCo*cJ|^DO1H6O-v+utV*^ zb4#G;0FeAxThB;G=0tWZ^Te|2$KP%?$d@j8Xr|P$el3+6J-@M$8<%DDExF1MNrgbr zB2Suj1{Fh1aRDOPm{_gZ7NijMTIg^nn15`8A?GoctbGZaVGuTD7!QSZ8Ke9ok4&5j z_NhIss+!CJhyy_Kt)s(VWDaM?Gjm;V?)t+`1}VCVshP<6nf29F?)>U>Q6>dAg};hi zOPIt)=3sqto>dY@;u5(QJuMjIW?>gs4cmC5w9k7Z8ux}N#?PZP(VuPnIo$&^2k&Stv`{`u@c@662j4Pg>l2LZ8$ zcw2Oki!s{YrZ~q}j1V&iQL)Z#;C@?>#^MnqHgl-sg6H_9;ZQZix(_xOqCuuR+0fNI z2ZOHy)uP+)Ih@fYyUtQBA-(j8YjpkvHmRG9RiC`DTUACz&h;cQ>xb9-CL;_W;>m64_D{i zuD1;5`sL$VS6D6<;i(ILp*6Wo4KM`Ppq^oc%<%v45y%Sy#7a2!G7!ly&+S%f!?uNy zV2My&qsIpakRAm&NR|`(cF}?da3QqA{k|2n?B{jlJmwo0b<<(brzrhL37|Q?{@8+ zmAOh0-M2Qc&JakI3>=sb0R)7t7k79-O?=lL_E`Ct#jB|>Z%{%hGY12%;P)8vx{&mM+&o8)Mb|z$#R#yC6*RO7Fu2HDF(IQ-rKIuXA z8zm8vk=30(^GUG70I>mq9boJf@^-vo=fibIIminDau)-k;yi~51cpoC@BzqO$Y|lG zfe*PBpa1LmMc3}miV9(nDgy*QK*(Pu5?W<}O{kAL+uDek4&iwMDOY)d2Mz$i@L(W# zXL^5=0I}NzNQ_O(5pB ztUJ}=Wcva5QG4vw8mu3q;U|Hh9+2>SItnYP1B!wK4iiXhD+op`toFBa60pcwp%%fh zwNGUlY46Q!pO|bP8c(LwDtVzjC(H8%h>+4~_rzttKhWHr&->k@Zg;-0yx7`RGOx5` z|8WoKEDc+_a1^=K&>^)aJEE$YDfQ4ktw+<~3QK*ZrfDHKoF9X$tf8^#13^BQMjD3z zp&Rs!4$nbw#HIZQeJuy?l>xPWU%htb)JQUQwC_OMKzc4W!W=3u7dK=%S1OfmbS(M1 z3x%Q8h`Yn>p1!iYyl}ZAaEtqUvD5;K!2l>p2g^wux0Xu{wPvE~RPW$PI2?x-zdc@OS!|j(L>Z>h0)jnH5-4`i`D z+R?tl+T^fyW(YV&SI_&a`sCu3QfYMc!=?OSp|G)9BK;}?{4;p;{KJB=(9_nAa0VH>{?_sU|2`#rO%jv?64;SRsE6s&Ma=!Rs zAm5B24eqSloyuSCE|xlef~_J_6^or$0VI*we~=Y&@kNtV4szS!K}~CGPbO2^!`aN} zL=r#-!pA1UbHn$vWe-2zl}q(*w>c2RPA7ZpCLD3>+9wf+g@NFEI_dZ9U?6H=^1#zC zW(J-()s;Nj9MX~@4P0xf@5bdmuuHZtFx_zlKqAeB%jqGvyVYMD%;)M9Yfz#72@1r`CgH&n%7(NlC>=SYg<2m^XCF?cj-|tu>F`+V*z{m%Y~uLP zP^V%#xd$XfL5vH5fa>KSz8J=bmme;})CKjFHayS`k(W-NIUF3;v@uN^9hd#9U0pbh zA56>hgOigvNRX+?^oHAgrLVdB^3ulO;D-PGjVnCT8vq7XpGfpS$SmRHN5BrF?d!<9 zFaQrjdHv9tk%u+yQrp~6_nE2ii{Ws8xPGKP+YbF4CWl7E;XTJ8-3J(;sIW+56OeFu z0EE72-)kYQT(Yi#8>Ym#I*luoi1@s;u^}^yGyn@}Hj&uYj{u68VPVTP()6WUp^03y zI$Ey@g(}0kPIbeub@HCQ&br2JEk~%d&cGmDAP~&v2_59F9Uc?8oy5imr&Hv^NV+Qm z>4asJd{l%@{F#_hP9VgbI&00e$S!G$A^<`$2yyM3En}d z|8KG|ooviE1#~GEi7h~2-Q!fS$p(*gVEYdUYtIzqsc^nfEG^B`5*Hbk%0br7t@Cgf zxnI8UY)modMRP3~eKKT%c?!(qG^?MZoIKS#P|!h~LcW$3$|PJqkEk4^6#_IKWb@N% zzGpH&FGrXwHLwkA|6;K~pGoVdxk(z3q=5lNVkQm=0jwxKsQ!=oohXIvo5Ho$$BrC{ z#TqRqPhRf2A~>ol4brCAgUDj|lvxh22ED7~AO%`})Pis$eyO-vEJlE(YH4w?1ip37 zEl8>wXjZxOooaB{fkU^0<$p{f^$WosRBfNP;SPzDH7ptiQEup-y2 zox7@Y1fZ!2<3N;X=T?#!y$D3W*!k=NOFXU6j$sFmmM9zVaFVECvdrQS3q%M6MB|I$Srf!dTBv57O7@xH29IVNQ zPZ2e0G!10w(tCCXekTRH!Y;E{6NkrwKMRjA1;`-+0dsGIK{&2RhCSHmMfud`rM4;+ zbs*y4o&~SmBn*Rr_=|GGqmQl$5IG+4SDAESFYc)+IP;>>SD^-%OdbNUv+giWXCFXj z?2IeoooeV|ZbEzie&WC&ArN>ztd)){7O%lk9v@DS2SGIOEaD(F$o~N;$*^AEQ=?6=-V(>rP_p%}ef9sGX&K?12jTiDoBILRCq2|o#y6B4M|v_(I4@ z;fST^O8f|SL-9;^i7pU3ExRKT;t(M6p=#?MXXgb!C;}kx)IK|iCli}6h@yjBgm{;0 z&2pQ99mlAZ67Ha^Zvw`-wd>a*))%f_+cbgrXVqQU88 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg b/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg new file mode 100644 index 0000000000..d98a37e598 --- /dev/null +++ b/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg @@ -0,0 +1,685 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lincoln + Harry + Woodlawn + Edgemoor + Oliver + Hillside + Rock + Webb + Central + 13th + 21st + 29th + 37th + 25th + 21st + 13th + Amidon + Arkansas + West + Waco + Mazie + Zoo + 13th + 21st + Nims + Maple + Douglas + + Meridian + Central + Douglas + 47th + Kellogg + McClean + + MacArthur + Seneca + + Pawnee + + Broadway + + diff --git a/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..039409df029a7984dc666329a93bb17411476277 GIT binary patch literal 3235 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 QRsaA107*qoM6N<$f_k^?i2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e12a37b8d9b4374fbe772fe2723453b59c626b1 GIT binary patch literal 3351 zcmV+y4e0WTP)(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H143tSkK~!jg?V5X#R8@Mwf9LeQJ<~J&ng=rqI52>Nx`CA;f&wD! z#&Ufx3+fgc<72bQu4~+qKa44ZCZbhascd!=u(D<~KGrpHF~X{|uCE~CgK>3rAjm@y z0U4Qhch5{u_r3Rg`QzT68DIv%Wvo=HZ`G;3eeZX^-}%1to$ot+`zntAuoH>c4GNZ* zmX>@q94@H<$mIvRas&Af1fEExGLHi83FtibkxV8hS0oefU$tzhe9-c~9Be%(`}XaV z-FtS+j-5N?)mLAUOE0-tDw6T{Dk>`Kjz_2ZJb_p&R&86l`Qe8jsb9Eg5gi@v^1^SP z-`AVz>vKJq($Yxz!i5*qMIxnY~ogC@U+Yv^2uUAMZ(R-?2U1 z(9jTBx@3u)>Fuvgr_)`d>DI>rYb}fB&0k;vtXsGK`MSFCcb|4zoeqafRvjrDi9`~= zd#AYxV8)D@meyv`F?Ap7rc!#s)TvVesHv$+L`q{b6og~3SocWsQ>ILb15BJa5saSr zg~1{cE{Q|{2#0O^Sh4^mB@r9I4u=sXC0`gkmPZj>1Q)?Ya1mSt7r{kv5&ZucY@Lv_ zlFT^uAlMXKHf9|(<`T9`>#JSoW`sK?f9o$gy$yuK(libyK(!tSEck1WK zlvq-G(!nSDD1wXNBDe@Hf{WlHxCkzSi{K)-2rhz);QvG5y~%?L6w24FFO zr$7{V7UCWK*R%1)0DPF0hLK-E7z>MWHR1)j3)UYc^SQ4aoH*DRz-T~$VMJHUn7G;t z8i2#dt{y4i{&27wQtmRctG(l2oyQLre2cXY9MP>~5?r40!G!^g6i6d^;SUA}iDM|L zN01qdIhMiTQs9mf)ngM}3|Ztca#W8^=F&roM@t}MGRH>waHYW5Bf1(Hi{<2Scx4*N z)yMsO{zU(ia6v+h?&=dbjz6kh{E}!CI3p(za{@2TeX*!EjFLdc0xbA*Sm^PkrA${1 z1((B@SC0|=NLE2T{?f{#t1$w~8@B&CN@h$FNYE6cZv@6-j*W|-nT*0ik6a|iWI2gn zm9Q9n2QnrpvrrZlqo>R<+gCeuq80QHcq0~xvD#&3-+AwXP*ueproHRVQ3rQ2z)Hz! zgI`3U^2{-<-E&5LbJh%9KdkTZf}_!Bjb*8a&i?Azm)&&J%|6!y@p#7TSFeZiI^-Eu z1rXBG>4lAFmC5;Hr~tU^vdegO_z2=lfix#ta^X9I^Kd#tzR)xJFa``e! z7JmaBjr+X{J;iS(lP34yO=O>ank`+<#`muHiy5LyDd+N`dH=n1T{KdA5p1iN@)CtKm;y=6{`;VrB&LUn4++od0Ax;Vy zz?xi#J@agmJAOau%nvs8{-Q_r&pmHm^`yGG*xPTtd0}N`)gzfq#yJdZ+v>*`f8&x% zuekC`nx1=Z=bydy$YeVr@$&1hA~dcHOzP<7`Ayv5JfB8|J*)|}cw1Y_=d^wl|7AL~ z_uTpODl?f(&5jSZMF(>E7Y2i?qN03eB3}9Z<=0-zhugMgui5xWiB&44x=azOHb{OS zh@gys2GN29u2w>@5e)X)t|C;cP!WYKCj8x&_4@g`y6p06uZ?VOZoXAp{99L7@Be53 zG5T-+^!n>HK=0!ZtWShxk_rndESUU0#NCfL`!TNH#5n-YesGSwz8`V+Ve

VS@?_ zi4v*LJ^k1^fa|WiPJ5od3&4s-qvN8{=r`xgnZuiJywQ4FB=v1&3xov;8BF&l=qh_C z5(A4>V6hCh*aaLgoq4bfgcZtz8>6Xfe!98&(5%MB+Gu%XsWDQeLm|F3d-iM#z_sm}zUx5=$x0zu3R*}Yr1*}so!w##=gm8hx8HjEd`qFvKE0uVmX?;xT$`^bEvO^lc;M}E zF>MB2VNem@8VP>D(Xa4Q8p&wH=%AkuRUrjhsI>K&J9cdEojP?|RB1g+hiz*-K>MLX zZ76>ZQG(K-bnsaigaXNd41hR*Bgg=ld|Iun)X_~14#uB*U9Iz;LbpJqSzOOd}pp=eVp6BHOtE4;{J#5buq{1V= z7ou1N8v!xO-~5dv&*9%o%A+v=&+~HHb=`J=ipr|W!OlhvflN@DjPjR@t01qCeuZTH zb6o$P7!}AC^c=3MvZ}f=0Jm$zZ13*wV(PTh6M0wC1q=K#7(Dmz6gYm9oI(Z^lGRAR z_Rn)e_Y2QT#2Xrf7{!1q-IMDl$Gf_^Fe2NvDD_g)^G(F#arLwldwCEPq`yI6J^&0t z3s!6YTF#dl9Du8a^myI{>y%Yn+T5ED=W`4oCnc zuaKNZ1~ifl;Mw4OKqEQr%jA{c#~~PiKRtV<&6*0(@<9tC>eo7*PJh(d(eZ9;YbzIB zer4m zBEiZB)~v=3hk0fGlJVjyBS*S-K*6A;1^AHl1n}W*7e^tkGB3=&{8T#}=D`OaM2lKU zkS^#>rH*}@bFBDP*;P16cOYF@LJ@jy5(&T!6{ntNO`{&-iWrY1=K_Tf|fR@9z zJ|=kfdAwQCoySh=jTvz-;UujtO@-MQ&>de>oKfOtH9QB`H~`DdP49~xIv z!_V%&=cT{=@WsWtL@Z?sg9Su$1el>^?|r?mx1Zbo>K3;r)q6=Q zm3pbbI%=0$Rh7IUQX2W$Q%|i8&pziIHf?%6wd+TB{`Q;Z(A9pWVK9XPh^V3Go1WrV z+46PHlA9Mb&TdQ|`1AmG-f>5+zqkLpojpB|4d)DkMdVyyAu#EQCmt_bar^C;-Mi|( z>Kkvm8P|2$xM4&3;D#5sP1&-+J|){ZArayffRxK;t&z$D+fSeCmjCg*v!na~)F2*&g9T$j$SF797-FPod+-o0kczc!!VFwLv2J+)w@ z0X_rPC=po$BmmRh-K{*&p}V`gBh}q=TSsT7YHn_3?b@}}*3_`W^!T1Rinb~*_ z6DN$Pwq_hkDU?#ivUJF{!x9Q9HO%UMB_iVjS5GF`?sjx^kj?h#zD#drDwA$Vr&4vP zR63N-^wQhcM>d^Vq<~L> h{lFHbRO(2^{{mJuS#l?E$1wl^002ovPDHLkV1jMEqPGA5 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_4.png b/application/src/main/data/images/widgets/maps_v2.image_map#marker_image_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4954a6ff81b08c01c43f33228d7a6c0f97f661 GIT binary patch literal 3280 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 QRsaA107*qoM6N<$f_k^?i2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e12a37b8d9b4374fbe772fe2723453b59c626b1 GIT binary patch literal 3351 zcmV+y4e0WTP)(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H143tSkK~!jg?V5X#R8@Mwf9LeQJ<~J&ng=rqI52>Nx`CA;f&wD! z#&Ufx3+fgc<72bQu4~+qKa44ZCZbhascd!=u(D<~KGrpHF~X{|uCE~CgK>3rAjm@y z0U4Qhch5{u_r3Rg`QzT68DIv%Wvo=HZ`G;3eeZX^-}%1to$ot+`zntAuoH>c4GNZ* zmX>@q94@H<$mIvRas&Af1fEExGLHi83FtibkxV8hS0oefU$tzhe9-c~9Be%(`}XaV z-FtS+j-5N?)mLAUOE0-tDw6T{Dk>`Kjz_2ZJb_p&R&86l`Qe8jsb9Eg5gi@v^1^SP z-`AVz>vKJq($Yxz!i5*qMIxnY~ogC@U+Yv^2uUAMZ(R-?2U1 z(9jTBx@3u)>Fuvgr_)`d>DI>rYb}fB&0k;vtXsGK`MSFCcb|4zoeqafRvjrDi9`~= zd#AYxV8)D@meyv`F?Ap7rc!#s)TvVesHv$+L`q{b6og~3SocWsQ>ILb15BJa5saSr zg~1{cE{Q|{2#0O^Sh4^mB@r9I4u=sXC0`gkmPZj>1Q)?Ya1mSt7r{kv5&ZucY@Lv_ zlFT^uAlMXKHf9|(<`T9`>#JSoW`sK?f9o$gy$yuK(libyK(!tSEck1WK zlvq-G(!nSDD1wXNBDe@Hf{WlHxCkzSi{K)-2rhz);QvG5y~%?L6w24FFO zr$7{V7UCWK*R%1)0DPF0hLK-E7z>MWHR1)j3)UYc^SQ4aoH*DRz-T~$VMJHUn7G;t z8i2#dt{y4i{&27wQtmRctG(l2oyQLre2cXY9MP>~5?r40!G!^g6i6d^;SUA}iDM|L zN01qdIhMiTQs9mf)ngM}3|Ztca#W8^=F&roM@t}MGRH>waHYW5Bf1(Hi{<2Scx4*N z)yMsO{zU(ia6v+h?&=dbjz6kh{E}!CI3p(za{@2TeX*!EjFLdc0xbA*Sm^PkrA${1 z1((B@SC0|=NLE2T{?f{#t1$w~8@B&CN@h$FNYE6cZv@6-j*W|-nT*0ik6a|iWI2gn zm9Q9n2QnrpvrrZlqo>R<+gCeuq80QHcq0~xvD#&3-+AwXP*ueproHRVQ3rQ2z)Hz! zgI`3U^2{-<-E&5LbJh%9KdkTZf}_!Bjb*8a&i?Azm)&&J%|6!y@p#7TSFeZiI^-Eu z1rXBG>4lAFmC5;Hr~tU^vdegO_z2=lfix#ta^X9I^Kd#tzR)xJFa``e! z7JmaBjr+X{J;iS(lP34yO=O>ank`+<#`muHiy5LyDd+N`dH=n1T{KdA5p1iN@)CtKm;y=6{`;VrB&LUn4++od0Ax;Vy zz?xi#J@agmJAOau%nvs8{-Q_r&pmHm^`yGG*xPTtd0}N`)gzfq#yJdZ+v>*`f8&x% zuekC`nx1=Z=bydy$YeVr@$&1hA~dcHOzP<7`Ayv5JfB8|J*)|}cw1Y_=d^wl|7AL~ z_uTpODl?f(&5jSZMF(>E7Y2i?qN03eB3}9Z<=0-zhugMgui5xWiB&44x=azOHb{OS zh@gys2GN29u2w>@5e)X)t|C;cP!WYKCj8x&_4@g`y6p06uZ?VOZoXAp{99L7@Be53 zG5T-+^!n>HK=0!ZtWShxk_rndESUU0#NCfL`!TNH#5n-YesGSwz8`V+Ve

VS@?_ zi4v*LJ^k1^fa|WiPJ5od3&4s-qvN8{=r`xgnZuiJywQ4FB=v1&3xov;8BF&l=qh_C z5(A4>V6hCh*aaLgoq4bfgcZtz8>6Xfe!98&(5%MB+Gu%XsWDQeLm|F3d-iM#z_sm}zUx5=$x0zu3R*}Yr1*}so!w##=gm8hx8HjEd`qFvKE0uVmX?;xT$`^bEvO^lc;M}E zF>MB2VNem@8VP>D(Xa4Q8p&wH=%AkuRUrjhsI>K&J9cdEojP?|RB1g+hiz*-K>MLX zZ76>ZQG(K-bnsaigaXNd41hR*Bgg=ld|Iun)X_~14#uB*U9Iz;LbpJqSzOOd}pp=eVp6BHOtE4;{J#5buq{1V= z7ou1N8v!xO-~5dv&*9%o%A+v=&+~HHb=`J=ipr|W!OlhvflN@DjPjR@t01qCeuZTH zb6o$P7!}AC^c=3MvZ}f=0Jm$zZ13*wV(PTh6M0wC1q=K#7(Dmz6gYm9oI(Z^lGRAR z_Rn)e_Y2QT#2Xrf7{!1q-IMDl$Gf_^Fe2NvDD_g)^G(F#arLwldwCEPq`yI6J^&0t z3s!6YTF#dl9Du8a^myI{>y%Yn+T5ED=W`4oCnc zuaKNZ1~ifl;Mw4OKqEQr%jA{c#~~PiKRtV<&6*0(@<9tC>eo7*PJh(d(eZ9;YbzIB zer4m zBEiZB)~v=3hk0fGlJVjyBS*S-K*6A;1^AHl1n}W*7e^tkGB3=&{8T#}=D`OaM2lKU zkS^#>rH*}@bFBDP*;P16cOYF@LJ@jy5(&T!6{ntNO`{&-iWrY1=K_Tf|fR@9z zJ|=kfdAwQCoySh=jTvz-;UujtO@-MQ&>de>oKfOtH9QB`H~`DdP49~xIv z!_V%&=cT{=@WsWtL@Z?sg9Su$1el>^?|r?mx1Zbo>K3;r)q6=Q zm3pbbI%=0$Rh7IUQX2W$Q%|i8&pziIHf?%6wd+TB{`Q;Z(A9pWVK9XPh^V3Go1WrV z+46PHlA9Mb&TdQ|`1AmG-f>5+zqkLpojpB|4d)DkMdVyyAu#EQCmt_bar^C;-Mi|( z>Kkvm8P|2$xM4&3;D#5sP1&-+J|){ZArayffRxK;t&z$D+fSeCmjCg*v!na~)F2*&g9T$j$SF797-FPod+-o0kczc!!VFwLv2J+)w@ z0X_rPC=po$BmmRh-K{*&p}V`gBh}q=TSsT7YHn_3?b@}}*3_`W^!T1Rinb~*_ z6DN$Pwq_hkDU?#ivUJF{!x9Q9HO%UMB_iVjS5GF`?sjx^kj?h#zD#drDwA$Vr&4vP zR63N-^wQhcM>d^Vq<~L> h{lFHbRO(2^{{mJuS#l?E$1wl^002ovPDHLkV1jMEqPGA5 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_4.png b/application/src/main/data/images/widgets/maps_v2.openstreetmap#marker_image_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4954a6ff81b08c01c43f33228d7a6c0f97f661 GIT binary patch literal 3280 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.route_map#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a03225c29309109229c48ee7384035cf26fcb380 GIT binary patch literal 12948 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.route_map#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ef1d885f51b8c719dea7221794f8e64842bd29 GIT binary patch literal 12840 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map.png b/application/src/main/data/images/widgets/maps_v2.route_map.png new file mode 100644 index 0000000000000000000000000000000000000000..9d338ba3dc071355a8f32e8385bb00b20c436459 GIT binary patch literal 15132 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 KMNUMnLSTZNIbK@; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a03225c29309109229c48ee7384035cf26fcb380 GIT binary patch literal 12948 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ef1d885f51b8c719dea7221794f8e64842bd29 GIT binary patch literal 12840 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap.png b/application/src/main/data/images/widgets/maps_v2.route_map_openstreetmap.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0d4a781b75af20bd6f4b00e1e51dd02afd9b36 GIT binary patch literal 18071 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ef1d885f51b8c719dea7221794f8e64842bd29 GIT binary patch literal 12840 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps.png b/application/src/main/data/images/widgets/maps_v2.route_map_tencent_maps.png new file mode 100644 index 0000000000000000000000000000000000000000..f832f5a867297c87d47f7e80f2b17f4994a66692 GIT binary patch literal 13167 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 V@k^}Ele7Q;002ovPDHLkV1nEy&iMcU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_1.png b/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..039409df029a7984dc666329a93bb17411476277 GIT binary patch literal 3235 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 QRsaA107*qoM6N<$f_k^?i2wiq literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_3.png b/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e12a37b8d9b4374fbe772fe2723453b59c626b1 GIT binary patch literal 3351 zcmV+y4e0WTP)(^b8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H143tSkK~!jg?V5X#R8@Mwf9LeQJ<~J&ng=rqI52>Nx`CA;f&wD! z#&Ufx3+fgc<72bQu4~+qKa44ZCZbhascd!=u(D<~KGrpHF~X{|uCE~CgK>3rAjm@y z0U4Qhch5{u_r3Rg`QzT68DIv%Wvo=HZ`G;3eeZX^-}%1to$ot+`zntAuoH>c4GNZ* zmX>@q94@H<$mIvRas&Af1fEExGLHi83FtibkxV8hS0oefU$tzhe9-c~9Be%(`}XaV z-FtS+j-5N?)mLAUOE0-tDw6T{Dk>`Kjz_2ZJb_p&R&86l`Qe8jsb9Eg5gi@v^1^SP z-`AVz>vKJq($Yxz!i5*qMIxnY~ogC@U+Yv^2uUAMZ(R-?2U1 z(9jTBx@3u)>Fuvgr_)`d>DI>rYb}fB&0k;vtXsGK`MSFCcb|4zoeqafRvjrDi9`~= zd#AYxV8)D@meyv`F?Ap7rc!#s)TvVesHv$+L`q{b6og~3SocWsQ>ILb15BJa5saSr zg~1{cE{Q|{2#0O^Sh4^mB@r9I4u=sXC0`gkmPZj>1Q)?Ya1mSt7r{kv5&ZucY@Lv_ zlFT^uAlMXKHf9|(<`T9`>#JSoW`sK?f9o$gy$yuK(libyK(!tSEck1WK zlvq-G(!nSDD1wXNBDe@Hf{WlHxCkzSi{K)-2rhz);QvG5y~%?L6w24FFO zr$7{V7UCWK*R%1)0DPF0hLK-E7z>MWHR1)j3)UYc^SQ4aoH*DRz-T~$VMJHUn7G;t z8i2#dt{y4i{&27wQtmRctG(l2oyQLre2cXY9MP>~5?r40!G!^g6i6d^;SUA}iDM|L zN01qdIhMiTQs9mf)ngM}3|Ztca#W8^=F&roM@t}MGRH>waHYW5Bf1(Hi{<2Scx4*N z)yMsO{zU(ia6v+h?&=dbjz6kh{E}!CI3p(za{@2TeX*!EjFLdc0xbA*Sm^PkrA${1 z1((B@SC0|=NLE2T{?f{#t1$w~8@B&CN@h$FNYE6cZv@6-j*W|-nT*0ik6a|iWI2gn zm9Q9n2QnrpvrrZlqo>R<+gCeuq80QHcq0~xvD#&3-+AwXP*ueproHRVQ3rQ2z)Hz! zgI`3U^2{-<-E&5LbJh%9KdkTZf}_!Bjb*8a&i?Azm)&&J%|6!y@p#7TSFeZiI^-Eu z1rXBG>4lAFmC5;Hr~tU^vdegO_z2=lfix#ta^X9I^Kd#tzR)xJFa``e! z7JmaBjr+X{J;iS(lP34yO=O>ank`+<#`muHiy5LyDd+N`dH=n1T{KdA5p1iN@)CtKm;y=6{`;VrB&LUn4++od0Ax;Vy zz?xi#J@agmJAOau%nvs8{-Q_r&pmHm^`yGG*xPTtd0}N`)gzfq#yJdZ+v>*`f8&x% zuekC`nx1=Z=bydy$YeVr@$&1hA~dcHOzP<7`Ayv5JfB8|J*)|}cw1Y_=d^wl|7AL~ z_uTpODl?f(&5jSZMF(>E7Y2i?qN03eB3}9Z<=0-zhugMgui5xWiB&44x=azOHb{OS zh@gys2GN29u2w>@5e)X)t|C;cP!WYKCj8x&_4@g`y6p06uZ?VOZoXAp{99L7@Be53 zG5T-+^!n>HK=0!ZtWShxk_rndESUU0#NCfL`!TNH#5n-YesGSwz8`V+Ve

VS@?_ zi4v*LJ^k1^fa|WiPJ5od3&4s-qvN8{=r`xgnZuiJywQ4FB=v1&3xov;8BF&l=qh_C z5(A4>V6hCh*aaLgoq4bfgcZtz8>6Xfe!98&(5%MB+Gu%XsWDQeLm|F3d-iM#z_sm}zUx5=$x0zu3R*}Yr1*}so!w##=gm8hx8HjEd`qFvKE0uVmX?;xT$`^bEvO^lc;M}E zF>MB2VNem@8VP>D(Xa4Q8p&wH=%AkuRUrjhsI>K&J9cdEojP?|RB1g+hiz*-K>MLX zZ76>ZQG(K-bnsaigaXNd41hR*Bgg=ld|Iun)X_~14#uB*U9Iz;LbpJqSzOOd}pp=eVp6BHOtE4;{J#5buq{1V= z7ou1N8v!xO-~5dv&*9%o%A+v=&+~HHb=`J=ipr|W!OlhvflN@DjPjR@t01qCeuZTH zb6o$P7!}AC^c=3MvZ}f=0Jm$zZ13*wV(PTh6M0wC1q=K#7(Dmz6gYm9oI(Z^lGRAR z_Rn)e_Y2QT#2Xrf7{!1q-IMDl$Gf_^Fe2NvDD_g)^G(F#arLwldwCEPq`yI6J^&0t z3s!6YTF#dl9Du8a^myI{>y%Yn+T5ED=W`4oCnc zuaKNZ1~ifl;Mw4OKqEQr%jA{c#~~PiKRtV<&6*0(@<9tC>eo7*PJh(d(eZ9;YbzIB zer4m zBEiZB)~v=3hk0fGlJVjyBS*S-K*6A;1^AHl1n}W*7e^tkGB3=&{8T#}=D`OaM2lKU zkS^#>rH*}@bFBDP*;P16cOYF@LJ@jy5(&T!6{ntNO`{&-iWrY1=K_Tf|fR@9z zJ|=kfdAwQCoySh=jTvz-;UujtO@-MQ&>de>oKfOtH9QB`H~`DdP49~xIv z!_V%&=cT{=@WsWtL@Z?sg9Su$1el>^?|r?mx1Zbo>K3;r)q6=Q zm3pbbI%=0$Rh7IUQX2W$Q%|i8&pziIHf?%6wd+TB{`Q;Z(A9pWVK9XPh^V3Go1WrV z+46PHlA9Mb&TdQ|`1AmG-f>5+zqkLpojpB|4d)DkMdVyyAu#EQCmt_bar^C;-Mi|( z>Kkvm8P|2$xM4&3;D#5sP1&-+J|){ZArayffRxK;t&z$D+fSeCmjCg*v!na~)F2*&g9T$j$SF797-FPod+-o0kczc!!VFwLv2J+)w@ z0X_rPC=po$BmmRh-K{*&p}V`gBh}q=TSsT7YHn_3?b@}}*3_`W^!T1Rinb~*_ z6DN$Pwq_hkDU?#ivUJF{!x9Q9HO%UMB_iVjS5GF`?sjx^kj?h#zD#drDwA$Vr&4vP zR63N-^wQhcM>d^Vq<~L> h{lFHbRO(2^{{mJuS#l?E$1wl^002ovPDHLkV1jMEqPGA5 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_4.png b/application/src/main/data/images/widgets/maps_v2.tencent_maps#marker_image_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4954a6ff81b08c01c43f33228d7a6c0f97f661 GIT binary patch literal 3280 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 JPDHLkV1i_kdZPdU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.test.png b/application/src/main/data/images/widgets/maps_v2.test.png new file mode 100644 index 0000000000000000000000000000000000000000..a760f0de0a2eaaf0bb58d8554e81a2611975427c GIT binary patch literal 13185 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/navigation_widgets.navigation_card.png b/application/src/main/data/images/widgets/navigation_widgets.navigation_card.png new file mode 100644 index 0000000000000000000000000000000000000000..dfad83f87fa085a686b4a90603840bff7fe1c7c3 GIT binary patch literal 1753 zcmZ|Qdpr}07Xa|N`t^|4t>49^@=^1<_a=H=SBaY&!tz@3_<59!6j`gOyuvUW@?0CC zJhw4RVl#}{yk|t_Ew8c6G_QHH<+uC$|DMnHob$)|_ngm31UpzODQGGH001SBjir;U zvt?OuSYB46boz4vfFJz8cFs30xFRmPAuhSaT>5X!@9wdN?y-M(#2IB+b;W(FPS?(d(?xEQpp*ddRxp!nD-rjxr*8AlD zOmx04BHs^Da6hKNKeq5eTu}hBI556A5QTq)!Uv%V&;-Kc1R^Yv2umt?l2r2aRVh5V zG&q?QoI-k*TJ}7(>_r+mBwglxXvX_6OnEq_JOcaSCAK0GR}q!@5s_7icvBhkrYbIn zg3O_y-c~2%(Gv4(UKP|P7uKc})uk5G)A00ke0>I?K7-hRAvU}&VPH!cxY9-(sWG#R znN`MoLuO@@S$P#Lc^_NzD_aXH+X}1NiYV>H)DA*5n@D4q)O42Ca!7TYvbruZy^CDm z{l32Y1LIQ#qvs>Dx02aQY5GiU>Z3OIRkv_yE!>*c{@ON~fx7kqddFY`d#Isvh|xLB z>>6QpkGAxTwf25#lleT}-Z#$XPIUH9at5Zl2B*3Qr#}r%e;VfX4D&vZ&h(AWa>r)- zzwieqz79>y4NcAsPYFh*1Yv>=S8c+Me)Lt_}kK&Xn9Svvc9;ozO=frEZ$fVZ?3FuuC8ybZEUY^%Is`x?QCxE zZf);w@9gdD%1CziBzqF6L?V?+ze~UW9sB$H$dl{OWost~v9-4BLQ)Ps0RRr10a;#m z4jo&Z*mLWDexhS_SmWxAk1;U>GP3#p<*p0ARob<3Y)Qb3_M7Zdf~(VHvm%9rn=s_s z6}_tYNnN+o03kd!zLvj$o)8^;*nf|qZ3Y!Y7)M0$q{dT=Z{H=-xOPgx*_5;bS`Yyc zl6w<(jDyYA)N#MmuHl<}@gK{6@ELE>biPutsu|vjooK5NHXvBraXr`Y2NXf+6$R?o zn(Jh}7|kszY?5nCrX9~z*+{pr_m(OKJ>9IC8ehuPLWd`~!857X7ge(}m`bE0Z787g zgku6!C=OS$H7tBq2o1u*i`+ucuiBXk7Vq>r81nt%ZK;>;myove+jYWwm6} zj+b_&8_wg@TC_0hatvRWLw8Bak5l7C@t(jG^cHrwqsb7Y$MdmAS7Q|9V>mjhaECEv z0)`()qRR*3)s*!#F)vUsT~HdXcPMrqY#%qsQR=(>++OTfz71Bq=68a6Gv$e?hT=iT zrbswdoUKrJRc!|K=js_ZAQ8r(icFErDCk(Uw$p(WZc{5cSGSya{(&wpu`=Csu9;@g4*+>-Q!a5t$V4hYCo7c_}+ec+MZ{B}`V8 zA1Wv=RXKF+v^jD87za0G?!x!5!K8{;!%n54=QZvafO=3Y3SDc{7#Kjc2xkd`K{-Fb zez}MT%(oxUIP_%zRcJ zgFYSIybDB~)BP26T}|aIKXm2aEInnA$0457(+nNw0NP<0=$cn~@N(^!Q9DA9fcCH} zv_&ap-Hxlog!>1#1y40GK#K0oKA@|nY*m2rxOP}xBT*fpvIYcsTV>6T=->Q)3!ogP z8_<&mpxWV_2afy&tH$hARD(S%L%A%SpQ4yk%em1_`nwy0N)@j5sn_Zl4dc3?oY^gP z8*YNN(E+3GlRu8;xZL&jHu=5Eq6f1PQxj;~c_&J%pzddyGGqiT_M9-&XSOUs>-S^T zPefmshDyMaE9~f*3Z21K45fGE7yo}ewEqw06l^lI51%5Bl7778XgyB)oY8ME#z9G! ejUIe@Bna_-Ib;7?&+hM+1pwV}u>4?tFZO@mi?UV# literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/navigation_widgets.navigation_cards.png b/application/src/main/data/images/widgets/navigation_widgets.navigation_cards.png new file mode 100644 index 0000000000000000000000000000000000000000..8484edc8744d097939426d228511733b38628d12 GIT binary patch literal 6989 zcmYkB1ymf%wuT}2;5Imf5Fo(d!97@T4+8`kT!LG0A0#*gch|rmK>~ys+(Pi+1cwmZ z3G(LTy?5^IUfp|D?dt04+N)~)-|lElbwzvtH2?(#1z+j4oHo)9BCi7MC&+t$ZqozO zV4ABa%Aq{|a~5=#r=XzFJW-O9(e++9$lcQ?*Po5Np}3W;o5}z3M@Q1*>X-UU7RTxd z+jSy=egpHUGjT$#4I*;Qq=JHH#PWSOaUVYL%aF-f66q!?p=v2m$yrlf1VC6XOt@WS zFt~q7R?ixHYUGM~jva~H92t97JI#v+J#>_nv2b&9OGw;@lu?jo6{vc8Ubv@}xP4aO zqOlwv9DKpWRr~2vK%ILnJL$qGx&(!V~UjhGMSjD>{kLtlnxl-nG5Ohs=DbD}Dq z@3ZT3Y&9SRs(_pyeKTc8-CL#TjS-Y;T z?#I;Bi*3Z|#RZ*&?|Cw_3IG?Eb2=qIUjuhl`)zCd_^{6m2wbj_Z_?>2z~OiK`{exG zvSN5-C8XWTQYk(v}X*6iub z++4LERaI5H^8WrEx+4HL3BSu&z-!^&A{Psju~foR(VOADP(MvEdUf+hT4!GnO_ww<)meFI7p8AfOwD ze?|o#9v;%u)7PlfiM~GsK~g_{jHMMh9WRtM4Y(jbpyYuBr>E=ZO9sSFojNUlsXw|t z*}x*8ZFOG#dbr%K<1kSqZ`ABSCFTVxg6|)%^}PQ*hxqF0>FMR=CB5|doj%y0#c4Sl zhZL4h8?}+#_Wo!kLGspiZ?cq&i%T~Yp!<&YUL)vss@ZWd0-q-0<;OxZN2exGn0(m% z{e7I4&~)*A6S|6m4HiDN$NjBmK{+&mL27$H1P#mgd{+i)S^Kul?O@^ax$BQwV-HSV z-Vf2vzG|HdTCN zoGk-S`Y0+ZE9)?TdOUMYm@714(0Dxd<^B0aR??W{^AE0lv6){~tb3~Ts==9jRsi=X zrAGgo)4==NgQd2VS~oI5M&5kYRVXfn*RSblG|#{3!vRRWk7_+jM4#1r0z0Ptv{)kqo!Iy$7Z}#cKEI zA5l@!TGOsPHs3Fdnb2nyj9X?grjp{%UmS`P9)}ABm+TF+)4gT0WXMT{u;0^HFo2jPoiYm?yWfpktLz!I6uOnk% z$n4k*0G|&oE*j;;H#VO2#ZWLt*MXlb#Hw`f@n3Of3;*}Bm{MP`nOb7DE*NdtMK04gH+*r_9r!m}os~d_tM=8#g zVsU%EhY1$ujwPyRAB#VZiVn5ve~T800n2FTw;Aj8;Ad17lf`e9|MiHR43XJ-i-Ex$ zK}SP(2!a+fwm5-CC_X?9(H#vhMJIB`1C`N!Lt`_PuesSAA{|8wy}LgOD*x8X`W8p$ zqaBL&`A5x&Q!ufSkr6-$2Z$gA6;Tq)zk@Gy`0z7@J{GC-!(iG`N-5aSk0b8?T$MXM z-t9%gx&3I|URx-5|aPvlcOVGWI!@m{Uo}<7KNTnojQyWJ1Pe1=_Qva)@r~H4F zNTbV!Y~q`M_;vcJ$E54s4Ybq;%Iv3ZyipxG^SfaKOho-z@-YAtS4P!Yv%Xf6jvBPP zHZJhlQan4UHElZq`yeP}0%GJDVnp`hB0FI;eU2!22EC zaPzbp{j`g=vk0>1S(9#2-PUKQ>-iGqtG>`WdB52=-ufr=Mox>_N&}6FL@N7d38WKX z^rob0Blu!y?zXk6;TQDrtWNb!zxmsnfvulS-4Pj$V~jPV0|_ zJQfb@Ag-3z=7B-FUs)D%+;g%^sp|HLc$zrsfGZvYXK^8bmN zhn*}8=y;pzM+#mdz;to$E?*Tfyk;A3-FYlc3!nbIfvUv`G&+kh6jZmUU6%0ZGnvw1|kT;#V9+J2YU zJ`c}+$JnLwd3p~+oC*Jrp-8c5mQVBV0JAk0SVJ$Js?47ABxV!d37(WoSYw%6-Bm3& zt4OeMi)eFRdA8BtIbKG{))-OLV9jF`w&;k)nHa4ulwLRo7CS!60@tnKw$MC@H)%kt zZnloh9|fPXB|QDO#_@=L*tB!!Tjy^2%`N5hBEUKEi7PCIVR51EQuw0rN`3?A9pCygB0 z-$KCIIzISodQrW<(E3!X?7`1A9@Ofl4n7eHA#t6MarkzlE}v+SIO;E%Z=4tHB1M!zfxPXhiV%pGDb5SuExD z591A>d4A8s2=AK`AhRfOC2&~hc!`(Qh!K{4Qo+N^8JS%>ZmNLZHt4UdJ$6vma#Xge ztQ_=KH!WAc_nT2}e+_gmw5TCFn$Rb^`lkw%3@H2BA*|%u*8cU#Xb^_bvNdE&l8do_ zA%HKuY?F-4J)y=5cA4KcR$<|mA$n42Frd0b%O644#*pmkvi5axtoiacy)Oq9|CHmB zZ?n3=eq6y)$p~v7ghO;KgbExL^=vvn#q_yHQTx&~^dr_-gaL64uZmZcvCxP!3COui za~sVtgzWy-cjb+azPISEVAe=y;L=Te2H&&9@VA}icdANB`Z+@|=puy>r8w`M9D%BS z<*~Y(b)C{!O&FOZ^&ZTOR!gqgIu`2lb7dXj-a<_+fCXH(&Py8V2Ive_INrQ5^?I4j zT*mw6KGEUa49ePHM9T1tLvZxxkVBt`X&otoZ(=zC{W5T95xxinWs1i<9($xALc5D5 z0du0nloGBNCXJLFf+8s|)cAxBJA*OI-|#;JDJW&C3oFjvECp`z^*mqa-*4s6`#=Q< zd#XTZ5n@b1YHOwcx~W$-$jw9{QBHzn_$4Op8L1yP+6ZF|G3HFnzJCUt-%D}#SG4^e z2oE95cfS+F`eI3?Uv5__!N3utiwY&7QfjUFj`A??%aFlb+wb0TPXt_~pJjDO^r6IH z2<)D24ax;422Y~Ikd~>e;b`NTyO>Q|Q-Q86pw~m=t9T%wDup86m!#fcf}8{EdrI7X zAKm1ES5bhgPvQXF|cyE&8Kacs=6a6 zRlappV6j4R%FA6g=HR4TyzmM|?|4rc8*737>~6kiKzOo9bo23tr|te>-{9u6s2sH} zOT){XXLbQF&G5kWHmWWa;tTGEND>cTw3sN=9a2SEQ)+2lrlYs29c>u*^cct#2sxa!4$;rtJCyySh zYu!Gpb7lYf^(!_OuXi$fZgW$X>YTS%>u>A(uDzM*U`nLs{>yi)?=~AIe99^% zl0!=?m*LurwUzkBjAphHV9nBrin3<>l@MiaAzS+mboGmLn)46&WnOL4_O~=p7B$D@ z(IAfL5+%gsIWQFYegTXASfunkTxy$gBM-wO6r9z_mps_py8#^hlr}Ihpi|D;+_c;( zK0uJjd4F|9O8stS85zXZNcv4c(#7!bFdQy@gJ6JxaR>-%tE(-zg@jrP3JL}i7#gFO zdwO~{Ha1GfmX_Yyzu@LhH;ajlt*NMhtd5V552diuK>;N z(2yE3zqrV4(lOW92krE|_$6QeUGfj!_4c>yox?*(o3WgKq+&_Q+`@vdk59n;#gFOZ zgrK_~1R})jaI!Q8DV|LqZ}lz6+CBH1J@?;;iM9X37K<%)epiQjdU{e1*Bfb^M*Z=0 zG(<%3!bk!-Wj%8ck{G`FT{!{VKd9)DvZ!Vt!LmF*P&_5m0Lb4()1x0yO69xEq0*QHV`~w20U|shI z&NYqQC+w&2w9h>#m}1^*SeuD!G9tcxxOV0=?4WpKHUEi6A`)i zJx{8`3Y|YmHw{b*;58msKz+K>>dGWyfUl&S^~GDwkq{`(35EqD!f+gd!JxaoV#NeX z!hUVc;1eQPv-9fM54)){c{#Z#SMxhe0@~f3ofc#SCMPHVQRe+HSL|3U4pLV2muN9r zY|cE2_`PWeXPQd(Q!O z#s-DP9?_7vl4Igj%RUe9d)7cD6)2u_ak!j~J%k4mr?_Z zS*M|7=B8O#O&R25Z*7hD{oz}22W{fYmv+7eucxqlwg0}| z*M$x;DRW%&VkoMW)Gv0pST#J=JB$LPwWmzI+R&q=IyVx0C zZvPGe8>qDdvFAMJYN-tr@P-D2X+)knL#lr?vk(3SSajI4Z;1y7c5C>pEOHzHX4|<9 z6uqSXZpLg#|6iv1=VMb<|D&VN%Zxe&4E`+-=`#O22h2LDH3Yzf`D5LmG`pinefwO`j695@+8`@pMB1i3^hnl3+$Xu~gsVeE8xg{0_q5i)qg4cvK(?&>{t=cN_l zFW6bE-B?GQq~nT#{kv*W(>`^m7rsr~nC>9XAL#Bfqcex<-fl~bWVi{Z9ak9?L`Pi}QO5bVf2YXh|Jl-n5F|?LU zXfx-J;BqOiGQDT2TYA0Fv>NnI_787n(?GY5RUKMdEEPV7x3+S%rOsn!EfP^`uS9?R zNsyYnv8>rpzDjvHERBfs~^}PHF|LTlggY3aOCuCN9 zkgMR)KhWWwsevAocs=*Q2BEmO+M0cWj^#Fa8XOf*CibXwHz`IUqb~LZ^uBIjS=C?I zVeRsav0m$hka8Lx)w|mpDI9;K@2fSV`zIjWHrB&AC5YP|4=5rQkAVZG4OQfH>Mb{p zSG6QnjC4kCF#e?^q4GB2#GCL_?uN%}mfh0h@V@MXZmw^|Orw!^-P#s83uqwVAXktf z#uEPzhML++E9!BK_>ugV6A{GHM+q^C&bMe$#M5EefhMTv=q^74B^iTYXA(6GmoT=3Vp>^mo#$woew}F|DCB;7?v1zQOdXIu*VLIa4iR44S!^ZAMzxhJ; z^CUJ_XFBg+A<c&f=5hozj<(AsG`!s`9@95OyyqN?xu4G}w z9y#P6hQiZHS(y5Z%;v=DSME4L^ld9kTbSY$Ux*rDW2{?OxdZ|Smzx4BvEze%UB?QE z=Q#sW-5!hs2N0BVNMtWL$qA%>JU*V7BQb2)o7W%RT6`@~uoo7R23=>9YEw`!b zfBn=p7>Y#^JN~68sm~nYJv}>HDB0N2iTDyAWK1SZK@t;|VrM~Jct+t~ixtEH;*xT| z@QQ&DgBr%D@DN43J+6nAMUTh?2yLhV`)x)Dvvbl@YF^wGvBd=oip;rdgID!J=s+S( zg>KPIF0j^=Q==Q-F^eED$P)c1JhGJrXiaE_E+V__xS@<15l#yd6mie>hhtA{x9M`s+4Otpbgccb+;QT@?C!PcaT0}pFV%?xc0n6t>-L_*S;DDhID z4V0rf7w(q-#SPbrhiB6Q5*#awdvy)sT7tcrQ_nzDYJgR%Fkn1q!Y9QKLfACedBM?H z(Tf@VZh3M(O)mR_ zkTSC69!b;>a=pq>sC!_HV>d!d}7e^%dmvd$ikAf}HVSM<)J`Pf_Oa zRJU-wV5Pe!HVg`X^EWT}Z)R!#9$jVCYiYCSC_K<0bri84S@lq5$kh4D)IX-PYPv}I z0#aID{$qAl@<&N!9EmV$>i=^}VdW=nEiGcrd0l;d8%s-g+5)FqopUt`P7b(!%}-4Y pKg#SYz3t>VHBLB+5@`Anb%6Ok8u!W=i2Of>q9m^_SNjSQ`ai-VcVz$o literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/noise_level_card.png b/application/src/main/data/images/widgets/noise_level_card.png new file mode 100644 index 0000000000000000000000000000000000000000..35768c30cd6332a203243b1aca782a03ffab7dfb GIT binary patch literal 1753 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 z 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/noise_level_card_with_background.png b/application/src/main/data/images/widgets/noise_level_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..9760ee26a876dc7dbed9c55ff3f8b24e4f20c1ac GIT binary patch literal 13105 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 LNkvXXu0mjfjjFvO literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/noise_level_chart_card.png b/application/src/main/data/images/widgets/noise_level_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..c128a62e1117461aab8c70498fa924e89d72f417 GIT binary patch literal 2388 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%0D)$Ovawlphv^I2(kQT8Q!jT)+P4 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 C!)G1< literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pm10_card_with_background#background_image.png b/application/src/main/data/images/widgets/pm10_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa457e25539c1c25e7cd23d336f9009941e651e GIT binary patch literal 20161 zcmV(|K+(U6P)iUj00093P)t-s^z`%g z_Vp+zDDv|0@9*x=&(GM{*X-=;?d|R7=H=nw;LFR)>+0(0=;!0(;?dF3>FMdo$jH{z z)5^)n@bK{9-`~y5%H`$c*wxg?$Hn5};nvpG)YR49-rd8)#KOYD%F4^#-Q2yszSPsv z&CSi)+S$j&!_Lmn&(6%p$H>~()|Qr*+uPc*v9YA*VomntE;@cyT!!CsHdlbf`Zb~&wG1&si~@oiHXL> z#-5#?jEjthhK9etzj%0f!@|Ihj*gj_n8n1xprD`D)6(7B+JAq5+Su2#v$K7De=961 za&vPqFE27HDZszH#J|2REG?Rlj>5dW`1kj|y}N;OXLWUUmyC*GOg@r_g^+@JFe^5l zl#*|6Z&gu9v9GRqd4F|vdonUHdTU_7y1IaReKag8O*byQwzjvkv6F>;SX4})mz9Kc zYpbK6P&zQ9nwU#RK8u8hhJl2Od~;h@P_CwcZIUs_Z(H8j4sxVyEp zl!}OPad^hTz;14Ij(>JGE-bjWw135rNi;5=lZ%*(goA#7XJcDaKRH`L zGqS9zn3I%nVNB8$Hl9tsd8&>e|&X7HadBAY+hJg zWl=(NW?E)dNMT@QPdhfIotB1%i+gu*cxhZXH#m}wjbvnMPf9^LJUT`(D{W?Jr=+2x zmyni-fN5c6JTWwIVpvyHRXa8>X=!P0YGi9?UPU@SRXQ)x&diaJnOsRlLPA15K0a1W zP*y}hUq(4ZLO4%HN?}h(J~AtUe|lL)I=s2NSy)+NTupLqVT_EEihg{Ji-v7iM@L9U zXh%4McXCfoPNSo#XJS-JK|^j%KWSQ4Wm8alZftgFWtWzoSFZ}c002vTNkltapwG|4?gkY zi+4VF#~oFo)9K81sz3a+rhJ)o8V$$Err&?x(ra2>E6=oZv*)<NoFYUYF>vZ}vxe zOZ};ly*K*(si~=vUTE-awL<3_8MvWT>06>LS* zG)31+UOCsy)fBJV&NscXS1#8SN5GhdVZ@W56r<7TaM$6mSnrYD~~eEs!FS8}B!IC0Z7TWX513ZgQKqSb3! z4VHX9rzy2^IhXUwHILlcRL?Zxe1cRIW6{v~=p-zm|G@AnprJHwB{66fcKtuje|pD* zpj4|foeo6pX0GhjblXx}YPwJ;h%4KgS1aZ69bndp)y<{;Qm;Q8ZV!h$JF8Rwhq?Ey zuYa6B`q*7JPE1@sF)?eE#C>$zgYj*azn8x4wS$*xQfMW&&m+3=NGh#i@yv7W!8Uw(aPeS8CR@d^2C| zv}=mu)rB4CjzeK8z(*=c$#n%xI2=VW#bPWLj)kJ*fS{Go=qU0BuP6tLv-i{r@l@zx45| z^8#k#y(=!g^a^gll_D-M^sMOLRKeF9j$Y0Qk>r}q{7jRwpc+M|!D)v?5}`<_g*>=! zF-AR*Ml>7_2Ve*VCRjj>3B{PHf|Et$%9-=!X4#|9W~wvolBRH(0#0I*zmzFw5(z7- zm&#CBX7i_qBfa5pbG<7(tT)ozM>E=+&z1ZmkKKJ^F?=b8N_%i?Qqo8jvW2ve zzoXQBpBBiK%Vpta?Xu!Ge7$aG3o0IA#N`Mk1`ziy1yCeJe8q&bg+yWYkPtsVPoxUE zzq{)w=g*vJ&&=S+ofl_27^Lsm1GsYC8AZRbS^_cP3}a4S*j5UlamZ`#ZVn3m#dZM7MGXTw3*M(?W|9Y z^l|9EfVm)mX}xc!Rb%Vs!!DJf$-~GLono{!x9~BvQP=g9>NNbi<}^fSr?U;+#zF&6 z&Qzoz7`2&7B4fyrN<|LdEyBXoK`o-`Tvw{d6?u?yG(bKTQ7<*y&33-+)$M}VB1}_^ z11!GiMod_k+gZKFWL}ti^UcLYZx&A*cDvMNX@8iwY8hKHog!ce1_cMQn=maqi;p20 zU8(uDfZ{ry>hF)d&! zNiIc~0aFw(T-}YQgeUt7Er2n5C8eS3k`C%iGMHIX zGHw>EmYr=ZFQ58guG2ZaO;OPM{(%7)nVYw64!VrSfP+MWBxTfe78W>ke3+xI1A|J< zR?8futQIK1h^35WnOEX_CKJ!Fa+6wNaO7r>g?e*xen84GoI1mWJ$a_u7OQ0=Yo%36 zDoUIQ%EBQNk+BO?#m?%Dy5ldeo%-U`%;_B##o0K;!$Er$to;17k1{^&~_)!1K2gBoT|)YTP1L79ll3X@W|_LS2~c1*cA#p&>d= z;f-0u0SFsW(5z5V8BP@!)|Pha7*D;i_{;AnUpyE1*y>VG?Ed>10BIFAvu6Ob|41oI}8k6J(DU0Rx3G_$%J5u%1OKjF`}&16N%&>Y|f9n5clEEE#Su zZ8w0~dy+sfC59Mo%B+&0p?>8FrYs>GP`u36Uc2;}c-V{qF3-eTO zKN#|{2g5qWV#o>=Twh9<1s*GGU-uol8YghlDN=}CB{P+1WIztF;6NyJI*lQdR%l#l z^5B632d^531(dysDdr{M?3aQ?2_7ZHYI)|2;_t#TkVyg`r_rb|H6ECQt*xhzoOs~v z2OcPnbpnpllMNq)cxwI{a|P@vJzon0yD~b%MAoDXvWSusFO(B zz?g9Z;{`!F6iJ9$ifkvSOv}i~+zvrmCJ!Ct&lm!X{cX%B1_88GmDBLB%2MPZ{hIa% zdl3a6B=~S3H7W}c<`@TNaL@bm$BrI7dfP3x-um13XU~2o9J#l;xzXu-bN_vttG%hI z3t=KjJhUiDz=VMr1%?|aN)>}=B(a~Nc#BOSn^xl#klRIB*A=LQV?jDc~e1z&-rR1$w{n!dZcn=Qb?X9LYfMBuB%$dj&R`ck(PcVaNOFON#FusQw(6Q{gvG=w`Ez#KSKbb*cudoGHk$6LrbZR?`NJgrt^ zHPW3lC07R&nae{11yGy>n3h2ykG$~q(fQks9X&Dq-0!~~-xzKR^>5_cU*CKCHy^$f zjGPN$SaS(rpnxQ3axwUT2^QHDUpz0x#W-XQ<1uCQk|_5IObo%xT$Tqkd^m`)L%>{h z)mT_^h44AMB%CTPHa)i1Krw82_=>~1Nt4hELoV36SrhmS+mvh?!u0QY^p&G09(dz{ z+ZKMDE`6|a^6bxN&wladsh=Nu?Y?^-*%=BLdhK5r+CdB!fc~Cvfs+cu3OH0cJ)NRQ z@UV!;9S${iNemX4$t0ZyOfq08QZ!J60gOdS4jv%pi||`RMf_|;zE0rx!c;583|tdEo6APAo4hESHWSfA`eMl~c#(zI*+tuU>xm<#jw- z*xG+!I1`gV@cavdVo9c%Lh-7~Xb=x+1}Y6MN&ydD!WDrLqlxv>G-W9&KF4Y~Dp;<$ z_P{|39M~9jNdgm$Egu#r9H+sOXBSc?o+#=f2#Wk}kdBZzm3x?v9lrUdyY7DMg;(CV zb$VfKZQ;4OH;;et0Xy2yPd)YQ^Y=Z}?{+WL3<+ed4M_fl2_8KRU@%_V&1x}AgndyK z(T!slM+Hm_xr)5g^x?_T@enZ4@q-7hz51GKuN@19B}wMz%tBUwU<3+tMLfA!NQe%@ z$%WWNF83%nyNFA}G~C4DiJKmM^qzZ8{5ZWf{rJKnI$K;^Se!fi)oTwu`_Nb2UhhH} z&N7LE5rJgJIUf-d{=*{6P|WZ|E;EpYN*SwSc8p#rw(BUwm0%BJKjuGQLV!}41J_-4 z%{AAIO-5P#gY`R@>TxSeJ$PRJlT9-Xkui?r_#3m1Ez`_oG{&`dW_E>P9b+sr#yXQ@ zOTt>DBv*-THGF5lS!!+ilb|)1nZ*g-nNtWioRPgzF4ffdP(hp#yOzO9J6ZRz4NC|jXt&N z%B4exc0JzZI!kk((U^;cWW`{37)*bqk8ae$Y@nhHzlo>=_Vx@2W+*Ag?1b{zoA7E! zB4HHMrd_83j|D}aCW^AN{wRjDMLa17XfnY>yPyGxYEZNcfn8b$nJ$RxnMlMMVzXw| zHLh$VKKB_zW1TtQD>dOl)3Ocg>+u=d=RaX+o`B&}Y>R0c5)QIlzsYeMxu`c0hcdcm zNBsY=O)G#Q?~^3DmUw`%990l4YSX?=5mv?(2^W@rx}=FDM6MK*+|iW-Q#5d@-^h+i z3$ki$QVCb!K(rdQ@UaG9s_Tv(J#ezIQPHE40obCxXEz+*_jJvgum6T-8`OCa`au(D zxH>@!3lqdpRgS!Eu-wp#7K$u@;}Gd?{1O(jOM>Ag3o7c+78vHtS`f7*E7lZ)ct}f! zr%>>vq-i2o7m&ok#jtdn6q>M>pfBL_g<|I#s%I_PTw7ar{(SB1_o?!My?SLvk3YL+ z&GBWg>tB#GfoUGiv>jTZU>r*V$^rm+Mc(eis3C*|;g-O3Y>g=(zV2l>OrZykjvc*v zcoPNf+PCe{lV6j43Gl#Bqr{o&^&hOk6xla5xEnQxk8Ls}&7@0Q2%SyEg@Hofs8B44 z(^SuzHLG@SU3KTO{xl0CD*Ft(_I25Y+l!~UB%GVWNNgja5R6sLU64_3(QD2b(PYBe zw~j3}+EcB7Pxy$&63dl3^=uRE=(J=+GWmwOm=TP6k$!{K>USXqn-5M5k%GOR1i~h1 z831uE2?ir*X5zVXv1&}MVb-SF+9P9oQ;0Am8vfyH{q1_D=tMJX1oAKmk1hfV;%#{&`p;` zB|{sODjzVoys|t+I4(o!it=*)iNrAvEE1HX+qk#Xf|9{tX)rc%;<-pL)aA&4MR;5} z!^o-kKfHN%siq2&Y;;!tx!7Q|8XO;Z}QT`9&>=M+m6N`Wq9mXthS;@d9He2j3t) zWoZiRe{eCgSIR|T=<4PD@c|?H^NJi?ro2+CqOP%(VQr2(M5jc^JxIL~WxO7?)A8+GkQ-MxhRO)~K`=u`9VsM~p?VK7&aH zG}s+FkubtYa4?haTT6GJg{SFJ{r=aFYql=VnHn%$!eFF#?jy~><6PJ_UyqIjB*P+T z3JT1UqOQYdwUq!C(gOV;m{H_hM$p{`54I73rZV>FC?8dHHWW@M#r$0?u4=M2tq8<& z*OOm7Ot zRtF0h(u_$~31KZii)XJ)dGZ;`PY}v_Gc9HOHlQD~42=&cka~Bv5M!04)}A*q+XmEP zk<;q<2rQ+jNEHu#VOibDdyS`WZQr-=$**6(u0GtkVd3ri{g)opI6_H3Y@D7Hc$8jS5kPFP{W|hpJE@PT2A)Em_EyHR~{}NVbGVBGhoK zi%3#;;OO#$2e)j2#x(Q%1Z_=C6^f}rvM}794Nxe>XUH3>8XXv~-6SlQEKHsz`u7VL zhSVz`w+m{PhL>Qv5*dvZ`_9F=G%z`_qDDLhBZtzTC|#9l`nzq>(G~OO&fRiQETFtP zaou2YVm{;4jEI6+q=Ksrax_EZg2??5!!eksi{$>?vuBRQ@Ap@DN`t|qNgy_kJ!Qt| z___|M4U!Ufqw-~t1U45&8p+o2SQ!?!tyk*&y_NIle*F0H;=ZR(cP_iVf6pOUfZ6(I z0MLf1GP4X;TwFY8P({Tc@1TlOPlfKNg@Vx2RX~nO0*kLW)q_qO3 zi$3@<(=xL%8djQTal^Z8%}6W`xLulkXpQZs`z<+AQdb5N@O zhA9z@gqr~2^@3BJC{DoT&qiHfwCp?#Kldyu;>6o7i$4JiD5jQ>gwjQmu%USv?j`S5 z3d^&Yxc=f+W^TizDuOR0WbUn4zGd#}9T)E2|IpO*=EcjGFYj!GLKrjtY|gBfQTvRj zLNSa)!XFL~QM7ejrbxnbP9a5tF^M`XVZRgu3Q92v1SmG4(L~35z<4a`I(FtNCtCn; zIC%n*;oGP9d>f#W0shK49}n)naQE(+HMzrPquL;QY7 zSgxZ8t-Dhv)-M;)*%jWBVuTVdF0SwdgMh?D5)({eq0K0B^*6%SIZ$|}XawYy2rjD_ zgBhjKPQ3qs%&pV&=gc|y<=xr4_wS#f$XvYm=F1m1n?X!50Y)yPgba(5zyOhr`K6X9 z2;lGp2M^IiL3Ckw!xST}_+7miOiW+I2?T;ZefIAR4$XAP>3X4vE3?ZYAnp$lCm2~d zLXR4!%dVWTebv6>cXu{@ZF+I(*|STB-Ez#SFx@JXe>1W$)Z!8A1x)c$iz&unIvifKghIO=Uv#g0{;j1un%=y0R{LjXDU!co$Wemf+2SxXGBKn;DrwiQT^m>=M$!(p zX0gCn%zNoPV$*5WYwNac+ZIp9XU|SgFVm_hXN-obKv6CkG!hGG99bB|t%Q_W?AwTf zsXX;*$Ne|o9w^1T7KLj5FTi9!D|2ANTHSBD%|15nIgaBZo}Yro)2c$yEV77;1Qqc| z1qqE>b0XA3cHA2L;by1hRu7luiguBnhbv9Z-L0u>X_qUV%tKx48l6ySwFq5^7S&k8 zY(j;2y+6Nie`g*(uJ^l{&F|Is=lT1q!UdLdb?1;+xR^j9!}N~7$x6+oMh`X*8(N=w zs_`j2WL-Tl9A;R%e1<1XSy>rFiv8~_Y6N2tj>dC&76kT9V3Tv{tM7mR@z>qmN!dn7 zZq+pQ|1c`fwxtBd)f7PV1*mG@ISARZE_7utl z0@sj@I6es2Nfu(9EM*KvQR9RWgv?;{M3e@*0ILJe*)DkG^>@B)=^zQC4M4s?vj2j? z+#n_x-_`(N#!Vv$WT5FPJ8qR1NGmW^9!w=$u6n_o-^j#_GK?@c=n>XhdK&sI>ki;B zbJfOaW1p3l-NR2DOuupcb&uTl(br#W>$rJi$F}F6-}d}AxNg1a|6x{?wjGNNCa%B( z<4I8=D#SSDl;Z@$Czh51JIg6U7lSfl*;!fnWT3wB^1!zXvYi1v%=;N=yNk06-^NV|a-4hOn7yGw; zy6Xuy@_W9gvon7OAYp9Q6N_LF#fp6e05W+O2>M|9U@Tz0%pjPHU|CIj$*q^|#A*Y9 z%F3E`wWqDV0yd+ z@7OBSN%|NJD6o(xD3|mVWWHg4WL}lW8m+;^K&x!!Q;=qGB+A73>CuR+1Y_;2QZ}PWXto# zVv$uKu4d`LhfxwUS-88iL~#|@ zR)a%>K*#{(^3Bm=;rcfi@8ur;_lae-u3AVuPnXt>_{e`&leV(bIqw-vfCbN zN^Wb8=8AM`;IKZY(eYMI9*j_A6{;o%gRQ_E>EeWxZ2BOKSln>w`b$JH9Kpaq#G9KD z|Ih&AP^zmKE>65iyKx7@RXp&q@d)s6=*2wXcJ1Bo{_?~(_dL6_^!d_wB%j?IF3d+~ zf%)`a@>p^q+B`9lE6)A)#WdTDo3IiLByMK0A|iuGW-LcSV=Pu_JQ&xP5i(wh0fw^_ zU`!FdEQ&-#=#v9hW00sNui`uKx6KlfBhyNS?vew8>v*d5?$YG=FhnJSRh9jZK zNMRs6KRd7({q*f84!-Hb=ZmS?C^Y?Zb63Sf+_s#?32u}{)mw6a<9U^Ir1$QZ?VPWRC(p84p9 zUw(UF_^mEjh9i-gnZo@1>})EPYx!c=!B0H=*y6yzY;z86`d?^SSV-bz2D7q`M3)Mp z+5~X{qWg!&U(;mxhG2+k3;$c{Yfsy0DCSRM6pKES(6FkrtIl34yGSrr z+f?;6?5gn(tYg||0sF{%Z@&KeN54Nivw#26`2KV#gqw{P!UO&N(S?PU>14~?cZKl2 zeeI`;Q0x6iVlnhVmPa(dUjOaRb0n8O^5P@E|&ps^ToEUx~j#K3YYW-Ry< zg}Du=O@88<< z(nAm4cISG8iS2JsC*tu~CKSqykI&?XhK8t|5P_812Th?6PUWJ}iH+Ue8~+AV?!j1P zF&M7){TH8{%~)(?h6j|O0tT29t9E-%CQ}+F*5ym`DyM?C9dVz4S-S$m%Q+blQ^pcD z088iQ!Li9LFE%7HnOM9%9&c|zqD&?diHzs-BiZi?qlLm~IMqC`Z+RKA=7}6I(A>Lg zm%%_%?(bh*bLjIgI!C1`rF#a|MC%cLV znV#z0-m__Jaz|4`Lpl@#MAn`b%s4dTk(trL5Ef3&&Mz-7&(F^fG&cj&F+IKOLxTat z%ViFRROX_*Li43F4@S&lahVJjc^M`kwi)VJT!=uR;ae|}=p`C`b}&Q?nUJRK92#jl zQbm8y=E2F{sRl6Y)zs7^n2=y(Bcp|EKA*+gmY4VK8yJ{Z3Yciw_I5YDnknO0bn8|S zRWC7v5gRX~aWFKOGOq`-R9P!OGCS`ug;r@3jTENVdE|6IhHN;X2jc0awyiyz z$9ns)rgjg8OM6p8OxZa>A|P(|W?{+h-CIDLfmv)|k%X3{dA?QijQ#Hj7`c>#;nrc1 zIT))szJG}X14cBk0CS0Y6-lzzp^zO;JuetMjF&GZWkoPSU?dH~$jz+aKDmM5w}82G z$BsTYrly*j;^}xi-qe(irDL&lA{0ZLEXqijLP3r;KiiyAcGmvfIsl@;haoXrgIof! zcHg|rwq$sYZq0|m&34OA(1k>0CB#e@SokA`zd{2oE@v?ON;!f)0b$tcv~_OZylHT9 z2iAuuO~9Bm;3Tkg8X96JpB=%^^7*~+>{|{GG|#5U0Ub$qK0`#i=vR3>#fPzr*f3yh z-!GWUOc|MSQ#HozFn{q2#dgUgOmGFpr3_p80wZ2ac&iUxT~=0U1!mJj4^H+?_4P^^ zoXp-tlWtFk(nL;zs1XdIqwWS6!lqd?(FJG>#_p1MA=n)ZCXMt#zx1%ISaMr-A6`pB zCEKvJzwL!g)oRVwHMbKl+kx3J)zH+}H`Rb43E`5C zLlRG9Vx;O=L@8iq9A8uQEQAF!YcMSf?ts>I`zxJ{?%rtRZ!%b1vaZ0>R49!_Use`n z)yiSUQVxM*F^3BVQ4BT^JA0>a`AyyBTOB$*KQ=ZKXXfHIMp zeAcq_EL9UD1#|;*oJ+xW!>br7ozeCim&?;~M7-XyaPxc_f>+gDWsxvmya?sIAg*Z? z_AY5mCm*KTTO4jsOZFho$xrpkEL0k>_*7GSLwY=flVuW0(2-0cu^%v8js(373p6?U zXstYN5{y`mV)!y~jKS>KV~_MaPQ_negp6*}B;h_l!0nZj4A0MG!i5A2LQ}_|!;N`4 zm~++Fc_p{XSWctFY~{xn#vYp7(bu=5mqLR)sKblw9Kp*_CSiR5FkBPq1g)ng>49jp zf3AO`W8=zj=J}DEilvB6mY{&8=vN}+4zM*r`;G#m_TJ>Myk_xHGD?kD0I3VsX<$$% zR3{pRomd=9^=_5^+8V(O4vvkD_3r4MSX{5`VjU~@pUUuyi@eTnm%W38<4S**Htl3;+vwP)omTmFN=#eZRt6cG z8D8=?5&^N2iM7Wfu{ie+OC&~{MouGij?$&6g&Li+p4$!K@OD zZq>R&OI%!K4hFg8RJu)!-Lt_!Vnw|4^5$z{8i z0E(N*NphQ#G}$?>e2}KrG$cZ-1M|FwhO)ruS)h*Y=^K4F^Rt=39FWJjlH%m)z(7-i zp^Dp0+n2^I2Gu%hkvl*179Y}^%yRrOvg3~>_bZ)U=AL^hm(GFhyrv(2oraqCtF zG=&W$=wow@8qapyIwb%C#yT4Hnu|OL_&~nWBOZRIsEX$p^?aV*~-?i5*B`s?sgB)*$j3H1P8EST4rn`l6*R5N} zzi31%d=F`q2Kub0F&K54tk6bAmR|XFhHUnoM$Bl6X$H%o4hI_tF}YyAkBP=$#3UFO z|CXGI4p`_OU3;Rd+vsR=>rBr~H&E3ex*45_cLhmUnrr<5W7 z4F_==a5JTV1c{lhYzdfOv!mZFHm4knaJHe2V3f85;Y^uFFxKEyV8DPNb1<+-12c;_ zF_;jqR`AW*2--(Sq-x`A=Q;+tR`3u)O>nQx?IilI`jnf^Nm zA}mG0SnwN)-kdbv(Ya#01QVnf%EdH}`UzZS3Co12av`a1;LlvkFZRMJ!x{dbc#JoQ;*LYl+240}B8k9B7h; zZ;>`MHkv}?!{|X9lPEyg*x?z}Y}U1IDM}E(HUN82F&8D=6H!C_G}H#c#EZ<#3Vw7mT$O-gE@aq4KpdlSE!-($ok> zQ>S#9B>10?4JG0QZt0;_*3+RL3gQEE0g1DeyQB)Mc4N=@s5sMp&q88%> z#He9{W+p`FOi_fE#w6faFsW6OU?eet#u#xyTB9kXO-%X_ZA@dW6^kgA`rz+7_vC+! z6Srfh1&KAkeCM2d?sjeth%g&w(%5f)X6EBOLyKo#S(;hH5-?Vbt;}-b(ML1V*x#)A z5nCE*$DIrSg_&T`hY#t)~p;@C`CKzW~{O~=>8BE*h6g7Q}GK@Fv-FN3C z3U-XcUZ6hKZq>L`ain4B)@k>f$5ofT3!Qv4k7&{E5sgaV| zSM{J zt<9;VH47HOXs5$xjfNswQ^kx}DE>d&x9_u=%6Mlv z-&)95Ds8j9y*67RWdb2hk_C!@;bWFS zWcoV(V&!`kXBuU!G)pj?s^{u2ce!W)aM4q$nsGC%ZVhJ9zwiB-wsN(aCjk@=9B3n- z9mrSLws-YaKdBarS7@rA%MATbzdI5f``;HpL)2HKKnaI#InP{y>i za*?_4-be3g;Me@0U*F~ndHERk0z11nugx-TELQzfEZrFc~11-L!bDrV?MTw zm`sM}ip7Lkf>A0nWr!DbQPH${Rf3`Vhi21Hz%csH%(NA7t=7Z8D<3no$mZwD<@`7q zPOet`F6}l4jBouVoWx>YW9AvkWqY@q9%nV&S7PX1oj`@{E^}hwCV;&Nz&-cmhZ!lvLDXQ8dbqlC4CO zKro-89ZU3QPG;K%9y5~W3|JsK4;1yKXtd=G#b}+%XFesgzOe`79k?l0@sZzD6aM7lFxQ18M3!#HCTGhlGEnb}Id*hk6o zOdl5-pkmLwj4m2+Iv0S!&z=;F=Vb{Zia;@z1mh&ma>Nl%lPse#ZNm7ErHfc7mu>q$ z>tkYfbZOWxWIGIp zX3+%?!}ec-F0eGq&qPCI_7WZ1T3Xa_ZgO&LY)^IVbf+S{{X1~FiZlqcjxE5@Q>T0M z=bv-17>q**!;_f1*orIxgEVy*DJZM7Gk=@vEDr^Yq{(1Jv$UmH3*$7TGA`XPAG_$P4YX#jzj8-YT@z_}XlTtQ z9o8Cp>Cs22np=9v02325Xllz>I~h}|j4b2h4FAQ2VzKMVZF(ypUEa)@H((a{sI&r0 zz$_=h5>3Dy6Us<&6|Q~YXPLHzjL8Th1uF#D3lkz_~vV9wynDxa~Ka5#%tAL!6KAe7)Oys(72z42_^{x zOe6rKF<}gbg@3_Z0?ZWy{TlfZ1W7nX%X+3@dbk-hF+#J}HfX4mWwsnpA%@y@&k>_T z=sFh8MFWZq7-xw*X7&%l1PtUgFe&`SViquJLc+#oz>t|Q8^D^B%7%a$dRwz*bF&VV znJ}1w<^pH}iD1eL)4UOq-qL|72S;q3nTL2G;w=9LBbI>iiF9JJ#U(%9oeUHgh8yU> zu;UEO!v@1BgEam9jQ!+h9F1beU`h=QNHaJ%sdbDBaug~CLn%{SSm1#j3>;o=K$#4N z?;%9-cnL3al$Entz_=afqfDy&fe99aq1D$3OE6anrv6ff8M>L{X-#P-Q!pfe(v2uH zISEW#8z9hBkVsIVbkejH1Bc&iOT$=fuiMR83?_!lP=w!VV6wRJ`GuvbotRxtY@l24#Tp`3$vL$H>SMOumAz z5&W#6l^41Y=14SA{9`C{oU;T;guao4lR3=adzsTjD)YH=N@JNY=c@4sFfY?3^I^fP zGMKGfx6(Km7={{xhUyGAJ6P)JQ753mu`xnL3(dXglZT~ToYs^K!^QBm^*dFYC96>- zVE#2?90mi$S<>>Gm;TIRQlBiZF`1SzReqV{41&38)n?1hC_{7V0k6)K2-r3+(bRYt zn#suuAlPiLpoo8mapRIORkLili#bZL1Wb)(Fz#p0V(UDbD+42zbmNR)$NT+3ZDpz# z>%$msM#s;3gTZd=e-NV@AhB%+rqn}A!;z8UnO?0jgG0dJYQRMA3DgmcXo95H$#Ss# z7Z@LCVrdj7(?Yq!Km(3<27pBym=41_#w8eKGj4_r+%`}rYvOa^!4fl?21@6R9jw#z z&dxCFB>WKu7{h>vo}lZtwNGo>9LwIzU_utzKe0FrEDqzPKQJ*_7LKu`9!L)Jl)-F( zWpzCh8g-}!hp|&I5{Q^-=x6|^ql1GDGc&KUAt;)B8JK$oLcDN)?wfBqyMS@4VfoK6 z;bkfMorUp|h_OT#!oZ^CKZoJ8In9F%h73@D0pifrT}goQxmhsVf$5;TxrlU1hZT-c*#q;xN$Q zX1-z`Fgn{Pn8wBn8lfR-cI?=3g_Z)En+I;|zYvyE3oKYe&$V(kU}PhcgIY@~k838~ zS!Hd&VK6a-gM})A5;V0=7V#2OWg4S#?r!6XhgVmUgAGmbvR{|6(QV9JFsF<6=~c89@g zGQW`JFrbLVVRWrw84NUnA!>jjoz+o7n>4_fFg>scq{AZzX>3N2FF;f*?shi|hMI7x z0dklSCRhl57slcxVAA?>u(&c}5lmxpv&Pl1@ahd-2FyT{bdfOfw3dbzIjMgi*k_mk~3t0Q2mNmtefmqE}t$ zFMrt%y${!qF2I;FCG#>q9j*)?;>IdAs%h*8)@gAw0|`X}rj{*00>*a6#S+_9=48kM zOr&M85CM}8Z1Mbl#tar^GgF3Ub*pWdq0>H1okgRrhW)U(G$rhMeQ+}wFqkC)(NIs1 zP4RHhA%j`La{Bl`v5673Y_tp(+u}hO-9R}%SV9*cWMsDkOikHRZ4Q=N9Q)?~#p^u8JSWF4qI;QOLKm@QPKKcj z+BnOz7t70te?8#K15w7p>n?J&3ys69C7DJX;S6i+bWf8uh{N}^qWSk50@a|@vS3Rm zRYI7gO9lgrXe5jZO<=Iiyq#vX8OrGOUSbAi^i&+pfq37E#{{wKFf=G)4CD>OUo)6UVj;xxe_tz$vqb1CD~sjMS{9+C@zUFdvXm(pnZelOy}+Q& zHCAo%V4U7Wg63L4ZqjqnH|Yb+b-c!>SA`z|>7K7X{}^q4_+f17kH*g3wX!OV;ua!U zSXiiFrECPMzBaHx#_GdO(ldW?7U!SZR-mx0%>lcWg2fk%)tB! z`de$Sv%j1;4xyJJy!SFUMX!OqxFno5nVVN-7g$5bM27R>@jbO~N zSz~8{)>&$VF^W$^Rg}3`_M*&AS;1((oC07P!QhInh(@|Ej2b|okvZfInZsqVaI_1> zu;~M6=JUDDf$6ZpoZY#z8D#u_Uu4Bnqh)NdFM)w2F$PM4%rNPhI$pl@(U-Sx|McBY zhLPTOHN%)Ubd{g-Mkp{S*pxkzVYum;8#%d%n_6IRpgFrgNfC_DdaEp7g7TPxtUdB; zFoal85@adNx_ftvs}X0nU$}kEBm@~z29B)}3j3SH8NR3rz_Ke2!fp3Jc>~1tZBVXL z($H5IfBp48SVq;Ya=)_xV-`?gF^o1b3{$?u7_$JQ$K`qhsxGIv=2-?9hZ!(j>kJIt z2GMGOX}K>Nt`tmlMv60K4lJK9e+Q;bjrzxb?+aBZ#bRU3(n3rFreU1@#Zt}y zc4X9IdcL56rNhj05hyS!WXNNtQJgOf0o3L_!|0+%et;2`VBUpi-eFv#mw_oFel|K& zT|X>6`JFF1a9?i;H;bJKONT*%*}@sDF^p;4G~F_hNZdE~bd#XU*#LvwZF-nBpb1PL z^*5s=_s2mN7<}Q}a##d2w0?o`Nnz&nvRSz1)fbym%RD!S1{jOVoYL&ttWgGx;J9-d zM?i>6ZKuu@iQ{g{lH8v(exj`T@=#dNrCB+~q{}#Cww^W&?cXrE(?uQAFa#PTD$Ry* zVg9(eLjKDdUtg_irr+BNwXa4n(&gEdFsft-mQj?MrC?r|iKbxi zC9{m;3=F}DMFI!})B+|jPkEaRwE=V7FH!IQlEdt2 z-I1)h3>Jr(XJ%L!%l5zk$1KJnYjy?Ux(r4u0q&a)GvX{Tr81_L$+dU^<#Lb(#w`7d zgBg~y8xxw!7%wvQLiUe@f;2EkVlhneMI^BW7>scR5QR8Qk<3vw+XNGe>BK(@vddBC z!9T-t!GJRDn85g07E;f&HI@EaoKeZt`^^#_awaqiG<<0k_@e$9mT7!@@Bs0yf>oAouRhQq&vcFc!1@ov_I*c!Kb^a4% zo@TJca-)eWl{9ijbIkV&F4F&cNQ&jK!mP9@V=BthFl#%;F!DvSGWp`FTnz^4HW}or z^-*AE?lKso;>?1%m1cevWy2c9nDws)&DPzDHvlNUs zG1@aSLaboS0!ml{vt?suuFL3U8RMZDn)d?}nySq>uP7NEM=%z zs+0+4SSsfXcI%cS7(kF%=$D?D3kF;G(b~*{$17$p&7?R3jknFH0GZ1U54V&4EzYhk z0Fz}*XQ^plP^0eB8HYjDh@n-gW~wz>G=4GKn%+I!p!`8cYRQY$+IH1V+oUnVbQ}4b!{K`edb< z3ea(&QJWd&Ox%$CCpn{?=gm`dtziN)9+$)7ow7`r{W}YWK`{n#2^BI68IzQOhN3K( zR>wf;>zRFi43qk7XLcp80hBPv?s&%JSHYCZm@8Pu3(Q`Y`_ul{hakIWQm&e;d=eP5$Qn8fwpd&&t7L)30VWj3nOqr#*{~7Vf(#fy40C*Xdh_P#=_$_qFJF*Z zs+Q&J7g@y!CD~sr1B@5SWlK7YU^4x`{bpdSP}67abJ~DD6vr&jiIX3M?p@KO0Dt|F$L1m=j{D$~*(`@Lyx* z2j?fiFqXlySj^`*Glp4F%}g^b%RcHb&V46;VDyf9y$7(dOuA*h->*|8XbTmJLo5dw z0%ICLykRa=5JyklF!N+)=X?Q+cn;QF<|<0 z7-W4VaYp>6JcQ)XFiWEMS^CMU12GPdb%JdO!tKV%Of*j6l6WnPUa^PAPW-a zFfgaGWePKPW;|Vnqz*3B(C@Y{HI~5@`*K4n62v&>hvfDpqa|Xm>z<7SWCdfpxi_XyrH5rl)^SQHSwOWGYYSwu+&=gF)^;Cm$Vhoni zWSO3?cjUzt1cmYh0U{Y?)Lk&9ugAQ*y#Dv!_4+O-cX!k&1=C`zbxWb(3;~7+w6in8 zL|2Z^5QRrU=BdBUmKiR?5|q?1k?;zM8_pJO^x+F6c|PX)E2NMz0GY_+-!Q~vbRe)Uwg z@0;t5m}HD;VoX>ZUt;Mbv(92)k}5U5;D}(Pq)RWxoX7wKog=Sd40Euc^CNH$S;M#h zEJ0aKU}A@U#!b`bN_@gzU-Wt6NvvTzM$V|gB=dO#b4&cOD?YN+`+X)#C%s{k`dPsA z9e*A#e+)-tX<28Q%$ zBgq3;!?=bGePw{LE6ta{*cGd#eKV%E$ytc;!5vtDX`BAke!L^#a!J32%_N#z)8e?8(s)u4D+S(S;u{ zY7u6+-RtwB7h}jUY{`)LC~FvCOtW03IKwk~7Hb%hJeXQc5zeE%Pp#L{Kd=8I<)Ld0 z#$O;vKtMV}&gX01Cw+v#NT#^igMcOJEMSaTl<;aS`r(uP3wD&mVh}zKvkQJw$^_#+ zQ-X*Sn-4(ba{RDTT@hstE|oI{9L{*%Ynq`YEMM9ZIM9*w;}5**`?tuBC_6+z9p*Gi z3RtZteFjS_WF2H=pPUaYWQ-=Uz8JGK!;mz}mqZzT=JFSN2ZKP-_eRKbnL^2eBYNhw z$A5k8wO>V|uUSLljOXB(j`i7;A7T0N=;xy&UL=ja{pRn#IYi#-mZy9E-vJSTDf+G@ zf+Z(05j5}KVxlBrwvqh+rcIWs3n>^J(&S|0e*sfGUVwe}+Ajf{qyqjC@3iI?d|XG@9F61;^E=y>gwU(;O*_~=;!9<gnj_ zmX?;*(9Y%I-_y^|(9h1GprGmJ=GxcPt*x%y+uE_Q zvE<<2+Su0D)zj?i>e$xRIxVX64*Vg0U-p0kn zzP-KF($O$5Fy7qR$;ryBtE|t@(AUw=j*X2gDk`Oh?$s};NIQD!^6tR z#;U5Sw6wL@)6u-Uy{M2tG z!M~%Tq;GF^_@f*9@ZR>+o%q0I-PzX5%E>S+IBIEW`L#$-Ix_dDD#5?Kb#;4cYH(*~ zZe?X`N;EIr*VA%xcv3$%IWIAOeuMhtzj}FiHa0f+sVYJ@JMQf2x3sc~ijRVVi1oT# zGBYxqoSbcKbM)xe^4qw(x3*wlXFN14`}OSj#dBj}U-Ym;N<=)OnUzF7G(<5gw63m? zjhFh(g!rl~&d$*G$be8!P)JBfFDo=aIWH?NDy5#A_pUhhrznw-nm<55mXVM=K0WvB z*`1Y*DItt?bE?_NFKKusZ9`pzp|tJ%mK40000AbW%=J{uA%F zupqy`zpo-@ON#&iDFaDFK~#9!Y?aSz(_k3K>yLwff`=jMMQRV$OYx9PAm%o5SRkP^ zC95e383|j+60(N0>5tK1N}54w6s;%OL9enNoJ_&XK$uXvgJ3D5J9+Uh@ca4$MEz2d z_f66#@8|tK&y(D_bC(W2eURQhc=p)ylt5HG6%rMZXW7w+W!RC#NEYo<6y;KpY?!tq z%gOd2vBS_#Y?+oMiD7xZ-{%!YjbpA=%9o&7p;|4ju5K2q#m&v)YO#u|T&(I0)1<$B zJbbnL2A%Enhj=XMq}BoC&~W&bU7`rmp97g@=@n( zae4h{x^emP<#jSIuVb`v;oQ00x#MGioVWQUR4UB!r3#M4O(1Lnp;|1iZW53R7YF{R zIr;YOcD+70XxF#vgCrfKnHjmg1`AHhYBCZlb>+--(m~z+eAekKm&?w^^yu<( zae6vkoG!6^2nYZnI)5&AaeqH~_u=J(#{@(WxR?{v*b_Bh^VvQNF^xu}HjE6)kPUFO z(=eiB+04Q)lMR<{0K(^Wo!9su9Qnd*Rw6k0La_=%erdH@ARtN*_&zh44B^R(gET!D z0HlqWrem5zi}f|WkB#Z~!AqHjk+l!(z4_VMa@y&1aGK9g7oD@eL7)q{ugAw340%8} zc6M4ESE|HZENXqf&#?F*qGi#PVagHV7z`3~Ovx@~7>;9%Ypkv+iYST-L_jJa$d_8J zN(oG}VsSRB&Su5x3>>%=2LR!H38oyrO487=?JP}_B$K1akZA@RqWdiC>w3_adZrP{ zVd&Iz4u?4 zXV(YLhm)6YAH$EQPj|Q$C&aN3^ht4$#IkyBj~*IMh`n*b%x>G!aOk>JkFGH+i-oCP z%&97t-V!_vi5D#*0Z@5>kfOl}dBw#FkM+^bX4ifH(M-~$eK6SG-flaQi*VAYA&t;F z2#>BcnlwB&9DR00Ito=VAR+!4&lM{dlcr{rAIAYNsNev06kbc$c zQLkykG#r$P8JaHLb*Uj*6$%`^N>n|;<0?YTaVpY_^B^Ji1mUM806}peFzyEYs5YS| z7X9t;@V%K1w)Xe7_x1*%;Z7{8!LT)Kj<1baUI{Q|YE+hH4!VmI?tNJ-=4WMC(dkT& zkXrwOFq2-BIeGcu5l2e>w?ww@vrMzuq)FF>>m!;PkH=j%0+VF{4%Nf+s7+oGgcyJH zK!NTp;tU+sBjrNesG?oLW>AWOqO(lz+i*y|KRi4%A~UoHTXkEedR7DLMsLC9hXVASrSGl$nE2Yr|7!NPPsfi0?6OWX;SmV*TrYvPe&lQg6^X8Y{RlFfV@T~ zbs3B94c+d9?oJv^b3#jcfJ{blifRlCRP<~y5OE0@7~!gLgP4)e-zc?6z6$tADWb-_ zMteevW}#_>NrGZG-5R0LAm8`-Kt%?E2;0PV$A*j?z*9+>9zXmt@2pRWV8eevMv@jN zDmc8>-IbN=E7z~DtgKwSef!SZYOz?j(Q1*lS*aGVq(X5OUxu}NoA)>G-MxML_T5|L zc=P5>93f1|jLdIdyRvfi>hAymAeXBW4Al1UOKDE-G=WR7Avkw{DZ$cM$Lz zUcR=rhVfdVReAbU@WcnY#`}$04b5{*5+jm-XlwZ=$ag;LXE$vih~xM@iXz396%lYC z3I9YvX;4MshN`BAG{AuaAXTUmNWIb{mx#N0g&zAJeVM*TzdN2~jFa@IC?Uw+^~bZb z_7|4q^ZXZ(Y5m+M2rmm!6c>xd+e7##j-sesE=Vq2^phnF!$2bgoyce;WW=%?vRVOl zMYw5|>TNNOqcUUU!_n^W55;!1Qo0`8-L0mZ(Q^5Ya7P=Bp5$)^@)^dnYuMjR{U*d5 z1#<|5yl}{+tAoIB4hJcEh&Tkon0bc`td4f~=Bjm1EfXHDOP7r0$Dhp7VwF?l?Y5sz zeR6UHvB;G9n`bN(!~ycrdZY!pbr6zwII5-2(ak89f^?p)2M_&K!pjaBjo=KSq>`To zVVzF4YnrnpjvOTKP(~hN4u)`f%K^l74GeKGsycj*3j(AoD~o~vp+y(tF@J|cBre|# zvYxMJ`}KS~D>;Yc0Ev~t2N=4R1Bsv1J3@0v{^LL*40D7>k%APOO@(wyT9FO!(&Hpa zpm<3y1KGQ$@?<-i2*fJF%tBEFaZ~Ez2~?vJ-yGsFi1oRSM#oh};u-1)G$sMwY(66S z)b2c84etA^X)@j<$&?^jya(bW8OUTm12O}`MdTnB7~YY#a8{x|?>IeGhTCq#>TOcFaBnOda@b23Vh!sR2Cebd}a-;_-gm@o6!XOGU zhb%1H1g+)NA*U1B@M`XyIu?qOmgKs{Qzp&o>qiH9S&{v0*XTJ)h1pYwK$xBB%Nl>% zt&j97)p1U|?r=Ot7aD`-<*5yy>qvP$AxAauQ~Xy6v7e!5Wb?6Lm~8C z!Y~~IK@_q%h9J7C&Q_yfB$mXM-56Zd@cS#sL6m0uTy^2ng_~kNiS%;Pbrf^AQ5Rv9Tc6#<<=-eBUNEZi6x+LDa*85*$2ql74h0wW@znCK`5D> zlSCy*)*%Iv22qGPi|09{D2PZvpq$PBvwXVkR)Cqzc z4!-CF75ZnTTIN>YN+YXMuX91fp%Cs3^Y&yJ+9;4Pg(hNJ=Ls^0-Qxu*$SmZR@A+W3 zXm&GN2ISpjb@JkyIvCQ6kT57bi>CD2^(eHg^6jvPukPta(c@xK9R?%o$d@D(X|k;q z^hiFW?V{OnM6grdHAV%E3!PENuQpIdFA@iZAVF|t5EiaS(IQ@$5+oXQd-#s&)Cr;! z;$Vm}w8hyWH^$10Euu)LaGMFFR=x3%A&|HP>3l-2B@n-DLJ;GxjJXUEnB^?7t*T)38H7kVi+n!vU#^Sl%WO5 zmjJRG5bV?(KpHH$>c>S{j*lR^fbiigDzayr&Ov6rZ_rFEBR$k$8m*u?-0o>>a6L32 z_XNTcSyYo@r3wxZS`dx7IHF4!vY*zG+ETDEfAr|pn_QF!9dp+5(Ia(0)@;9@2IS2w zWM$>{q6J8G7~YSz5~MH-K~fKpM(e2r$!U3Updxz#!H$0Wow=o@GxPJu0XYWAmwqRK zUBNM5Ij4ZUs5$uCw2r6>y z*vXTC^dG(M_xpf&F3r6zdPE&&J{peaSnQJ6fY=Bi4QqgjD}i9j2?tm1Mo&wKaUPMo z{s|)+axepqbL2ol4mFm}oS8q1ijadLj~)qxrZJp5quJG=`C&j_*|Ef?34TaE?k~^=~40WojEubVh2Xn6BiH;4=sfmUY+N?`Vg-=-7h zdfiD~>=&(rA1zBuGD#BzA`WE;1ktw0mFV=V3T2=ew2wb<9_>+UfN=@Cc+6O`*;?)x zn?{DTTFz|6$Ip`)_qWt!)y{#Kj)Wl+PQJwAPdTHi#H%1HXtt_V`N92aQ`YtLDN37q zz16y?5Q~2&>)?0W{yOOjfDbz{L>+`#BO%%#PdfL2pUnoltLNEhnH~( z!at_0w|s(Fnq+8wU6+@1J=7tXlCy*VWC!i4HzEZ|Ef=B=XIrvI^m*0rOoLP;4j_Lx zx0e`~qBsoT*4MKm6RNkR(-QBhS1MXGI^OS=p-AHqk3k3U_uQWA-Z^IYYHBpW{rR8wy{4>1Uq@yobvmO%66I*U^qe`@vao5W-^U`1b6w zL_yO##toi=NIu=hRQ_`~^2rhTviqVq#-#xXr^D9tY!Z-YboAWl=n2sb0MU#<;_;T& zt>;@q{D}A%IzKpz z1R%!%X^Xb?q~~|r?RF?Dt$TlI;{MX;Y<%M7)Us18r%KUO@@zhIsdLPw^V4^nXWIfK z-D8ah1eJ`;@3Z>SR$=X)0zPVO-Vc(yBC_>ZiD`VHWLs`AYeGjeYC>cm!EOX89wWpZ zS$%nd75t}uA?r_f^rWp>g=!*{ZE+zjXk|Mu?py*$%kfgFI;Nx3Djo0a>|kdXNLBTb zzRu1*D;oi1ey0_BnxunUC>wX`u<=;EQUXXN2MHifrXd`Mj~pUIhF@`9Ebb{5qrxC0 znD6(W4-Y`5phKL_jO$6y>KJqWR4CgD$jzNC2LOr9zMR}z3YAK+r<0ddt&TI+{KEKz z4TdF<@jVIl5xd7iMGAYv-D}f52|JHwdl)sFI{@{=*F&d3PQ$`CFn97 z#;`+V1ah%>u_%yMr3hwZzk~0x-MjlTYfoP-?3s?IN0Ke2JRqx%=g)6#$u7&^47C>U zZD?z?)IHwr-fQixcH5Suw8yeKs)Z`P#fN9Qt+wuN3;>so=QE?7a?D2epkwn2W+@=L zBGaId&~iZ@5!yw_THHF}d3`G#gN0D-St{(x5eY7SaV{snBIWb5T6xzl4aw}uWLk$CVs-@Aik$ek5W!nN48#7z8Fwd5 zmLnf*Jf>omC<kS_shq1Q3Lu9tu?qy{xClljWrPgi7=tt&<{D^+ z7o!Wxn+Q=ru=6;%U=9RxBv(+98+RQ^?jSBbSE+P$opU808+bCM{8onFBHEQe(&Gp3 zAcN88n{@Qg&>N?KLqVJ)AGtq;f?!9>%tRpBASJ=b)rB#58yE|_HiC5ykeomowYScq zQ5@3Q+Xsf2HX)EOCI=%NZ#)h_cQD@5y=ho6Hs7T*aZiInh;X+ zLJ(GDK!+JZie~t)nhqnRMLN1ukWDk@EdpfA%q^mVH#pd{vE-%4pooI zjsq{`M4=9BP1?m4{to|GntKVUigxJwthZJPd zB0r>A6j*xiA{z4fb&aQ5fMilB1^IV}D+wqR1Tk9lfaR&jjCo!No0cot?vdzD@~SQn zu6}tVK0O#n;DU?_4GFYIf3s8*h;|S{3n5wp2rVMfkUP(6LIGr|NTyDW4-BEiNHI8k z@jF-$?GOkhd{YijNt~*9A@z698V)2j6_ly5*wk_V+Ojyr8W0AEZf4$wB~Q;t{{Vy% zFoF$SxY(Uxw8R?6z$NxbLy-d|ZKijZxpOyq5jB=>91&CTS@-&`DrnXJUgtpOGubUmi z{*z&bD2IATLnNe7LP$VD2pt09{=^TF=W|>9~YV~W!<8eENXNiLl{r3;*%GH`gE67msLcoB7{TzAx_%SJN15?AWl4uIs71AqP z--QA}j*JBZaXNb}Zrg+eVyuWWB{)|fh<5lOJ_qYTimr=D^o&A^zaYIhRauyGAZS{w z2qB0)Vel0p!yGC!W0b@X;kfHU!VEa1=z&;EwrI#<6a>dZ?CR|7*s;5P1VKF#iIA7T zFaKa;Rt$Gv3>BI|h<4}!i<0mpC%{mG*5#uR!VzmbAcqwM5*|J@8tV46-G)p^Bz+ap zrzib6_$j`OM|#?!C7yy10?8yY=Mi6A+~xdI`RiZ z$Lnx1uwoPy-tdp~Kqyg}h!-L*|C9pBn&tME_{o!A$We8O!eu;yssPd^)rcUL{38Y= zYGmb$F&bP25kZKrvy(!N`!hR@3sHj?A?pY}JGF0~??IrKuQ0@uI{7(MOXL#lvr!kSL}`LS{RVHTEA6o~DQdVMXr2@#srK zAaq2nQM?Sl!#q2XGSU~XfQX?(U5J*DLW>R{9FP?RjwU1q$O5&}>J`XFk+3MA>u6W6 z0V#VSh`%64h9231<>2M>OGS^s{zpADL=DJ*_zFVE0td2zEejHalvj7^uK{T^%0rS# z$I)u>I{tw85SpPa{guNt_#}Ff5-f^pTx?tZf+)y#gneCd6cA}%@9zO}r+%VV9@6~p zIu;dvh`a{}B}0@W5Y}2t^pP0N7_;uwvAz0D z$-RZh7{*}$pKIgnvrai55-UvP808evT#ySSxfG?ipybMxl$5M;HET-KTq&B^n^B`? zm^Bw8hs|ulVzG9~`Rw^W@B7XFdwUJ*aad>b^SuA>`)0iJ#l|y)sKhelvnINHi0Q9G z8)3%^kqCqojtL;_V>2LH2p#y320|oK2_ZOY$?^B(<-IWwB!GA;3kr>YlJgQe{4{LD zMl0c_{#A595<2D^#(EPOc&;s(5gdO3!HigjE-i)lZA9ZE8bgf38xn<(LWr!aW=sej zJoZjrf_-yy0nqTZdD93XcqPSYq@I5>7)5CQQHT#=T*&77sAE9rSijW*5f|+PQEDWVJ|EZv|t+GLr|G zbyR{=i4Rc+6Jf+l)l`6_(k1)voXZ4~bnD+F?lY^$!$yF|x_z~*XeT$U9fK0_S}8PywP zhgk>|*1;1yX8jxfwaT!3oou&c%F5a=2n2o5Az$6A>^mCE+fA!PjcNFzg{4881t zBUSy7OG^iFL||82a_{grX7GsV(0C4~kOKC70%FIc?yv`~_up%$H}wU<`*1=KF{r~N z`Q&7=c=F)M;@;7*i3lO1{6?H1kLLhri6gShTozXgt1v&2l-V zs{rAs1M=;#9I_S@Vi_27W)X9%y}i9Cuf_wyH~3T8)RfC`wXA`pd6dy4l zH}HYqcxN8Ce$hUVK`&mudaRRF|9%6_inkY%tv@*}#yY zkO$q}-4#C71;iB6Jj}fqbk~)n)Y{q_XQToBz>4w~GL%K##s||B9p)fWd)$k?p7oV= z9)(;Fg6x+&@{{Glm`~*Z$@ifU9JRh<9lz&@n5D%Dx7kLAg|t^NC!@E=tYaJ@8m|ux zA7Dv~FUQ z2*2)h;=|WO;^()oI31RQUO=!>$n1ybo3m_j1?6hcUab6ru``!G|31VCz8|EG-;0rQdIuw!((%ch72pkjN1VN`bngJ=xgyhTLYwu4_;Iw0R|Hc!GqL3u|5XZbj zU2Pvfwsmz~xF8UDmwEH5QH}f1G&MDqT5hA0rX~+Uhua7tX}hu%f^DmxF(M&kjDcW% zZ{94BIg#fgcqcp7R#?d%DBvK3`?IkZrK_v0>!3i`$JFNNQOmDGC03C0Aap1Me~d!X zZX@X+%a`d087n73f#6|mP7ngdLIas#h6JZXNRr{KCzE`0KK7ZP#Y?}J0l9x)p6U{k zAcO{u&tQH8K^4{L;n$2!e<3eYc4bW$2pkg$!MnW^gupRJAzWK3*(MCcZ2LcT@A<=H z*SLcYuOgumWPmUf;$O6EhG39uy0pyY$t$z#E`*E}h&TwL zBZP2BWXtJ>EqL@qFy>wy%W)$#+)HThwY{-%HVXzQz*8`384U(Q@(v&JJf9%9A#xx= zNg;z@Npk}wDFex1WzjL+f#4KiA#i9TvjAZw8@6n~c@bam(Ka&sxNK;|`$w)_i!}q$ z%ophX;b?jn$m2(J6R?1|vQ4 zjHNf72?*hZuW`7I$f!~fR$@YrtSmTY*0~yB{1{{ zIOIBHc8;n&k03&+PdoNAqZ5V_76Qm|EGm%zG9FogFN8F% z0}gy?$;ji&MAg^UoA%F7QwzM9RNDL-G6C&&d3J1=~VW5lOyXD1<_J3Grf z=)CXj>`jCcRKg*FL?{S~;jrKUCJwxN8utjqjGVk2n>kW~7li;(h97ZAT3aoGGP$@f z#Ursttsz4mmz@74dhr;~M4YacdegM&&0!nYy< zVsh|gY>bi2B!mnjQ2{@Z;>Ukx8$zQ0ZP!!4S27$h3^;%1JRLrSr)H&~lqpgPI$1)C zXhgzu3P;31FeV3!@_YpUn~JaM5SO7J`{@`W5ID4uSHacu=%gnV$cfOog^Pt~B?7^f ziiL38At43X0n5Jia&}Dau`{w8_cwj?u+kCZ{|qA&2dlzsq%p&H5EAXf%zBnz74)tr zBP8MfO9P@3hLR~$jAZiRS$IWW0t=UyoJa6}zT?}kU4i3adnGn@hNTStqrsN)XGr)- z9X^B-C?pv=Od(OoL_jFvRmLhK0c6q?N`%5%U_mjIppzsne*rlr0c3=Mj2PiU6ktKN zgGPm@W5~;D^_{LO=Edh5>2%L4{r^KsLWe>q8Ar)9LPP?JT0#o1hm&|+tD_=M+S}S< z_TF5CG;V}p2VNnnpac2Sh6(@PEi42P2SNxJSAFF5-bbP2FeyfYQsg;%1&~TbAUu2^ zgZ|ctc2Xy}>5oGp$Os0GCcBi(n2SMXeE?H8X<+LSHkO-H8)?s zMect5XlGg*EM?u(o3U8z*|XQ@esgjMw`~Ja5I}hrj6^*I?no^x zVCbd;Z$S>c6NcCXOJEP~BdH^^!@n7POg30&B+I_p53_%{G%Qb5!F;k2cjUiRbB7?> zeG?>6REbk4VZJ}M{pZKW^y?4ga`|*4J{|6$L4`1K@E=P8A_vkSlw?X;Ud-EkN&o@j z%-7TiAN@xBYA%OEpkTs*$PqIlhalcbPymVCN|kVZ@hxhE*af@Oh%u6bu{qCS z4q=)?i>p!IW=KHU_v!Kyx$?*LLUJRLb^2gzU5UX21QI$DLlCb-n^$XOUCTVr+qO@^ z03;3{V~t$B5Px5Ttt;&F$-zDlLFiB;f~XNy0?2ZdxuBH_iEn(hGnCJW9Adb`2P7P7 zgbqmrkwcJn;!*@zmt(D%ZGxkQ5E+8OrSjs+0}!Hk@h z#25%6oG&Y;-v@It3<61l_^1bj=|Jx9@6QTZAGr~R41V^B@jm00gRVOi6=HP|qA?f5N8L{-OjKeJ zN$!}C^;qY*WC$4XGVEZuh5u{Y9d$S)3ULT?M;moQHd|V1W60qPD;HvQFy;`;^vuK8R+xzQ*uteQ=fdcYMUoN;+Pu#*dKie&qpG|}`p6r4pb_>+`o{dp zI9@E5<8mnSPY>v)&%K9V6Bc@;KJ|K!R3Jejp-34P7jLFY3yD5N!Z<<^Zy}9N9P3kY zK-e8lBMc;c*HlA1BvN)FQ6(+X^L!o#^6xyB^6(mAU4?OgJbWU!$Rl-w4viR*$}can z4vSuS1SVmh|I;IE5AOl}c%(mT;UP*Uvgk!ba#a{=ERjf051j|ShyT>>H9`*&dO%tv zOyr{qt6pz5B;q6a-;2WD$6bHdT_$Od4gCiaCgMddOrn8DqtR?4;#m`1_oesDgXD@L z8EWLd7>Dh~#;qGS+QUiymid_O{yPo=5A_)rG{s5W07h-GZ6P~a1LMLp0MG_SGP93y znU@8V?wC@@G&f^p<0M>p;U=oS(|Fi(%vF7I3m8IMD&}&}a=8Vj zCBpP{yS=;J{_$h<+BIf!G9B|Pd=$?izGK%QTosR5c$`Qu?(oIXJ7E?`z^ziTh(obZ%spGM z(Tn%6V194=&mTO#z_oFvCXP!)7PZ>*TI@daQdAPDw^}X{Z{mKe#Rx06%|u2rs9eG% zdu(iwIJ96(&wugoEfOgUq9BaZRfS;^BhF&TK*7>LLSZNlvLFoeU>qiKU@}1*FxnOI zfz%*=g+>L7hS6;CwL+qx7BT#`OHxT>9GTCQ*s*+m@G2&VxF=gWMFq-28h{5HCIJs$ zkOn9XDoPfGQUMEL9+Q>^Fu-?W+KHIQ-Hr%x@Pb+#^U)oVI*s0hmYUtGr1z2Bv`H^| zTcKpEW!NiY$M)=)t(!fiK2C<9GV94EWi}zzXWpk^Q!GHoN!Op)CJpv-z<>7MLD} zGujk+3SxU1#Jh1E0E)?hs!x`uxrT#Vp zIm~~v_qX|ZQ^3KuH}juGiI*wdn_O71EF4S&C5>T*THiIs8RUz|>o=d?I1#Ws;&K$- zj3PYjWC*S011r|k7@cMFswix%y+5-eFq|(Lo7n9Co+M0aAG~D5KX67z$Jb=4!Pj%3ZO(M3_N2L-)Q3Hs? zDvN30D^{>@WZ1eJ2e8f<9v(%)DvIBqe>2Q;#(_wlLapn-*}U3CI gE2`fEtClVM3xm649v|f+4*&oF07*qoM6N<$g7m_Cq5uE@ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pm10_chart_card.png b/application/src/main/data/images/widgets/pm10_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d564ea3296fa3ca2cf45b3376eb6cdc775926528 GIT binary patch literal 2441 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�MXHxb!GdkBxb( zy-A^pz)fiyES$Y#rRB(ZqkW&8{RkXJeNpM!G#Zs*@CJDq=GWKOe!z%l|9k-R{FCk` z;csXcRvRsPtxhAtHhmQRamr_#6g2;?Ah5Bv%`nhWxTB|VS2L;#ujWe*ZzqOSRbcvP znz!4yXaad9<&Txq;fC5JuF7S5yS|c*U9b|jyWnAo>@}F~cOHn6_8oAL0Xu(#rlg(t z;Z&+k&UW;-p@&K!oZov)A;B_ib-EhIr$^zI9dEO-ee+Me;mde*@8`k2#)1L8Ql$Dg zpY2xubk$VG7wj7dlJF?>!S1w|-L8M1&+XfvsH&D2f9D+!24jJ0Rh((|UB4e;uk7vD zTKH@^qWGBF_iJbK;c#Smk;CP+)?26t{xLUQ8`%<|z!PM?%WL3v4@s5Y^``?@^{8LP z;?T>=?4ToC`~Z%NbF^v6Waw)vecIOx9rC*o|8#x3pLY2k<|8aJYv%~93G;dc+L69s z>{)R5X80D&_d1q*u5JeX?3wZBoYk#j_n8N+ZXRO)_GZ~KzpB^^0xy<9L&N%PBOJ5Acd{ta4HK zGMb$p%{&yG&pU^;=M|PMPy;aWMVH(_Y zeD|lV!Pv^FgG1(*ut?Dj(Z##L==4J~=V(i?O-<6`w~b2Nt#6N|v3Cj6ALMWBWN`i? z+JFpusV2+H6RP_g)E%P*R@?vM9>G@7ww}+b! zXM9-C5i2A6P6$>)z+#>4HI)QJc9a{BP%tT`t!iVd&DP0jXT()!JF$V|25gUFb5mS$ zBXhY~{l^sFL)#D2MC{@gOdsgFm32dd`vx!Hgm1fC=n(Fxp{!6jkZ%4!?^o4PJS7+3| zR>=MR4@C0&@#oupO;-jz%Ad~%cvjuj)i|VJx9AIz$wO67HU6rRTbkb8^giYN>JP&Z z*kbzWJv?)lU-LM>#8bTTtN$%+!wP3uo<5z5*w}6?TtG75wEh;f4To1DRq-b>2U5Z@ z@M}>)-IJl51uv?Ezxp+_blBZec%^aFuz9A8BU?pY`TVgN7ZRY}Wh_KM;@Q&MJ1FVY z(y)9;YPVzpq}dVW=$Kzm$Ru*Jv$^&6ylO℞%UW_(3~OY?A`yg1i3C{wB7&Y(I!~ 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 O00007_e^Cvc%=yW=D%ysGW z=x5)w+--ZUDGN~O+h_SoCoKjq$D7tg#}DOwlLW@KbE&!w50 zn|pY84D)Nl!^2<0p)n`TayPa+_$RlTY&e=FB8E(?W|7T)(EP z%w@AZ2irjMnMf3COEQ1_-Za!o@W2RDnST9aWRVy>V^O<1;(zI@Ai$Gdhi>hw&Qtr4 zu_F7^Cd1MgkcvYac&a~%ZfI9CrnLa5JB*Ww<9@omL3c!TJ!#wI{>M-@jV)FuXr?A z$D|+Tr;^5oinhIWRB(y14R(ZUzVT_@4;lo?5zns>nS7+vYCPiFQUL-CGf(Y!J z=Kd<=Xs2j7-TneitUM1!w(jIx$)M5gWCy=^Wz*FgM_@1c+RnxrD8E_!ETqbb;g&n7 zrl7;PgiJ^;tN(uIOym2fMd4-$!nhmNgA%PfUF` zr}Y+%Tq8i|51UOjRn^a=iE!1IDS2@V0k2!XGkC>Of5FojU=qw6W-UWCx`QFvNi(rV zo=+x~2SA$c(uq+!5=l{h1!i_Qraie4q({+S$|r|vXzr%@c1+3?u0)pD$W{MvPVck? zLnLX7|E;gvj|h7i@jJQXO^&zTWDK(6Y+T9j<@fjgfR&yz^)~EgU)c}(IpUV=u5Xsl zHQvXd`yefM`7)OJ_HCz6Z4r4UJ;=Yd3wL%KNG*F_Wpe$GBrt-0^bStubXgQ1w}f&g z=JJ0l&WIo;)0#9&jh97n*HJhRdx+9DP>pb=z-=z10yaq&U(dQ@ZY*MRx{x)ybkygu z>j8OQ!Q7-sRm2mcago35B#L4eIO!oM3!tUC%q^l?tyI+nCbC_v{I_!-V}_iZk#4tP zK(d0tcYs?y<`s`YKCUS@Vxw=V3pF1BsqPARV%zJV>L}ADW;Qi;+SSVzb)j$2btVo{ z^oxGYg}){N3T|=6ffy0HRJoVL6@$%Dme_*l{%-5No~M^1636ry+<@m`NB7*!2l4@ zXKtc@Jkf)ax|`+%^ALaKbVJLpsetaCCCSkaY9S-cV%lFh8U>cxbmb#Q*wa4+`(Ne} zSIUKcgF>0opfX+Q$=LPdiF`11c&gMc=EJuzVq;dTuHlToH5eEu!2ZGhT#K);>O5i` zGYnq7<00nxr(HVa%xa1&v(xbwHtN`$R9)*-;uSv|ey2E~?Q)oXWl#KE!>q=IHs66* zN0>!X!OB0h6$J{;rUq?l4^uE$_JpeKX2P*%kTNKBAwwatquXxaf{JP)r~jS1ZQKmS zRuDWdbPmf+eJ+(!nB7Q~ihX_v`Z$%;0|G?vr@}zfwu^YA7Dh>}ewego)xxdR%b-{a zeKw6DMxj8jBP&CfNT@zfK5V~uXnW&8?=rOOA>FQl+g5 z^6XUOxO}|y(ka81#Y`J5U4;fj8~0JnLr>C%Vu&;;;KC5knb7-o<8B^hFQfvh86OB% zWx>PK5p6-)nbNa-)r%?*KzHwKDeZ{!9$TrH*3a3g72 z-zG!;{PHKVs6b%5YKU78MAr8}tw)Te>KP17Q?HX0w*J-g?&7!`(Z4`3qaO;}hfw>x zeKhs_Dg}*|bV#l$;<%%3zu0h$ojld<9e<;TvaE+h#i#ku_0=~qsRZV~Wa1qiz6a7e z&QKTQ9ly2y26O}TS%76G6bG(Wi388wQpjtU`4OVy5~=*eGHVF@|G^evkif<7i4hZ( kqxeH{`6z=fxj_E{eARiCFGt_VJoy9wGzyDkI0t3?7v`W|^8f$< literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pm2_5_card_with_background#background_image.png b/application/src/main/data/images/widgets/pm2_5_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..2690576516185827dc84a87efcc327943bb53997 GIT binary patch literal 16337 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 Tp?(4U00000NkvXXu0mjf7}f{F literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pm2_5_card_with_background.png b/application/src/main/data/images/widgets/pm2_5_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..be89aa7eab4fddb2f6c3ca906d7e432215162ac6 GIT binary patch literal 10408 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 LfT+@N1wjh;}*2UoKs}c=zt@kxYCz01~ooocU$= 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 Qt^fc407*qoM6N<$f@mj`RsaA1 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pm2_5_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/pm2_5_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..843a637f9f446e1c590067c15542a53c75543311 GIT binary patch literal 30712 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 bZ@&Hy`p0Q6vbXqD00000NkvXXu0mjfD6Y7o literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_card.png b/application/src/main/data/images/widgets/pressure_card.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1af49ff3594bef22fc3a37923a69c640c273b3 GIT binary patch literal 1763 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 M07*qoM6N<$g8NO2G5`Po literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_card_with_background.png b/application/src/main/data/images/widgets/pressure_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b8421edc0892047096c53a459e3640fb83c0d441 GIT binary patch literal 11630 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_chart_card.png b/application/src/main/data/images/widgets/pressure_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..fda7e8eb23f281ff83acd65d870d3c0d4e4004b4 GIT binary patch literal 2682 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/pressure_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed10b7db2660b385f6d60f9d413d58ad68128e8 GIT binary patch literal 42723 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_chart_card_with_background.png b/application/src/main/data/images/widgets/pressure_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..ca2d184ad986584ebd582caa197ccc9d6576799f GIT binary patch literal 12853 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/pressure_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..737f29abb1c67039f0966009afff89e854f7dae3 GIT binary patch literal 17010 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

o%9H3E02bNLu?DuLJX(?0X zRJmL+0YGd{6BG0Mlo2#RPyHD=sSdR^kJqU?YMO5G<(JqPWpTt76sGim3Hc6@(%bG!;Y? zG)1(x1Su{`gqTHqq=6vV8zDs`MNEk3P0SO&Gc(34{7r6iQ=#+apL6ESqxCF5Fnn@6 zklMzX)k>wZxUwg3a@X@`AMT0^$`Dl^Uix-XoVbsU?R^SFCmQV>z1cZB+G$=>H2^|q zzzasa(~R^`P^SzGJOMx;RCYRI5e%n$e8C>XUJGu>`k!8=J=4=~_giD3*+3xmQ&UJ- zC`}>=jDXO>3{QxiW;w~4N_G8Oa2Sy7f$`85g8l0&k}ig*dEhs30V`s$*iF%B=Vc@P zLQx0@wGRo>cY~NP#DvmchMBzU@eyxQ2#`Uhm)ROreBV4ro#k0GwfB=9Z z`Z-+R#qf24-q^eTWVev}HX!*bf94 z-Ii4!^D=Y0b9Ldi#G~2unfNb5Q79BzASMihM$izhCz%W^OQz!67#QdMnwqL?gn~Z~ zbnDt6<%kU4q908P4Wc28j2RN%5)=msY@t9SU@$4X=l6498wms}nj`j5aPyI|n%yH5 z3Sz{vHu=YjFP$tM@P|R0%Tr9EBBIp}>pln~}J|-nQDhL2^)Atmw9bw!b6SX4%1^ zplvl!y;iT6vPI;b4dsfVd_FVL`w@tOf-n>?goUB6nPMZ6bZ@$^&y&n&lJUoJDywAb zu?+L`7E~&pd5LXnR}XI)z>t@usvD5_en@Q4q5k6q5PHDS6w;;OkP@D=9)QTPG(QaV zrz0mUmIAG%9l7>Kv_A+12&Jr(bsQ&~&3UQqibdCTGrbcZQ47SJP#{eaL9}1)pvZ?p z`AlyLiVR-~{l{JL#MFWXl##P5on!_Ocg^*fGEz$c(Jz%g& zs%C*;SoABsXRRr^j~wN=!KSE9aEldmqEIo1@IpS;JQOof2m=t4(^#P>!o~_^K{(te zN~b-11RaNRxndO%GOq{_6)TCHZi;W*e)E*HJtVzuhJVFfXbU=Rr7MRNg90y>|M^5gm?z_UY2m~I2VHynp z2;9!`PFg7Dzg9zJfk>L{1w#Z@UgBi^aA?OG`MtG!r@tEt5LzK_qNlN#jO%J@p*Kib z0|A6I3W!2cBb$W{O$ypR<~XG~X;z}!q3zttS4UKG;Hah*#2o*o6~%;VGZ!&}j+9on zkw~ux2rXbflG`MqVH%yw<*3SdCK=e!w)DcFn4u|%Z37?#D8?LLHh9!LPbk1JATm7j z>;Yr5U|2lRNHl6&^>%4(!%zr@0pJEBs%0+e@U#&SO)qGEB%+>3q9dXxexldE(O;Uv z+ywp1btMaL%dBj>(AGBMyQIPb!C?rHIDr)uqymA2f`<|yA}|z%7C{09K}~io)f%{> zAYT|>T`iVqh%+Lyk1NqLSN z$h2NxxM#ek;j9`c2+S}7#jpf1Lm;A>BPwbT3<{%BhXMvZwrV-+K#`q!_wijg5^f?0 zgkdlga?u5d$n(1?Abx8K=~{{klE;w5-C~D-v+tBiQ%1@KwF-Rpw$#_Rhd^nCXu@Cy zk)bKLbi+WFa){t;sZ>{CQB9}AVH%rut8O|ySD2>V(*?!Q3L*bT-s%g_fngZjnLl%% Vpk`AAdr<%Y002ovPDHLkV1nrNBSQcH literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/pressure_progress_bar_with_background.png b/application/src/main/data/images/widgets/pressure_progress_bar_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..a434c61bc18fccda95d21426355f67946e92f345 GIT binary patch literal 13060 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/radon_level_card_with_background.png b/application/src/main/data/images/widgets/radon_level_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..433f42fcb503e85c9ad423f5990fdc8c2cbd9923 GIT binary patch literal 14288 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/radon_level_chart_card.png b/application/src/main/data/images/widgets/radon_level_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4d580b00415a3ba6ee3fca522e0a748b186217 GIT binary patch literal 2454 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/rainfall_card.png b/application/src/main/data/images/widgets/rainfall_card.png new file mode 100644 index 0000000000000000000000000000000000000000..13405601e9b2cd337b7fe17975cf23813c37d678 GIT binary patch literal 1742 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 Yz?pGdRr6zJKI>7qCDa|4INvG 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 XOQp?aO6Bz000000NkvXXu0mjf;86!y literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/rainfall_card_with_background.png b/application/src/main/data/images/widgets/rainfall_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..03849cb0e0d849630cf03ac49a4a7db7768d00c7 GIT binary patch literal 13287 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 >dPXQhkcsgwfgA=5q7oaILXn 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/rainfall_chart_card.png b/application/src/main/data/images/widgets/rainfall_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca7581171661549e49ac55f458cebdc33686174 GIT binary patch literal 2345 zcmV+^3D)+BP)+|#T!otGihO02x7k*a85tQp>kxbZ000AYQchFPzaTia zha3O^2ogy|K~#9!?A8r$lRzBD@#(MTe-Cg-59m=`S6b+kb8d?oW7PQmUzG>6){SXf z6UkNi(uVd53!j#QT|9p__y@XpesMwg2cl;e1N;*WdWd875ZCG@X5&jaM4@YW4;!SETDVqEdk1tbDOn_Yx=b&Xt z)qvxWa^zQ`tvTpt6Mb0J5|X z$05Kn4fqDYevbHYuzB>01e>6A9a8WSML4&ffFM3U#{d2=ii`CS*E$Fh3P-0}0}~vm zGl-INgLe7}aflp`GB{9o5CbToF-S5-ObaFx#dM}31!RnAogtGMv@}BI;$E8SPiid& z%n&fSPX^kE%p_>lH6(|PAyhJ{R+%y?1gnQ-LJ~$WWQt)Bl0*(kfD9E35?$}8Cal`E zUDpsM5Q-W?V92CO_7EZoCUgx^dq|>;_yN&LR_)rZYY639B4&955xJh%5TkYw#FC+c z2qPLu%nZ%7p&AmKeBuP;Z0aGd)k9qC4gw;Dow{#43!XP{hDsU@8bQ#YlxVl_i3a zU62a{O*o;hA&FrmiA@-q1<0W$JBTJ!5Q&^Lq|*?RF<9j2pP|s zueuGHJ#yTB`c!jn00$wn7q%T_-_VYXA8z%20pPuT@c}j`A=6n4Vh{KZ`)+q9+QPp2 z2*5$e^m>7D3v%^fE>xdi@8LK$Ap{9*BLcwr--1-NA+H}!^_%H*I{pI)B{tM??=l7a zQ30eycaW>?RBv}zopZ;QaGPjM=_p0v#RQZQk2-=>?}xwK@*2nXb^dui7XVK=U?G06 z3<$oJbOf2UFHQTO>S~B%DUgSE-Zzjx=*`2m*WWH!XCbm4@aSQWx3{P{2NB)AdC=qO z3L9p(AAEo1W^Eh9(m5GMPAjZzIpVj%A0LoHbkDoOo6Kca6l^&;%E_aauNTn9{IhF)qx@rr>tNq zD}fRPiyV%U712pV;QRh;w^c6z&8p3P0L*5X0X}?S-J12JYIV*a(l-W?zA=dOjX|Vu z3?hAF5a}BY5ij7#c!6`HAyR@?mvf^b0-`QMge43?Et1dzouXi*plZL!IN(Hajy0Xf zMY!&@Sfm6G@)y6^GjxiOR=O1N+Gf5;(SV#w`CWUULWR>f&&A|S=Mn9(MJjSB(lZp% z9y?4bm*b0&1;L*X+TkQs*1;Z{aPDfCOwmdj=W#6ab;go|Jv1bYT{%@p6tUdU zc7@e)Q0&^|t|bN9V^=fR9!4zfGC7)v5PEbngc)MHv4t8-+St!Bk89=)kA}<9L{hhU zvwcCa^Ekx@m4|I1?&52_oYrq28-kKHqP5Hw%n&)nsYIe@Mt*+dznjZ%Ke9&uB+kEI z?d}v(?=tZH+q1vpC^Ney!>tD*U+i=XR}eIbW0(kYtBYTVQ;BUtxm{++PI3V432)^K zbRc56X(I&o=ChTlxkMPcq(B!ULZGG*lr+v4drPeKaD+)0BB5)c0hzi}V#T>lu#fq* z;RR1CG7&W)!3Jp?G9a%fz}70;Oq~;pq;`$Wg+k3z!oV_x8S}h&E&k)WRw~@?s&Fp?2$ zQvgwa%Ji-Xq1uL2H%1wtuk3CIB_Iq}8BiIGIk;|+yF>IdI>9W$Xh|_Hljywzcn;yt zSS3ixkf<_Y0R=C$F6Bgv6ajUjKh|9#6mn0*YG117!gyiGsv&JQmWB0F)(K zgmCKd2-NWq5Ojc9gm5IRV9A|G5#5PUBxLQUMJNaWilXu%j+Z%%MjVu(E1Jn3a1Kg2 zRG^?rfKgRA2`^D_&Wa$2ShC)fS`pw3h!S4?rydkn=ngH?isQ8%5NNf(qYDwR)&n{} z7vaTDh-b?n(l-W?zA=dOjX|Vu3?hBwfAkekVotDfnQw!kDvSkTHyGv+^IPs P00000NkvXXu0mjfdX!w^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/rainfall_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/rainfall_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2eb3fbf792ee4f23b3aad2011d48ab4eb79927 GIT binary patch literal 72727 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 JPDHLkV1mH!YTW<; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/rainfall_chart_card_with_background.png b/application/src/main/data/images/widgets/rainfall_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..d1832f6fec1c8147f7d436a6f2f3de257cf959ad GIT binary patch literal 14616 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 O0000m}n%k0wl|`PL++P_ zIGD}tXqY5&J+5s{SZF9l;dh++>zwDj&+~rY_kG?!-skx|-{*a3XLEj!l%f;}1lnV1 zfg|ix&Q9h+Av<~xIgkYcfsO3&4rW{~_wC!aJGv7)D*ymO@Mr?azjXlTgD=&X+JEh{Ulm6bIbjppo{LZMKGN2Yl^K9k9` zwvF@g@ris;fyPo$C={z{Kub&O83QOUFVD`-j*6z5U@872vZEvMh%z!Y4;cJwd3t&= zJGWIZ4=gP$MLwwX^`|8zCDk+nv>bYJYW8KPTpVu%$!|OA%=wV@$&^r`cJK`yIRDLDU{!-*d>d(n-wYpgGG{4*c zo$Bu4bN;+l+)-)C9b^(@g3U!CqNNgqLUUt5An|xh9L6DJY;n@>@)%k!+@s{Gwnw~z z-{XRZL@^k66m#l;Z|yag#b)8x6(9_wb|Jy}**fxux$w4ju$prEY`pST8&ZeXm}>E9 z$|1-w8BdxC{}i;#8-FNZ?^uC}<3vvMWvyh37Y!#8;2l_~KQgjbOQWC!*S+tgSw>X| zvfQVNp?A1!hVnyl{`(j&F?%5qrXs8>3Gl zDvkSlBTH&0o^#QgXblYU^`QE8>0qHZh8O_}gp|I5Vbhg69^cgX{ARyL*e04?-S>gy zb=8ufTJvUfMuc;Ba_;h)-K=(TI}YB-t=$jr^98qBK@jHHMKEQKfb{C?IHf_)57(-^ff5a-R$+)e;pWiNvbwrcpTJI^{i!$d zmlGY7;^f}_vdUfabvUB=vHeFc9bs`YLd`^_cV*+CSE|fy(UbVMoI6dXr|lJ z?YsB&R7`G43A=2bF43fSV^(=zc_^KXpJ$R5d$N4B*t;yZ@<$5`$1ixC=@6y;>cUSF zeKg?D@+M_^X@$IQ_vS3ax~M4M<~29OnM(6Xg_gpR`qv?wfohGbpWhGhmR=0F2h;pG z_(9G2v=$3>a>CenAjCi~5;6UmDmg2$;(O1tb1PcIlprI#noVcP5b&lp`>^ou^gONXEpKR|5zAukbR+v)Rc~l@vGaFn5 H)}8V<-IxL- literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/signal_strength.png b/application/src/main/data/images/widgets/signal_strength.png new file mode 100644 index 0000000000000000000000000000000000000000..acb05911ae7676edb7157ba39985e69f21fa5589 GIT binary patch literal 1771 zcmV;P)p2G9hX5p9d@$tvU z$JY1buJ6dKtgLi&bdZpcxbe$-a7rJkOi%=O%l>9gVa>bknR znd`Y`W@gpZ)k{lDN=i!a@9((r&k(NaqW}N^26R$RQ|}j^`hBjN z{m8m^hzmqFfG{rBj?qyTHc`RUgh)aLni36SJ$DEvU>d0vluS(`;yji3dZq!Hhc5H!YDZXaW8^l4X7lSaSx*3Ex04T$s%S@4E1NDG8`nYuwJ7L;TVYQT073-?7;CMmRv@`K&1kM^jI16<#`{g=inzGh^4Dk|AU z2=#0a;Q*AZ^jx9FKux`f~@}j<*7_#_c^`0zxnH54NT74v23`_?hkNQk#U?zxc ziZhl;AmpsR7DxCzL{Q%m=An@Bj4d{IKt9gcDAynpFgD7w5a=^Ft*i6qH}670*1ZrO zg!E4;UVW~A(IUR2e<=|jgb3?q7=(JiK^*qi*LVm8-N=SaYG<-?XDFi~!YzfUtxFa* z4?r5@Kp}Oayy|L!216iKhv7h-4FXq(0z)BUs|-??GBt|z10k->7(j8uAhF39Ln$-_ zLaDPSuLYHHGmU`6%1PD5!y?%jBO*X2ZarlH1P<*+T1+Tx|2~i~csaJd;C_hNeZ8X` zl5U3~)9#`8i;(__67}0qK9!gJdJufR3GY4VF*1edw3lT3 z-X3A?c3BNP*%G?tWxjQen0@ms8pSQ+IeH*QOkb{p_B|a1W)(>85)X|C7-Qcbig&ko zc+zN8lPr@zX@ovdIHKow2@$vqGK1XI`Ua$x6Fej9q2(&@P%?qwxB@Y*PVPyrO`8t0 zfq?K*%o;;RU8R**I!M^}a*J$-ByU_Podx9P!_W~~P~*yG02u-pVSxul9}glt80k&M z4+ojNelb0BfTKb5x?fDHFP-&?sFWtPc|n+Z8UPb}C~X{x=P8FnrqzDaHjarEu3Ih39%?Zm~l>=h7mxRTD z+yYyiQa~0~OF5IH6p%Kwfi4Ba$$r^FrGPX`Eq*T-WYHw$f-HV72IMq7Vw%94silD6 zVvYb?s1y)pPcqrhbJk+aivM+0_UV@~kbnJ%Kj1oD({k&W+C;0gE?>olp^~YQ3y1ZOp{{U}sK6NB4c8vf4 N002ovPDHLkV1jX6J9q#9 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_air_quality_chart_card.png b/application/src/main/data/images/widgets/simple_air_quality_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..6e3e5bded370dbfe45f6f6c6d34f9483995d2033 GIT binary patch literal 1559 zcmV+y2I%>TP)Q29!x;Z{Pp`00000_^+4E_4u@!_vZ3y5hb6oy_qfQ90!;+ zavUK=79+A6k(b>%T5%Qz!Z3XH4a{UF5<&t-5b^%+@lR^H>)&N}VZox{iy%p-G>-?x zvvotx)(tsZH{@*HkhAqYBoY3S(H|y`glOam`zRy;V=+84uj_!9ydagAqq<=G6%%Uj zf{f-O_GMN8DStXdeBkLTgaSbopAAg!hU`m>eG=G!gf_G=0gu^v1o?CzgrpU{E5UZpF;4AFa4dy@?V*pHh+R7>i3Xl3q>au| zvSWuJ=n$45(I65E6SS@}=15uSKnPqbVf1A}FDSBhNJ2|j09EmX42E^>kcU!oyPlA# zq1$&yrtM}>R&~tdEx*dH7p|~a|0mhjE)68}C z0a*(H%F_$PVy4VgZ^?NOFRDjENPCj8WwHQpl14!i!lP7}IRTzy5VDmeC}w>OEL?!O zlSd)Qh$Ie+wAs4Dae`(z84rT&8|Q+bBNfB9Ro5H(9b&>Bzm@Q9zyBp&hd0q?MS?>R`m$A#h@Hd0hz*H|=;u34sYRHWm+gq0G-HgvW8qwqfLM!_iU=yM z(;Y`N!kHm1j9#}|vPuzGFk{DIZS*VMlJP9lx1Ds1mlUyf?y%EYa^k~sWq$_enCUno z*PPk=uSC*622@aMRi}fGjp@EWDRY4QfKMCqF*WQiA{gE{|E7rtCiGbmTZ2RW+^2qH zAaVex38D;qlDEVGa3FWNaM4HjXNx`x)se|p{BO8#OG%#*X#mR92KRx80*6IM19@Rd z;V$-ph+r8(-uj81u=AXTWSVov;w+q{y^k{RilBH(c6ngpXZ=4 z<8QM>Qh@HGX)wM>D5BiD#d{0AbOoTMMTWVik~v~Z{)IC?J{G}}49544$N`K$fe&=5 zzWXtq5W!#!5Yek3zhzpabRwxLa;Wc!7+-Da)9poynIiHw5C2)@0HDxEjf!*tEuO_w zC!!?@SVF{nC84+#LDACTPb|zxJ0+5^AfZc$l#ow}C_r$On7#r3Ouw~6_@-S#1Z&32 zm`LG@_4tGF*0`_S?u3YtVbm89@jqqjN4D`DQv@P6lf&j&d2D=JG2Jx=^mVd&}d4D{2MNV2rBxDg0()q&j4(l&M5qzh4ELN>*@Z{>Ah{$dy z-vS~?o3^-6iu4PM<>L-+DZHj>>eQ?LsgPGb-Bv665?dK)?D(JLe5|cjE8-$E>fzc- zkXzO)GEVkRM%kRmIJ?L$vK4lbwXut=ja_7I>>_Jp7x~-H9n$~+!T=BqGz^u1f1@CQ zu{3uM-oRHQq?$${ZI(Nc4N7*7yQNzHZ>eT<8ifG>00000JUJT!{^Syo4yFJA002ov JPDHLkV1hbF>Z$+$ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f9f55df72b9facd2efc87213e27f2afe2c63db GIT binary patch literal 13341 zcmV+&G~&yNP)n9wXRXsfD9tI44&=H*)%<6O)_vf48 zXn67SvS9u3W`9)@0F4acd&pn0VIT?);@ts6l?cEk=g#sK_SEnVBm_tDj2%!|@r_6L`G z1RRkNT#tCnC_7{6->7SIGWqBo35`h9u+1F7qFgy^6*erum zlMn~0mIH@4L<&yArFtj@W-tI?M5Gqi7iIYNae#;-WS$9NFi=9#A}|Ori2%Gu7zioW zgAhz9z(a?qrhOq20Y#I&H3$<3w5scoVfB7r%KhunHcg8`jes-820`z*tOU|wL1{8= zm`y#vay1wQcx;xciK_ll;UWr=Q0@-ES7+yl*QdqWYW(+?0)u{gAOpA<(1gG_z$D)v zcNsDXL2wLouLuOIhd_bDDYyy;HI9Oyl|3$AAU=IN7W-pe7-4i}+*dv?T}A;e0Cbjv z-!B;@A*j*Yq*&-yNs$6wYI{ReMW80>)lh8&1};tOv(;EuFW30MQ1nw43_W9qj2z-w zfxsbU4njdsB|#1j0!9K1@w8~A_MmOS;dO8;EjH&1#QjG?;$LP8lBQ7^LOmm~H6NFLwFq^E-2mi2B5KbZQ2Zh=Dl!^gX6<#`p zz}zvwgn$8Y4#TLOK@e4(Szv^oZd4@YkSe?;o;7!uM&wid5gw}mAYhq9za%OJfrwpF z5{T|$;qvCl%vl098f~~U|U5J1j$UY5R}nYlmSiTOJRM-efoJ=7NIB=Tjle^v~6 zLpX+-cNJ$GzBE8!u`(2bpF%8CQUewY`FcergCaU{=vNDi_A!|!bN~Ngom2NNVJ_#`Bx5zrWU6R3+`$Kxm z9O8x;`kTR6tOTL9$pB)ja@aEB0j<|-qF68B{Fo>-!dCycZJb8 zz)68Y`Kur*hX#ZS0b=3?K+*y<%3qsb&ODcbJYYC*fK9FrfdnYP0*Sxeo5n&0G|2!k z#(n^E2ona6s5&zePzm+^ADXA&+rsi^&?`4WTM(%p=HIE>+jDbi;6yllGtezM2RKC% z`moF-r&;>SouR)c;(K@dOEn)eeX`dYMymlTzCJXaG4_T^fd-eD`mJ^h622-;(lI-& zj1Go>(nTN$sUTnikbj|_t%k8i$~%HHpd7)r+ZR|85yK9)+u>mm;ux>r{q+j7Pb~>w)52wUAL8B08VyO*%zgo)Ia2Zu>OxQ`t_v(VDv(; z;2h>Uq;ps)|2b((a4>f(1VON9Ai&{dXTzS95&FZa8MQWUL{Zo;UDHxRQ?Dz_3SlEV z#zr=_E0ef2F8Cp|yTtfK5a9=*2Z5diLE!Yy_na$TjUu}#^hk3xQk*5{n>(YK@wOV- z-IV?iXT2xrJuAYX!NE)%F7H06&gaqfKEa?MKH#7;r-DQy6C@Z4h5-vh@0J3MR*B%8 z1MSsS0{Iu!2g46p9BFFsstevKDFQsjaN!7>&6?37EENHicfF!; z4$@4x%un(c9mzwJw}eRX+JU6g7ERv9$sjI^&4 zB^>JBbPDxS@Ol38IIfyAfJw^tBQ^xC6=J?NpyX<9-q@CLo~o3PX=|=@F&c1qzh_YL#Y8-~p9UtNei)HvqIy)wg(+e!ji} zg!X7OSat2WzZzZ1%&0Oi(&bch0d@W5N_v5S&|D~`uLdQ+S~C-LWZ)^Gjsb^=Hw^Na zD8y(}YS2{8hv9<;tR>Ad9K%-eBeTXWJx+ z<22s-e*a1)LT1BN#413*FO5i}jaJ>e?%>MU7rTt-s?Q;>Odg1N%>~+p5U3GPBmGIM z^7W$xmHFBl7gUN;qG63xjDD;@0EN6Bkn(N2zj6CsoI`PLZ9K1sKUnrjM70+sn*Iy^ z+yM~Wb-Ud=+n(R8U`>pkGce{Ecv0yaLK*PDX>?9Q8MWX@C&w}kFfwq6PNzjj0zx(p)Dk0ucK!yWb6TczeB#UT=br6v(lpJF0h0nWvUD~} zW}D5z9^JCF6-JQ~aMv4v0Lr zS!o=*v%Wv5-gesFhD}YhUw=tnqF^*221M3G)dyOQ{{bwqF5dF|PnDyk%$2S;7Tjc6 zehR}ZJ3(2P_N^Q&ENj;9_Jl=22@vO_gRI^xL0y+wOlms}X6QIa-#hPeUXdtJ7!Fuao z){7`SA%y>yk{}4^Hp#=Ili|e?=2@7XGPJX6rNd>Cq-ip9|y`9zB@&M34bv>0$)R`ZvNou^`dr5&fiDU431 zXdSyD1Q^LO4dP|8+*;mz1r|C8wg;GnrO(cd6Na7ecw8T#-P733ontUuT3#PCOz*A_ zfR%q(my4)Mfv!1f0@}LF4`KAuS1+HwZ=LIt6s=IoO1I#2EiuT$C?kqs9Zn*EAPUQU zcHLxYZ9N}@0DC*t9&|m+4ep&z6glDKusb|G35w+~be!?fomvYUEKD-j$3evM;Xp+O zEKS|9h|CqI1bJjE745J8mrpKQ=j|un>BEbX-tn_6pStl8Z_+5sB4m4k!kNyJ05gs0 z*7Fu<<*Gruwv|lX;27eQ6JU6v-k$E=VH7&!aqKQPb6X}~RUfa}X3B73l%K5G^ucxAG}+EL6zU7DYxe=D$ck|N z>u$%Kz;SfP>!{NS(MPrme?F&`t`PyKG|jbQ+>7Zl@J@t(ON#BoKLUlSO%QeeC{4Xv zRhJitgo;X~a%FXOYbVn<9%dXmvmna^#@4dj6i=s?=i5c|%3nV3$2sz4%nrhgcoXfM zhhRNfccL3-Z1opDJv3n474eeFmZo8iER}ppDxl0d15ngB)ZJJAZ>fQ!NyUI532rxh zxkdL6f@6jmcbJ2O%s4GhB#%K5ryK{F&}=}o%`DD`IX(>*lS8xy2l8;n9puM^<3+OR z`)szVgLfOgRhkKE+n4fAzG_jNQc%OCr8}!yNPuqvN-IWc+W0T9LFMkt6}K_xR+hoZb11Q9f_&?uXr9IvvN~I2{@jDc^VL5$l`;r1d zj>e8%3=~+Gk8=a-i7e!-s&QEIJ6x?_b|u-(Fsw@%?VUn;h01XX$PF zh6QOD->SK&xY9ZuqtLH3y1Fl7O`EFLf*+&i7jKvKGmCK2JN*^eh`MdJ`)Q0JGsy8G z8Iwec2{)D{!(ni|AG=n6UbBF`9d;%M-2=0$$?DxO#cZW&G#mb&}u^)+Qb|!vpi1RX&R>xP*~~1 zgB#}$MB(e;zF2Im;ql~jCYW38(IeJxua9qUudg@v5#nzD1QeDxqmuUz38Y87^->qY zB*LO4$#L1EumUGsAAa3E?GC%&AHTi6z5&I{%{Y2}`T7lTZXPU5%LImWb)UjTE4(TM z3a(&Hqc|4^kW!$wl`IRv^IA1;M!Kag5+ZehK;vF0K*ip}sJlJIS-6hE)9?XHkC@80 z)9LU5^UdiJS)r*85;JRzwZ~+FzJaa*5-+bPFP-tt%h#{JKkg3eI8hctqah9gH4v~Y zKIQaE-!qkgU~MfUp#c=?h7#wE{bb01p+Kf~6>e0q_1+_j1nbMm;edsD{P0ka2&}0) z96k?StkV07l7&wc2_~AmM}pYD?tgiDDN)?~^7ZT2Z@=%K{)nfR1v`@Er4~Hv(vCp4 z#;CM5i->HR5T>Q9snwzl?Fl%8`@CzM`YFDcc9oMS$7o|MKNA34vWJ9zxd-& z?zSX+_Na-1VdC?BTcG&K;df)q%k@%nprKlhfihRHr zWQRWv2kxW#6e`8bsvmTE`c)kYheJ2Jd_MFbu-2Jb2^>bmL-223cRKA3cMaD}TeZr< z^W)TWxvsmIXl7ICKaXB$LA)Mq%T2E$Y+rwDZRz1W_nP}gJ8U%CudPq?d%A1~irz6< zg-K93b71m zRlxW6$D|QVNf+eJ`Lg)q(E?=Djuwy0!OIjB&7Q(t*&hjrTMS(Fz}zLnza8H!hq27>}O@FFLmkk>JOG#ZYiM2}FZvG!HMoU(uJXKwB#Anrl(Z&Xcpkx&a_ zw^P$4+U@DbG~7AiuG!(ZCy7Q$BW(J$5fXR>eY@#^a%#bSmA$=DZoUnUa{us$g%~V~yjvSkRbE^*F zgh4JL6we`Q;1ry8ahd^&J-Iy(fup_=neTfPpW^ckHP_c^UZg!VJHuvn~#n=L?f?5FP{@4P!RdR@VkLlh_?o` z{nOPT%`)0}C~GvL!Fb%AW}|wW#OGj$$C-NEj0B%J4#fsiCn00ja?V^mLuN}Km8`Urfg z1+2O6D1hrxHjPtySSy``fTCT`y4@JhZR~M-P`s}lebt1FgvlF?&2^LUD7{1=#34q) z(7ozjU0rp%D_GQw0C#RqMxc^C5e{yKq_V%_R&^?E#y0`7mQ}2l?`Kj63D!8#ci24>E*(QiLLSfkq6j}}8P(_KSpgXEaAZ5!c zC$KbB-ocdB0*8P@dW9}8FEz?BR^6H~$cVCESoIFQ1gC1cS70i6cCNohG5yK&4!4N3 zp4P)%iGsGBP{5+m($OGRl)EC!b7Bz%lZz+D5G<=ohchtK4p3680g$Drz zsqX5Ap=l&JFr`PN0&uxrug4{i^a>PJpY$KC!txc#w`3WRO)LLlG*TWPpI3{H05KE^ zx5$OcuG2`+=%^*ce&lHEPRUaARtj; zK&3~x{Ae&3kd_SM;&O~G=j)rB_4tw}<{UK)z+9QYrQuvl*V4`GW<8&;=K=!?0r(Gq3B_MDJP~4p~a)-uc&HhwU21u?$B=a?Tow~7!6~= z;PWaLsh?U-7yd%gfm}bg~49PSIYQ71ASL z-b(?38JkgE9&S0W;kFSjOe$Tt9fzc>YaBcYUpib#a*V#DlsO*H@qydB+Y?T4JDE)G zeuv6>cDJs5CJxmZ(U}CPM1q-K)$E*$<3?lY;p4HM$QxFr{$znn!ehV7-XhM1^7!_i zB;k^NLM$tw<;S3i(KHT5$uNthfY0*}JPebyBu#!3s^VP`oMMF8phzKcWmGh{=)e_D zx2IcBoIZT`a67xZTjL)$peXxcobWQTd-g;aoyrtac?*EJB+tZ?5Y>m?mRuQVFOj8@ zjyP8QP0{Aap9^TO6=xBqnL=AaBfKXzcb>|Zc|h^7K8(BCDXH|ff6(D7We`fWO(lug zARrkJh16<>uG5O>$jKA4+3d&J?e7l73A2bdS51tX1 zmq>|(p-3XsUH!SzvESh3Pqe9Lb`qF&LN0j_`?jT&=o&meIKDk{)dp zYY>+*`+bk9+GqJC0|+IFOBGTmrL^V;xgtI<$1X!mZcnGXyV>pJ!%q`X+^oS<`wE*M zo&=&v5iA%6#&^un*+H8I#Kgu@zW;6{zU;k5?5(*CgVLkF9E^NWIQ|)y{OMLpEogG zn4D-FqF0f>401@&vXC~zEX9Bn7}OYio=cML zF1ENNztJjDTuCV;1OZ_^ejz4CVog{O5+6$_^N zNP6XDO!Xd+@)UwE<~(uGADDM{`;pv2G)z2}6x@rRgs-Y?mn9HL!+Z`42SuyL?{~A) z>Ga`r!YgKzpMI5F+_IM3g2G&awTWtnn+`djP_L(Zuc=XU5QvS`!&(|hPGz4J2ZDv; z)okvv?ts1v2*%SXExNa&c$)@Ox>AUKjN2;i%!DXf71Efuig}(3T>eskqKgMz<_ain zPetRsJO`vyArb(TBY*%1XsJrllh9J(QDFV#*Pnj_1!)5>seSU)yjQKW-S0zgTaLc9 zQSwzj&k#VKBvAnm1APYMe8qCb^|Ime!h#Zuk;RWLX(m%%A0O3?$4=fe#Zb+{W&WxEj>tUBpi(LkNi?377KDED1JIk zKymu;>#slkB)6EAC|Y2U@VPx5Bk8{7PZTso;L+6+7r`+QVqup_sRi|#_s2m@ioj~D zD-L!Ddgw;0!{Z;n9H7yqn5K<$gu{s1d;l)Q=jLE2V5J*1@*GC za3G}E;v>BzECk@j%1Epi3zJ^{eFlNkgs@Pq`0(3rzy8FWB?T1x0m!u{Ar{2QHJgL$ ztwM%!SNjB`BL{J^?NIMbauXxb!^u7-FZq1DUhp>o%M=u9=O4O*;_-(W$AFKEJmTBK z!EA^!HT@Sf`X7M-D5r5ZPL~VZ1@ETQI~0scBi#`hqLg1pl_(sD-(dlU1w@v@U?f06 z(mdVb3KPZ2Z$JO~>qHI$oWHs@zvk4*AdL4rIOC08Id(>GxNxRZLcHe#X<=p-9v$6z64NSoU3!Z-a*^erVW%q1^ z4?IY#%&Sp}$>i2S;wS@!3@Ef2KYur3D8R9_&C_Ep7R%ljFHSmkocx%-`|xv$(XYOu zpcIOiW!tu^Rhs8s>rMyWQYv|2IGlN{=goxTU+otm5DI&8tF!-;GKmd9*i1{-ww?tF zARyG5CfF=MhM-V{ppS5K_bViDp2Z5fOk{Rg+{}`+Nd=Xlj^E+ImnD!3G;R=3286F7&!X9 zf#SY5AvK1vj#q|so4S;w1HMQdkPtcx5b z>C)jrBS`;o;_UtXe($7{?>@ve{e1o*Q;!M6($tXwf>41)4vMFFp3db*|BDa5yT*Y@ z;bs!czo#77;2IqwVTRgLfI<|h%^}mEhs`FG|D?^R+$wXDN5k;$6Oljx%0ybr>SREu zQ2u~M1`Dbh;ZQCibPx%$kP#`CMtIaXqZdfEqsg=D5gHB#iR1ClKlA4YP{4vH8PL$i z0kk1cMw6o>5I{me6EDvRm3G#jx^0@S+H~$Qu<`-iw*7X%3nQ1QZ9W0;&4jTCuJ`#oi z$av)ZchD$gy5aZx=Ra{Lg@TtqzRQnCLgm<-PWFBf_;~En(xxpzKSv}$kt?O__11Wt z9^sOv-n8!?(=jyC_VGa<0LF)E>i~i$>V~5zna#j&gQ&IXkkg`RUYn*_u!Dk}0}a9@ z9V<<2aGc}-k|qc>wVm*N{xm#XT^tLoOWtHcJ`E zgQ5BHPkprt1f4FV4ClGO^c`62o#V?$4D<~Q#YfL`oMzwnJ}4R@r2EKn`n5}z<({@} z|3Me>5g{-=+*UhH5YTw0&{mST4x%lhXc!=TVE7abDG3x7rV64%B#;6CqzXgv8kXBT zOABO7YffLi=4hrDc~wuvfn^>Ai=u@Pv4vWO8f~T%_173-__{yekstwzM4EdJk9>`$ z*K-?447v3a+83SS$n*2kfMN?G1%ksHHJGrRLDf3C9N^h3TAp|hW?i7jCO0|>V@7}-5k2p2>_ zd3Ha^r(U}xU69D-7ZKw0dU@c(0+%Nv>r??^)T6PLH$DavOLMfe1KFjsLQCRN&@+&B@j-fujv9N}N9qlSk z?z@Uz3!qDf%F%;G>i{J%-})W_QrqS|k7N(Mk$N@LBVoZmIuItqLA3ZschK&AtZ^1@ z|9NCIL_jojf^|I_^`$Wp{6I%S#C=EhKT zdcb2_i-CffNkx@D4Jls5AOQ+gp&0qcej;)V%{?I4Rj*TM`c_#&q6-km??0w>g7NQL zK7*lW4Lmh%9AI@InqZMi9iVXBS-KB!hf!eCS6l0$Gvi=pq0s}x)MlLofIu#0=5tiVNyj&&=>_aP;98Qw`JG`$R@H8 z1X+Zj=x#WMVn;OK<+lD4m#Si&sSc82;DnL*c}Ft>Kxr0WnFQ09X(S0XK7KeJC(GOk zEE(!ZE#ZGX^XuR&617KIAPSV-S0k^HB!a{^a5d_{8rMxF6i~c^0(d3_V6d?p2DNdO zCv4uqV8f7s4Sf^=2s}>8s*1`@%sN$UNtem8 zFoL?(a%P;_DV6WT=nqL6-E?dOkoWW`HjFEbDTIhhSI5T(b|O8$hRR#t9VbJ{f%gasKp+iFK+HN6gvY>8bR#H6ScP?sAWHsV zb%?6k0fo{C2gkBRxy|q%Rb&OSh@i49in|XP;JMjQ=s)zp!1L?k5>J#eI}{e&7T#ZQ z0cJ;jR70DPKBC@&1i9klJ?3z;kNd__pL0YNi=av>V4Q1Q<8F#Y9~J|@CZOsN1h!!{ z0A{m=RFXi{d!qGyO%Loh<984p#=_O=#%t512!8MrL6lKc9W+EVixgEX3`ls$6cHJD zf~%s_sX!*k0~FtUDCMhw>5nPOi&NCW~^b z0MRsHB)`bT?|Q2C@l6@tQk$Ns3Sba_ls&VLbgc$4Du3g``+V#pwY)Tx-v6{G%4?-R zKOHPNeWRBAdcLm?l`KgIQ)|3h>KBSYcIF+^%^4EaW}XgtVk&8okp4ZgK5=2aeID#r zs6SI^mn9$$hh0Sk9Fk@eE*b|IS5=^ctRof`rxR@8cRGPWcel^3<(dbo zVN$gIrgEE72eBhqWP419J_m*{b?ToUb*C^`d~BIQ_2*A}hX#c5UyUn5;k*T3kI}>7 za7Yfxa)8m!W|t=#I(X|`9fV5$L#3Y2Ub!54LP11{gMjD(Q*N^rjXe-w=@f-eVslLUr5O zkq882if=Q#8FVk1R8WOb&<*?Y4F&-o5%n@cQ*!@a$U`qp{%>go&vfe0!B zq~fVitcGV@y^E^+sgD@~Q5IC&wEnYVePT3C zwp*c4j*v6*>Pd-u^e7U#^`Oz{k1RQwJ+mOpU#DT`su{9$U$p+^PNt8~AKktZ1&U+N zcnSl8{(M8RA~D8LX^a`X@ZqQEY392e!VSzv3&A3LBx23>$KZlDU)n^A|tbZ?$(4M%IfEZDsu zehvhw-o&1+B%Y^J*C=>xPS1`8|AZYLkA{K)_Vs-AyXSQxSQq>#yhaPX5O6 z?v>W9wO!4L_PjeND8Ll#f?BxF;GnG7#TXuq$x2pJN{ejJz(mDRT&JXA6_P8ngNB_f zA})$k9IxN=8=~R95sDyKyfz!llc2D1qeK^-v>9L5zgH*R(&nhv3=CB`Nx&e9?a38EwX0%obG#d~G@(sK z=e61eNp-+)i~t9PQvbZId49l?-55pmp6u$G87Np4y@_H*bO^=P+H;v&5O6R%74O$^ z5!a3;xSRE&d~IrE5aD@ggK7i{DhqTW6gbH;C95*Fq>1N%frIT6mnRC2r@I;F;a$tqFdiK_0W5@`6h=n?+jUd z1_@BWVx-Yf+0U<1Z*RHcoG_Rg3I)h2Rh!XxFrD1R)DB_A8x=5in4xGYFcfR7QAG5) z76agFZrS2mU%A&-f1~PBK4!#z42l>Z6(R4}(I!F^&f>HUo2KL!8j8|XA!KO6R55iY zW*)bf9f^3emnF^#g{MVJ{v3&#+zJfZw1V&!&rv36{CPt`g!Im-(~KpE1I|el zQpFG#b?4Xd>v$orQgGk|D2R?ijM&Y1PJo0sf-ZK2@4C3n)%qrcjMZRb1{+`!)&dk! zp;6-$7YKfhA|xrHxWrjVZ9#7^T9-|8SzkaAWwtK%FI5z$yFo_+47prlI6&@n4v1$+%2o2>J8QRZdX6A8E{{DbAt@oD-M4)%x}fX}EOe*boJ);egOA zO9#gc6n{?c4TV^|tIt&uK*6cTR0j+PZ|C}Hc+fr9ogU(i@|gONJnUjJONm;pDnLlP zTY&83QKD(otIauS~P@Uq{bDAq;1&en#4Oc8^Er=`dbRYGLL(|azo z0h9ni71!bPWGFmjuuMCx696#Ky@m#Kc;ac{vV{>l4Q%U8-OMplcYjK6lOjtI@^U`< zK{s?pmIU8~!nX*BaXDx(Ch%j7vz-{=Gj@v*E}PFoK-g=QKcoktcFa%~@L<-=G$Uhn z4w`0oI7Qiso2=N6PcS7CFp@=ff&@ZZzdv0Xp~y<ykm{3)bMI?^GG6w;Ycj*$(Ww}r&1lUdb>?DVIn|kVB zdkmq-@gEd>%svMS6k#O3%qzN*4hZ~1oxmhU@yV=|D$KN|uf~p|1R`-9P*y0**}lG^ zsJN{F;ymo8@!N!!jLx8vh=!|`Qg_kt`}`m}0Rq>B;-t_JjME7em(m*l>tXr69KT*J n%uIxBo0XU7Jr_Zc!Dsy!8wZl~1zW8r00000NkvXXu0mjfXRXYO literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_air_quality_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb179cff5aec31f262e2a83731322f63776dd14 GIT binary patch literal 7065 zcmV;K8)oE*P)mss=;!9= z<=^1n>FVg?+9;`;^F1yUwsjQ{0u&cYgwx_D2H#j%X z&(5f;rPkKfxx2NdsiLK*qG@btQBzH}xU#dgucW7;9UUFNz`M7(vtVOg#m2>5U|Ua7 zOS-(ZdwzIjXkw$Lpq`0fYg}GgSXxz9SW;6}PDM&cM@mI1Dk>izAI;9qg@%P{Zfi?W zP2k|*xw*KUpP5%%SWQ$?XKQF`Y-g63l7xkVYi(#_XJlYxVqIWg)z{Y0(a)fxotvJR zczJeJSXEI~Q%6rtVr5@nVO&{UT1rw-H8nKI$;igX#+{y=nw*z(cXMQDX2Qe1pP!z= z!oA4au}@c3wzsyFmXL~!h)z#ULr6%ow6Btsj&^u-TVGwbxU-U!k&u#)frNj4e|?CH zh1Ay5tE;MqiH6hN$cBi5Q&&{P#KW+%t$~7k+27N;)|ju;fr!UB%G|S`&1X?tTb0XF zm6nvW(~MFWr%zyYK^P$r@ON5it&1Un{^Uaug`qMt~Tps9l z8MZDAhs6+zq8N=vG8e*37<+6972_iVK%%h&wW)U-#6b+l2Z(DASS`|TNW&N{ZIs;QOFt*7@7ta z;?ZtnqPrFXzg0p-@K~)DU=puI)Icqq_sCKs%hPPztTX4H@0*wAOQI4uw3;B^!P+=D z4Anvu3K{#H3N}Q@3|bauP!ZAaCU_7mv=6o`JUqd{46Fxm`dMWnkmVfye4H;4%lFNE zpSz^x&^M;i14UR13=0eUo`T4QfQZdtVaf{St)WpbVm^73pfbbm&p`e zbkUDNS)FxXJ7HHKypck9Thg6D=97==ml|Ii=iun18|vYMYq2+j${+A^;jP4VT^c+z z%cV=Np4qB#aPllkP64)9DN;e(yMcvj_^U)*87z&)kA^K4$6gPT|bU{K+EA!=s*wcwkbIVWZK2$k5?k6yvJ!Spjpl##$2Uk|du|JL$RtC8MF?aCBKT-QSE~G>YZB0ywRWi-;oB(> z^%Uoh&Ir$Onc6ks#{6!=$u34>8VK1ukj~ zg*dqXbTJLF@oTLGnWR$`3A)rxzW>3*O%vg+Nsk~E=LoSZGAks}Z%G(+15C9MCjq@+ zOx)?dTiBr>((bhVAn=v(_klqx(`$-6urdyPPCY_j;ucrU!!8EJbh?GTm4|Vq z9Vc-CaX;<0E0s}HF30UkEiU`zckxpeiHlE-d6&e#UyBF6MVG{Awqti~ar2 zItjPkli@x$2*UBY20Z@a5wI@Ku`l5Gm*dAP%DawWW)-H;9VKx$VUf0oP#ud1&UuU^ z243HIEaG|nX!8B@FOe~dV=@jsOx1CSjE7Zs7B<)QAcuLAYXB zfE788FP?O$2*MT;c`gNk&_%=t?dX0jF&)47eKa@|R;S_i#58yG4Mpm`X`!Nna4I5I zh`12h7rm~&4yy;E*V~i6TMfs}X5KuA!m^0qoJg^!+3un3KrkbDsca}WiK)#@rDo(Z zQEPR(-Os+?52G{Y&i>n>xz{XBo9?!$B6cKW3ISqU&z?P2MNIk=jg1vJYjY}gvfZli6FRu(5)mA}c?>qvfCp)ig&;`*^XJ&g zGW_rVP6=&CX-hn|oL@gctgRs)qEWDjiI$3LKtcFt6*7PawXLnK%Ukf+a_C;`Ny76u zI+<}~S;)Fl4FC~cUcXj4Ye>$-WL*^w9vy?SC6I{RY4sE(jhj1go^tRi#W{U?LlIX+pg{+*R0Zro zqD6*PbbSfdp_I)|{D(Z@fr{L6aJ$}eXH!m0(KqD@UnX=I2zYQS z#li0kumEzB364|0fMQtoP?5WHwa#daza?asidYlGk}Cn|iZ$T|R0ImR(REVpjlaG=4s8$hM}+f_u+ldTD1 z4~Q@jfi0sehX#cuR&pc7X*7n^hQm!fAfgut_0UR&2aAY@n4rT%L`rjU^Pnx0=g*&$ z#`7D_(1JT$n~CrVC+@O`if|kxiiC)Um{8Z0X!L8an?Lh>OmQH=Y~rCMl3Hku01;7- zeQLuZYBJB2$1P);kG@I3IOYY|Kv0po&|8c$hX$8OfmtEK9{Vhs7P*!z^Z0!9;`;U0 zdGm-PR?_FnC+6cPXWZ+J$Mvxl(fbp2Rv9(ZdrB%&F7qXQ*@R0334w;dS-~JFSyp** z{^lW?zr8sBVRsgv`ruRl(PO!VCN2Cj1B_ z4t&uO!;eT{lT<9U&6*8Z*cc=m87>01L>HseW;Stl2u>*!M`=-m0a1f)f6l(oIj8rz zy={|?59R*yl=FPSmB{uCN?;g&bHP7@D{0Im^Eh+Aas=?%N6hvO~I5=fZo8pf93 zo)#BVi>Xv)s5A0W3`mqp6qlz8>^usHoLJXvsxcu~;Fr-`TP znz6R5N?mI}vOZAmSmBgs$#k z(;6L(la4JRd70!6+!na`>{E>1G#~-)Ke&Gyk77nLnQ{>?i%1i4Nt^M$+`46^)mQBYCz(5aQ|xQlg-Yvf;ejXw&5YN*>}psOC~BJ+vJHkvp@=Ib6ty|n)B)kK?}w)ijpuvV@aDWQY&eI z$l&0>089*M5Ld6BaqxCmfWtGk#SR_NBJ@OeBE+sv$VOI3_K!S3h!^_$=m@IV^^8Rx zAQ`VC5wL6}ycN(A#O0S}{u?yEoKDiP%(rO`b*D2wKM0^=K!GR~ITm7j=Pf_zV4p

)WGIlqbEBP3~3!QiUHo99Brk(J2f#s*T2jDuZW$IvQLa*4MAlVINWh#DiJDpTgxnv?SqhxaFOr}|xxuK*SGkM4& z&cbPUk~8aBOHN7S?F`Z9A${bq)lyh;Kcp6bNPbrWNNX4rL?|@8LanVKH$jTeTFCMm zW?h}uBlbU&n^S%zM-|yk#$tf%CNr5uWmSdf5kTlGmAb26%BE*5x#SLl9zj8@1nKL8 zqm$23fY<;*MZ|#^AFZ#feFG;F4MG!dIHblc5>O0SM;Zl!JOr|~yfm+)GL@DRI!hlO+`4>56%Y;P_F2!s6z92(@%10XzcZHt2-OLO)~-<{1sPC+j(R`5eC zwwhKpE+sCdQ;yX%Af{A$RiD~ck_&xS{l*fO^qI7hoM~Fx9`Ek4BCr@4!l|r-Lm(8{ z(4!J0iJ~OfmS9Ea^$;Nl9Hktp$9^E$AhHXFEbL|NFM39zajbz@=&)$ekdMXad||UC zI&uEi6GV^D6&w2?si?6usi`r+(Py>xFr-@MEHK1DF&fpSrIsN`RCc_OfPw%52MCl# zI5;3Y3^JcZMK+ejL8n|41daq8w2CvNv$NAi5r`c6dLV(rYBtr>h@;BHwuATy@7pO* z5F_s(202g>mdMthLl4bbqGUhVK~eVKza$nZQ^DJBeXO=`DDjQoDz%e zex*aGAQ)J-L@YDP4nXt*fuj=zk(kY9J~5#n1rCR?T0Z;-K;S?Kf)%EgLJmM8>|ln0 zmOvdd1ks4GGBE*22gcXFAW{$;Rm36?Dv3mMm^dg49DsKn?)v9 zS8EPtuuQ@)N{%CDhCGw7@z>7t*vch zV&csC^B2yZD-Mx@L=Q&~1EM!+5K{2Pt2k!Jd4xhDK86rk9E4y8Zxqo^R-+o!gZo@< z5IArU0m5w%200`pjDUg``E%#bPfT2x9-1x+K|u^&Uvm^Ggh)@wM=uIy;IxPkM<9?u z-A9v|v6F7S0|HhL&v1m}ImBJ}~T>f*~4( z9LzWt3WdXOpMLH1>C>;h_F8cWMwXY32Mo!W3L)g63(nW0pBxfUT5$WMhI*a{nQ7c? zb;RhpJK^XaN6aL{hK0|#xO@b+7@%+$C^XAIASg!|`<7S1xcJhmuf9|iQbG{At&dHE zt*}M(Xl`+EpXVJ>Tc$E)x?&RFEI$ywdr-fl9a$~+oy{`cs2A+dH|7;WnoAD+6e*_z5X~m0O5$F36B1LNQg4dTQoW; zvcufdM}rE9N8yljpfopSEju@NXY*=lX?c0MShSjuB-}c5VPfcmbLXdr_5*RNx01Oa zaB!=WLk5;fk1I224hbL-Q22o$+$wmp-lRIL#%ghlOu|tr$#=s-FqzG61m|w@9EGq1 zONdsKV?!6FUpVs&{*6Zwhz|R#GQKr4QqbyB0t;OwHjsUoh`Aub5Qs=5ToH3O?_*5k zRpa8oh9r(Y_j%jP%C(*r$L2gf{;PAzt0Dn~Awr=;)&)#j@6hNf1}OmqH<<`x>vW(Z z0-=IHVu1svS8Uo_*ij5(HnRgytUY~nu%+`8-S2fWL|2gcxhyY$x~s`e?iDGC3em|+ zSlA~f&QDLDeK>~a9H5@7o`6_hzS6RmCHc~bh;;sJ3#FQ zE{SH@4X#1ah-@b3aozu#ym%^5|4qcnj*h<>Isccs%P5Zj4N;qX+#=U>mR6QUU)Fak zK3Np%51EM3FLEm@@-l0~t6lO^h|P_D$SZj<>-G(9BJPK<0%KY~7=2NQE|O%-L}W0T zY|sYL>zwD@`>0oEZ#VDN4e#^vobx>AIp^q=K;TdiNbVHZB0U5E2+K{Z>w(V`_7Wh5 z;$y@Sn99T?rV81w*sETa6I@kI8<&Xo&ULESQr)V_aI#8Qt|Xgvhfb>ScNY+cU9_)S z&O|OA0O-zx6b1@_2oSbjP*mO^hEYgT35SIE!yMogNOjxABs8S`E}NXs<+`cfS)2*k z;+4o$)4<4969Z3I0`V5aB#_`-f}*Dy2eh6D(7*u*axg|B9612wp0HWvIWWhY9N?^e zuhguOBQf_$hvR@a%_OmlUyg>0iRrYO?qhAZ)|Ek=nT4cUNM5*2mTz?_PGm@Q|KhL^ z@sK~;?KniTd=DZV^>D~e1%|9#!%&2CrDtbm)AFk0AvHDAm^{bNBxG#A0$K$_6E~8E zJ9di^i!AowJMVt^xdW^|H*G zY9u6$qP^3-y$fOQG%q=y^y^4b!8KL6Z);xBo@nA2JMgjp38G>0z!Nv;I+m#OfPi2R zTkEwfQ7*V<9Wac;9+7c8k~;wf!=h093(ra>(;OVh>C_knbblY5naMxJBytqyl<1b* zNY5_kh$q=2=ey)7u8D_k?mXo7W4Bbh2I0ZQ#|%osKBkkQRG+W%8V*x_NeWVj1mt8(w7ZR&!Pu@Ry9*US9^!bHJ~vVhJS)fX z8Wz?75zo;9CqSSRa z0TJtdcE?~Jo$}8OglP)8c`|wch&a}M<6wQtVJNDno`l10?Z_|?8`h!c@)^l^I6GC8 zJ{3+kHo}n(^)P3Hs&bEcEi72Hq*HjJfS9696olFmvF>d_rY;6S5T6*$fsDrE7x(IX z%W7N{nOptmPzjDD@!>g^A{mc^k6D1PMS^(Wig0WJK{LrBVtlH1UO4uQhiL@>!#(;2 zK{(%0RW&_>&n3qt_056wM{5|btBEDH0~w8j0ZL@bK=@#S?*fBGX9H8@eChtma`laZPkLMoGAk z410&i$CBajz4w|)9>@(50Peu^{xpeN_rM@8O z6A-yp`1r^KBbzz&Bv~3+Da!_ZIoD$Iz3m0bb{o-jI4P(4LmlBlM^S1%9MA8PC=XI4 zq0uose`+k{!fGLnNx(oot%SXAKz;7wxZbA8Z^8Q*b~snGDgG$0*WV*w+*{rYPgR z$qqoksI7geC3Y;<_H5gBt~E6=u`Z8s2Xaj$xEvRdI}HSm8!{|qdXB`&gRp$#@YO6N{dO=OJ0k6$6D`r0 zRASfsPzL9PPfNfsy9!9dC%2gW#fjj87Hq1>`|V zP!0gHy11yjR!M0l$kan(AQAB_4-%161P>(b8d=P)+;h)e3Zfihk@o=kA*{B^MXdoD z#?=nQbrCkC?%K~)Jw~e?2}rD_fos*y(?RRTF$%)^Iv-^&oug?iAm>ZaauEDe!ZM5N zD`nAejNn;YLGBR{Dv>5Yv~22BG4zyFnKL+0BOF&=2S8lWax2JvS?YldRB!8;TRDRD`$)JeqTy==m2*^K&HdL zbu6*%8v#6gm z@v|7)cdS^NX`Qbq(vw~0attIscS-If=Q4qy1d$ugbJA}Gfdr5nm4fKt$h1E*Ai@z&HW~&?HxN<2 zQ0+L7-ld3a)bm>+me{q3o!dp6AfYM*NGBZB z=R}KZmvpcXkZpC)ICRURyy&hXTGR3%o&-4(En&NOXX~Opr zg>*B2+Sfsb;||5mAPlSYxAb5SN-0-%EhAA5Bf+`&*%WGy&5ZHEp>xPKiF{LD;OJwX z1P%=H76uUzVeug5Qa0u1X61w?2V^@mF#-rA8$h0EZxs|+3P7d`0^WgWep z#O@X`&(bVaUJnp82}7bfJ+c|3WGm1nj)#d5r4SAQF%si|LK1b8+?+rX7VM(6EDYjF zo{_Tzkp7; z3<8M5*awE^Kmwv1w`gL>8>by07zGeWz@V*;#SFzj-)%o}bg(BuDcge#@90~|n!D8K zn6eNKKn@s&L3ohOC_2ET9B;h`2pnM8xxN|XG39ts1&Ox^s#6Y=peW>#zk8z5M0d@} zlQ9nxcI-$3h_%}>hKzI2UI1h}jBSGbrqU8pEI1qpPUU-rp2R?m!!mW2dbqX@4#6-E zo;VjHeg;0Gqrm2i6vRlzraN|4`rCnlfzLnl`tr*!`CFi03nc&XvrnBa45U)2G_o%$ zf7AB<+s{Ae>wA5!8W`YLN(>ZAKL7Q{iM9s%y7H6z2C}PYXVv{O!|S|DHL0{Oz|-zkd9uuUdRJH1cc`oD50!iV_VMFCe)Ib;{4Rm_`K1pZ zeDu!q@~bx*7=o#);Mzr=h{2 zPogLK$q`$Ro?s-Xzn@z!B@`G`fc$Ti`~KtR{8`n8!Z6-SYb*Wt4f-h@o$?W!bO`Ej zmYXRV%n?*5i8`4m6yeY_9Fz=6hf*k1$Z~I{LK5%NG($^<`W1vaUHY7Op@nv+ol2j3 zZ@k8%oL`>zJt_&$GELJs2FG5ckr_=7hr@I_#ayTJekx*cfMg_hUEZRMPLId=y4RDT z0_*k57oEwZjx?0sq^*=m2tcuT3urCJadrQ_5JGa8F7T-Ai$44Tq!9|O!GNNfKu8qI$Y)X)z!Aw zfe{n1tUB<-N{Q+?+(zz14=2eDLJUn&6hmdy2ZnBzAPi)#2VbQ0B%lO0Fa$PPL#2&F zPzEW~HCsCe1SmO3;?yB(7=`*iLQzGL>FSs|=3a92Q5W(qNJ^~e3KwK5z z+YV|$sy=BW;RV$+uvA0SQ2DlBAD#7hyE;L)~+pak$n4hJRXa}v%Dl>f$m`1fiF_iLz94nsGP$eV~A4- z8v0`_u@iVGKWvTLkM2A^JIZOf3wL20FPaSqYuT6u{pnmHpfhB*qqa(-)Vzk2m{ zyX|$6>7K#dR=%Dc{G&1I){it813A;&}Wfaf&SC1**!UAQ66msxnJ&7@^Dn zy)w?w9yUhF)&ZWwt9L4opPWllUxaZEd!L`w(5N2)p+7$yZY~d_(H!j#GMJ(-mLJz| z-fUMLWF4(nGnsk>b@8TQlqp7*qb>&H<#J)z8RNV-CJ<% zW~?YMF=H5RaVA#?%X;?o?wz}p%KdwPqlZ8JUwiO-)oRu1L;O@Rri$$^s-E`BQTW3z zgiWpX5c{Co58;t=Q@wrWPr6^JNRah-^^d9DxGpDBzMiLB!0aX`1G24-N?c00004{eSHZ e0{{R30B-?zRF3hc(KIap0000U$H&KYkKE(v z_^rI^baZqtFE3hn)sdy+JUl#tf`Xo&p4HXW^7Q*YV$Nn}W-wRFy1KebN=nw<_2lXJ zpRwmlOG{{k*}BK=F;~iio8L@s(Yi)LfB*mh1$0tQQvmNEzpqga9Wej^1RhC5K~#9! z?9WL7z#t3&Fv`&n{{0Ra&?OGi00000004fckI2`}ejc&c^LF$$3p~zbv|J@bl}L(Q zM&vdhyY;eKAq+)fc(h>O680bgV?cCp-v1R_1?5mFbk=Q~f0XFxBjhq5(Hf9w4M?;G zBwGIf!it~8h|qTs--rso&2!Fn&3Wn9P{@EI$tVfG(f1Iprd(dQ%C#($oDxl!sZ~Z; z2rt#}S#n$u0kk&2Z3Wa6#%>Hx)pY;J0U<1H#hyvwHwbD*t7S@Ha*%A3Xr3sk(egQr z2U)jMWJ@|B)#g+g*m`(_#jXKa5sl*3l|LX^Y+e;!s zbZSWRym&?4PKX>^M5U?SAnC;+R|IUReWzf4-y?Y!WV9PZ3M?c9@CnqD;mfI&(1;fD zFOZoi(Hs(@?h{;bPZ{_0_iy(Ta%(PlRR7@7_^<{fS_2ZT0g2XtL~B5zH6YQ74AJiW z4?r|mB9g2Rhptz3=1jy1xQQKxER1B0WzwDJkD6-&KDsX9}FQ0`*b2Ip1#PZfMr~` z>3_$*%BT4#kS9EqKaEUuu1FjDz8107N2am9V{Ar5Bp`}!kxYKn)P^(QKZFp4Vsr9KQCR;Em1}Baw58!`r zi{=TD*i>!l2#Kvoq;IZ;z7R?z2N11ZGvD4ghBdGR$9Y1e9v5?}NoJQuCtbYWIcED@ z^@Py9HGR5W&U_JF+1R6wei9ibrcSr3i)18(N5q%%SSZ4eu(pUlUXUwkBUmUxv0Pci zR%E%8wu6Nt&ZVGhi=6CprweZYkgMw@BH9B#U~Lim#sGONQNxDpX%Wg&7hq)(QQPNd zPO_JXRQ(sL6+|Ww@Cw}Y-~F-0kJug_dyj34c$heS+_p&L*|=>H%Pz8uY=vFq-PlFm zja}s3*hSurUF1(YcR~OF2m&w=Kl(?u2I5_V6<9Sws>v9qg^bl>xwHFBkYet9-B>dK f000000Df};l(eT_Y(ahr00000NkvXXu0mjfC>~Mk literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_rainfall_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_rainfall_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..3df3e0ff89276aa87798c040d68afaa6119787e8 GIT binary patch literal 29807 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_snow_depth_chart_card.png b/application/src/main/data/images/widgets/simple_snow_depth_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..dd668e784139233eab2f99ec1f669b90d8990dc7 GIT binary patch literal 1513 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 LNkvXXu0mjfJSYjT literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_soil_moisture_chart_card.png b/application/src/main/data/images/widgets/simple_soil_moisture_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..36e5f8ea5d1eb8caa34ac6fc40e854c0c9990c42 GIT binary patch literal 1507 zcmV<91swW`P)edbaZsAtgOe!$5>cc@$vDHkdQAg zFFs<+{n`L^k{_GXoT4bwWBit000JbQchC4fbEqa|27@k_{37000000ROdXb1go#ZFYs8ha zZ*OFcGWr2#iR?#6k;RCtM&xC`-c}t2f+!5%tzuEtr=kxCzW;L$ot^0<1DU%KW&8=T zt@h>v1wC6gy#yea@qz@P`TUQi2+)47 zf^GpNA{RkvMSiBMV<5&yaSaN4p2tm16NF(wY68p{5V-F?U}+A`rMnieKo~)8qs{${ z)e(?LZLXCYR>f(8MnPnJheT#!d=An+A+`Z!AQ={<0Gk2cu{r`$x#uK-9C#Jfr4Rta zJ48|m3WoWE>4b=S3iyBofUfF>)e(@L)ahVbv;buG&Wz0V0qMFu6yAY7Js^2h#y=r$ zB69GpRi~qlw}&KYl**R9NOk#uWT$`uNk{ZPA$t;GLrMZQDNl&$kTUSiwI<5;5*SOZ| zN{IybR|4Tpwz_*aRfrtvw5U6{F z#PE#`ius6$a4$mvVlRx2`biEY$TqMtJg#h zL{*-4Cr&$n#=O5C(Ez*ilGgAuUwgIeL$Y}#^O=VzLlsIhsI^!tjyz=UB0HiZbR?8? zW}k3DC!I)RUUtTHf3(iAhAV zZs)DK0rFj=O>_pPQBh}gEAG&|rxD4CbW#$v07o+-T%KbXOR&38eEyRi1NXi zIg7l)BC?3Q3ya9ySVZQ=A~H7?k-4#m{BP$DY5)XcAc~eYZ1#u^{2Rmq;Z&OU9E^bZ z-5Ao%pdmRR9kkY!QM=da_LF-b5q17QOO-V#6b1kQ0002+$^$iV_zI!_ZMpye002ov JPDHLkV1l^h&I14d literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8c21551ffcb53a999475a97e3c36992c91e96f GIT binary patch literal 22074 zcmV)1K+V62P)a2L_#YnD28rng=}VcWME-ZQApT~AJJTUlO&K5kr9 zCnqI@hpJL< zluccBM_+$9a-T?|K9;Ruk%U}DM>~wDdx?8orN%yfmQt6MYloj;q{4%rv1^8} zT8ETbq{3%%qc=NKF1pR0g_UD_o?d5dRiTK4sGWhAg>#a$aj>XbZg*HkX)Ttpf@zvJ zlB92#iDQzqMxL5)u*^zycuJC#N2$P*U5uwebAMo` zo?6AJp@xV>ow$pjrblCgP=}jyes@rLlQ6~As6tLTg_=NUgEg9%QpDXhoTF=_!7jPY zX^V7qr?^m^zDk9pFsqV~dWmSZ)DG6dyq}|es-tqPtAcTnTk_}U>Dt$>#*2G@L4lEP zwzF&D&&toYsjt9ZzR`uk)JeL+eb?Z%p>%V^udmeDnA6&5+{982002_;Nkl<2Pt!{eQ99^_7*tu|CxSbs~U0r|&Hb8?pA}&w_5)q0D1g4dMh^VZG zIVvHoBR-&lYfh8-u(C95Ygj2+EH_&lTiIsCroBJk@BhaET_4~aJWu|AumAV=@c$9p zNP5o|uX^dtH(!4FqtBF&UViz_mtI=+>Z_|(>E{L~=-JX=%s%rQO}# z%gCZd*(8yZi5`i^vw2T0pI{%5o6P3j;pO`Hc$_=?ywZ-2mbV74Mj0F&?CER13kZTDO@3w|lKl$8}&;)#SEd##SGpa=^fh>)5Rb`UK{ z4E_&=Afl$^hUO@;=6SuMJ*Px(PxN)__U=$cCbpFSAJS zCOwUSV3f#8QgDG8@o%v;^UdRM@63qi!qVmTJ`DZDBcBB5j`IFAKYW$ASK z(A#hC8y`P2u55`Y+BE=h0|Y6UQxZ-=WTD|gF^L)^NT2{>@WP-~1r71ac8JDCVUQ)2 zseByPtXWeOPHEH)l2wGVQ0O9#;m_nc1qofmDICKMIW@9i0H3w!U#)?nurLdXD50Cg zXhBs~ekz?F9^SHL3k=*24-b!yrCVF41>u3gV-le#6nb@SWC4U1MX(@-(GrTnM*hQx z4-4XhM#oq}QaFgBAeT{((BH*YWuYwG!V?CId?>suL?MX`g>t_|bAR({PvL^Xg$ozX zw}_cUeyTEEE(&)bW9f7yB{3Z+?v?14#7W2KUZyF`3Z_XGidzH@B&;a>Tv|zdK!nlL z(<6&YWld2OK$4QkCs1H987#t_N{7l%rKl+@3l1qzn5042Y}Pc-Vz9Y+8+~JS7IlFI z81CT|{C|Ark|pJo1wld4fmK!tp@?CCUVOg<6emx5UDPIJ5myqPpy3IVhgUTak{B2m z;1-K=FkC~0!8aC)PLWf@C*y9B(5DI`J6>fJsk+cZ96~2W2XmiAKa)svloIL!34(-E zJO)KPP{=|QW91G(xM?pyf$u7gESDe=Adnzl7G~jDlwiop_IWWBh@Z%egeV3))k>x^ zqK=}_R0RthCMRX##5pyXFl((zr7D+T0R@Wiai6lBZI|n)k1}ZA5tGzJ9p{O

b#wbIB=#&bQKDSrpIQXqmrBGg2uvc9vev!bHnAQ(9C z|Bsmm1*z}=7?cJ5BRM%~$XGBGCK5>ai&AUywYD$-P^!Fd6_GVkWwkSrp;#vh<9Mv3 znf64nqKFtS5VP>A0E3ZEt4Dp41_R m4yD0)#nu+Sa#O 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_soil_moisture_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b9301b4a30e502d1b3ed77537978f585ba063149 GIT binary patch literal 10392 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

0bn|SfZ#bkNXIeFE(HP(p%4zz zPd^b!6d*pI&+GLCqOmFoihnJL_Rh&W_h+5IE0E97`nlwoJ97Ao^Ge6-@fpCOkD{x2?E|>qMMoZcnI4zx1cGFJczAeS zKq@UlHi_b^fPnxay(`%Y?kVnqh|jz!zk?7Ueh4pU=Vd4 z1XnoL43IMbne#4UIR?nP?>=zk8RTVZt9ZSa$S#MO29}KqXvns{jn36t?O(fo~eS z+l7t&He0DgAP9KI=Z*+BnvR`w^%2PXjyWp!PMk(*(mBE=Y5%O}%P-+CXri|w8>zAb zfsDf)n1nltibQ-1R~_~^oFgmOy!bghGqb*ibAlC(g4+WGBsUQy8Ov-}G@13Mh9-Gd zK|=;wKUx2*x zz%fS#`RuDNFFRIL8=X!omH3#dhe>!|>cqL!{0y&*c(1OkeG2EJdyK6Jilna_Ao=D- zwl`_XWaBY^8|p0^i9oE@9m6PFRq(DFtBUMdH3xiQ)z&~DPmHJJS3H3NqP`DS``S4M z8S$QixKn{|a;-VM58zp!<{h3ln~IxPNmVrn$y@AO zI6`3#0eNSbyn~L47b&oCBPL-XUPvIppy`U%N|FX5A#tAMZ!e7HJy(U}g=jRByqHb) z#!;fAKY@!ygD@A(F)ma#jK{mHs|aw2L%#$Ev$LKUg-xSSy;&&f)L<15ArX){#}x(A z2LS{q%OltF*KrrgbqBC&YazQSl8Tm)@-Bcd3FQJkSGWSqsu~c%uCCc1lLXR{%cV1j z_@I0Qvy6x+7|=$UL3Xw`H;iX`pSZJH*evZBPb&9e0D(A6;93OI=e;&KD18b6p%8fu zBf&>h&Sns+5*3C`sNR(Q?Mf<62!y)Ca(y+*8g)Z}Ty5DuKvC`Z~q{*)j-h>2w4uP^N2{4*gC2PEhJo|>)dOa zMCJ&=V-phLkV2y?fbz;6?3lC+5J|?J7zG8PfCNEc#rO~yPdOW7tAk)yy=wYdGPX+_ z8>?7bWETV$h{F?A9sq_Nc^CFy{q3Z;H3-TK++1=zsj@$c+E#_SGE)Ue9ZA>kkgURL zZxTg`g*Clvz>-T(MK1W0U4a)#1X8>Uz`(a1hYpYVQrHl6wxjcgXjzo6pJ4MJ8pGW+j8}E{=ZUdXziL!fm5fa=;uWn|$y|0E z{h~~7r{*SsxBx;Vo!C{K7u(4&H3)HVeCf0a)#gEtFYNv|IFA|Q#LlMtN`iOQvI#s zh+~8~GzgR6^z`&8eF&jjyJoUzFasGR&mSO4KtSdOmL`|(d=Q<7)I@mx!n`GoHbgS& z&&6s*s5)Sa!s-TA6Ki!DzgF>hV~gh-C|j#r_4aLJx4er5zS^$)L7HXF>0ImY*C72a z0qI2F0o!;so9qi9sjA>sj6oqvBzq-~1h=$DK>~O+1(?C^?z?yI-hUX$`R{#uXWoKt zb}ZVJOm`@HPANwp7ibxI45L?-xPDwMNlbI*vR7B_;>FEcTb;d;Kn`lH!yLs^asq%L z!2?Co{?ehdXU}#Mhq=9}G7B}v*uP(qz#4eLloSIt69g7{l{oHp|MBQyI-L!+SvuNM z7h-;YF3iX*ELBI#-GAtgfM^{J4x;!nXjTTc);Ud@lkWh(VWtKm_uN zfOG={mr)d29370oA`%z^&rJb^tRoc>*zp@T1__}&8j6Gm1}u>&G`1oaQWI6C4&V_W14gtYmlS7^nh>bZ^Wy&{4FjqgkcmMwVi-Anml1chgk@2NS z8XOu#XAEHnf=Ec@c-RD~N7SfEVv`&ZWAJe@lQ7767>+q8c*WKPf}vF!L~|(VCj`>K z96D$?1xx^>c)d4^mZ?8IlpDBpYranPrzn!aflrbcod=FzOjH3PF+w3?C5yq)ke`v4 z(C5~teQ4+P@K=^`Qg@uLt@A3|nk}L{3(}5NfgymL18O*%fms5HiJXCshqrHMgBi>C zP)9gDar@paUM(SO6+R8&b~^Ft`R8Ryz<9HXAfY0KJ&O!tr-(uSy~V{Otp^C?O#*SX zw4g^#3!hAoI0wJ7?;q|Y;}i}OfnWq0+O*uXGZY9Wd$S?S#JJyo@?(8qgX*!DSkOslYKpoA4 zh)5`Pao%DqbL7e-aErYNVGvCVnKl81a~doOizhpko}3>_dKRShS}nDx7?-cA+dd6? z6ng+RS*0`}d72f6TI5;mOANw?pLhxqk#bgAczE4{U>E_RdxA`IvbjtO2una_;8;$N zFXRka66wfz_(F7abeQW8a(4!iDS{}4Bao@w)*!kyM<~o8-oni4+dKe)2>|jQgY?s` zia$>jB&Mc3DO+TlfCveLm>eYGs3ciKh)jE<8Q-YI-PM(v9FL`j=8Fw-_$En`mnpi; zi!Wg6aK}mzUI$d+BECT!5V{X_tpI^qD?tX2zplzf@h=XqYH~!o-v0>*#E!(b7cQkr z5PoyrJ3T$^2?XQ0xFypz5x#$GK9!#D7+#;bG&6(mOE2Qr%-9(HU0+|v<6?1vRh-!q zKDvlk@J?~DxOi!Cv3O~WM4w$;_#G-1i;MK~6?*c~0xlsJ!H4;u%oG=FaOPUR20lE4 zyD5!5uNnHQe$2=#{9isa4LLoYXeMY0w1scoTbc}y-=5C~U??~o8Z2(V-_|U}C(&T_Y8xH#?!WoY< zG)jNGp^z^Z^kRvKjHlyhxh0UB+|d9A7l`nTb5nn%@p&7t!a>FTTEJyGZnCy2JMC z%Sm^=X{!4VACvz5+Rm9~x@AYF#|j93`SQuN7KIm~92$0qK`Fr8#vN zw{z=TjMw#Xn4LX64Jv^hdHwyBjPdUK4|x{h=g;51zLJ{Y20O&B5JJ7N(v9!m@( zfbmw;h;YbZ9`{uUS?V3e5Sh(+8#A(lt``WL(c2=6S{U1x<>8be`QgpsgLPo6CGBhg z)!G+AmP0=fehVQcMOn-qHFZaWWSWoDVR0TCBKlcEgrz8et)2k<`2D9(UydA*jmSG% zjFg&bn%=B9h2cPnAY#V}#%bNZk+@>mRsM92FbEih1k7V%gyBHaxZ5EJ$&Tn~MrLs% z2q4%8S~Zwpp&*UkP8=RV1Xr&ro|n+CL`YrKC~^>t1K8IUCXxC50+hhm73=}ab~+m+q62iiX2KvZ4JxMm^&D3o}_h)g9NPOhA}*in(sJ3|Yj5e(IG zzyQhQ3nhsX<#N=1?ZqvKBulhN$p9`n6fhzY%9QDhL}MDfQk6^B*VYcR8q4W<*|z`z zV8(usk*Kcir&g3vn`J*FHYV3+|MyP|DwqJep`{A}1Yn?MOKI`E43H`3PpDAi(0LN! zEog+4MOk5tA!AYq)7+&HnxQF{vpFo)B?GRCstTHO2%|LP>C|FxsU5wwLlptgSMyno zkT4z>Mwxc-wn|7zj5L-h?!u$^==#%UsJimaM0m_Sjn}D+yBd#0JCK@;MNkFy1tfl1 z_WO1`ij)1cVupY~+ZHZ+$2ALRe0rPV6Kp59M~vwR!K{EO?8txyKocOEX`G9civclo z=MIQblgk%>2MYTgfh*@5^7HJUn)ClEGk({cKbx;DnpoC4m*p4EXTheP?@e;ypK?x{ z=-l}WTYJBX+5B9#$kE7hzA0zJ-}q;lyV$I<=GORTo$riX`qkwxVSfKp$l6HtgNh%%SJprJjch!ui1O=_vKhv zST8RxbaZrrf`Yoby7&9?W@cv4>9B~$Ii8-L=k(Z0N=lf{Q@`PrpweK~)z#SSy{Oi1 zpweNm*?Y(3qsQfe7 z97g0cAG>w1A}b6;VR&_lLse0MB!+;v@cm!%P8@M;xV;>)2meKEin;9rXHRe$`%Qqh zCYK8!PO?LSr0pXuj!`YSOdDh>H8K)Q$PPi7pxYEn$)pI=*IJK?%$Pw(;}Ri=SfbeP zLoylAmPq)(Fa2+ac*|?SPB{YDOq<1!QE?j8j7-oM!^IL99&X zX9%oRAgU$Gd_at9eu6mAuZ5)43_s-%I9sAZDMA-EOfL}Vxb6u$rZc7uva(s__V|E~ zoFVipArjbZQXHSt`-fdV>m}^3zchYc59Dq=kh}Fj?$!gjTMy)JJ&?O~Z-{A* zrOL-c*5FbzsUHrJh%}DQ_Suks?3wFsvoH*Xe+7q94&kss%4w|as@?wues*H9ei}%n znoyZ|f6S?~R_{}69MN2|w=~-}NR;y;mhqNB;<2KFtk^QhL5|kaY>Oa4!0yvAb(Hbu zK)h7S#v>kCe6z{J)Sed`uG6`!9fKj>@ma zlTvzi>zGL?$74v8a(!iofKyysPlEV2b;{Y9pI$Acayrwo`L4Gn^%06r=3<_EN#4#k8*xOQ+B zlWMHPH=Y?~G&@vEGJ51gB(vjRtE9^ z1L39tL(LKn0Iu3XF%2@Wv=J+V)BwZ%U5i#9wv-IUvl}AG5)hsnYlCP5U*pY-XNH4H zFy7qA^p}F<(pwvZX1Wr({q}VO2X)0b@bP3J$Uz>&>L7{^U4}ffD&P$S(Og*zK$v5F z5TSaS)0kvw7<;01mrN}J89CN}WU7^#-&BaRK+N%i&wiD!7IVBL2x=+Ep8zQj;%|Tm zv4iX&+t3d3YT7|wO*_b|X$N^V?I8c!xsw8bVHkj6NqT&SWc&$^MwdzqOu(lRa+)2v zTG%lftb^8iW>hwq2fbMlHTU1;r~m)}0002E%?B4st~S@nS8@OV002ovPDHLkV1hTm B>hS;o literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_solar_radiation_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_solar_radiation_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..48de544d0c5f3270ef567bccfae3e7531b5dc52f GIT binary patch literal 15481 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 t&gQvqEiObWAmI=YF!+CG)V! zST8RxK4Q+u((!_Vf~>si^7Q+WrQ>yv+@7AEN=i!A)zzP|=V*l4FjvcFW@fs&x`UeE zk*4EJZqnA>^}5IIxw*OZi;Kws000GaQchCku3utfwOqrqq1+yyX!%d!Cy1#Oo>ws#OKRn_NslI{a43q!{Y}_yt!Uci8(GV0#4NCxOg3$0AVlc*I)N~ER z3z=RasyUa0<5Yr3$Z<#sC1)j41~9K$zCi$C&Xt0uYaoex@(Ni+#J)imN}%i=kVx_T z1`p_plUykC61L%dAzfVOKOg?rNr#8*23DND_8W%RG@9fF&Z|KnqyNfyIv{yY?#`F-wqWd2z0Pcv@22!faYe0HyKzeIHdTT)balXy7_{T$jv1@Kij)Fh{ed+=MMZ6Ld zqgglR|Nn5o*1;Xk#2T%cSmk+`;r7rc4Wy|Gm(&txV&5Vqi+xWBPg2JBEW+6ke;G5e zV-Xp1_mcLv5=o0Ntgh;#+n8>y+b-1gDnd@sk=mH^ZZNk3#!sJ|=TgL3Mj6L;Ks^}Y(enl(NuP<-2m!#uqgs?ZnK4`qA0#P%dxz% z@y+B@-v2jPr_U+jD@7ayp5G968X8TPG_ZgScaZN)IF*11FDPL`88g0#2p$pjLS)&& zz^GA30Kyo5S+U5{YDz}wMe^k$szZNt@v_=PrSkz$cZ={|lD(a85BSKuxLRkB4Q zX-A8l%3Y?_;=MWz8JdVG0V?wFb}xmoA#h8pH! z5p0hWd0nI+S3-*6ixTA=x<)zltzZ_Cz^9L`Ok`k#8Kc)jGSPCnDZ&lZ7v;q6q(@= zIYjotA@XhCF5v1rdPuE5d000000D#vl{h6wXGe*LA00000NkvXXu0mjfk7%z} literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_temperature_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_temperature_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..b025b092fcfb177c73ca329c49f5ead5c0eb5600 GIT binary patch literal 17965 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 nP_+O>&T=qpN% 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 ip#QJEVE_OC0N^h!7A8jD>*OK;0000Rz( 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 `&PZ!uL8JQT*bFz6LHg3h)WU0?*Zo!F^!0_Ak zS;8bk^=cm9&jkwN2lU&+-d5;qp(=fS&}ANsMh`}p&>3`IwI5q5f4?u;aTX07BzeVH zhtpiu36}btLtxga$zU}3tm86-392AybP*uBDmGi^PM>b6E@s;8sEtPL?gb7WBAtQ8 zo?U}X3YI3`$BP}iajt?seS}YM#b?mgZoua$a3>52E4WHI@Vnh7-R^#$73QuRomU8S zDHHa3?LJxlutPM`YMyxu)(ov#yp^{nap;r9U;%|BIKt>nS2&mvFa!C3bO}u{Q6I7A_9SgA$u9JM?va9Xb2R> zM06Gf>i+6b$u{a-^cGi zJbwIP8NFOtS$X;M=lw?~ug$J~KX7N$j=lJ675fe!KJM<>aDPwX!0hJF*~>4pAG6uB zmF49(FL9AH9xsmvA4g;9`E&Y5yG38rgc?PdMHoeWXfkVhQAnc+mwH$&)IHknef~Up zaPPt2cFm`?X*i7I9f*4MvUe~LS?58;foJvNP97R|D0u_(Wd2+Psh4yCNvH{uKvNT( zt@IL1Ob;QU1PaB0hqll|C~4ZR^)x}jtKX-?S7AO)+6>n0_xU}~_sM0vA@W1RFhm0b zS{w#jhF1hci|FAoe$blF zTX^-7L}J;5RNP6pj_Of;HrvcVqr6+byLWVF^!eyv-uUotGu_Ol6Ig_6cwif7Ct419 zNIL6~2;nP=>HAO-F=!cZHKZuwPyu+Ssx(VGV6a0WX`aflT*C~jdK_Q1>@h@OV)IlN zRAndz#&9@>2%(y$<~WY3>JI&VT=tUr@Af#!>(M$4yGb`mShnS)^A_tkx^JowQ8WXqR~V%O7^c&yeA|Au2@(+qdT+v} zG}s{qwbK|HGDKvw*4VR97GU!h@4-W~ZBZ15hGqnYqG=?f0!>9V)Rwy4$R3gOk~Ha2 zMWX(D{L_6FEx(>+`J?-X`=h=6av3>)`uI3MzL-ukoKb(Z3cFp_WxK9~TClVwx~@CF zE`O@Nshs<01;(sUDMY-9SPy4&INIZ?z*$0b+!QRiDgP-!f}&nSQe+u+c*=Vo=XoN} zbG(SJpfL@;VinQ3+QIyqDkHtg$_|>1WHXR1g-X zqYO1AFwG#Kl(bM9xahQxti$SfNeL^tt{X=6ui++JE|(`brzf8e_D1E~7{dn-&K55s z%&f_3@n+?MFqP7)ibxVpQ&S;gsv6P(5g#_>(xJ3-XpyQV&_ZMRv??R&0s?-sbnRb8 zPMfuu9`mtmS+Z?;9vqMoaf=}id4m@*J(LbIPodXTd}^kun<`1rDsTd9Z5Yz|<;mA& zwwO+jMn|I`qus*;I2;`A?d~r>oV=V(CbKpDY8t{sN)xKZxsSs<$0q%T2-ATGg`*=f zw>aet_X{tjeTuH0-s@?~aSv@~_w$64(`QzQAQDgDtS)Q-g z(JYD@S^nwE_Yhs>OB6Ck)p4g(@_jQC@3f>C@3f>C@3f>C@3f>C@A>f_zT6@K2K$3?0*0N002ovPDHLk FV1l9Y7AgP$ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_value_and_chart_card.png b/application/src/main/data/images/widgets/simple_value_and_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d64e2e0926da092cc129769a2d6050500433a452 GIT binary patch literal 1511 zcmV-rYKT_R2Jw2?ftaNmAkdTn)>HEjW$MNy;FE1}wXyMP) z_gGk1x4!b8o}Tmc{ngdgy1Kf8f`W&W>TiAJOI_dF-}z={W|N-mtF!RK$@QP8?qhS~ ztE;O^OG}@r?n_+Xdx+>tN=m@n)qMZ}00eYWPE!Eyw;+MX>97C*1r$j{K~#9!?9V{~ z03iqfFhP0SzwH@Axvjwl000000Ko6ejCx(p^N78kw_}cM@HmqkwOWWSkrKI#$ZbCM z%Uwls7>J_DFBBE3tKw=2w&OjZA461BEJuC>~0RytH$=HqzEC&1vKE_X}SmYf@Et!vb7-DT99nzgZRE%rH4ptIO~NQ64;`++o9+} z3~7k#QI)Ae3ke+eA*z)WVyENI5u}i=&wD^9A&&AK>ikhc+UHLU7$HQ^-cy~O5Yix@ zZNTUte|F8NNmURG!#50m3YZ{LDVFBWIqm=dgGZKAm@LgWyM-4%7x`vR<1^ofkY)?w zmt^%KLSB02U!weytXrhhV5pg!{%k?~lB_|53DE||L(?BwYHy3>~^59Km5yqkEgpgP87Jt$$MbsG#PnNn8L{t&Rxv)ua&gLIY-}RSE z*P<{3S20DduIJg`#+xt}(84e^Q9{a|y-h@b^sk|=u@)g+b1KnjFbwidA~g?PLm3~? zLIj7aY#Hm%8uYnmOmqYA3wyPQKTUVgxt7;#`Pcp7V9>R=%hhfc3WywzgyuHxGM5b% z$&e+d}aw=KDLQ*pB$}v9JgDKtrU{&!-5jWz=JUcR5h%lU^2zVm4 z2+1sa<0woA61|hK2(`WA@*)udR}=vw;(O4C?2GK5)q^t>0bk@}a_*JOj>El3c|I?V zXrNIj0=~!|zY2r_R886a!ymUtluJ9wjd9g?Tnuq=s{xa`+;NS$AZH z{3~bw^8-nN(<;x($9lC5G%bpSzeKq~5S`>l_Nm=}oZe~x-Jw|cB00J7few>ABl$R$ zr{knhJ^y)Et>LMzgh8N%tWtzY6rHu)#NI?Uk+rgktc^`%ZEPZIV-r~$|Ju0&8UR2T zh=Ezc{99%+;CJVs1}fw=K_PV_bk1@oW`Z0001Bn+u#}X1(9mh=KqB N002ovPDHLkV1nQp&tU)n literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_vibration_chart_card.png b/application/src/main/data/images/widgets/simple_vibration_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..be7262e81705585894e51e404caec9442c2bec4a GIT binary patch literal 1483 zcmV;+1vL7JP)TX^4cav=Wc@Ri<`&C$1g80o}Ql7)z$E*w1R?y_|w|tV0QDj!RdXE zN=iy*W@fs&y1BWz;^N}&nyBrXsNX|f;6z<%``2s$000JbQchCv?e546B4ZniPkS5&Is5O2JX>b<@+A(n9CXCB^4k??S z5K->u8xG&SIgAcXz9n$G^>HBW>s9)a|op`h-BQejKy$=08-y~#0jtk zh4@ew>gZJXH2vCnOPz0uWWQ4@e>aB*7t0gZKgBqVFEq1H=JpaUfj2AnrIb zGMtdcdcy%}wHGyXT0Iea9lUGfK;Zp^tR0^vO#sG%c3Vgp%>Xyj#o$WYri@LgZeT6@ zDFg%ThtnviHsNVFy-S`!kj35nK(Tp6#${{V!I_T=>; zTBVmvQTPAKJ*0gIxvT%`X0Aeeug^QFM-lxZ9i|nbhh^Ab&$Pcj(v$9{NNL7ks!i5M!vPhA& z*sMx=8k+%xAz7qImI72FEqO$ENWLkeER0wMk7Spn11Fw{hRTv1cas|JzaV1IM*4l> z5Oo2b-XOYMO&s+V_>7CT@Edz@_|``TJKYSTiew!flDLSajM0l2MC}j{^twiL8gY`A z#4GR#5_6c4qbZ!T^X;^K-<14vE}T%2#IU|s#33O$_Y=T@-)QVCv&X+h#(f6;e|H(8c}1LpeZ_YR-*{w z#n2=vRiqG~%vbyRgajiz1pgV}vp235n%CRC6&pE}%j^E|N5H z(z#knH8<-Se2wpmbk6j$K-58miePzB&6TTtbGE#Q1X#X+kCe?{6JZKI5=7ue#Bd{0 zr=2B`lO)v4D2wV3h?uEJ3pXglIwqp4h!!Sr<}r~o z)B^hLd**VLd%9tRHyQNzH lZ>eS_jluu`00000o*Xdt29TxhR>A-P002ovPDHLkV1gbOxP<@! literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_vibration_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_vibration_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..3633af040cd7c396469e2b43a18637876d4f256d GIT binary patch literal 11890 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

JpEPsy%KeWT!m1Oijf2H=lU`5+#i0r{K0(%3)f z5hrR9NeM##7!e`;ThK|0)F2YKP9VU5C*+8PBn0`4KgwmkEscRgn}FG)*|j|>p+fi7 z$Py|6*>+|izUez8xY<*BmqD`KrNMH0bv1QFuZ#U)5KemoAV|A)L@bFw#^{EfsWC56 zCMvHVm|((_X~djd;VH#o?}s1`gXq0kdiJq}?0xf0V2N`U`tJAb+1a)LF5)0t7^KOL zxZGM8z&Rj3wa6_YnPQ0~59xU!IygUR6Ea9moj>zDW!$m%)vm_|%#B0UuNrVVv zU~>?!%KGGDkgEvD1Avgyy`|^w>Nf5!90@@PrP^whMGT^%r2-*&5S%9A-5>)()H=Z@ zDUHMPNdqlTdTWt1li-$dDh%|pA-u4?Kkpi6c6DZIav(A5~UX&|A$49J$ZEMFY51J$WC(eb(jsr`Mc^XD(UYx4L@b>iw&i zFP~mJ`ts?c7_@-!z9e- z?B%CL0`oRWicsN#bTKN`wzpm>C;DKDP1SXIUUeeNvk1Y=b(=2B^IRZidDOs>s;LD) zzQwk`r2GdsrB{v%mXix^zRCs2Q(7GDrv#!hS18pn)RIV&C5arJf-^oV-`4~tK_Fe- zwk@)WivgmoR>H-h6~=T;mFHcA$^}YB^#+A^0}$da&Jd#kiJ|UdfJpRKO8We$b74sl z+T^sb1dHs*)5#v{`Rh$Q2rD}DN-+szQaBgKNUe;zkw>y^F^3b(Cwc{>UMOu%AJ%B5 z1`NZWki`@TgnS|d(~&)KeJ7B#x7U;_{fDGhpA{mA3?` zGqLpVa!N8gB*#fTK;+orimVD0t6h0Kjb(v9yJlE2y&Vd*mYC@A=;>g zYy}wY!dn*CBG*+jpnaMFHgG2q2yh05!i0VkapaD4_E(B3*^+f{o%$eRkhLXH=?=9_ zE=+=3ykz*U^1XE?OQ7Od`y7-wSi-ayD;T7()LYZks$N8)GjSAET2slUp`FomIeH62 ztxY$e&&;FG?k}Ic`j$@P?JG|0SbX0LOWu!i)mvVdAoxXP{7Zr-!J@eyH=L(HBk4)L zVBT_1T`hx1n2}(+t3>qLj>1HDqpPmTz(79G2p~-kMcuq%5H&2>;aI9S^xUE=)=Jm5pn>KCQv}x0(O~2cN0|5X4002S$)+-E90RR91TO6HA U9Rr-`MgRZ+07*qoM6N<$f>D%>iU0rr literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_visibility_chart_card.png b/application/src/main/data/images/widgets/simple_visibility_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9ab48bbc44d53c9c2d7ad357b5585fcf6c663b GIT binary patch literal 1398 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 z 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

  • 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 FV1kZJ?$iJP literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_volatile_organic_compounds_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_volatile_organic_compounds_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..93bb631d88c9340a93fd2a9a4f2a7ec56ad7a3f3 GIT binary patch literal 7870 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/snow_depth_card_with_background.png b/application/src/main/data/images/widgets/snow_depth_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..324fe4c05e3d99d4a678b4a26387ce2ddc14995e GIT binary patch literal 12465 zcmV;iFiy{jP)B`{{Qm%{P6kw{Qm#%`26qn z`SADq?(_KW_xtkr`tbGn^7s1p`~B?n`Tzg_^7{Su{Qe?J!S(w6?)Lih`~CU+{`&p@ z@b>!n{Qm6o_v`cc>+<*a`TXhe_VxMu`~3au@%HTY`u+U=^!fbm_4w-W_4)ez>GJsJ z@b>NT_wx1m=a*GE_4WC&+Uw%$ z^5*XKuGi`M`uz3x`n1*MxZduv)#ka_=&sY{`1ks-*68Ex^x*08vD4+(>hrYL=dRS} zrm3sb==1XP_|xk3+U)hg-s`s5=+5Qw(CG8g=J34Q>E`S6At52)@b~KM@#N_7#^CI_ z*XG9N^wsC_%H!{{*66I(=)uIt>Gb)|>-XO0@T=74sng~=U&!V2`QhvI-sJAe==Qzc z?cVS9&*$=0b+Zwg?%Lw)xZLd1-00Zd;IFf_+wb?+?Dp*M^TOlu(%kag;Nz{v*wpX(#^Ug) z!qm07yP&0~q_^gvwB)L;uF4f!mfLQM)|Q%_aB*|$ z`Tgnk`~36t&f4e6*5#M0;+(U`nx3G2e}K8k>ZQ=-q{P`hV9A%U$M^2=z|8Hm#M&=Z z#gwhXo3zeIYRuK)?4ZBXVq|45FE5X*x`?E>jE;|gfq{vPjhk||5&hz-SC))VnsWguR& zWI-s(Qi+){OgsTw7&`I{JO|&MUAesmX!x`7-JPAPL;KTrcgl_b`Jey!x4Ctvuv~uo zwn`R>%tR)N@Cd^&3Zp2(dnlGjKkN_sVm?RO&uc;O#H^b2y@PuFXuq^u64}!mjfQRb zu0}0i#`PE@gkYtiMEgaUcHQ95+`Dx}b^FT_SuB#p1g1ogfRceqPNX}X!W7EY?{}dR zuAtp+2kmOLYF2jZa8)V?2c=?3*WuC)xO_Z-!gML4BoBk@Z^iSpSE}p&`s;GJUQ1RM zfbalFh$2A3AqL)44Cv4mlJ<2-tFYB-)sv%&gzZ-HzHHkuBuvJmEUStV495Q0L$X?3 zs@+vs2~fA!XiHWlJV+Sv_`Ih+$3v*5Q8=B3P)Sw>d-`Zs7FIi{R-e@C6=Zj3r-Z`x zq)V`JSH1`3N9`wh^oyU7Y%5cZxY`SawOX$W>%wZ8OgKss6Nyt1Zw~PYhnOPK^x;GK zLC~-SD=^zQVgdGHt!kR0F62R}R4f*C;j*BDD+~G(L$*aVZHt`x{g3Ik1D2cl|*51 z37GF+fVuR%FU&1jYCJ-zd~1|Aw!&IWR;vY)OyW3-V~!PvG3Q;*`IvXRd^i|z-p9d; zro(9n_B0X)Y`>cA!?s`{K>!wxmkAYIMd{KTw(lAaSSbpVvCO5(_qAp0>K@b#BFZ8S z=DX_I;_+gg#7P1UByrq%hPOx;IqeRb-N68rg=h&h!IC#((8p=Z3u_0pK-`H(byMCP zJ4Lv3Lx;<@;7Va0Xs$<6nB0lEYwNfMrM^bM@@>OV+lu3)fJd4!=cgUsZJu_<-DaoR z>~x#WZWGPPTVsHuhk?4HsSJeYGQdz-T3AI~9nvKanD5&*T$Z236D-(Z%3$Powjr?} zdxqdK&9|+~s+*HASh;Rya<5z~S8KtuTCMi1)-iFX zBWAg5njb13aIYUcJlNmc-_!SWiSiwc|QW zBVs37j?xycbn(?9p2eNk%QW;Qy_}aXTWOwNP0MH*BKWPFg;Fd4G6i9Rp+^3v7?^Tw z8;LZqy>-j6T&u3MHAwhuHJhQURF#udR*pJUU}?aTGKzpDhKyvfO)7G!fbCg?I9AEA za1Uv|(pEU0f1cr{I6cma+7yK)U^xv%0hKkDvr<(KQ(a27b_o@+9-QbtV-4miEFRC_ z&flGl=dZ4a*hUsihft{-Q6{TP$}XzNhHPYM+m%K9lh<{<;TyWbx|tNt=H;{Tcz!G( zjAF3-b)Jhy3#Kf}Mr>U;VA7StJhs8M;i}uREatyy_&e00I#t?=lQAE?Kl?m?%Qhu% zOXR#P)nz=*b|Ip&WUj+PRd{a4D(%>sMJ>lC3M-k7$0MQoH49N$Vr0o!x$NAP--w%C zYPL|Zg9k-Q9iwPy3aj_={pk2?{_5?gpRih+Su&S4B9_!;g}Lqp*T(z^rd@|cywXYC zphf+`ch>CZMTsyD133KwX}`3c*c6>4WMo{}Ai8++q9-p4L+mA(k)XqPvV%0%W!Vxh zE<_%Z4z&zR5(slh2n?oM;b50Mgi9v{wb)a1>UrnKzWVCgF7)^s5+r?i-uLUfZh&p; zdA{D+`JAf^z7mD^#`CPqN*0B2Zs-Z)=aXCoqoz}`kei|}5?Bvh4n&xd@#M))K0Scy z8BB0_p)AHFEQ>elk71l6vkRNSEoUvKtqxd8p6A3{5i#QT71%pr{`2!rWiS{(H6KUi zxc;dU*uvnlH?RfFb zv@*)7kLv_B|LJ_8Jzm`zduKn1bxRS&VnDnYW$%QzGz}^)i-9#mp=QEqYc~|ycU8yf z8-`(3=Um4y&V$8NS!KpzUE+C3PM&@@Qlz(=oRbBXuT)eDet&p9z_NDkR)9(-7g;Z! z!ezGwRp<@Fk_FT&c$xUV;1kaKq5~F&H$q}SB0{8yy>-KQ7rgHzp}-!?&d0$ z*4Jmx*tU*cU{RIB%4V~vHOr_5*Q9Q+-|y>MEhR{rZq)W}(nw)-*=m@w8q@T~L~hq*U7E;^wk1n- zNuD&!5r5&Vol#XX307j`!FHjCTYO=iVWm4etyXKHt!Ai6rUqQD3fT?qrvz7p)P{!9 zudZntXc|^3r5b9@Q2XZ5hS`rJV>wSYVOwrQqoZ$iS&Bw=i)=#o`F17i!fMt99^sU& za=EBrYA`H(XjR~1SU0|7`+?=U-fR*TUK~;tfpv{3SZjo4TESq=kOaMJ?v3^gHH>3s z>G3#Ns!TGrS(-M(syn;s!Wm10iF9SN{7SK>C^%p&E1k(LIa?2HSJHMtwdtr{&8V~? z`NQ;BLzITLQhn2?TH2AYf$`D*1D4$uhuAE07zHWnvUuCXukMVYIrGBJt#``(a!>RZ z7Fav@nFK0)951@uk7IliGb&{IyZd49$nsc{(N#@77~C_4f@)|2ajEiH9m*=F>#C~Z zY?Q`?y-2l7!?b%7o)PfiemZiDcd+%z2d^iKf@@eyf4^5x_1BMkW6H+cQ%6>>;SP$5@o*1QDWxF2JX zh2se4ZbB}Gn}-*ky;J?01`-KnT`ZLDKLD#&Vp+M(O2uK(I|@Wg0~=J7L|s=ImrqF9 zFvNCY5f(zeucn!SVf`~y6(f&WprpKeT)5a16^4bQmCI#XIyn6K6rw}q z6QjC>hnpL0WBB44b&-UbD^(1kvcxP5kJGSX*v?o1MN#fOF87LTTiJAuuv!_g5IQnG zLe)&zS6%#nUi`qE&!Q?uMdHzJ0Jb1=b|M<{Toi_!y)w#zibGGu^7iZP1y(wp!>zEA zX(il?7o*DjBCM?NiMXf=5Bjw?LxqNfatb@5A4VA(D%_Lon) zc~v3`!vGG^+Q`h(MOIi^Qr)c7R&AuHRTKlG43vmg6c|Ak7~}*+5pvNnsf`0eI|rI! zqQxZ%g1#UKqM~gr+V>yyyziX3$4(!Q<1}8n(68rs&N$l0A>?|#iE=npMNh@WFsAK!Bw*ZF)LGcrV4@VJwkGm-6|=D4*z0LV zPt&x{R_YzP^S5R4Wab=I}kX2fdl_flH7sU#q z!XTrlFqy^97=?)6*w$_JT83e0n!0Y0t9k;L;P)-E_8rEF6RVzX*>aU!cw05gKtaWs zcBr$8TLH|i#4Gj+SjE96Y=f*@%w~)3$lknpVkVQ1J`7^9_5gR13vJ7pqp)_{3NrWz zy@@(256Y7rJMjF6jV#fCBo(uSYhAZBhO2c^VZCp^#|Pv)ckZ0rheRkusP1AWd~sDy z7bKD_)3$;uw?5Ul!KFpIH-S()mf;V5v1is}5s4UQ@ z`lgBQIC=^{(#x_n2~!iI1S^$U-!+UzL(^22*`6G})5gU@^)hv+Isn!Qc8LKfS-D)o z4NR-!el^We+8?FU5o;xG{S2IVU}s0};Ok)UA!+&p)92{}tR=@?asteZt~t?NZ<-qE zDSeQduIv!m{%;(iWMUsLcU!euqtRCfAu@5>ZE8!BI1leZ#Vm5&lB!Z7pUV>~7wB`n zll$rTqa3l)tE|qnGsWRnPxpwmIrv~%)*iT+<+qot0JDeZc)mOLQm&r*FiCmyXgyQs zk$h8#FR`;b)zD(Whq$CjV_zVAKq zeW%l$`ud}s_hE$ktgn`ncJ!}KB|XPs{HJZ{qoS?jO=ka0Zh-4&Cz&*Ddpg3@_|vzn zQDW*_PR7*rxw2FX8E-Pg5~y97%a|@MYKCU0%du-x+UMFhhXRJfCJrB+1WTYw0`+Hd z$j)3CXC;@W#3?ve%!(|Y2FEDjlpid0tV|d|k~Wz|mOy0+dktfJQF~yF{}_aOO3n6U zf_WoE{C0*)WCTmk^s!hlU#jHXydHD>kJk@&Ln=OSkTQgjqU2mUTo}6R_?U{6fqO!uOip3(k z1WLN-$vV8+iN3(XNj+GAF%4fDVi~)bC8Nmxg9}wlv1GD$zSpW5U0hUCSl2(#*1*-A zy~n?wAlUHaR1tbrr9sH7JqV#>4sqxx1YtYKO1KjHNd*^&RS3&AWXVN|{ic($5Vvg+ zCsjzM5KC^pctJbgAGccLvBLViX7*+{ygplQpHRbJc?wgmGYck!FqO(78R-IS6`bFx zvV<$Dj2nZEBVjCKn*jbkL8gR?S=xo${hn6C>8{$=Y-paoZY~d-RV6^x>vaLE*AKIb zQ5B%@_$zDoA}b+Td;nG)Thy3viPj_xG#R**PibNda$Eh!PYj$CYHC|YPtQKjhNp+K zNhpy)LlnTIs|XRJkVTh(uu8n#li#@$tTL`sv5HyQczgl2nMpDNCnH@d3RTAN-n!PP zH6Ax^Y7fpRtmgIRmF1(A=Ca8W-U$>>>e3}y$D$BUsMNNY#iOt+SlnA20ZOn)6)k2P zIB+R4T;wUpTV}f`tYX%Yi?y4z$1fj0(G(WGri(ANej0wdUay0|IV{4nUji;s7mY%x zI>LKa$wh3Hg}DW+1VF2-q;R1yE)6XHp>Uy0vZ*k6Z<Z7|0YAo|46N!9^ocWbpz>HVX?LQNYT=6}6T`7F`l0R7kgW z>A?fzY;Sx?oiaXM`SkYN+s|)@2}D)xK}sdjqHry$z#mu&5Mb5p4hd z{a}R+uA&v6F=kLTwY`SAtXlN50hj-AMUk>_1Cy~{4-OCG zw4WsIlJR@J{{47$a&rCw42CJoR~Et*-WZi?j(Lh<$~tFT`N3tPzw zult>=(bbNBH^d)HRiG;0-i?1*8k(axq!OvQbi~IUK=?wnz}j&|xW+OSSZSK|dTEyK zJFM;5d~!Zt&ht}Zc{-ai%2-;i&XW$h5ak0)RQd+gss)#$a?;k8Rakk~l$4q)>{7Nn zH-g63TQRfZ%&pdZTa35c{Cq_$9Z9WNdnJpu-tewZvm&$ZiK=PufU&T3wOD1WwmRHD zsm#KwpIG!c7e^`{b+c~&V|Q?rj2zZ{k{6p|@oV`CrFKt&qQ9KU}L|wcq0d`H|w>kAazOCvP-Ik4opW$I&ik* z3&qj+yjX0CZ~k3#HF?eOe5To?7xG$p7j=Nj_i&C=yD~%SVl0basje~1d?e&33(XZp zS8lqj#!f01Zo8v?caVyh7H!7tLT^btM9(pVr$5|Zqmiywtg_z# z6Tlv&;*}gn=;2W|=!Y9gmm!@?`ldKgEb7 zyKxi2Eqz_Be1OrRN`yu1vRHf>;)cPvQI*S*ccEfM%!-(^qiR>7*DYO?TOUUU!>kvl zsl%F$7xQ1sNq&AY{LGV|eV$_DDZ<_62SKIsK$Ti*xpoen|E7M!Qa-CLSxIz|f{Qk% z@-<~Q6TS4Wxb*aT{qb-=#Y`9rHR8pT^&x{jyxIQT|cwl{<~S6 zC7Hv@7xU?Ox&`YqHK86dSW+x@F{@cZ0%P%Gt5zuW@&gH~ML#kc{-<1`;;C07EP96T zQBr*gRe81>bdL|xWSH&0b6MlnbUWST)9G5OCI42NP)6qHYMq5hsazHT=$p#Afvwwh zwRYBhJW`h7WSdf!xjcE##nn$|-?L%&a5!{X`C>Xf$&2YJUo2iTmQI;4ahFRI@*&$J ztmSgBh^+I*!h}M>r)!3yXt`KLO=#KOet91>R$Ej}>Ct}Ldl_fXvt;0&TW8a=&0=~s z`N=GHRhv@j(vMF(H(akkT&5B*R3+;XU4_O-9M;K9^{+laxor{!Q#WxVu_1mroeS+wXRpHwy?+x7ALIgg&7#1cN@!!fV2hZ zvI3u8CXiymrQ?48OE>N(=|SqUjwboppUL!iyv8YDEQM)<@2b9j#RtyXhxKC7A?niz zjatzv%j{kDDH$Gi-?`QL%f-2cC=tbB z{H155Cc6w-V^k9cQsF}cQSU_$T^^$BA_PNYa@B5!~oNYc)kH>N5{N{f-$2muzRPIhx?v}?N&{c43^I3|fsbdmqnIZ+)lZscNFz<4K>oFJPw zea2+E#Zp|yGTx3YeJghy9}W$58@^vD*Cxit9y4PFSOFM!J)OHY5^M3B>}0GYWU%lC z+d?YCm1M~XkZ?&?w1}oqV9H!lG{+Y&*D_w@z>%0Q#0l4Dc5c1oWwKuQ63uXXq%uBH z`Sf~)F&7nhBAf1t>;Meb+HmjQy~CgqfYFFfHzo!sOxJ0hnyECMz7Hcq9 zuwbnhbFpB}5w82WxuOEC#m}%3s(w`UFAf6BP^HxqsmwGwut;UF$Y|nN?THRSv+4;y zK9EYVhCK`kGno+9ugduNySrm!cLj@FXaFCyKN%`Cz(~w>Z!WRqxNlL??MI*lZ7KBX zKR0{EN~gghPKcRH%9v|f2+O8=SaN(ER_A1s=8t)O80oIhWWv_^S+0#$YPH758*>3y z#Wi+gIw0plu4ocrcSnoEbEyMKQkwEJB*okSszsd7>g3nCRjBFxcGeP6{Pgq#bh-l}#$gUX+CBOtX#+c$qVqvuAdMyW_9pm65UXqdj%T zRv=9kSc_ETlA|F>6c$W!!v4cH#yEL6p{7a=L8+mXzlXgaXS1+2{($jfH4N5fcmE9I|WE0xCUNl-~m73M-rkP3_9 za|k1eG36uc3f1geaYgQ$LR;#ED3I%Q~sYzT= zmgw}bP$gLO!p-Zqdwm1m(Y0O}tL#sV*SfV@5L;%npobAAW z?LM1rZ}Ku{Gn>O$6Tg1_eN=8&E(nqt#;c(hd#!*=Q!N<8S;d?+e|)Frtv{ehyyNOvdpGQnjpCKg_7+cA(` zd1mLUm(N0(@avzSU&s7Lxu#=FU5ns37c45^k}z#Oo%^&EiOfTLZg9?h-e5n9@A+_b zw*J9!yr&YY=S3m_OQmdOmFF(84rBDy!;(Ty4pdNBE{&C9MOt%7Sc|#nn2UimZQI$M zJ9nITcK!PGkhT8&oaolPky^JtIaSDnJ3P!tfeF=&YdHH{K1M7eH0QFR^XI>%y%sJs zObZniXs^ZN34l$F#lYp}7&>gC0}TmQD!_sa7NAloaYEr@4dhS^IB}_C0~cRizjFl& zcgO8=w_b0Ib?Zq*#p^n7G2CX%LVs?=0gh08gR|VANO9xF>^Ly<^SL4^~*s z_jnV};F>chI@N(65=;3LHBDP9jD-zSlz8DJtdyg;D8|;s>sJnl!dQ)Wje5QQsC-y` z4Mf8cA8OiJuPF$OhUv(q4DCSg7cT6lk+}MqW-DnZrRHt)N@-P2fGZZWZDJ{^m=$xJ z|FDJ(mQXn{N4SWk`f>Cas8oI^LylK>4jegh=FHx`d&6HNE4A(;zw8g!qz(8f40MkIRSiF2WlrsEoyWME`dxrO^$#-Tk#ysx5H8^IjO#Y|z#%V3) zg45sPakTxp*ylzFD~+z{X_FbzU`3)ahZ#>i@E!`5rLi1hJ$0B@h(&K>uSbRy%mvwC znkupa?H;&XEFL`tun<>c5G^Nk`&gq z;;ExY*Av+8uns?pm>hw zr+KaCs1UG-#rk|fHg83u#3F=XMWR+Lz(V6A5mX^TFxI9<=O{%e#kKkT`BmrPg2hwe zDe+FtAMSi=Z+*ozqzSeYWW4h!v|1a|P_qpdXiu|+6shLT8)N}T4}y>!35W?1jz})5 ze-KUN)+rb-N~}3-EwN;62BAnnE^vZMi&W96bkQv**PJf`>Qor3^N(^fR&gSV!Z5zT zgb);zkufhI7Fr78B5WZ@3JJ1`X>5WBK?r1B8DX~^f<=}TNns_#dW)nP!7{00VP|Qr zkKljKy(ee#XCwH{&bX_|%>Cv+bM9Rs;KR2Ulgav~qf$7SjH7~Z0zZHLlp+L+&lfVv z_g|W#b?*YxH7@@7qQajHRzPR4Prvl#UsLdVxm=1>^84Zf?ilfpAoXO+3QlO7CujHXA3S*Q=-?q~VcoG#*Q?d6 znwCqc4_g@~r8KKrNt%EiKOiqr!-}QG67Q#+APK~Pn`r|Iw;FP5Hd4Xr#>)fHY8^gg zt#Y+q&t~)ayze@4Fe!$#%*wPfVD)cej3svy2M`U7>w1x5BPRy}_wI{A30r2I;G4W>(@Y4YHA> zl5FgOG9k-?@k1LtdDA|8Ls~toJ_emp-oMHvh-Mx>E@d(XTVW{ny{bI<( zLkW9qn85!A`Kv7D8kmk!Grtba;FGq^BFqE>^o^i#AOfWWc(wndaWKHJBm!K z)Q+^Yd&UZ{nql7h2p)IK0clOKs>NbSjEt`4 zUS5WX6=Y7R#;3=p!_(72*(0qh^BJ7v7qPybBBH}LgUXW1y1E|7%KJr)sFPOw1O7k; zO`-WnNN4ktwxs7{AXc2#Y9>x)*~{bE2*mWhG^q)ia$ z_hBXct|(4A8p1-9WFeF;y?%sGP~jci7B13#1NbrD=HsL1mH{z6AFQSE34MF@OdS zrbSVVs0hd75Z0v6%WWcZtd%O2R3WsL1MxDh%$ALh0De>ba*WiTryqXSs<@u;nOj%2#LX*#99~CxY zB)CV&!-16HHtAj|Xvx+fvF*+W6;?}({?SQsbTWPUjMGAEFLmb16GJPB#!Plxce*2~ z|G@uqOcQIU*M6)ZJu=}{=cpJy?T?-n+~5^7_)&t>#xr|MGc8volEmBke>h3~sT6jD zwU|2=n|s~H$KFwbuZJ&o8$3WMj%oo_^Fb4q-=W1HY1LT}!DFh4JNtZI40 z?`={hBY#LMJy4=k#<3rmpz-^^`zu&-$m`<$(X+|@`^TG+4MKi-h~B=9SRn|b6H*Sz z2Hzp+mCJP?(z*xg;(2TdJ{c&m0CPwE0q!THj17By zi_4;eP$(MaiD=_g+D{|^dzesws(C#u^0b$)H!mi8uo~C}mP=Q0w7b89I4F)8CQtQS z!56Midy%43;Doo2kNdrJy;;56*tykC+F&JM?YAnb3hR(p$Y7a#VVye21TgQGMktuj z>vYVITc65uZL!*I@v9Mouxi5m85f00TWuJr-L5g5t}0S+>H-C)99B^Z)ONiWi%j^& zVfleqURSlfSjnVRQ6PCbv5H!4)t-+>hAHLmq6vDqVM(|~_HwNG;_XM4y5WjxFRX4* zdu6E1)H2cohpED>+C_>+VN+z{&Y{|aPvv@ycCgw)#R|%~b@A|vUSVFfTT$T z7GW1~6eu$JTXdsUFroV;Mu}zy>t4IDeJeVu7+eL{&zNj5atto|G_nDB-BAS~Hbdm^ zDbt(Nf@-QE@z+8#i`7hY@pR|Tk-NrJ56|!ZBPy#Jh0U&%l!o%1lu4)z6j)+bG0W4` zU`Z0(HXs{XSD@T0eZBvVtEL;nqKRga??jR43Pdo8{2iMX>*0Dlo8|ZNG~a{O$Uuu& zm+aVXPH7s0+gi!YgP!=P7v0UEYUKFuci@9 z$|dzT1cdyDpUx(F`y`)O0!)kwpW%iHsGykocBx2*4~f83wUglM^#m%gPz4q;e*IKG zpa8~(v~}}}ET~S2^yX#x7@_wmTD6}_?+ks0QK**=ELOYTY}e)D_54Pyg2|FqixZ{s z6kf1=-vq+@;G8rBXj}VR5WU`u2rL1V>j3_(R5(+WNOPR9@Rp*Hdi+Pr>UfRpFxy#a>pV2SE%Ofpj9 zHfvBNHV_Q|3yRu%UWZZ@CRMxh2GDK0u4|<%(afpu2Y;-+ipb zi5*VtyX{mI#oh7kA}_|M$opwd?#pMXGUXbAgWZ(T>~uO!1X}``j7!U%EyHG^m>VTR-ZU{u%!J%cr0 zEanR(lhh&OY4Z}RDU?J;ilLmKSlA^Jn*=YTID5AexbP%`A=pdB`@FtG^j*! zTU3+SAs*#o)@HsDdJ0DE&~;ce(t{(D6IoU!(6n9L@ieM|1l@AsfRrIgnh)j@c+R3lr@q~mFtTRw8!2(CbP?%&m)}#`U&=G}vkvQaHpjd3=N628J zwAdlBTFDc=Lf^>BFjO+pI`xo1nZo^I)z>8mvaou2uJDA;*Ml!)U3Az6e^9+Og-WVt`T_B z+mbm^0#gSK=F3I)=H2AzX!Q)B&2;qc_)&=|3_kA)3nISgD2BSFkSP@&F!7N&1)g_m z%nw%u5f~E&a$cQ2b;5F;RV*AEsAVCFniTx1;{w7Nyt{{Si6-zmz}N#HPR_?OT z+A_B~omS(?=U1P3S9dfey*<7?S{>67do;W-1-CpAi5*<$Tu*9B_RtF$&Ipu5V!v2V zr&vW0(#&LiE7hfo(`Qbdv{)zq2?6pCf}QvkEW4-r2zz2kA=ECUHg=!w v+B587?N^;?57=+2I^)0o>%ac%zbf<+9>n!ouU@4m7>4b(uk2hix!(v`kb|wVV8Ys~f z2yPxQm&wF4PrmtP5iJ6wRWTd4nbYS3j_0tLJ9*_aDucD(QVf8m@l&VI5L_6)j6WW;`_@@BNDbp1g;04 zI;95|V;u&*j7X$tKvm@HH&zjuXG*0yA}Zu96QN_cfzFf5a@UW-F$xi#6rnElbzT$) zohZy4j7?z>Mjq5~(Iyd-B$<~fJcWQ_Z!{N4l}9W}z`wtzd?Y z>{-ORw-eOiYm9A7@rVSQ*|SKZT^Pq{oD)GfBQmxK&n?FSazZ%Ik;@!hCQMG*7nzt} z$vHbEi2!C_;!~cmJc&_b-y&0J2y9EnW|dosWrGyOG8PgEBgid+Q(H(~Duph$E$tuk z;zVmk%&B$uEkYP$9W-QRU)yKum=$y=jPNp`xX&Xevgz)mm+M+ z?Ls86Rw76xfe~Q|TZ*K*TiHAjg-DuAXRQ!98ak1-(TTK;XNbgD!I)mOGp<}SmAz-f1opCqzg=W(3QZ=~~uoCBg-ah{RNI$X1I8 znF?(qlS(8{ge`d?Vi8%2fY@K!EW*s2K`>#~W*0)}Wy}obz_M7tijy|yNONpC!xLz) z$kXUVI+0_c6KNZrNZaT{+D0eRHad~E(TTK;PGlRujYd~k$K+}>nn2T5k-__3ueWOK z=j)#4!`T3j81;LGZx`(qIqPXkr*FNI_m86TvA5!^ts)n_N~CY1ad&rZOeQst{#g-~ z^LC0%-d7?cy>UG-L3-5Q!Ro*#V>)T2$j4qKa;`T@?N*=tS-|3F(SYB`yWv-YAPaP4GO3i zalrNG0H5zjC)_AJnRk>^^( z@#cld_!6F@i(QAlyvV2J<*h_8&<=(V>qn-M@kAq>%gpf@miSx?Av2lc!hLZOb8m9< zgUF!&FtZOfoS>(ZX8iR}l%r&v>Ywb={^BB9;0&cmH94N&j6PlKm<-lHj%+vk&P30bsyO_5&X8|cil$40*p@8?9t;1L`zm&T?}wFx|v)w%l`b! zZbWJq`{8lqbJ5Dx-TLV6Y_RgU`yrlpqr1uV&By-D?F0>A1mIlcGM9wyQlv_o{`vXx z`Kj!Fx2uP*+x`k2g!2&w=wozlwzd&V0fJMDSp+h+t(}YL!RmptWn?s~@(SJbPd6A$ znu-_*>=|M$BK9CsP3_+<9_}JPt`pG}FZy_jNDd~YxQESV@vcNBMW(M*ZZ0k^s@>7m zvc?ZgOp!kDn_giuK^vYB4^Jo3Had~E(TTK;PNZ#gB5k7+X&W^WCS%xKB9}896E%_e z)PfCCypD;Q2rLT_>FW?-2?H-h5^}&Urc!KTM$+vfQ!Yg+@1Z$pTxb|X{&>E@=84bj zISz&P@Dz6!!@`E*G2&Q;Um7k@U~IC$cj$4>BQ(s^_q$(*+C?3oh+276q~0*_=DQKm z;cftTojK=JJ;fu_9(A}k3_bqxB0LBkY=bU>%nzd=$kfw4>dd_$^wJj=3CGTG@$;Z4 zH}dIHC|hg|uv@a(L!%r&2Xp&7c{0_>M;xjLZEi;9HKQpcy8 zTINSCD$>aL`8ees<~H6P!mu$Y$_vH{-}5!1*o>E9ha&N>o5=tEy4w76=;x0Q|KUd2 z^l_m#{NvY6{5ib;^(nmA%Y0-2c=lZB7ni*R>|Hw-W7!xeNkw9=)|=#}n}?m?u&$%69M z(;MRXm^7)4ygL&Sxqu;lbQ>Lnjsguhw$VII)bmDO(M%*^a_xr?)ES1}!oz=pMlP)w zKQFviGZ9iMOr=%Jem|i2Z_I=5q0iBfX(N$W@Bv*3k6($1m@ym^t^E|G6FGJ|k+$(_ zMVN(+NQCw?A_U7XDxDQR!m@LVkyz?V zI283{=TbL_NTfVPYMXwR&a6b*n8|xK<2+`GUfD(wkPL_uS$wA+Qkmi)G#`E~ds_vr z)ec5;5io4w*&|jrA$B5drxR%#ok-j0MA}9t(l$;{PVg!?J^AHT{L5zbR{!_uS74&F k#=AFfPmi6GU*5d?7t8hpN5ue1KL7v#07*qoM6N<$f-LsxQUCw| literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/snow_depth_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/snow_depth_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..244ecf837d2eeeb65b8351966a408039174e6362 GIT binary patch literal 52588 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_card.png b/application/src/main/data/images/widgets/soil_moisture_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d453338bd6bc39a9cd25ef49d01652b0fec0241c GIT binary patch literal 2000 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_card_with_background.png b/application/src/main/data/images/widgets/soil_moisture_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..88e12deb01fbe468f14bdfbd2a86fd63b87688fd GIT binary patch literal 14870 zcmV+xI_brUP)DA%i+1lgL z+vL(yM@Hu1+(JA$+~w5V;nd>n&`?D~+}zdN=FvqzJV`-6-{RKc;nX)ZGTYhKJ~=nm z-_PXW+}GOD3 zPUh;{=Ihww=hxof*JV{w=I!6&g+J-<&@wPC=;z+; z^vs8EX<|}Q-`&;bSXD?=K4^f+jC5?OqoR^|aOLIHq@SIcmXua?KkM+>9UdF)=;tOTC0KYk z;_BS&@zkxroTD*Fp$Df3Jc7#<-V?Kg`V^?iKI$gwMXkS!h zLcX!BQd37~l|esEIqK=)thLckYCfi@oYwZI?x`wWY+y)oh$W z%gn=zsCmb^vx)Z zn9h@-&Bo8WsC$(Us8R0 zNq?GgjeTC!(#x{Qo_&ILTzJT#xsh>dO0JTLf^KkilvQY3OwP{Ry1k*e(VmTVc5$Uc zMPo|UqNk(PhP&d=iH#o)=gSiZ&@00009bW%=JAOOFx zzpt+#AjUJjp8xe0=v4?RMMk z_A6dXX;$4=)jfKaAJweuu0yj~Rn55@K(4O5qt0vmREI)bMu^AoT80w*8z88kh&3EZ;~^y= zu7@y-L~;bVxB%o$gew=t05T(Fj>xz|ilL-y+qs8OlIJzc0pUQ5KpOl}iCl(AQZHE` zbtq(_kdzWqnjp!B6EWU0fPC^35y(Td70FUx-cjMNKvZE7)_{fks|7^$W1Phl}Pel@_!(7_^?TyHk$(7-9aL8<13_)%R)m4B!E!Dr=5}k#9)1u z?vG)K^`RaL9i6s?hbzhT4Su+VapWx19OkVA5`nhmh6C}el+=6r*=dbwOq zCV$}gjtIFj%p+&s;mi?3PzPD!#}j_2qYt43mPR2aVg6=-(4r7X3Q7cQ4y%-EfxLM* zl7f<}cKP}uPY`}J`_D1+lIWON_}Hq=LC89kPMd}jqgasGOaerdvTK!RD#-?17Sd5t z!jb$w9)BW2F1~Z-iyX7rYZ6yG1cOd1qhn=`#bNIaLJK2Gg<$~_Bs^yS=z6CLjJ{*H+r<(V?#2>c0mVKH51ae>VeZi_C4fA=r6hqv zI|oJV_@EAvct`Hz;;ncbP_R#+5W-+!ZQI`P(mX7uJ91(*v@e-?%S{(@wSg_zYNVN3g2?vKs=D)s) zgb*0yKbHIZFOJ!DPKM7Ugm?tcrs-%(N;HpM53=3z++xGd0h~(YcwwzjD1%bd+bP)` z4krowyq`ZmbPy=m=MEAxOoA;o5i$T7Z8n>cNcs@X93B#`jus3F5J<@AR;$xEZ9ks2 z0ps6QJ*1&SEzdt7VaZ>*>@Gy6IE>@?+9Iptin?NgAy9siC*)<*y_1QK^77!NxnaS%it5+KZwkx0&>p_0k{nRq;&PIn=i zrMf@>1CFk)W9f97DZ?Y*>zDbQ=sC<0-Ec*1#(&-|2n4Y`g8Anh9I@x z*}-8XS=0{a8^nqs(NXK^4KxmhY&JJ@(^=B{14NYdSf(<&gyfyk$&^3c%82p$4i zmgm~F!`QiKji_}#ilN{4dPyP>cP2hI6e@S-`vVSSX(^&x6_PA1FC_*3a1{Gzm&)#9 zj)Y_+SR))E5@?hq(S?DKgDKcI1%j|x1ahnixjO_31qe$vZ$7zrF(Aqz6gWg8XT=yv z{d~b#uuapf&i6+IVwr)0Sqxw(gQm6w4VrfIfMZy4N(ew+3cVl1O&?m5WCva zQZ{Wn5-Qo6-5&~CjUatlBT_RAyIiZcwAAWLO1(d|JO0MPC$(ITAe$6Kjf9VR8?aN& zUWZtsj=%zuJOgeg*CK|@oH>&QGIi=Ruj*NhTPhNui)Q}Pomk9Y*WUd!e`XtIgdn)J zDw+*rMa0TmcBpJrOLapJXqL~?DmAm%UpGoYOr^!rup791BxofU;5kRQl1@cFw`QVx=!2a17i#U%F9@cOYx8Zm5rYqqWda;8iWU!Z6X z8^wrLtlPnc84T)X&9@Seqm@8G2O@~qP>3PJ=lo_(*PmDk1yK?(;J{gtFD|)I#I@{4 z1Q7>r#XXnS!&JRGqwrD=OakDYQHnf zw#}Oz&>DdF3zlhE1o8RsQ9x!5ns>T&lj?;7kWmL5+Ev1lZKQ)YX4hbG9c;3H% zNS*&)YHMT2j2UBu(xVXECsN||Ai}ks)__H`WFk+t-7{MS5(K1V)~z5Q4MWGusS%{V z;CpA(fCz{2x>q1af@bXnR!CBvN;W2wNgSAt9U}~W=5Ww`iH{46^6+KZFdjJ!3FO0v zhp*7X_XL?Y4-QB`8SCy?s#{RNfv*cA%P3x~n#HiKm9Rz}NEmlTfJE|Ui6FE_sz!kz zcD}y?X!U4C$6D#rw8WsPzj)DW4EFW*CDjQrNzpZysDt@LqPc%`KIRMx%|qsnw#0V-Bjx2|K@+1_mBIx+PZdUgI#5DEI^c*lljlC-P!?4M{~-X% z_mL4m;6Q*(!^>pE9Nx3O-X8y)9NT5#Ur#Y3)!yC?M}}LyI&m($UL@ysCo-}vQ8#Rr zNE9RGItX$z&gBsP$YhcjaeI5TJ&ID{R5;uwjG6TEw`I{HKu~?43J5zel5f+v$&>L5 zU6*6-b#D(o2nWA6cWyK#4hOPz>((o|bH`oCxy0(#na)mZOH?HiH4bqc;BKb3W-<&x z1R(}WIfdKW)-G}&I4?MoMFN z+>v-bD99Y4NPviA(xe{mS7$!UmoJ}74hIs41OA%6Gj zMo2o~SkQ?e83kd<@pHMjK<2b#Yd(H-BxLx@5o1Ru{wl09NCZOP$v;r+&p5_xpXG zKAFzX=IHE}{$Bk)-{)WU9VL-a5s@fHe*H-o^GGD}>EmBdO-+BJTi`3BJ#-@svQQr! z%$NkoiTCdbWN~&&LK+o=)a$`fU$4J?2FMx>QplvF-6#oh1yP2FkR1*Z(hRw9?%cVP zCr=(Z34|4q8Ti*P{Q|@kL^K`WN}_-=m}KAOqz4DMkSV}Dy8+>D;=-Y538fLQOD6SvUdIqj?Jf$9z5LD)7yKr zWDeh?5`pYUME^&^hXN7HxpP2n{V0@QZ$wCdM7~rB4u1XRr!S;Fov#aIWJDaP@+y^C zEmxLOlN;+B5AObT7s&nf+579g)!I@ywOOu}E3t*zT4Qr#ZT0Y4ZLQ84I?`LKpE+Nv zRH|pLXHp9bYmHc=TC1*(EY->lsiP=hI1K9nlI=UAI|C)u1IX#qZ)#4r%uo`|jbudP z9g#co>>(89aOVp^M)D*h6-lL%o7-Efo2v`YZ$5bcFNW5M`|FEXsz>wHdaaReR1VcQ z8*BaRwT|`L;YLjy0y(;IzEHhhNG14eHMdqzFRa!VQt?0Hv6wCZyP;UHAYrQ^363zd z-hA@|&6_Rb6O_atZ4nC$$-j4vznmK5aGGT-1Cfd(lgY+Xqq6N30#c>A6+vRkBbuhW>nQEd@O)OOo zmK*izX1$uzt=|#o4F>L4m^{ zbMv>L+=u`P3{Bge-@g3%>#x83_WRAx-I>5_7K(EM_c1qbFlIX=6?etMz(yHEIbGAnNda;wjsyM~NLDr#oJ~a{Kme z9MbIL<4CXoi8N6p@;?}F?d?<3)5RhikVit20`W_tL29GfJ|OCd%BG?ukb&T!(Q(+5 zMW0z(YCINVl28%XCPXzjCMVe`K_LRU4dgTsBokuM>DM4ZV&C(rDIjAw43fuT5(mlT z*>3rg06Cilf+LPYwnx+?6vS3^94HjxmTZeaaCk_NK(XX-Xhd@JPjdS$=3j*ng^&Qz zcu6yaNejo`c9G!Fu_Zg;0GYLdm}6TMNWA}{f-qqveDg*F0|yZ6kzK?bL?>m7I@t0N z2G}|dByMO~Zpc#yii2o$Y|-jSn0`mpp%4wu{4|gg2GMQG$bc3^HhawchY~Yva$~{uJ)S5AV{*V zBnpx3c-kO@%_@id=7MC>xrBU59-Mg0BZgIg>~e|4x-VXw_7WgSZnH^gkv^ZFn;0Jl z;vQV*;Sl|n2M8M!`U41(wosCymBb+V!BniDRbgioh885<1nC_~PsR#yznkWUx4?ig6(>AbSs*zBNAVvSqn1)(AaSu7TNR1#IkZWpUYvVCuc>?QgL9%7FcAUF(yM5ZkuNN^a$ z)ZP&wt|B-BWS^t3W+vV0e!@YntHd2RpTNPf@V&EV7Z=sBxLh0^?d~X**jh;yNRtD_ zzI_>cbtmx!kq2WKdr5$>Cbm!wntgmmhn9CchnHmbW%7(mAfrH1KwwzRB5kxX3xu$c ztXzL>A0uOHwr~z41jq97*yxp>4zBugIc?)DNQ4(E5LXm^kzE!Z%t4S~;TH$_bNKit zAGDyD8y}w;8Ztkr zUDRTv38Dpo;T*);q#1%lb8(6YIIkYOqkX6$ec;ae=t{fR+R%@9xFrPx=N9g?!R7G&Br@Tt(q0j}V87rMnf< z)5m2{BtSIwkwHR}_!J7_c<&hRSa*&UvzB79xXjzRc_i&X)Zyn|7`7d4`#(s?weN5Y z9hZs>n}eYhwwS7s^QI?pVa85P!#!ZcB*Z~p(+_QI>28Z@%a1r9y}dYqbn>q~vT}nb zlI7*u*_D-*W(ZHq;}hmN?xv71zIb#TL?I75b^)1@#`uI;%Ry#lu9`#ESAKeszXPy6 zr!=U34Q2qNgh;!42rJ1xF9niS$LpP)oiE@Z(^)brl6)p*L(7g*w#SRvQ1Fu{4lhBO z62cyrt0<@k2a*;P{2Uq|2cnLUAYspmL>-fpd_hkkVd`RL<6fRnk(G@5oH%;V;&>g0 zK=d+cg!ag;kU~a#Lq+2%$LN%>AFO^J7hW5lc=AjtulZZ zys3-Rr;q^2GW3(G%oJ97&t|tAqihWH>UatX4%-3Pr5rH^39N9`MH1tE0D^?AwS2cP z;GiD+4;*NbwNM<#9Yo}QyXPIS*o-5=VLK!!Borp1Q=2QvDS^nmqgxjlSvVA;)3=18 z1dtzOa@dTTHxoNb59C)>5ZhVM<@ep|h{&NOvoSi)V!IDPa z^0iZh{o$tb4@VvcDNav81KB>9@14yGur-1R1!92Rtt-h_{&Cr?Er-IaQsX} zacsLF_ty-p{Rdj+bZI9vyQ_yEsE&byztY;O5YXu5G33k z;~@6VL`ETdb?x?#%vW@cA7pN*M}c&81&EyV7cdZkaLCn~=sFVSj)$)J>|YS*;EDnX z*By4fNvs=VJv51=IGqAw+um$eAf2uv9~lG*6u%uw#x(tV^s39ow^0Iw$3W86)uV4x zDrB33P!XE_GS?_fz%y*)_YhYRAV_vgHO%p(N)ic$w1#_v=Iox-k`OAARLDS|I)D%$ zd@m(xNmCSsAhEfqKgaXAm-UnY(X)ToM-M{|9N2&4h)7zFGxHw*@c7Jx?SB2>bdc@Z zQaFI{W|1`gHV<(Qf8=Hi=em2YY(XM2Sq_XC1jM^CvgDG81EVFTltCaV!epdZlkT?B zO9BK*oRSOx=?akj9`fOkEb>D@wg#$745ALH0glJ`3Q-$o=CG+;I!IxBzSMoC=pgN~ z2wOpp;UETybDD}1JUQul-O8qT|CG2py~o_J4H6HbBuF3w*{Klc0K(>kd@<8EQbI=!J;upvn0$U z%@C1v$shzG&F&pkWO!y`Zi1f-Ee}zN?-FO>$%#S40mC5HLQg*V6vOXeiLvD&8M!3N zE|0Ni2jN;o@4BKcUXtbq4nhl=B-#vd5+EY!?-GX}S~Q747*z9@=I7?;uI;hx*8FQZ z5(FkC5gcOWGiGbWL0VfGTjBsRCFhW0vDtBD^rMdWLF+K0l1XWMeoA!F)}m;e=$8mJ zv63W^fMs1b$g3~E{3`vP z%ef0EgScC0lLSbggDeYVtJR;QL&TvHo11b{lRX-3mqF&?9M9>t^)6llm zUwZi^f$TrYZTvrEoK0wBRTRhHHXp4`wbrRxM2!!OCQKSf^Atbm7|~!-iP$29QYb{) z(WaZMrly^?3%eRY&U`nvk(_SD-^P9uoPT$Ck$9945bU9j{kH1@61h|1D&QX zFM0QO&*we&y#dIrWvqAa#wooV+Iw)-5DOPEwlJOmgc50Yy4?$SJ2Hv5$cJCHj}Dp# z-Oe)#LIKEU1i9!QH}{XUG(aB(V(l+UC}_4$m{D*x9SJrMMU+D|k_JdVl^UP->RWL1 zg-U&X#qyeQ7>IN-EW7A0Vp*cWyta;cJ6B}*6@Z9k9bt2u(tPh_6LAqWEo|Cz*PC4} zS0z3XCU_h(4oXM@5D{<~h-w5N1uv6YT$-v(EzPbZdO%pzTJKl7WYn`w5&z;EwQYlL z^^GC7V>$jFjyUN$Uq{fw<&WH3R*SeEbw8F&J=+R45ScX&P)K?}R3S-#l(M-@abadb znhyyBv1KMzqAeK%5fc3sc4migFM)x?;tKMN-C1PEd($Br^xJxmVHam@M+wk!3z3A3 zRK}nZqL@l(`P_O0iGrw)Gzwm|TF&N+mATzLoGj-W2uZjI)HxYY0>iPx2jTAZS+m)} zg5eE-G`SCa)ai5;Y5O%=)-<-`P!@J^sEy0CL?t@fqsN-3Bw?6kh2qpi8wjg&2&1K- ztfle{T1Bs1E(iI1@o?|vh`0ht6oe~3wi(bUGX*miT)D!f`Vp{osrXjpL7{v3(3kHK;S(TqpxQ#YsmTYdo&wbBW!F44<*AXXAZk5%<(I3iHJ! zFPqExso7h55561)39TL@1qi!J=<`~8L82E^V`3mYDr3NKM#J8w_R72J<5vL!>F7;H zSd3`n;S*UmHUXkq-N9)x5KP2F`~U5wW0&Y7ng!NQ8xP-Hm*{37|KoM1GqU5So^b?bI5Cs3=7LLmDj}IO^*!xRC z1{5St5S?gi#wlhj62(O#v7v!00&=R(;995J?d}{wo>CC(Dg6+Fyelm&ZQB9lOcfv? z7%R>=U<72{#&Tyc3Y}o~c`#~Qzk&h=>sS4VG7%*&mbhqQPZef%&;R)DXAGMl5K)PO zAoLPtL^$Go(LuS!aJ>JDsAOM2PRT(QY1=~)XtV=l8Xyv)&R$iJ55D+GPU*t^V;Fc_ zlo^lj1C&*Q!+7$^kOW6Dbt3u}gd3=~tlN`)L)ikI^X3b)>Exfk{dV%LOuhv!jazgJ z#wflSizoFD~w`meoDgybhwa_|ccE*9jtx$<^zc8ZSbSpA_WEv3tCxudfMC22Nht zBX76V)rp}mu{HV@JF5igD964$ur&RgT9#}84H(IBEGBl=77EAlv=XD|?u z*}}|ts#KV}?-iFCa|@HRnZk;B5JNS@-MvPGq}y?GJTWjb`Zkkck95)P27-Xx!(By0 zJbn=%&rW|x7Xe6rqSZXx-fp52Xu~+WZY@9#l0ZxekCFfc9Pp9(d_KsG7iR8z=jVT) zkLPDo<7?r@x1dlpAq9@Jk3|rD9Up>1zOk8Y9_-&^es52_0umAEf`^X4@xqG$K|@Z1 zG)z>!NEiK*LYUn^0xxhJq41?aIS`4?kd^vuty&&$B)7ct+Y8IddSx-a9)&Qzk%78! zBoKmt2~lhGn{PPSoySFEe4gPr?m&$4;st6%?!}R~ND~#3cw78kW{n`d3Q=*o5pg79 zSvtx!zg$I;mGe)$h1-=>I-M&OSE6(P4A~$=LHtb;Hs|nCG-4oUG6_*H#XAwj5m2} zw@})s2FnUEND`_+M45(rG@|h$B0lmqK{~>W+%=$owXdnS3kn*|t)|jl2naS5Ub;45 z2~OR0AMeEzQAWLH2SYUyi&CVZI7$J5k3jZLYNhf-Zp;O~^} z&LxkA7=+{KAyH$wTPfADWj|Z3dWUoK#UPi?mIY*xASzLUuz5m(X)}hyETl>yhz4l* z41@7cUwrzZk`QD}&w2mVXRk{iUfhFMksnDRk;t}?Hh1J-B3y#usg6S>^b*Loji9!% zk%M(%TVb|TPWvT)6Cg(NC)Vw;mK*laTv);ChMn?B_wz65HeFtrv1C7L#kA~gUd>b#MZlx zYXZ}L`LS9PHKYpJL3669nepn?2?1_%VI?4FkZ7qu*@iCVV*(t7&D4G&Am~-2 zfVS<`{q4s(S}C>!8Vk`b`$>2!GWfWR_*Wz8jbqI7PF809ji8YaYB|rJER_A(U^2Hp zDACuMmIL7yRk&>>zQMMsTG;;O2dw+XKoV6dceDczIKQ-bVXAEB^tHRJeTH|KM+6uc z1i6$l$YDYdgIUkystrG%%4WTCt(Zwp=4-(^AO5Dd6NIKU3=DS`!xuZ74EI2ZLXvi9Kszn1C$aSkk_*@xjji?iO$9-sckLW? zdMo1i1>4Oiv@9T^ksh&YtB}OWxA`ivdASypysc!$Pp8I{lL)`e5M1g<7_^{ihGg=w zc4TBWbBE8jTJ5OG@S8UvuZ%t3X?5DVKmW|D(vGYkedpEd#@S3*=!>SK!t>>YucRK0h1pS)@KAUzlY_mS7+;))Oc#C;iYov`NhTi z_Y0d5l5j-qk2!@v8}tvJ!ll1NA;GZR&pD7SOK=QHs2GcgMy`e+5rPN_K}2Dqip^zs=05SxP0_3VJ zPh^xa1>pp6xD+}Mm%M$ZEh@!$GIc%?)K0uNAWfB6_D>onlq9o#5 zM#5{6gjZ(OZO2Wh84g6Vw#jC_zPptxS2H>9e5O<`XZ-@24{W_b)OwizY}gPSbYf>x z1n zQY9eaUK;!DHfe0I7>b&i^$G22y_*l~es1|9A(I<)@iwbrz z#f1c7nw!EVkS357QY6h51A&1_k)%l%m>p&dtp+yzb8WVgEwvQ?hpjBMvzV>6c!HI` zbIu&^s0ZH8n2($DJ74$Qb5F);GO=w66YbgJT>y6r6Q+}t#mbrRsRR@(;&UM6aw-L# zX6Qe30@PMT=urZS0MTt8B?6*G=yrTGqTLvqn!NSL&P$5|%l6gd;THlfS1=L81P4wm&{UEr)wA zEDF4>dwi@O6bJ;#PQpM?EN0G0U1IpE5r>1*bC52JFF^VbCc4~OTf_VU0M^=c^0o^gmEb@dL7XrmlXs%fx99qICfb+6{E zNN}~g|E>SI5985PL2?#ShyszFDaApdPI)9G+`^G{^IXp+@N7H!^JCxo*P5fTc zh_kZ}_!%G<^O=~H|C%sI1dgA&&n#xA8Gu;Q2@A6;I5hiGMKTZ^*LSHEh%y4gn!OBs zV@>3RLE#r|5@vT=fMX!Yf+dpZ6HaryZWoEU=$y>jP?E_+j7(tYRwtVU;gEsO^9a}3 z#zauWOC(%tZ=w#ObZukw3B+YKcy(^lFp0BiuNi>`&9@|eU?g27Fv&D8wRtvZ%9C}e zq_I*#p#;g@w+cjXs6-qPr)EumHA7__r{)KGie4|=z8q|VdVFbHFPnUmlxeueQkP+z zm*H6U%pAVEG+4v@X&;%g@Uv$6|Grm9q?_oBLrK#d*I%eRGa9dCOyIz7rUK#9I^A8@ zb8CaRTwh|TyY{Ua^7Q);)P>aZE?hRxKp=j3x){4eHUh%zyT)wS@I#{1)(^&^F!({N z5XYCm(iA}}17ezhAu-E^2WDtLk2VUD7(i@5ZF{R8$N^(rcaJT$V~lSR<4M zlOD8V0wjGb+HS>6$itnV3#tDJUAWjGMhSAQD6Yd;MS|i(7RE8wx+ydgX2Y=A^~sIc zEy%?}rxDrXack}uI+*Sqkw!Rom-l$Sq5WG{2E)KvT|*KK1psmpTjPU30gTgo5U!s+^|&f7~*X_5*@48lcX-s=Sj(0AW`^UYVE zG8zZWR` zX6YM$P5UFpn)-16czk@|IfRku+EDXQjVEqOcv}+}MI=>2+K?lSd?!d~OI^%PSr&KI z>Xy)1x&|aCmC?G44NKPX3PjT~75d$F_KODDN#ymlZ~No%c>f?NtM;;@YM^(UWrT=3ubQF0)ih( zJFm9Os`6IV6m%I-(fgR4l$&E<^5Xs**s9Fb&711I~8k^*sbYdhFh_4M@Y1!;L1n=A>g zFaEVUKA9Lq;ed!fG*{8hMxJ0^P*XLr$Ps~~FmR9`Xq!F$O1r3rQUStIR*q_NsfiL` zI2W1t{gIu#*r(=txNv3WXpfByPIkfiJN zw>Mf{Bi__iwA(?v-Qm#IFaZLB^MCyj0oA!h_q7NKSY?uF!8tsUgjqtO%Vl*3{bUo< zy2E*%M^zNxhH2u@%d_{>uRquzO%rHD`%ql{PYNaKd@QVgrTcSSXXb++iK@kH2iAE%!k$A3=;VVK3AiyE#WQ#$jurIl} zl}Ou4U>U^5%~Wl-bC`^a_j}c~tzXpnHBWpBL}el>A%6zxuB4V%Waog_Ej&Knt4AX$ zDNW)U6GL%p3gFNQm5))Z7D96NA%MJK7o*&U7nKAANWg?5k)BOFg@9z4KiBP8?YvDKoGVgFR z*!iT+8X+Kp1YnR!lGnZTwN6M9=rPKZHX`B<#OGSb3Jb~ zuEyaTKL|o=4S*Yu6Qzr4G9xxf8h=w^R?y{FUo;9K|upZn`O zTzB^XqAxFT4L%=!`Q-s4$z3>$BN%MI=K*jDuERgR^m@;PgLD_}qklZa&p$ojor_t9r(pigyi}*Ot7FY12c`IO^{Ar;=*~g+x2byEzxD@BgF|L zV{mPX@>rPBM&25?v~@Mi4X!=xHq}s7b-gsh=J0sv+Yke`#in&+y|LzJY- zI4)yQRPV7HOAWf1mN{}dqL16v1wTM(PGy))N z(#RTT{Ba7)1SfF{2f>zakiDdIHp+(8c9kbr3?v9c6elre0DWG4i<==8+>~Hx(ARlU zt#-{)Is8CSS@we)m1YWUF-W3 zAZ7kk3_~$Z&F=B>e!CPFKx~kN#9CGiBlw6@us32ovc@Qhg@}zGmZhC?gLJsW$lx=; z%!!_D=qa0ZZaCU{X>Oi)FI8b^w8QkV{u7C^B(ytP7a)vofOOd@OXD4d6q?KIT&P%Zq+kz436 zN=xvDy4yTOQHC>Hm}Ctx2Y$1|0M*c8DhK&vH+mURgEue;OG&^4^g>@swi&Eu~|N5))aFwLo2(A{KV87SlX^Hd}tq( z1IPrnK!AX|NKFPP;lnZQT1O)+x|)46&Yg+cVHnB3L&gCrO@BlqVH2Pw-5-l;nN7L| z+iZ0ZGy+I78#ozRBPL#$w?B20kJJvb?{INy>b{F0N8?8jsLdO=A|k{+H7EiJtS0k) z^n3b zu7Ui?ge_x$Dlu{h#XwaF1#fb{#DFoMjwWo|23|I2He2rhdU$yC+(2;I*v&JZvlIZ* zA&OMZNIFE^XolR9N;+5;{(sg00LCjQXIhr0LsSiTXIedh)Ed}5Q0AD zZIlH0_W0L7Dghrfoy?iZ#&KS@n+CeX+*Vh0;gi^>*S**N29{S7BF26ZzyJUM07*qo IM6N<$g0sx&xBvhE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_chart_card.png b/application/src/main/data/images/widgets/soil_moisture_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..b6ccec3e0d03fc86bdd663d2e4db45bd54c791db GIT binary patch literal 2403 zcmV-p37qzcP)&VE+!otG&`T67H<2*b(&d$!&)z$O!^XKR1SXfxBtgPGH z+wt-7At51YuUaFjvcin%~yl^=O0HT6xvg-Sk>`)v&Ozy2tL)($Y{+P)u&pOl{Ga zn3y*=H!3PB8yg#ursGU*(X_O*2B}`300003bW%=J&%Yozwuc-500>)2L_t(|+U(W` zkJB&!hGF1K->gD0Kktw(BNMQ=}XmZl+Sq&>fH_%d%2o zC~r7;s)Q8^86O~`a?uEadAo$fSzEf3!B{Su18j`k zPLMq3!VR76m=l3xi#T=j5pqCY`0>15LTst5YBGgBo;sNl1f-cDX&D!}<(Xp^M1UX5 z788V^5Y`r$w@Zk~gtA#i(06Q+mc;#SiwWYfxkX7}V>fHLUk4hv$DxO;?fmQ8CFGbL z8q#JQecYC!1sB5d3F1%LL5SPyXKT?|C{d)MY2%ElNy(ipNJE5_@NqiG#{jP7Df1#@GBx`KA(iq^ zy=-oX?udk<-2h=7NqR_aMu^8zcnGW608zBo38{4tQFRvu0lAqLNN6pP(E1HXg>#Jc z(;&JFA|*g2ddG+em$ok-fxGu(+W*AFT0G!VR**M2j{InOV z)q7l*u3YHjMM;3%9sqKf0dndu$nNo@$D5xJ_qeW#yBK^au>^-gr9d0=_>V)LySM$# zu;A{uz|{76PrNRZ6iMPBoN&NFa&Z(XawqxYkPoY=FK5Z=(bK)hop5FR?eXnf2Z@VA z4{6sZVu0r{|I?7+Bjo96@3)VpyTj$yvTKXi@8W`C$Px!aLx4O-J_qC}T+iGkc(R=! zt`{3zTk+|m!dR=^Z?guFs`X(8$hgKna>L!Y2Jd#K{qKE8Y1Lo)9GRA;-SodT&Tr}i zae{1z;gnytwipW@^0mD)(QOlmqG;PoJNv+}3}B~DT5omIUFstB|NpBVLrZICYKI1a zEshce2v~FS<~|lh_BI)JjmQQ&nz{B46~h;KyN!4=mDX6ld|4%<3C;Cpft$gLtba%R z^=@h9bpD=Ni|g0dYqUjQ1yGU|U5nhjam}eN$jfSiy}ACS_#RtsH|qsj!@?L!D&46_ zb33xQb3Z-;*tmte#pdnvCL*iFqGecAjI9VORM5GIi$cw!o?^dQ*Hv3=Ztl<$CjzO8 zxN{M#s$2H=ubTC0!!0Uquh*;BXiE{ol|*+h0^F`vtJ^=D*%zKCEjg^ad9;A=$FB;n+u?OZ(+wi5<>nl17G~ z=Xr#SNrDDG6I++${6vyp9u3Nh)XuvRF&rmAGBYQHClB$MIFAE}6~dCo7a^%II0j#) zlSt%gI!W4lG|X)(ta@Y-F*Rbz|2?EEk9Z|CSspELR^vRpBqmD5{4qt0;NUi&{c{&V zn)qhN3LMoO`Rjn2M->sK8f(OTBa8A34JtSA<3#(pjL!rd-l8NnohJB`SJQ}iPeSyUVrC7Gr+@wKsBc>H$vE@ z#ec!`j5kaL+7O;5LTiO986KoRN;&?IdHN^3jfPaGiJbofx*Aekh=>jt&WXW3MHxlT zol#_HT&xHS;bs4y?|@=BEqY%>Q)i=h-;6TAeX(i-)zA!q0(5op0_hfXwTnBV7yKfO z#uQg^S$qhAIMgz{QYFgRXcd=?P{`QnQmLItKxkMH<&L1}1%E|iSwa#GidrNFWdu|g zqzuED8EP~@S?NTyq_HeO!x%)P2mB&hqGSOpE0Lh6L?}wV^>ZQ=8URJG^U-0fLPiS- z%FqLzuoEdkse~d5Dh3!;L0HNdfs`yDq+nY~5<5jeGN35s?mhLOq(U#8-hRXQ*bc<0 z^~LETU^qhSjy0YTN0Fg3iVTfWWN3^cLt_*f8l%Y22%bE>j1SR%vi&^p-~xF1>?c`^ V?#C~k7(D<0002ovPDHLkV1gqBh1CE6 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/soil_moisture_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..3474fcf53069fd2e8448789617c52234986c9086 GIT binary patch literal 52702 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_chart_card_with_background.png b/application/src/main/data/images/widgets/soil_moisture_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..21f4e6b865f027aa5cc8b8ae5c981a2fb6b4df57 GIT binary patch literal 16113 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/soil_moisture_progress_bar_with_background#background_image.png b/application/src/main/data/images/widgets/soil_moisture_progress_bar_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..1a2a496acef959fa2262ed9b57cece16fc4da22e GIT binary patch literal 16369 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/solar_radiation_card_with_background#background_image.png b/application/src/main/data/images/widgets/solar_radiation_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9544eb55f755bc45f95e7506f28096715a4d0d04 GIT binary patch literal 17246 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/solar_radiation_card_with_background.png b/application/src/main/data/images/widgets/solar_radiation_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9af7b640294d3b2997e520c49923f7a29529a3 GIT binary patch literal 10050 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 YKjK3&KK^Z%>Hq)$07*qoM6N<$f-G>C@&Et; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/solar_radiation_chart_card.png b/application/src/main/data/images/widgets/solar_radiation_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..fa67b9705c9bedad7dc4b4bc2dfd3f7bbb22f8eb GIT binary patch literal 2492 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 FV1n!#PYM74 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/temperature_card.png b/application/src/main/data/images/widgets/temperature_card.png new file mode 100644 index 0000000000000000000000000000000000000000..b978b0f9f43f8ddb9fe6ce8a2e4298d4080b6a71 GIT binary patch literal 1982 zcmV;v2SNCWP)ZGKk`T6;grQ`GS^YZlj)z#H7SIaLiFOZOs zp0Vfg@$pP<(Pn05*4_2(?d^k_->kgqth?&4u&{!Hg1X1}fm0FE%X4#io zswT=dl%jR@hR8`LsKAzj8pNSE@d$>(7*)GVY07z9dg>}Bvx?lq;n#~&zmJRPm}C=s z^6X1WgA8oQFnVl>DvRepnNtjbeMT@KXefF@%3&8rt@iJ-rhNXe3li7&eg>IEV~? ziNv%|%`Ni$V^YL%G&Y5IBGFb%`%SXOmnI^dZG>URCA5cw$d-%Asr$TFD^>!*bIe5I zv5XLj1tN7wrAI_k@|w0$@7F_)mZ)+e?HLblw+onoF}SkGY1+-4&DWx>rgolR z{aEA=duFiWMht`Di!#Wn%|fw7jkU(TEOo($?fXAmWoM_8mRSlNN?q^=i6j4#lP`0d zVVC!ozbA5g&vYk*2a#aM zOUdeI!zhd$=lOJ9Mc=HXWnts;RnqslfR-9;=Z_7K@y6fuYzwXrew zH_Deq;Q6-m4Cf+D3|>V;LULV1P0l?O zgE2;~R2UI_sudl$#Gphf8>&cOj8?H%CRIPK2#eJc?-L1Zu-KNo#^ex@J(lUS*qXa3C#Z@GWUDsMtTaF`!5vwPVKW zqK!uW`MqC{@TUlapqb?+_5~3}n=sEJk}F)eBrNN(!vD+?nT;hf8%tz1mdI=@k=a-x zv#~^GV~Nbh5}A!9G8;=|HkQb2ERoq*BH!6JgH^{tC=72rs{;ygBY_}-1W5m&W9$7GO66UvtoRMe`%N2eW0Nr)BBCTEwBcg8 z48>-eA~(*(uMS^TTf}}5m^?nn%dcX?NC}OEc}IDhx+1nGkZ-&h==-QNk!*c@?a*S4 zsVZXVjvKl`r<_>qDw@kpDp#9?%z?6dwz$%alSXQq87hjX?8&vyj)lhYS7~Qax40Q1 z&dmEH9AIBbL@x27Z)k+oqZc74)E$>CA_0|pyZT~TO~le2UcJK>mQf^pp`Wx%*V05V z*NkD&H3WW2DGZGE@-37;4rcHsuDPC#|W_6j@-T z7AYf=2Tf5ZG8Hn_BT6vpxe`wGb=W~h%rPR!k6LF+LL^7|Hss@kIef0Q&_B=5wjiR! ztNm@=Nkr1XBmPtbHGZ5!Bn_DS_9Awom#Ig7% z5r4c$@(ALuMa(&d-{^rk;+_j4IMoI5LcewlE=*CZ_=a|K(kYB5l|-<(0v2&$(zs_m z0DSdHV{q`;%!6kFV%oPtLqSCm)}@8RkcZJx#P8^y6R$fbaUBtO+=|_8vZ(ShCcU~4 zv97Sx-FoQ28R!}P{h0e#BNEg}Uu<@xj_ZlsXp2HzBxO%KW9lf;G!B0&s3s!IA`!p2 zZ@13`bm9~u`3+F_!UK1MfmWiXh-tPwB4CpOYdR}-a*-~X-_*IDk65JwEOx=M34b2+ z{1<#g&c;XNYPFNd%jP+IpAL}BGInd;zgN38f9{88eKXC7 QyZ`_I07*qoM6N<$f+G*Ow*UYD literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/temperature_card_with_background#background_image.png b/application/src/main/data/images/widgets/temperature_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9dede9197b85100e786848de14380076eeb9fad8 GIT binary patch literal 19594 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 FV1n6-w?hB` literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/temperature_card_with_background.png b/application/src/main/data/images/widgets/temperature_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..094292bb2445a6cae9368a15172efabac963fa88 GIT binary patch literal 10328 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 DFMNLi literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/uv_index_card_with_background#background_image.png b/application/src/main/data/images/widgets/uv_index_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..8401fc459a014863556869f4ccd799bbc9aeb7d5 GIT binary patch literal 16181 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/uv_index_chart_card.png b/application/src/main/data/images/widgets/uv_index_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..0b86d637f3e7716198899bcfbc6561cd4ad647e5 GIT binary patch literal 1922 zcmV-|2YvX7P)+8b8!utC96;1mAqhFp!@#*PgmQ}mewp?L8ks8 z2{CbIJ~WaDlSv*tdbqfQ9z1&RAi*7!JbbXgU9^}Xfi*)yYlei@3<<3n5?c2SNfZ1; zE~salMMQM2sX!+%O)R`u9k> zYXD<2h9s`atRoykkfqo}J4jS+b%mzPN)mdjiOOUf;pUAYNaHxp@I55Tl345^8&n$+ z3zXE@?k1Y8#_jtN;&c^t5G{0c2uaE+!yaOhW=;c|tj@9qE)HNoj*SR)5Q}|PhD4`8 zrqcsRKR!uGQ3fH9*)qsEBG##mT#8+ZEp^j_VsQxRXG%%Qrqt_HqiJyS#t^&4I!Uqs z9^}8Wk4&zkkf3(D`MK6a`+p$Z;HNXA11(N=Wr$HLk8yNFoMVX}@;KdBf?0cysGYSgL*DbLlCKUW^Wf`~7emq7cxSdiznFEHxbkR`epa-)j=Lv6gt z!G^=CkP4nN)P`Y^ONAwr1XON1e?h~Ere*!92_+_fQcNeYfFcM!g$)d2D43j|Iv^bqd(4&s=XEAn!HIKOOzfJ~+t5?V7P zw0;9p;7gnjp9aw-h*AJk=yTY$`~ot$0l@eQ0dx_v1iV7+3*=B#19(n^oEOG)5KfBm zoGWTklj68pmm$vNPH`g{7(9FrL2Z~cd6%gR&SZDNl6#QE&AJRJJd;YYmSJ}RmN4xX z2ubu1g{35@pdnH@*=dyj2C2PVDHQF;)(n{;Q)z~T)(i=)84_AEB(!EoXw8t&njxWe9muPk4 z;>nXI__2vWp1t|dDeeH$5$*=^;_Zh!fV_D63V8ba5dN$S`;r8J5Vx5lz#l>1n9SB{oea}Vh}Vgh<#)S zxq}UHhRl$|CIBgXejgBS?gCP;a32uhejtUp0p!`smoIUo$*o#Pnjte}D$S74njxVz zLqcnYgx38+a#E;Oi>Wn&tiXoL)EYq`-F-l~=b$~rvlcha;bbjy=OIf{(kX?mn~#f) zsvr3pfM#}BOs z%io72Rf3->jnXwa@yCw7bQ5=$zYK|DO}H3kWtQo(o3Y6sJNl9|i*@7vB1FV#6kCC_ zi7bwG0HN(qjNQIX=Qy3{E$hDqu@(?or#M{_#hJi9p(C8HDzkl?kz-`}YY>VBy3P$s zRAz*4xiY;p#J6}FuNw@B?8KnZXtb)*;dF^^@UI}n(Tw|tZWuP9<;hU zbSnG$@vrq)c6M?2XbW3bKiq9&n_yg);Z$iUZt)Xhqj6ZO50{x_m>i?dPIysPxB*1O zG#Y~F+heQg^b&F6E^ToOh_%=?9u&&XKDJdUj*oD13rHFZj7plgNkmpg3C^|Ip7@6U z7P7Yc(gfeq(TN#Q?l-`TtL%8{{9_13`*dj?_Ej1ustCtBzb|g>6<^mP8*kI`(tEkf z(gDCuXv>;#=-_Cy2QW zVSB<-nbEwo+Tu?WIzA}-J%(}@A@}hDT^|*90+B7p)C%@hlo>MhW=Lq=Erc7Ktd=;e z1&VN%=^r7I^%^<6amIoE%6A8tgydM%z#v*GsQ!lBeMx`DRl5w~Y{jr#`Qo_&awC;l zIuE}}rCWJU3~JSLnUX!EC1wh8{TU3`>@ozo@=zqfu!rPeoWNv3-k6-HER_J`zK2M~ za#ett93*kYE<>b(=Pma;NL%b63|@A=9>O32Ftme5n!Glg6$*^wMvWnylmcT4jvU+y z;LNqgs})+McuQ394oRz?2q+E|UJZX!4^BDUt{!qRljD4bI@-ydlnz z(3>HlHA6ychJ@A(39T6tT8jq{r}iJKj+Q*={vY__4tn_LGsuF^$#EYEz5oCK07*qo IM6N<$f=JP#tN;K2 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/uv_index_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/uv_index_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..da5589228b3d3ad155cd6303ce06cb89e941a4ea GIT binary patch literal 30848 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/uv_index_chart_card_with_background.png b/application/src/main/data/images/widgets/uv_index_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..509c31566d2f894ed7103ae907223d8e04ad5591 GIT binary patch literal 9650 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

    aDn44z2vhStr66rf ztFc~8Y!{0`YRmGl^|ued#;Y#cC^6~aGMS}p_RUhMaX%KzRHoZXh?@AQjEs0ceymUo zG26C4Ec=8r5d4+1YI#*~|Em2_Q7yU6yQ@nzXkL`=;#fR<7#iw)!c@!NrL<5z!1oAmi;5`GutCHYu-`{aym6 zaFGXY)Jyfo)`qv^mxWUCMM*%?AJ zL{fStJGN@oTFtFu#};;&rC?Q(kW}=Ggd>bJ#Bsv1O1+kKH@B67AdkmIJP~rR#JaY; zY`v7tc|BKGNNG}DEnAWR&&~Nw1HV94FR7N`07Rr95gx-bSsE>fVAv+2>jBB-fN|Zr z9EuU$(S=gB=IOKb+!9j}uRaY~t=3daUbvMr2*{v>1a)4$12TmeBC|0xWh*O&;WLyJ zoo%UF+foW@qgwZQcngUz;(k@Qt+BxbAY&0IdNu=whP?BEaHhoFR4c3|hGJT_FfC@t zdwj##O#Jl%en)1Q5Ff|x86dhQVo);4WImtFB56+MX9^4=d>!&<`4q@%UAi{%BWkC?^^3a;2=$}uF@^KKM27QWMpV?Aacy7 zYZ`J#Rz9rS=hr~1F)zCg6X#$AB}c2O^7#b@{T|fTTY!t%B3d)IlT1RXL|1+~ANK($Oi&S6h z!J$%)2#nr{L2wqclx-C5AyU1zF=jot=#C``n(3U9 zh%gBXq9CXUhmd8w^qnLOLf_@E`+<8i4+kxdLJ@~F8DzWSnqDYe8i9e9N`#^B!@?n4 zQ(dVtM@e`%XYq~ezFIW&x@&-=C^=|El;k==&RDzlOwo)q0O1nKy8Dqq8p%DDW$mui z+W8rRq~oC4c#!nGBn(z$jBjtN%KGg2m;I0UM4v# z^WCjQ@-iQTOas9sI5o!v#L*-DbPdO~PGtp(RH`uVham|Pen7qD6GTQr;^7#b0t~ZI zh{2Q7l!PFVP*itO_@af*+B;=gXDAbpOe7N0oP;2StrUA6^;VDwKT~ssw<3^!sTFfL zS=59_SJ8;W>!KjYNd`GpK11P}6Ujz{mSDwbFo?w+$occC7#f8?lMo?6HHZ;`T?Zo06y`NerHH`4k{>55g^A zAgUses3-_ltq^;YFcI`H^F6Pq5IFt=QHe2RWM^5t8c8f$m=QJZkN^UP3_&2lfs-(_ z`bHu2JXR0^2{7e;&!-vjG42Yoy(|TtA|Npf2WYraX4!!shC!qQ3PdbhQqtIa!oql{ zia2MYhx@Coiw-{hu~0G1k_peC;#4kzbg}5rKjxUXz@Y_L76%xr3$0lgcU~2l zW70v@kN{1F7n&Hl;n>wGB(f9eR1S>8tzO{u0zke&@$~73`z4n4xK!$n`{UcIl|gqE z=ef&h$$KYncQ(S?e^C%l+TIHci+BkZf;h(EDK}Y z^@pq7;qVU|XAsgh6vpx1+}62Cw~MTZFc@Q?qH{_lMOI{o5-FCjo_44Q54kiT=#HD` z9Et&pkjo4dN-q+SfU=X873u;W6t!;< zFFjulLom4HoSIkE{ZLgE*(#MBffpw!l1HHc6&w{KR(lkSZwuBX^DlLM$XKz6>7y=w zI6>aSi7iH_4w1a4dDWm96l@X+cI&7-PczQ(?A0y9?l_)lEB?z;43rQe zkvixyhDJkz7~?^9d09wFl8REzYjQ?8C@L(3J3mPBwQ>9L9rT+e6epY*M4j`3D)4D}-oWk;QnIfD<0JB4bxJc#6%|e0QQj7powN33aOe~1MXH)$i=J* z*yH3^7V}stdw~=-qNG!~g^4w82!p8e%i)N7Plq|kh1lF93Svo|L1os6N_aR-cR(H6S!}2Gf4MLRz-PKeyBn+azO20K9-=7j{D4f_RcuR z=+c?H!}k{e+U|TnmoVnEs?IUu1#%3@Eai|4zsy`nI9L37dU^)_q>euw?;Rs#IyJ>d z(iZ^zo3JbcJWsF;Fo~IoKqn(=#n0j@V8pmGX>R{M8BGrj^994RiT)wi4<1rYtVKGg z8+f30@zsJkVItz=X{+_6+pVPznD*wYMclw5kVEsW%n*}OaG zMQZ=*>S$wsV-ps*C3#0AROWAIRtypvOq?9bjD~>}h>VZWdProUK~XK%P$LUMp0TTt z$eJ`2gm@P7TW2k|>$cmeql2T3_4W1N{Q_cvdq`;Uzpe9WaT*B2co8rD_auVo7w`jk z5X6h17twPZHk~O7_rF4RY;hDAun7f16#@ZVI zr~rW_*$lJhD0;6VBo?#UrHWEfY{yw%-2|Y9tROdX5Nfv(a&3_m6r{XD)*x_%w)X=^ zR%%EraQr*|b>|U4U`alw=NLujxdIB;0*DQand3O$9~Wl)>jU(+-NGpJKRb%b!PI+Y z1LOoiUBe zbF_~(eu|UgXY6zSZA15HNBzHNp5D3h?djWFZ*^1BU!T6R|M9J$@4r6%2xxg%;!IU&BsX+8PoA%;WA`Wf?P5f3qvq4D+Y7OOO;Ft z2`zDCSfo}4g4n~csYVrQkbu%`*6TEKQGirIg9KI7MN!pMU6Sx8o4RV&H1q!XHy2)- zyKnZN4Qs=G|KPyXfnmxW-}5HZi9hi%aL9--KE~o`oJ@Q_n$H)Dab)<>G)j`hGCY40 zVWNr*hI=Kh3vMN3a0CP^^?K_D0aoN%1HlWjV`TyYIYlCnrdk)9br>QLiFW?Rk)OGE3U3Xc4340|0It-A=3p?u*OUhSq2~c(N&-`izBlnBxPpJ@comYS z1~J6&BXt2lg%PrL5RAH<&z4K4jRyb!R2@V1X(gT;$ugPv?$6||U} zCU7U3j_2-(2fXWA(P7L&Tr{*&)+TWrA;)Kpvr-AUglr-fIK(+et^7k%QP!rANf`}D zkW-L|rrIJ)P$gB^B7y>)>)01rQ$_WLCLq7Cuui&h@@%&G{grEX2L~_r`;=EQAZtgy z?;j!wER=;m@lYF4gvf#~xVG7~tWiLP10|^aGz}R`Q=X23pv`$engyd#P%0fOp(1iS z*1k||;i#+tdaZJAZ!a?fFnN79a*1L?MiA9{Qv?ceeMh!ox_YL|>h)*R4dIz8%frDC zju6WgZAb6-B~73ukR5sN{d;8B-t9x*^HK8@4c6|uFvN09tYX;e=?|4gdfE07*qoM6N<$f*Rz7E&u=k literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/vertical_capsule_tank.png b/application/src/main/data/images/widgets/vertical_capsule_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..454643671f9bbcbf31b9a368046dded738df26cd GIT binary patch literal 1937 zcmV;C2X6R@P)PK$GL+ z<62yktgNgtG3oSXfx)=>L(Ex8vmP`}+T@tI5X2+je-R zikbg_kpC_&F0HP~Kth5$J3RFB|GUHg)z#I6hOUEyu8Nrdo}Qk`%G*s(i$6hvpP;~Y zccxicS@iY)@9p+mU6iV{|C6ErXlk8;lK-8Zz`41)l9RZCf`ak#_SDqmxwz71W@brA zN}H$uyS&n@uE`%CA;Zc4^78iY@9;}YOVro@%h3Pi)ya zv%CM0o&VX|`$w z{YOa-9{!RnkqZhSe;$Wx{P6?Vsw_ej%_JmIO}PE>s;Ma?(TDy0suDn8cU6If3vkWf zLI=^L1gz@1qmu-zDw0MFosguo?*tH~;3TCgNw$dh?mCX{xELXY5g{9AAPG2ZC4d-? zLe?BpmQ3&Cg?-P15Td|QljIo)9P+7i1eCHok`zp-CCTGRqqPE_5lP5iiYqHHEQSmtLKMU3%Pw4bVRg-bYqBp+j5lSIfI%Zr zf6b_R-+)|5KIGg0!c12K;<|*HuI#VzXyXuUaR|0JWU|(`8riJsl}$BjSdz zOy$O<%3W$TNDxa9@<RQBkXm8ItuJlS-O+A!VyAOkBHO#tKRK<1zV| zq;NvEr*nXWZefI^t)Vbw8Jb22QB%UyRXX?}+mc-R86?#dLZzl~ zLDJq8E98)%f^4fo$kY@nh-HU`Wa^k8HA@H`ts#PBo8cjqG9rkT2@lCwcpzy}2w$6~ z(LlCTVTRNk8c4Y^3#3v;15takKv28GQ`kz z7?F_#qoL~zLo~_tAW3Ht7Sec^sVVG1%!08vhUfvr=x;1)tU*5M%A(#n3mGZNgv<;? zh}(AD9p48ZKfZ{L zS2urs!E02I`|~F~xbyT5ym>u)>n-2De|9J6+1Jl^ypKPaKWPaoI96V)p`7o$>ICa1>3L*nWd8c3S9@6T}ceS!u;tjw#hkkw2c&#i!Pk{pGF z95tJWAT=sH4ExMl#&o+Zsb@;zAiH)R(+$idr4}ECyk_N4LDp%e6!KKZb(4R{Az6y6 zk8n-9@P=eJ)ERPIAkoIy8+tegNI+gg8Pp*gYN)z8?G4g~C52k}0*!d?2 zA*4p5rD+@`q!TI$d9)0YDICj>a87acCDS;tPC6!}36hB&h^K*%$K+sXg6q{0j0fh4 z`5>Xa`0D>0n{k^qaKBUnA+>xndbsq@;W%tp@-^%)UO~u{=CUo6md<6AiZ<;&#{Y66 zP%aOY!v}wTQtcKq>UcOwm1Y^3z5j>_y@rYk!yS85@cSF%tcJ*$0W7~j2m;;7g#THZSKZT X){{l;ZuwT*00000NkvXXu0mjf1V+da literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/vertical_cylinder_tank.png b/application/src/main/data/images/widgets/vertical_cylinder_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..726061fbbd349720f4fb0e709bfc76aa6dc3e163 GIT binary patch literal 2145 zcmV-n2%h(eP)6+T3wTNc&765_o}r2i<tgQO_{T&@4 zbaZrBSXl7z_0`toO;3w4GhexcSV%}pw7&nCnyjU;|AdCGyS&nZf`aJk|H{qdot>S3fsgR= z|L^hto2dWv^!U};@n&dr(%1jP%KyB@|Bjvi$IIiqz}33D(w?54W@ctjP+7#x|GK)m zK0$$_um7;J$8vOnT3lwl!~fmh>BYv`qoum5tE*yUm{wSjkB^TjD=yXB|I^m-*VyHx zrNp_pxr>dSGBtTIGo|6|fiEeyQ z!QtuhFg%~V$IH`j89Yv(SH|NFI8>sq6>g&8Rv^zEVyq6aR)<*YZXrRA;g=-f3jKt< zb5cAiLZTT-0>F}ciuq_nz< zw;7Nzg(>Xf@Ue7Cz!agaW14~BaFuq*pDE-t-3O#roTj_|jW=6|SgS*<)gjjE5Nmaa zwK~LF9rDhO9jiDF0|6MWrW!GbktI-}#ziCxL)?X}>^ALHsS?;UyRgUI`&T!1lDlw_ zVt1X`0sozZi}~bAnp^jUVCQR_i#}WXF2YsM1Hrm#l5M>nBFdp*i*V_AAW2#LpQact zJr9K2psFHU>Z@%|RTJ{_K~PuZAR0|%B_jO;!POr+!l`F~pto}RZBi-Mq|Z^ESp^CW z=K(W!$biV+faHuPo5PT`@=qK{#^)Y`Gln=*a}xw{s_a|;ZCHXdV1i=Xxj90dFDh=$ zs$6fKTWwyX&1SQ@N|ybu?76M5Oq*1pab6Il;^*<#TR;D%A9G#8txAz@-RaA>_oGT4 z=K^t}c=dY`$o!wET#IM#UscjL1BfZq(c^XvU##4sSPDHY#8LH|UP}08<^Fxg8YhDY zBOG9)4q->DX&{GPFfd{mc6tg3H64tcW_mn?7-95~{lg(U19!-LJRG7B?od>ZhY;K$ zngF6Aj9yd|KuCEQIbYEP5R9Ai;g*fuo%Lsm`Nn22yAMAK=iZDQ3V z>&;-F5#(~n#*+Ljm%*DTwEGyY=IOYCHC7ubhgj|Ohjik>RDI#7^|0IwbEszDW zKo-aXSs;Jdse2YlVK9K>T`)FJc~c!>QVt_b1}z+uVnkVdVYRs8<^{G{u2|UbU!E~o zcnLFdEF>=Zg9!u#e}qR5SruekLesSOEE9r6V?m&HAw-t7Z4*Mdbs18I$$b~S28((n z;-0|SHOM*1$RybOc;4?|N@U5|5lESc*)249LCx%Tgv8i|Y}+W9N3bl$v-E?1UyIt( zBBaa$ErPX7A`)n2r7cKe8f-GZf!JhG5WUt8qzOzBU7)8RdWjW?cmRo?aAGrrSb^*x zKxA=V$*t;h1IY~8TY+qzKsfz1tOcdCmZBw)jTOjGba({GnS^k9%?nyAf*g=72vQU? zq-Jb@+-Qz5J8A!4VqhR^5ZUoyhFmC@kn|nPMG@4rm>`EELRKNlGGH_atMLe75<=A- z@e}5Ah(bt(3y?`OatHv(8E3f$xm9VdrUihEgvsC%Wa301>*$U1cgCxf0YFMY*55wT z3RKY~a1?^j9%P)Vx|&u1rxU1(qUJERN6tgSA&?KSREn-}p*4(k*K7aTK{&J$h>E4d z@<}OWojQ2yijVY9xH`zCA6NdSzFk@RaD5PS9^xVY2ibfV2-+=i?2!8qbPS$$L~DR7 z$wNHELp;PoJj6p>gS>n_Td zF!%-X{*O>u6*O7e(wO+S(Rl#DLF;#(%xX X_{e3%7DN(N00000NkvXXu0mjfcHbTb literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/vertical_oval_tank.png b/application/src/main/data/images/widgets/vertical_oval_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..b61f3a10ddc4dc5e803b3b745f51b1b2d7cbe3db GIT binary patch literal 2111 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/vibration_card_with_background#background_image.png b/application/src/main/data/images/widgets/vibration_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..60983a6aad3724a071e8504cf0bd75b54e271616 GIT binary patch literal 17017 zcmV(~K+nI4P)iUj0002zP)t-s+v4ri z+veTm?%w6^+TZ8k=J3?n<=5Tm+1=*W-RIlk>)YVx)7a$J+vC~b>(|`n;^yzw+vnZk z>*VP1;O6Y(=Db@t+~Vlq+baS_x$nm`QqpD=5H@$mBa>FxB{-{<%F{p9QQ>F)N;(Aw+o_vY*M=j`_R`u*75=i=z|$jsN|==8u#< zU+%7wOy~3Yavw^(Jx!D3&3(wybjqu;th2PrvTPbY?1w5j5Bst#6IfOZTln?st>HXw z-V0~!2x9PPjFwohI9EM_LK?5)mATF?n9i;erF^GW2r`HyQtV2}le{9!XIyy(%)zEv zmL_Lc1CvhEt27(RFJJm|a;^jBH_O+TZ?JStz%<^l#xxBihPr92Vv8~c*QW8b-Xidf zkbr~OW-X>!C~R@;7$RgVQQF>}+kE5jPNBs*MUqc;%IIg;?n|I5JSQ|#qnN4O*TA3{ zSk@VP!OQb2Ib_OaFBac^(4CrfGo`u{HiU#lta!_MwoTT$nt!C`~G}+xht5zu>R*lOsa#f9WVZ-^7b1yj! z*{f`-vNRNPK2LSPY%Slup_|(S#Y9X43^y}2M4<-!f-x$@M~ti5Qx8k8mi5=tkwo7V z4D8rSjL`y#k*Y3c8YsBxB)J^el&GNuCe3M!s&Zep?!2QZtLrkskbMmn$`jl2Sc>Un z{dr|ZP!KG+{R3kH#$&>csO5MvCKjWc>xyZtIJOkyjdC()cqqJ5Kzw%}1{9ORGMz7P zc-E2won)vZCrgV$aNzAw5Z<{@P)xM^`0@SuXy)6aTc=DY$mp#l%YspO#_JUfbUh$Q zaq?D$_xO1`WWPyrr)N;&!3_yC92gJjK%qL$@9*ir3saQ9WK#|qpJ8cr-sM~jFk*Rm zg7O0+*39GWv6(WDgp~otQe?_jjV`Q2TV0(_!dc(c*mcM{{aY)_`(?gVh$9cmu3EP6 zzSy@3F!(|Zu+(Wz=h`_bU%ldD%5rFF%*cY%m@LmnH;yx=Y{kr8V&)Md#u&3${=ldc zS5q7d6ESvNEZ1@VmEz23mr}N&Lm!L9C-{_L#_lQaO@3`@`Ed$l8EEyZSLqJL)cYFe zcew{9SiYl{5t#1QEtoD^%oVw zz=Vu?v5fu{7`!B^@#6TELT8(+7y}4d-fJ{On1icpSkjy~CeO+`-63sR;|+8)2Mab| zEX}r<(MJrPh%5#>kb*3jvO)!nhJ%|abc~&q7RuG47~T)Ukj3ETkLb&V7fUQtHRbk> zhNg)vJY;7#ktKcgDobF=YgkguA9m*XEsU6?lVT(*!&^`&nj;wQM=cnoj*{YN$)OQ% zvl-%JuuJjVZ{E5 zp_4h35);>6#)C11HH>k`7*GO6ug97aMzs72(M&Nmt`*-|lgU{{U(xd4+mfz7aW0L; zxTTx=%)p{sV(Tdb%FMIQcEd7=CDp zVEAR$aKv;bBJe=WXbItvRilimxR$A^4r;)Rfe{uahb7$|cAs{@R8z{BeR6v|#3I=g zGtcJFVst?S=A3%GFhi^Yy=ji2=r`lILh4oOJFXjr(IB$*EPVL&gi zs0kJnLmPAWwEJ|Xwo)`h2LLd)Ml=L!){Ne)81+BQ$1qh9gI87vMt;xu)uJ0NgdCjF zt3XkUMj7s^#WOiOJz@E2?O~xI%V9|mpO7?5@eZ5~p_z_1hL>jEV$2$?qD3D+DlM44 z2LunoaN3?MjL~c4qP^Y}sTlpir*{JFW+;w`jjl)0)H z`;#s^+-(|$q5vG2QQcUvqt-Y9r@|EwDpa9TLAFYWAASFa;@o@fBouKND|DOGk8|xh z;k54M@DHWA%O)UEI`I2`1xqECFDRzEW5zmM)sSy^!d{0kh6U0LNO@yBxdo$R&%H2a z6bmqIX(lPww4NvtSupZLx}hJE92#aY=Je@-q8rE8nyd+A+0mv0-!qi2jdjxjPO9fb?beDPDF536E6>Bn05 z38^Mvx!^#S?_=D>Vgp&~4T{;+C=8h0Yc%uJ3P!3C%!z9ej9QvWN|!~0J__bqFe7hp zc!Y#9WK18#0&9tB8d79SBfj|pvr!T$=EGLO!kCaPHHsli2TMmsw9i#_L@`fN6b}`2AC*0zEcJ`6T`pF97G~F;P~g3T}~`T(>XO9#bUGN zb64@MytTkobgrptJkUimrQ+3J00&+z>}t%?i~yp{BVCYH) z0jBhVb4@pp<+kmBsil|-5`eLLFKgy~!4%CwM_nw=EX^p?P;!a#7=MW>zW79(R4~V& zD1y(JOrh;%WpO8&Vz$$HM(==OjnxVgyl@KuVtL3qAZjUQz>`=>PrwKyPuXE34;r~e(!|F!P87aBIQRNKvm z&1PG_rsoKA9K<4P<`E+rm0T&t^?Rk&znE$41u?Z5GbWDD-_!O|OPn!UC`xJ9EWOMv ziG{9Y1Va`jl)9rbXeZ+plUF|t8CXvUFso(`4KSzDOh~I{_GZ;gEMqfW`<@Zki5}>Q zf{FZmTNc$LhBmKUki5aHEQ&0WlwjG_L@5@_3np*NgsFg`W?nxu)3}rDW|V%$I2ZOo z>D&!wsWfw)@{!-44FyjmiF{8#=1Tm6;qWV7z5HfkYYlzUs+Tt<^KUV2ITE*1H+&&`ZIECth-wbc_waY{o- zz>v9F_GsDd#3Bo(V@p?w1;qd}(4iT>pN`e1Wdn2W1dUjl-KrV0?|F|E%r#q7`WYi* z;!jyU!%y!$VWhJ-dO`RZQ!ea`TP^noODL4!bP$TY-(= zH-(h}z?O@#5X{9eMni{MM3Ibf&D;`PD~s!_tu4~2nk&GNZOiIM zaxru$AkLTeV+BWE@(!3{IW*ooPQw^a7MYRZckDA}I!8(RKJxOxqhMafhaN?A(X-2(r=W^j;Xi^a!0WEFRFdw2EDr(Ddt zea0|A70iJ!?~YD1gqg;9G)#XU%PnR9?2~ZDZ;1zP%3Hwo%!jl~iiCN~vk0BZk#P%@ zmBlR<Vg=7mRE)QA8z#>ytFbq(!IWXnKn9%Pd$mR2jGKxIrdhT=L1qCoCyS_P+ZB>^4sR=7g)4Xf9glQNvUJ8aT^~-xD z4rR}b!LRX$XVfLn*>oPfPdKbGh87SWlSul~Odo?*!okv*Ez(iwtPM)#Yk%it$jD`Z zDaAR*P;ex5BATQFt&{hMl8C4cz18>aS&APnHOX|=RsZD@g)6#io zjCL5VECY(}5x3Pu;JK~et|FXb&en3Iwg0eLf}wjCjF7z04;_XCyFf5fk2zt$f#-+g zW;RYDdu3udNrgrt3>dsxvefjz$Ov%z&1l$ZF<3o(cS-~k0mEZ~EpV^}3xEX?=V>>SNjMvqR%X5oC2<<0tTRI2w$eB2r9Uw*HC%0`G#!+GJ-7n1IKbt5(J^d9rGdXn?7@B^s_~)PdnCfR~28)Mx7;dsX_0>^= z*^umf-tW)1E)xq~Y!ZxGkwq{%;~&V1f zQc7#nhdLPPbMwd>DHODaYFaH&2nGb|zKk)LZLUs;MYjH>$u>{F?9cxW=0Zy*+ye7_ zhY^Uw=#6VLpeihyg_8^wZ!Uz%=7})OF||ZvYD5D~H6S1Av$0JH!*e5BFu@&$mrRx{ zmO}yza-b%|FgsI9d|EqwT`-J^3F83+ip8iL4$6jaHig-2nDhDYx!a9H5-pghxQ|A6oz|h!rVJsfpc?|gWdFjjA+eanvOz;#fY}|{^2xy*Wc53UXy|^+!)zM@ zBTELD%wqUs2aISQ2&1PA7*|*w4wJAzG`T5VG=-){8xW0YFsKJj7(Q?^23ZIu`HDF> z3}3~ha|~m6Ye6mxMj$fFE(~GEuZ}vS}uaXheWoW1!i+ zX6}tbjpe9l1mJ@(t;3*BhzKIVoVaip7s@Z^GbDK100PVt&uALUr-gEV$P9ThZ~fKt zt<5xJUZ`-7V?S%8)1rZ{A3IHgCv6Y^X@>PKnmi9oY2;+qS7E5auxik3lN|$E&S)B` z@*oI!9`K1;Gzm%Mzk0b$!1Js~jD-Y^Lx zsL6sfLo~od2VO7dD3RSC!NBrFhVK}Gxb@F%7Keqy;L61f^GqXP*R}`2Y#1{(*`kRe z%rhRxQdJ*_#`A)acg$Gpwl4e-GXRa&RrK;k>vxM`4KQ>-1%?VDd|lFT(enQk%x`4* ze!{#Z<1os%7>r|Jid!--z!kH-#{EWH%|`b|j)sRb9dg^AF+qwyo0Q`qOCHC1>a(e{2k98ZaE05sa3N*L7K*MF){&r;99qSZKxkUogOIzhP*d9M$V)!O)E! z=tq)v-+b65lYO;J1A2cBYO@?;RvZn=i}M)$H7e0GRR~T|j(*kY2HtsO3^i!P7zD!k zGUl9E3_8V~Q@YOM&P;_!w6N4=f}BH0|%fnWFogNcGZtC}pbjRsFL z4S{Pkie^@5t{fEvXe`of73MQEXf$J*wn8-HOc)*mNoHi<4RWy{nFudo;K^3dq>)(8 zVxjuhVvxXt_0P#{!@^;x&EnUD9j?)EQvQO$nwMxII*UhRt(Rmj!CYzrpv`ivn?a&c zRaqb!Gj#?t0MVEaFto!+f9YH-sr}7A47k-E!JLU=gV`^^tQ`mi3oyBoHgg!6#_4Ou z4Ci_K80BIaT^#xRd`p@t6%8%NDCjG}ta;V+6#&8sOg&o7G*P3CWo5dGqNy|=1msn8 zmNO=Ho7HKoWa54&**E`H<3?!2m`Rn6cMPxxy;Gc)8&-hS9 z&32BW7SVuXHRIKY1{KV<(c-WleAdiGKR2yz+du=u@FdX`ms?8GlewP*#Cx2orP@161sJ zIhH3Bdp7Xy6o)# zv1`U9aUR1X^7!G0AMp;*W6&AtGkjgbV4h{L@DuL|ny&?E zuzI?wsdQ(MjN$EuFqmZ_FDQNH&Byv^}1A!WbN&qM)7`!_y_rt6qhS0Y?p`CXKhnBcH09#$ZZ!$>NEp;|kP@@dVGhTCjYjKHvl8|`^l4UxmpYCHtx zn7SE&N~=e-Gy?`@uxavcGqh#XjUAF{HMS!S5)|r&K}%gQ3@*H6 zHne2+z~C=_Ls#Ro_rXY)Q8FYUj7vrq&CYK(=rRcM@ zmlGLRKGp^R6fm^MaHGYls9Rq~+EA8lHwMKF0FIr&pxZ*msF?ptrV|=&jpvT{K6(jV$JclleWL3}ZMM)B#V|YW5OMEtr%rmtg1_6MLkY zYa`LbZT$*NIM;1g_tk*iMg=mVX;)G)fd~kFSd(d>Cu_heK zk-lG5w|zY|21hi(01@jjraNWVN*+)@tqFsDk}bG#7y$`pD@%r7Gdm2X+0S;K1v6fr zy#T|*>_>dE>Jm54SaYao1n@-LN2mlFzorq8%J&%SLII;G8d^5ebSi8bpK9pax}F9- zk90A5WQ8F13sP%x~) z2Qa45f_b7BeNR8V>AFR4b1;WJ?KO2p8qfY}L4eVP9*!BarK1@zUaU;XL%=l6aIJgO z&H-U`jt;XJ6>u`S!kovFN%w>~tp!0AGT3Bzn8~-my^mxH{|`xqV|nIXb2hui)%Y`vpN+rfUW9*vYvlu9-w|3q@;V@{m-Pi<9^Ta3etf6Q?v71eTGnv*rC8gTh z4`n=~!g3Hytg60{b4^wM-Bq(zYBU<{o`j4dm1$dVC^XE8n} z6E1CL_nL>II^8TBPTspd6V1~BPo6NSz3iM#!@DGk+c|EUKU8Qn)L!%urTWR|kycjM zdPbb#I0B;!#)O1fuMyFjDrQXT31$gJ9&j?;VmT*+a+pV2==6p;rmEoKE*R8da(%`c z^jTVVu)wpIO3bwti@R1*S8k7=>hfB^WNnx2eVCG|TeK zt-~apHFp@Tm+#2{LCc0KemBPj!`U3?KE=yQH=QY(xeP#oXC<0+C^5c-V_yu6ymgW$ zRzn$D4L+~=y5KZjr%I`!)e5)3D8j6BysMZsF>jPPFBB53a#<;|WEi774`1D4e23va z0|<3`ACC_rvA0Lv8y5{M&>)&Nr4o$H06cLU4Z0$)YK}&_FPwVimQ7vI939I6yNwCM zcfq(eTZ6;@%Z0Vam=(8N&KU0=<9)?YVLb}Q{)h>x!(THj_w{mUsz@xPA=_@?M5>l!w`QXuF2-Gbw1{hPs_}hNC=0t!Y6fmfmz8uGM zAy-TmIAp)1HA!uz*iwXoLA^Y4HZPy;$I~~>L))iL^ThRrlRpQuN=1ViFl|+Qw`_FT zF~+0X`h1#(c8ipNfd)gM57m1?m{&;gjAY4BG9K0fPh-Z!gkcC`a2R}5U}W9kE8_Go z$;fh%*?jarPTw&>KSqm223jYp=Jv8lUq^|7DG0~MZX*+o)(st?W%I$PrteKd;5vu% zOc;m=LkbTV>^g+u4O9jjJ@km>2}ZUU!YDjYj43D{B*PZ#i9h0pZ<<5XC9-PHI0NuN z({(Err@0LEf{{sD)qJdBjJKVy<5pgH`q$Q{YMQC^#}5!q%b0?fBThCnl!!Cx@G$4e&kJTmc2<|m#Dh8)V?@E?$16lC{pCf8#g<^BBL;zapX zqsw;rT`F!foM||kHCyD>M*DYx-0!mC-9~v%Ge9FdPgfdRH)Dz2^S#x2Nro!qHnSMz z@v~nre6#(6iSfWqGl+1UVa(6Zg!-JT!*|TNnbL?j=O>*%6EVUQ^lmM%se4}rOc<^!K=LyO^L#B_&=SNF+m7fiUlVeFbIR(x%VUcWp;b@aRJ zJLcGy?#G$HAQ@gYa{!B!G+H^uE}9i<=BxR`VellnMu{yfMFUGcVfD}cEg7FNlFXVh ziZE-!D8gWscn-r8&0+Y~wiz!QVB*d=%TifcC3c{>Rg++#$&+>$9MkddQKE65&uQ=9 zvW7YRgkk{@fI+g7 zj9|R)n3(r{y0I8}Aeh3AX1vq{g)xtts``hm^KEX^2*Nmq5?5-Y;L@{7>zP(_RaL?t zfdPS$#;V%Mn|}Wf)Mt0^I7GT>2!&+A&(H3&dxw&IvxNDi3-d|lElDH0rqpYkHfsc) zJv51CCSCY2Xewzp0+G}eFd<+fFjyE`@pBg5qm4^66*?Hiu5Kftk-gNRP|{pOn%)o{4Epp=Id@eFrcrHRJcglF3#VBU znwmkm7)MS7#y84j0>dn_3c!xc$Cr9|TPgmdoWW*60LP*!*|d- zjWnW8UWB4e*rKT(X>pUM?m%&FoA()&lnJZAz@VH zGfaS>Q(s`*K@0%FX{O=K*?CGc!0^r)yx?uSr;$N`pL^2m zfOY86!C;=w!+_H+<`E$}r9)W~jHdJ=m08pi;6j-{6 z5L7b^Ywy=Odu=9@(07%*J`213)3qwOx zw^*9w1o_8^*6(P-vNrA(roG~An+k8C21UwfhJg?+&7eIaI1Y6*Fw{8{2NT1ZDb2vb z0h*}iWxxVQ(SQaVkw$1Xuj9oenxg^XWX~p=qL~s6p;$bh%7ABr2x-=KLu}G40gNcK zBN+Y&HtDDmfw4peCWsrV8iA2FGSGzvG=ll1?tWT*CC#QxcVIzGjz*nx43^rUZ2I}i zM%JCm!iWj*|KY3}vmc7(X#EF3m!LImRZ<$j%rB!DaJ70?yTU+od!xhN?Jmo;}YK z%`4j7eV);~)V^@iNT5y}3?|U@DCY-NaM$SSQ(7y)DAGsVOa|mf1VB)V}rZoGcTWo85 zEzKeAU#7y?a?l*m7D2G^04kf5JEMd2G?$I3BtJ<9^UHQ+7wph|Qq_%JLutlJ;Aqn< z4)2w5FgQlAW|;xR%^VEJ=a;g3ej^81R?YZoa>+_VG-|9TX`D9U*v}IUFn(81x3TYX zbrG7|ic>D>J5>}_q%4fW(o@BOz*uD>L4Z6*3)5tP!G5NLc|!ev|CzqgeAbn_?W0XJ zXV2fIC0=PQr9q-;3uABMpl;owY=XX>-WO7$)z%?~RMu;!)7UD&WTH%zK$#%8he7TU zk%I}PW&{S_YyueHKY#~*)}G#oW|?UDc%mm>*t6Fz2F?xRoNkpdFB?hP*=_T7PtBKaYZ=GMHAuCm=HCi86jq61O|1aLt_I+oyC%8-nX1*A3xFZj7OU9dA*5!hOH|a7n`<- zW)@&^HkVtqpkZw;x1*DcapGI-2Av>na3W_hNz-4FJZ&qk@P>9bG_bfg;<>rS&;hrB zK%S;!Iy8WZ2}b^kT)ej#B9M_AnGoQef3wb_BBOH2riuBLVYGO2EN=l$-#{6b2HkTe&2!(bkwT)(EYUu%>Oy&Y3*%_8 zA#ijsjwZi_Gs)=6sc?n{DaF^J!!Y?XDI;}b zm(Iol^j2UNL(NN3`T|2V&e8m_wU0PkDQsTaat^cKZ@jt_7_qm&+&Z;bN*rF>K$Ur^ z!lY?P8TK#-qa6%H`S-{Uke$E8h{o%F!=GII8!VJ$GM>qR=9RsXW|?W1vAXM=Qd=}} z_KT`vn%&qrYuMAEvnv`$)7AVV#BLj$K^lMP`!0Y@B5@@Ac}UaS)GOabOnD+5DQ4WrOZ zLjziqb`Ivw1O6B(Bkn9<#bu*!_OYD>;G1%`z1|SadPrx|)CT5|20VWTUe&<^u33bK zrJ++`6tFVWFoO_CIE}K5Va_pVymMXQ6^4QNOlc;gGb(3Yrh(+yLYfb&?j|Feo6s1V z#v1M4t!sWo&}Ly|AAQ5p`0d3sm^DV3$Y|CLYzZ3D#A)6T40|&fFytYaj0jjC1sGiA z>;sGfOi*{vE0PA^pPuMZg#=ZzYSMfo`D3Nwp8;ZcK(d@SS46Y!Zt=p<0Q2j*Pa%!D zxF<`C2u~Qisx%pxumwc@!5iN5bU0)D5*YGkc4_IF*%8Mhjx;k9D0dp=y}j4b-;!t3 zrW0@&$ir^=qoolTn`p4%!`CpN@zODwXqbhy*%gCLKN1EsT?rV0*rn8lanOkk?`!P&1f{B}iVZ@td zw3%Qy+p;Uc{GQbL^CSN|1b{I$VG`}((5AcXJkOro95ALY>je$tzy#`p^D|;08Wf;^ zhqyVl7H03Kfxvie$m3_=MYT#>3^Y!Uu)&#Rn4*g&&*Fyhu37I(ydZ2h7PpV45Kpn9Xnz z3&2V`%!>vmy3wW` zW4ErEkjVtfn{qUSL$PUY>fnk7p$ouRX>dwcgZ6-vxJIrG$Fz(ib^eE8a3GF=?JUU% zCK9k%uAF1Q{2uh(4=Whj!=%i^pAVd8n3Ab#{$5&u#LHOhEQ^Do@Y+#C@E8WVaM^T4 zz!!z(S6Cct#eF9qj5Kw|7La&J9lWOl?eU=@@ndIZ5rFuI@=VUf-~#HKfI*%`s};m~ z5F8l+M4N}Ts~QAbfCXArx8A!~W+gO_!B`576wM0TQMA97)}qYD_ySMNdxm&P4+0av z6JG_kJd4{>(Z&;CGRmzpWfi(Vre%ToLfI#ZCC&ASzpwf8P!3y2 z|BE9R3gw-&P{3#*J7<9TUG+8c45~~ao#uOdCutHlJQIp@v|Ujg_VXp@%Eq?7#g+!f z1sDn>+TpJM1V!W-Q+{nt`sEp!b$7&KAkby6)L$9F009S+Y@`Nv8aNqc+rLb92F%Z! zu8bvz9E>RQ0cA53-DX}i7KT*PW9^#F4(#*X9F=mF9K99$*-xRnyd8*scV449@T^v)*< z^IqsImwhm}@}!DV8`~_)-F8hG!9*Nv5oi5F@BEAl4#+eeIfG#xlH*@v&J5iqq72`E zo#I@6P7brFLA#eineWjU#@dun4KTf<^)x|zkb%WBO1zVB$AiMN>m$)^Yv0eYt3Q;S zG$=RV;5d75uep}yOc-t_4a58tCE53%&%$tbMq`PGOX0gr8jBrZ9HP7(7K^!`G0lRi zjogp+FqZe{W$Q~A^6PU+Fr-Kj20ZI?ye-hk>a~*B*}iF!-c3$%7E!v8NILClxR3&d zatBSh&M?0&vcv_;h|_mxO!NC+*`*q~0I-a;1_wL5xN^riq>V$v()-=DJ-~2#0Nau< zER{~@sH>YY=SjQV(egR+gGx8D>acH9G|rqkjq$}kz_zSoq^yY!CeQ$eETElP0B1k5 zkfG^exEl>^)W)Qj)g=t3(u_1Br$8HMc!{>wdtVu0Hf6CW>HXVDoOKj(SXEqlGKQSd&rB|`=UXQKzu?Hi z1MM4r$fG;+nmAvAP8r)Hx*uYWGrWIG0*2X@lstZ>`Ff@7&xdoo{lFk{w88Y{S<}~^M{nu{C1%3m0VW+>-< zeXJrB6N)pprF?l%oB@N>V2_40`#Zz%c*_d+`FWB#9o9*D!0>aQK(B8n{{8(IX&h8l zqi-z-7?}2HZ~!_zMLmp{ZJBvh(fOhb{B5JS)xK_8=mCztZl>2sgrRN2E6|Jq=BFc` zD?JM%aX8wxVLY^GY7ZkXS|ZT$35=LXqr~CRi^&xcT-H(=npq`EcjEnVW+*@7xIE^5 zKpSYI&dJX}WI&(pVGOCUrqF^k>}0y@4lut4NrH{Q3k*jYzOCwVT09w=Gr35KV}1J6 zNh$-HNY)_7Y3hkoN-@JYdEDivn$;{@6YFRqr(EI{zD&jG5~C&y9SyF zOc?H->kJPSJE6Z`QfA~q2|SL)hQ{PFY6RHN=7FYCpzUPY92Wc-$vsSoKg(Vw@31B& zvCoOkE(3d=`|B#r@(R+lc^79or0FA!p1m2@RAWO+2bf>eB-zmiwC3)-!>QsFa{KvbsWGQLsUp zXmB!=Pr#5gI0Wf~VSc8UO(~^$@c^!$2(-i-dYUoNI@C>Zi|m(L!+Sa7c9aeU_M+1Ke4i&rfUL;WjJDASX`(AV%;}hvEnpah8?+*MpKj46 zNy9WKfq%*kr!|4$K~DsfzIXN{OxKitCYQkGs2VA)73LU^C*F%*IPdJzL7WXX1jLye z*+!)&H9*J$*rIivFz6SLBbMggOVca!^9S~5r||eW!kF@t%1Bd^M zuP-%YCsZBm$#cfh7C7!BdsiXUj5;}2hVFLKAX6X>CBKyB z!P4joK%_f2#p#!4b5OD)tsRNoGgQW?$$Y3za&-{(2+kegr=ToFD!b?8gqdl7* z0_|P?{GWk0MW{#}M1Sw+=^&NiF3#^_PMp^?x2Xfp9f-aEf;!si1ZlLCrMX@?`6FOR zY3^XckSHWgUYr(F7K{OfY1Zs${~?W<-;xF5Y~sOkpP*gpp%?4to%f4EAD5MA+BkYoZJWOS8BBQyC2Fa7k?OuSv7y zM&LMo7BJwd&iP`LUrzk;FVik6=ZII@%m80gRx_JA+Ikd@Il7fvN9_MhXEB=v!Tq86%Fh@C!aTnp!|Z$YX*|c7X`L^{<|%2Wh1J0m0Z;nbNW*P+ z(ZPsudL7!MS?{tQ=C6$FsJr6xbtL=>F0c;jQ(ZMsrTRi2)23sDMG-xl(jRwUVG4Y8 zNJ_$4GcPt0hD+z|_$lT|GpvS}o%FN8@~}?DCijP=k&kzCsSHX@;&(o6oqakeM~@B* zdw44ux`9A)l=(7Jo0{LWR=rFX0(vwJ>-(hI)PcU;Fa|1_viZgXeBZ}MF zBNLFk!#1J0=rTp5#pEa3lM^DbJ7qpIkB)1XVZLvy&Dj<~WxH*XwE!_Fb@VHR7+y8d zz{+e4Lz$A``vX~X{`~JSla40M*_mr+>X%TFOxip8v2=iX{#FT=(L z1x$H76wu6J@Mz-{9zOq1nI$>eVPnl< zd^jtD7Ivw#X@nKDo}1TUjX+cMw&_F6*B)2O7Z@|z3Bb%~mQfh~<~aYU%uf_b@x>kM z$Q(9^W9_LvnjNpHUG~D8mMGOJ^HHj!(c5(Gu|O_Uiq>%&+wxlf`^rs{27#ueRmyuZ zsxQ|E=gR{D3z#{Lm4)Ruufj}+dc1_}X#Yy1Mz@5vBhR?BP=+0&%o$jDfrtD?tad@zhkeoHX^Cv<|aV1g$Usr1Td>FI$FEGDui*Wi3?OB2MPaT&N=>E7ZST;4iEn9Q({wkxwz@MM$A4JbRjZSt-q%+}Yg)9)kH)aQ4T>f*R2I!Sjh)2f z!`gX}@gPTwU1?0O7Ga06Cd6o5a@~*j-K><$bPvSB=T=E8pjtFsg^q&4%nWo@T(Q!6 zn?`Bt)S2d7b)bGeL7j!U!8CfKKok z=I_y-*HS9O-uQCn$#+J4y{)fplD`@_bzVMZcp^ddYva~RH;0q1uOrE^wECRcgb z+DxmxDIp7<9p_f1kT$Y&`}kXJ)g?*da3roQbCIehJWVuyUe`%dr!7(@YIF}YlrYNU zO8{n0GkQSayjU~mzZ@n4&71TzQ^UiTaY3?AX!->uUSo1{%ch{Qx!JY9$wKXf`Dbw*k*;ZOcv>aQ&%tTA2BU zCDHjlGeZ7oCI zd8G+%)CkXDKU7G=W-MVo3n9snG#&R!2RHi|UEzx5r%OdZkX_GLi-Ly@SF?UOa zHomH&&PWacNdmV0{+{yu7!>i*;*NLxAaiN(fVr~f`^|B=z8$%UO#TjHjFrI@`0qSy zdu5j5jCWK6?3^w&8`Gp?;G=uRyC5*_FZJ<2pcOEId#iiK^~+N2dx|JjrfxRPe0X=$ zc{o87?UN$ODkEwYVO%xU^iu-{q5KC6If0+V2Vu@~W;WFJQoPOMj8}fdpI^6^L^{Ms zy4;2~hncLxp9wc%oGVx{X|7ROM4#_4)8&V+;dpnJsV^R@M|C=7b*n`%fUk$5szHh? z{}qN``aa;L(98xL?I2TJ=J+J3>Py~bw>r_y33F!*Gcq_|Dz`IKP+;slmew%&EOkDd zFC4eF>FZ{?eYjb6s_O?D08gM`nyO|9hGCSEM81Uw)N%5C$MX6)hb#{-DYHz>xtHcg z3bdHY)hG?$vkwI;WA;+5TnXc$!0?>6<&`U5F}}B#%XG=J>fJ$5rEOhjRdvTU#`5lW zv2-+DRhZ-@$av6RAg-PN3o}HLnWH$$hf?#jqSAR1&I|^K>rojDuk6AM9bb)U)->mp z-0W`9po&BBW-hnFNtGzAF{-PfJq*=G#wsTE;La+I~iwf!L>W@!Dk@ph$UB@Y>(z+~e-l+T`Nq@7v(!;N|Yw;Opw{^Wo<4(beA|AR*h~>-FB`^!4}g^ZDT9 z?A_kq-{b1;@%Q`u{pWLtr>CgoSaI(0_3Z8LzbOI z;_37C>hI>~>FSN1J3Bn`^Y!WN^|7+E;XYdF?)T&9^5N(5^WEaf%FE$BTIcNb-{Iow zfRpQvpR25`>+9{$(9!bs`rqa8<4a}X-zW_f*TiAV*6MK(ZTaGsd0^y; zFA_IEx)KbO0!Ym%J_g9gA_S|?vlTz$LZZZ5FA~4Z$2xRf@uzaZtFVxWBQ=0n&kk8w zcD31XA(XUAtE!sKe!mOLiXo!lfg~9lv4snbl>GrUcy6Q%kPlQqLXe&m1mQvekxG12 zdJbxd7P&fZ_OODQ%(b3vY3PCb~G^Xn+l7vD61d?zYyF|B0>!c5XKvGU1 zD8P9@gwc020BYf+5*Gn3i_6EkD7cR}AO^_zPza91VqK+xY<$ZQo9V(D3hD5js%d8L zP9Zpskenbz;doAHq^m~AVSspkkkxNtD0<}Jk&+-_P_VK}nX8Kl!S6g?P)7=JQRJtN zg7=5XHjW+b#_|*E{R)%}8w5k0X%K-($e|GI^->!t_6#9PU)69hq^cz!ijumjKlCBZ z2thm@M1dr<VGS3iRSt41)LI{asM+FTM>)amuqhp5^ zM_5?M`xTA1S(~M>f&qv=v*N>-JGolZ;mZ}W-tE>ywp+fz(Dw6A@^ib!5S`^7UkO>? z4c~oPU(rb}$9!F{uk?0@T<^YKZ;@-{>+V{ETZ&wM*c;P<(xeqb7E;3Q`vTU z1j3YI`V?`DkYkB5?rS*@nZu#E%8WrF->OO>U)TYKHo_L2h&n_tHW5xpzzhzB;O~Dp zz?jsv#U@G->=9us1u|V)(#RAdvnSBl1RyGrjF2GE%PC0jCWG^PE-gR|K@1?;$SFiD zcf$aNjGJRl4TOsjjNj=bd|jukB)yxCoo7fPn(Hh}k#V!@(&FgKIVjZjwCeQVS=wj zf)Tk=hR9ANXBs*8#5&&dqzDd$q=-pDVF)<{0>tRh=pv2&My=~Bd?AjXBwHT ztboAlB0y9&^r6|N20<%TfLux=nlq5lIz<4;IP*cFr3CT6H*$fi3vd*J5gO7c1f4X0 z_^^Xkr-2|2;QavEZlzGslR`sz2p$wX6ydQKbFk<|C~A&9ct}Cwp%6+EDB4nb5J5k$ z|JljzBw5$7eQiR8{k{LpCVlAyia{dCBY?;%Xx)R$#;~JQA3_$&EgX_~BK~)e0z)7V zB9O-`KpwANKS3hwcqEC0t>q=$S+urJAhVHpi1HqmpgaT*S$LR;IP5q$27y8cZ@&b2 zlLA5vo5+-BL?Ay-bE&U)-KNzwO_6C-krl;J7l*PRiE_!58PE*z6j?cofn zs>%*a{ z)i%!$S<#s0qAOr7I4pEoZS!U;4t^QcAP^J;G9dOigwU|BmWwCp#04UW1dy3P@ZQ}^ zWoC=c+T#gGemoH>HX!E32!rt!2)-xoN#M1wNE) zer01xkK%R(@4)(*0UA4EkjLn(^#lxCfb=A^?f^n3W)jKPAQT7Ds;Xd7Dr?$nZXrqm zf>3m6_928NG9b)IrqWr1D+pjw$a1k*+)rE}J;-kNQ6N-3$j9BzeRV2KWio*@Hw&p- zr49^%0;lK`MHJ%q;R1gX4R0YaUH86ildwW5hAJMKD&Btntqk}sINe4=@VzZMSnE9tCI@&bES znx^X|T}PgBA}?pr)(VH6mo<>6c*&S>F~V{N4!W`<1-u(J*4UxltA0libe4rc!4Q|o z>GXUAnfXM%olf6*U5QIXi6dTu$J0mRrbZ&+CpT6s5Gg?Hh};8$Ssy`A(`ajTUk#N@ zMA?c+-hT>GA&5=k3&&z1QgSSk*nnvKc(;0;rWg@Gm=T4@unUA8e>pXS*0zBl3ik)h zRwW0wx#dtpp%6mTOG8PHCaKB7f)H5{d#Q>*6_ixfO*dcsuRF6N?P$A}P5L5B!b!}2 zd2eQ9InIg`cr5$0NUEHVcBj6szP;EZc0Hv)9 zAX!U0U6!<;2*i;iB>eRWuTN--5XgrBG9#hICyr32C0YammFc#nZMw$h#k2PSH(hj% zQ=6gN=Bnwo?XKBw^tNl*LW3a2H3j)$I@8i?481lEPXV|f;u*4(ECTtuUXdert5=gD zZ*O54uO8SK6kpxCy?5JCP&bv%E4fv z>H7}sP{K@+9SMau#DnY7efZt_Oi zrY&K$L)lF&LBJS*mwl@)KdcXF`(>_~X|m;UzwMkh`1U z2!qhFC0YXFu?U1+0wH0kqk5;1Baj3EZworsdp!r2`+W>T8bLfo0D&0@FM>EETPQj` zA+{tXImROQ7E{gs45K6Kiy6pm#*VNj1mcT3a)iSrAVP8yMA8+b90oxI#5h(VOyWUs zj9koWSMH41ad{u8vk+pV{n8GIn;pJ5*dmw17Q-egpYJcI8M2N z5)gb`kt0+i0Ypf+<<3AR62gc;xQnEzI!j1Gx-x!<%U%IlO(0n7e;GBqoQ7c_ z2wxx;sU<4)&F_c<iCRD*5T%HB*NjT%x>uwfjC9_ufd4pgZc97!+#D*XU#YssvYcV^L z0Hnn%M)`1^B^g23tFh2p&RQew$M9C~TyDj*m@D5B;Q^!^f~f3IOL4dnF+O`wQ? zOiS?yQ-VW{L;TzycTP54!*u63HO&)@NU?_YA)OHAx9%!Svp8@ z)>0Du-LAMY4n;A^HzcYE79&U^6v;ZQ^?brwCdpMn&H#idF^T9TjK4ghAnGnkvh0#H zNkSw#iWq6M)^h@>DCVs%3$u9ZNX=X0{vrv@_0Mfm=e~lIcP;-30f~ljMPT zizLonDNjcTkoP2zm8VQaW`yLe1w~p$-eETqf{3^9(H%-Mkz{r-W0JeMbTMLhc+M5J zh18Y|K?*>wx=5_JLJ&Kh*;}n%qLjdFJaW5I2qH7B@nJ1RU~3^G#T5CxE@WimtrHi` zbeDWI;{b&2%4r43TaXd!gINy+8TI?DAm7;SuvXwLZubU4Np!*c0svK35}N=77&Z=M z?s$T*wZ1Edf{+B)IzaLeNiYDx39tb22z)2W3{0pAw4k+)jUp{0zl5AiZ_`i^h4TY! zOni9=RX`+Q;h;oKML@uUg#}U-8Fi5bRyPr^njriS3GU=khQ?!7Em-M0@RJvmrkQ9FaCRK^~4s z5sKG%bG!3RNs4mErOaqA0f}ZE?k)zR5D|#2hQp3}tDOVIE=7Xrm*NqFw0kRsw-V-v z8y7%wGENqBE`)6^*cboTx{N}OT0l&Z@dJR6AW|eAB#S{3J^Q%Z&?JdT)LT|23c>`+ zu%E;y5{v z2-o_E{UwUrZIeV(Wd>@{d(Y9{g+=KMCAheCZTLOaX zz1^tXm86(VC%#Iqr;cKJ3XZwsn3Xp>*VOqKY8p9OupERWGdB!C>dH|p+62K*C~|lR zMOcy%Kz21?p@SsFDW^8+iXYX5FE!jt;+B?DlMc}P$2Z?~3BdZC%NvPud(sJsi$UaZnJa)%m-c;HLpn+E)}d<1<43mE2|yl> zSQ749;;kfW11Sqh4j?4YDy5)Ds*(%m&KP9kT$$?*f6k2Py54WuMboSo2wJLFGPi3&-%El9oTtIqI zguDf7fn&cUUJ+R9jt5B%1dS?uZ$hQQ3oRhxtO`x|3OZ0v!vta!hLyutK0c1wTPI^y z#6Unol8_?18<&A_PvJ4Rkj_I1)_zbaZe9=elgdoDbbw?6lBy#4(hYT1xf*VGKB(ib zd+Xq?o2CaL1Ohn`5OCZlkZs#)lLR14!T`KRKtJ+S04NlQ)4r^#6_eCdwh2fCBmoFv zc@TD%fLvXznRf1U?y>?=MNAFYm%A2U`Gq0}LIMyy_mpcaiGd_F&nC3?OSVA9qQx`L znWC(@r_z~as+If|42(NL=I$bw-Grp`d+fqgPyzS|TsfK`ik+>cAfspf{jxnh%%UPYb)wvS}Joq-icvY<)#GahseoV{`qGzc9>iIm^_*wr-c2ULBGo1ajy> zo)O4P!mukqX|h`q3I);oC++gQh4<3V`=Sur;~Ce9{J42}$Xh4m0gSne#&{axrP_N8 zGGIjp1cHdYW$TtPKq%~z%54-s^x8sTd{18&QVAZQ$ znjA35Jy2M=#~_dd7~4-UfF?Pu2PihH?6R9mBJ06Bc-16qRk`N?w2TPidg3o)AJOMq_6Jlb1Oh$qu+Lj&E<*4i2|ze4Wg-XGgM%p~ z3S4@S{_8==TVMIkn$GcS#uz9FS{EkAmMV#N#qdsosNln8B{oU}u|TFf?_py-Fw_W0 z@8k*AAjv|Km`{6IV%{<)1Am4a& zw4GefIxr#iKi(TYRHw=gHA$@>W>v^dpcYCeh4P z5U@o1qLJ95b^sGXyR+mN_Fxbw2~@x{1z~TES&@I8ozbe(KoEu%6;afZf>oob@iaBk zMyMf?D8@)|#oUxaL2?yHdy%{L0ea<|JF}DRbh}-Pj>o3i4YHsA{4<*pdfqpQFY6X7 zLLHtZu_l*ZxWM+Rn{Wk25R-)K1(B$|nb8)9C$3?O(;gU$u-NZ|AYF_AF zW|eqk9+pIcFbPY-AWSmkofQ!wn941Y7JJu){T6_{39AHh>(uPLp(jZ$k!Z<9F5#@> z84BX#K_v-4hiM^EZJfj*8e*Z-WK`ojIojt2I{5F$~q5R8Pf@YYw?gNqmZ^fy*%0U!l}e0vil z)vwt_vvUc4VoxsGaoIG1lQT*9d~o6t4w8gPE_+1cRBn-OU5F8a+(b*^ztlmH#M%|j z0>x#EXLLnKC>nH_M7AOZVG;&0F;ERcsQ{stk|4;pPYV%`3B-~>3}Ug#lSigaXof-9 z-^9TU#3a!wuq6f(&TypExD*$;{ zh~?4>A{Wab7LqfNv&MmwiiANZrI^I(60?I0j*7TgfinO>60h2Qw}Lnp5D2nD6`WxpG?9e{TXpEh(!`+!JlL+B^eb2BD*_- z*d=l7n1lZNg)d2>NYn%Ah;4%CW*PjQ1Ti2)8c3In!0Z?xN#WT1%uC{VOA6U%hy=%! zOH2?$li}Ybfh&?#L6QUt1XS?5Rle}Idxfq1E`J|GaNur8i;Mjb*cVh#Mnf#EGtF;LUHpIuD5`gw^;TRGHV(k z>Yoy;p(mzGF7^^5uM~)z)-I3)4DxNxxnq@tNUnSoq1QAmx%k^7n3{V(yPXYht-xgW zINSD;AP5D54F0QfF$w?2nGIR?Ywb| z2mv5~P=h4vHG}-LR9N29+b>XhNf2}QNcLewhb1vd@W3X~NEk&)(g8w{ZZ(jb<>0S& z=MN&TbQ)O6_1u!difFlIzr$h->g`Sq2BI;^!)oZ49GGBC7d^=Ia|DNR9N}5nL{XD_MOU_Q(tspIle+F+N&*O2b)k#oc@BQp zLB7Fmep$}?g-&~U~PVS2+lx0%wq-ebdrl6WE|tct8$rQP3dh4 zFK^3fE8=G5x_+~DA*~8Xt9rGUC97To32jk+!;g}LTtbR`&^daTAH!imAP}5blw6)T zOmovDI3Z}9bt;GD@v2#p;afzA@URFVe?h3i`?B)9MG&^}u4(Hm=vo&U0zg=$E--A< zJ%E&(TepdzXZiM`agtxSOg6igJTkciN}{dvo%#ufPN+aM&5FZD1Hr{Z{wrMH@70-S zc=)oAAZ6!`p|}KTv{>w_rVX;X9bsCfS-9S=Pz>mYSq_I=4`1mnDTOm9w;N{1!#heY zk3lq1U`3BbZYqMy-jO6c_{GWbGU>E&C7A#r#Y5CaQXio3LoaIcphHPIH%wcwdfFB1 zby%;^A8xt@p1bf%v`G#XFFHqr6IHadg(Am0xd7)gfY3r&5d!g&gMY#8sMX?J5-~lJ z&8m|A!EuaPJBv$+<%g3W1>}~SxBf0!w42QBIyZAyD|fwiQxt=W?|t~S=J)jEDide^ zdV(G?6?umNmOkvpM52MxA#{$(#bpi69q;lpq5O*7?~iE4i=!D51QH}Ho<=Fu;nef% uc-MhL)&(S2Sgh(W&-W`31O4&f{+&Mz&S#h^H|X{N00003xq%N=lxdo}HbY+9pNhV0P}Bs7p&ru&}V- zLtWY?MD3cW-$P#GV0OvL$?&PP;6z;+85tFcT?POE00wkYPE+q7zW}eW@0!e{000Rf zNkl-Rg)0-4|Mx49x7a zNr00V&z_%jj=h)9UYtBTDRK0bmhti*a9D|5R`@46`BxyF77|!3B(z#cXtj{g`u`w= zAm|=}T%|Sw->L$Nxf~(Q@39sryFt+&fy@aZMFHP91$qT43y~#2N`g`Xi-f=uOE(6I z!}kEPSfl`|B896Om845Z7irS#R;0VS%2)FQt8Qw?$f%b{bdz3!gSQJA7lnuP#sqaE zdx#p6BTuaf3u*sXNj)~tan(atB7jx43rX)F>ur*cd&L@3^z0+@Rl0__HJ4aLh>-ja zl9#BHqi*RSslC^bZe_Q*bdd4b&PbpTEGiEfV_h$WgRGK-xEUF}9WBbFo*lAE-jYxu zz`Uxes{%*XBakAu9sUxxKT(dn77|*G5U%j#)PsR38v1Jx#bSep=|{vdCfLcKp}z+) zfZ`gRNK!#Hrz}!bOI0X9QmVCtWD=Sg&L;ep82}xvd50PSOmCx(He8wr4ecK?fsGaEhEqsI(TN4Kqf7uSRxpUPd!w3C#hM-ahft1~JBR>2#9bmAd=qGJa!%0nEEqK0t8Jw#F?Vr_(jNHduR0Xdpl zNNBZ?(E1HXgiV~gr$N*NVGN)QbrQbG2BcyIfbtjt)CidXhC!MLF_^9~w^}3Skx~}I zHM0=T^b}Gvj)T<HH2XzG+59O!KAPnX0{M%M9j2-GwKsI}Jz3ltdez%UcdnNOi{S5bLn`Ul`o*L&| zaI7m!0EGNWh|fd(vi}IzD}TKQZi%^;_Hcl0efRvSi6|-~xJWvxfV{T=s>NO){`zmP z_l-Z>oBMO*^UDx}R~P*!X-Z<_{;=v*SfsK9#sw+%0;zZQcJrKj$i)^igKP8rz5m3! z%+Q#M(>Ue;sR&>pc`{E*@%BlvWAY=8j%@RP)oD+ylKWwwx#~;le|0sHAKOD1Lo5?@iD=v$3Znq`# z#rorLeKkfl#&A7cPHe{?!w|h6+^}Axz z5YG1D``+ zh(7_A%iA$(up&}BTEcPI31Y-Du?-(CvBlrI&8BwrUHrU{WuJF@b|Nz$)8Ut)Un`=) zp+!zOptyQck*V+dl`zh-Y_A#qI?LA6-P+Ld_#PjaVmi%m&+pXsqFhM5qBIR~W>+oQRzZ4@4y4;Ls#SEEpKhg$E*#rHI48<=KnGRz$>G zk(A|VhlrvE!c?T7nvPJ_?cu$9Tjlib6Y3v!Iv3XzrTT5gTzfw_j>J zl&H(ay^WWgX&#|wg$ju`H=a5}k;q&}*e6`MWK$}S z6u8Gm`e=k2Myu9lh{i*O&{V@A+#glVVGq}Q154R9)iJ0J_ znn!KydlBkbn5d?ATM`M)v8-W2+{{M_>WQuw#|BpPFGMaq%Oa^}ukd&|ayQ>JXVC)^ zSK(iXB!R_q@50?RtZC*=)LeVf!;~K2R3fz{oAKyh2j}YUK}tW3h)_=D$zKFj!cjR{ z^Hz8~(SFev&M6vs)KoW?u>kmc99?`+o@+KP#b2P@4gHBS4MFwz#RmrM>=Rq78 z4}ZmtTfuvT2G_sUBc;e0t4kj^|#=l}j%;aurOx<)V3H4a6DgIbhC zl^h@fUExqfvcg7||AGmi_!D*mlaK-f1xQ=CfERD1J)}6J73xI<(+ux*NtCBKsOyU$QPDo9xKQytqcTYh9ab z?|#2O&g-1l`RDxeJn!c@&*u}RucuB*!a#E8&K*)s4OPQCckrP9uLnc~|KGUI95?;H zHRmt?VwW?k%hx%waZWF}pLE?Z0zt6LagU8@S224b1xP^y2p7`oZGb z_UzI+`tRy87Pq{-$S$W_9b}`1I=H@@5}*c64&Nx^=vl$A3pG`hjA1k3(^fTz zXOHe4kcmCwqwb;PuppU~pM!W`E+JOV{+WaGLlStUEc}yWmsm+V&ApQYM)*|=iZKuA z*2;(^qwlTC*FoE4*KF4YqU#S!Rm{<1{Fj z4li81p0BjxVBrs$J~a1bJk>O#EzH?*Yh8%zeHUl5aKVqYGuv#R8@6i!Cs@f(@OUuR!tx zrqqifknZ&Qx;lrX#6Xi&3Nt;;F`UupUDhDJJihkOoo;V~43{Um49bFK<`9mY7U zg^(Mvog0dgH&j%=258ngOGZq^>^(?I-xa-8Q$)vcm4Ltn0}8V~uTA8D}rIWBIiI0)~E@7^R(A zAVY7V1^83t-y}o1YAQfIP4}IBkP6;!nEZxU-Xv8l-E-ee6ykpy=p^6 zvr52~9;2D`xi{kSHk}MhF>XH;Z|<8bG+?{45j>s({2_)x=jpaaOcD-R_u zg8BSSxYsX-EKFC{^aXp&Wc6iH7ErMP`ih~@9dPtSDJF}dlb_QQX8$O7QRE>etNtz6i6eVIK38k z3q8N0yr;(yX%#ke)Xb%l7{&g5?rlBr%FMPvHhHUL7Je<&(z=TqQ-WS@7Ih)Erd{Pm z8!K<6!sYfMRND@v>c2tf4}TCJYhXQB;eLm*cN=L6yu`=EiSFMI)^2NcRlf9LGSEvs z`5wgZp`1}M$+SNT%57JYReMrU4iv6Zl5f}%qh67XWJygNc`GCyPfgaP3asqbxMa+y zsh^c&e=n8g4iTi4e*^^sx6)DlQO7gT`huKR^L_^=dIXtnWG2LJU;3@wgyVgvN@_sw zApz-5qA;ANR8+48J_eJmA8)qf@-MvGd^t z$0>&NZ4jfq+gM@7QzPiyO13KR4Pl*y9@BP2CtB7`aC{j4RPTw*_FW^XforX-M(IEE zMq4GI84G|K^;|?H2IXe)aF^d-EpC7wih1>3Wg>%GiBVGfHx0f6sPmaC|Ncgc(pU&b zVPWREfqB+W>V zcm{Z-fA{omwO%K0+9?Bi6Sw+EC(>kuK%*yWf6%v!HNsqe@+^J6`wOfkc1M~GrCapA zXLEJ}5bGT&7diEeQ&@9dA{CvO#n>NdVhCjfv*|!gCgg-aq|a$QQbi+?UCpuvV&V

    )PyO*3P)YX-iF(lzodp>&@+w&pwvVQWhg?G&IKDP?LAXtA*HR;Oz022^d7pg zSn9he8_^3W^lSA{XefGjAN5C*zFgQRDb!R?_LmX=%Iy)K|ICYFw+jObE|!Qx&~Kq# z>4YuY{x)@J+He2Jf}Imu0nxVJPIpCucqZ-jh}^^V0yjzEs_Ph0GL)=W;k} zUwP-R8eIUP*D#Xco+Gj7`a-*Pw`e!!=9p{Ly% zU#BQC{(mMCp&t0}NowtA=87F@?bt6g=9Chn{HZQWN)G~Rh5b=mQ}Z04ZxXf9@ezfP zfbWXfR>_o`*Zf}QA9sD59UiI%qrhDws;q$h7|={&$*(_Z6e;K-R~|5Xl)sY_Z726( zFn#SOd`$Avb`P@Q1G1lqmY1;>)N!0@f(3M%#QeqZKQe{}#31vmHfl@|~$g zpJq4zk%5<}Udck~o%H$orEuMSHP5n+rmqZyGthS(QPOTQVDUaqIN17!w|?*?btUW3 z>ICtHsAxv*JK5*o-apd|+=YWd>V?es!?Ez5_CxALKTtlQCL5x&jK>@%mb;D`ROod} zrn8`kn=v*&q|SI8Rt70YM#yFZ%e*cZRlT1VuFyvT&Kd(e&}&W%G|CH$LN{V^b%76~ zN6s^d87jw!9$d`1ff3V@jWz@{64GiZ_R5GsngQ0CC(Ps7#15KL4Ib#1?zEYomQ@eM zzya!AN9ZngwC{+4^|UPK9I^L6p&&#ZeDvb;8>!)(p>)_?XWp%ZtgX;(M49}G8v_m~ z1pGauMS~BJfkm{S<+77yVnIl>-4?la9*2d2(7C&O7=;iq136XFV#7p*84Q2xU5L*X!s1bsdUvKnW?{oyIY} zEWu;$AA8zj!ARcV4hRLhLY}3LB~nulJWHB<%z`mFzYcR+<>QpB!?wGPRR&#{xi1^K zB@Ne9+FO~1AiF=O8@gld)5c3k(X-^_K%!3!_PcY1*au!mhFoFw@B8Dy&%sL~{hf5X z58t(2I-2WGfy~pSKNimcs7md3j{~t3_hpnASI3vQN&VeU`Hf?0{QhKjef_!DLDe9d zN>i%vtcur3u1a1;YnvFe%3>x)2x=5UUQzQ64|G;Kf`$%xqByV#({`%nuL{)aT{ zy8G(g8hL?uMV@JLeLo#hm%q1iZpHHK6}}UJ&&OcvR?gNAQlrlTFG@Jd`1)smgd1`M z`xakz&=s_41D5;a*I(=sB8CJ|1e9wkmF(40P(QH6cud7a4cJ^L!VvC+Q|)|3PE(mg z%}EoV(XDJYU*H3QKUF%7s*yj9VMQ2=j=Xzb-pz!N1Ez>W!934hEz@kh;aseI!`r|! zNpS5eME=_&hcXo^e}>`yH-1^4-AC^M?mW+;Z0Ymn<5M0N)*#icEOw<8f?z$O?4Xa) z@M~W@fVk-X7Tg?ERtetz*bl&l)Z;^IU8~2->`!fx`XU5wUoBPxnQ6t%IKj0wnu9B_lW>` zLQje41Y0kncoBJ0u=a4jgR1gCe1J@JJB4Vewf=*l@EER@8usHk>N={d^|$1k5_)4; z5NulJ1IgH-w&~?Z4pKDg8yS0dJr=KpXzj9}c!F|+Q$%NddU2<-tHwAuH4l*d+GE6G zqMtQqXuCqGwgQuu?4aizpjgGQ6`0rRbrZpeMKmbUoTKZ^vq#Lnx754NC@erOAIN}8 zS%=Q5JRV-_G3ws_#ubxn)XAZ9&*takwcxWk`6RFI>F2Gokr?Le7hvIvnP1i;VFbJU zoIy$X(?a$bG+y^N`r)0r&rkoBc*=$w&1}N8}__rA%PsYzJ5tM6FKUXD8W5jL;g0>LaWzG$0?y4#%

    P>*d-AxB&!k=HM*|mt5q-K}Oj8DCLvXc&48nm2vpAUnyyI&d}{MeFu4^;VB>B2;Q z62SJpK7A#I3m_guJNe6mA^X_m^A?$ooPTKbC0yTvOA_teOO0%Aw`c7E+2*1))ksl2 zSgC1)&coSo+b6$ZCsGcZeb`g&D(}AL?bpPo(Y)u})<8T$kM{v^suS^Q>YlrvUiH{yN4azCL?MyHp()ul z_L7}6kA@!GrML+`i1WEL|Mzsqxz z_H;bw=ETn>=6h3tLF+mm&9DS~??j*kPtDK-JY5bd0%D8s??PjJsgBAzJoB{RK7HNd z$#U-%CC4Y;tG6@8*a^}E?WW!v-#?8~BA@+*&dk1Fkp>Wg)9nZ0M$%Cb0MdEn!6Ni8 z`I<*1;eL~;3Za4%3+3;gm+rjHtS{XM2VtS zs)RwlkIQlD_=R}w^cEurqqCJIb{_{tZyVfx;MbmKR=7uhlpPJ{inS|}GV|%>Z_8iz zkK&&p#cJeR!j^xPZwf$P^Ae-d5(mGmq)4cxFrvg3OnXG{%Agh(zjK7noYGsL;&Tu0 z1S~^~t*-RJYuoL-`d8b#3PZ`|?;kAF-@pe%r#;R8E~EG2qS&E0E*y2%Uj@A+ETK1d z9THQ!9MoHlck_3L2XiaM_I1lZD{~46zA^=kvmGDCe{p(moB+d7!O5Bh+Y=U<9zPP5 z;SjKY*Em^c$D!Z)2(p%*?h2pmK@*yjobt|y!sCi-rxFgCI=C#RM@Pa~iMihicX~QY z1&d_O4Stc^M_&%3QTW^O$X8*4MQB@({GIzQKNb&me&6BH`KwT`JD8gw>ull5FzJs} z{`603!)?|1@hl63y8Xft8deKn<|b;KjCd6vnz{?GZ$zQhlpF<-f!Xaa@xRLg2Hr?NE=6>9K| z>0;PZTm*a(AA?L36Gk1f%@jVV%VB16A42DlHOWgF3=spS7N$Q{%{I+^1&e3B2WvJ_ zdhj!OuION_S)jpAx~ustmKZfklnoKI5D@_Dj%wHJ%G4(PBX&y09F2#+VsBtw9A-T= zcqk`&6n8Dn(x$><`+;3phBaP=r?%I@UfvV&D{sc9yLy6uSR0ndG2;<+*K`0*dd)1j z8|}tB_Q?liE8i8LU~&aTx(GO^vOKJkFkJ?}nJ4599!_W|%MLK^)HC#s z=b$g%%dvsO5xr@|$B(!U*R$5Y5(3N_o3@#m3A&Mw51QUMUN`7|i>;ehu91u?mc%&J#GZcAg9paf}wYtS7!z2I}U zp`68U#1S~V@=6|5nSzhRK`s4y5Y?Aj5sRxwxZU-Q?2>tArU!w_Ut_-pd~e4^*lnR^ z+$Nu+cO0@Iz0FGj2|RzY@^0)#l}UoK1zykrh5y7r+CAM8VE?D`l#l9r%E5g_kAn!t5SmlGy0C1agmEXxm5s5MdhGQ~jf<=^)Mk)g2R z3WlOHw-cQ$sP7yX0FT*xbP#)iSks^IL{>BpJ!LrdMsJIGRa}Alf@^)M^hjI*)fA9! z-|s2h!2G_4xaE_N)-#saZz=1j%JTUS8a1{D##vquhbXm6n`aQPtv7vtba}Dsxx~VM z{?rhloQA&a&Ao5Hi~rXAMUivqN_WcQj!V-?TOXrS`lO3tqK(=<`767c#6Rfu>x2OU zy%l;p&CA1nP==@^3j6U3#rNm6uPTGB^xrJbpxyA_Hc2gKvjet7XK9JuO}N3&*c7Fl z1O>~fY3BC6gc5tiJjUx&Eu$d_d$I(L9Wc6xXD*GS_hKg9I&&P^8|OtmU32)@%=hK= z@}u49T~yu(XAuXq$6>FG&SLg1q=%hlmSlEF~$V78$29ylLIWlwp;M;K77;4sVcbpP5x4#qCS1YHm>)?qlfZT&|FQeM%+ z97P$L*`H<~4pu)tuwSDS=b#(J!>Z0}nodPzEKLo z_hQ_;b*5s=EzxJ!p4)BDiWSUHG}n8!Sw2&KkqA|dA$J!$|Nc}gm3CJf z0{knGrL48m`YBBwT)ktn#FI8*ab7cnY)-F!u`FN5u@nS&i)v^2OcQXQ*qa1kF+WuAdB<~w0@uO`Cb2+3UR$^7aMfWR%MKg>*qdSJ-uAEJOYk6wlKuSmRDpwPen2VB|vy#Eb} zfvT*k)C8!CNDwS=!Qv1R&9&KSE1ccLt+}+E01XmnF-!?seCf)a9=X6L>4^K2OK5Jr zFH(n`PrGqo-|waG`zX)mK!VBJk)wtL1(!#G zE2wLHWOP{+@~v2b-);@x3LJ}$4M((cS7k_9byVAm2-Fo?(y?|=Mih~zdoi?xB{|T@@;R=;>8`NJ|G&pDtv)7COzA``^B$&7wacZ9WKUAOlmzeQzx4WQotUywr8(C)cwc9=n#%ixuCu z^g$kR<9carW_M}nsXvv(1G)>ZA~Vm89=#s3ur(kg`JPXM3n04M&5+0HP?Z%XMt-@= z5!WM1gA950kY0fj>IuoEL+LmlwDRaWJtmIT(Hvh?S~K)fVf z?>N>RCCNWM)@jYTNE+Xp@-IETab4m>ckrN|V$%5}Fnvlt2x-;@P&DQjGqf2A$65^g z4=jb`Y`jwbs@RsdNa#ErMjz9|7T!5aTE__of5eJi9?kBz2Vb4)QYziP%VC7VE34PN zycz)08R6;r3+AJ6rP;?gQk++0y9}LJ+0^dfJ7dwzi>dj0qeAySc|*&CwD;MdOkELU zbK6dApM}`;NPYP<$omo2ufJUVfki8IAUJ^7mZjQz13-f5c+PC9x50*_(I&&Vu zjLW`YgxA-sn#w}#*Ay#^KqWWkw&kKENY3%UL{ zRkV4!U}f7W8htbUVqJ?WOt9(fn?5H_UMONk4PX4NcFmW2-PL73;8XS=fK5%{#uoh? z{OyO%Uw$I(OoabDR1stZQ2CLDXryU_SA>qUve?ujVOXY85o<6=1yUzy9TRJ(~nstZSA z3^^I>HEhhYPw}cDOgnRg{YmxAZW9s;5wZ8(xrhuauBA#esegGyXcTo&t#9RuZ>rr8=dI!|gUVU4B)cY+D^nL%Gi`>wG zR7LiYAIuZxu9`)`aM3&6=5i>*@~&KhB6Yk%vb2)WeX6i!-8F#NT}dOe*+)h|yJZOT zbMIH(;xYBX@(yNR9pqT)lQz1U<~ON3M}NkbBu~HlBD+df-RtFbp47HE?0J^K%7am2 zYn}mL-hIg%N?2QyrbWZbxvpiKaMqOCT&m4TBOMR7E_x zpQ1Op6YTP;Ma3_F{vO3Y5hew5toYI_>NEq=b*uW>Q%+roHy!Q9fEouM)k_7F0Uhyh z!RnW@#OuL_EjdbqN4KdEgIA-Uo}jJ|HQ~3s%z>x3(=-&^2|a{OrdfQ?&B8+#k)z<^ zJTB!;l2R;W9=oHkNETDgpZ*u;0^O&G_km8=?n?ScrWis1SqKoBjHCm#*XZZ}SLTz* zA7vYZo)}GyzABk>vEYx$Ek`|HR@WqWfn*=1#>!?J@impEAGBFIx5`B19-vB2_To+B^>zL<0W4D3f?S>xAHbY0DdVi_Zh)J**NsQHUSN1Jp<6t?9>+S8;iKg){fiQlC@tUzJ|ZE{`zL~g2rdxGX?&qVuw zryWwb9m!zPaDNjx*0w*ce^jQY+6{*N4FXi z1K9N-(02Vs12Bmj;lUiE+*8LfP~oVv>%_hb__EcqjTs_g%c4AQFB5qPKtpIUFSD4p z@|7~HsKB5r-+irAC+<&eE=q`Qp;tR2@P{|=eWsSvit;H|X?tVt+U;2@IexV(A9V$y zs4R6wDb3s)e0ZK;We0p_(_52nYhR=9KA>G{gheR-QkW$vk!C zvs2?XJtqUXQ(j)W{gRx4ydbOvu4x$0y(q1Le*xd9XP|1k#6k{{KTbaTY2{+|f{SW~ zTAjdH@tk#N{{NF;8NFbGjU%ycBfaL8}-4f zCu!rXZ|er&zzzE@>3u~aL#zyb{w^x|IGI(fVXOb(lJhK=Y09}LBKhjZ>Q#lJmBl8{ zr{QpH<@7_*oe^gJL^4jA0^eQZ$UkW99jBi)vQ8&R6CXvhwiMx464h})D`|g?*PWSm=2z>Q;8QS$fn zWGrR#9^bvRAtQeV)P0To`JIyJO(Xtj(f17dmB>Re1LHJ>*L>A>#}GtMdY(4P7?U+< zj4{0$imE|wVM56Olh?jo=(U2X!-Ck@4q+M2nHDj!9R!1wA)TXQqH^Hu+c%3x@88YC zM@F-uuyr;?9hih3+~a}J3Plyuu)ysn$Q62dzEiHFgiH6v%%j-`=ekD?T5<*(iNI#e zg7k{8D&W#JS(t|!FNyhg#u46k;N$tS>i6xpOChwNOr8VNAl8bI84PZ@4yF5it|Cp9 z7f*C?dY)D|5?TZkn3=|?-g6-jTrDx(sV$$#2&WCrOr- z4q;i^WLUA!Zh0)Wrm2$j3lTaK0qPEEHIr9vlj zIePYShv#1TDP!}pkzn)dsM6~LAFoaX;Ao0$#JCte&kd1WXJ}6!4u=rv8rrunkbXWz z^G((-_|8uDaVHOLeua?5hD(()*&D_@2Ys{T3Uy*XVc8C9Pq56eJcj8hUwx)e9Jei| z;9e?nv{pyjEbqZZWMz#3)M%j7t+ZZ~N7(bt3c>bFbU%Y(x;Yqrg zi&#}XBoNgQboP-1N;ooH;OplAZI=n{#D4G+2@_9r47QlorQ-HwD-gO){AbE07h$KF0je3it zO8##x6;a88Dg1}MLSK@sqEj85&z5Oz`d%La{3B8?jXP)zffLKeyJ4qQ`ek%?D@L|} z67P8XGlZ~-_e_99!C@s391!74b0%kj?#ZZqDN=9Bd>tg<_zi&Mp3BJcpqPU7f>d9A z8#-u78LlZIMy@m_X(xY0s*Y5y5a$^tdhBWf!9Ez0&&<&BwF}FIex$bQF$Z9I(FaH} zLoY{&(eGYk6^OY6rSy}7M+r=HUXkQ-jmRDtt3;^3`s+g8#7|D}Gk|9uX3aECjnxPp z{!K_?$$sBkI!I7)TdZ6FV)?6n!OB2ub#^^qe6-qmhXU%3_cs-m^x|z5j)UN>hwsW} zV{`Ufa}T?iY`pp2P42iX`TsL-i*vGwfA}L7hh@fzS99od@@)sw>>+^)QeW#81<=<;Nz6F@=W$so12DDCIkM4w$ zKp!8|hd>^9^<7$cW8C_sK4B|@=~1tiYG*WHBvv^P9au&?>OO!Vg!Z6a1VG*v|M9xKG7fUJ@$!hZ>o zpe1P%h7rv{7P4da&lC2t;d!XlKksozi=bj*Xhlh`f)|3w&IV3uG5#>XLdqeH6xPyuT{=j~7D0tJ1qy1pDqEsYNY;z2V>5UP|2ghcbc z-$k+Z?W|$_CjV0bCe#{DYtxt*Xef#|I>{6?=3-h_=}6!uyDf|*h7A{&D)c56z#i#Y zCxg1VleTH>yhsw6)>;{JmZOLGpZb8chntCTeD0S~^5OvtnZURHiLJ@w%`55jLz^TU z&ve1N+3o86MvA;f4hdTkBt^|amhx=1%3da5e9PTsKiJyE^|qYab3;%bZKX|QO#V5| z(`mjyyUEou&JF|`f2+O*i!LJJA@0SAnag(__s%%0K4W9`J|u*K zUy9|COHt&x1W*L>6LbNl#xh6MtZ2@2v9b%y zR6AjUd7)I?;%fw^H$*eFqyDbod8XZQcxbYox?0gq z{IpgJDwWL+3Q-jLu0=sUepRm)dJ2So32_(bzrED}(&8hISgbMww{clB2yt~<`6%oh z>|;J|j)_b%8>quq3-hwCSGWSC`=~COFL&;a>?g;?K;9QTu;b`Okm^!8s*^gPBTKY3 zwaHQ~<5gdWlMipMA5?OL@DfzuRPz?|$y%2_?;S9FZD&H&Xh2U6xQiSdR^dJe5V!dWy7V|@baE8=!KPv$C_SS^01$@ zW*c48;;*&ZER>?p1;d&h`F0r)xgUH${Y+{X&D>N3uTJtm?vdn-bFuQ7ZHML*O$5$3 zPx?wW(Dhc3Coro1b*Ny6ky~{016u5~a@mA?%O%WTlh(3(djs zTs#Lg{j64|-XS9uE3&v=q1%g);X)(LsHv27l|Db@Qnd+;DCthx>0$r=y_r#+mCsaT zb%PBWzzGmQb25L&W)X=BOkh11MhZV!f&8rLxNmdBlKVR_Hb0sCZyI&AVS3e3I8{<} zCQT9YaF4?`23~c86#Oa3WF5DH3tGH0dv}`4n0zAxmxuOI9Kn5K#{n+ZF0M09B$CL>-)S{2RG3HYPj4R5tca{+*w^erp$VVSQGYCxzHaG-VRT z3*ZcisNZrRO`L6?;7NAMHb@8|A5(w7_yNw0s;Hd2N^t7zfo^>#5&yC*!m?L zwLaEM-FJOFGij2#$47L0oWX~hIUTH5dSf%%hjvfAgfTHRP5kcnp>&wxDC%wre!z$> z$ysR3pexmU1LVVlz(u7@@tlNw}+UK)hi1_rrj z*3@@~3;#aFoGCqx zvEHfc9|d(Za-ZE%Bbry`A5HiiQ8l1x5aOnvW){(V-8xaz_#7^X+3%ssM*5`xioR2x z@Z!MNT628>0nY%Kp?+$;UZp4p<={x~yuLpb3XS5vkqj-$i&=3B!FM(iuv9FSaTYFt zfeQjHJXC(^<;2wSOAd;x8P-CPU7mcgbvPnuw|I0RXU4AW&Y_qYFK@a(0Wb8q9=$+x zCC4+%w#liyUmC~8ELXtIxn?$y<6(I9C=9Cw6Qoe++Y1DZ7Iaw-vo3(Aeayl8!oC0V ztK@P#pi3+k`!2B5;8{mo%)qII5G+xW`Zg(E0HpzxDR0WdX9v&_6zh^;LQ#hz54{Y5+)J9n*-r17r(WN)MG+e z9&Xe$wUX2hSC=2|^pmG{Tz{oy%qyWxAra~`$lUre$Hn=%1gYo})^kLdo2Gk}K@MZl z$*H=Oy~5M|SzGo?8}Ulm*62+Oc}SV!ME=O&GNOlOfW;r!_2C2ED8lt58Gm7+(!rzNS$h!a4uZR4e!RYZ&BM z)37t1TzBC7lhqpZBV+!3biw2houIjvG{X`8p(Zf%$GkpS1rHSOZ=dlt$JfKGZWumP ze1+capWs@OY~qy%;@w_gFMtzXrhnaqsmfnXWi-x5ai{;#j>{dS7SRvXGH4IYFV>Yy zTQr1k0xUh6Ea{GnaG(M9mTKcs1_Mglz*x7h!+KWiRUY@Po?9bb3FW5T{e*qTT z`w`~jrd3-;1WDO{K2%UE7yf|SW?@Ro6llg55H{T_?CW}i2Wg5yrF;bir!?Um48+7= z#eHNI~6h~B&FkEU;tX`L~_Z+}*W3$dPP4lyF5=?~7dkQv-N&W=2JnsO52 zj7XIFMrG5a48|~^Y^`<%2Jis(<-W%}LDBM08I}mOi$`ETa3)0HVluL)mxpVp-&3y2 zTeZUxpywFlGCw@4OIGTwvSxIen?C1iD90rGQoVyg_AFDlq)=7@6Lb{or`Dac(zh_P z=}9wO+iZa^obDu)J?jq?%5^rVS`qhuliytAE85shRbn9*8X^ItL*l5$Dk!(XoC8(e z;GzFrjt4r7-hrPYu*)e0>)S>jFf3z&DmDU%(J+<|r)JC_PJU5UyviXgm=%z@NRuEK zVYrR2AUFEkanUFh92?%3~ahSyWL=%X|zcjjZoQu;za+JxVM3HIz zSv32$s2-Px%R{XPH}@W?ch8$fbq$RimmIDJ*xZ6o%1NL~j;QSRtA-a>hh8=Q!Q`&t zNaY>r03EXZEoggz6@PJ&P+G30j`#ken2cF!H>WY^^dQGjOu*n1<^Ro(-0Px~)U&5( z<|JcRMcfzfPrSz(#J6e-z5i>J;eDTRF&$L4zYi)X}PJ^SbvVEFdEh%_a1D@pQXvl;><`_g-PBd zJc88Zo3dE)bMT7e;DPn_3WaLEVf?CQvJ|Py=?5O4Z--&jrwPY+&`#0FNJgmi-E;$P z-2yrh@JWQZ)tnqPc;vR;$))fB^_i~`KKS0K%sXj1Vm)U?Ryg3I%@3}?9~814smVg$ zR_Z~m(q)u*$w}3d>%!eYl2J*o|5wGbU^FXW>XW`KPFbSe4PJm5V?Z75vI*e``-k>8 z`sg?>3m$Osp72Q}O+*sKm!d|*=)0?lhq94BAV0n$3%J+P|41f>OYB*AQqw5(8pdv- zm+iWqWXu2aDWtp^>F)Y{HNXxlC1vM+4{H=EXYPKWpNamW7*%{AmL=w*sD+>1<f}qeE2a75$YZ) zgbOfBIXHW=4*hJ|VjL*gLA4Ikv(1RJ#-x9~LKSypNrUcUQ^B}DG`XQC>SV=%z|)R) zM`Z?C;11$9tAE214yp4+oob`&|G)7y&MlA4xLue}$&$wLRg7V%2#Vtyn?rAf6C_%H zKv5d<4cA4X5n^@|aWq<$2-{v`A3t5ioUU0U`SCCVuQJ&i z&GkAH0o#-PaSzuc+Z7zg*F5N>C4G|U7C>^TPZH??%-5`Xy4oBIn{sXa%TjV(0ac3<5Uxe?TKY0~r-pdJTu zDcF=23VB)-W05>wVd0+w7ubJDUL_zeWy35ZLHTzp^iD+20(%0%JZRI~iMTL*4#&!C zGEs2sgSEB#gQ(z9cGUI<@(LFi@{kEqxGzbL4Qw<758!?3XL`96-SY1EC!uV;EBqy~ z_r(zm%#d9IYvHrIr8Qi#N?;$J(TzInFv>0yWOP4oDPdph%Z6C|kBRbw)lZM!yvmeU zt9}=p^QFCaJYP`X)+bn zzUhqB?`q@@dOAwoFj>)=k%7-l(TpR6qKz)ein+2Y4o{B;rBr6`B72NNtsl>{jBN=1 z`)v0yG6Y_&n*S10zG5TyKF?T5`0Wt36iUcIlG*7=0wx|%57zwc^IY23>BHZo!neP^ zH5d9Hsc~CZ^u$;5khK!T8Y7CfeWpySs0hlwRhR9rCGajZ$$nU0=v3La#|Ucg9^`du z7)+V7aC(P9Q%~#rWs*r2M%bK;EgmZ-24-Yf%dtxY-%r30at&vb`!` z$MU~#Pk?=I_boO0j+B0Gi=+P#@1UxEEx&(yml1tWwtUAlEJ6ca{g)GP;8fr86;MzK zipW<_Jd7z=`jys$MyVSH%a8hCt-8kcpclu-f0wL%InD(+Phj}_Q&f~8e~biC^_1hp zUhOnGzaK?&e!NdF#`(LW+HxmleU2=O(&c4_zGb}P6Di_n$xJ0{$p~KO=>M%Z$nprz zE>YUt#1)=PLKG)P^&byY2MYGXET`&!+tDKZ{xKB@<%a@9IusjImv!@F;(IFKy<@U> z1yfc@3ptHptVCje-?^}`?0?QstkSGhj$3rP!|Wdb^ZVZ9L^&rFEQbzx5&_nN#5b|a2y!KxNF}StQNVAt)mr0RX zmMqy%`Akk76bk6BpnF#t+6CaWRxGE8^{8 z$jj!*qau_rs(m^JYYB7AtYCruSP6XPe0r4uuhyV*W>G>yYy4i( z=V5cJIsM>atvrOk0`_b&-5}6|pSS{nET1nZGT7ZzK2!lp^!QksD%dI%dER^w^M6g& zL4LK%1AGlcZa9KE8{j5NE!o>pdg1JTGyx$=vRf`1y}qxCpQDM`A7xK%00OEVO7)hsdw|#dXEA zp#C0Gj8QPIvooX84>>aVQ1G<)B&F+Gs7B87Kcs5sK}YWyt-Xhjr3IBf7<^n$UaHe< zYTp;vJVUu>vUnfYk=ggNkyh!}=&rQ>MeqGvPi9&|o?d?_kCK~3aoohbI z9wIp6(Igo3>&WhPp$PTc(6Rab`xM9FFYIJ6**0m3b8ihn>xW37Rl4=1^V-!90$v5S z=<*(_m8LP!`?cXD|?Fz07l8NV6Ju5u4e!x>vi5#qRF|bgPV~ zXa~g5cVbw1f|`=W?#S?}2|10EOudEt=%yq4kjxDxmE8budgh?T`vX{gVq> z9T*}%Ex+1WoS0}|^*nTe47Qy2jymbJjacp$E`H#!JP9uhI$l~N(C;@=DcA=D$*H8& zx)`bV|e_lX4qwWWdcpA5Hl}JjOVyR}c94xcQ*hMIbpTs0YzC|!73g6#Bu{U3qA*LlF zXmqtbW!*32(Z!_==y|Pd130|wAo%t9Zj;M}Ft>p?{7G(JF;W)YFk`O#GYkse3;2&Q}XyPWj310lBcT` z(zM}{wB~{dKQRjB=g{$-!h69JHsFa6B0Q&wKAS#KlktBwl03iroF`3@X(*yh$>Aq2 zWxM>*<2jgu-aR5CZQ<`KP~++B8TEH#m>kcJ=mbU6)yVXPOpmm=Z0m|W*UxU~4p@#SKq^o1cfBANpUq956D2G>p>?R!>d&e4MW#=_Z+|q1pa1A*#8WAC z2T4k6aVX1x_BwridKyKYzc^ydxuVquS(RVh4qW~g7r*aApOc#Q@iKRk|3}OdxWCM}AZ> z*@8n6C>NNE4a}4J$$T3-oaXbhBbqPA6JMuqHLs8EXsPj(pVJdJNE^xOL!OffQ{&&e z6rQly=SlqHp+18#Pgw->^a)3I3Erc%Y|rgVc~V`k*2_qzeTsYi`WeZ9TG#oSrNLSR zF;J+sN$p!|Io#ywEa8<}^7uhgnxC*2Av~o;MC!}AYMSqGynLvu{f2I6eK36jthXd4 z$LE~QDWs}C@rma3-IV!B-dTG*=ggD8_U9r0Ai*n7i=d9@Us8cSzMRXLc#cD;@w`cp zk+ftI4_2Q3$wzTvNsT>Ts?craCzl~m+GC7d2z5XaGFw+_X=fk7@Ymg>d%BN99)YJ| zG@h~WgelLNGX*S60kU)EKjkUs63yZZ=62W`X$qzN+!Fd z;zu4I?u%+}d$WE7HJcuaV#7%M>%3IUlPQhpcHV5+-n2#t-T4P1l#>#!R^#oNLTJ|J zjU}Xm$8&8wdA>Abj1!Ikk<788NJxXL0uOZV8O#}^@J&ASciT!*p3Z(u-_Pyx?q)!A z(8OQ%)%HOzHM%$JMbIWKY6In0^_|Ppus(8ar?NMrYCTGPkGCDernn@gYa$v@hq{x? zJ*#w6(`_*t;b{5{iRVm$E5h;NxpX^Bj*qUAiF zbDr5L(eX(`BD~-*elh~;6go+&qJ*E0yLdZ6t~4d}JAHWgY39zH zxf%#|q|hX)vx+vGPRcXJ(TCt1>obYT-zkOwtQ1hj)9I7_{D1NMt^V$A1op-5(_lPr zHgq=zDnUJ-_}R-y(`#DAq)+B!^7M@YWINGnU2xh$lL5`sqH&(vad)Gpl62>sTP@lb z`OMEr=$m*~2L#%z4Y2mp9*n0gHFZ2Wt0+$nMr)M%eV&q!`t>|)$8{6%dIi&F$P+Nh z>rI}3^&^49{~{!=W`aCbqVoLX1|`!AN+#ih2jm6heJ>_Kl90 z8$FJ9BIYU-%J)^fy=X%)^ns zKhk`}E$8{Xg**l5$8+VIuu7{Xc&dF6LT_Vi5KA2n8x>9Wl#@_}#wI`K@(?mTtnv&w zX;g$_JLmLPatJlR0iTob;U|iwphh4;qv`YHu1G4bj;D4^q({CWPAXF`A3=|<{^Z0i zyXfv@(|Go88}L`3=gr}Au7!!v#D}L&J@VT?MLOt)hoBC*`?)B$}pA^>{xk-OQ`>ytITwJ^a|?msdDu ze-P>cz2^{`p^@)ZO~#Xf%0y{2D_!Slnz+}f{zt5p3u?EQqS>~{OA)CO1yiIvr^eGw zHRToN35%4Y#nHLsAIB5Zzo9-iR)0QWGOQ&Nk>n43_%UhEW%!eMnvK`#Z(q|C%Zoy1 z0iH~=KNmqtddDc(!(=?oCUx;v&xVsGQ}P5tJPmS^bm52M;=eMDD>U*lP3M0*?NadM ziFlem6F+{=cO6fiyYsJ@J_r5|osvPobII@a<8W~K$Ot{DHl02fsF>;nc{@Hlp1m&q zCf}!LzB`P`ZJgsLWs&{yHD~03rY~=qRG}t5pXUSi-~- z#rsqC8XeN?Jtm$9JjRjbqnYx=59Nty90Z(yJf5-6Lu6zF;HFPXOw3cw@e~KPDEhY$ z)yKO(m#SUeDHKadg3)U_A$|cdjc+L(O-=+1Ac?N z{PqK=>o>o5JY~B9`qT{nUR`4OwVT5zaS{m> z;_-QkKyQ}~PLSt`jq1D6UQ)lE6F2Ld(j_?uA(p`7gP<&`+<1~w|M2fOo{*X2Y5H{e z$mdCZF8&@U&)>f{|A(hG@P_mm71NRaF_}@t5~G2@tmGcGC`bLv49P2wj(NSvV6L^2FQ(WqqJLVZu|U_!mgd3!#^{MpqTooMU~$p8s>D3@>Ii=(tJRAcC%X_qQ;d zPM~2`?B}M>@l=F!(){{%b>)x9(s07#o40CkIwwHOqV}Wi6jdo_=JgsLf5Nn>s2X0n z<4M!p@{#1X1O@8<;yH8rG@c+wU&qE1=6L#3Vp;w6hV(z9Gcx?m&#}k*Jbz4Z?v_KJ zu7&)-<2PCH3T1rK#@}+W4#Ds|(%$^2EeM)mO6JRT8qpZJ~s`lTpm!HjBtje&zbO)cxgQ8tjYYHo|8a+LH!+kH?Cm9(v8&fegFkd zg(**P__8{0Im7qQj)%)(dqhx=r_t=qMM@jh!;Gg}TDIZx+d;=nqEN$5NGH1r8H>#q zD1@86t_>(F_DmycdMT;XOAL=M$~wSuz0VWbB_W=mB|L)xPumCii05v=bE7;3sN1nK zmge${=2|uQw;AsI07@T&gO4&xa~Z=K&#}ixdsLW%;?gggG$&>G%!ukpM0gThy6b@B z$!7eFr(RkM#jbfNq0O2Y-9UN@$l-fDPdcaZ9cv5dfWm-QkF=}!O^<17Fkh?LiF#pbw51q#kZvNpkq5(dn25zT-n752PE$2^H_H_79IRC#J2FO7U4 z2b}?cI-b8Zeh$a(#uSe{v^&G$73b&cOn1jLElEv|&Y0(Y1esvQI3nr;IRUKUb{j8|J+oaifB|OE(JkfT-W9!V(Axkq2{o7W=S*G*#oAq!xE9in z40yzFx%9dyeZvezXlSun`h6rnVm?_P(<|LUFiRWb$#6ErGYpNVSAViDq0c_gHGT_t z!U9W3PM>u9WT#IKq2rOAtkUDst#Hu?s)HuqsEa>`CeSfY8#EOdEnB(nk42ov-%cWo znlRoQ36yzG5JF$P2&#tEfAVu3`u#Lw;^>mHI*Hnh)aJeYzB1Ym@Xj&=ovB=+*QVa6ONo zY%-Mf%ySTG$*7CU=OduuH4A+HtGajj93I~pC zNX<~zdm&WyraWQO1Il#|s8m&xBjzG(I@Dhxu}kYZJ7vvm-ll2Vpfl9zF!9u5bk1#S z&e}rD+fSS+PtHU9E6NiV<-GtZ^^#~*4(7)Cq@MG2Zzbrs>2&tvneK$-l|UZ@{RWS3 z5!IaT#wls>ZF#{Jv&L(1$jr0QS6c>i4!%T6_v7+(la;poRpCzyu4!7~s7H9RK6k=% z&evs|3}fRNM8uOv&&h{8clqI;jqwCf@MQb({i4+d%n42FVdLhM%X-X0$LkNlen0o)$h6FkGr4nGlbz;av&Wd> za1bU5GE@LVi zqn2}gZ;=HA+NwZ-F(q!um|JxnJDr3G8QUzC+v zv^^goo$<R;OH*t4)mhVHi>|(G6qoJW|FF@Z^t33J~d6=CV~$ zKTmb~ljg}oIVI9zOaiENotKf}`E&#L%evfVQ7{DRSp2lSZ({-_!P$1YvI6*pqL&gG z>_O-)@-6>w({1TJPwQ=Ds~(4PQ~fODLw=&eie;Idz(jbGJ|Q~h$sCC%KVVquOXA6% z;2p1+l!``jyj4+n{<-3K#60y9nx^JlRb_5!q^A)HN5ys0J4Q zPJ2dJpYC39{EWEWO{b+l$Rqw@lDO+(M(DC$|UGp30Fi+mp1fINQoc*WpV$Z)_{;q|rY^i4u#)Tj-Lty?9to7K;E){?@4c*x?8Ipic(T3Ae1kX=Pt7q= zf|V0ovNL4N$hB{vNu0&=@;1ZI{?qEl`^=X^3f)V0VwCkJt zl6O<8#yMe%<33M-wDoBUBql9qxrBY6C;ozGjz^?V`pE({`V>rFi_&8Cq^<1aOp$4G zJWHCwzmPPkDoKF4Wfd$w-Q81pm$R|izo>vk@)LnloXRcuP;uTcZ*N-G@Wz+?QkSSh zDFID;Jf{SU%v-iPaDWnh(j{T!-k!V%25+YDqxQ50L@TK`0bBIRztO>i))N>#ecDLz z)#|cEnI}LEo`FPH-gUP-aV&8+;P3*_HO?<_;Ig0#cUU}VW7)gRFd{wKtrq1$dCFAL z^9>>rXgl{6PiZiz;oVdU_(&(98{8ni;CWVJ6rKvTv_?pubA5iZy(|Q$nRGhwoh*Ke zl=cLzZdUumct~dp#>V>|Vki!am;BV`2O9q#VeoUsbHO|boA6|-#%P6k>duIC>^Ab=g*={tkd6v^>I&(S zTAH%=#?dD&l`{Qd=~H;RJC;-QjK>1hb)drZ4|JOHS3x1shEdT6*o6iW#z~1G<_#=< zXHry2;t$(O@~4mm8u4w|dIW*q>O)yaNH3XZOj;wJZ(yWgNnGbZj|(cHIMB;m;s}WO z0tU}C!Lu#!w`u>Rw8`to7emvil)HA6GPwrtKEZa0(Za%@e3drK%U z5ovTSE>rxq_?E@Ld^P6eIZ~dTR{fgO+S>5&qevAN`7U3W zwn&fYME(G>`1Zc5tXR`)G)d-4b!X;}`#epI$592}3_e((>F#Pf+vPQjWGs)FQW7;q z)RgIK{NR~#9rWOtvOd9+!7@f}LZ_yb*CIyAsh>Rzp2eRl@tv~w#?dDW^jv1>GPw$M zw=Dm0+3rjkFKApBI!mDBzwCpZZru+TisoG5_Vcj(9Yto z>;QpYN}N9~Hm?Xs#BU)p&$*rt&BeSWFj+jIRN=`lamJ+mXH^vGl1omrRpfUeI@qk- zX89>JIKgrdkRHGLjF3$k1XgF(rz!1mYfq&TEFYU`@d{vr z=SKv6g6Qbj7ATPz=tKb(vo%1?&IbCcPX0TmCoTVl+1H!crNdJ`4i|brAupgTMfDy& zM0Mx(PfvjMbsWOKHojWM8=x&RwY3~=FMQWK?$+JrD)=y+}>a#+F>DUeK% zxFdqM>>*3y8J*ACx$4cIWbfy$xGq+pLP@>oQ)p_U!gS)_vfQ*mMWSCO^y^u7_=~q;DX7>|I&>1m@!Jiq-xp$K$9aAeJ1?e{ByNF1!=e=E<`5`Nh z*u=Fk<4TD?6m?`ylrmtbkxM6ZF^wyNH$OBU@f4oi+e8JXCW%7 zYB(*o3t?>p>YGW{EI4hWMBRU@Yh3tky-4${J1YH20-693{3VG{3-%)DV<6{fpdI{gyjqitvLMA6wLc0@|cG_JR0rFbr2y25jz+$DJG z3Fn>*cbtu3o*?^BYRX=AdgkLD;Q32f6)^ap*w*(hGH*lzc3+Vnl1EC058w<~-s2s9R+Sj(au^X)}h;Ud1Z@gd9F zk27|NOtFuX?K|Bsq@zqPm?~(4ymPEPXo@Q_c)Fs#$^MuUPVgM1?d@v!M6g~Qa~CH% z+8BXO9z+e($A`$X7aOA@cNyb~~nAF_we?1f$_JK-Tzr-2&FA@PPRpjSp=n?2~ z2)G%6{+XwV`g(nB#&lMsnJ?;XUPWr+@xeS7>7F}G9Ba5OCp;lbPDPO?i35G`R6sYQ zU%q*T!KdFkJl&L@MMnblgeL3+{!8qUO%1S?6V2}p}b zw%|vgu46s6C$qi($_78;EpwEI_S7jX#gUHY4MP0Pf}(&rNPplYbhlGcHXxn^w8zsx z9nG+Lp?ovO%((hIRp5GmGG1O`+W887_62(Kta|I1ZTRlErj69zwcb#^a#~>GG5^@> zg6OB_mgl(n>mFhCL5=F!;>P?V)V-|lk|!RFR2gQryW)dOTK1-7E5Ea zL!J+VS5v$UWv4Msq2n6;C_L@%?Xa9QJf%$9W$_@Z5~9n)?%Lyt;nOW&>uZikZ2yQz zWelECbM%i{ew~Bo0s)$8R-}@9rAz$2QH>Dd$;ep3Skc*JO#0gpQxg>a6Fk4!banC9 zANoIoJf8!0&<$podK*xf&crv-FysP=x<8g@dw z-|YIVL-aw9`YSaoEt-VyE=o#4{i5|L92}YFo_LNoV5LUzAI#Gyz`XrdDEjjUV={QX z6OU4Q#q*coLa&vLq-clrR(2mu=s@+K52y7 zYlTr}=?l)l66mD2*Rj@FRY*StCaq{&CjF_vx~x4zJ-Cz!|Ix{f$od_|on4-{o6Ta5 z_^ci|zbB4-^o=w6{X>iocAzK+z8-gD2$XsL5Prho-v9$doo^q0XV=MOH3@H=m@v3TNEqOyL`EO(p6dgtQj9z2b~tBIVM2lYd|P~{>i zgFs!LuFX?ST4c!T19z{8t!^niYj&Z5*B^Bbb~k5i@J^Y4o#dr&1$gkBW`*^g@#a~90q?Ro~Sr=Aew)CY>b%;&rPBQnu=7Fdrk1c1sVM4x8HvI<(v3= zyPcL3Ebz3u8-p?)>mks?lN{8U9z!F$Jbq&Ef>UA=yzQbFlAOWQY<=4mOT5QTQfKHh z9eX^{nBV%wErg$CqO1F&z?FAwVlORk5GZ&a=frbvc%F@mG-MOo;8n4tr3yuV5Kjnn zRn@m{O8WfWbl)6(Vlhz8LEjuA4o`J8K^?y<#Dh9Kdqii**h}AS+x5>ZZts6tZqf!C zXZf4{v{ac{^>CoLkIIO*l=aq~%;{S^j(x)n`|fOO<-%TSqdpjdpt zSHkl({Sb=tNX4xLw-Mq=pTGU`gWr+CtN89v0YE1eouLnUiybQZbHk?sPtxr!n}@*@ zgYUc0_AWO2^kF&clCydvL$gme&wV3ZBKYSPo>Br~ctA?8Cv-Xmjs2)Dn(KUlicwXV zdkIM5KdKi5vTzT4|;3#7m9az)_(WB+)zZS)4<2fypCcr z_*Zs=oPml16@#}-9|kWx6RAFvas1%<5*4>wx+3Q}v52}$fUb^N*8J&c%z?>k;-U7b zoCxz(MKD1d`py~?DDM8zu;RCb4$s*e1ZuKZ&go;;Cm+D?Jn24F6qmXV$H3~Yxoi|q z07d4+Gvg1kbIFsmKsC<<{U?6SBu@#QQv^=}`m0~nCFaJ;qGxK~EeWJ;9 zZ4i-OkT99`%zt93%_7@kITV=~yw<1nsN06hq%R|qjZ*=A%kG$^ae#mFEeJ37a_R77 z1?~?0WNVQf`I@s=$)Eh1JdiT@s6Mr=I^U-FAQNQ=YBHw%qvS-1l-MwG8F82QV>Gjl?``0mjN-l6vF?euO)LJoHN zx^3dK2NlPP5PvK2rOZyMTB|iU(G?lI7q?wiALhsELv2bXM@sACVetEpM=M!hC7LH7 zGS5U^3eR7@+qdNnV~=l?M4Z2FQ=}B(W&3`bL*gm{-HHAeD;2{paO$~TR(eLCSYBC#51w9~>U&<%;ce>< ziT%7dRCO91t4N(jIDW$5si*w8m$)v`oZ8EP_=ru4A`8^!iHP)BmuQOUmYoRn#de?e zQX7`Dto(B%%Qg5PCh8xo2?2$P?kdlAh;B+RKw~6Lp7)4Iq5FPhM)%as=s|jR*+o5` z;U)9U7ZrEAD3fY@Hh83@W=@FasLp4z(4R)m);lB(wUsv69~QzBB^G^Zu= zbf-ZeI0X9gR%ceHez^IDVH#)g&EzjMj3YO~xI+`rI?^QX>vQzde?Hu^wN(ij*nU=f zh9}lEJ4%)SM*)ibiMZM0B#Vqi}np3@F+?##BoA} zlkgOvLDiJk=}$t$4J?e&4oSxxA!%l2L4pK-gpv0TtZsULM|%^cm>xuIfvJIpS0qgg z)ESL3Ps*zS8T>JAtMjKSkz(*v zrw>S|!qYN%iAdyCRUFd8a=JwmjTb0C32?PACyQ&r1(4(N*~b* zr=+R#n5Qi%cL=3gcbOk(UUuWuOq@`5P9?tgg4J6FP}YsvU)$Jpor_BI4F75ZCbRCXVo9a0DKT^q)>jzj+8WW`RnGpW}DW=#!cvP1&g$$xT6x)!HUMnIj}!28KA4 zwzhgg`m&+VaZv7dD-5vgN@1ov2bd<#=G`a644U_G<3Y~5*y~w|+ za_{jLWK5d%^4j8Ue)kcCuh(PLRuJf(rSuZvAH`>)C^E#2Ntwp9^(OIzr$nT( zysRyn!z6ULsLzDs*~{6}zMZUz&Jxr#Nr$j6t9Z-gku549LKX)Px^L}GwI*3UZzwgtu#(?h(_Dyv!H@g2s%)U{~Xk(qwsdGfp$OTW8Ae7A`k`glv7Y( zmbK`slnFdNPtdYJ(@6ZM6!G2#DO0Q)Jvc1i3?o8>p9RM%AcKz)k&aw*&f!SG z6M@|__`Uc_P^9F@^G#0gQAmox(*`<0M7kYT#@@eq%F`sFRVIBA!D)!<_^v+5?t;st zqdpGvM4+-pbBgh-KZhqHeam(+TYMkrI&XTfuC8?;ZwT6>zA^KgJ-%1-b{qz04CUG` zsyHGYj~tQCpZ$oGXn`h5plUdhsOyBzh9rHS-@FzO=$kuAcg@}EEZ4}=6W4=E28xfd zM#beuG);25c7q#IvP4Ghm24vzWq`Prcj^o^kF@TRwJ z9|lQ#^wDKHR;niAniCjxL`sGcN%8a}K-T(HPq`GHk}{!2y5YdF15Dc^?h%@?C_O(z{Ks`&k#*Y1FbjSQ%3i z@-+;8J)2R9Gz+RWN$WQ4lt4GCmdBzd(?&<64|bNSyd<0+SMCWb6wzr;Jl&MZnsWX( zPxM8$+dNuH+2}Uz!2E|7g_J+AY*3sFfu}nkdHd61doMh$Ifp=H-n1*1s3vLI-e6T^ zz33EWQf+PEZ~-KsCHbTbk0N6HSwPO^(R`s2snUEE~)+ zU4xf@1%cb;%OLCt6d%V2Z@nV*kK0Ljj#3?*#Nd|~GWcWX&+F#I0*$%5OrDe?l637@ zps(qEKW3mCpw&Fl!UNAfP_Jt8A{w#8Brf!Ex< zjB^C;<;p;K`kbuE?0VlVLRv$Cip5X2nK!sex?N{gZ!g&*kL3+PoywiCtJI_NHsLJk zjzNSb@Mrabc)rk)KG9(D5>h5z8DRsH2=q)NB@w9bG(i2X%rTe~9t?GW(@jECbk{Dc zUfZq*)aX;Y2r82nma1IcJ$CCLVQt)|hw<3#uq$+?uo^B zu=q0rk=5(ci^a0wmk!i^y1g7~NZg1dZ-Wvc(Ed$@d3h^(U8lJ8MXY`^ zmteT+K5-ehzRE+rd7WQ%(U~4upy=1@(uf4A6D0uE0wt~Lql~CG9iS5kR27|O{Wni# z@mp2LTNW?+6oa?t&DeBz&;E3ub7gOekW;wW;7|kuo+B#}n5?sGEjNvJM~BR}UIgFc zOkalWN$!l&HUP?w!qTx#)|axbstVX(=sFTbA4;H!_Mo1WnxIHaZ4LuZEQcp1$FC6R zb&3%0R`G5=Zw#0$J{|JJ;(VU$y>Ia&^otwc9n85;ZUmV7?kqfoyMBxMiHXt0+BZNwfIvTRdU3&qpZI4IXu<*&XBpE_o=<>} zNua{hS*qylrjEfs<0*Q3&$rv_s<*%En+YLgn`f9d&b$mzDwwWE|0TfH>RMw~U9Y8IauZ`p^X%B&72hKLO zn;!Ptv_J!iFebV1%9HI>M=W6e;Kf@ryF}fUdOzl{?G!43tradrKHRx^}k~KsVIxAb}D_ z@}R_1Rq;AeLWqYz)uND;2u}wnJ^ByrEp9V8Q@N)xesV^PzlOSm7J+h%c5z~%zs+yPa%Xhxz|(K>!VCrdQ0L#y-3HQFifa#7lh(J9f8(4LOk;nrvE3#S7h;)!LvYh$@zsqN1wF0 z`-@4ZGyA6`v{d@kOoz`c8C|z&U5$QA5kvE9AW3EmU!|;`@l^|O86|wh6Kv`bk`57s)0aP0+W9@JY9?T$l~LlgbIfw z{Ez8?q{*{@^wi?t zbDpo8zMbe3w_TvvQ%2{H1(IvnP_xaTRxoHu$J*ZzRw&pe@AEsZp;2kqSwCDsoJ15%9!HB2YFwoxXC3B59_~#<4y8 zdCdZy?AB`Q%$;Y=0JAU>yOtKM`y zC|B`9)L7rYDwHg~ga!uw^M%0-Xv+M!4xA$CWylj+J0fRtGJ5l$^;3b{`j$9gGWfu* z=_%Lb%dmZy*C%UopsVBO3{+w8Xf$1#76Se7y+m@RM2$L$XF^FmA7oa2CO&|N7=M=j zk_*)GphD9o`gBd^FyJ;cI{OCyu!Cd6b+asdpjz2DU4!S{WUB^^yTQBcE#-@>Sk3Hj z2zUE7_8jJ|S!&xKeL}hVdR9?znsA zD?G{IZGEn85#MA7D(&yIo1y8{jg`S~sL`Yv_1!0dOjT$XJEujvZxZ4ORpO|zr_M|S zn}~Tn&p}V2El>;S^YyYMi(hDiXL-J`LfM15Sr#=$Y>OA1MxXMqqT))(1m;YP)qGOP|E5HvMRB7P!(7B;u7U;wwG}BtVwUm+m|HM z$$;pppLneDEEw{{4m6dx>j(u^&h($YYSTxYnzb9$pzrG2L9JyUEc5yZkg7_8#Zx32 z?-?UmJej!yx}h?jr(4Nl}Yn zm8yxRVX+TuM%^;Z3M^^{E;o zWitCRz>7KX$GvP>lgn=F8-Wfp2+$A5Vj_{jD8${J{Mm2`>LbX(_ zX?Q*tXp?8x^~>+lqL=j)r|69>eq=e&iG1*Danor;$mnaJwnSgjtz_*+#^#Y*t0G$u zbN!d9H7?5&d2F3B()1;E{};KQQSD! z=cyLh?q50MGvag?MxA-ajphFv-9>M&u=skZ!9bNpYfmgbq>c516x4nIl!nQ?Vb*XsQxL%6Scv-h0?tPx=k3Cl*BGLykoU)7HLIKdDPN;f- oJzG5D5Jmej&#@D9?v(%k2Wz0&N>DJzlK=n!07*qoM6N<$f{)S9xBvhE literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/vibration_chart_card_with_background.png b/application/src/main/data/images/widgets/vibration_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..90c90fc3af6da8702301dc002b947e4079e83de5 GIT binary patch literal 9228 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/visibility_card_with_background#background_image.png b/application/src/main/data/images/widgets/visibility_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..f869c5dbe49b4f74343de74a4f9641647d5c7519 GIT binary patch literal 17926 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

    yO{4e}O5TO=L4!9b%wU71;sJXxHe zgjB7}8)i+ullL;_WonweHx>iV55NDZv6LZ8E0g_xeK}?Jcu{AvvSbP)ob~=vk)=~{ zhk4+oz|#~45>AxCgwlMLgmVl^5+W;!mI)xj9ESz z9`%+WszKr0t6e?0QVo-Oq<(?YrlMTrJ;lsf$Fov(YuG(#kbN?R28ur#MLvBniaMy( z>a;q6E`W()igfMNvk@MZGsk}&qxLyO?X&jy%%%=X8>ll*)K-AS0Je>f>Sj2=G`cQp z2Zt8^Jd>p8DhZf1M}Y^2^0osM>cKkI&P&)1mX@>|R9U_F33&hezYE0t_r94$e$J%JW6% zm^KiSv**-$Of_3ZEVwX-n@l+L#ytl%KJeX@P&lZ5RdxYpN+v&vu!a(fKPZ~fpfPFk z9GNoT>Was;uZ}r@5zcx09O+IE05Kr5u;_f=h9m+*VfJktu|Wvl`E}@R5MAzuXJJ;| zs#b^Wp7qoufb@ePM_+2%51mpokD83Nr} zie+D^e|1&ki8l5(D_`J+26I6ZxWUTY6sq51JkTfbgVS2B)>81n@+>IYn5N%Z8; zX02Hyb8sVb#q2>40RzpWuOu_*K3qmb7LD8Z)JEgVxKgQ%!&z%y3Fq_oh%`T{zx`3S zN>$#(9Cu@beq*!rLTuIZjjw`(7Wg=V^cyi5NGlE*|C6iOs+j*i+# zUmP8Ub68B&wCFV$2rh*cak9Tv9afQ7^@dwayD8`cpK6{CIx;clDhe z{@)Yy>YG#m>ai-OM&4yXTLw zg_912?W0Nsnxo257*{HSx%p*SWvR^PbEX&AULx*_L|$?G(>)^3Q7aS)J?a7hMSW0& zIeJhq_K3L}Wk9Q`=XGziQnEOTWM)x@DX}k0v_h~sM0bflSG-^2k1_=eI8qn`kwo+Q z>-S+HV~!r^4pYsQs0Z7{dk$IcNcp@g!_f9WJeuEY>tqV@AE6!WVS^ss2C+_AJpeZLU$?00-xIhPKyeHUBP9MPQW7l87!@RE&x?~mVyB>j z1!;Krq&OwC&~91sd4nj^OleR#Ajj#|QTO?kS7^QHE8pRoLlh^VB&Tgu`4wrVzi#zu zAr%bo!Ltt!qCg@r;~7M;u0V<^dQ>K`tUqo}w|?h(gi{w7fWp43tQV8)%hAZe%k&&9 zHnqhT&zH(HYq^aJO(`!jMxK@JpR

    ;D{ImqS8YlPte80_s$-#f^BNn)7#MO!dz+Mq+mja(5xOBIEa0ZreIC2Usww_ zv2Vs?!;#!#Fy5FyhG#kd3CCh$wkRV_T?Y=G+Yvz&>20r5p88->4Eh_f)VLKc-N0uX zR(r6O92rI0x85teMUK{V)snjwz2iy}C~lq1K91H;0CZH-K^>aX^Xj-EcRKU`?Y z?Yk1^3>{CTswRtVW5r4lD=JNli*+^xqp>5ItIC{s3w zQP4to$vpG<*jIh|ip@)-H4HZtA>5&$)3k`ihj0WN7sCfna9oZS00S3w3AW_6;{DCL zI~jibm|*o{eMFq(i&~OU;IUKrb@|qgl2ub9CeEi`6!QvL@(sikF$pMfxKNdiYE8hD zHt#z0_RIY#EI6+ceoD@>aP#n}1XXtU9Fp)2>$oyyv2yvgNAF*_V|*Yt@^7HAWi64e zi7Wj^pZw$yq{-C~{U%_dPR{&t_p0&6^Cl448FuJ6nVPepgC2#+tdl%I5@0#xCsK_v zIHCX=>bHDz6W|9;;aEsRpD_U%(D;H;t2a-az44Vbnru>vsyRQZuyPYQhAB2LK!rth zVa@=En8ayL^1Io!ugq<~JXH!^rZ#S1diHIJDSK>`ZFBv{!>q&Mu)(Y}@o=$X+WXwX zWM8Ikgp&u6M=sggTM3?YTy5x`qZJc~ztyU5j+VUOT$0H)@a7Motqdnyc797@&%GTX*xPYd@g-Y4* ziqnkCpbL*o_c1W(D;0IRVc$KS0r}b16;XbZOn{qjyrqjGjeWl-(s^>qhyBhdI9Ets z1b(n`;Ymx!f!R6biH-)JD2bA$@bWbM3vXf0hQ9x*G`QnUdL6G4P34fc2B8yhp} zNKIu_1gNo^bnx(j8rY&jtxnZ5b@G&kbg3w{VPZw!jc||TqKy^@y<}$*gJ;f0p%!N0 zyX^G5chE}fNXOvx!ij}#M^X;DoAWdXtfF{BisFH0(p8S!C^O_de;I$BzD{LtAQ!DZ$QE3bycILSCm z);#dbRsYG|)3!mHXdU0X@Z9|DK+dr&;L~$WElr!S?nKApJ?>0C!4sDyS$b~%r0d}h z-&mDZOM7M*mn-K!?rosM2rg#tlLH2gX)~*5ttO8LdBtece;qnn;n#h2tGyw;Pu(U% zOK4~y-*~E_XkF!lQk58v00r@>&*Vf>Dmy>vLz@;g8Ma839?!F6!Vj8~YrdV^cnQ)c zw-~M5F!WSM{TgOj+-2vpJc^XLnWKZK>jv5;Pn_7>HjuRWi_`H`%g9(~l=_5$tM{y+ zK(X>kJ@e{$m34v5RerPeCTb)|xhO=K)Fcm49_SW@CbJ%c7VNknL_<2Ucg`KJ@afXV z9%?9sC3b^!D1(G^Ad|ByS1cEDT)LLt?jjGAk1-6{;z?U3_-_#Ql?P`J`h`TJiRD#l%I- zXu%U6l8bY$fTGdR{0k3n3RZODwjbitY;%R|`+^~TCM#p-YVc;SgRzH&m9DVSMup=i zM-SYJhCjSKXtj0}gF%i4?cV&lbv?LbR#8Ev5oZ_}QOFNX!UaFl`S*?)X5mSfs#q-O zP6M)P&mSfwXwqqKE`4?T?$Og14%@;Dq{Mj`nR1Bq!ewC2hG&z&s|riU@?=4eWVF!Pa_kCfikY_vKe16j6{8g}_W!=NjE< z>;|JL0+H@hw|d!ODAK((TK#Juyxj$Jrf5@r2h&+AZiU@KegGf0EF>xej5(Aac#6pj z(eQGyYCok1HIpt0iYKM@lNt;hO#%@zoDT(3s2Q$OU+$y#tIuUU!#30@cM-@V)zIXSu zbai))RR(44Lw-^V9|9#u1j1tY1eOcK0hW&xRu{K-&edP zQfSXK=JOe(NVlv6M#^!~M}j4|aC%vh&?%+}Paa~5KrEPZ*d!_sWSD5l$mu9GU9sFv zy#D;5w~y61SueOKB|R8&Qgemmx0JJrv)s_)y(p3&C(+rhLlGU#d4QpITPOe3LB7RDU{#Zl-`pT#x1AEP~6 zgEM!{jE^jFN<$r)-qcXU&)s)Qk7vc?(Phg79+Lsl3-CdG5))=BPY{%bVw4^Nlp3{# zR;VSNt6gCQ6TBO5e?>oL0t&6&1B9ZpmDGC-NNVaHN1Qbjb$}mqo8}X6MeCjZZhUELh2}6OGZF=&%?^E}4tQ_7 zEJ)T$Tr_EfLq!|OshAXl+uo9k`M@A+MRG6By|TR`NpZ@otQTwyD|z-mwX;sz3UkpN zn4T$dwz3FJ)A#TBa&KF{A3v`7+r&jyE$?fW&q1#UF&5q0RS6qsp@mBbM?0o_#2^_9 zpaMy*6a^=&ocR&jLD_)w^AHRMbPt_RwBFgheqYcUII-pM3-;QhJ6?Wb^X5&L!6{lX z26nOYu*DYfdJ!H4?;EG__BG&VIl73^ZyIHH88*ggsD^E~JyjQr8j&S#eRC9FlVvMw z7BAu`Tt2g(JvGES?jiIja#ZPiFCU3yrk?(C&r5s9^ZoI7%eM(@IWkZEpiu0?6X~v7 z?}qQB!;A(b!(`}@OXHFmp%$%5$XNkbX*9T;Ek+I9CO1)@oEUK3(C|CEw)+dIzDH-~ zOONeezyH2t6J1qNx;iZ&Mv~k>5}i_!3_1c7eYJ3QnHO-Gi80P03=dxe*jU8Uh^P`jpnr~V_gbl05Hp4SNe`vu&}n}2B!68y%xL{Hv|)-YjW zay0(ZnXc~c$}r{Wi(*7Khho$z+LR&&z*^d}o+MjHkl}~$$~OjrF9}$7^|E9#nJN@g zpMQOPO(t`2YO2(^cK!O>?t5(W-L+9BJ$}FN;?V*^k`z>AC};4{_W@H^o+@0SRhFkl z6ECauFd)xvsk5ROQwz6BUAsncNqJa(pgh9DluZ=q?|pm@NkA?7*)q;}RxADWv6g<_ zk?Dm!H@`Ih;lY#RR-l}*54`kl<((BPvqq6oe*g+)`RCE6J4T{NJZbXAuJyC2ab^4{d4sZG5nJt#2>?o-d4+idBwK6DoX{y^)ar#A%XtE<}lmrRmjNJlJ zuD8bQP-0pCvScsvph79rkZwq)GMQ4UxuKy{`sB7u(qwY*MT=!$DvcI8)}ATFYLq8|W2ouYU5B23c{qZu zATx8_GM)%-`wqJ3##M>>Qf;$mX2$h(2D_6UpTDafe{%^u#hwfE_xro|-Qr(fLzfAn z)FaU{`WT*iu?Mv*EpZ4#sFrKn5t?gD_@JLoZ8KrqU3qubX#=tTvToHfW>ST3wvUeymG}POh zY3=FBWEvV;8cM}tU9kxi9gDVNtOTSaS-0PM<@PLyRJX1h$gR9^X*Rp^>Ps%a~*8Og0Q;X{hNN6E6!hG(h%V|$UI=Qo9-c1%+ZU9rm8;LduBPV}ayKDj&4-0aer zd9j!NkujcNV(xG<1-IDV$WQ;kIi4a&7~Olw4ri{qZ9t0$nMn!l*G4j0+pNZYvaw?i7hu!vxNmUXy2cDZHlA!LrHjR4B7xV^QZ##`o|t|zb!4ZgMAjbvow=-L(@T9lm1 zQ6KE6yNLA8)LYLzGI=Jt)~wU4J78j3ksb;NP8 zZAsIBq+~yh>mL-agU51NzRH};xU5wD6&1BX%Vvpqc(bJbCLu8_-U6T5y z{+Es5gwBW&AeedxrGY*@99zMlppT^TtNSKrtReft9jD)1yRX<#N;M8pjH~+w2T#&J zo@#+jBT|!N9F9s>%;tiwa163ZT(oL-EsWE=HAHjNm~i-$2j0F@oT-(co!)9&F~TA2 z=#r%uU%#Z%7j(hNLnW0hR&L`TyS7Tw;~VC~RW>7WTgLQ71Zvwh6Pft3)`mn)%(lsw zoQZwWF&45%=g#gA7A#jzB1i+1``%3-7aaKos2VjZ@?K^dF54(<)^)7z>+4(H({sj} z*m3&Yxi=qJlPHy1whkT{$oHH)l}XnD-!SKMrfs_>4vk=n zlGJG&rZ7vbgHz*EtH13z^XdyY*8r2n8bD&AWw7fo7MJPZ_G{T$iVD$UxX7iJ`-vsKj2*H4{o&nS11t= zm3hx$Li_h>g<`TpLI|XlXPl#vOgaaian~)|G#w%vE>PJU-P{|H=nnrf8nk99xF%OW z-wFbbO{2F(`@+_hdLxhQqa-q`r`p>3)-@!G@6H@Xs$`v;8y($!VEsh4gkU2sG8kSi z*ML-p5~k%AOyP-&moWSSNerGX6W7ChYD!MRnu=>|ZhC9(9zks7r=OmRa8wm4Pv25} zO<5(DOJ0%CM34eb`8byF=Lm+WIfCUJ8h;$EaySkVe2~8dT##$3@w@Pcd>Phf?}+lhx+I<0+}y6?A4JpXgv$jaL7E$7!rYM)U8>L2JAyU*m|H0Yrexw` zs|-M-p#s$qA_{fipSxWbK^?Pq^hIpTTS{tt2~=Hn*~M2@cmOf#Rg7N7pDId#B0(mA z6r&zoz)^uYwjC0#03K;gHwFE!V{B9>@IT`4Rl3H>DY#TQ={?+()WEMsM>Ao%Y$M+Y)&DoU7!e6|Rv# z0OS{0QaEbOu5u+aK3MB%5(HBfrNaTriJUOv@P*QMT3bq4zi}8Y4`AyOrNVRRA|s_c z54`gAjs3kYi~R{Q@(p_?du4<<=&Sq=+Vo${w0A?->6PrV%E{X;Dc^@j&rNu%A5t;ywX0 zG&{L1iPM7GNH|O*_EiEXE*=X?XoE*`BR~|6@JL=Eo5Q3eeW6R1oTj>C3k}$NM=tBL z$|LGQ=^;dJ90b>po6Oy}`<0_tHfHLo-Na|$S%3KEg^c6*NfVnW&)$P=fSJz)1Kofb zUv^~vuAPU!c;QSjBIfbtfnCp^J9qB%F$ebr^FCp-|0Zj7=H_Hb$YiJoz04?5Enn3U zb_Od{>_roE{hBn-%|L|%0Lj&TLv^8GDXqx>1Ef1O5h?Q z*2>&a6))+e+KVwi078|_BIU^0;KQIRuF-Mhq5PTyqX%BzIJNi0mJKL7x7_^YBZH1= zSnVCwKin}j`RE;enfR*8z`pDV+{wuYZ{E3c%L`{p35wUPv-YoFzkU1mua6${XL>C$ zaeg|$+a%j?FO}!|feKH;O4#Bk+i4ASCgF z4ouh$(FNFc?yVhf@7jNP|KQ}8dv3n#<~=7Ko!&N>5E(m|=R}f6Ufug>+sS_anl%t6 z2O~X`&m1Prbc7xnKXJ7+G4a?Fn#l9KuEU=X&|IvFC3kPdmA7dRr>QFyqA>VW$jz6;+olg+wtXC4?t4A@!YPAy{dr zs6!Z$;DZB3Nr$6UCbPy6LQ{KdF0>qdO+Z69&nZMoLx*c9|3}>9M}hUHcU;)N`i|$m z{PN4^?r2+maA5VYC01VD`qAXV^wf~E=FT;%vZ`1o^Xf}m4sV%xx5bGYSDbjz!naAU z^sREOhlU2W9xPb$ImsX*JC#Xu7qb?*2GwU8R%k5Rw+Yh%4|F|H|7iSO)|m%KGR1Mc zsSq-bnx?voSB+Lo7yeLf9?k_VoXApkU;XV59Ga?L(=|DXKaeRejO$ic8^c!l19<{zy0)s)J=XWdfx13OI8+ng5zyvOp#734y|6oS;_GX= z@b$H=g=zd1+a+=F?u{>PY$;9czp|~Zqyv)Y$-djPa}G3T-fT31oGgNE-`e2tLz(h7 zs6qW2IE>Yfn7CloDSGm0K=MO_bt_C=o>Y#kSelASciP0!ik~06TAX4uFg8?7RS8dW zVi9n578sVcCkFDSYA z;^j9yO4pG_fb(%q*^1$YzP^Ty_f{A&eV@JDY|RZj^3fPgHXV45uA1_8L?h;%DM>ON zMj}N^GgqLtB)n`r&oU_A{>Oc+~i+-+&%Dd+$`kO??ehH&+_Yp8_K|3ASpq;Su;x($vK_ zr+8>=dfL>V{SxLD9kZ6p64g*Y|v5rCRC}B4{Hfl zTNP)=g#K`vrn{!6tJMfQ)ulkNBBTxlH8qD1O|pQ3FcQJ3qNpx(xGr_tL43F?9oP4T z78QxZrV09l-|!L52~7Y()@Y|mBP~Luz<7HSGj|BIzxMERA6oa~i<>sAU3Jx&t`T1R z#pYC-A{7~)7gg`Vr$BOpyQ++wC@{64ZFc1b&4G?sHP?{r^s%sJVzR5HFs%{XI!06| zO&gAMLL*d3F)2Yh$$*q7D>?$ddD}(n&IlM}TY9=$Jm%s$QY;=gRFx<|WYHq}7VtZ5 z^Bf})I3UYkA6QB`am8)>fnfI!j@xhZ*1XL1@H@XRU%fuk3rN z=Q8i^wd>Bi?YxogTkg2@8VZrT3U|%r`f`I?t6cVope@g|hkNBRP3D=r za6^SoBg~^^SKu_}aHmLZQTb_}sk;QC)b$Djt0aa5bmT$;&s;V=d6~zA#rjH(G<=;Z zONTLog-yCq_|g1J6jwkXgcmrfL@l&N3RY0Lp6em(`zUDRf^k_16^**kq&7VvZWN;- z9}k=M_kpwFrOh=}XWz1R-K~)4mQ`1+3{>ltHN&~SzL|}U6-WvwX>^O{6e~e{XKpk) zu*4B%G8oAv3r^9)6%!Ma1I3YJ{id#9YOWb1UK2+XumPd`!`UuUSX_ZkamrqM@G90b ztzBa+A-dR)ToM?pGO0Nhb%W$3V$Cbq{{U!I6L}ppuHKP+hz5*6kQt4bGIVLg1T%r> z;Q~??vsYTXx?I5wfO-y3K@X3H@1NW~Gu5+Z%>|XGUA1NVCVJ0nA1?7h-fik7%~7UE z^0nh?a)g95CzbDh>`<^P3LxT>p) zvw=v~DoN&vk*o3K(zw7my~4u*umm?NP42Zun-9$c}ai zy~!~TL%9!6#Xt8*p{@*hW}3Xy#&@;&dd{-2rFS!P8%D*qO-=_ia490Pp=_ z!jpvpB{Eol&^nE*_JX>!C^4TT|8b#7k+qtCS{j_w7Lu~Hi4L7&u;cMn*O1#eU1Pn? zl%5Za2uqrSQ&}QBxua(Fg*`_e%j`Zcp9IE1fTu%kq)nZva22#A0qp&(!%`q2 z9fl`)qFuId(@3>!se5Vfwd*!?UVG`vwi`ZNzH{pSsPJdcx-H8&wXW`;tcm&Z1s?YSZmiS$34g#9wubIfEfUN3I$!eCzC8d%KZ|9F z*0_f3q<~&jUc1amsnfKA#3LwNbQwmLWqZ2!bliE~_N&@T_#uWz9|h1eR$lz!qrNHc z8O-H!gKySHfpM*^yClo4z9DSIkmr%dqr#YDi+)1bE^nmkhvqR)X!1!>)A*#K1Vxz= zofRxFaGzmSXrSe@lMKoClk2v(rLjO$-8D9l6_7qjGBIRwjS6ps#ZACBpPm7@;lUE&DsV4kL&rqVKL1SVD-Uj1zufSwao4N5 z_t6`cf7oHX;#~_3q}dojf@0}jyTNz{XAGvJHq!E01fA*Hg&&11hYRMBlgkgo8Nz=BK zAZsX4Bn}(pt{M&U`M;qH9CqMtf6@ZR$my(VoDl(0ie7nrsgpt*0MRCVrbvewn;!o)18Vk);W?=+rH zJst&^U>R_RE;Dt-S3EE|fkZS+R^IHKhg+Mfr^rmxZ%6qG3U)w~$?7_OKx`XUl<6&N zyC(bV#Cxinb=5~wk_4sr*v2k!Egfkwy~j_!!`B5n8|OJPK+RW*!Jgy@mlb?dL69#Q zl^c5OQ%faV41H{=d+~t>M=n|}#vGE^xN(=BU4QAzLbG8bF0>h*0G@nMOO@cUVFTsn zhK9xiN?h8zh9a49YQ7FgIt>b%*38dO))a^7WG=2Wg{taPG^q&;yY0kL2r5oj*DSaw zSM~D9rNmX(KiOYsWU`_;k4&`fE2XuIjl;Zns%St*GEav@3%E#*Umvt1?UR^yFbP9sb9 zQ*1ipmOYT-2e<6IFJ5K9w{U2(s}Af)NMULMWUWk9-ezEoTuy0;;B?*S>a8IKfbig$9%PgaP*FJ8gCsXQi14eMYe)qoToTD1^$ zRg!^jCF3EdKz12oLhH#}@8GMi8=9P6Ez32^j@n6x23Ck^HDKO#oUC0)aCcJtXCQeQ zkP)7QO=IL^CtecJRKZbgW2wm(-5C)vc~ZpTw%O<3T|2V&Ve<0GQ&}5a$bA0U&bEf( z-NliJkQjg&u68#@Zjz>}~RHfAz!ahb|AkmxJ`|Hc{Ge)V4sN708 z&I9im>0BvX#4W4MNAub=Qmt;tJpy@p5~I|z zt+D^-;w0tDihsf6-2C*4rmO(|CpB^d%TA1$@ZgOVrT9V}t6@aT;Lw0cD!q7YV)7cEbW4>EP~nL4EeCj=yBOD>)*w(S))mS*!^hLdqO zB5;JEH_o~aVJILFatPJkhE+9lqoBEQ=Ur``ZR|0I!c}-G)JV?JkPiiOyR~mPI6Px? zpup6^B0*tK`E|Lm1g%wr1!+78_vYg zux4z!Tue-HipA5Qm748BgI<^z*|fUwjE*rp>`OvA z*RW6Zsn>D-^H)$hnIuo0kFOq@Kq6Wghag2|a;G@0DN}4Z38e8dgwXyKmw*Er#P@GE zosT9icubzE4lS{7_4jG<_(CrbXHT(dn>SbDvh-sU8k5P#+9-^k7=>c!L4qMHRRa=7 zxrO+Wa0j@6=$fCotwfHq`5G)8y_lua(4Y40Uj*m7(q&k5uRH( zF2PIAMWICBylK!sK)eDs_VcW&M@!UB#x>s1s__}am*ytd6o;Pl$z}b(w;_ovQ35e? zwRZxtoJhe~o346yWIe0BlM@$&K&*@emH-v^D1JyVTIG1kR1bj_;Kz zJ~l*$<2)*Z0l4n|`ejZA6*L}Ox^l-p8y>%CxsC%d3`9L@S~0fJ(0~-Fv;xg-&tG(H z2Z*UEH4u3$B& zHrNYRAmtVfFHHr}z^%R807^;4SW%`_S4>W}W-S$0>^q|5#LZJ?EI42x8b1`s>O@f| zCV>wzhJHyN|Fwz}HG>%GP*(1E$gu(;iZMaT_#u2`(;wYS1+R?2H7XEQ7$nxz+A~O+ zZ#Gt#FbvJ&(yFU`9snXi2**MA=m}BBA&)!uN4xrF%!$5{(aJLk>b%JcCYqd->jDQj zp&75){L=i;^>H(?0XBCATglY*&OR-^?(AGr5J|GKxapz{vYM93iJL<;X3A4aG8xoX zLe<4nrX{O3xnY&jn@3S?&gAo7l^$_P)b8;BH>ym57MU!*xY6;U!Nu-pO7DE|o|P_W z5DtgY#b&SH`VwdkZfz`!413LvrOpd|S~~HC;KtD*27?-V1+oGx9lUAlX-DxqX@+)@ zLyAlwY3xKwrP3*80EJqOd*|jSx*F@6b!Es-6pgN(X-qfDkaFZXv<6Zq4z>8jb*nnS z@UpSZEoBnR)t+4iYc$YEj2C!X2rdi-Id@w3s8*A8sYbX_F5WvZddS9?A)$<>m`zz@ zRV9u+@%-##S8TfHxegp9MGhvJ_|#p)GYslCS42i-7VX)wZC;U;sfzj`VWnfF$~$@f-AB3<0O5%OT_{CIhayQo#XpKpWn3Xj zpt1T-2+EBc>(2^G-|yai;kpgX-${hrL~hOHL&Fl(AE^}CX*#s@#Fmw8dA!SD%9FTJ zmv@x>*sL7vd-L$athMu9a#G|e(MNzXLDG6M^C2YG+}6pL=6kNshWx;zVv`(^3<+L* z<~V8|YT8L{%Bu!B;kmW|FY}z~`QDf~$U;N5#vpd+9x`+J^pv!ALK7mYNVsyt0tS38 zH^A!iolKTvcoRn|XTpCziS>8$(8wLj=>X)(7=hAUTeEp|1~hk9MeLH{UfBNplUpvX z5E%nIK>|Is%HreAB3wnfvu~#KzyQa=S>$b{NusJyQlun7R(+$yBgNV}F+Yz`lJyjE zaHJ(gX4AyIb}* z?4ZX$pP^SlgNS9zx(oH6HF(n}r{!^sZz$qyq`9WmX2KKIWGZPtkw${vIsHgPTjIJn zS(x-in>weF23hLTt7ezvOIlRLw&jnXfw!@GY{_zvqLc`7ijdxr*6X! zEy&Qph&|l){_M5~9^d|4hXig93W_9BHC@&-HwtaO zd2d-naD>IeT2Xh~suEAfsq2o=tD(xED*Z&*G~BoKn0<*H4ZS&fHCJgWIGuL$?z1(X zgl-1w`W}3Eq^7R9*-Puv4`7iQFt(Geri%2Iws3@`;i#8xdvHAl)KAY3)yebc*iflR zb|Pb0p;DBybW$7EXR@KPl%|?KHOn!+e&KX`tV)Ysd%yeHgV$}k=mrPpWJQ67aOz68 zZ59S&=n<{1{bx^xEvhcLb_W^u_3t=LmC_5ek*JNBVMAhd71}8bpLcjs~3| zS#9H1i7HNASCe+yLl-_THV=83IHV-85&QmIr^-(_hpbCZ$d;szWs4(ML&L>A^ZkWk zL=QyisR9Wcbqz^;(()2yACi~^qlkk;m6AbKYV6`r30V3SpT2Y#Ep^}LZ-4NPj>?J@ zJ4CVIl|5(Yjz4~X|Ct?+Ei;BZiNorX)oruuFG|P4Gv;CSxT0bd%M&NW_uX{g31^Eo z00due`Pb$d3{%*bAs)i9!4X`wSjVO8TentL8x z6?oq2p3Pl_Hrg0bViIBmp5a|UT5_lewk!r@*)K6igvu(mvJvQhI)%(BV%cG zsq^CMQ|l`-JZ{;avuk+vAP>f{PshaZ&8IO30TZsHjEaZzk0poTKa3$wpj@Q zImB?24GDBbF4uUtZ}eSI(UPYlKy}%T*|``yy&#)9t7Je=mL}_JCMG8OYoSoa96_fD z+wBBWmc>FINgx|darTUCK|Z~@Yrbo>Lh!QoxE-jzNuWYW9^|2@xVI&W(K1x2kXLsm zFEcKasABlN=a)P&`}|{9jBJ0-4_jOAEh`aq5r1{f=7pQ^2ZbMh_x+zg{QBMv6t(Iu z{M*6oSi0lV_9&K?%34&4oBj3rgtAjt-j{d0pw>rFo}_7GkU^DoxqPDlwQ1)!mRo$; z7(OFf&euVJ<22|9ICaf2R5XTLHe4}Rw!>)8ooi1+Ea>0dQ%sl_mt z!tgA3e(~8`Z@>NaTc0n-czq02&8{IKU<6&k&r5kTbos@Q8zzw z`i3(@uWV@ZR58Yh8u{ET99U~2Or99a4j`yLj!;`u*$7oah-1Lavd$qIhUB99azAQb zeZjz7!$MDS1-_ZEnqMJ3I=FdP<1ZiJf3m*y^>07E{?4aud;t5_ROqwe^awSImP{-7 wCZSpp(ja7V#L}4SyZ5w=#33A`hWV`i0uqlLCO&VsGXMYp07*qoM6N<$f+>x3bN~PV literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background.png b/application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..fd641a98aba348c694ca5afa8924a82ca6c60a3c GIT binary patch literal 10706 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 TX>^X~XOM!( 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 Eg3VB;qW}N^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/wind_speed_and_direction.png b/application/src/main/data/images/widgets/wind_speed_and_direction.png new file mode 100644 index 0000000000000000000000000000000000000000..abe771f0443baf99552ca6ca4ccb262ea2faf1f3 GIT binary patch literal 1940 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/wind_speed_and_direction_with_background.png b/application/src/main/data/images/widgets/wind_speed_and_direction_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..be3335064c5a11cb08607cfa3083637d2bb00ace GIT binary patch literal 9724 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 Ef?fdaApigX literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/wind_speed_card_with_background.png b/application/src/main/data/images/widgets/wind_speed_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..3c7175463af8a06a62b9ef26db8dec2c49169f40 GIT binary patch literal 8955 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 Xet-y&si*3300000NkvXXu0mjfCIqWi literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/wind_speed_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/wind_speed_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..3042d46c0d07599af6b58bf9d39ce71051b0260f GIT binary patch literal 29286 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 Ze*xap=-CPldKCZw002ovPDHLkV1mX-3=IGP literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/wind_speed_chart_card_with_background.png b/application/src/main/data/images/widgets/wind_speed_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..968dd5697c4c7944404907ff7b5f3d78d459e3e5 GIT binary patch literal 9837 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 Tl`G#x00000NkvXXu0mjf;)(cz literal 0 HcmV?d00001 diff --git a/application/src/main/data/json/demo/dashboards/thermostats.json b/application/src/main/data/json/demo/dashboards/thermostats.json index 967c1cb253..a503ea97e7 100644 --- a/application/src/main/data/json/demo/dashboards/thermostats.json +++ b/application/src/main/data/json/demo/dashboards/thermostats.json @@ -787,8 +787,8 @@ "markerImageSize": 48, "useColorFunction": false, "markerImages": [ - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiNmNDQzMzZ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+", - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiMyNzg2MjJ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+Cg==" + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_1.svg", + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_2.svg" ], "useMarkerImageFunction": true, "colorFunction": "\n", @@ -942,8 +942,8 @@ "markerImageSize": 34, "useColorFunction": false, "markerImages": [ - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiNmNDQzMzZ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+", - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiMyNzg2MjJ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+Cg==" + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_1.svg", + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_2.svg" ], "useMarkerImageFunction": true, "color": "#fe7569", @@ -1093,8 +1093,8 @@ "markerImageSize": 34, "useColorFunction": false, "markerImages": [ - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiNmNDQzMzZ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+", - "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmc0NDA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MntmaWxsOiMyNzg2MjJ9PC9zdHlsZT48ZyBpZD0ibGF5ZXIxIj48ZyBpZD0icGF0aDY4ODEtMy01LTUtMS04LTQtNC03LTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDYuNDM4IC0yNzYuMDI4KSIgb3BhY2l0eT0iLjg5MiI+PHJhZGlhbEdyYWRpZW50IGlkPSJTVkdJRF8xXyIgY3g9IjMwODUuMjE1IiBjeT0iMzE3OC40NTgiIHI9IjQ5LjkwMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguNjc5MyAuMDA3NiAtLjUwOSAuNTYxMiAtMjMyLjYyOSAtMTQxMS43MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9Ii4xODgiLz48L3JhZGlhbEdyYWRpZW50PjxwYXRoIGQ9Ik0yODUuNiAzODguNWMxMC4zLTEyLjQgNC40LTIyLjQtMTQuNC0yMi40LTE4LjkgMC00Mi40IDEwLTUzLjkgMjIuNC0xNi44IDE4IC40IDIzLjUtLjIgMzUtLjEgMS44IDMuOSAxLjggNyAwIDE5LjgtMTEuNSA0Ni41LTE3IDYxLjUtMzUiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PC9nPjxwYXRoIGlkPSJwYXRoNjg4MS0zLTUtNS0xLTgtNC00IiBjbGFzcz0ic3QyIiBkPSJNMTI0LjcgNjkuMWMtLjktMjcuNS0yMi4zLTQ5LjgtNDkuOC00OS44cy00OSAyMi4zLTQ5LjggNDkuOGMtMS4zIDQwLjEgMzAuNyA1Mi4yIDQ0LjcgNzggMi4yIDQgOCA0IDEwLjEgMCAxNC4xLTI1LjggNDYuMS0zNy45IDQ0LjgtNzgiLz48L2c+PGcgaWQ9Imc0OTI4Ij48Y2lyY2xlIGlkPSJwYXRoNDk3OCIgY2xhc3M9InN0MiIgY3g9Ijc0LjkiIGN5PSI2OS4xIiByPSI0OS45Ii8+PGcgaWQ9Imc0OTE1Ij48cGF0aCBpZD0icGF0aDY4ODMtMi0zLTUtMi00LTktNC05IiBkPSJNNzQuOCAxMDYuNGMtMjAuNiAwLTM3LjQtMTYuNy0zNy40LTM3LjQgMC0yMC42IDE2LjctMzcuNCAzNy40LTM3LjQgMjAuNiAwIDM3LjQgMTYuNyAzNy40IDM3LjRzLTE2LjcgMzcuNC0zNy40IDM3LjQiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05NS45IDQ2LjZWNDloLTEwdi0yLjVsMTAgLjF6bS0yIDUuM2gtOHYyLjVoOHYtMi41em0tOCA3LjloNnYtMi41aC02djIuNXptNCAyLjloLTR2Mi41aDR2LTIuNXptLTQgNy44aDJWNjhoLTJ2Mi41em0xLjUgMTRjMCA2LjktNS41IDEyLjUtMTIuMyAxMi41cy0xMi4zLTUuNi0xMi4zLTEyLjVjMC00LjUgMi4zLTguNSA2LjEtMTAuN1Y0NS41YzAtMy41IDIuOC02LjMgNi4yLTYuM3M2LjIgMi44IDYuMiA2LjN2MjguM2MzLjggMi4yIDYuMSA2LjMgNi4xIDEwLjd6bS0yLjQgMGMwLTMuOC0yLjEtNy4yLTUuNC04LjlsLS43LS4zVjQ1LjVjMC0yLjEtMS43LTMuOC0zLjgtMy44LTIuMSAwLTMuOCAxLjctMy44IDMuOHYyOS44bC0uNy4zYy0zLjMgMS43LTUuNCA1LjEtNS40IDguOSAwIDUuNSA0LjQgMTAgOS45IDEwUzg1IDkwIDg1IDg0LjV6bS0yLjEgMGMwIDQuNC0zLjUgOC03LjggOHMtNy44LTMuNi03LjgtOGMwLTMuNiAyLjQtNi44IDUuOC03LjdsLjUtLjFWNjEuNWgzLjF2MTUuMmwuNS4xYzMuMyAxIDUuNyA0LjEgNS43IDcuN3ptLTcuNC01LjNjLS4yLS44LTEtMS40LTEuOS0xLjItMyAuNy01IDMuMy01IDYuNCAwIC45LjcgMS42IDEuNiAxLjZzMS42LS43IDEuNi0xLjZjMC0xLjYgMS4xLTMgMi42LTMuMy43LS4yIDEuMy0xIDEuMS0xLjl6Ii8+PC9zdmc+Cg==" + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_1.svg", + "/api/images/system/thermostats.maps_v2.openstreetmap#marker_image_2.svg" ], "useMarkerImageFunction": true, "color": "#fe7569", diff --git a/application/src/main/data/json/system/widget_bundles/air_quality.json b/application/src/main/data/json/system/widget_bundles/air_quality.json index ff0d1aaefb..c8485255d6 100644 --- a/application/src/main/data/json/system/widget_bundles/air_quality.json +++ b/application/src/main/data/json/system/widget_bundles/air_quality.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "air_quality", "title": "Air quality", - "image": "data:image/png;base64,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", + "image": "/api/images/system/air_quality.png", "description": "Contains widgets displaying air quality telemetry.", "order": 12600, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/alarm_widgets.json b/application/src/main/data/json/system/widget_bundles/alarm_widgets.json index 576e8aae79..33e6820fd7 100644 --- a/application/src/main/data/json/system/widget_bundles/alarm_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/alarm_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "alarm_widgets", "title": "Alarm widgets", - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABRFBMVEXg4ODf39/g4ODg4OAAAAD////9/f3g4OD39/f7+/vv7+/RJzDo6Oj5+fnu7u7z8/P09PSXl5eGhobLy8vm5uapqanc3Ny6urrU1NSfn5+xsbHy8vJVVVW2trbCwsJtbW3Dw8N5eXnok5dhYWGOjo7x8fHOzs6SkpL55OXPz8/0ycuPj4/XQkpSoGr88vLt7e3x9/P/9ODxu77ieH7i7+bb29v+6MDd3d2MwJzcXWT80oI8PDwhISHroKR+t499fX10dHT8xmOoqKjlhYpJSUnG382pz7Rubm78wVP/+u/319jurrHtrrGayKj7u0P/+e+42MGysrL93aGFhYVvr4L8zHI2kFHj7+aoz7T+4rBgp3bfanFEmF3UND3U59r+7tDfanD7ryX6pgrlhYsniEQvLy/T59r915L90YJEmF7ZT1fTND1WwGlnAAAABXRSTlPvIL+vAC9A4IoAAAo+SURBVHja7JfRbtowFIbD2t+xi2iZGIRQhKJMkaLV6sW4mggSgl6tfYOJq6nv/wo7juIlYKfKtmqOq34x2MYnwKfjQ0hwOfgQhL5zMbgMBsEVg+ewjDQuMrwBrmhbeZ8PBQuCEG+C8F2kZ7yLvCqscxjrJsL8whSpPYQQowZCNU25JOqR+B0kdK9DqhEhmuuNs3Rg8xUdbkEYIyG0iiFCGiPOx+1wOqgpyhHNyye9pKhmelV1BNdHOdFn12+q4ZbPbIHzEakYItpD+HN5FGRiFyEPfzQIpkxMEUoIF/AKwe0iIw6/oJQwZhMZwzPGVhHhpwgzil3wG1Q8HocW5BN6xg0XtozUInJo5YgGq2k8TaC45ij5iP8NiRgZYSRyi4phC6iov/inGfh+xal3IXL7aiLRIlnwOOKL1WLSExG0iBzW7SJVi2a4juLIlQg7EWFM1YgpsgW2L4jE1JRIzGc9EWnZWhKEbBeZT/cJ5jFP9tNFr0W+gvhSi5hw9VDNBVnXYl+j5Ieeo2dkXTOSA4+UlPzYZxGcFTtMkRSAlABSn0QoI9mpiIQWuZf9FOlY7E8g0q2ud1Mky+AOLQIjI6MzkTUafDNFkoeiWIZwh31rmRnJoTj8hCI3RMLiIZo+L+GI7iIpoGtEkZ6LzHdzYFfAGebWstdIjhPurcW+2cAR3Yv9O07ITZHJ8nkzh0uyLhmRaZODNEWS3efiDn9Dz+5HoGokgzP0X5R/FJnsQuCuCOEQyghsN1bZn4gkxTJJelDsYC/8/B7tHhJN4o3zC+Ivbq0gt2EQCJ5wDBLx3jn3zEPan/T/97KB6azQRpErH0InDjDrWdsTYsnJ8vIe+XL/Rvn+nIsr7/CIsrkzshiezcgRFgNnZDKyVFWhQfwfVllWKytInoygziNLTckme94CjbAQmuXIYRVssQhukbliFXcpHyndiTauHGNQq4YRSr4u2YgHP15HU0d61Q7grpTS0Xy4RlDUPTrK6KWT0jZlOoAADThjNlkzNUQtE0qxjBAw7JBZJ/ujrBt8Iw15XwSotDtGYOVSxBOyUwlqQ+GUp8OwAqj6GfJoMgMgjpJ6hhnLDU6Cd3D2MOKufOiI26/SvG23IWqAPAL88enohuzRgXPMc4JAhIayYcM3staqmkAbNEIvL3L/iODz61cHETBKtdI+6gwS20GGF7PZarxvlCLNcHxfeme1Ezm78AxnsselZygIEgpJeAQ2uG6TSe18Je+9gu4CqJF0Wx53NZKXeuT1EePtn6zE/mHHjlEgCGEoDFep07wtBiJBAkoOYLXt3GDuf5dlpzFHMOLfWX7IQ3CvjWzRnpDaCEo5ixC/rz+EHTQAH86O95ShCHmKEBT2EZba7m7WjbVIiu+uAGFBbVAqXSAgoavQl60PylCAFHuqQr2yTgi8SQpJgGgjvoeyqbRwI9VSjGRCZkyxFAvZ9R3J3IGs1oGs1oGs1oH82KuDFblhGIzjpw/mUGLqkQsaJKvCxSbsOadeB/IA8/7v0kxoaRkYhy5Z2A37O9ig2x8Eem+OGDJ8Ww14ghZ4MAzYFKgz6KDwypCYVhFPNJNbeOiIcbOEyq0E/CtnzdjUXJIqFlX/M+TP94xGRGrJ5oY2873jx+XyslUyCY2U5pZ0ZC0eSklJhLMyumQKo8joXk1Sg5H7tF8IJ5kERYvKvYPOZ3o5oU/tRj9VvlvLwpavYGWt0Su6KMrETNqi8hgh1ZT2CwniJDAttQIYcD4vT19VWJJa4QXXnIOsIZCCvobszOr6O4Ry5J1CcgNM6eqO5ozFPWRLcDdi95Aaks3BkLLO1Br62Equc7Y5VhtLNHLPu4SsRgMJVr2QbWSE3TyGDKt+yIQw4a/T6bUhFW8Wcvm6uuBDOuJl/9g+Q96bJeR0CEvIl0M40mrhED5DfrFf9ipuA1EYrT4YUly4mv9bLC7cqVIzgWmy6uRGxgYVrozdJO//BBk5C9kVW8isipXxgRn9NIeDENL9bnw26q6Sz0bdVXLHb3zQWivczf4INGWVPeEeQlAmYIKmBUIkaqUUSL3tAAGKQFBsFJSiccOE5prw+4pdg3PCboddWXMQ0ew8/mtuZ9Z9PQTOQ1s2ta985VhqI+XqVeTArtpY0ppjqO1mGtK16C/7fsgpH7vu1HYJc6gA53zg6ORQq1cZ1XLYLhTCkTcVLHnN0JtftipHI1tiuoWQZ8vTkLY75Qty7lPuzyUrYW5IMUaO/qdUxKPab7HUE4mO6C2EJFRExNgijiFmvPcioGlIf7o2l9Q1JaRNp2FuCBeT8+IU1WDif2oV3QKjLgWQtSTQKjgWDxO98gjRk/YmintR8NFMX/a8zxj27Z8h5aYdmuMZsygqQ2EU6iLwN3VRmaVHXcbdtEd8ZK1f9gbvWXHIe54hz5C18EghPx6CRwrBQ/AM+dve2bWoDURhePvxtkMvBibzdWYugkgKEpsgUVAv1KKsF7YLFpa2bMuy0FJo//8P6MS1rUq7bmkoGnwyM87c5OQh4jDjITk06igi7QqJo2RDZCJXTHCU/MXCymutGX6PYvgjaXeWA3kzX+RNrLnBXrj33MTYwat/F+HyDQcR+n3qE8rKJGd9YlLxhAzjnPphiB1aL/JZMy1axWiYF0gL5K9SDLEXobgwFrdhUEYMPXIVLXW99yaixGsjSJRVReQpUQmt1uyeXMNim6IJoDtLu6+G+XDxYTQbFTeL4X3X7NJ7qanNIrK3oSsSEdrJX5sPL7UjgXi6sfmQaL8rMkO+6LZa3bSLYfMVMOoO03uIJIAy1jkt4/Xmg5PVbT7YBvG1CLlwWCUQmYg7o+U0iBhHEtvk39JPr0uRxYfWMO0WzZv0w31EXIOcsdaSalMQWYUWRpgKfrWYAkiCYJjiggg8NqxsiXPJpeGGgWKGHVqjFGmep3jdKlCM8tbropViPyQZU2UbAjAqx2VAXvU8cmh/x9dxZj9uTiKHxknk0KhTwgCrBXX6aqEWnEQOjTomZ+5Pl90HB6qn+s2HmLCJC4XjJxpApDwn7DCfI8PgC34yxv3wDZQopWy1IlYCXDdwe0CEwi0s875hLTxiP2ENH0liW4GvL88/v8s6g8ve+WA5HlxgfH1xucQg9O5GREDsuRB9GTNSpKlCkYR7apvIeEBoPeEiyEQs4k5FyvEwNpoJ8tjka7j6rHexvHo/7nzufHz39vyyl83H1xnuxHhvSHMrpdFWOhPxdpUikNaL2Jn1HRG3FXolF5UiEI5jk+yq8zFc+kX2fo63yILIANlg3tsjMk0iLSVYKcJWmSO2KhFnyU4FN4JN8EPEJj9EmPAvueBtJRNsMbhCtjz/ON4SKce4Cx4BbSWmnhxpCMna1leUr8U4ZwgFoQWw6jAVBuUnCy1f9VkssUWnU5Zep1e2WNfecn6FO2GhlKeFWp0fUOz/ZtCxNwz76bwf94DTzH4SOXyenp3V4rFUT56ePXyGGvD8UXj79POjvydPngWNxw8ePT12zh4+ePwduACXxehGBMkAAAAASUVORK5CYII=", + "image": "/api/images/system/alarm_widgets.png", "description": "Visualization of alarms for devices, assets, and other entities.", "order": 3000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/analogue_gauges.json b/application/src/main/data/json/system/widget_bundles/analogue_gauges.json index f04547a919..cae576a40a 100644 --- a/application/src/main/data/json/system/widget_bundles/analogue_gauges.json +++ b/application/src/main/data/json/system/widget_bundles/analogue_gauges.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "analogue_gauges", "title": "Analogue gauges", - "image": "data:image/png;base64,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", + "image": "/api/images/system/analogue_gauges.png", "description": "Display temperature, humidity, speed, pressure, direction, and other values on analog-style gauges.", "order": 7000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/cards.json b/application/src/main/data/json/system/widget_bundles/cards.json index 39996839f1..1c4172d1e6 100644 --- a/application/src/main/data/json/system/widget_bundles/cards.json +++ b/application/src/main/data/json/system/widget_bundles/cards.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "cards", "title": "Cards", - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.png", "description": "Includes cards that display dynamic content based on data from one or more entities. It also includes static HTML cards.", "order": 2000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/charts.json b/application/src/main/data/json/system/widget_bundles/charts.json index 5119d01671..3693b5487b 100644 --- a/application/src/main/data/json/system/widget_bundles/charts.json +++ b/application/src/main/data/json/system/widget_bundles/charts.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "charts", "title": "Charts", - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.png", "description": "Display time series data using customizable line and bar charts. Use various pie charts to display the latest values.", "order": 1000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/control_widgets.json b/application/src/main/data/json/system/widget_bundles/control_widgets.json index fb7c6e1ee2..3327182dbc 100644 --- a/application/src/main/data/json/system/widget_bundles/control_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/control_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "control_widgets", "title": "Control widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.png", "description": "Various interactive widgets to control the behavior and state of the IoT devices.", "order": 8000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/count_widgets.json b/application/src/main/data/json/system/widget_bundles/count_widgets.json index 775947de01..36dc45bdd2 100644 --- a/application/src/main/data/json/system/widget_bundles/count_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/count_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "count_widgets", "title": "Count widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/count_widgets.png", "description": "Cards to display the number of alarms or entities based on the selected filter.", "order": 5000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/date.json b/application/src/main/data/json/system/widget_bundles/date.json index d6bf61a989..2477b0be86 100644 --- a/application/src/main/data/json/system/widget_bundles/date.json +++ b/application/src/main/data/json/system/widget_bundles/date.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "date", "title": "Date", - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAh0SURBVHja7d3/UxNnHsBx/7L7oXc/3NzM3dycvdajnavtUYXOVM/zsJ0eharIN5EgGLIEEWj40ihEEMSAhCU0CCoB0qAYhBKIfI+JBBJCstn3/UC9KtjT3g2apc/nh0x299nJvvLs83ye2X1mdx/xwB6IGPviARXNhxqI79sLDlAD+wLsiQjsC+4NSFBABERABERABERAdkKCblgf31bI3Xc79D//wuPJNwIZT5vFZ9xWqHRgoGB666vlZx9W0PvMQvXKa4MU5Ss+I7MGyTdxl6sriUagdJmlEial8qnxry6EFiTD98BY/YVog9TCiMVQpSiNerMTubw+BjS2ljqYqyh3B9pZ6pzqx1Ha1IxLMiwMf1GZGLtQ4aPB5NhtSH1Hh8/I2fVQcag8lt01fXkLQjb2jWUdZg+6YKQwHo72mxK+B+gXbU3UPRhopq3LV4ld3gjHc33xk9wORHMoiHeMulqD+cq0jpsJTw3SUvzM5mouuTO7XiP1ify7xujxiop8dKMOqfP+FiSRjdP4TT5mj3q8ouKUx9Td381qdd0pr83BtdHmMQa6+nIqSq+1mWZyFU4zbjRncsOti7taH5gJ6bBX1kpIS75aKIrkKrsPYfZzo3oqQYS2M2t1xfEtiMPMKTWUj9nD6RgRoL+bNifGLYjNjr3L1YSyCeQqnOZMNJbNY109rtbFcvy6WC6zEtLS6jkSObwWCC1GBosvdjBdxJgBoLS0pDbK1yVSJrcKgiNFVS1bkIlThpMum4Nro+FCY/5N9WJlmfcppPWsPiNB0UNcrZj0eh1lZeUFXNfFOvW6gdcAeRqJ+M510R8+ftymPD2e6GLM4oTN7aW3YibmMf24ezyexAkxUi+ZEz+5tdNYGXjdeUQMUQREQAREQAREQAREQATklwNZ7Otf3Vkq5gYIyRqC3OqeuhAgsUG0NIYSA2KJDRI+iBBoZENlAzUW1QDkDg9uzEm1dteXY1O1VRPQfqm2M1wTu9RkCjQOW6LVlqv+rGuagDxqjjmtBvQYuzq+hnYvZeEat4PJQG65OlzZd8rfiCYg8h2HfdWAHsOkdwXavZSGa1wOfAGdcXGw3ev1f6MFSHHtZfX+eZMOyTVhNLuh/WKNHK6JVV5uCjSuX1iTmts0AdmKuAoJBVUB2r1bVz2eXvuIa6PX2hnj2kg0IrMLiIAIyC8DEo8mO2SjswXYbMlTAJbzPq1UmMj8uxXAnZWVleUHwFr2Q/nJrKPN4PlXxh24dizTA6sWexJAFlIz84AvLj5SAY7cUk63JA7MRFJnANvpUCiUeA6ipExF0kaU97wrKWt3jkc87zKSfqwuCSAK/Xkwnrm0dR+5CS5XK9OQ6QRsBQAzx9MvYj169KNbQPgGnB149CnkON0PUN5RFRrrkqKN9OdBy4HM1OatxcihBbDmnEwAtkN1dQ4OTaifuaxHlcW3t4ZdCx9H730GJd2ARYLdhQxnZ2Vl5S29IqTKSPhPvtRUD0qmDZiTP5oDbEdl+d7ab7KyPrhiLYNPZgHC6Q+4fwJKZHB+Gt9tCLdPZGTNvmqNNNfAfgWgqAE2hsDQ/vTU2vzj3NzcmrUMPlwCYse/hcVDkO3i4eEguw5h8EWOn4CsvO9uOQFQfcLjmVRSBh+mfv+fNvJl7bQ0Y31ntONvKvBVicfj42P7SEps4YDd43my6xDCr9ZGvDIwcb46DPCNJEkm5g3FLoDJXoBN8zmbOtFbdWEZSEiSJLXhl8q8eCRJkjwwOiwyu4AIiIAIyM+E3NRQiFNLQAREQAREQAREQLQGmfwOAN/2cnVPNAYZ7gs+GgrOnZnC50oEpr9/SHAl4nykRciw9F1ZsGhlvGnw6lD5bGXMstQ0fn5Vi5AB9OhpqDTphwa5M1rFSFPBrHYhbZMEhgaJFfego0F7kMnvHt7nGrI9Ym4cnxiH6yGsNQ3e7nXR/QqIgAiIgAjILxyy7NEgxNCNsn8Z18ln1tkLNQixFeH63XVMDTDzBFj3KtgLiS5pDbLyARWmbE6MKRk56V0MHM5Pj9oLN470JMsBr/h8Pp8v9PI2khJKC6cqbys3Slh/n5QABqs9LyN5ZizPZWdkZJSEXw7Jv/4PznUcw/Dn1NSU6FupqR802X/9h3mSSfICx07Ijb9e5tuDNVy5CAr7wyjYMwfSkmiSrM8YeZXud+5Xs4TfGmHtw0vGHCxHrxyZsBdSUaa9PDIMuOMQGXApMG1fJuBFcSqag4ghioAIiIBoCSImDIhTS0AEREAEREAERAOQxIuemK1qD2KrqnUysG3l+rfag5xNIDsyJzba2mLD3Y3LoN6sn12/6zGZHGpPU1A7kBFdT5RyGv0um+VeUIL52o0evxkapvpHgtWagair6kgV5RSZvnZY5tGDKlcP+c3cvklDlemqdmqkbMGrpzTW6PF5LYPeKpi94T/vNy+WLAf7uwNj2oGEerpC3J2M9coxS491HRi+vrQxPm21DqpDnU+0A3kmLPMkc4jMLiACIiACkoyQR0OugHYhzzwS3XisLC0Z77qtvApE/sT/I+QKic9lFPnKPD1rzI4kh8P/ifxySN/hXp6F0JvDyaruA+Fz7RRbX/9BP5FlWZbdz690pPW8DNJ3+Fms8QqMfMbCnPPjcfc/1b+E38DfL2dkZBRsH5/ukOyYwpGuZxuk4xwFha0H76kpt798IyeSvNMB+vSV/14jzvT25yGPD44lfq8oH41RdaD3zTSJFzyosDPt9svayHMS4/7Uw72gez/9oMzMbzeTpdfa4XhRr3X3iH/HjpEE4M5LFof/yN1XySM/MXu85T1v0uSR9f9niBIMk8QhBo0C8kYg88l1Y31e1IiACIiACIiA7Bpkz7wgeM+8sjm2N16irewjHgisajwCAYV/A1HeMsl2Bkj/AAAAAElFTkSuQmCC", + "image": "/api/images/system/date.png", "description": "Contains widgets to change the data range for other widgets on the dashboard.", "order": 20000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/digital_gauges.json b/application/src/main/data/json/system/widget_bundles/digital_gauges.json index 39140fbc9c..f8906684c8 100644 --- a/application/src/main/data/json/system/widget_bundles/digital_gauges.json +++ b/application/src/main/data/json/system/widget_bundles/digital_gauges.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "digital_gauges", "title": "Digital gauges", - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.png", "description": "Display temperature, humidity, speed, pressure, and other values on digital-style gauges.", "order": 12500, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/edge_widgets.json b/application/src/main/data/json/system/widget_bundles/edge_widgets.json index 158a856eb9..91211e51e2 100644 --- a/application/src/main/data/json/system/widget_bundles/edge_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/edge_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "edge_widgets", "title": "Edge widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/edge_widgets.png", "description": "Widgets to manage ThingsBoard Edge instances and navigate through their entities.", "order": 16000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json b/application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json index fc4779c522..c183721f39 100644 --- a/application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/entity_admin_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "entity_admin_widgets", "title": "Entity admin widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/entity_admin_widgets.png", "description": "Templates of complex widgets that allow to list and create/update/delete devices and assets.", "order": 13000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/entity_widgets.json b/application/src/main/data/json/system/widget_bundles/entity_widgets.json index 13194d18b3..9fa72d89c9 100644 --- a/application/src/main/data/json/system/widget_bundles/entity_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/entity_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "entity_widgets", "title": "Entity widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/entity_widgets.png", "description": "Visualize entity properties and hierarchy using table and tree widgets.", "order": 17000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/gateway_widgets.json b/application/src/main/data/json/system/widget_bundles/gateway_widgets.json index bf48fd1c4f..f4414059f4 100644 --- a/application/src/main/data/json/system/widget_bundles/gateway_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/gateway_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "gateway_widgets", "title": "Gateway widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.png", "description": "Widgets to manage ThingsBoard IoT Gateway instances.", "order": 15000, "externalId": null, @@ -19,4 +19,4 @@ "gateway_widgets.gateway_general_chart_statistics", "gateway_widgets.service_rpc" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_bundles/gpio_widgets.json b/application/src/main/data/json/system/widget_bundles/gpio_widgets.json index 78b9c1eea6..8074d7a5d1 100644 --- a/application/src/main/data/json/system/widget_bundles/gpio_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/gpio_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "gpio_widgets", "title": "GPIO widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/gpio_widgets.png", "description": "Visualization and control of the state of the GPIO devices.", "order": 22000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/home_page_widgets.json b/application/src/main/data/json/system/widget_bundles/home_page_widgets.json index a30d6ee76f..9fb22fbb8e 100644 --- a/application/src/main/data/json/system/widget_bundles/home_page_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/home_page_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "home_page_widgets", "title": "Home page widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.png", "description": "Contains useful widgets to design the user's home page.", "order": 18000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/html_widgets.json b/application/src/main/data/json/system/widget_bundles/html_widgets.json index 9293ed5fcb..33e4a5006a 100644 --- a/application/src/main/data/json/system/widget_bundles/html_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/html_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "html_widgets", "title": "HTML widgets", - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAA81BMVEUAAADg4ODf39/g4ODg4ODR0dHPz8/R0dHR0dH////f39/t7e3v7+/6+vr09PT8/Pzn5+fR0dHk5OT29vbx8fH4+Pjr6+uUlJTp6emMjIyGhobLy8vGxsalpaXh4eGAgIC3t7erq6vb29u5ubnZ2dmamprDw8PAwMCysrKnp6fd3d3IyMjW1taJiYmurq6jo6Ofn5+Pj4/X19fNzc3T09OXl5eDg4NtbW16enq7u7t9fX2RkZG9vb13d3ehoaG0tLSwsLBycnLQ0NBXV1deXl5kZGTPz8+cnJxqampnZ2dbW1tSUlJOTk5hYWFHR0c3NzdAQEAykmEAAAAACXRSTlMA7yC/r+8gv69spyeXAAAWJklEQVR42uybiZaiRhiFsyc/u+ybbIIIioAKuCuttlt3Z97/aYKgpnti9jYnnZM7Z/6pQ48Wn7eKul3CF1989/23tbeykI+mb74qOL5FePStcPhgItkvv/riBw0thJV/ytYHBAHAvv6ixpcnX6pqYX8ShBWhEkNx8AdFse/syZdf1NCfHaGa1M9Da4D5Ig4+RdFcVatX+Bpo/mtUZrSFSnbAw2+LH9eql6bqW2b+74IhBcjVkV6cIVcQPPadAY7X1a7LkGWtPv4oRMPodbdEXYJKtYz6vREg+2TZWDcYeCXOa78LSIXCJ8GTfQHxjU307NWMTMiSmnuq1adNB3pDD2h65Lk8sErXU8UCRFQIptZN9hTX6y54vE8AYH3M8Lo0VFLYgrhPNxKkAKFb3SeD4UdeSwRsZA5YQn2WjQ7zd0GwiyNN93gF6cRZsPbUOJM3ieqcqlgNn60+1rcW7ZpSiNckx2wWIEi4ZBU5lJ/pxyCMZGrSY/nHSWdjbmc4lAoGLGZNbCNTcWD1KPy04CeRuVOxZG4OXd5d68sB806OFOqsriCEsJ3LD6gghIGL1k+Vq4ZPGGRBWCMsVxqjaqryLBs+bz2EN2V6tO90ZXqQNyTDC41YWfHaS4UPqeHNR5LI76YcNPMOvTKauipmhjqLRrlDU7O6SJDv4sjnIO1dnu3D0S7LN85odqp0NUaixbQVqaN4rg8pNbAK5PnL3gAqCaGW9Z0QsCAKk10Wmcoa4MmGUuE22zh1AvICxAswWDe6EgKzRjebhLEpMuPFu80R7C2Iv95uJs3HtTzT3cf8VDE4Sd3WmNq2JaSdUD+D1PMwVbAowGtZJ5JwMWtMn9Pxrn8COfagVHud6s8uA8MFA82MKkDUvEnvjObO6NkUh4+7JMC7OeINP80UvgKhho+5ytHDqdRl+OBUoZTr9KDnLOaZMB5eQCS2rtv9PEg3tJLLesrbL4rxhL4GwX7st19sEsxMeuDTsfDSQMN0cjTEZDaJHwCcYTzC3s0RtVs3O2cQYsA/Um9qJcrGALNpZNpaqARfYwFwpAasSnH9ZWvEcErLsIGdMrxLiirA9HJ2LYaZsgCi0UJwy1gufZxSGscmTrtLgwLwG613uWr9+axFchz5+SHmdAQnf+d1ZSGB3QZybAEAVy1b+PvNEezS+keyFtc3Gp+Z8A6OfPD0+/k68mAuff4Dg1wc0SRHTukPDHJxhO62jafeBwZ5NUeU1UcG+Tlr9fTkIw+tqyNWIPc+8mS/OiLoNf4jX34vjtBPMyFpix8X5HrVSpLkQ4NUjmD/nZX9mrU+KshfcYRloRLD/juw31y1aqOp9jMIJnLl7hsDJI0BhcIrMVMDKnVa7K2wLvJlFeEizMFI+Ez3umrxYSL/vCAS7QaNk8Rjw+IwZ8pGbzaiMEGCSg2dh18IF0cuSxa1wV7Ont/zdwe57mstm/OVfQYhjEkaaawhyE7Pn02UPEHFgWIRQPh9BeELEFbjOLrvjHmcerQYgsKBxCj0QRmwJFWX5QVW1NTEzuSPwskRrKYMOKhE9/sUCffJWr3Fs38GYcP1Su/z4X41ayrxOBhHVMcUBJWsJbHgUoIkLg22Iwj5TLQTYdLwPZrB+mZ7LMQmrumr54lY1JUsQil/PrML0nCSeARUegwnEn2nrGXudOQMAj1huCCg5wxNtB2OM6mOoHZzKBCttInw/CQPHRuN0sF2aBW1lbvSyHUXgrFDGiuWU4fpAIo67EMlwlopHHCree+6byzW3MMUv48jjWSv8GeQjqqoaFkpN6zP51GnbZoziW8JGgAWv8xUsIQlNPR2UZFg7iT52DMbMxDXCNdstxUoqtKEi9YFCClMPIWBUty0a65bzH0cQfl168bK3pjbhOo0U32UxheQQzzXkKRONnQl8UhbXnqzPAvUE8jGghvaNBkAohlnWjUxqDyaPi+Ju/yGaCzM5zb/S5BWpEE/GQWSK19ABKkzifylbEjDoi68FBmtDWFP/zpIEBgI4bqNVa8CoYdRc7cg7uGIHcjjOnVjQXxs8qCNLFeIgxbRn/IAxGhE1kxNCwPZJLS5HDeBTljb4XohEA4FNzTQg0d0EkvO+dxJI57Ibe4uK7uIiL+5suMEQ36+lXU6QnI4/L64goBkmVcHWO6eWQvFPmxoPDlyRcEujjA0IpIc/4vdfoKB3xXOwu8LI++YfmlbvIBo27pKUIajEgVU+3r1Z9T+ZaC8Fe63L4gkbVb//hYP0eXv5wg9F7QLyMNwaTP8NHN4AHayZK4pKyzPsTf9HKQ9RC9NZV3lKxN+XVRWu1v65bubZ+sKIltQyJnzQNhmnwMgkP4jhcZyH2FwP84HCF/mK7HIWh0Wp5smUTDQj4rNKMf+gCBR42UwOBvH9wedGnHOV2hHUdATiM8yGgcaip/eGX+/lb2Xb3e3QKil1GCBfIgkvUVJz1LUY0fZyjEUQ+RYZUqFsTBiFUGgAChPklJR+SQJBm4FnxyHhlJTPZDSAePGkofCKJCDgZY9IF6PCmmoN/n6OO5a5Hs5Ikr16U0QwpKjAmcsDeIYiSVFdwhfyAaamrT7qjefz0b1zKdaeQ+IVqYoK0Q5DhYr4rUjE0cOpITVOqOXHjkTBj2WyrpxndfyAczqyHiuzDzsvRxR1tP6ui3+EqSqTcmFUECEsKgoZ6YAvSiZyWEkjbuR3obesAdUEgF1QJR1UTXSPsJFE9NzFhJf63afVHzWYACo/VEQ4QyiN6CbWO/lSJjNdi8O9RZkOxfLSoEqLYjt5ATiCTzX1QFoL89mk5Y0W7amdAEyAHErEP6qADkFFdJ6In8GaY4akr1yFscrSJYqDJU9XkAm/rvta9l2a/Pw2dAyE1djyooEQWMonUHIxVixqfqmmw59L1YGFgAie7Y4zQ3v6QwC2qE9wC4gAK6k7Nqd1QUk63v6AzvzHvYhMo76ev3dvkMspAT0ZyBWkC+xqnbqwXNMdRsw7WLQCfKtNo3QRR18IZsl5Gl+SDbWCtInaiCBKFGACdnwEUp1XYB+nZ3M0n2PFPo4ADqx8KiFucNZNqXzVS758F6OVPUCUhsbGleufHgZs3Ac6bcDj/w5eHGvUhNZBi+C5Pt9L8OvUYwg4K2Iz/aaqvfh9UWZ4t7NEezVvpYvDz0eXol18llE/0426ed5+gB/VphTK+p7OlK1SgtYjPuTd7GJlZVk9TqeBAL+kNjy/zHExd7f7Bdn/oAjlG/b1BmEd73OnyJh1bp38otrI1AIizh0AaWIS70tvPtAFvjTop4YuFqvPKpp+K2PS2v+gZXdTbaRfwahuwePhT8hZlCfPQAQo7x26tDdXRIX3r3U20Jyt6jU2AXy0bqGOdZx2Fu9NGZ/IGvFutm6XrVAXrIAGG1RHIkhvogDLvoIhrMEEBhJUBZNwOkHFEmyiEYAgCU/AFnLXChESHVcOfgIA1znR01jysrilI+wJBC0pXEAbNWRKdhFHcU2Sed1DeUncdEZTjWaZbyzaObcDc5bPs8YO6Q4AgyCFFW0fPaWI/K88OMtiBrrnkaYY71LkVY91Q3eVaDtEr1oLHRIepmOTYIy5KB/BmGNHVlm200PVz6lqQq09KMgaGXtoZIuuxy40ligAdwuevJOX2AAIMwx1DxmQgORDmmo8QuphQGnpnpinbsRW3raYhZPslQjuZE8UcjivCT3liPpzOnzb0Fou7k36fG2mbWocapIsSV4EAoYaivBmKrn7WiImPnU21MVCJ3Uy6HcP5C48tQ3PjFs80dFYcvKa8dm49hnjqZdYwGEfeeEnCtFxcYGMIOdoCBiLDeHDmvFMQ1EOFSClC+7odsr1bKZxaE53yPKyl0eKNyqeU/sDUceF+mx9gaERNxWNvf1BkieUWatCgTlHxfBWBW60NCVIhOHw2YFggSjcmQ5QvVbyQsC7I8AUFX6QIEUsXmq8tdd8kXsF7Up1QDKu7awKsxBV6DL2yVHervshrI2ic2c5ggih1EMaLrEO4v6yv/ckUrPLeoCEnRZQPNZuI+sAkSoL+IRHk38sh862Uf6rCl0cUNvy8O6t/TPjkjlpBb3DxXIsfc5iLBlieU+twCq1TJdYkV1Iv4CUmUgWJ5BpmnVDUVqwsEhChBfirYTwFJz8LSNjtaN3fiePViPxAuIk/QYf2aIQViB9PRA1SXRielk0hMksZX26rO2MLNDWRMvkx2LdByArK3wKwj5IyIyp0ox9PGRzqaEJtKrEQMthwLgM+WEOTbK6VKnMP4M0ojbGFaCVN3QGC02d5qxo5r5g5vR/U2tmVGdZ+uXjiC7zUpGrkNrkK9N0dlnB1OLVYhabC2ZrSS2P1wfHMzI9htdpOez9Qz15dVeJysQUlkPAIjCesAfZgB7C0BabdplbVgvq1WKodluk3cAnKwoDckCgHZQZrLF7jnpzLvQmqOgBQeh1kqgPaHKbijlsNsLjHrcb5aAxavnOtD5Jnumb+1r9ejX+1ocWzQYlIBKJEoXppLnAIVjLFkcQeZygcBhePG3fwonmJmLwO+Uz5buqtIH5NQkebZ8/1O+kk0UALZbCqrlnXu9i1Y1qm6KHtDTAaZKUAxXpgkU/7V9rQrkljDpsI7fRNTiErLWO1CJdzbZqc2aU/D3t0MBlVPwVpyukkWVRiTc1rWbP/kdIvbLL0PJ21yA47/1UyAASPgndPOqRdG/dMRH8DMR9mZPzVa5olI95nb06nIkjcC9dTtr8b1FSP8CRKoTVQOdTDC4ivWk298hVtDtZyC6mQZ31m1H2rvZ/ArCFYdI4AgsPYOQmHvygCSwche1lxin9lLnz0cYDCUAJ1CUrW7kLliTHIe76rYj4saxxevQaieprhDtRF7NKxDKPMUf0OqypwHAVNaANtP9TKRa8sQG7FEYO2IRiHSvylpFpZ96cH9dQS4avMixKl5AJNlVeHEfjPZRBcIOAokGQhgaQ4EAxkxJor4bBTPazIxkhyqHqF9j1YNqPwCQnePJNXbiwP11BblYYqzm9ReVv4B0MYCG3P95jpTxpzaZwnQyAD/pglVlraLly10vhUIPh4QCAGJeTiCipcNddduRRuajwzn9GqQVDz4DUSYqNCcKNGUbbMEoQNSianE0F8qJZMVPk0vwAMIL4K667Yh9rPGbJfUapLdb4CcQtW4BwGJiAS3VuVCiOVPHgXckrqF3nJjrZ4/GRqyWFfpIk/axfA90uIT76wpylfP0VJjyGgS8w9OniABn3QQAa/giI83Np00TOo5XxrGXlxytZZ+OdRAnn467tvtyeJrhhCeX9tQ+EXA33Xak8oTSfnErIF5eWjmmPIazTFGIot2SB9XGFYZft7g4ngFgTkGYz0/coG3ubMhtR7A/cZsTLow5+HX5T0w5Q0y4v64g3/Lof+DeeBL54nsERT/6I64A7DfFs7rax39WF/vy9NTxD7WP/vT0l19/9cX/+qm9e91REwjAMNzTnw+YgzOMoiKCIIjgCdGqtWratE16/xdUFNvapkfb7tLWN3EzjjHjE5nFTSRbvR49fqj9wZ48uqNFHj00GP5czHx4R4s8MfEHK6+Zv5NFNIY/G3v44E4W0fCn0x7cxSI3yA1SdoPcIDfIPUJyGwgdBCGD1gZoaJC5k7q+L8B91/WHL7K267prayuBpJg3KwrRYip3BhlM6qj5gOHVld8LXcehkM5275jreT31ciE8CbiR45CKQqjnpAdwdz3/BKIJBiDZAsUD+tjCGaKJqh5aiGz/BWxbG6gLyNieky9BBnatshDemZhq53kTcYRQT9CBFkYAvgR5Xd3NDjXeIxgbMopqk/1e2N7ep2FcjD6D7Ab7nlvMV3WzA1JCSYBRQillhBoS6jg6f1GKHm8Exwflab6ykIv+5vPI+26QG+QGuUFukM/7ZyCMlT9YGRg7T5e3L1ef61WDiGcuIBe74Wx0LDb7oxBAMmqYfLTGVwpWSdUgTvcA0Naz+tZ/thn7ttlcPSNQ01XLEKvBXwihwGDjALTZ2mjgy+UnkHzacCmMQ2OaA9pucSgg5r6xG1YJ0g/DbfcC0m/uEY2ml5BhdxF3XdVfeo1NZi5a49kqUfFy/KxVrxCk22yONheQN/um0Y/jS8h4YzE36m1c8FZH67osXyXWZifaq6RCEI9S6/LQWjjd7TLvXEImLRNAvmmDzvrZyj7ukd5qOZu1wgpBPt8jDdXozszdJWTQ5QjDoLuHaMViM0D5jpimJqsMwXp1ICfILI5jASBtTcebgeyPBv1ujS5ah8YqkZ2lN27wykD4NAHobiwBe2oBND5ATAXZd2i9f8wBwNpvFq4C9xZv5gTOtO9PU+j7Rd8mlYH8YITgmGKX38wlrELnkV/t+xBJ8LORCkKsyWSaX7JclLHI/KojJpWDiKkCBgk+5K5QZnc5vtaROJC/DtGH5HdBFiaKdgTnAreDU9xbc3wr79chrNMyfxNE+TgWK5TRQ72EkIGzPUO03klogKbcHY8zAO3C+bwTAuIQxy6tAATsxOngnJejHG9tvIfU1ijyOYzpVCempwMdEHNimZA7S8nXY3Y9JOnsdSDwOi9ADu1DCHHoJPLavxAHQ5QND6SE6Dv5BciKAgiHBeR8aFkuitbG1ZDNaLbxoS1HzU0gV93uQTRbzU37SkjmoUy9kUDntIKFL0BiFOXJR4gZc/ZLe2RpGaO+2nW5vpzKVUMYg01gPFuoqyD6hKEsrqF8kdsQX4IMUJTaHyEQAy/iv7TZ5bMGHW0ajWVDrjygXwxbM3oNhC0kysTb5mw2ezV7I1+OisHT5Ux9D1LkTMJfhTzrpkE6PEGm3XkxJFdAVJ/jsvNmv3hHch9F+y9BCDs9Q/81CItWcTJ9cYK83kzt2L7mt5an4TsQHgNgz8XnEApkEYp2V0MOCyqnExC/2XrD5cgFmD1r9YMrIO5yfUygNv8aBNvxa7vzjH8GWbsZIR13bk9sBt+6AvLli++ZZLgCQvkpCmKgjOKcIjjH855J3z+kZDlQvUCB8TzTAZgKuPdPv+f+/o/xx26QG+QGuUFukM+7Qf5TCGGf3f+7IJoBDCmKehyfFBhf+fd5lKngEzHFh8x7g/A2sAYzGFKhCCRAZfnq8joUBYjBTnNEUapIcY+1BTEAqsCUKQE4CYGkOD5b2vp9QVSk6gnZphFNRU0gkdk8EQCNauu6ZddqKkxtmbUTZ7jtpVYW1kJ9WzMi1n4data6FpnAfG2K9jwwbb3N/eC+IEi1pA4rW1slRI/SWhtIh8it9uvMV2HPMG0wfeggtQIOW3+t04hGILaYIxCANUdYyyOkPkUi7w1Cwwg00pMCkjuw9VBwHchOkB7npO7Yug3QzyAh1AXE1jhHvjXvE8LCAHKb+zwVVpj6Mp+nHDDtNKpzO8hoO5vT9MULcYJkdmaT4HRo5cnQKiE01LUk04xEn5N2dm8QGASoc0NSwizLAOEWw3FGL+4LCV2YUMUcJaAkCwSF5Oo4VYcyQQkArpjFiaTQYdbv/zzyI2n1yp5Hfi5W3RPiJ/0bH1H+RshDhj8bKyB3schjA3+w8pr5O1nk0UOT4Y9VXjN/R4s80f5c5TXzd7HIO9jqsoYL1vqIAAAAAElFTkSuQmCC", + "image": "/api/images/system/html_widgets.png", "description": "Visualize HTML based on a configurable template or function and device attributes or time-series values.", "order": 21000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json index f4fc3a0201..8fbd81e783 100644 --- a/application/src/main/data/json/system/widget_bundles/indoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "indoor_environment", "title": "Indoor Environment", - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMkAAAChCAMAAABav2sAAAABcVBMVEUAAAAAAADf39/09PTw8PD9/f3AwMDy8vL39/fy8vL19fXw8PDw8PD////39/fz8/MjTMf6+vrj4+P29vbx8fHn5+fHx8dYWFg/pxra2tp0dHSQkJDt7e3h4eFmZmbV1dWsrKz/pgBaedW5ubmCgoKf04z/3aDdNVGenp71xc3T09PCwsL64ubI0vHOzs4+Ys7wqLTIyMirq6uRpePYGDjk6fisvOr/9N91j9zri5v/6b9KSkr/+u8wV8u33qniUmnn9OODmt//78//46/z+vHW3fXgQ13/sSDnb4L/vkXx9PufsOa7u7v/2JD/04D/zW//x2DaJkXy9Pv98fPc3NxYszi6x+6esefPz8//6L/umqiHyHA9PT3/rBD309rP6ca2trYsLCzb79TLy8ur2ZrpfY91wFpLrCiDm99MbdHzt8HD47jtmaiTzX7aJkQxV8rtmqj/2Y+JiYmTzn7lYHZUVFQ8PDz/tzBohNnNzc2Pj4/UlCD8AAAADXRSTlMAByDvv/Eqr8W577Cvv6N3egAACkpJREFUeNrsms9v0zAUgBEgceHhxNiOnNhJ10RVlGqp0qpd1a2HtqqqwdjQDoNJTIIbnBBI/PzreQ5ts0FBK91GOvVbE7t2V/ub/ZzW2Z07d+/fe3RtPH549w5yI63cvQfXyj1s5GZaeQDXzH0UuZFWHsM1cw9FbqSVR3DNPEKRG2hlY7IxmXNbTFqD9jWaxCwIMWGeF0BOJYAZERREq5u87TfeH8MMIQS9SpPwTei9YQDUDxwQIWMVV7AKZaJCARwIQiYgxApwVjd51xpY2zCFVV7FAaPADIAZwIRSoIz5DJP86TImwotDMxrUqTgQx7GLJo7YpU4zQhPmiCiibsWLxBWYNFpjNJnjUOpEses5nsM+xw71feFEzcgPXgUOVu6GkecvFSeVCoAx8Tzq4+8yDzvtBy51sa1g12sKv+n53tWYPL1oIowJNT/YZOxHTQfCeBefGBMXPi9nInZ3cxMX8C18fOddEbke/WkCThTCGxo4UXAdY8KcMPxp8iZ0hF8RDrjeK+oLP3xFXZRrlnTtalQH503MnBYsAPPjCAbUZJgIgFIamBACwcpqYlnWCSykuVbXk5aFNI5hKZY3IVrj2bbBxkRh7ueDED7N29Ikq5g0LMPTeYvwK6oowo6A/jcTiV2VicrkAQ90CjqVGp9rqQIJGZeJraR8KckKJmMrpwtT6gBa2ZK8VqBsxbXNM641r2MRqNeEaHyBxEQRSZYx4djvTIKUkhOeAOdEa805PiTolzIBLH3JYQWTJ1bOoDCxk9c6ldjhlKR1ldQlT1+TNMvykkzhC9J6RrIDlZUsTr5aSL8NUw64TvHI6gQymR4kso4T4jWpp1rnbjgmWh6kPMt42UyedC3rXbEKc25zDhxDEQgndQWE2FyBwqI8iFR+qDQDXra1C2nDn1CwmNxrKZNiYbLzlGC6nt9PuOSJUpxwzBFC8BRwpYlS62eiucQ1imuCAtLAucQivnYmhCiOvVfERhWjQRRmuA7WzuQP8PWbXXM2OxIbk43JxmRjAr+wMdmY3DKTvT087RhMZu/0dG89TU6PzmoAvS3DPsAzTCY9WIj9+DGeqQdBDAErmcneBHuOJqOto1qtNoKdrcmwd3a2eFSYpDZQ5oHrsaZXMpOd571naIJDcQoIpiOAQzwtgn9PbCbAA0+ENBblMkFqxuRo67Q2wpF4vjU0Jc9gEckrFxABtAKMBeU02d9CJjtosmOC5hAWQlmZI/6nyehoCB+29guTK127jlstgE51xklxE68zrW/0+9XO8VWY5Ey2LmFCALHNcUmT4xdVy6qafe8ZJzORQTe/OTHuWzmN9hWYnA7BTDE4msfJcAeQvfyYY0sSaM0J15JfMk5OsJu5SXs756llTTvc6AL0B1jRtxov2mOsqF6BydkZwM7ZBJ8cTsP+WW2vNuz1Rr3RcFjsZnASSIRznpDLmbSs6ot35/rYtbrz+0Uo8RRLpm44aNsrm2CMTI6+YAavL8/3zRUSjo6eQa3X26nVcHTmEDshPFCEEHXJOBk/AagWJm3LGk+zT61+HyfUE2vqhpnBSiaj/Z7x2Z/s1/ILzJfJoZlPh7Ve7XA03BuNVo34CybdIgvjQQs1t+e3Wra3x9f1CbIHhqs0edKwOnCRDk6qtfksXJh0rAbcDpOG1b0dJtjr9gKTk+VMNNFKK0D+n0n19yGB8TziW63O5Uy41JwD8t9M2gsnUr+oHVzOREt8AHAN/0rAijxJljfpWo2F106rk9cue2VU8K/ErutGIZ2pLG3SzrtcUKzMVveF+XQ2uKGIDyI8sdB1xT/OroH1/hgW0EYVBEVWMFnwlYNh0SKoP8s0nQpdyqTT6hTJIk4G3e6LbVjJxHUoXEC4XuSIX+UoDc6/UODAlOybFnVpVIEC5sXm7DA4T+QhF41p2Uw8iod37m9N5yFRUInLud9lk4IgIsi3TwEx0I8xmfLxgMyhn8hC/rvJeTwxDeZwOiBzfFbMLVr+PUjmzpW8PEIKRARTaFTa3VTmuq5fAaQiYEbTp3CBaFbn0NKa5DSNiwt/hjmQEzdLucOtOQCfr1POXzsp3IrBgz/A/6sJ5wDFXoKAvyJyGCzG/s8mGi5yu+4EbUw2JhuTWRsq//9sk+Rok7UBEtskiL02Jhx4XaUqBc6llEEiX2Yqk5BKDkkqM635uphoLusqUQnIVGI+SV5KniqQAYc0SOpaq3UxOYeGX1FyjeLkPOsd8QUbkx/t3G9r2kAAx3HcZtdu/DYWjzu5lDOQhCQzD4L4RATNAxGfivWJDmXt1sG6lsH2/tklzLZZmfSW5NzGfQpXEfH8kvgX7kyJKfl1lqeoWUuGaJnlGWr2UoZomKX+vSpePJEhemZ58rz1qjZPn+UhGmYxjP9Co0badgySjo6bqM/JkbZ9iY6aqFXzSNe+RCeo2bGmfYkaqFuzoeGznZYSmJJHMyWK/s8SasHBLYcAnuUQgtKKJQQQBEDHhUWJ7RA4XgclFUtsCgYqg6hruXBJx2UW9TglnXI1xRLCbdsTAIgAp6LTsym3BKEuSimWMP4ODMzhHvccbjE6pHJWNxQWyiiWgIbwXEhyBjCAhQ5AmEtRUvGY5CU5TjkYtR2HCIFyiiUQtsdIlsQ5hrDkfHBIT1RdMrR3JZaw5TGhAl4P5RRLCIcgyLzvIBTCJczjRPCys+Qle5GSJ9ff8ypsUZTy95SUZUoUmRIFpkSRKVFgShSZEgWmRFWxJPXPgZHv+x9QmcOUrNsjYLm8vFyjMgcpGS2zkvYVqqW/ZLIcyZJJ+5s/QpX0l1yvIUvST5frT9fAyN+mqID+EpmQZiUZvz3B9dWHEaqgv2TdzvjpFhjJksm5f56iAvpLJmmatj9Mtu2ryeUSMmdbzYux/hIpP7v8dnt5DmA7+eajPL0lRZN0dwEVqL6E2ExwgqJDfFpZbADECyBKIiAfizbfsRenQIehSH/JZjwfIBn3IyTBx2CFZJ6NBVGAfSwOyaYo0F/yOZnKkkiWjFf4MsV4gM8BgC/RIMFiIEdZkgxi3EdcK/8nGLOI+HkZBfpLkD12QJYE2WPGVI59AMH0azCI+7Ov8yjqz2Y3C9xxmSN6ALwQlhAucqGN+8tGD18S7EoSeYTifozZTF6L6Qp3GAGGFijHfT3BhlwwB7niO+Pv+a0/8ErpmCRIgqxkIEvyG93KCzpsKIMesuzwQcmnPSXLVuu18l9rf8n3GT6O8XGG1TgrWWE2jvsbTAfRTbwIPuMWt7DXg5LU/730zR/A/pI4CII4G+eb/HkSzOO4P58HcXQznY9xy/bwCIf99hvfG4NkAciza3fdDmUhHueu5LR7ikqcAfKuLi6U3uODBHkJikJB8AjFki5cVMEKcXHqnp11Wyol8SIfoe5hiVtRSX5HsuTitFBSAw0l3ZZrvVU4JiXU/Dxpdc/w9i1y5pc7RaZEgSlRZEoUmBJFpkSBKVFkShSYEmUNPesZG03UraFpPeMxanaiYaWhppU02lYaHp2gPs1jGbLPv7Xi7AcB+P0LpI8HcAAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_environment.png", "description": "Contains widgets displaying indoor environment telemetry.", "order": 10000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/input_widgets.json b/application/src/main/data/json/system/widget_bundles/input_widgets.json index fe24d68960..1b68484349 100644 --- a/application/src/main/data/json/system/widget_bundles/input_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/input_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "input_widgets", "title": "Input widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.png", "description": "Various input forms to set the location, image, and other configuration parameters of the device, asset, or other entity.", "order": 14000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json b/application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json index 61f7e234ec..e53c0bc6b5 100644 --- a/application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json +++ b/application/src/main/data/json/system/widget_bundles/liquid_level_tanks.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "liquid_level_tanks", "title": "Liquid level", - "image": "data:image/png;base64,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", + "image": "/api/images/system/liquid_level_tanks.png", "description": "Visualize the level of liquid inside the tank. Supports various tank shapes.", "order": 12000, "externalId": null, @@ -20,4 +20,4 @@ "horizontal_2_1_elliptical_tank", "horizontal_dish_ends_tank" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_bundles/maps.json b/application/src/main/data/json/system/widget_bundles/maps.json index 86754f0bd4..1293139399 100644 --- a/application/src/main/data/json/system/widget_bundles/maps.json +++ b/application/src/main/data/json/system/widget_bundles/maps.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "maps_v2", "title": "Maps", - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.png", "description": "Visualize the latest location or trip of the devices or other entities on the indoor or outdoor maps.", "order": 6000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/navigation_widgets.json b/application/src/main/data/json/system/widget_bundles/navigation_widgets.json index 305cded236..a2a2cc4704 100644 --- a/application/src/main/data/json/system/widget_bundles/navigation_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/navigation_widgets.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "navigation_widgets", "title": "Navigation widgets", - "image": "data:image/png;base64,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", + "image": "/api/images/system/navigation_widgets.png", "description": "Contains widgets that enable navigation to other dashboards and menu items. Useful to define the home page or dashboard.", "order": 19000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 4deca7880f..8251568bb6 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "outdoor_environment", "title": "Outdoor Environment", - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMkAAAChCAMAAABav2sAAAABa1BMVEUAAAAAAADf39/v7+/19fXw8PD9/f3y8vLAwMAAAAD5+fn39/f////39/fz8/MjTMf5+fnj4+OQkJDHx8esrKzb29t0dHTn5+f29vbx8fH9/f3f8Mqv2XuCgoKAwyzV1dVYWFjU1NTk6fju7u65ubnIycjh4eH4+fjOzs78/PxmZmb7+/s+Ys7/pgDy9PvI0vGenp4wV8utvOrCwsL/vEDg4OCRpeP/9N/c3Nw/Ys7l6vrv9+V1j9yxwfCDmt+dnZ3W3fW6x+6su+rI5aP/zXD3+/Kcr+n/6b+7u7vP6K+/4ZVaedX/78/P6a9KSkqQykb/sSD/qxDy9f3L1vX/+u9mg91aeNVMbdH/5K//x2A8PDzY4Pekt+6RpuP/0oCg0mG+zPPp6en/2JCYzlNLS0v/+e/r6+umpqb/tzDs8OuLoul3k+Xn9NjX7L3/3aDA4Za33Yio1m7/wk8vLy8gICDn9NfY7L3/15CIxzpPyZjhAAAADHRSTlMACyC+76/x7yoI78V/Zk47AAAKpUlEQVR42uybW2/TMBiGJxjazTsnduKYXERpjkSl564dSNXYEGKTNqFN4jCQQAKBgBsuAIm/z+ekXelYUena0Y4+7WLHdWc/sj8n9bq1tRs3N9jccG/dWCN0K+ubc+N23sqNDcyVjRu5yDrmyjq1cgtz5iaJXEkrLubMhja5jTmzvrbGMGeYNtnEnNlcmaxMhszbpFavXQ+TsGJUzlRsIRq4EPcSJjEIN4bvYwCnMtsXcGdostesGw/Rx33Q4K7NuRX7sWtZMbjNfYtOURa+y3kcg55/aSK+ewC4A9u2XHrYvm7BtR1q5ZVPBTMyaVXC+2cm1BhKcclyvLLXcOwSL/ll4fkNz3ZsYdl2KbYbnvV3Ju6TxjcX4K+cku1wh7+yXlllSzhkUuLveTm2Z2ZSb46YvBLUZ0tQW1zY70VDWLysPXITOJ7w/9Kk5DxxizHJTUqghyXKEJbOemU+M5Pa6JgIZ2DilVxPkINVKjXsslUuk4nlee7fmdBbLPRNHjhPBiaUJZMnFh1mZdLs0ZhchMOvYu0S9qxMuoZhdHERPq7CxMaMTEJDs3sNric7hmYHBQHAwEwJ0wQ9MjCmKMsyeuZlxLQmWUbvZ/oXMLNDB53RWRWh31xiElOb9EZMMkQH6YFqI1MySZK2OpBZckDlZpKgE8s0SLIpTZiChEwClcgslSaJZR3VyWTQSSWC1E8ZAtVW6dQmdUPTQkEi/SRIZAKZybafHARJmrWz3KSNpC39IEumNEEQKCWlNFMmlWSgrEolQefoZCqgIr+t2OwjnqkLyny2uHEChNflDlJzJSYMEQAzz+mMDvflNDlAm6UskhGylJmRUmmimGJpunQm7SRQFPRKQke8lKpDP5TKpTNRqYrSiEAqTakUIy9mqiBZOpMxqOi6mCxhxAMrk5XJyuS/N9nfOv708ilwtKV5tLwmX6rHj15Wt4DT6qflNtmqbheHd9V9/BnXQ2yBuwtq8pRE8LV6hDdkM5Y77A58V8BxYD3gi2miXfb17KIpVj0ZN7k+J5/ByUR4LkQ8ucluq1VHQa3V2qvhjHor7JfvtVq7MzGhwah+2gYeVR+9O66+wYUk5QSAC9fVyaQm4aFBVPZAvB5mi9OmUZQ38xfCWZhs7787OX4KzYeTE1yMNU3EV4zKTrdiNGtAyzB63Rdn22E14zF2KsXW0vOdZ1QnnIEJ9HjsD+Iff8A0EdFxUhPqfQiETeo1Xhg9AIeDTaTQqONxM6/SLf7y8uzSJi+38gl2iq2XAI5PgNPTcaEfpWZgRj6b0KRnPAe0xA6NAXUdeGxUUHBY6TV3KCmqoEsDd0kTGo43R/vHJ9s0HO+2H1VJ5+jH0zEinQ6TEVI5oUktrBVz7DHqNDzFKKEg7D3vAhhsK+12u5c2+fC1Wq2enALbx5TZ2qaS0y9jZxdjACYdk+EcG5hQUsPoVvJDFMwm4o+KQTjaP+qXzPAaTyHQxS8m4XmThb6DDA3NQOQ5ltjkvgZErWK8qI2Y4BImkamYYiCuymTIi/41b7cw2TtngmZ/Wd7t9SaIeMbyTS7iyk16fRG9Cu/li+2L8xWaw3QiEz8COpga33IxpDOpyevhpfvQOMyDZgcj0HR7rZOm0fubfeHpRUTseY7NUWBOaEJzqXk/J9TTq/Ks+fv9VZfqHN6nF2tXEfHcK3wcx4Zm8ruVASFQr1D6PPy9ki5vdmuY2sTmv5WIRjxWpMDyHGvqz4zh7sXdrdXDy6zCfKRPhFW2uP+gca6WIMouhri24y/WZ0YHEB7OcD0BjRjVK7kL+Tl+8xc+fqSDLN3rnz5wZD/nvN0cIqj0Au5igcakhBwh+hMLA3gZw7xY/L0V20YBL/F8Yg2JG+jjlhZ2l0g4juNxEM4vAeLwc7UG5x5fRJOUoYA7woLtYzxuf62KxULu3KkOEA3W0bLAn/AdoXEwDvYvTfwUkOaE36l0uWZ8JfnP4+SMa7pXvzJZmVzCJAXyL6fB1BkzoLwyTSjZAVheuCwmEipRSRRAMkkkUaaC4AAqI6dASl+m0ZKY+EoGKkgDpCl1O2unqcpSBcUOEAUy8FPJlsTkF1iE86RyeeJkhKWO+CErk//BZANzxtUm65gzt9fWbmLO3CKRK2jlOv237NqNWy6bGxs3cxHdyu3NubFOraxY8bOdu31tGgjgOL4hlM39ruQuMU2ujUlIqjV5UyhCaSl7USo40EGHb9zAyWSCD6j4gH++l05Bsx6X25pym/1At3TrMr67XtJu690Ku9u12V3bagLCzl4D9bmzU4TcRa3uLlJ2GqhVY2ddaxbcQc321rOawNYu6tbYXstju61t1G5TUtmmRNPtLNlH6odhHwtOCNhBir91U1xBqcRmjOJa1CUuzfrMTn3bocUKAvAzPyiuIE1BxTuHObiCUglLw+xi3QP/Ytc2bJra1NHoU5U4/SyIENHICRgTJQhcKq64xboEUZg5LFhJSd9xWVDsTuzYDvbDCJGd2eICTfIS+jzNMlHiUtelzAYNaRS6iNyApW9YP6DOSkpY6jPbjlhKXQYnWpQwvGR9aJKX4CvdDy5KnCyy4UdiUN64/WJdgoDt21m2khK7uIh92/tBZAduGAXPRUkgstSUJXLUxXUZchT2Ka7LkJIV2JRo+r9LWkigweCSwYMeNBhc0otvS0li3ZZ7l6ZNiSbdEs5zy39sEYtzVGRkiSUSct57S0QQITkqMbCkaeUoxL0mBO4RjgqMK7EsjhJOPKgZVsKJhWU8CyqGlVgcS/E8h4JRJfyx7Db0/LFqVIwq8fwWlkvdb+eKFJNKLAsy1HVxc0q4/AY2AwNXpJRKZp+AD50pMBaXttiQqKFEftpgfcUNlpS0O/eBs3HnY7tzCLyaddqQWHlJ7kGC2VjgHqTKJcJ9jF/h2QFw+HvjO2btMXTpl3gcywUUC+VjtHbJpx/P2p/H0xnU9Euks+ToFMJ8JLtNpZLZIaaLktkZDqZ4+vTZwccP06fQoF1S/nmP3p88ETkvJqVxwxLyEhx8ORsXJfgsNoqS4k0tJdL5Pn/x7gTApFRCcpTISxZmpQ0t+iVJs2nh38+O3j9ZVpLnxeqUy5lwPul146RUcvru6MVodKmEW90mJEwoieP00mSenMyPRxAx/xAlCSRMKGk2W+CDAdQGg1bVe9e0o2X6UCWvOON5fA9q90IA1Up+3tdy6ClVPnbhsvml3rxyybitZfxIhV+x5Hhyenx0NCnNE4tXLiFJa0iGuD7ikYSIXV11TI4wmZyOnhyXSqqPyWCAbhzj+pJhHA+7w/iKZ0bMMRodz09KY6Jxju/Gifj+WIHhMO7GhLZkJfIpwGxI6JQkQw8JxQqQhCbUG2o8FsaCH9iKWgkTzieFP7OZZhRSBJAzp2QxU0LXh4zi6a9JJZbvMMjlHgfkDCoBcQNIqQ7BMKmEv6YcEjnym/NbIiB/3YJE61z15UaV4LUHCdKCglkl0ue3FuFQMK2EN3OOstzLoWRaCZATXvqAR1CBeSXFuFiLgRkU26TqH+dMLAF4TojX7BOBV+0ws2ShFzahweCSVmxBg8Elmv9KZHCJpk2Jpk2Jhk2Jpk2JhvWVrGU1ga3dBuq2u6Y1C/ZQszu36dWya1pNYKfOsW/siRC5G/Sq8u0t4ReWmHw+zwnmiQAAAABJRU5ErkJggg==", + "image": "/api/images/system/outdoor_environment.png", "description": "Contains widgets displaying outdoor environment telemetry.", "order": 11000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/status_indicators.json b/application/src/main/data/json/system/widget_bundles/status_indicators.json index 3c8192493b..4732e8e83f 100644 --- a/application/src/main/data/json/system/widget_bundles/status_indicators.json +++ b/application/src/main/data/json/system/widget_bundles/status_indicators.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "status_indicators", "title": "Status indicators", - "image": "data:image/png;base64,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", + "image": "/api/images/system/status_indicators.png", "description": "Contains widgets displaying battery level and signal strength.", "order": 9000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_bundles/tables.json b/application/src/main/data/json/system/widget_bundles/tables.json index 206971f1d5..57ecbf08d6 100644 --- a/application/src/main/data/json/system/widget_bundles/tables.json +++ b/application/src/main/data/json/system/widget_bundles/tables.json @@ -2,7 +2,7 @@ "widgetsBundle": { "alias": "tables", "title": "Tables", - "image": "data:image/png;base64,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", + "image": "/api/images/system/tables.png", "description": "Contains tables to display alarms, entities, and their telemetry.", "order": 4000, "externalId": null, diff --git a/application/src/main/data/json/system/widget_types/air_quality_index_card.json b/application/src/main/data/json/system/widget_types/air_quality_index_card.json index c7e8ef72fe..c83c1be892 100644 --- a/application/src/main/data/json/system/widget_types/air_quality_index_card.json +++ b/application/src/main/data/json/system/widget_types/air_quality_index_card.json @@ -2,7 +2,7 @@ "fqn": "air_quality_card", "name": "Air quality index card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/air_quality_card.png", "description": "Displays the latest air quality index telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json b/application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json index e5d69dd012..c8e9720690 100644 --- a/application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/air_quality_index_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "air_quality_card_with_background", "name": "Air quality index card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/air_quality_card_with_background.png", "description": "Displays the latest air quality index telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":26,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":26,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/air_quality_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json b/application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json index 5500fddd15..cd74f5f365 100644 --- a/application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json +++ b/application/src/main/data/json/system/widget_types/air_quality_index_chart_card.json @@ -2,7 +2,7 @@ "fqn": "air_quality_chart_card", "name": "Air quality index chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/air_quality_chart_card.png", "description": "Displays air quality index data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json index b86b8d060b..eb9fcba17c 100644 --- a/application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/air_quality_index_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "air_quality_chart_card_with_background", "name": "Air quality index chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/air_quality_chart_card_with_background.png", "description": "Displays air quality index data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air Quality Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/air_quality_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air Quality Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/alarm_count.json b/application/src/main/data/json/system/widget_types/alarm_count.json index 38794306a5..4e02eb2629 100644 --- a/application/src/main/data/json/system/widget_types/alarm_count.json +++ b/application/src/main/data/json/system/widget_types/alarm_count.json @@ -2,7 +2,7 @@ "fqn": "alarm_count", "name": "Alarm count", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEXg4ODf39/g4OAAAADg4ODf39/////g4OD8/Pz+/v7RJzD29vb6+vr7+/v09PTt7e3z8/P4+Pjx8fHv7+/ok5fXQkqXl5chISHk5OTIyMi6urqpqamgoKDDw8P55OXurrI8PDzc3NyxsbF0dHRYWFjlhYrUND3V1dXroKT88fLR0dHzycvwu76QkJDieH7eY2pKSkovLy/219jieH1mZmbTND12Tj45AAAABnRSTlPvIL8Ar7DvmsykAAAEx0lEQVR42u2aiXLaMBBATdMuUmU5yEBJgEDanL3v//+1rpDI2khA087U63RfjGRJa4k3a5sMpjgZPCuGfef54KQYFGMFPUfVqPG8hifAGE+r3ufDo4piCE+CoYgwQ0S4ISLcEBFuiAg3RIQbIsINEeGGiHBDRLghItwQEW6ICDdEhBsiwg0R4YaIcENEuCEi3BARbogIN0SEGyLCDRHhhohwQ0S48X+IaDiKBibsiGit/hit/i06J0IatkRsaWPZxoZR3OIgheKYjUHbkoLj/jawOWOjsDQ3rUfTUXcIQ5c9IqhROlPlMf5lwm6saYx2KC4dJSg6BhsKzMZTBK3hSqV0XsQ6p9ic9EexximtMyJaOdMfDURjTnIiyrqe/d5fOauyIgb6ha4wJRmRsoKekRXRyvVPxKUiGkVGEFnfvswwXQMzRiiik4xYEpm+zHILDS4Wy8UFeE7jtfUK/i15Ea2seRB5uQeI0Bs/ew1mcWGw7kKkNjYrUj9aZP7m4o1Zzg1W512IOKVSEZUVufm+XyRu89dwOl/OmWQEdFbkHuD+gMgSNy+yNK+7EcllxLpUZEqXflbk3QIv+HdLc7FYvOlCxFkNuiWitc5dIx8AeU8iKSa8DHRBnd61NOREPoXm5wcRZmBGVJIRlRFZAawxKatbriK/efud+AtkisWkRyKZUwsVosjbKVMR91sZWQMyuW9c77vz1NAVlBGAY3etT9Dgcypy/mU2uz6DzsiLQCqyAs/NDXhWicjZ7Mt88fUaOoJOrWMZmQDEa2TDZFfk7uoO4GoGHUGf7PpIRlbQ4m32Yr+8hI4gETgi8g1arFKR8+uvl3fQFXT7PfKBOJ00uZlmRK5+zD5CJ1BGNBw+tfLALlezGjrgkZ8jKe18nAF8nGHRDfTf79+KzK7Pz7u+2J2Fg9fIbd5jCk2Wlyw+EA/etdbTnMfPNbQ56/5fFLVHpGf4jMDTEMl+r+VGvXqqsO8LOq1c1bPHCuWe736t6VdKdGXKVkbo3KpGJfQFbUeVs9mMqBJNxuPT8SnRbKS940MhcaOOXCgu9whoYTyw3nikIt7EOlONPNWorkeBUFe176lDGxuhDANYhMjQsymo8qMRf1gaQathSZ3bmCqO163p8LlufKybnlooosrSObMX95iBdOR4jHtEqEOPRIRyosLjfB/msLKhahYIFiECxzF486IOfPliU1Fo+ENiUSI0l2/EJeKiYeUQZ2NJK/mmRQ0EMiJqg03xevinwm4Thd1xI9R2YBtfKhqIsc3jFM2llI8uYwD2UMAGmlQhwSMRQVSfCBqpCOgNyuuEDaEq9oYOKg9BR+5O125ovTtCA1TRHKEH0EOnIqTixx8ARaXC2pcB5RsQ+o6zEwR4dLuNTZoqzrpdAFqRcS6gfJAIETUASIl2qBGrGA5JCNAOJKPUBiROQiHxXcBma8ydLpKIJMSc6WYrzkz7YY94eAeNYJonjEWzzHK0FwV20Nsh/T//FLBPiAg3RIQbIsINEeGGiHBDRLghItwQEW6ICDdEhBsiwg0R4YaIcENEuCEi3BARbogIN0SEGyLCDRHhhohwQ0S4ISLcGBZFz37Zn0cNi2djeALUL4pBUfc+J2qMGieD58O+UzwbnPwC9rQ9R9RHLAMAAAAASUVORK5CYII=", + "image": "/api/images/system/alarm_count.png", "description": "Displays the number of alarms based on the selected filter.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/alarms_table.json b/application/src/main/data/json/system/widget_types/alarms_table.json index 5a360bcc32..72eb4fc2db 100644 --- a/application/src/main/data/json/system/widget_types/alarms_table.json +++ b/application/src/main/data/json/system/widget_types/alarms_table.json @@ -2,7 +2,7 @@ "fqn": "alarm_widgets.alarms_table", "name": "Alarms table", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAUUElEQVR42u2dh1sUVxeH/ctsUWMSSUETY/xSTDRKNNUYG4IgmhgVC7ZYA7FEERVUNAqoCIJdaeIConSwUAQEBO73zp5l3KAsEHcV3PN78vjcnXJ35s47554ZNr8zxBjz5MmTmpqakpKSOyrVCwiEAKmtrQ2ohkBVaWlpfX19e3u7UaleQCAESOAEVENAjA86KCpvCZyAagjhS2OVyrtxC6iGMDXqWKi8K6BSsFQKlkrBUilYCpZKwVIpWCoFS6V66WDxvisxMfGv3pSRkaEDquoHWJcuXZozZ87q1avX9qzly5ezTXV19aA47fT09JCQkObmZiXgVYJ15swZoPF8GfLz89nm9u3bg+K0+3JGqtcHrFWrVq34t3z0R8zBAhZ/zd2+ffuCBQsYGa+kwrt27Tp48CCNx48f+/T0BxZYe/bs4cy/+uqrKVOm7HLKz8H65ptvvvvuu3/++ee333575513Hjx48IIdXrx48fr163IPL1q0yL+mwiVLloSGhtox7Ny5c5LnMbi1tbXkRvv37//555+3bdsm2DHcZHgsYXlHR8drAxZn98YbbyQlJdHmvBiKW7du0T59+jQnGxYWVlxcfP/+fQaEf1nO6cfFxdE4f/48Z8dy2T4hIWHHjh1sf+XKFbbhI31+/PHH48eP52NMTMyhQ4fYjN7YpampyV/Amj17Ng3GheWVlZVDhw5lIUPz7rvv7t69m1XTpk1jLfn4hx9+yNPrc/ssKyvbu3evHf+6nVFFRQVr+W3aQGNrzZo1Y8eOXbduHT+ds0POm2++yelv3ryZ8+WYP/nkE1jp7OwMDAxkeW5u7ujRoxkHiAkICOAcV65cOWrUKLYHHQaWBKO8vHzu3LmzZs0qKiqKjY2dMGECu+/cuZOR9JeIdePGjZEjR9bV1b399tvciAIWlLBq06ZNP/744927d1kSHR3N4H7//fcQ9tw+2feXX37hxhW23M8IqhYvXsyXPnz4cKCBxfWW8DN8+HD4IG4tW7Zs6tSpnOyBAwc4cQacJGzevHkEpzFjxnBGUPjpp5+yQXx8PHsxgOxoz3oClvtUyFmzGbtD1d9//+0vYDGy3E+///47Nx9MuIPFHTZz5syCggKWcGdvduro0aM9dctrNthiAuUut89IqALHqqqqgUYVl5xZT+4Eh8MxbNiwq1evMjJffPHF5i5x/Fw+kKItNxXcEMPsDYhSgGWP57NgIeYEcgnw8uLbooEOFmJ0GFPYoi1gcTwcDHcY789aWlpgjjSfu5mbmwvgoWdhi1ucKYOjLSwsHLBUIX7dO2LEiMOHD8MWw8sgkCQRqMiNIKCxsZGMSrDjcYfpj2SA9okTJxgQ7j2GiA24i54LFrfiDz/8ICnp8ePH6ZyZ8TVP3hmIX3/91f7I5QcmxtQGa8aMGYw4M8K9e/dYyKpJkyZxw3GnkmF47pxHAdgKDg7maPkXiLl+AzZ/T01N5dQ4ZfIqbjDiNyQRXUY7Zb+OIQeXfEvS/KioKGIYeRVnx/8ww0d7PGnwkUZmZiYbMAK0SdhpSwrvRy9ICTOkpTKC9lT47GuI1tbWvncIWxztgI1V3URUfvaB0fOLGPDq9VmEHiCVBk8GgOXdFLNPYHGXcxlIBo/1LCYjtuEn9N4dU7oleScVlY/uOdYLwhoeHj4oqPK1iBqEt/Xr17+C91g8lDE9zfEoyV28/j6TNzTkp+43GY/KXvkWXj0rVaihocEXP2/Rn82ofCIFS6VgqRQslYKlYKkULJWCpVKwFCyVgqVSsFQKlkqlYKkULJVfg6VSeV0asVQ6FaoULJWCpWCpFCyVgqVSsFQqBUulYKkULJVKwVIpWCoFS6V6iWBhXYKfzgGPwoopKytLB1TVD7CuXbsmZqketHDhQnxBxGVVpfLTAgIq/wILg9DNbqI+j79fn+IY6z93Fe00t3c/f+OSOFOVrGA9R5g+Xr58GaM9HEdp4Pj7kodD7IcHEFipH5hTQ01Dl7FqbY71MW3i8zeuPGXuZypYPYpYJQbuorNnz+KliZO2WKURxniSoJgAPm84whHkWEsWyKqbN2/imrxlyxbW5uXlue754mIwjYyMFB9AHGDxQGcJH3EfxdOb3cUWli/Fk5JkkQHBxBCyjdOBcsOGDcZpa8iO+H9iBMeR4NkcERHByPgcrHPjTf5a18ebq6yPLrA6TflRkx1hHJtMW521oCzBVPxjNZ40W4EtK8zcjcWszjkKe0z5EZP7m3lcpWC5qKLmB3BwIcHFOMsFUIcMx1vcpCmvQAEPfFrfe+89Hl3xQsZRGM9q9mIJ2OGrieMt2F24cGHy5Mk4vQIoDTZ49OjRZ599BqMcM/1gFIhVLra5rMLzc+vWrfv27TNO41cqFcg0jX86a1nCV+NhyVEFBQWJ664PwboVZc4EmM4npr3VnHnb+ihgFe8y5z40VUnm0kyTFWItyV5s8lY4n7bmmotBpiLRnP/M3FxjLWEb9s1fbVruKViWKKBAiCJ44Br6wQcfCFhcURpgRLCRzT766CMYYoltD8x8CgR4Wc+fP/+yU3hWM80BFkzINlhOQiFm1BgwY+XNEkoQ5OTk0HguWOKvD5FvvfWW9Ekw87p7Z3ewyo+b9P+Z6rMWQ5lfWmFJwCIsNeRbISo7zKR98hSslofm1DBrFao+Z1LGms4OC6zCbToVPgXr22+/ZcaRXP6PP/5wByslJWXp0qWyGSGHijruYGGQz8wFQwQV+2kA710bLCIcnYMLJv0Eqr6Dhcc69ZLsPtndt2CVxlvZ+vX55trP1tRWEusCq/SQSR1v7uw12eEm3Q2s5gorD3tcaS2py7La7S1OsHYoWE/BooCHzQHTX69gkX1LKKJ+GIdEaSdmUrHJZ3fcp22wmPjwRhfn9OnTp0uahae+vOblAIRjSqp0A4vemHCZOqUT3xZKscA6bFrum+TRJmWMaa0zJftdYF2bY3KXWw0Hk+PHT8HqbLf2KolzrtpoMr5wTYUKljtY5EmUVqNneJK3D57BokFlLGY9smxZRQkGZjqq7jCrkjzZYIEUFFI+hLVQKFX8oIclJP5wA3Z8Lzt2A8s43bxJ1Jhk2ZEnBp+DZWE0z2SFOt8pdIFVddqijczpwlST9IaVpNs51v0LVlp25l2TGmjqchUsl7j83aoBEBXscmc0xI4bg3z7kKj/Ick7UyH7Un3OfXd2sSv9deuckENv9kJo41HR7l8qX5BUPbsj2zAn+qic4lO1N5qONmej1frP1WjsWttsxTCQetJgPSReX2DyVrlWEbdaalyPhNbJNLl2H1Bg8egENCdPnjzds6i6wTZMHK/w3Yl7juV34pVE0kgrwR9E77H4CyAPWXN6EyWTXm3JPwrdUrrCT8FiymtwDJzD6evPZphomnuTUan6C5ZKpWCpFCyVgqVSKVgqBUulYKlUCpZKwVIpWCqVgqVSsFSvJVgqlRYQUOlUqFKwVCoFS6VgqRQslUrBUilYKgVLpVKwVAqWSsHqSZ7/b1WsDXQ0Vf0DC0+OZcuW9fq/2GO76HOTDNXrBBb2m4PCFEQ1yMBSn/dXLOaBnqYCp8VS94376KPBvgkJxjemGwMLLDzWsEGbOHEi/mk06PAlX0EMI33r0NdfNTSY4GAzfLgZOdKEhJgukzCX2trMiBEmO9tqJyYacdrZssX0cdyYXoYONTU1/hKxutlxG6evn9g92rLt1/i3gdH/1x3b3vTvC8DHbk5unIu9O+ZH9nI8SHNzcz0cm4fv9YnCwsz06da1578pU0xUVPdYRY2Zzk6rMWYMPmZWg6co9wOrq3NtYMcz+3z9GSzc9PAF/emnn7DOlnoCWEUGBwdDAEagbEaDVeLUjfEacQ7LWiy4Mbe1e8Ni9MsvvxSHSKwi6YGI6HA4sIfE65H+cZcEFPxOca39+uuvMVd+rrmt7FhUVITXMo6SHBUGpz70bwIRAtXZs66P+M7HxroYmjbNDBuG6aBFBsMCc3xkeUaG2bTJzJ5tbeZwmIkTzdixZvx4I1URtm61Po4bZ4U09vVnsGgLEPQMHwIWlrU0KDnG1CnutAEBARweYIGIc4pogzb4wAUezmQbaMNBDrCEQvTnn3+KUxxssaXpzTWZsgPGaRUGXpQRkMOLlYvtC/EVXPhnK2UAELcN9RBssNwjlg3WjBnGWfrAYBjOsBDhVqywYCJiMYFevOjXYM2aNQuSfnRqDGPXHztuDNyBEgt42R34qCTg7vPOx9DQUEpREPz6bsddVVU1atQo6fPzzz9fsWKFr8DiknPhncfTHay0NKvhASwyB6Jdt+IGSUncQ2bqVCtpS0nxa7AoVZeWltbQpb6DFR4ezksQCghQxsLenbhlg8XpwJOY3lIWrxtY1FPZu3ev6aGAwPvvv09mJn36cCokHwoIMIcPuz5y2CEhfQULMeXJNIpFLwVguMpMlw6Ha5Wfg8XLM4IWxv9UFuHSmj7YcZM8sTHXnpQfY2NctfnIORLDOAUbLJgghrEK695x48bRm3EWwoiPj6dUzokTJ5hVeS1HqZVn7bg50+joaPxOWSLzsq+0Z48Fwf79BspJj3j06wmswEDDTcWDoQ0W0yWpWHKyCQqysn4GDbA4d/zradCVv4FFqRJK39gfk5OTmbCYccDLOIs0iUs2KVSiDLT1iL2F0CIFBKKioghX2fIQbkxBQQGe73ZMolCA3Tl27SynUAAwXSTnwII/O5snA3YhthG0WMtX2EWabIb4LtYyh8bExJDP+fbBkPkrNNRwCwlMxrKu56xcIY2J2Fl8ygpOvJjAdJ6GpH1gJ0EOOuU12MmT1jYs3L7d6o1oze6+ebZ9rV6Q+rUd92B88858ATT8ufDXnkWQIB+SWPKqRNRhptOLOmjAkqIPf3kUWZEU+FOpjP4eS6VgqRQslYKlYKkULJWCpVKwFCyVgqVSsFQKlg6ESsFSKVgqBUul8j5YKpX6vKt0KlQpWCqVgqVSsFQKlkqlYKkULJWCpVIpWCoFS6VgPVeY+5zuTWqZrOofWHl5eXP6oPnz5+McpGOqMv1ym8GAykNliqysLLXjVv0XsF6CjVF5efmLO4sUFhbmuNkrYpVTWlra307w4sJI0n0JnrZimMst9HKy0nvN9y5XX5X23YaSwroiaWfdyyl7VN7f3tLLM2qaa/wULGz1QsQN8QWEy97GjRvtjxEREdjz9bcTXN3O2nbFXVkmRpLG6cBGbmCc3rjuBnFeFzDNSw1ubGukvTM3OvLKGhodpmNRemjug7z+9naoIOFO/V0Fy7iHHGwagUMM1uPi4qTBBcYJUlJA27/PA1jYG8uObE/UMU7fZQDCUguGODvcuWGlxmmdSNiT2InjMruzHNNKAYvlrMUfEOPusLAw7P/YUfxRibj4PXnr2nR0doSkL7710NFhOhelhcLTo9ZH5Y8qbNpy7ueevHPqWvV1tuTjhYqLBXWFSXeSWzpaUkrOENVSSs9kVGayO2szKy9UNFY0tjWxqryxnM2uVl/rdK6it9OlZ9PK0h21BXkPbvoFWKdOnZoxYwZXMTIyUhxHMYMEC6431rTiJrpkyZLMzEx3sPCGLO8Sho4CFo6jmIvSwLUWo0dZQrcAivlxUFAQ3w5kM2fOZNXRo0fXrLEiBFvyUAJ5s2fPFrDWrl175MgRfFA5XywqAZEDYHvZGG9SL973W7K2Jt89TaQhXO3Iic6qyb5UeXnV5UhWJRafWHkpEiCWXljOvyxZeWnV4vPhO3NiHrU2zk1duPbqhuPFJ1gCMaxdduH3S5VXmF5ZteXG1mO3ExekBYMRI7n26voN1zcfLToGvn/n7/MLsIgKUioC87cJEybU1tZihMzl5+uIFvjesgoDd/fCE4A1efLkkC5hbusBLFmClSiOusZZb0JMv22wAgMDpQiKPRUKWDTAV+ITE6L4y1OOAJS9CNaJ4pPRubuIMfFFR86WpR4qiD9UGH/AcZBVJEwEnuL6O2ywMydawDpTmirTJfQU1lo5GaDE3orrBlZtSy1LgIm4VdpQxpKGVqvORawjzl/Aoq6OOGYjggqOyNiswxOTI5eTbyTFxuq4LzmWB7CIfLbH5OjRo93BEs48gwWOhE9GQEoceFH5D/IJSFuzthFamNqIW+uubrxcZbm3p5WnsQrg1l/bRAYmYDHf2WDdrr0trOzL398NrLoW663QHze2MpPmP7gVnO4a8wP+AxbTkLgdi996Y6OVW1DXBFNuikokJCTQOGw7oXsEi4AnsWe7U30Ei1lS3L8xOH0WLGZq2QurZqqqUFvPu2A1PWmal7qQ7Iq0iTkrPGMp8xdwsIoJ8VxZmhOdAzty/vzPYD14/JCkTR4zo3N2vbZgcevbsxi98ZBP8RKuJTDZl42Km8yDxlmhc/jw4ZVS9ao3sCiVQ+kbEjW84PsOFi7wkyZNWrlyJfGyG1h8ETO11ErhIWDYsGG+8PZdfWUtc5a0Y/J2w5Zk3MduHyclIj2CGLb5z2DROOg4TCq25sq68MyI1xMsnq1uuUmKeMnbV2ZAezPe79vzo4QTd0FbjZspPtjJ3wO44zlISCVREwJ4oJOiYvRmM+Fw1m6Q4gOyhN7I8zgYMZpnud0hT6MSBUmtBDuvi4jy8HGttOtb62uan7LLE2JlUyXPdDSsA2uuJm23Dsx0EoFa2q1iyqRTklHJlk/a21klT5FkaXRI41Gb9bBZ3VRD5DtSeOzlgcUzEdBgn3+jZ1G4hm388+/ZZHs8uqbZBv+DTRtvbCaNI1ELy4hwB9fnYJWVlS1YsKDXvxUyy/hnyXFedvi28ImPRRjjBRgv9CXgvTywjLMyUWlv6lZsUuXP0t9jqRQslYKlUrAULJWCpVKwVAqWgqVSsFQKlsqvweJvq/KbXZXKKwInoBrCX+/r6+t1OFTeEr/+AKohbW1t/KUPtjRuqV48VgESONEYwmd+jQlihC81kVa9iEAIkCRC/R9f3OEsEgi6eAAAAABJRU5ErkJggg==", + "image": "/api/images/system/alarm_widgets.alarms_table.png", "description": "Displays alarms based on the defined time window and other filters. Allows the display of alarm fields, entity fields, attributes, and telemetry. Highly customizable via cell content functions and row style functions.", "descriptor": { "type": "alarm", diff --git a/application/src/main/data/json/system/widget_types/asset_admin_table.json b/application/src/main/data/json/system/widget_types/asset_admin_table.json index 0a2eb2c37a..3a69d2e464 100644 --- a/application/src/main/data/json/system/widget_types/asset_admin_table.json +++ b/application/src/main/data/json/system/widget_types/asset_admin_table.json @@ -2,7 +2,7 @@ "fqn": "entity_admin_widgets.asset_admin_table", "name": "Asset admin table", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/entity_admin_widgets.asset_admin_table.png", "description": "Customized entity table widget with preconfigured actions to create, update and delete assets.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/attributes_card.json b/application/src/main/data/json/system/widget_types/attributes_card.json index 067360a6cc..46cc8a5e95 100644 --- a/application/src/main/data/json/system/widget_types/attributes_card.json +++ b/application/src/main/data/json/system/widget_types/attributes_card.json @@ -2,7 +2,7 @@ "fqn": "cards.attributes_card", "name": "Attributes card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.attributes_card.png", "description": "Displays one or more attributes or the latest telemetry values of the entity. Supports multiple entities as separate bars.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/bars.json b/application/src/main/data/json/system/widget_types/bars.json index b3c991f968..8d76942b1d 100644 --- a/application/src/main/data/json/system/widget_types/bars.json +++ b/application/src/main/data/json/system/widget_types/bars.json @@ -2,7 +2,7 @@ "fqn": "charts.bars", "name": "Bars", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAA8FBMVEUhlvNMr1Bqamp5eXl7e3t8fHx9fX1+fn5/f3+AgICCgoKDg4OEhISGhoaHh4eKioqMjIyNjY2Ojo6QkJCRkZGSkpKWlpaXl5ebm5udnZ2enp6goKChoaGkpKSnp6epqamsrKyurq6xsbGzs7O1tbW2tra3t7e4uLi7u7u9vb3BwcHCwsLDw8PGxsbKysrNzc3Ozs7R0dHS0tLT09PZ2dna2trc3Nzd3d3e3t7g4ODh4eHj4+Pk5OTm5ubn5+fo6Ojp6enu7u7w8PDz8/P0Qzb09PT29vb39/f5+fn6+vr7+/v8/Pz9/f3+/v7/wQf///+dc+aLAAAAAWJLR0RPbmZBSQAAAcFJREFUeNrt3ds2AgEYhuHsaSOZbAvZi0r2YYjCJOW7/7txZhkcDNbM6h/vdwfPmlX/ybtmEorJErGCeJLadz3rkKPpZamaLTp925DHdFvSpKelU9uQ/cLKhtcdk7YqtiHruevtojch7ZZtQ0o1dcdfRqXNqm1IbVU3OaVamm/YhvQW5zIXOknnC5JUt7qEpE5fUv/5HVePy2UHAgQIECBAgAABAgQIECBxgrwGHBAgQIAAAQIECBAgQIAAAQIECJC/QRIBN0iQ+66voDMLuRp2fQWdVUhvNun6CjqrkJ0Dx/UVdEYhzXzfcX0FnVFIrlSZ2mx/LOiMQuqHh6k972NBZ/fv13G/KeiCQkIu4358EL8UdBafSGwuOxAgQIAAAQIECJDYQB4CDggQIECAAAECBAgQIECAAAECBAgQIECA/BrSufn0DjqjkEZmLXkWaUEXEmThXMeFSAu68H4j5b1IC7rQILfZTqQFXViQ1nRTL1EWdCFBnmYuJUVZ0IUEWR1xHKcXZUEXFDLwBR2XHQgQIECAAAEC5H9ChgIOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgxiBmv+L6Bl9pkxYph15gAAAAAElFTkSuQmCC", + "image": "/api/images/system/charts.bars.png", "description": "Displays latest values of the attributes or time-series data for multiple entities as separate bars.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/basic_gpio_control.json b/application/src/main/data/json/system/widget_types/basic_gpio_control.json index c01b86fb01..881396519a 100644 --- a/application/src/main/data/json/system/widget_types/basic_gpio_control.json +++ b/application/src/main/data/json/system/widget_types/basic_gpio_control.json @@ -2,7 +2,7 @@ "fqn": "gpio_widgets.basic_gpio_control", "name": "Basic GPIO Control", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gpio_widgets.basic_gpio_control.png", "description": "Allows to change state of the GPIO for target device using RPC commands. Requires handling of the RPC commands in the device firmware. Uses 'getGpioStatus' and 'setGpioStatus' RPC calls", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/basic_gpio_panel.json b/application/src/main/data/json/system/widget_types/basic_gpio_panel.json index 5a46e216a1..ca38510736 100644 --- a/application/src/main/data/json/system/widget_types/basic_gpio_panel.json +++ b/application/src/main/data/json/system/widget_types/basic_gpio_panel.json @@ -2,7 +2,7 @@ "fqn": "gpio_widgets.gpio_panel", "name": "Basic GPIO Panel", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gpio_widgets.gpio_panel.png", "description": "Allows to display state of the GPIO for target device using latest attribute values. You should set the label of the selected data key to GPIO pin number (e.g. '1') and use boolean values for widget to display the data.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/battery_level.json b/application/src/main/data/json/system/widget_types/battery_level.json index dc53143caa..50bcf03434 100644 --- a/application/src/main/data/json/system/widget_types/battery_level.json +++ b/application/src/main/data/json/system/widget_types/battery_level.json @@ -2,7 +2,7 @@ "fqn": "battery_level", "name": "Battery level", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAilBMVEXg4ODf39/g4OAAAADg4ODf39////9c35Dg4ODL9dz5/vzX9+QhISHl+u3f+enB89XC89XHx8c9PT2QkJCu8MiF56x0dHRw453j4+Px8fFYWFisrKz0/fcvLy/S9uDq+/GCgoK6uro8PDzV1dVKSkpw457O9t6enp7i+etmZmarq6tm4ZeZ67p65aQon2vGAAAABnRSTlPvIL8Ar7DvmsykAAAEcklEQVR42u3dbVebMBjG8Tq3Sym3zARlSSA8ax+2ff+vtyCds666oOsSuvxf5CCnL/o7gUIRThfnZx8Wl3Pv49n54mwhMfukYXw8AYeRmM0KJ9HiVCCXAeJZAeJbAeJbAeJbAeJbAeJb/wOkzky5wDx6BcJJKU1cPqHxDmh4Aw97DcLNkFEO06jJiAH5uAaPQD++Yf4JsqKVGTRRJqA06bo2gwJYb1ZJMF5z6ngNs5TCQXYQIRjXAoz6JqUNGkUpYxllDQS1eU01GJHKoLVETQwOsoLQUAp0uRhYTzetjMwqpQ0kA5Ca9byFg+xnZEMNwLKe0x6kJ6WUJsEGqOHUwogcZL+PCNogp75h+zPCKRuSIwRKr9xsWfYQZiAZdc83rc2wChI7SEq6hYMsITpNa05bpFQ3NRlITTVDQ4oZAG8apX5CJDnasux3drUF5IZI9SQhWsog28G0bYn6boSYFHVwl/25lhQYE3I3mFHgV6rFm/LspLGraYuJeQlRpJyfp/wViOjgvP/h+8i8ChDfChDfChDfChDfChDfChDfChDfejekiKOnxUvY5RtkGT3r3lLiGySJnreGVZ5BzIR4MiXvgxRl9HtlAYs8gBTruBy7jw53X47Fycsm55BlYt5obJeBJhYbmhPIsoziwn7ykqi0kLiAlNEVplRZSFxArgZH/O3WsmsjsZA7gJQlcHNh341hH/48dgspogrVxZTM66MKB3ILqaIC8STINZaHj/VuIVdvgiQ4kGvIMkCeFSABEiABEiABEiAm95BqEiT2F4JvExy38BiCm+9fLLspvIZMKUD+BSS5sa3yGnI95eKDx5Di7mJChb+QkzkgBsh+ARIgARIgM4KINMdQrnifwiRTzlU+M4hcKaL0wUE6aykzSxnpTUv5vCAp6X6EcBKQLTEwamEGjbEmFXOAMIb0AdKRMmNNq+HvnWuo7jMuwbyHmMY3zh4gOdW7508VMQz1DJyJVhwZkkyCxBaQ7BlEpVJ3fIsjQ3A7wXGHN0C6Vqd5hqNDim/WjttqKmSX6MUsvrM/7uy75ZpW+5AsTTXfzgUiSZtxQ83DrACaJMbyVpJo+LEhxWfLoupVCBSlXUOthNSUi9podnEhNNixIcnXC9u+Xr8KES0R6cYsbbVZevzAlQxos74+MuTO2mEkxUGIYAIPNatcjmuaFdt/SdPM4IA4dBJnv6YACZAACZAACZAAMQVIgLzv4kPkL2TaxQeP/xmK6vuEiw8+Qwwltqvy/IaBk7nzAUlsmd+Q6s5+X098hky6+HAydz54fBw5mSN7gOwXIAESIAESIAEyZ8iJPBlaRdXkiw+FxXPgDp6eXk87jb8rkJhZPJBTyPhw+tpe8nWNZVniUI4hRRQvDeezXcNcJBaPszuA4GqQ2LeMLZ5mdwIxkigpiqVV1fr+xY8s5xBUZWRfWeGF3EOAorqyqyrwYj5AvCxAfCtAfCtAfCtAfCtAfOtyscBJdLn44PyHKv5G8tPp/Ij2+dnHy7m3+HB2/gO3i0/vBj05fgAAAABJRU5ErkJggg==", + "image": "/api/images/system/battery_level.png", "description": "Displays the current battery level of the device.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/co2_card.json b/application/src/main/data/json/system/widget_types/co2_card.json index 3f8260de3b..504adc051b 100644 --- a/application/src/main/data/json/system/widget_types/co2_card.json +++ b/application/src/main/data/json/system/widget_types/co2_card.json @@ -2,7 +2,7 @@ "fqn": "co2_card", "name": "CO2 card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/co2_card.png", "description": "Displays the latest CO2 level telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/co2_card_with_background.json b/application/src/main/data/json/system/widget_types/co2_card_with_background.json index 19d8b82c49..080052b319 100644 --- a/application/src/main/data/json/system/widget_types/co2_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/co2_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "co2_card_with_background", "name": "CO2 card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEUpLxkoLRsnKxsAAABARxnT1M3R083U1sza3M7V187O0cvY2s18wyLX2c7U1s7Nz8rS1M/Q0c3Q0cvT1crW2M7X2tDR08nZ283W2MzZ29DS08vP0Mna3NHO0M3Lzcrc3tDT1tDe4NHNz8zc3s7b3czLzcvV2NHJy8nX2crZ28rQ08vKzMnMzcjd387f4M7c3tPV18nU1cjg4dHW2Mrd38vLz8rb3cjW18fV1tDg4s/S1MfOz8fZ2scaGxrh49HR08/e4NPZ2tLHyMcsMh/f4czg4dMeIh8bIhkWGhYkKB8qLhkpLSIxNiDX2NGTyU0TFhiHxTc/RCAkKRcRExRPViA4PB05QSw4PScyOCcgJRkuMyV2eXM0ORpRVyo8QycZHhNHTCJCSR8ZHx4uOC08QCErMywzPCu6u7WNj4pARy0oMyY0OyPj5NDk5dPQ0ccnMCpBRyZFTBkcIhRWXCEVHxgSGBIfKCcdJx7h4tQkJyQuNBZeYiw/QxdxdG8kLCpYXilNUSAjLRzg4ciMkXl7gHhGTTAjLSQvPB5UWjIgJBOHiYGAhH2my3c9RxiChXJOUilDTCksOCdnbSNJURs4QRhcYiE2QSBWWSgkMRtWXBgNEBGcymLa3NORx0xiZy1iZyEqMBImKxHj48qZmpVnazA7SCKjpJ01QDEUGx9PVxU3PhKr0HgbIyWFinlJUSgrOBw9QjRLUTApMxiusKpIUiEWEhXM17lPVTLHyMJKS0p0eDBITClgZDhaXzRucyNhaBamqKKRlnF8gG8yNxBtchgxPRd9gxbCw7y30o+VmH5tcDgxMzBobBZucixeYhVsbWtnbDyUlY6Tlxp1eRZMURKfooJ1eD19giWIjHKbnnI+SzSIjCmGixZDSg/b3sahzmJ3eiPGz7jm58x/gDLT3ri7zqGvz4JfYF3S2MSkph7D16OxzIy81Jmfo3ihym2NyELM0sPI166nqnJWXzyqq4aFiT+ytXB+f0GxtH+YyleQkTqmz2672IjEw22/zaySk2CkaUPkAAAABXRSTlMgue8Ar4cHAUEAAEaISURBVHjaHJTd69JgFMet/i6vBrO9QGz9tmdbbk73QtsuNpUMnamhk2nkS2/SjSkYlqTMCISfW1HWxc/ejMpeIAi67qoi6KqnztjO85yNbZ/zPefETsSOHU8yVLo0zpZK43ebzeZdsszgeIlJ0vGTcVqtOoPrk5cDRqzJC0ZmmDTD8yUmy+AoRl4Uui5OcmGons+cr1Q0Yrn0xYmom5rZ93xXfLlm9T5n9IDODYbVwyEr6b0l4Di2r8OoKBmOxPbWviBINdEC8q3a3XR64j7ML0ROp4jsXTn4AQRKKpjpbJJESAwlEExVkXSaLPQtNW0VCczqcQR2DGLEjvN8K0kyyXF2M06Nv4zHI7pUoscqU+ITp07SAKxr2QPXFQfuYCBfl9USEo+XcJUhMQxDxOF1ar3a7fbLDGsUbc/w/SjSTeBFrM6tJsOJ0uz3JioncL3eZPLSZYHns4IRKqbQk4AOWMB6YWRx0qPr1Zo8vJW2Fo68eHFLdQggWPlaNwwIlSJVKs3gECKDEeBlFgOWQHAkNBS9iBHFIoYej8WOYSmebvE005qVW+fGX0YbnsdpXsXL9MmTpxIJ0lBvlMsHg+uD6vUrMpVGaMREcZxBcAymw+kOBqtlzfV3/uq3p7OK0XX30912vw89cjU5nGx1ruccDggWSKvh5LckccpUMLYLAUgsYbiADdhw66jq1Vui7HTdgSWYfUG+TnW7kgCyV6vuGiCMysgyhWDnMyiqh4dlDMDEICQCkpkMhhbhgRaPxXA+cXozy/F4qpQtz3Kz8SZ1MY3neKY8yuEnT58U1g5ZKlNSPj/IX6GSNfo8jyUQmsIxRBA4oysCtpc+eBgupTAMFCHarXbGDz/0h+F2tVr6uxUHuJ7I6izH9nZbn9UUbWpEuyWnNzlqclWZwkIDHFAXEgCS6HaFQtP0DqAkXLNJZeW7ByRCMYiqpkk0cyfueftvT2/JjEMSBEaSmQwKBYEkUBL4W/HxbEbncnT5y93NaLPJJXAewdNlhmJGLV4ABkIn0910vibXKJ6h4vEMhmMYI0CZJUsS+mY3fdX12WC5+6Ebga57nmfsfENaRp4ViqxpRKzEcQprGP7ENwybM1gvirh7pnSj+kA33EXTbLJi1wKWt3Y/1Apas9m7kiXsJpk8oBCZFABBOCqFQBBi7YpV9+ukCggLwwSLuJMhIAW0TKyVO5nbjGYbmm5tyl++tFJ0iqYTPK4mx/i50jtEwBALp9JXr12TqSSF4FTiTgbjeWoiEti6KgK72XTUazUJ5tzfB0pf+RxogW54nBJ4Xn8lmZq+isLdEna354cOGwXuS2O3i2yNZbmBLC2qQ84kFj1D0DmwlK9+bRYqOntgVUzyRjJPYQ5iIdhFQFFM5g7a3e7CtbcVOQ4KAgsbuwP7A8qCEkSMLtP0GAoxGpX40ebdjD4ZT7Xubl6Nsjfxa+V3ZQRIgEfKl/GkyuDXZAZD43EUNRbVSAJGtGAxW1rtw66sLn/DurErtgJz/1xXbGU61ZS+bU9hP08OD4dcwBqrKAB+dbJarvYKJAfWbYmTJE8AcGNqgr5eS7duEfbnvveAfMDg3VoeIzESwRDSktN3TgXk0uk5fk/XNCgCxjnIPejvwU4hhNh4Ux6NWqnRLJdrlVpfZuP4qTj/6tHNcf7tzZuz2bubvGXxePIaySyShMyoKApJBNaS1j0OGD3PKErL3e+9+3t7+CuyK5XKlPBDT7ELNpxgpvIPDBJsf/3ZGZ7Ghu5k+HJYlaJVxQ4MA5gFU+oe7g1dgcx60wHs8OlBodJc9XoHzxyLuo4jcDqeB8BS4Yhq9hEJWGSzwgkEWhRIwEGHZtA4QRRjs1n5y2h2bjNKpFp4a/wulWvF6fKLd9Tg5c38tc21m9eQRAJh7tOMqJIHTA3AeoSTxdQNXeuz3mptBsYy/O1t93AKi3ahEiyjoSNXpsH+997/rFWUihIEP3bh1p8G0WAyHL48nIBpcM+LdqytVTTd2/32bVtreuKU1fXB9YcwCZojyVdVhMqLElksoAhJOFRREEiMQ4iLsJi7hq0JCKtolX+9ThAEGkvdHzOlMt0a8Tns9ZlOp/PkwoXOp8ePP9Xff//YedKB55kzT2D0Sb3eOfr48WPjzIUzjUbj0qX/F+ja7fbRm3n96Ojn+/f1S5fadbh8XG8fvYf7o8Y/u9Ru19///Fm/dARvvf/+/7H5exi51DjTaM/Pvj9qNxrzefsStHr90/z/y+dH88a8Xp+fOfPvc3DZnn+sdx4/7nQaHRh/clR/HRQqz22IAgXB/pJZN61NBHEYwPcyG7ri7nayLjJLigRCIemhexOLCBZM3BzEaMFoIFQs3rRUDLT0TSpCTx7Egxf1Zg69edGDB08ifgH9BH4Nn/8zs1mrD33ZDJPZ/2/nJfGOj3ffF6PieNz78G1xcXGJWckyrXWqs2xlZWXJJsq0QdIsWlrotCTNZrMRaN02Rqnw4txckswhydnk/PlarYbLUPnzTek1H4dz584maFCqJpE3JEkSKvSQNNCLHedxi3YQLSBRlAUaySJcZTpNjalLDNp83NKYh583NjYebyMC2dkZiePyj49XCWHKMUSCV7YpSx0EdyEEjkC320ahrjBE5SgREFT8L8QP0U6HoiMWCGDo4YtjBvFRrQmiFhwWkrIKjQuR0EEIJZ82Tk72t+9Pp9Nr3mBrDefR7rj3++pVSCqIvDOjBENKE6YkNWijpJoQjK4oQQhJ4PgPokI0S9mKwX/A0aNGSYMSC1Eo1UkCFMFohCaDEIJx6sjeZPJ4e9rHNvGKweDwQTG41dsTSKdTQjT8GOIRKNHfEmMlpcOXh6QkdOB5h1KeldQAaTiINIc+QgcSXmTHU5B5gShAWi1IBMJZQPUVxzqMIeT5/vUXk8k1fO3zhoNxsTvq9nb2ZELoYM0pF6RIEEKsBCGtZQvkeKg65LJBlbjitUhQpiz/hkBqLBqVIvgntIthBbGRZoE0WgghbZTBYOvovwKf5Gh7Mjl5Me2vXvO63fFWsT4o1u4RUu6HAB3zPL8kkCAghZIslUgDIW6GAYGCUYyV2NJtfdzhIiADf7kY2VhCyHMQiYUYPihadJU2JctHdyb79/t3d9aeeb3u5eFoF5879+jgKlqQEypfXl7O625Gg6yCUBIEEZ60RoF0oJ6YVUri2D8lQXOs3HWZSgwYGa4R3XBsNQXCLehbSCXBrUtJnn/dxNfG/io+Nb1bvV4Xa2tY7C0KhA6B1AnJHQTbLyLESWS4xgyikLJKSvCrDC0sFI6wnB7XSzFunZGBt83wQSPioagR4igBURyMloOnnv96d3sNkmF/1btxebw1GL28eQgItrowHMTNiNVDglQQTUgge7N0lI/1SowpQYwxCsE1HYTMOlUO98YrsT3C5TPIQMKVS7OBRNUcUQdSCCkpIEdP3r2+eX311YPr3o1e8XS4+fLL2+9Lnc4CfpAWIGluJ4Q7S2YV2yJjnAOSwJ5aBpFymizyCiCUaLGIJJYay6U1g+DlKcgFyzhzBhTV1jwjGE6ujFRBQMlEcunn5sHBwfrh+pviD1fmGupiHMfx582zHbPNZpuzzW2R5Z4iDT3Jpdy2Ze7MZW7nmUsu0alFcxcNRxEhhYnk0tGKLeQocnnKeUV5JcJEubxUku/v+zyP4Xs6Z5fn7Hl+n//v+vynnJ59ePvcSbuWZp4ieAACAQUgzHUbhCS2gIG/AAHJYIdgwOruXMPeFgcjBmEhwkuvCaLKm3byN0DMLLI5oLAzMLi7iyA81igj9BXCjt0SS3pkxoJNc3Lr1j2/rxycOnfOsUkzkkv2YMn7DJH4GiIlXEDGAgTkBEH/+EdYGLuzD4bB5GA0EITmweh/SJgvFEFIQgmH2SAJQhKHy/+fWJktl4CEVuwtbpw/P5fM5ZYr52YtPrw9k2lb8gCWDgUIUAQEEUgOmAzvQHxuyzwbSbDu3eGP3qzHf4FQJME7qkoQMZ3vmiAksYOPjVRImpsBokbtTzMeRUIizue1+3SDANKKHZaH97ck1yrnMWttfpTctfzV2B5wiQXCOgvbaTwKBGNLugd+IKm+cLCu92MBqepVl1wKj36HWF3JVhsk48eLuYytfN4OEwGhS9hCQcBJjST0iNlyuCbgYNjaXQZRBxCQQHsLc7FxsTOzaJGyeNms6dPPz5oiIBvGIeHJISCUmRRml+/OHk8OIakYmmaU8axT07ROeKVUwKMUUTWv6T6SiD/MB1VUqzmw/HQQJxiVrmFMEUTe9nTt6gEIQzIGRiARhC6hI0ECEKLsyWzGvf66BQsWKdNmT5l+fO7OWdsfCAiyxOIwSUzLWemQJZyoLZDeulHTK/XCY1dWK+t5Leu4hN+s1iFVFCASXnSHgPgbID6aB8FuGyQYhpwChg8H8QrPhINpQxJyWCAcKi2S6yeSM1bNSS5oMZTklIXLdu3cMefKERlH2EZorUtQ6ALOiihhUrjMQwSBsQguI9+vUEdUdRaqHXXVp2tlKbU4puqdRq08Plsf78/Xqv6s0Z63QGKxWCKR6GKDqPAIQfAasoyn37xBCHxW9zHnBQY5SaC9i6Dc0mmrDWXJpK3arLa5WzYDRFwylP6giAFxgvwXBClRL5j3JBUtj/WC6ZK1JTzAIrxyGka5XqiWtKq/VgNnHs4SEIcFYpcxkgCKEhCKIF65t/GEuzijnEtMpwZYuthMMCBnNy7Y37p/Ee6vlPvLkysWrlq8ZcsDgCDdIbH0HxCrq6ACW0dl7K4bJsglEwRmIsm1rGqBdGgdvqpWqmp5Xcv3Ru6o7XUHQMYDREiYEwSBSGG7hCAggXNIwlaP5qpCVtMSMJJkC/s3Ftfux7azMqdtSXL6qunJOQ/GkkTMhlw2hzXUC0kPJokL6gfRI0CAneAqaRVV1Y1O1QbJa6Ksr1bLF/A/ohpA/A0QZIn6H4lqkSQEhSAgkaiTzs6/g2mc30Lpky1eay0Wr602isqVzJ3c0knJhXP2BALsGzKPDUZDtzmGmCQBpDtAXHIeNj+YPmAA4spRqPn9rroRBUddpWyPSJfPF2p1P1zjgNEWCAwUBcUllBhJeU0QOdYlgR8ThCQqQawZz++yBtlsaytIrhU3rla2ZJa3ZSZNmpJ7BUMhwYD/zrqhmd+6DT3EJ+/hEununDq60yOPjfZL5XZD95a0bEenlo3qRqHc0VGRxQNI1WivXKpNjE0saGUQFDr0zjxAZBYxMSBWYABGnc4RIxoe6RJPhUKpeDwehMIeD/qKMDvNvs47Uz/sEJLsNdy0ryzCK8pFbOevmjQ3mTwCDhG73xsYP9Pt/txt6Ew+OQSXQCDklekTvYZoqcQSqayhFUrRaMUQ1WRULBu6isOFzlg8Xm/HOlfr+F/dUTdBgsLBTQruR0QDzhEjR4KEYQUOYOBH5IHYIek9litOQgCJCkl2RSt0bdrGpPJsx8VccuGUhdOORG0OLM0t99lA9P2hXwCZOWTIe4Aw3XkTxVtxe2rwJlKRXhEP3kMW2mI8+xyS2PFUKiS7JQnEihcfExDESpAgNgk4BITuAKYwTJgQ6dWrVyQiFM3SIplQf0BcMquCa2/yxklsGi/JnVLuHcDXMdjJAwgiB4IV4TBAnAFWKQukRwAXE4W7ergdYo2D4JALBruo0X/vc70+H0FCEyIhj5gdCiZ8AoLTQwTBHwFxOkeOHEgQnwrkeIjCefvizM0Awa8NwpLJTQ9Zue57cvMPtN05mZm/Sbl94MCBlye3ta27DsK/QNIjAwHcmwNkaDeABEaccUNfBzU3NzV19WB5vV5ZvlQI14NLAGLXTpNDQHwmSCQSohKx8X+BILoI4oQsEKgBIifu27epqVk4Gi4RcYOO/eT6vKWb5u1bcnP+UmXBptt37957tu3lU9YEjOVIPdMjn88+EZBuPQEycNDVdDrtdo8aNWpY//5NkQgCJpGI46JwCEEgacUSLhRIAIK8jUCEif8FguOSKJx4ATJw4MCRkuxMkWA8hExPTcCJmwACDAEBCUzHTQM8L8WYICV84zVv3p0lRxcpi7Cnfu/27bZnL1gVIBl/PrqpJ66eM/nk6uhRu3fvvpB2X7hwYfKY4cPgBBgGwdAJeG7uImLgiyAWGDJ4Q0AScU8o0iwgEwAisYVGLiBiMkUOEaYtL4QWI2uBNRJnCgOE2kWSAGT1Hdaw0urVLZfxRczNFmXevDVLl66ZP7/tBfuO3KFLOfxyFvrxprvrw9mz6fSPd7svfP+RTs90v337dv16IYHx8XgCQjab27pI065NoghQhCQmcxXgEOQMLhPEYW15WSRhipWJn0oQBocYYgLBhAqzxTdEEJertHL1ysst7WtaisralvZ9LSsX3Lz5AtYQE96LstTyPhdZPnD0ZDjitfvnz5+f3pokwxBdnmBMhACj2eAIRZr6I+7kECe/mDS/oEfKDoxKSWgRhBwCYlsIDMoTSiRi3hhv35lBlhotPuC0xS2K0mUhuX17davym2wzj2mzjOP4+09Zay2itJYqipWGDDOO4KJMPMAzXlmMyhCFuFVoKSoYbzFDnSApwdF5G4KJnUWNLJIuGcGrGqXZPGJn5oH38Y8mJsb7HxO/3+/zvODiV6c73vZ9P8/vfH7Pu0x3V7wv1bUwsSOMGNZUiUIzoGRMjthGgHz39ZE//fDDDwakscFLd8KSc9HhDeV0+QBAvIeBnMtHCsg9YBAXRFOituPJoTpByWwRJoSTzH7RZAIKzORiXVS1ceWRa8XB0b8yt93pS42Pj1/ae+Dj3xVWgGbZA41bHE+tFwdAKILIIOFCASDYbgBFq7u4ARHihaojBOFDLE5WeNTCFuE1iCdcX7Yhn2egenJ5GWtVEYqwvKjC46OlFHiSvoUgpvq7JjkGe/adu5Z7+4aGnL74hdu7hz88cOBQLOZFplP6UBWHyLEeIHQtZC3IOhagczmfp+KcE889EfddPL78+Gw+gFW9ORK5OVJ53IZjyAGQiuM3+ILFdFsweNyGulZ4YjqbxR8df1Qu7wtE/JVthGgLtAVClW0ReB84NAijHVlmReGRFxJknQqvJUHsp+/uH5n9/I2el7Y749suHOocGxg+sH/jxhh02mn19etZaCulZoKABNrkShwBgpQtJrPJ4tGlbDKfTycX/f6b05G2dCiH31gsL5VKk2UJXHBsLp0L4M8LoRDCKZHFj2Q2nQ8GIsVkLlnpT5ZK6UARF7a1CoSFtcrMIIhBuUGiINbswmzG5q96arj3k2fe74o7F92+edtQqnvLKzs2Sg/gx2mGhkJmrD9to1AajQxGgCDlZcXEYrawmF5cTHiyiaoAQMIEyQcLhWLSU5wsKxYXk8W2dKAyffO65KnwukgiGwllE8FcHrW7WGwrJRLJwGI6UEqE8oWTqAquOEC8YZkEEG5rViV3sgkDqa7K/+cTr++6b7pn4cI+5/7bzsI7FVfc98c/D/xH54OmnjAiAQqsVVvb0NDAWPbjK31Vudw6WiSXLJyQLyUTZdmEbxUk4cvnElnP4qSnkC2kAeIvwqWy9TVQIlvrLRUBi4JXLBWSiXwuuCEdTBYDiazP7Qx8gbA35vWrbjKxSUHf2nQfIAywv0cnenbt6l2Jb3UuuWw83jV68Mcv1kCepcRCFJHUxyRvLSttkEXMJ5Bc7uRsIVE4IVE6WiC/pJuxuvD/XKGYPr446SkljiJIZXPyjMZvW6hErrExl6/Gv9WRXCJUShTTxy6mgwixXMHUFo1ScCsumUzhxz/gYLFyQcAqkE9mB3qWHxvFpPG87q7x0Su+Ofjj4SBiAQl6IJAAhSxeiBza5hSSyST8J1nKnZtNJxNH59NF3D6XLCURI8nShvJCOptcl0+X4EfJkjdRyuY3nQ19m9u06fRSNptAQ5BIJrMJXFia9LWVktk2WyCD5IDxar0hNz2TA8WSQyabwpXzDn3z/fTA6x+998JjzsV4GWLX8sGPlv984CuIHC7J+ecDpLmyGSgiCUNcJBpfcgelaujLuEZhoeYSQRVtdnpMOaZSNjZu2nSj0dlnR6MwiFnl8oQnX1J+DbLGUyFvTRTiNZRAeCUzATk0YeWW69DupZ6FnR+9MdzrbDure/SDD5764IWfvxKI5IJsrEcPvM61SZgiiNxYE2U7OmNHj+clCOQvJPBMvA9JbMlHqWz4D0lLlE2OackKpWzRw08zL3H7EY5U1zS1t7dHm6opFF9xKBOgygCDCZnov88uffPqwq7lj55xtl3c/crrTz3y3vKvZ0KnnUYUhfv5AImFT+UBC0Ak1l+zipR7aMZteCtEZ/YKJISfSSThDUOhMBFBIhQLokW2J10A8a+VeOxFmkjSZEiEDAaIMKCAZPJDr87uWhp5/ZulT5yLbrt7+qp7X3zqIEGEwmxrEu7GmB8Lj/bGJalSrwEUiA+hETU2Vx0dHdVyA4FE+DQSSCg0Wv4AUGgUsFDRGjUy5DgMRKvFXdVMk1UNtlehELsIyA7F2Lgonvb/Nvbx7rHZntHdzsVDqcFbph798oU3T6eEYmEakAB9Hp2wGI5T6cFqJSg+B819eYe9aTWECGVmk/A/PpUEnDUUlSNYLohjdno9K5xPIFWQyDs6ZmZmDAhIQnXl4CCIOJTZoKqq+bGFntmxV6YnZp1tW66//pFHvpyaehN78uZmotRDzLd4IrTO3MTIJtznMgiwQkbsjVrryNEu8baIULAQJRYTjQUPUDQUUCjVI0UbD4WUTSH77kewDgKL9ogCQb95jjlFMiBYAU2/9y898frowFjn2IKz+ZobpgDy6NSnZ5wBFJBo8Umi2ufjdI/eBRFEedGqCTC4mzguaNd/oZYoPhiD1kAMBxebKyERNuAjiAqgunkz9YGZIaIgVAxIBCA2HK1r2WHYfrwzOjb3cv+WMWfz5s2XfTl1y4u3YNIIEqDwFBQkAFHVQNk7xZIgp7gcTI/GCIxLItx11wX4QYEk5jUUkP4nDogosgsVtpncVumANrMgk8gSClmTYCtdUXYCZKJEMyTNavZP7FtYubvviZEJ5+mnnz5r6/VTe2/5FGeLhoW9IkFiupkP5YIkpyrJox64HFx95RWDAhBA3HTTXXdFo3AcGsRNQ7akyW9Q7gBlSPzKfzQH2AACDiZyK5JEDAkmBCa7MUzsidgxJJkfmptb6dw98v6Ss/lKnO5e9ejWW94Eh8ShIkpH2IAg3E/BRKJyHZcTICQ5HKSDyRImcQ3SjijxQgTRZ8KUHpRiPhaJTMINmb2GbTtAoDWbBCJeZQ+YxJJQSnQapezojN/RPd2zZ+Q1Z/Mle7c+OvXo1DsPk8EK6w9ndkHKMFsBCAuWSKgo1A6BwyTLVRCyCYQceEo3KlCBNC5UNK+BqEHX96Jtx70orrtIWIKqV91QJK442yrzHLq4b+t9Pb29PT3OpZe88+hVW6fueeetw0Dc+4fhnQDBjAjubZxLKA0AaZI9QnBlk7iMiWbUVhgSNpeBNRI1abZNcvs2kdhf07n+B8JxkiEB5iqGndKlr3/7i48Gul7bOexcc93oVQd6tj750MM6jpa4/C4HQco4WKkKskpbEoppGBxKLzbg28HB3wnp3n7OZWhJL8QCyAXHXMrD54tYEBVpS+bXFUevgZQbkLClVvMrDBfkzeW3314eHOjpecJ5fPjVv0b24EXSt5qbRWIN4tWYT9W34j/HSnou43V26kaFmIQhWoh781aSRPy0AEhkE5RnromKH55PF9BfyrXjtyYRiAKBHLSIwseC0CbWvVyQzx7be9W9W16ZfX+3MzgxPfHH6FjvFZ+tPx0kwDjFcLC0mdFbud52sSBaPBVtFGByKOPDJkYR1C6IJApQLgE+Iegg5lrskytoEZEG2AnqjN2A6FwaHAIp12+TQsJszO1pAGtAPPtv3Tq6/MTuA6MfOw89N73vw57O5674dP16gZxCg3gZzSJRh8pJFPsC/GSNQ/59EgUSSA9LDq7m5QTRsFGDFEIHfRUaB1Wc5MPVAuES2ytEwqqFgoG8JBAlhZiRSIQCycc4pt5xw9UjsxM9Oyd2O88NTE9/uK8/9fiO9TBJpbGIP9bQ2NKiDYE+bWJSUoKx7l1BGRKxyEICwVoCRFeo6eaHTbukwbY4CGLmqnZIAsmIgLUg8IzYRkokEUpdAqOljOl3fssVPTv3LbwyMuIMdnYOToztmz4PIBidyCKn+mPYBhGE9S4iErkDZaeJuqcE76CISiCBwOnlONoKaR8EByUIMDigZ/MhELMSrVooMwGS61g7BcKxBnbhYvHyU16Ja+ThLHvHws5nRqefG94z4gxk+jOvzs39NrGD72cJhBZhlxoVSZNIcBuFgamFHKX4jUXKLIocymdJkG78YhUI3UmXiiOEvlbfhKmrBalr1cjXp7WukFwQb2MjSMiCy8Vv20hTPOf37ZwexOx676iTyaQynSuZ/vF5vaZhQNb7Y0BpaFy1CTyDOVbdbQs23mwMA4w8d/00VkMU07s0Jw0r9QNEaUYBqoMf2/PzgWojAYEAHhxyQPmrjKRDCnRE2L+cTxZaRMc/Wkl2X+swD00PjA1c2jWxZ8+wk0mNd/ZnOl+d3sHXkwVyHPqqMLwS3XaNIXGLRXvUgNx009ktNQhNGdiV5oPKVnR4NltyHWBYgbSursNu/WqiNbSqRyBmwggSrY0HbgpbgitiNpW0CiyirQ1BSOIP8B2ISTjU4Nj0XmysMk9mfhv4bWWl/0G+HQ4OWgT5lyQ806lh3eMZq7WIBbmJRlHacTFOKENk4D5s8ZD8MQaLqS1YA7EGaWcDwC9qqA2D1ILImSBy0EN9UADxGAWJnQuGAjKJAUGqBslk14X9g5291w93O9MDKXhXfCh+Ld8/OcYehqKA18cQYAhr1W+ChEzRi7a0CAQkUXjPOsvBTOPT9ANRzJIJCURJSAbhIyNAmtjxRyG6J8NLgWU5lMRaQUbBvFh/u6PkAQBBrEWQNzHhme/n33AYHB5ecDL98Kw7x4eGHjyR75FbjkCVQIACEOzIzdcq2EECFIpG8QeNSRQhAW8N/iza4KWQMAnCtgBivcYjk6PdgMgkCHcLAmm/CNFEUp3xpBZ3VHsYiDeMNDt5R6o/09W1ZXjYmevMjN+J1we2XXvihqOOOAaHVXb3g0EpQRBjHR2rCwQS+BZlSRjyVvCEmhZ4dEsDs3MYIgiEMkpaORZAQIJdpIRw95k6pBSswi2QDgg3tSQUSOCz7q/ZP4VB8mD3lov7ujs7u7sY7NDzL41fyxcA1Z6YvV24niMIJQusjSGhrddIFCiRAMUqxcUyGQ0c6pGYfxXCqA46GJ2BGOwyRwMsggwMDqLo1DSkqQ8tJxJsapWmLAuiL8JfStXaJ8zjL/XEM129C8POtjvHM6k7H7+/70GBsM2iwFIvEng6MirvIxLmEaplEyJFySsCqctiGFoQP4/UVKhZtCGcXilAmozIoSEEvc/l0Dl3iMFCkBmapJVNmy1eMoMpZXb0gdXaP3j39r53u3Ci63yYiWdSqeWDuyZPPMqCqLFBLNUDxYCEcHaLDZQFURohCHRXdPUucmeBVAdgBIJoPKc5uscEyFoNqRWIqhE5+Lz4Fo4ZCMKiCYsgbvgnkPxJIsLqiGn/Zdu3D6UyKbxU82Eq1Xfn7bd+8uPDeAdIIGo38RCcpahdI0kHYl4gGOdsks6+USAtUbkab0MQBnKTC8KxiOYjtIgyljggbWkEwr2VHZg0kQSniARRqoSp1GBq8lhjRbMZZ0e5+vmx/qF4fOillzLOyhz+mt2epW8O/noE3xbwKEbMqEyza4Loi2ZmRCKTaPIpEIxOou0XtFzQ0oSlsiDt1R24B78GCZBAAJFniURe4YUEEuMMltXBpJFoUwRx74Koa1M32qELJC+3ClArrf33UvdQPBW/4/ltzm/xeGr7c6Ojt74JEDSUqiEaFGgsZw4TVEFmOhQlHBYSBBJIO6RWZg2kCZsoGNaCIHlVKUZEYjyDKLFagfhV5CjOM/DROgvCTozdAjjl24xCbDQhM/2G3/l+X5q4cGguBQZnZWVl/I7U3r03zB9jQHwSZ76VZgZxGIhOCBDva8PoJooYAmnh+AEkfFAWX4H4AVJhSDpAoTTnxwXyLUgUNAhLfkddq31Tx+chCJMFB5rGxXAx22Z3X3JoaeTu5++ID40DZO5fMs40Jq4qiuPvy9CpiBsqUlErFONGXaqVGtSYcS8CGtyK1ErFKI0pDcoY0VZjK0brUhTQVMUPmmLAusSMhipGYwyiNQYXVIxIoA1tEYtL4hbj/3fOfajxfCjzOm9m7u/ec+899yzv6y0NDbUdS+9VJgom/mxeAXkDtojhJVVDn1JfMXeTkDjKEjnVIUACyPlGwuoIiM7sGhtNekB8n3MfOD5HgWibwwqyBZ1/GE2sCI5dAklYdhfdXyo5xkcynHvp7P0+eGtLfV13r8pQo5tVbfry1nUrUg/7iHg4XxxWbhGD+CEWEOxC129MhxI05dxZDmvL+SiXVEBao9/CH+RHWkgY0ziTAdNWUsJqseRsaav2JlNLBNsTtZCCwMHHWcntx80hm21+4s9lJS7t7m5evTL6peWL17/e2tix9WGbI5CA4QlFTkKniYPDqsRO4OZJQTHyfcQRll/326FbrOColkAkvsj6HHUzwEFoPRwE5aSoMQiqhweVj3s4JoGZHJPIHl2g8Ka+/YGffnrl/vrm+pUC6Rx8c8OWK1etAsRIMCfIwLRLWeaAOEk4KSLu2uDIZXOVXQSS2G2nu31nx48YQoDSDeOIE+WyWf+07UggYfE4+3wtWwTjPRgd1u4YJIF7CBCpg3bq4zQoN8ls37Rpy40r66Mvvnjrla9X35e6ej2ZsJBgyhIc1DW218He92q1lp9ZCQEckTH9maq+8EjcbUcUAc918IiGdBQ1atbdkB/2T9uJYhBWLfcP2CfpBHd/BBAZW+i1TiinoV4Pbrh/w5b6D5VZE93/0ytbrqredGVDDXUylGfF5QG6lhWZmJvN5Cai4bNs986enqmMG1gMUGagp2dgYiEgRrJY1ztnQsTNZ7YvfSESiD2MZyGA+FbK2UCadbvvIwyYJGxGfIU5W2Xfa/i5W0sNZ8a87BdXb9pAhbYysTfcqGj7+y+8uqmGgjkvCDEOCmdEkrVfjnTZRUM6oyw6ZPOkmqkBmfzNr0cnpH38Ro9nqlWNEcslcuvT2h0WsYuNVRUQNwl8mRAUA6LtnJMJJB6U1FCGRDXjcP1dwgG4JJn94EpVcffaHNmyenW6o/3tF1pfPBKS/Zka4pAUc31EVsKUOcjEvrH8MGmBqB9mr8uSSf3IH34FydxwXJR6+C4ePNGcsph7an7giBc8bAKFdOzUPCcG8TRAQOa6JWPHbQ7AJQsEsvLG+rW9q+u3RM316Ybnr79+TUeNapJouQSMQFK4T9acnLyimKRKLezJzIySHZhUf/fwYmLG/kh5Cgb04o+ZDH8qjtHZ2Hx8nHtLJAscxCP+wqRJcIRjjqAYEPfi+cKLagGiPQMQBoQRCSALi5IP6AkAK9fWr22uF8jKTa+1tna8tF4gkDDNNT+kWYhqAROHeY8KZoY8xyKt4hUCSkqXqgSA56lH19hkFVKy/ENKD9ihGzP5wSy2hV+65SDmuJ0FwQYMCmOeY4+xGYmv0XDElSXcKPHj9pJTBfKgMrXWNvcCUle/tu6Jl1pbG9ZTlETTRYGAYUPCCoySC2ZK7fu2RCB0uTRpt/5MAPKtXuzOy57kz6X4VkS4M7/gaB0F8ZZkMplkcnJqYPekx+bHxsbm5nBd5mmeer+s4KSZgakMIHt37NkxJpI43SzUmbD2SvCX+9lO3/x9Y6+2w+7e5t5orYrB7+l4/r7Uiw7i8m+QrLC9i4b2l2hE8niRnV+wUwOxsETOmiU0PJkN2OTcUv3uZq0HqNapdr6u0EDqXslG8z8/zbU+gkICwvtTdr35zAP8xs17E2aeaDzITqTc2sxH2TgisViMvvn7t2SgCKO3N6qra17b0Npxcce71O0V/0+0bpEF5hvgBD3OGqx2/nBwDlOkosRAKjQ3FiQZsVJLJJjWOyiPTwO9G68K0w4SrtFEBwEDqdAnncRL+owDI8OqA47xhGDO/dgPR/3Y8kgv0i2Q1c2Vy55/6YLUl0dK1HBrfaA4gRFhhUFXlSKSpEWZPOv5Peoh8VQUYXUBMlqUZKA8dL5RN0oLjiLiX6CpwyLhg7DDQCTherdM9Nn3fdT22Iu9syW+VroZSvnnz0b22Xgf+OTl7ubm+lVrm6N0d2VlqvWJupQ2RPLO+UyYI77+YnDZuRvzIFNFp/HPRtQWkAXk/RjIQlM9LBwDqbpUfYfkW49npO8Zvf80IFyrI7iu0IZv76uzM7Zua8Eco6fiit6DvCxYQxIcFQ7C0WG95kdd8zND7d1RQ6UmSTqdvqDGC/dD4Q+Vn4gbXLb4mcmWCSrxG5WbWYB43s8/ILjqHKT0kEtxhtBQgdvBooeeNpDNtixxPXlMaYWuzTqu0osDtfAXUupBwbEaZIU3BmLiICcFkMo3V4wPtvV90xLdKmt+dXO6oa6GoJQbA5TzU1hsdWFY8wmEBZARcXWeVicdCIhUTiT/gLALOIhKMiSkjgJiBTCs3385iMVNGIKZufMBwXNtxEewgQGittOvvj8T6YpJmCXujKjZNt72y5stfeODkR6ZkGqoS6Xr1luYK5+QGonCJ5Mwi1+bFYM8CwSOismcw1hhpvXlAnkayy4/CUhJ0kFUemhzBNfnpaWS/WifJbnuZZIEEKYA11PzZ0FKDaQ4gNjzEDTRA0hMolmiyWeesaKfu/raB7e1tPXXRunm7uqmm9P33fpunh08LGkBc58sGoCU0Mw3mKN/j/p5Et8IG94bhYXTArEdON8nu4NQmyuQpxOc63Dp2Ii4xgNSWAiIPy2BuTD/AK75CbuxMAaZp+Q9SOAgvc1AwL1UG6gbG583DQ6++ci68a6rozXpymvHP73tpWvWi8PsBL2P15eUWeRY6VocsqDnfCGhAcXFKJAns+mdnqK8KUDOSZSWJhgr3NHzEQeh5XsNpNhBpGyTXCcM5Jz/geSerM5UEYuT2H7PPfRbfpGDfN9Zq2cx1fZv/yIaWnbrDf1DTX2v3su5QyQL4xgRwvlFB5ywXAAy7StJFb9YuEft8IxvVKQoicqPUcAwlzux1i1c4CBMnh3MkWIHYVnf7XPEQQRuIPsHkJOVcFW2SEOC9QcJIPSaxbvNfvtg27abU9uea3lmMBq+7qLbavuHR9p+zYMETkhiwerPIXiLhiR+Uz9nIbY8Fh5hHQwIkzgjbxvrsgY+OQmYrzO0DyyrUqUsqNhB4EiOakj1/QZyTgA56Aitlhhxxy6WKHZAzjIokNhu7xlG2G/3ll+16opGPR5vPHpy+O2H1qwbHxn+FUymiXBO+w8JzsD5hrKR9nOCnKbr9b1skFjYIvwhKTsd4zFTdHQJf/fqxhAMrOB29Sv8mwHhWgediSqbWjkVgNBIQOZQGAJI2eJvF5Owi60FCRNe98QlJ3lieXhZ4yN9fU2dnU3RyPuftj/y1i+/j/9qmILhBsRT4sOQ4P+TSlexhWycpiHoRulu25I30tABKi4yXP/Rw/XGhB0F8X4IhA9sFL4AALHrnj/4uonzivIqfI74VCNxfJ6DIHIy4E0KJBTGu1he4peNW8f77tzW0tkVdX3z0ZrLrh/5bugr8phcAi4wmipY35BwZpvhp02e3os3s6Anvu5hNFm3goxaAodVGtnyGz7IzHKQ+HMqGkgaCDFtQMz5YiDHGchxFn4PILb25SKWT/JB3/i6we2dtYPj0a5du9q6Glf80v89G6IJt9jgwYI7HieInFpYn5nRKsPYQ9yG8OiA9XbFbrw0C5Q5lxnlumqnzqFe5UMWCBqzp4rP7dCu4HNkgOsfpjghFY1WVU1rQHLy9GIn+U6LKvSirMxBOLfPyYq3xSwvB3G5t6Xpsu397cPbt0fju3aNjNxxSVuXQNSFsQATUMiFwwOiAcGFlT+Zyez1iLmb04snJr7l0JE0z72cNbqmDIvTNoEhhZIBKS5+Y2zsID0dQKsSIDnJsokJHJbcit/LEjY4fxEeRMqO05iwAxD6ytonlIRS+AaK7dUfVG9t7Lu7bXz8uaitf2Ro6Pfq4fe+ys316k62crAToIiE/AnzYDlIgUWZDvABCelm+ELiLFkFYuXbgUT/4/6FAt8e1A41g0UJED92GklJEdrrIBL2Y0AIBpjg6kscZBWhapswrFAHI+rL17aueG7km+1tbdHHwx8Nv9f/3TfffZ5rBtqBoWRROMeDksc8KfGEJyeRN9wWMYtXHy2QWwhdCSTPMxjVekhoX1GI/LgJZSCUPx/uILZxQQKz1yV4NNhBFkESoxw2R7aKu3RzXQ7FFnzxso7Gru/e62q/O2p/7+6R97e2fTP0Kw84ASII1W+aUdkCwfMCiGe5B5C5HpgkkmABHwLGTCxAaL7GZCEveNM2REDCVwcQochHJXHHBAmQkABCYswZTqIpL4tp0Zx5tCeIapTseQcPl7/6SHv1mjXbaqPqpq19Iy1NXW1fHQ9zkHhUEhqSooUiUWxYIJq9uJcdJMcjk2QQWOQK1aYt+BwMZImDSAzkCAehXwHJi0EQKVe2ZxpKN31ATpYA4mnhkOR67IbbDtOVQI58957yddUrHn+89rLopTvah9cNDQ099I4NB44t+8O/pMkeRsrTEgPZjwASoTBL+5HFg5Y7CY5PbewiAeQoc9cwIkBK/hwdnSLpLIDM27l58wAcRDvgsCGJKyuJw8LBY5i8mghZDByprygwOLk8xqWmIXV97SXl1zZeES3/7v27t9X2t7Xdy3GKoxQSn6k0mO79L/HoPyTuHmexBCSgMNsJfLtueVycyAckNoUKSi3Lz0dkNveTb4hBPDGeRjJBNAlEAsgsCeIrI7M/d55A1i+7ZPnyR5elntgQtbRccUNb5/am6g94EA3iIMjhHHPN9ct0FIjXiTAybMMOgu1PwMlzEY5Vn9LPwVesNwQiURi71EssDITP8j7z3VVrgbohDIkljpHfkwsIuuUkMYgkj9nPiJSvuuaC9DWXL2+MWsuvuGF7Z99DHQq9CeTI0wPI6Qq7ewKB/IT/gIAS3NDyTQNiX0xQIYCYn9ObmcckOlVedoEQacAXf6Ac5Tgvk/SBR1kcBIXKJneECWCLKyAigeU/QwKLQOYB0prSYzOXLX/0nqi1dWn58up1tY9+CQhPOwMEDnteGJEes5hJAVUKEBaoe29pjdpBCzy3TsprtdymXYg6l4iDBwyOljeF+GbWPhhMB+dzZBAJJqqr1gLOPq7+aqROIXoO0ykswQZjWzwvA4pADt3/xBNqll+op+imlqbT0aqLU1en7hx6bNVXgPD8OSM53UkIvFvulhVJ4FwLQmsg0TsW+pCEqolcS6kNZTBMmFOJRVnUVPliByfQLYEkPQ/vH90CJH4oVXialx5Wtgih/cahVzCpPaqZAmR9x6rLL766/Ky6dLRCz6ZO3bnrs4tfZI7wxJ3/giiyi6VC9MmM6cDBHsuUdSfzwSZYaf6AC8v3CiAl2h4lcgziPs3Zj0034QlRgCRnQVCtQKLDlD+HyYonqE61okh/5abkolMO1bOn7tIDY5ddXFdZVxeteUha1vlp+QU1+7hqaZbAMatbIjHNp5rRa8NiENrrvnJOu1ZCdryJkdhCCQhWCjFS89bmW164ZURZ8Y+EA7bVm0ozvVhMqiUQe6wMcgpTxTi0R4aSo7KyUw7Vs6fu6r7oGj0otzK9NHr28etTy5Y+31EnkP39YU6imAWxvSQuu8YCdWFHYLekmF4u/5DU6BjYEXGOEQsbIIgX5KGgWQJhHVAs1Vc2BgebN6TuZS+ad9D+RwICiq3CMiDPcBBJANEjm+6qrLtPHJW3pqO/2TqX2JjCKI7fjUfaeFUiqEciBCVRRCSlG006oyqTUUUZGtLYSBqPNpJJGyQSRJR468JjIVEJksZOQjxq5ZHQBPHYW9hYWPv//vfc0nCG5o7R9v7mnO/7zjnf+c7cHBpq3Xfg++d9O6QQQISScizJSGr0w6KhIsGEQeaRw2S3MnoiMAPIIu1w+gUvbD7ppsURjEgDoxKmPHlqruSNwlFpRIoAxCN5apWGK7ZVl4GsBYSTU5ZvelrXuWZN752uxsZC4U4hn6zv2nSp6frnd19+1IgEEAEAYmFZAcU3WCWQaI+LH4ptCQMOGAUpOszKpU32H+HwCBFInGBziawLM6DwF0hkZAFCBeIig9i2fMhIegCEg1Mm8VNIACm0FFryuaQtn7958fOHl99/KemteSAj4Y8kbd9kd1KOsUFMwr+5TEIgxkBZGl0KRX2LPhqmiTsFiQqJmIHRoFiZ6vgLyvgAYdUiczNuGiAsiQgWZZDlqy0jJHW9hW5ALpaPJW3dt142vb7+4ctP2qDQus0kS8CwQBIikNEkY5DJNjm/wt6pCgJd9QxJWoAjEO9MuVLGdeYyLgGzmS7grDCDQT49QFbO9GBnRVydkuhCuoEEMYhIfrbJsAp7rr16k+weeDU8dPnhpRe/apn0osFhDJMM5b8gBDnRM9MYBtEKMZe9i5QE0yJyWkHttES2hEKiK2jsQUddBiSuUBGJVonqSVKIOPBXfHwNhSCjQD61txQK3W1vXrxI3hefbyoVi4fO/xpH26mlIrF5QWIUT8gI8+4okKy6IIYOIFrqZi0jaIRkRqWdQsoqFcPQKkTFfVGbHSeHJUpqjJAg5AkWL5JvW83CzrSr42saHYDUSWCx2LRaWvLtL58/eXMpUe/lTeUjJy+feKr1VH5YtGrMQIRkFAnth/6ASEug6OEOqgu8cTdvykQCeZfRicRHQRFzsFFujvAPzBLDhfktUEIlyxno9lBUsR8gcPwh0dPO3kLTQM/L4SfXdiaPnwy07mve/eDEPQVdqGSpQcK4Rkh0q5BAsGrVvHkGi52hScEByFiDEMlTVyMQhHnWhfQWc0SbTVhEIpWMDyGusoPI7TNE8ISngmSQzs6MRCOGWatw7c2ha4fO3xhODgwPDB1rvX97sI8+IlWjVSIMQyECCcdYKJZ00xQOvgWQ2QKJ81bWiIRzGh4aLDVudmgQfVewEBn8UQk6VJJAxpWSSFCIiQJkRCGAtJR2H72xuXjlaHKgfLfcUGzY+e4XbpLbgIZKDOJrbGuOOUJ4CbYQQBBANmbnrVzPOsHzKykY5QolHlLuHxcmKihns22EKQubq1KJQqsRcVwCiQQr+wukvVga0OeUPEqODB7TJxfkDm7+kXaFx7aCxPoIJmkBDq2MgJgjhDbcmUYqWEVEglAglO48coGLFb2Y3RIPEsRKkR+toIcjIrhegFglaW8WOBj081ESHJ6yDLJmTV+p/9G21p7WjqPJmcHchobBY40NfSQbpmW25Uk4LmLWAsOSgQhAD6HE/9SkxQawSCRRpka2Ks4SBYe7KcsHh94kDrRYPkziKlpdSgGKriQiSYtEIamVkeFrAYKL8mlTf7k8fODK0UvJheb6w1cHT/Rvv0fapEog/IaQ4MhsajRHsCD6yla2awvc74gtNzdUmBhttKJDLnFlJamFmRXu/8ocQkkCMQ8g86PGwhGHcOl7z4HnSuc8BbcaDoHgagnk6XCpNHj368DXUlK/vrEx35XP7z2d3m71qn9BKkKMMQKCloLESCyHcl7plGCMyW7COBkU9zCvIJWODXGTcqaWBAkaieQsIKBwXbmI+IqAN828x4agzMoc9hmXPmsaunt3d/lCz/4kV79hT1du6/3bx9MVPDSyDlm4DhA4Ov2QxBCBQxrUoBVJ5l0STjL7ZL0cEJP4SZULCytlOdiNQKwS6REHDd/EgSguM+LoJECIOSE1iEiQAHmbHyzfLDaVekpJW33j+nx9w+WDO7ibFAQSYEIhqyqm+WGS4JCa8E9q3B1VfiqLowJ8O+GVcWKJ6UkkuGO+ZlCTW5IvpZU7QByG4n06pApxZedKBkk1gwQUXmbqkhhkuU3rbffBZn0I0pWm7WrunWtuz+dybb1+X0k7ABIY9oSVBkCkFyjEYYXUjKGjuBOXnDuJCNcg4+KYT420AIkTWtqVBYSxrMhp3LTqOXOCo8J+NG97yIQ04GWQZCToJN1pXm2Jwd578kiHzre+btiW5BrzuTPtXYWDxx1IOQ8ESMYBSI3Uy8E+GCwGIccwncylOxtH2oGw0OdUMxTqKaJ4QRqjYMox1FSyUvLUCc0jJMjaw/ugvpMppNwtRlmJ1BKe/CH52HPl3OvrZx9vbk5yOX18WFM+v+V4OmY9fgNEc5FEIJrJa2ulk9Eg8m4rK5XNCDvmHtwuHZDoxQ1JeM2UFUbBlHSGpw0EGEiVUGLXAzOjTGs62RR8x/joEfUJnYp4ZQ8fpa+jY1dHUYnS1qQ711Lf0p+v73/LnceM6sHO0xTEK+siSILDIFTWyZJredekEe4bnZijqkogsNVEV3FkkrNk7vNIP+iRZvqB4nVMIpLonoVGQPVLaMUKqgMkSPrKpVJx//VDR079Zuv8WaMMgjD+1ik9iJBPkH9FINjktDGQO0MgJJcUhydGCVoIV8Q7DmLAXJOQJtoo4W20sbBJwFZRCEq6IKQwRQx2fg2f37OzxgOnyR0Xbve3Mzs7O3vvTtHodW6p7tbDBiBeBQG5bZCIeocq00rBQBLGRcSSfO31UMm4z48iT4Gr1TTXHCL5P5SdNDkZP0rt2x1E6GtFK/pSi1EMEuMRIBJ/Fnd0AxIksrLzzZcfD+9tr2xuFPU7tVqn7AqEriNWiIRKCx5Og5AO51cICQRXNiLbQiPaOvgyyzxuBCDkRTX8gnKdmliQpBLRcaWQVEXXABlBJfQ2OlsZibPOzGELZGGwJJIs+63Xq+vPll7oeLq5sNHslI3G3F06n2H8Sl7VoVUCcRznOhdWiZymnJAVQlP5RGWYfBD4+CgOVjWrM4jL/PBrd0CwfINEgQNz6MZqot0sbCtycQqLM+vtuC4EOZ5VncCVN7pwvbjfrfd7ZVnfCZAgMYh0r/GVm58aJY1MrJOdl0CkEvSvpQ1Jo0qQA4ZArpnEn1+BkPPCaxtEEk8HJ12IY0oh4TQoYASHnJtQslSr7bZBDHPcV/28p7+211pFrd/rd8tyblGmNUgyUSWJUfFDr6MpT5m2OePqKkG9pwQKyZJcULzHtpizJgmOvGQYJE11Q8R5s5pjsdN4oSljuIoIKLzyW5MMtxPJcXN+dX3p86u1J8XR0U63vliW5T8gKZqdNAgmr79BMkbAZxLMKZXBcGJPklDMwRsiEtbjURIJE4kjFTwSB/whnGCBQGZXzUQkNSUSmxXuB5QQQIQSMrM/r8qMD94ttVrFbr+jpaQeIDHJkYkMwpDZAZuE8DpI6Jg+RQdqKS9v5jCJfJT8mgyS5CZ25fnjHCzTOGtRIOw4EBpBHINQaCrSU4McSMCc721qL/Jhd7dZ9Hqd2sHZ+0Z3/y+I/plCXJ4ialEd5aQiGhFIqOSGURCReORsyoYyCrHXGME3aVr1mGezvfbxtaT+A11zYzpdIRUcEacrSRd7bWQQI1B+z7YWNlW9cqNe9A86naOzi9OvP04ySLXNLlI0/iVgOqmYEclNVpME4mBx0iSaqzkfhlowajUPiLwBGyIlEirtWP0AsSkx3BhMnB6MDnBcXooElfC1BrHAMSiPHy03m8vzz7dma0V3t9mrnX45u9j6HiSTVbk2SGiCa9flKto6c3FjgMilsilRjyHReJKijFAWZXiGsf4BEocyAhlPIJoU1PWikyJHU2G4SHCYxBZ5tVn9D8jJp5/f3jaXl1uHq3t/WjqfF6eBKI6r+G/lVDCxLpQmWbSammQpHtyD5hfB2LINFWOQrNqkMemhacGACbjRkCIoNtg2BSVWsNVV3IUFTyJexF8Ioq/iK2VKO/Om37w3w4MJ+RySbMXh0/nB3t70/p+XL4FbB2C4Lz/fPR2P344BWDc+02gApm789O3nT+8+P221Wk/H91rb94Aj1zhzpnFlu9V6+7Z1r9F42XgJ1lh9CQYtjGo9ffv23dfP756eOXNvG8a0rsN4oNBtt+6N4ffxNjj+/gXm+/L62bunK1QefPz+++e771++f90GR//tysofeFz9pe3x+Mx2YwxN46JO4xG+SRc5qnYICKmXX3DLy/DIycUrl2jO03q9vrhNmozVj3E92kSOyRKtxArldkgyaVtWT7N9X3MixxHRq5pv+3Yi3Dxx6yocUxAYgh0rIUiphJ2XN4huJFjV3pMbArlVxs+e39A2r547ewI5LjvO5tqJihGkxQ1kMctNoceSHGuaJOnOXO+9Gyzguk7w4XCIiIiIYg5KiKrDExg9CJW+zvODfqjDu67wKr6GY/wgOlSgyr2ZO1ouPn6c7vXzdMFJ+0FzvWxNBtSmU8EBKYoWCnylkpEJ69vtAzLpaNGOpjqqLMqyc3bNFrbIqu07x4gSTIogIGRIHEOv3iVKWkaVH168sZOYxRPqhnz29Onz1eOXzmOyjG6gXLr3KsVQRhACcoczDDNhOc7s5Z2RILje3rRN6sMhQRAldChtiJKIY0QX4XmcBgMVEo8P+vX9Ce9s0pKoHlpjHvXyqQv32EwXr3bTfG4pANikQkqhlCi+qBRQWRSlE7TjGwar2VzeMR9Fxjdh5MgiFGmo6uxohbOR5shyiUCg+AQdxJ16GQcor2zZJ3dqN2qcu+t6axsnjts9+fIpBE785A0JVYJ8luoIFpFNr8rusCSZcU2yJ8y9YD7j0tmrAwaElEpSiRBFVMIqCM2jdEXiMYnX9YEu8YMBVQ/Pni+oNJyPUM12u2dyTe9ODkHOp/vGgO+Hg+KaTpFGcseLz8aqxJMWjme+fVNLUpd7L4xms3YE3tVuwXH8gspoN6u3oGLDiFKXWGNufHw1uwjObdY4Wavd5g46H1/trRm2KBeOFwtIaXUUgFmhESxGywqq+WxiQ7ZalpGQW4KZBobg5fN8t00OIR6YRIAQjCaIAg0CdHolZBWTosT3lXA/iuyYptFD62xT8DjTzc3d6TxPLZxHxcqgX9Qr4XzhkV4CWOCKmxu+qmqxFjHzhJvuTvfbri+KEKtjkeYDxe+4E/kgBF7dJy9+vfn26311q4BV8CiC4vT9+/cf9vZuAgMMOVY4V0CGw9KwhBtBkKadqe9ktm9l0eambZAmKbAGlwNYWXBT0hwMCehbIv7Rz4LBzYxGaV7SJYmvYLxeLFTwSQaZoFkSXTl0pMi5neX+Pmfm0zwNYhSqepGGTMTXDa7tCZ12Z2ROA9PWsthxnIScVzPSDHxwoKqiLDm+Bsd4F46J8nmsu7Lmr+dP3nwY/djC4bLzQBotb11+MX1/0HnBIceP43CWvMp7pB8YWRbOKTXSrMywYpvyGc4kq+sU67mCZ3ZIZjbShyCE+KeE5Ezf9/lulwYhOuiBmFDxQEXVyKfKFezQ4WbQZOqTSVhfvpoHUwXDoB9f6NdrFGSd2x7tzjvLdB50bK3i8FESs9q6wpIuiIocTIIGh8Cj5zVZhG2rOyTW7iTlXs9rv6iqBZW6eLHWK7OX7zz6ALezzl0LEqu0WsF4FmZWoLg0UojWNSZLmFVuNd0btcQQauWUzGePzPqQrxAr62JSaFGabwyILj2QJFqiaZDUX4aoWth360v6MEC063UjDJVBf7JYTCYuDn14nBVcY11ttmH/WOxNOS7wBCjKVC3rZFt+xmlGhia+A4tEhQjKx4ljmIpiG2IJ2/IMJrl2befR7uUOa8dFvFpbLye3my/ufDgYjdocSZdAyZDA+0bMU1mgDIsOlEoUC1hrq5yQDGVyJsMI5ny065p6sdIloDfBh2Gfjm2cJro6D0IgIJgkorf4OHZqTU5BDwEP/KhFTcIla3HLWUDzA2klugabulcpex3SzJc57AEcaRgwYZQcvGA73oGhqQdkLEmqeBc7IcpduVzEMKg+bzQ7zQcPAH6+wzLN2zdxOsZr9iZ74/EIyNVku10swvpYWdzv87hlKXEUOZBdmlpbp6jHJGOUuaaQJDXGdadpylFFZAhGT0JL52OlH2FdHiMkVIKKXVTjCO3vW4p9EbDmfwEGiWpYaMoMJwAAAABJRU5ErkJggg==", + "image": "/api/images/system/co2_card_with_background.png", "description": "Displays the latest CO2 level telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/co2_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/co2_chart_card.json b/application/src/main/data/json/system/widget_types/co2_chart_card.json index d6fada6ca5..557e5c3c8a 100644 --- a/application/src/main/data/json/system/widget_types/co2_chart_card.json +++ b/application/src/main/data/json/system/widget_types/co2_chart_card.json @@ -2,7 +2,7 @@ "fqn": "co2_chart_card", "name": "CO2 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAt1BMVEXg4ODf39/g4ODg4OAAAAD////g4OCAwyzs7OzCwsLOzs7j4+P09PTIyMjV1dXx8fH5+fl0dHQgICDn5+fv9+W8vLyQkJBYWFg9PT3a2tq2trb3+/KQy0Y8PDzf8Mqg0mAuLi6v2Xvh4eG/4ZWCgoKIxzmdnZ2srKy43YjP6bDb29vP6LBKSkrY7L1lZWWYzlPn9NjQ6a+rq6uwsLDH5aOo1m6w2Xupqak4ODjJycmYzlRTU1OVlZXaQn3KAAAABXRSTlPvIL+vAC9A4IoAAAjoSURBVHja7Z2Jdto4FIbTaX/GkiV5wytLgFBIKRCadJvl/Z9rrmwTNwTiJMMiUn/Btrgm59wvurKED4dcfHj3x0Xr3Hn/7sPFuwsHZ49DGu/fgAeZUFnhTXDxVkRajYhhNCKm0YiYRiNiGr+5iHRqIvUcXSSME8+G4yXzEJjoPeHb2IAip6RexPYlxjG8pZP5dthz5GCdtu3oh+Po1hmITGJKNISvgHhiK6heIWIn80RFY4w9ez7vSQNFVLx06IGSyANh6zy9CHCSqBAZe5gsqXvmcrqk8jNQRE5hR5E9iaChbCl76eg8l1EuU4h4vTgeI572oFuegSLKi51l7EzmpdfA1mOEkrYHEtQPpQj1lGMjmntUfNQyUKQkjta1NUjmNuzeIJlA+kmSqFzE6SXJbX4pcJbUMlfErhIrWo6DijJQtU7Pbz6zG0gjYhq/j4hr4dlY7uYvKxc1HEtEhLNwSzJK4BESPNgMBajhaCLcgmUpWK2AjZR0U67AJBd3CnCZlExCcCYsJlXwI+Ahs8id0T7kM8C949RQCCVqOLwIE3qHIE0DOlgsuEMIlocFpyYXIVwZpBTLwAOKwZJW0AoQ5r/tWkFIzRqOIKICBBZzKxE6VCKMRCTAHoi4gqt0VIoIJvTraziCiJtxhhnLChGEnOciit+LjJgUuUgYrHtEKjeTvOiRUGZGiBS4j1ruU69yy62eZh5pRIzndxYRLtZY+WYEdSItDqQMGvXLHFkG9ImMjgZQJ5JmLliIlI+goDjXIpy7QYCUfhiUvCtPCMlPWKX1IpwLnmEmQjDcQQoSsSyepuUET8HyBBPUeyejXiSQTGTIZlmxCNEiAmwtEqRYn2AIzBZREpmbjX4RSeXMkioXccPRXXlCKWmyiHBdFxaERZs+UsgSFhBYAvqnOuEGrRleionziGDcxfMxV+RlNCKNyLnQiJhGI2IajYhpNCKm0YiYRiNiGo3IBp3+ly/9zoPIgiL4lfbiy2KFEjNF2t8//qn53r6PXOaBj9f3cv0i0v2MAhNF2lqjSHyxGemWJp/L52SLHBNFuvnf/jo/5Hl3dPOyiHwrzLTC5dVQR76CMFHkk05XC1xT42od0Y3O39Tog/hOjc9aqLuWNVDkGyW5AtGhgroBcUMlBU2fTl3rM3QcQvO1NIKBInoU06ES6JTpE91CrV+mvz73bFzhCvHgg2HKPlyPVCKbaWNIlVT2w+qB2jNxLAI5duyTgxdLYDo9iMjX9UBolwX0qQyUw6ZTHNr3/dfFs7FsYt0fiY2pp3skmqjwACJ6aHTbdLzR6T4UuSpCw9eK2DNvluqjpPxJZDz3EgfReOIcQAQrPWtc3uj9Z+xXZMaXStExi2Qu4k31I/9E70Fm9m45H/axZ5Hxj/lkiRISufWchJSiCNMDiJBHSXe1ZxFn7v+0UbJ0yCye6LCK1J5F1pPc1Wr1SR9X+xWB49lHm0e+6yzXK6zLZ4sYNyHms3aV9qoQWTy8/J6DSL9cWBGL4rq10odqstyYEIteM1BktSHyYBlyQ2lvX6KYJ6JTu6xGS1+Xz3qJ214vGsvRU5Vde/WljX4/3y06XxaoQ0h5jEXj1brIuiC+FvlXcz2Gvyzju7nQt/7f7eFV/wbdxdXNYthHLQypDIXizJVK0n7fIpQ/cXN9TUKlUaerI1fXeq4fVm8Zv10NP96/ZflMj2Ebw/Yl2kP99ElGXItwSyiGVsp0W+xdhC5WBdVgWXXXgZstb3VLka8LEvnWWYvUopO3tMjoUCJYXRY5Xq5LnXIr1ixXnfvITRH5ikLk8uqyPRxeX+PZIgpcMsEU0y3M9l9amjbdDlq0H0QW1Q2iKrJCAWXe7lBdtQF6dNDpoJ68F5hhN+gWfV2THZMuv2bQiJhGI2IajYhpNCKm0YiYxtsVEVwh5SxocQ7Ojfj8/utEXIvTnkOCC0n7c+FxaQlO2wycRBgYzoXtIkzoHnEZQmgYm+EkSOlgOzMW1orM4JLLiHOocoxwnIZbf+DPlxOJbfBXXLUsnITQj6Bux7Hvz72p/Sips7n8qkGEAjnx5n48dc5zHrG1R4XyegNPnqGInUTYQHp+4tkHE4lC1OJEXhRNQ/kSjzEe49zG/nxqH0TE9v2xg6eRSc9bxvPEj57v4e06M+n5y+kBRGLP7iX2k0nFg8gph+8ETxJ6Jckcu5FeL5nuWyTzSSLyoyeqahDfe04G6ul+WK5Najo5U/sWKUpZUqfsrCqJinHyVIZe72TL+GmvELA9P9pdVRXO3MNOpgP7wCKOtYuf43Vr8vMftXGyNR78wzdifPCvtQP1M7JegLPPHpn2qrbtJdOdVVVxu/PPvoxP9g7RTm5BVEPZs3dVVf0wmfTsk4lEvQ2x/LJYXau24vTG21cktziViO3fPlKj2XFdVbtQ/rZziYeTiXhbilrPjruqqipBe0vn2kcRkXHJ9NcOUVvrzddV9SRxXNO5hxNRUYFeHKyz9Lwd0rJ+hT7ZMq8et7Sc257v2etv03wt2UBtFJZzIJEUgo9gcWvLu8os9uNQrxbxPOqvwfI1fxPrOSIqA3OZKxFuvflge4PE8228HqfnyXvCJMLL4c8QETP24L5WyNJNldtehP+D3fMrengxKWPPEGGzzJIkIs/6Bh0hROiqQCIchTgXdgx2AQRuvp0Lxt5FaUTOnUbENN6uyAgVLh4QWEW0eioM+bqzbSJMpxoIvbmZRe3iq44EYPEAFj1CF/opeIYgzV9d/IaOHpV6EZrRaWMitKBzZbgbZS4bsWD0l2xZmctH3CWRGdci7l8BRzb6ATmSAY5JvYjiGbjUBqUIy1eQaSAk4/Qk5GwECvE0LV4d6CiD4Dgi9SIu9QdSZLmIpfKnjPYq4FaQi7hCaBH3B4m0UpG5FKOf0QxHo16EMVdJjhFXCBQFJDUy2oRUlpB8BG4Jrlxg5CLQw0MqhRm/0y/A6dAi9TDUIE/+GYl9zSMCL8RUkZPTiJhGI2IajYhpNCKm0YiYRuviAm+C1sUfJvzzpv+N8/7t/BPtD+/et86diz/effgPZJD8+hrmxCsAAAAASUVORK5CYII=", + "image": "/api/images/system/co2_chart_card.png", "description": "Displays a CO2 level data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json index cb6e3761eb..17d00d946b 100644 --- a/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "co2_chart_card_with_background", "name": "CO2 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/co2_chart_card_with_background.png", "description": "Displays a CO2 level data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEUtOS4dJCUoNCkYGxs7QiofIx8cIRoREhQjJx8kLigaICJDSSpKUi1GTDA1OSQUFRoqLycsNCk0OjAzOSpBSTAfKSZJUDU2PigmLy0yPixFSyM5PiQpMzAnLCM2Qi8oLR0sMhwxPTRXYjAuOSdJTikYHhUkKCU+Ryc9QiQuNCI2Oxw4PjMiLSJARSxBRyIxNyAxNS5CUDI4PSwnMiJOVzBSVytWWy1PVjsTGxlETyo9QjJibDc6Ry1ESzhGUSI7QB5kbUFdYywhJRcxNhoWIBwiKSsxNSc1QThXXTUeKR9bYzgkKhlOUzJTVzQ5RjQrLyIpLxdMVig3RCRSXi8tNzRETRpSXTYxPiMPFxUNEBF3fTk9Sjd0ejJOUihcYyNWYScWGiEVGBJobDhNWzZnbS46RTtIVzpLV0NBRjZgZjVYXz5KUDxocTpRViJLVSBCRxtCUTotMC0aJR9HVjKChzZlbCdgZiZvcjkqOCJrdj47RhxQXCVLTx8+Sz5qciZMUxZUWj13f0J7gS9cZzFWZEJcaDpQXj5XWyNbXiozOhMtMxJjZzxncjFkZzAoKipxejt1eyltdzRucTBgay5eZEGEikAlKhFqb0FSWhtvdyt1eD97hDhncUhjah87QRZSXEYuOxxYXxs0QRt6giMdIhKIjjk9TSlpcBtEUEJVZDgdGyN1fB0bJxhvdiCIjkdeakA8TCFdXzSZoSQgLxtwe0aQljpvc0WAhys8TDCPk1CeoVZfZhmNkkOIjyJ7gkuUmUV9hkJ/gUCLki4/RxGDhkqWmlKGjC8mNxyboEV4ekmYnjiPlyFjakufpTJudRJEVil8gxWSmS2jqEWHjE+BiB+VmxSjqiBSWhBLXC2EixNdaUdwd05ZY0wjISiprjKmqVp2fRFkbBF2flKtshmLkxSssEifpBRbYw8yRyg4QA9GTw+ws1uJjluUl2GAiFSzuDIsQiG5vRprcFK5vEm8vGagomqvsHCCgFO/xC3KzCFQSjxhWkXJylB6f2DIx3qAYFOhayjYAAFDO0lEQVR42iRba1AbbRXOZZMm2ew2m82N3YQE2CS7uezGhYSSFmKSEgJJSLCgtSVpQdBQDJEqoDQtaHUSwNRKMaUoKBqtt+owatWpt0rHsep0dHSmXmesOnbaUX844zjjL0/0nfn6fW0/KDzvec95LqeSXHlzYzOeYyN8nK9ubG7mygebmxuNzefHm682D14/P9g82N2IO+K5RiTu8TTlraOMsfntPFuv7C9/4EK1xnKemQqfH2AdedbDR1YrlD2ljOU2NjZ2PYJdoVDFzHabivPk8x47neUyySM2JZdqzqrVao11UWcr4vgRGqxvR/vMpIzo1hFdSDI0XQ92Tt6gkSKSIMwJWouKuNls9tdn6qXt7W3WjCMkidAsR4giqdcRZ8wI7g8yITTBYoiWRQyoNnhEkbYEYnbzvEAiLL98WK48vy8IVLTO3KvyLBWkdQmE4l342stdur9oEhOGrJ/CXVJjhC9PrMLX/pa4SqVSZmP2rILjBTvCUzyVPWvsoh0OhqLsUhehsrNuhsazNpvN5VIoNJJGPJfLxWPxWC7uoShPrHGwBqg2Gq9evz5uNDYqgLUnEo/FGmylsck7VFMn5fKYm/WjSbZWLpWWt+vREJ+fqQSpEOspldwez2YkklI6Y5GDSLxSpnIqhU0l5LICtT25nUshOPZ0buVJnjSe0gyrLbfUatKc3Lt7tJUPhrTmbp1OJ+uWEaIb7Uky2jvLWgBYJuniWPcZkkzoyKM5bTQ0s/3RfJ/5zXpz5n11VBfQmXdIPSkhCJObZrRuHPEbaNLsd7uDb87aODNfuLFNoXS+Vlna3R2YYJZrpcntG5/50vbAUd6Q0Amiyj2xu1AVwz/bEVU2N8CktrOUp/JpO57iaIdKpdBlcZvK/aWJmIouD8Ttt8icGXfTcZZTu1RyVdZBZwFO+P8ULpdGEnOksillM2bn4/hm2dNoltdeNRpNZ/PVa/j35mYq5YjEG/Zcgy97PLFYSnXipNzpYEUzxoQq5VJtuRZdpirR2kyomqcqy5U+3rPJKuVy52bckaMiHjplA0CzqblavbpMeZjM+tHK0d5Xpm1yaTFhk7sWTX7/iLYndDSdNOiu+vwG5q5fJEXSzK+Eavei5KBRRuDMhckslyACJIuioY/UJm9v17sQM4JhnW5SR6Yf4gFCJ1Fl0L5W0eJhBDebkLvvnNM6zDg5cH93v7pciVYqt/erEbcnyKJ5ni/c319286hOJ+JZTqiWS/lMch3KmfWwAk6z/OpE2W5PqGwOlUKpsmVtTO3+a6VKQPGs3cbhuOAQhAjuMiqUCWXCrrIBngo4UJ90xGFXKfGmA8ByeCKRRuP4dbPpnGpuvt5sNhqpXMzhcMRyfNyx6XFMyZVTJ08qnUqcxXGMOpjwTJSipUK1FKrNVGdq+XK1GmGFuEcBTQEuKhbhHZxKlVUos6lgPp8v1ae3tphQdWUu+STNicEnT7JSEjlDihmtNrhS0+t2rmRWZh6vIOFEFpv++OQHPvzRdxp0XW/ZqpfeUzjCCQIwRNHo9IXJD3ycTmAAXtjgzSKZPa0IWKf9CGazcVo/SYomDtHO1UMMy3HM7v3lSq1EsczM8nbckcW7SLKre3Wh8MCDUiznFxM6rlQuLS9v7YQFQIrHWTpCUeXypt2mgKqTu5RQofUf3j5Q2fG4jSTJbDaF0wIAJz+rkQOYrcJUKVr1qdRImim7ampKHttsxqZiMU+86ais5RrNqebG8atXx42UM5ZyxJSxyKY9Um44p+QtPGOqHI1hApvbOKhUS5V6oRoszVQf1RmPJx+3O2NCgswq7Y6Ug43bUzFX689HcHewWgqimJaBLlELTt/dygT39o7CoihKdNgRc3TvY/j61tP3v39vZa8+wgoY0/nOyWt3PvpOhEuYzV3ae8tRe8KPIwiSCdXnQh8POVgEilIi0fnRlY/kiQSOIjSpE5naDdocDidI9ztX5pAgK7Cra0v8HYp196D5mWqnjZANy4gEN8bfX6Dz0TwK/RpZXZtYKEVrDMraOQ/txlkqz0zwQkylunr2rEujKK7vbS8dKLMIjpNZMmvH8awKYR3Ky3KVTelqlaYUalMqlbok8VSqGZOfaB5vpKaUKTzlbB7vvnr1ujHVON7YfNVUqlJ8zh5TNhv4xkS84VSmpk6en1ImMIbBHVyuckDF2WBhoRQsHN5YLscj1dWUSqmyZ1VKB+BZiSvhOgAQPIEzwWpem/BrUWpi4v7trbtp3H+0t4WFAwRhmP7IyFHPituUTia1W+mV+vT750JoX08PE7zzgx5DAj7aHLx2muYQpA0edLpv7ujCtiEc1klkEjJsvtL5kWkUFRNFRK1zUNXbVTKg15NmxO/GaRx3uyPwvmkWQWnmTjXoIYxSmS9gdjOHyxEWpRC12sdFyhORyuFuyc2pWJ6lHQLPf3qVj6uUGpgWCh0q9j6e/NHL55VIJE5DP1A17VAiHk4ll6sU2VtQmAo4Go1GoZDkUrGscuoEtMvjXCxlTzlTmxuvj5+/bjY2YCZNTU0JDA8v156jKgebnk0POxU7ceKEEme0KO2AGVaORJiF/So1UyktH8TtVNUTU8kVSqXSztlVPMslHA571pYQDX6WgmanQ3lqld9dmlvHcD/67703FvUEme65gok9W0f+HX/y6RG6NaINTq8ksbRWO8LO9XURXT1sgu5jzQlSbPNCQfun3/+R0xgZ0Fklal07aTB86Ch4ziyTSRV+lr1U2jcTBOHAYbiJNgJ3D0TSOABrphkmtL29zBg1Rpm6rct96d4NAa5K6hrudkcWJkqV1RJuV6G84Mh6eA+1SmWVUo3mslwuPg5+6MLK7Uc/f7afr+Rp6OQcTAQOF+xnNZddNp0NirPVP6UauUoCFahSTsmbm5uvD2Ixp9PZaAC0r59vvIo3X21uTJ1XplKxGEBXKR1EIuVKznn8VpUqkcAxfzwHHfegEmRWF6oUn4f/yKkcZT4mPyVXKOx2u0oRi3uycIMc9DqBY80cQfj6ghV+Ync7lC6aDWd690bWw751f7sk0GU29Rb7RezuXQbzQydMZjIk0XOTOo3qfW2/nk6THEbayARBmtA03jN9+mYSw/vVVp1fL/bTma2jS7haIyUxnB4rLNBdZL46g9pshNrX9ZaBet4MR0R6GLR6+7sVl1TdITP6yLHCH1eBTgwau4W3HOyWI0JuwCOoaJqzp2iG5iORnFJ6Vn75Monnq8FgsFa/8Jl79SqP2zlzFhAAPHHFZbkCiJJUo3RBCSk0cp0kF1MqnU6ArvHqeHOjmWsCcVx7ffzy9XGzmdt85ZS3MJ5ywpTfaMQajtwJ59rxVJZUKexmPO7wAMLVcvlgrRThNypQmjEPlZLDUTpSQN2EUMijAsJER2tB2kDq1DI1XeY3Jgp5ntTrw2Ek/fDuJ3X6Yjshae8VE/piQI/s7Jj1en0R3n5vt/80g7ZJ1G3mkeQO1otlREkgIDLYOroVAlakzSzewt4TFA1HR7VoUjco1QMJJd03+C4zO7O9PIMTMp8v0TkQcidwJJEw0xn32P4ffxqxwJcxLPHTh/dTRrXaaEMjjtUqBeyoj7Y7oACyMRyNUzzL2q5Cear2QiuPk8kIgybv7bn9IpcFegQjH0aS/eTJyy6VTaWBo1Ao4c3rJNAam1NTLTw3D6AmU82Gc3PjYPP18aum8wTMKGe81ZZTmx5qs9Zo5KamcsevIwlCl3U4cEcK58ulhQ1oNeV8JE5RcYdgj7DOU/DpVXBf9qP69kweHoO2Xo2yok3n0+kSWt7vqFB0HiX0Bnzn7lO/NwAUs8M7r9fpvd6ieb7oDUgIMmzqN8veZepp75ZJRBJLv3EvE3rC6MVAwmDArmRqD3E9vXXFUJu5zaQf1qefGhZdAKcZ59g7JU7LMNX6JbfMJyHQvNttzhKJBOnHaS1PUftVlVFqUXebu+gobrQQdpaN5/KHJUEJpJKjBUfMpsJZAeV5T+ry5csqRXBlei4TApr1zgtHeIJM/J8bZWFo5eQnNQQMdg0cqcKW1WUTUJ+bx7GpKXjlrxobr4AiRaacuXgc6PzmJhSmPNZsetaar36+Ec8dHjaA+m8crL2O27M4imKeWDMeOeDjsUiO5yMpTwR4hzLFKaE+AU8VhgaD27VQwpb1J2s1MgEKQkfTV46m6VqELvEJ04XpTK9IEjK12iqTtOnJIpnQ670SCYxtb7s3oJa1d7VZrJK2dhyoZv3x48nJuUzC69UXDem5PRbTm0dORy9NRrFMJv00SRS9Ylv7PIdr2XPuhJ/lYULZfByLiGa/qCMIkFDYwDWavnY7xEktXWe+1Y3WeMI+AJzJ3sMA5VDZhWxKEBxAfXCcEyhqInby8sleB5LGGD7DoMwIZuL0xCKAqYQaMbspGl64S2EDPOEobfZEIiFxNDbL8bhnowGQxo43NnIsdMXNxsbz443jZqsVKFWbvzneeLHWcKz9aiJe3j0+fvXieC3FaT2OlNOORybKcbunxdxjjkiFLaXgvpTykycVCg5jUW0IC7oxBPVr53AtanOZKRbI/NOVEr/EZqZ//NmVLZnMarRYLFZCQoj+pD+wGLCojRIiQBR1PplMbZEaZe1mUa83hfIzjy989oJfDIfD+rD/LoaYM9rQ6Xxh209nQu9fX/TCUG8naZQzCISPhNmeWcngWLu5S9IGnSbQJdH1UDTed+n+ZyaMxq43dMu6kmNvGFtYsKuoAXZgYVeZ5bgUx8FjNiNx2sNTEcXJkyf1cB0okmNp/zrSRYBEJlQtQKErsChnC0ilrfqUAg0ArgqdQOKEd16Ob8ZBErU452asGYvlNhvN4+evNmLKqalTTmXjj89evlxrBqs//+Ojw7WDjYPXa/sHSo6lcSAEOZBNcZrORxxZBzz4Mq6AI4eRRAAMQPrRcwLQpbB/xKE9x0nhg9JbT598bCW0/bG9+oXH7/mstoXnoMVCkrokM3JkSixarINqWRhLjlwh1Ba1ZVDSBgy82G8wH33l8fc/Vtd6+w0BV/Ghdjp6YWZmsl67R9PJoyPEtaiWzSN+f4+v2wd49QlzFyYfT4tEexu0E8IV0Pt8btrc/qaZwpeeCUajS215u5Z+U9/Co1xqgBbY0v3GMIebbSo4OMqhuIdynHTJNarutq4WSRL8nE9tHDZnBR3QfBsnwDgidTaNxuWSf1Hj0gCtsoHslDgOjjfWNl43cxuvplKvNqBBKu2NeAOgfd6YOjHlPK+UO49//mJtoxmf/NIfX5aqB9Bn156/tgMZcKTsrCcCDJaOhHgHnquVY42US67SKKREouu9XV2ybjOSIfWERPSn0/wc49PBGMns3N3b0+YvbH+POXqy8iFSb9EMDg6SO3hyKxTq0eqsVzsGw3uPH6+s4O0XreMWiUSmJgyIiCd/CVx/+p2M2L/on8vUL8xU61GQnpMhRI+ZwhqLntxiMC8ikailg0OkPzO98vixViaT6OFXsj1+Wxim/Bnkw4UbX9pXD541jvuQMR6NFA5W3bjdXbu/i+Isp1IYFSBFOMFOU5EsKar0uuHhmNnRjSe6CShOlmFBzFtsMI+AMQRuAYVX/EEuh0uw6bI24J+NjfLGQfl1Y/N448QU9E8ljKAYCKTmxvNXU4147IRcyR/sPnt5XAMHaLtQqpYPNhrltedlmrMplc24J55LqRxMMOPxOKolank5r2rVp5KQdQM76jYbREImI9pFs0mrNdsSxaIfM115+CcTOveRJ5n01tFWvb74B6lxMNC73tMZvUMvDNi+OO9d39sDMO5unbFYjfDqByXesP73ppGtzOO9uSPdrB6by09H6zMfic7cm6nXaYBsSJNIJqfrd0WL0WqBpisasDdP7+1hOrVaZlETaOdcon20q63LzNQKN+6r4EVI1b0sitOPJhwRTsWUCwtvQmi7SmqETsUlslme5+0u0ubQZgE7IKaxYd9VG8cypSCic+kTWTtHBhYXFy0uBWAKirT12pUqyVQzHs/FD2CmH8BU2kzFmsCPgCpFGsevNjYazRNKR2V/98XLR/sMFX0MrL0MZt5GZWKDBSGkiAkAI8hRTygIfl8QwC6X00oF9E+Lr5uQdLe3tUvURuMwQRKimSTUZLEohhFs5woiYm8++l7m6ZOVyRnGZjV69WGD33/uWufaI+zWvCm5dXdvemXl4bzMaJGppVaJTB8ARw3defL42yuJTMLUg2rTyejkh2fes/3hTq2OsFrxuc6Vub2vbCEWqdQoDfjDIrKztfXGsN5oNGbTGILpJR36ri5hYGxsYd+st5CizqvssuGFIA+Uk+WDeRRxgNJpPeaEPSvwngVOj9NMiUr5QVV7eMHXhQsIG8yns2LGbxBU0I0GF3UWxa1bcpcOTssVkQC3hH7ZcjsiTmWu0WqfTrk9lWs0JsCwU55wpoTo4drr54/yAk3VakBo441GuTxR9tidSgDUQ9t9ihR9VMt7gpVKmWcjFK+UA2GSAflTy9oMXstZtczntRF6Qq9LhMMGAxK+si52Ib9Lv+/bK7U6MICARar3GjJEOB2pXHu0IH5S7M3c3Xu4wzzt6bBYAI9xvV4yWyz273xi53vfeZx56k8zGIqlg3PB4Icnl8ZMASCumYx75Ojp4+nOM2qN0Wsyifr+4rzpYb90EDxBcPu8HUOS0S4SCV1jCvtvIQZ1icsaacLO8RTNZUkcZcY6aaB0qrMKH2dP4PHVicMNRzDEVpdK1UeP9u/f342naRrz50P5EFM/YrPqQalRHQjoZUTABYQUOq9LxYF+dzYmyo0Yt3mQUuZSJ+QnlCenYo0YSBtwRKamQAaAGDs48JgFnMkngwy12YiVX00cxON2lcoZ8wig7h0sE8rDFZdpBriC4yQILx3gaVT7SNKnl0GFqb39+mwfbQM104sgI3tJQwLbMT3899O7+bEPr6stgfmRJ+tFUpunohSqDRdN2NZWpndr3WsZ1AzOegm9pEVOMRP2uydP7z65y9xNajGE0YLIv3P7nYYAIWK9SC+o1YfT7zRJpUT/qMEgikTWtNPeYbRI9FCbMqtkSEImyDd1ji3cKHRrpEaoY5uP5nkE5xI4y+RpvzurA/ejxdbNnsrAQjXI4uzyZx7cKBQOqN0JFoEBi6ChUI0KTueVGuktixU6C/A9F5xbCptLZZfEgVNugvBueEC+y6dAystBDaVSdiH+qnGQS+XgbFQ2PHGOpNN5ivU4cjkhfnBQzgknTsmdTodKydkcaDLEgm3IRkIg06A6XQCnbPiqsa1N5lLIOtTqgDfs9Y5dimlIxIT0ptPaHbz99+umu0+C7nJhLIE//OXKhcdH2fi5SLDwYAb19xs+8fTh1t1PdlgHLw8OdcBM6tB79cjW3adPe9dNmL8nYzD3ZDqnk9poYTKY6J/v74Vxpe3tHXkfVKRF0tHWv24ClRUe0quNHXqJpfWtD3V4dWYzyo892jcDpzdKZLZh1iHQHIfA195FGNykS3O5ZW2Agmd4Bt4iPl1bvlEoRatBsFYgCkiYkXQwyKCheha8JRcUv9FitLT8kJMaqVypkKRalbgZFzw5Faghub3plJ8474zF7PZ4GexkQBuHmRPfBGWAahk/7nE0yg2HB8a6IzZlSzlVPmXTBoKXEkSUr5UeVEI1XoDPrQbtPCzr1hmNalnAN6uHg11bHlB4w509ZhIz9If13iu9D59uaYOV7Xx0b2/v8cc+9rGZMTZSWA7ObB9pe9fvJk3vGLeOa+AfGDHj14ui6eizX9mZ7+339iMGxIaNnK4zmc7O5RkEXJIrbxyZfpK88rPfmsJkWCIZ13+yaNXvrFu9gVsdEuugdXxcJpHMeoFg9I3deHCDACh8KpuBjtlwQeRolPUR6JgioZBr5FIFvcCzHoYXskKeAu8OzS8XImYSZCEBIUs6iaJg93vyqM4lvSzVWNTSy5eB+p+EMS8BM665cdDKNCJlB9RnynnirSemWjab4wBqN7Up5GBgNXIcKZppxJ9wxB0H1XhuYzPiYRwCl0qphhVZsxBHwdaOVMqF20tUXAk8GN66WtLtk0qtw14RwFxUj4sDpYLfiy5fohOkl5zvX1/PbD3UCo5SPbQSCj188vjxx7Z5h6cQDC3dCCUN671FfUeHdfzyoGV83DJo7fCa1jvf842//6wXrgYxkbp+8C9DHznH1EPkrNfba/KbnjzEfvenu5OPPuOflUiGrNbrvXrJO7xwG+PGwUUJqK4OETF8rrPz3pcOfRponzKS1rLQQzmRDQYTaIg2r6UMSqVGweZpCJr8OEcjCPhgbDBaq+cToLICpAjNG0WZ0EyNCfmNZ40atU4HeOrk8paUlzRiCqWjXIEcbaPSPDmlUJ5/61tPOKeUzniqNZSaMafdAU+es5M4fG5gajje9OQAVcfmGJB4O5jYkM9xguBh447QUqGwVMjLwSc4f8poBDP2srToT4eJ1nenJvlaleEL+w9merghb7b4s8yfrmyhNE3lo7fr2qOVvY98JUhn86UQM7N0eJSu53WDgevjVo3GOmQdNC56+zGDf+lH7/kGNq7rxQyixZtIBk/fHOvpHCnqobt6Re1XvpPxg7a//6ykbe8Yt1gI4zg8fTXUpnrcIpu9ru8gzWBU1y5MjgVAmxulJN0Kf7gE8CAe3d8tHL48LN+gFQq+h8ZTYDYugpfNgZXK5OHq8MUsDFXOT/uZJGhcGjh11gjTDvA86QIr0qVTZSW5XKqpjJfygn0zduLklNwpnzo15QSdaQefDmIl56mz3TlOyKA4nkZxvx/HHTFHPAW2qYevhdwppUIJcx6PxysVIZaHDKn6oPa/AtWc9anPGqWL6aRf1EOPGZd1xauPKGZsYH9pZofQJcTenz0EOFEUjN5qEDOl37i1d0Tbef5akj4XvFO48QC/NdsxPm68bBmSWToC/WEk3J+Ze893t2nC1Nuvl/ab0XRw2v2GM+0w/VuIfuLo6ZOdjwBJ2F9aerPXau34vXrQaLUOjkvGxzss1vEhbxHpZTrff/oDD6gQ9D5QNRwHNIfQkW5IY/YfHS49+/nPf35sz9d4jvgykMoAGCmQZtEY8C1TIhAgSVDFBszAYGmMBg+M0Kmv2nw+KYgAFeRk8N5jjbigakaoSFxwAp6tYHLq1Hk5GMKxmBzc+BMn5LYujmbcZpHGQT/Sy+VUw84JSuVmT+kSD4C2pAGX80DvpsHbjJSWD5+VENxuNMKA71CrQG1DqUgHDQY2sknxQd4TrM9Mi+s7xfl+05GWZeh+lIpmtH7sSvLplonDGWYMezc2s1RYdkvHh6wW+OiOjo6hfgMCgIaRo3uTp/0msp0YDGPMSGfJfVFtdQ0BoyeKWPHu3XQ0j6O12rU7Oovlepf+OsyyVrcwzgKgluth8UroHOpe+s3+TJ9VAzx8GHiOD4SiwFADPK+lHvxxd+nZ/VB0zi6XefBsFjD0ilkyTLZmkU3npsGnQvxwj4X9+wymRfQw1X3qQZf8pOt/GacEcGs6lfbNUtmpnHJuRKaAh8KTP+mcyjliKUF5Xj7sS6XMfnMXjoRxGDr7zwoF8EFjnjI6FhwLemLAQp3KmF0ACRHJux0TwP6P45vu1LB6WG1VL+qhMKyDOu3kPWByywssLaBLd5hwe2/vO1wupCcDd2RC+dBcj9+0nmTcZLYHZVgtPzlTmpkOiQDFoAWKCygoBBz93nA6MxntxAzeUf3iIon0jPE97naL+nqH1drim7/7ZyZ5Ds+i7LUxshfrH5od6lBbLPCb4x3jVqtF4kW0GfQtBmbp9vIX1Jc1eplaBXiSpC0SzbOQgrupL5XQwj7V18lyni89qAbT4GB7dYEEUqkyYpap1lBEFA1MtFTaffFoabmkc7mMLo1UZ5MrODqmADxbbxtCt41q0/lW+iACMdrJ8+dPKlNNcDpg4iuVw+Dtm9+beAuD034zenj46NEfnx3HYhOM2yPw1yiHEgwu0LMgM0WPW7BTy7XDl4+qS2O+T0UkapneooZHNxiert5euleKoHSaRgqhtrZ3mfz9n5SLfhqh/ZhYxLbQfhOMFNxGMtHtEJVfqtdnopPaDqlmEJgO0HpvO8AZ8CfnJuuYoQ00ue5WAMl0JkeSwCGsHbPeWW+x/5///McWIyZw6nQyvaXFdC1iAGDClUgkFhjyhAlD3G9q77tzb+YN1suX1aCFdYSMs8VnSiHEbaAx9nnJMLZ8Pz8dqpQOH9wIUhD668H0RKnnuzTFl5aW0JZmAsORP3x0eLgrStTAY4FuE3ZPOWe3SVr9bwoA3aTKHni1npz9xIm3QsTO1KqF5XwsldVdjSWELl+38IufVlE6vv9o4vmz3zxrNgUBQ+nQGG+3DZ+FN98KpVIsbhcdkGy92C0sL8iuHRLjEhk44IMdruJIz4c/8Jn32AVc2+O+82YzGf5ZYv4T6V4OB18tU4Q4X4R504tndQGaigaZ6RnKU1q6N+Idt8B0tgImelIECmvqYQFPUd1hcS3q9GH0zWgfboWGIIF5BDHxGz/xj6MMTZrT/Prc+0xD43Cs4/DBRnj1g1KNMYD0kG1tbX3ngj3fagd9A5aRWmL0qca0DCIg4Ja4d4OZzvzS/SjK8AsDFBqkAwFQC4h7YaLG8B43IBpkGNZN4wOHL17sL1M2hU+nAJscJvKnHHaFRO6EAgXdyEc8MMjjuB3o0luhafK15d1KEDInhSpBdhE+n/n2n//67JDfvV96dP/Fa8EJJNicy1MeTnCeOqVQtmIoFUtzMRVb2X9xOFHiu9lCngArzqrWBMBgd/fduf3duBkHmb9Cnd7a2fnkn55qTYksh9byIgQcxfA7/CYDYVsU00cZf7BGxUsfWLrTG/YCJIMaK8wS0RtoP83Q09Gb4i0CCGlgXjQx6beoO4AZ6bRarzfcm0l+75+QqPshJx3Bwh0dLTShRGEcAaOXWha11DeDGCEZbRv91sU2i/Hs1RatlxpJLYrAMZuRvlBteqvn5vLSkQA/BYkS1t1y6fy0mS1jSALsJapSYUBO0RS1e3hYWrhGwuZQS1A5OAd0PI3k1AlAFPAsl8s5WFzITkF6CYxJyedDwQiLd9mVTRJPdHXZHUs//+tvfv7HZ7ulhYWJ1ZySQiC5DOb5Ma39lALsY6BNIieAnQxjZ+JlqcIn85X9AZ1rcHAooDcY/O1o5/LtOMrEcTdPRUce/g7bIfu7vEQCYcKEFxLe/k/6Yf/FFUCSR+tkOshHqLEHN+aOVtJXDND5hgKGNCwYaTEI4+rEH8Y7Orx6b1GLhfUWyfWOIl+L+sP9xXDmfb+bB+VuYo6ipnHAEUSREdw78U8Gr+sPxNzk0k8/8wGxfVTS0TE6CgFeK6jwSW+FWb+5vcssAjGK7gejTOheMNPVbWYq9zpJMeEiwTil6YRe1t1FayeCvIgLLMvnYamkulzyOPCE0p7qTqmEiEMhOXn+xKnzTmUz5znINSFOm4LqPClX4iy0OqGLe+97u7MkCc63refGH//47P7LR893x0DNjsUwwWzj+DyTH4vZbBAAgLSihaxPoaPducqL/VKwTK2WHkVuDcrDxTA8JRLXRpei0TkG59B8UPvwLq5yGUFWE0URqI4YHhoF+4JzuUjDSChjoFE/zUOf+mj+8QcupNv6QRvdnZt75+k5lnPXg4u3pGBJeQPhLYN3vGPoIhG6U9ueWw/P+vk8iif0SJiJRoEoQXFCdUst4b9973v/HtGmxz5cq3/zR8Fwe9voUFv7qBo46BfVEp9oNrjf2NUlktB20Gp0Gb25dK8PhT2N5cLkcpBJG2hcZA2gjmSAsbYPFWB04W+JvLxfKe3v7y97IP2wp+xKlYNTSE6cOC8/pYzhIDs3PVClzpNvfas8IcRxQcDtYHX7ursIQhKwcZ5LhQL0i4nSBLUaj4w1sjSexYP1ekibERytDGB3LWLv9mmUOJ3zPD8sB8d4T+TwEboYKLa1zhlD37layEO9mdSjbE/PlR2MvKW2QLz4ZoNXj13BArPe3qfT6UUYOcErbmirCQhJegx9oekegyFcvJJMnr7w0e0P1NzkCJoYhRGz6A2I7yTVMGsCkJ+G6lFtYJBk/X4zuYj01POIcVD6f0D/eXE+873pp0+23Wgvit385g2svQPEUseo97Lm8hc1OnHdrH3jQ1ICZg2C+HuCN3E3U63e/8uNUHDpPfdu1IJmGg90JQKETU2YDcgYS1OoWxDWnj86pAr7S/v7FRbmRzySy8YUklZuDFEH5Jj16el6rdpQnjxxMoHjAsfZfMPDw1+2ERKdzivil3bXJnaXqb5Pe1ZX3yTQqANJCJ1H9Wie1gYvNeByKs/W4g4wY+coh726tnCp7LDjldJEuNje3t7W1m5GOu8w0Vqc5YQtdI4yaD+EjhuvWhcDdEa/6J0vjo5evPK9uV8+xfAQausRRRZym3w9mEGx0dFRPeQfpsxIaGYmiibo9Jx20Tq+uAg7S2aYJ+OmUHBMO1e4iXkHSYIwGQIJ99EM9F0Y7epxq+5f88h6sueNd7dRw+gZf+ZmsBoiwGWWtLdbBqFAF/UmZmR9XS/REWEReHpyDsGxaIiplPIz9yaj92aSCZKQtCItyLuhtGG5DifZ0sTa2sv7FJ8vwAnaHVShUBUg74Bh4kxBssHRwAGjM/VqBBwmYEjdds43rFQMDxMywjsrGuJrD14+P1zzxCfyEY8bmiBmxu0oPKuSB2WpMaezb2L3xeF+VpmqUbSjcqnCUBFHIlKhULJN3wYZpUGrvTZwI4ri3Eg9MqdN39S2WTTg4wV0ZHG2dfovXjS0f+Lh1n8yyC2TFrIJA8sEx0JIq5T0RVCYOz0MuPIsaRoJdros49LAYvjNi/r+d41fCWX6emCNcXokHHa5OGQR0VIhYhRUhBEGvNTU/8kdQ7//5gceMG3t9Xpm5rvfXEIDMglmtkoBz1vhM+tYcXTICwON9PcYgiG/GQuB7dx5mglFa9O1zoRCDUcvkfk6fECPSFzWTe+WJiprhxW071K1tlzi1yqr5UdrdqWkef7k+dxac0qgcYfHHczXV/Iq2Bnr9g1/eRhEkg0uxmcjfNqZhdKjtd2DT/NLBWa1THECR3JfDzEHM/V8hGbH4sLE6qfKh7uqbB4gjoAdgEYiLCt4QPRL2tu6Rs1n3tDHR2Y+zOMkjrAjAkuTbeDIKsisrd/7+euggGZn2z/f/7NkZj5tU7gQLus+DVug2j5TW5tEEv7n73oRLAl56fKcGUEY5pZ1cPEKXcxqXEPDFjHZhyDpmckLaaR9Ee7HSwcz+Q+/ZdAKjNNo/fwH337xHR/86unOmV99Q5upv2d5+ycPfvWNezfqD5aQwS9e1qiL/UXAcvZ6h15v6DchI/xXDb0ms7YviYW1oZW54Ie1NqBVLXsPopOrUo2M8JkjA+XV8lqF5sw0OFCFKkULnt0XFbukAfNnc3e3FHF0qxJ0hAoFa9zUKYUKHrtTAcRKBueqWscuLBxUX754HmdXVw8mKqU4lyCynpUZD/gs0zAj2NybPvXp/QmPWclOVw4cdmrVw2V5LUebkXaJTNbW1fYW9znWMXZjGRXDCX8G8ycW9RrpeReh138evhfL7Oc7OiSjn/wtOv/JXv3geFubTgzlUX6gEOpp6+iY/9nv/rSe2eGxdH0u7NeOJANW15vvfNRxWSrVdBBEGjObYUWsEykuulyDi6LBhGkpmOvAXIcss+/obd/aeufpzmRt+0Jt+4fb0c/eu/GbZw9uF/74IxtozkDROwpO3uzn4SGMtrebPuQPw5LkaJsE3hWGjaTRO+dIC7A+SF3V5LARDiFQ5YhHgK08SqXWmfORWjSOc57SswcVySvonZ7V6i6V6ob9RvDHmXdGzp8aVlwdHtbZnDao82Gg5KrcxECJuv/ij88jdG6hUKlSnD7hR6kaQzGhIOPjYPfma5++tmB3wCDhWYfd8ykB5KwgvIXr+t+yQjdxpk97zYHwl6K4GAiwSbrlcmmkMDNnZ4eGro+Pv0PyoTbJ0Lv6++fnTcpAOwH03T82xnLvBZH1+flP/uxn63AJfuaISdaoTkGFcHdC7+8cvKwZ9L4BqCMpoqUZdJ5c1C+6FiEZwTqDVgnSC9ETSArJe6fr2jSGapMr9W/86PbMyoXP/PyPyzPB6HepWy6ozZZ733HxHZ+XqeEpGZJEvwkiWVmbTDZq8t88vffRmxCzQ3AtPWtpA44lJ4UBlgW2XtldW1W51CRDu/OebBy2s9dKEtjwVEY8E8cDlJ2Oe/L1aPCIsTuHz57VtFadZGo4YAnj1DVq9aC6++yPxzkWogDeo/RyGOJPRmuV7RqeRSK0vdsdH4vgPBOjWUcKuCmnc9nd5i41TGB1V3f3Gbeb57K4GxXExXBPRLcoBQf2hFQKdLzj87NW62jveosUzoJwHB2UeiVd7YT/Zmt/26a2/n7+HZ/8/TqGkIaj2jtrUTT9MPlmVac2OKb54uXBt2mRFnFFkh/9kdZ7fZ4gW3tQYtCEmXrojiGo0I7+ns4xBCgwFqyvLM98ZnJ64P6Xbm8v9zC/+pLbAE/dKhuSDI3OX781CD+Zfzuphx0AmaxDIgPerz13+sbyLakGbAQpMH8LMFYq4ganBI9TkQh3C7LTLgKv5CO7SzxNIxJY8YRthtWNiWtNJjN3VC7cjx69jfjy8NVTp04qFcaraim0Dql9oMxHLq0dHj57UXFEIpBOp2iMxjkhv13fXxbAR+C7hrsdbsr+Fga6ht1uNtsRuwtWk31dMrV1sL3rDAJqAwdlvYvDXO6hwz1ZMPVsUk2LIX7+HVbiC1sZ7ObbAYDxIbAxoCjbwXeEKbmglcx+fvYd858s+pGwfydYZ476ejCMG+Swj95JDF42vrmPFJGiiKDLv7jU239R79UtioifA1+NhOgJoJKcySwPeNtFkrwyktmrbX/go8Fv3l6KLn+m8KXfXMMAQqhg8K/6h7zqDj34clkLgKSWteagpO2N6TffXOKsxnErbO9CkVqM3at5FocQlI3EE7eMUBCy7sNnjw5fVIWsLiF51Wh6NiPl6sZEjnE4qMNnf3wRmuvyXb16/pR8WHEWlm7BF/YRdISO8+X93cpuqbEQBwuUcQt+4FS5SuHZfUc6hQZR5VkFl+p2oLl4LgumYqyzzya9ZevqVstIjdHYfrGtG+/EyWiBsy16DSI2pvoDaUKuQlwOltzQ9U8m8/duZiSz1tmh8euzs0ap7Q1dOpd6FDWDD3x9qH9dDBf79cVMnkkHtTTXMpvc126a/zD4+Q+eEUkdZ0I6733zu33XL86qdS5/aA5wQrEr4dHZ9rC599rP78+TF4tF2NXHtJ3RydA3v7v04N5yqK/zc28Ie4c6AFDv/Bt7r4Or8gasXWEFLIGhtn4cfTdiGvkoN06sMjMVFpJTqc69StGwi5UVFg4ULiPsgfmQgUcvHxV4urUf8go2PyGA31iAEAnSPkjaX4DVUlRAo5cOD8MPmkEQqG9iPZAhx6tr0YmC59FETCWgjjD0Ss/I8pe+9CsP30TztOKsDNin0MegjKO1gnbzo+Y/uN77Fp8PmJ7k7FVZ13vdwTFujBJv6WAG9yRcLvSeXTMI4nvoeodxNAnKcvvNYHQOvcE6NDQkG9TrYOUA+j/89tDn52Fd0Y+L/qN8OpnfMrcyuQw2EtG5Ll68OEr06wOwZDtz71c9kvlZr8vln97FdenpvR9/PNmbuVPQfvf+A0N/u97vN/nFUXfPyszkrx786naSNGhHL84CnC1Aw798+q6hW4F+0dqK/Dvglzqgn46C63flqTaLvPjSl35eQOG1cwMRD97aaqUrZYBVQS1UBA91QLFsIkHgEk+u6Yw5YrFIM6ec8tFrL148PyxQbt/Zq2dPXfVJoY9qpGeVNB+BTPigVsmXlydersVUKRqNqcgcxy/vl770SMgiY7GzPrPNlsgK7FpcNazSuJIX+MQtsApApMGEVgODNntYfTr5PsHvvaUnpYPnliavKS/PQi5+HdxLczqY/zjf+mbe1yeZlcnA+HSRv9tRX4XqHB/vhwQP66HFTG1Fy/SYECTMXcFG3tfz1Xdf7LiuJkkg5adDhe8uGz7y9k/2Y8GZnz+4O/fwfY8//u3pj9w8d+6jh5+5F36X2A8CP9yefmMe/kbD7QJjMJ1pb4f7k8Gf3n5leuv9KyPhjrZZgNIKgAI7GoYCnfen3zgXYq/d/9KPvplH1ZqziMcOO2OAZ6Ri52iKXpugORp3sxyp03N+yUHEeUqZW405mwMNpXJ17fXLFy+flyY+deLyWZ8P0JT+b80+FWdzjlqpxkSWJsqHC554DOKO1H85uPKYtuo43rIHtn3v1R6PFlraQqk9KD0oPWxpaQu2dKWFVQ4VKCADKS1dqQMm4xBkrJ3cx5xDZd4yF6bonFO2uSkzHlOn8wbirfFM1KiJxsQvviwLCX8A335/v+/3cz2KIls9EB144koeHXqSenvuTTsZhYUPD+VRyKk6TN95n1gbh/UgX+q6/YYMKgj/bjqLHhTTDTJ3qtQ1VdU484BYAYdssC1n+UwFW2/cF6ZW53DumzBFymAKbk2FX98YZrZ1AU0EfhsWFzOFtgGZKgIWOwLlVGLz4oOEMHOQARMEHwdG8M2ZDq9w+Ri6f8/KzOu13qLk9NX1YNWNo4HioUZuHxFiKTNDbO+0pKrTObfKVo0VwGAvA24kzNkYceg9iyN4vI0E7drGYjJ3QlXha+IAXtBRlxh6orGxoVXFJNM0lVIKDIZKhVwtQIOxmFrDQIAsESFysJkqSfISkN/Sdu25u7xxoPye2CsPvfLRR2+vxbJvuSU9/3bgC/6Px4i42TfmQQV5cnsyZh+I2ulplbtUCBfH1QPFsbVzMVWQl52fLw+AlrKz+IlYeWoq+3iYZwxwUlJyram0ndsHKBOwoIjBwPPko3RlyKTVEhJI2RiUZW3wDAoruNi0OPkU9eDHo0cnIjkwVaTM8fDGprLCwcrIcOUAD4lwQhxeh0THHMZ0bJMuHZkTcyq6IkdePx2Kj7fo5YZHuo/npCxTdZX8YLjW1zS52vBcXe/8TZ1qiTGvo8PWltNWn8spquvUm8WzDSOIray+DaTP6oLZC0e8eyMbjvOeeMY2YworlAAKDVim3mRpRzYuziUaeyCvx2dSb8gVwV1IcdMVdrWGL7HLNM8y6PKknZ7rBvVTSdKkQroA+GT7PcmexN33fr+0tPQDHPmBHeTb83fecD35evqqnJvNh+SBJhvIX3V/rFRth21eA3oRzHeVXV28tDZkAMOpzxdUV7LLtaLeV+j5O5gclbcF9e8kA0VCBtojR0lipDAFLLYJMxhtFlxPaXer+B7x4yRqWUWOsB5syaoJY7IzJbPW+cCQftkW1qUeGLYNHjtmGbP9zyezmDrO338bOzqQDPOszx13UbE9euKY6dP1SxdP6zBMpWp6rkFze06ZK5WCDw/jnfMeTDw33zBRNG1MNAxNIjDESdq993csdhrlqHEmUV2WAzXLiluKDK/u4+DD4U/HL3raMtKpbUyLMCeFBE/XbTYty7SwGgg2JmSGiXlm/u0pAgqAgEoYSKmU/XmiXDeF6dYkeu0MeLQs0ioI+hRQPHY5B4K99z70yt1Ld9/53Uff3StN35kPo51s8e+bC6rRPPmDec5t0il6t5qXXSiia2QSGWxAQYO6Zn9sJSoJGuxRSJAgj8ZLemKHFDtYQgZu9NSmZN2+Y/vGAMZXmrKTwYSVQm6Q8OMKj4ogcL2/iAvSDglxLHh8Kj64Qlv3Zu4N9PfMEhaWSxWO1A9uLpwes8J6SmbplEqY0KsGumBK1rKnSOQSnDYS9V3Dlzf+en0d80oQLtaQ4PlDoa0tBtIl1IsxlIsd7dfzeFXqjsYTaxZGW5s25PBwvB3Qyn1iDimjuqy6TDbdgdU2zPhMx2ym1189h8Wrs3L+J6EzUnLaMissStZlv1gSc0ZlmHgexgE5NQ54mCyFgU0vzlMwWWDDBdSJiCha8NuREgZN+c4bdty6Kwh7emLP0sNL976ydOedNWk3pMMKekNlnsQzuYrlgc1n/4BB5SttihabRSWCUvnDdpQObuA9hgeeUD/Rg6JJ+2weo3CnFJKjyYAmFMLdJr9ZEbFJm5tpT9Iy0hnwCRVy2VMMlRzVUVKBUzRIMG8RnpUjFDocqAqMA765ht4qXFEobp04H2aQTeHBtsH2YT+noL4e4DpLy1JaELRSyvX7O5KSuIX9qckSOjY8vHl5Y8OxirlZKudzL9d5fOQnq9tImX1FKKrSJxvEMkImQ6MJnhfpYmUQjlq084KD39IiZB8EgpSB9DZ5VPjo2YvDEU7LYzNfv68CRaEtA7j7dBjvKfXanIiPS1fbE0MdQb1fJGBKpVTG1BQN5GaBO7uSkcJmg+8NJFK2gKVlxElrjTxR2i20NE3AnhdNDNghFbx06FA0VknOhTLvAEsdFlBjWLYmD3KEu3AUWCO+iFHJz7ZDWkeD8YKxpZrEI1841QPOnl1pTAEEScqb3DumLD6GzaeCUw/1bHZVU28Hb0q+t5YJC5tLOvXkk5AwfaRDIvEjFfX1BU1Gg2/Bw1m9q7dRZi20YvMNSY9FGukCKEqyhYRdXVbwl6THGcwQxzTsaZFgco6OE65srx9cbo9EIsc2wyYfzlKqipwN3Un1FnB4bfW+Pj2OyYj+CfFNdNTv5CdbJ2TsgtxaX7izSIEsSsL6CpqLNDpvRjkE7rjwmJ9T2/B868rXzhBgDJBUs6hZMPhTMtJNGI4geXsGjEZUZVHaFEwyuL/gzIFSDObkQiYjn0rOBxaOAfYwqOcTUTUf8kKP5hWXHjqaGEjWfL9UGuu5c3+lehftBkqNoQPly+R8rqgcEKRGjpaWZoNIBPbREolEocgDt5maN7D2iTpvMslLpVEoWkhvyd3X7mDB5+WjM0NMKS1Ohv0DaJUsFo4zpBnkra1tFoIxei5pHF6oNVWcOS4Wd64aeZLWZGur4aadj/P6n58RL9iWBwEosWz1BbcJmSELM2OKCb5un9c5ivoAPU4pB5fhaQ9ZoJ7t7RxdiG2T8ZzACJLJOxlEPYH5ZMRurqwXbhaDc783GQ1KOhx+n8qEydnQ4p5OdnUWtwktALa6wHek28G5MB1oGrpyNMyAlbs5hytSA5XMwVkRs1mtyQsWG3g+lZAAW0Pq9oCHmaTdDiJQpVQq9IgwXyoF0waLVLMWDRr511wD/ae4x5noGYjduRRLDLyyBOGC28nZ6v2Qw+HZNeUU2Lh0sFBrwEkOwVuoLVhvYKOXQ25uf80Hrxid6ut20ATg1BfQq9w7tAKSVIBsG6hA5rndtU3Eb0Mzbq40TnvySSAdWeyJR0408HUem4XAqj4OgsaBTEuA778xM7+war7JCFgcjjsrUkAS2kgVOquwLIeVrEN1gMQUmTsJHfVYO3x/cDCyGdlG9wSOQ/y4KchDafBz2LP6vURuirUgt6qhWEPvMRiK9+glYpXfgxFEeLzI6Nd70AXBlFgPArItYiX0dWf7qvRYoP/EI4u6LOA+OEfPXfn6xPMNhz1u9GHwDAQkEom1wuaZ3IeW2BPOFoEU2tNFS4/fTqZmAXFNTof/M+Kk7+9MBoMGVJStLi0vyYZKLh2KDcS+/+7egVjJtddr7NvHHAY6WL/g3qXr/oHwgUhBV1x3a6V7B6jJsIEmaqKH3l9paky7lgzFgnheUxGRZrEJSRlM8GjY7teSsrLSXenwZ7rSBYh025+QEdeS2KN7TjThLEKLFx03Y8f9uMbiR1cX5/KkzFzsY0XtAViitv8JU4SZJK2UEde6qE2z7jh9H49blU5jDC7DmgX2j2OfHoMubY/8Fg7psAaMwChlbVmEYaTDWigUsjPfaZKoBp5pGfcaPDK3FPHpcbc+gOFsS9i/+HoltBvHFqqvqNf3Bfx6TB8oXnnzriDcjbQAyOVPvP/+ZGu3Kq/Yni1T5BIEcLSE3uBMNBkDowiFBm1BS6duu6GB86FJQbaekpIOPTQAVtIYH14bgO66hxdbkgfvHuhZe0h9KHbNLTtkQKfvyrbL+Nnl7krQdulyn0YERvFUSNVCLoZBAXGfd0h997krX9jT5HaptHkHIguYVQI6Avb5KWl1ha/PcgOk0KCeYGhLZU1tkV1T0ji5One3WD0xoUCY2rAek8n3Wt0AIPEgL9qh4BYgXLMXr4DTXpYDxJOQNBUnM3SurScxI9nSe19dkSQ/rmwDGFoG6MbUvrxcNjjYvrkwTPjuahUXe/vyXcqq/j5Z/ZmUFNmYhIcZjna8bkzS4wxQ/HCbu0qMc0Ju1J98Aa4NW4VQWVYfdgwTHA4H1w+d+PqDZxalrpChyWBc+8LgdA4lJcCYqwQAmKozqMpazGAmEMzgVMCcbYYNCDRSMIHuACZ2Kg5tsnRvDZBDBgw4yxJKGq8nKBlojTZ+dKh0YElTnlaqqSyhVMLmCcEH8NjS+aAbUSiK8u1QuNstUFAgBcGTlOYdfeDrIL8lJoA87txcnkKnFeog10adipPoBvm1zTe4yPCk1p7yVUq1UinYp4DlquJNzJvlU5bxBZnMh4n1KsTEcbY4Y0Zx0Rj3DFdXUQYmGZBBUpgw2S3DxJRrS6fa8t3X6R3DgLRcBuA9uDyYea52sK36YMHgoOk3bLr7KKYvwshtiL444NNpU1j6+Xl1AJV0rBqCJr2+E7XUV2hRBEi6TJVx/c/zOJIJiFO5TNhM4O7icLBWo/PzT7pNIYlBEoj2GlCso8fA1ygwjRZIPFijchGCyybpgpONpQAdoUXgFoN+gf0KPFKk+BSp5qE74bUUQUlptgjCxfaGhGEpEe1J5MUa8+xLGuyebEUJMi5RQ1hRUAkXKIqKKJXmYndaqlRQCbkmGU9evD/Pzku83dgapCOQHFk9O0kwtAKGFmh5spTJ9iDN4Ji5vrl5auPqpUvrv6nYgF8pNKvMvF/cH1DHVR5MBtnqYgldZkSTvGjvSt30BUdhSgr0JuDMn45sCnQmN9tsgnpqtVKOx8/BapWsrLZl6M/2TfOVfmD4RrwkrW1YMnJ0DsdHmS7TAhZAEcYUI9fc1N8flftXnUaPHhtdh/hiPZjkbFKpLuRY/+OvY7kpcIgrPlURQvCYE4S+CnN+MtN9ZIGD42ZMZuXK9GYVPbdQxoXPlFoN15cQ7De5HKznKORtac3NUE0asKLQuunbsTQaaS4RGwALLg+Ci6UafjZvoHFJbowmDImBXSK7PshRVKIXD09ONPG2o/AKBd+Oiir5ZkXaFIWRSrsh/brs/fb96jx1rDfmLDYEr6Wo/PvO9lUyGMzUKeoUGcJYIWYW/Jxrm5tt539+4epnL76O6xiapkrGRLHMHHDGINcCKatMBEXYVq8uMWTAonVFnVU7qa6cnIy23zb++vnnsAXXMivcW1tbWtzPiMBAt0mBdx8E2B8Z7VuZCSlDRWORikj40sXuJBLUZ9xx/PhYMcLWajNIVnPN55/LOBLnUMDqKBo5omTWsy/7LQzO6+cvXf75l8uksvoKYb2DcxsHD8ORxwv0RXd1N7T4CITwEZyIFXRuVW5K/h13gGMKygnECUnJAu3bMzc0RAdzMhQT+DeoJBx86FAy6SK8qCJhV0uAIpaXi/i7dsF1agTbQxLSwrKifZgoFf/9je75Ip6mRBQtFdFhLonc2RQp7AypYAiiMNFkzSFwmz/wdSK2H2KiptrVk3WLIqZOCivvlitjJ5MKV8w2D3B547Tj1E+//Pzbv97+tf5sfRWoK8UAYSTYmUyhFSEKC3CLfKUm1S0uegoTtpHhBEW+XAhf/umqCpGToROe5Jz0+wgALEJa87WurLK2QVJt32zj87N6z+xDPU2mny5N7ts32ZvdJ3lqrArTxVnKDBKx8vmVr+/k+9RNsoIDe586RWeQQtjqcOSnP67ez/nj543hI0fC46qDQuLoI75hjpUo8M49f2JmSKUMRUw43tVFImVa3QwBkI5TLpikVHCeMXMy4fc19/am0eCBCQ9QCQYYje4WoRrS3OJkcm5ADRIFpSQVXs3Cj9lRdRSy7oeiu9C6V0dVFHbLG90GSXFnSfbnby+JtsPKIhED/KP/x4wguWWHMHYe337lkWIjX8Mldks6T57lMyjk7aXXBdCd7HKRoT23NoeHw46ffvrjyy+9vLWVnoBZw60KYMO47MabcivYFV1nCtzuEG9GkWbCOKbbqC54Ni8PD9//x8/nvRcYrq1myvmXDi/6VH+zmM1PNmdlAI9i6gyMNh3tDxgmVh5ZQddPFZ0CYwPjtr6nvMcPgJZusuQ+9PWVzz//ZM2s4nIKjrUPj5xXsAqOd4yf/vmncVPFsT9+evGlz9Y/u0SUiRvOBXEOH+p5+PlXW49yIb8Dwyqzvl6YiRJSaX5hCrgjwJy7LZkC78SyQspDs829CbKNEgYVSooOwB6eJE22BEH2M6rLt7OvqZRyOaB1CLSrg7B0yop6R+VAeji7u8EVVxJdufJEuUAroECwDoYSpIgh9gpvslEnY3JU/tA5ux3V6WwIdmTxwojPAlOHnFMGjgW4t0EqUjI3AduEv7z6x89ffooODT00/7SVyX+aGK5FCx4/Y9MJhXutpHhoYRJVWHCc4JwBiW7w2OWNy6df+ONk3UWDlibF+w5fOnly3zjYFqBdQReqHnvg6Gi0YUKP3bR3tMFw9S9Px8jsNJK5e+zg8YNAOasI+Sdvgxnw6yv72cyu5fqcA44+nEDw03/89frVMcBlXzoujfx56cUfu9c9I89HrRzUyvE2vNrdkJyWcWxEKDezrD4T6cVTydvRXDjYAFBBTEMCqNsqMUYNGhrDLqkKzmlUHj0iuXcPL2okGVfHJat1q5OnFeWIAFqPzosZDkG4C9LDKsxTW6U3c69Tv/F80+hNwCE+cSUhYihK0mDsiMSPPgl6mlSHcIF5ksfkjV9E1RQqicWpXTw5cviCj+lKv52RErLRYK0AgKls34z46y6evHTyxz8QUc8D/U1P5zKR2t0EYr3JeiYX9Ldc0EFCOL/0nJcAHaweytm+fOyXce/5Sy91P9Zd5PaeHnecHnnxrrMXJLRmOHfAWuzunO5vau3FCoRMtHFg1UP37zPMPnVgd+3eM3vNkZAON6y8vfb25598ssbPAN6YdMDrCHNwCudnh2NkrKLg+C8btV/+dP6Pzy69uL7eMNfS+nzUG17s7rmrt/coGmKQ4bBzCQxVbtGgP0ngQoWMSDW8gOjtBMJF9TjdLShtRLlso9PAw5x2Mx8cVyTEF4ZNbHLfRUle0l5OqaTz83h5aSA2lYgQR5XZ7K0ayba/93z32dbGxv4Hvrg3CJMDguyCXHXJddcCdSSQ3VQKuqg6LznAk6dm5JKEVt/IyMWzRXi1i0ZhsARwwzBGXrq/vf02k7fuwsiLIy/9eARRF2Nms9BtgUmUmwIPw6ZVCknxOGNBUfTWBCeTlEPLGqweLOu6PLzw09X1yZkTL3UeGQsv1J66uu/s2WlhVkWOC8zgFj/Gm29dkWdWSFu6W8dxZKGz74J3zLH7wIHHT+Fu1Z6VPU28mpUv3l7LHIQUFOlA7YgPEUe+/PLIqZELTzmOOE4d3K13/PLl1RdeePFk96szKz2m8OmRyfmk85HPE9sOqPrO6QcwJgjbsGjSXOk5WVLm6ImhJ0AswhChxYyhKlWu24xDRB7iCmxCTpAsHO9q0OPrGNlnWF3kyekIyOqaSoBATJHIW2TGApKLr9W98Sp0yANNNTVDPwwNBDQUCHtr6KWGHVIqZBoUIrBBaBCDQUYvbmx0CzOt6Pji4ftGPPRxv22T8xR9YazzbN39pi5brcc75vWef+2bET0Pk3PZkJYQduW60qlxfLeSBCdqSsnGT01POzJh2LRRs0A32gzfv/56WN/RfbjjqdqDt5kcv4wcPnzBcaaNBj5Is1irlwfmZ+TbH1mLBydCJqzoovd4gfVMwe4xQu1sPHEoYDffe+9DmuoKWGepmXsx4Chtfy30dXYW9UVMnPsPEl2mhdrObz67+kL3++fO9XhbWj0S/dzza48M9c5i6RU+8axfCS6nGyp6WeTtdxuIe5POnhMnnAaxXoZDJRG5XgXrHqGfpDMlfAaJTZf4JUeMq4sdHftaYDj5IbJVCUv8dthVIdY/fiM23z/dMDNb9/zanoFD4NeIBfgQ0KEgdLsaypovoCjo/Oid9iQfV6ivfP35moETlviOXLwI8ayzf/zy8/rhF0b0Ha+dXX+B4/MsrnvHx08efuFwFYa6mYUpLJLFYtXZcg96/RbtzvyIQEmc77vvvgYBqLVtObCu2yLhjYWRTr345TdO1poOHBg+ferUqcVTpzLBd5TF8jgsRNOk8/15Lsc97sE5Ju7lVWNnbYG1oOvGvXutRNOVof7iB2/k3blUTvu4Pz0rLjx4WirY3NxwPOV19B1nVdgKgJ6qr7p04aXPXjg56Rz68M13Z17tWPUZhs4NHZ0zDDUiVs5uK5WaGei/9xF5Fs2VYm2KSopjcz03cVdRPYcjVAJvAJoUguCrckLuJpHYAMoJn8M77mlpMRjqFpMdaDYkZW6+9tpbb7ih0HqcV5VQ14qb9kw07AFLOVysfPXDGsGOKahi2o5mBj1YE9sVPPfVzLv2w70rV7769dtnTmAc32ljx+nPPjv508+/nB9pOT/i6Tt8+KoH7r/Xr1568eSRlsU+Pb+y3JqbWaiw+H452XDh7HRSK0TEGPepoqqi2cf6sHqICy1vHgOmI/LpmOdG7L7u2X1h08HhA7X3b5x/4QXIzYHnmNCjumTDxZfP8Y10vx/zyJGFoM9hrbitoOC2A2eEC7L+PcVPP/yAsfGJh/qHNOmDOaTd02HA6477h31jfacsuoKK+tu6/uPg3KPSLOM4TkWXBZggvXjfRJsa4S3gjduCLkoElGOxQpRCvHBxuYYycxrC3Oygw2sML5FxTMtcYVNaqVNz1rylTizLzMLsnsc81ex2+hk7Ox796/XxfZ7n9/v+vt+PbKZM8NNvEyKGRDjv8VkHziptdazGmrpKTZ+LDDdShYwcr+7sLGViocDEl+OS2ZlMHNjwKOBgCd5L10en0dKwBIjuI2DDS3ssPQQSYAw7KFhxLE1jnbmOxXIGRd1061N3RofhyxxwhrKpanVT7SFqUtGzdwNnrCkTQE6k29IPpqeLHzf1L9RPB7a3tqa3treWN3d3A9uXhYOtVVyBU9km+vXna4PtgrcIglbd4GA7mopKNdfKpNTRKm4VLjH63tgTAsnIharLLZc/qpeC1HDgxGnG62yusaWN+8gNFauGrFV3YYZbcZqiUDY4Jkct+anFBejXExdGMKE9ULmQyFjKeY/KOvkgTqDTBpEL0yzVktcVimo57zvejZyryKHnwSLAclVuDJ/nYQ6GhmbwFJSoFNJpCxlnLCuTUPiyrNPwP1Xwxx9OBMFl+8CDYzUpmcxWFiIVsUormZjIsCwyq6Pb01la+n7sbSHGqvBktg7mrAlSaDIw8CGCXgOyKCLBWvAhkRhOYRA44ZMJEgmdDAZWoCU2CjUabEjUHQdpqWRJ3PNvH35NGp50jHsoEyA6fceAavZExE3E+2669ab9SSbTkM/q6tsOLM+uXV/eDGxv7+7ufTNp5Gqc3tEhqOClEl4xCseZQm9BZk7zLT/br1rwI0KnlHTPjfsyXm+7VCbmKrt2FtcWLlSpGkeNvGoeolA2Vd0bWVHc43ZXGPTNKC/W4cisfktQ3Ww5nZrffvFSu3sGA9EkEoGWXukpsfZ5WOJMKp4WTEqz65w2G1UeJgsjO81calN8Ys70xuTSUvm9rPtvOxiFYG82RBvyDRS9SFPjbSXIYtvdYbHF6OeFunqmiGkqx0lFOqZCpONK9fhGa70q5EgGCcPu8MwJGzusNa2twjr8gXiWLg4JEhPA8QCu0JR9mBhOGocPfp6USPgBDayRAJBKpoP//ih0unVKM8sM7KmbiHxy2NHD8ZR33sEZR+TMOCo++aXK+qQHjz4PIY0owGHVTXtmtwK9/eubuxtTW1tba2trs4Hd3bXlQGCh6z0z13xBxdUjPbSsgnclM3zQgbIMfOnEyIgoXsCqzgpNRDAy41ArA9/a1TXVNbC8ttDV1epk5/IIRjVDFRyaxe/J4hs+eyv1MP5u6gWx2NFmtKB6dNXSfO0tvSH0vuisiiwaTe061egzvUgXSekp6X9Kw50huEal7pFoapupKJPqeeIVj0+ltfpqc1Z6G/Uco7laYjGgZ3io2HnN7CRXyLIK8ir4bj7H7GMxqSJptURiwfL5IO5Ty7T1VhU9knK2HJekzsSxK30qMdPLjDgAUj8Bm0hI2dM9MRCDIt2YQQzjpPE5+x4G8AEsKYcuwYZA/ouMjZBqNEqzFwAfSWkPBFGgsQqjnDzJKJsYtbEYFmzyy6XPJifDHC7olpse21/pc3kCu5u7gd3t/oUFeEXXBnxb2/B+bm9f3/n7G3Mt1AXk1CyZDD2NNmeBVlnRY7jq1CNkrFOlOO0WpMa8JZbjqVUXPmpRtii7PhowDQgYBh4PN6pk2fbFgKpZUcE3IOS367XxDZVNQqOuTXwaQVdnfhZ87YZEEgkDmVAqlyEVus4nSOgp93z2p9OrCaLrdIkkfFvleGWTer4+kysuU+gaPBtzJVNdJqupTaBA0VQemS4Viwg0pF1SUJyPku0EiUvLUmTxBTgUBT202GmUEqSNbaz9CUXrXx167eOjvHCVQ8fAG2EyE+eqjAiOIhGhId5HpEHBEIPJI0qaLcF3hkIEmIihwdLSSDeS0lG7SMqQ6DQar3lMKZXS0wGocjIs9iTvQJKXJYd5feLzrmyKrfzAAYgiNPg8nvOVu9u725sBv394fDkw3aX0LK8FtmHbb0+tbY3XKwdOcanVbnhicHemZBTk9Rgsf+kJBLq0xfuLNDcjT8ZuHrk8oCszK5u4Yx91WU1yckhWCIU7RCXveZayYD0JzQr5BauwqLYE+JUN+tMFfP2vn//aEwlq7h2hRDYhPI6OjbPZ8BAS1RMMf1l0eIRNJ9IctVzf5LFD3ZVB1XIFXqBx9ZrGR0cvtYwONqPgfaIRacB2Q/hXW00NfLjzEnASqo5s4fMtpGoFnySTiXUExGKs9NR3nPrkqxePniSql+qoEoJYC/RYUeXZRHDDY8DyEgPmhyN3gh8TAS0lLRT0kBBiFPhuSHs5MSIiCU8A27c3O84OxNNBfBocuDBufjP2XrJYokjG3vboo/ezEk99cCCZQika9kyOT/dvb2/6NwMrS4G1Xb9/eQGuo+m1wPW/d2e3ZlWsmguqqYG4mIw9h+e+fRkgqMN6ghRGBp4vU58bE1N82vmlbzL74qXLNaypoaoJrRjlwAwTX1UVj6LQH7qzCgSDGnPTQIf2mLpJKMHlF8j4v7pX/5lJeRgUloOxDDxBzsWz5Jk4PoeuIKB8ulQqldvEaUYmt7ar/DD7U7VRpJeKjRqlssp89eerArfbYEgBQLCBRuIbLHipaUE04+b8SSOjYcVQn6FYxQkU0VvsgmakTOft6608dOqrT+aL4tVCHMQ1a1iQnNMA9Kwmm7jHu9gzBmD25ZEoFFKPrAIEKEw0LRhAUKCb3ENMj9ONmfdy/dl0AndMKI1HHrjroUfue/Nk2MkPEx9NxiYH4YBRGdL5/eMR+x+9f9JqtXpgOQOBre3NleWF4c2VQGDZvzbZNb329/XFbxzUTEeRrqXLRmFEg/Qb01ORl2E4I2jGk0UoQYKrLnOGYmT5CqtqIY5hE8pfv9BiZ7UyLfw8DoerHXVwL4pW80AvbpbaqFTzlMrWUM4+w1NcHPz88+YZ0tPwdj79RvTrCmj1w7ObhJm4w9gEhWVGIoJUTO1laa6EzlD29arZ1UaBRdJu1+jMZeJBZ/uquwD+9ZCOh0jpoWEoOJOp43ZDT95xIp9Pq8BkVMjCCqJTBWQ+Px+1CLTgFVUVQfinY/3u8iJ6CJZuZNnNUAEBRi4RQpQg9ITCGmYRmb3dnJj/nYIQarj3npsfgRndwXRIeABiqk54wYzD4e0Q+BXgCEGxsXCAUj5ks49GPPrKAWB5kouyTyUhD7Kyh6wDsLl7exe6Zpd6e31r1vnl5evba7NrA9bZhcUhbmaLNTuc1dY22nJyr9mOgTV1z/yKYBENi0PQ4wX8vOIbw143ehbkeIuC8frFa3bnoJMMV8yf4kydzsGiKoh5PXyypDpXLhptqeWWH77IFVF1I9KZmTyYMcAvs+8MQ8rG0gkKdmosJQQnF+n1NgiEO4Yac+F1bVP5urh4UbOELjCKyzSWdoG+oKdgbyQ6w4EKGUnhV8cZDIqWKW9uQUYGqYJWEYYMpsWAWeVENCbLYDjdrFS11TqZHSudahWVaY4DWGaCiNkaLnXWNdwPOdgjNFLw00dCw471Di/1RhAjj0CkEconWfA5cJCE7BfrWoFkChgP81g2IW6QQbbonJAIDDt5472Hm8rZ8Y9TgF/1GD0i59ixU1Rvq6Yux1RfX2++ZPpm0aSdXu7v6p9fW95emwpcn5q8PAZNTZJQh/U2NGipeymgGBhG7l3wKH+vgxC01jAQ/bXUfJu5rmFUTq8WvNXebhGLxEgsJ+3PZgaO60iTMNwwvUQVktQwgqNNq2zDYykMhPzrZ7/+mvdwJLTUbszRi9fkQAUl8yj8lHSEjXcjrKpWbVWXSYSlYalan6pNLiGgiN0pFTtEzkF07xngU5hoSSATMVkE5ZQOpVpNDl4e5DsxHKbKagZ7GCaLAwZJ1NKsM5dKnE19c+eP1QoUTjE5EcjUDI3Yy9JombcFB0dH8wpBysNrGyuHVzpLUx4G4APmXuibb76FdBtOlOT11rU2xhmVcB8lRHi9YpzdLFIwsp57LovCyHz7HcwvTux+VlHi/fff/TijjiW5P85b5ypV7Qws/n29//rypHW517ewPNy1sDXwjU7TQA2XDzIkRU3ltfIjGFBmIvPyCnpWm/nwAoJ7qabV2NLYdK/sIgvHaBkj6HNPu90Fg9e+ptMM+r8GzTXCIJpCzo/cV2jBk9MpDLlY6FOm0WRkUl7FqnvV3ZPx8Be3Z52WO7hlacePR8vuiQ7hJCNgkcdq2ho1qkURKIfSNpOGak9A9TPN+uaqFo3YACdOD3QJbj4/5DiYDzC8kj6ls3bJ5TLmQVbpXg1wTCbx4KFNLY5x/7M6oxdrWum2nLMd59XZUF2ifD45DYsHcZtZk13njSLJMDwyMTg6PhOX2d33/sqzN9xAigU/2H03nHsoMgyR4ACQq1HivGazRkTHe+u6SuvaRAoz7rGbHrk3SGi8747bpAeyX35gf+KpzuyinJqz0ytWn1Vl2lmbnJyd3VhSWX2VXQNTZ9umdsauAANZlwkFiYRpbrA2OqpSYGb2xfG8G2n8rPwzMhIBogUEYwujIiuXGy/Vai8qTrjDZBWSwasAYXqX8DkrjsJPE1ff9jQHgYAmEWu8gPNq1QRORXTkkZ4K9xl3RujqGY5ezrXZXj9DIgFFJxazD1KwAGVOMC2YlLNcMg0rBjqbToLqFWjzr4NlZocI9npkRk/P6upqyvFzIGbemFvvcdW6+nt904QbQmUIA6ETPL40WUVxGNALUMtndjvX3FfZmAQ+K3iKKCIPCUEAoRzHqsue7D3LwmZ3hAfldDAPU5Jcw6UNDZyDmFjM0UeevPXWO26/k5QGnIwgHIFgbzWb7V6jady/Yu3vZI1PtyTsv01aX3IXMepAYonrtpsTX3626GVTfaV/c3O6sqRE1dZgVild50919VtNH11qcjSMOcasQjs7AtJDfOkpraqrq5Z/I7SHsNPO3RIMwYk0zp8SLB1vOcgh80fV5T6tnNHcU2zokUyYf9Qx+ahTLCqEhg296YYCAsqjpSBMr0GnNLMLM6CEzvtpSGX82n0m/0xq9S9cxZnT+YisB1o50Pykg5euOluVNsdaF4GUpnDax8wSQrVUb3G2jrQqGXq4EwsKCuBizCs8dyQSk891+fvkVFff8saSOlZGhrOa4bJCOBeWc/UfCIENwviksqiyiBCPDcuIiaLBPD8NSpOauqKzvmGP0gNwjM4OoA5EsKnHbCJ81J3Qfr755n1P3gEa5T5icHAIBSLFccqpflVHjXU+AAu2Obm83L9mFaqWPWrx0aMA3ki66YFyYc74lmd+ZW5lft7lKskRQsq1jcUydY+ZlKxDDPvV7KsXMuXsCC5LGOEdKD2rHc2U0UIj4QMWdhINqr+UQgIujpt4kGmOoLqWhq2pPJQMeRXRe5orQ5kUoIeROFIwJKUcofHIFCRRKuKQWUMtWDQ/V0iPqZ4dGHjvM1jP07m5jOoTZ5ovClDD6TO0Crdz4r1L11pZ4lGT6RqRxhn02q/aGSIRwNucGq5YXBgDfhL3rxXgsrMUxmAOVtvUC/VshtzWt7JUiS/MCiNX42t9ikINlawXFdLy/vpjorEoPKmjE0eAwhGsLtGk9LTkiGxvdhFw8+rrl7pX5kvjXCUdfeGHP5af4D10A7ALH3zkuYduPUh6bD9lfzo2wTy15Bvv3/Vv907P79WVfv/msh8qotnAsE934uSp4f7ZZ29JEqpL6k05vV+tbMyX+EqFNXajo6uuttJVorlU9in+mnjiWhWbkZD8saMOIdR7rNomfJOOdCekTUgk0BBSiOD1ICODVYekVSon2wZdSzYigNnn5xcdrY6JhDTEAM7E5jhGMBxxWWEoMEOwIN+01Nh1BKo6Xbw49ffWzkgVt1lcJuD+OFLtaGj/uv2z/EID+BavXGt1okjD0BVzUJqUhYtzOgUM7ucCAdOrE1syjmRlFazmZRz/6w+LLDKaIcw8Vt9Rg5erPXM+W2pYxp0Z0TJ2Jt0+2V/D0FkMPV/MOHVJR5OZz+8HJzAxGD7EYDoWB7td44W7zjS8tDLswpVrS8/35TDYqTwiYAExpW8+9NBNB2k0uig7B0SU/v/r8+1AYMMPn831vZpy0x/Y9vvHVYw4l2c4MP344yxqU1NT+fPP/7DS3dGbo3a0cKm1TGFJY8lALfuwWFx98RqVgaefeK1M96dEe15Yo7NZGylHbrjhSB6nuDgrmpQCNE56HFUMBTMz6JjWtTw9cHWwVVOtqNaxJuj0wpRgEiJJwJ57GELVsQC+KvyTgMdXmWrDsbaBszu7s98s7ix+dKV6wlF2YeDy2PAs9a1fi1ORma8HnVdHLtpRhMEauzDGYmkkIt2gngAqttPunGAROOiMGza7eKSZbIA/qro86ZDLM55J51YOe+KjMRkQ1AlTcKmqRt9SyVK3BnuOERSOoyTHJ98MqhysJoAaQoJCSGlxXA2TpbJa6xonByZr8NDaezY6D8NhkN3dhzn16OPYm29MSQ/BT28ENrthj6/Pza1vbGx8u765GVif82/7N/0bgf7N/srJpb7+peFA/6kXHw/qfP/Y8wdemF/yz5es+Hyl6nKuuW7H1SFs1TbJqS2XbTjKY+SyKpwFYWlYuIRMdXbo3pAzIw+ixhiwTwJWmvNYMHY/QVhXX5sz6Z8KZ4MszkbErSN20eccePBYjCw3LCa1mFfMKfwTQdql+Ik6a921xanp67Nf/rg4MGSkaqfGL3ctzm6vsVE34Qza7BycGNFQcxFUomtT1+nsdkmCV2ThIFI7YO2UZrvAyUvJyPj8ozHLKjGYy6gNP5RZWlmvrmMwevtiQa46EppCUE3W6qgl4zWuhfpGC0M+opJg8RQOJ4sEPVVUcDo5LQUMA+Aqw3s1WmUj1+Xx+Ci8iPL5lc7D4e/PdX+CAUEz4t7YKGx2RIcfXsYArGkv4GhXNubm/bCin8z7V/yw73t767sWluFnnqXN/hczHyiZ734CV/7DJytfdft71WoqlWurHXI1GFsWS2y68jIBqFVHM8EwizDiGpSUw3jY7jDkPJIXCtiJczfAeh4/dy4YITNenrQ2qU0LOfEsMGKiiHiCwRBRjY+RCPmyE2vdSGpqWJgsBTXQpRLL1VaPb+c9pXJ27bLjvdGLLSbrztakZ3Zge0cq+PnKW6uGmWZ71YUqAYJD5ReajBoROI71FouBjLebq1pHHRox/3jkwzF4U9dbtGZiGDuJncBuer+jdFxM4OZjbkwBJiFD9b6VihdrTdqmBtN4jVjU2jUmKCSgBTJAPwfDMSU7KZN6pRIULxWBsGdmaJf6hsPJPHzffO/68FfnO89jkhP3PxZ270F647MPLq3ABQSLt74+Pzc319kXmJ/fPJ/j+Wrev7yyNt349/bGXPfw5vzG3Nnwu+4uPX/s1cef6K0FOktHfYecoCtralDnHGJVaUZbxAc46fHxXBtOBH/IIHZmyKG7IwGb9/AbX4CGEXkDDLKPnzt+Lgoimtwp/2SDam28CO+qV0uBWTeCj24vsiGIXvJ627I/ToQlBcP7aRE7vShB9OVOf73cMTk1dHmx7mLL39aFqZ33Li9uXf9mrG3oUgHajhhEDVR8PB0VjGjkch2ZD54kCZkg8drMRmWNF8cvPJii0vqmNVF4G493+ATbUQLP/uPvTlPmEQRPuIpnlaipr+dKReVaoVBb6RABfdAOrhHUUEFLuRMAMOmY6NRmiMhDISBq1uNFGl29S2WNJ5PPetbnvzr/RM4pzAMPRBGBuSLqW5qfX4HJ6iYcmxtz3wIweWVz5Vt/L0zKu5cCIMn1be3OdU71b/jqz5499szNrz7xxKsfHlt59tUn3i9d7yw/bGtSW32TmeayTPZRC5mokFN1nwLzVB9ORxR4VwtPJos8skcNI4f8z0gBOM094PMKcfVRs2tmh71Vw8NNbxH4BgGl4nP9AQOKcnWj1jXVNaCpY/+0GPCiujjmz5emxpvkXFXXjzvXZxcvX/6oy/Tj5a7G+tnl2X7VxIy+XSDRCeXxdALjCjj3xQlA9YrHEehpiGhQZwfYJGr44uFnl/pcC+PMiENydgLe2fLjUNtY65Xfx2qJDaYx05Cqjpqbm5svptZq2xp0UlG7Xo9YQCBEiw2rMSnngoGNQ0YkeLKMwGYwCGTFXmS5UQlTTnbp3HpRePzz8RiAqt78aNBjrE54Defnvl2fW1/3wznQCV831r/1B/pLckoqP9q+DsLH7rJnYbq/r6i86FjS/gONp9SvPK9OiFfnvNB7ttbRZJOX9i1XXrk0WnXi5JthJ3CHmUl4BpC402Lph8qNN8bk85+G9Xw6TxYZCknqIykpQPQEoDNVzfQOaFk6bS0quDqIutH2GX4BkAUqx9tUUOKVFAYbDH+RwyRtcT9dudDAlYtFGqtpaXttwQRjefPlbxb7P5rymXYW34OoUlWZTs5+DaXLL7UwpQiEFywWYOJAcea9andbUPLBL1Jq6+v7PBvTGgkuqeqKc2Ti3y+/tF+88uNvsKsco21WE5OR+zpPUcU1qtsU4mZ0z0sOQvieq3zfzbdHpcl4PDKcQTKEGa7RkcXMxrqGtpocIQNf1Lv+flzSYSzm5ofAMiOty+ns/PaTTz75oaP720++mg8AEf2T7nn/V/Ob/mmXqku1PL+ysRnY9K/tLJtUmcfKM8uTHM8eyoyX4OzecHW3taS2yfqRptVaWQvDn7h9DwHiN5UNuhwthRYSRohrYqS6qRHn3gDLJMTewC/yxfHj/5F09nFJ4HccJ2dbndp8CkONEl3UmSWKcggSbCuNqZ2SuAnqXqAoSIahIloqClRTUxRmKmbpJDmnlPkApviQOh/P1K4z9fTOsvPOhzavbNute+3rRv5z1716XT9+j9/v5/P+gDFiLzL4BIlGKh5rjb8BJYc2vjmEQFhIZAWh3ZSkovQ+FZwKPucCfPL+7WhVnmUo6GPM6bXBFaTK9ibV5EzTm8Hi7vJyjUb2Znpysq+ri8mX8ul4w3xgiMLmONLeHpCjSZ5wkCQX+nHMsPUEHHPOf5x+737ps28sbRhbfesm00/L629ne1vWN6X8QmmJrFsTXcJnsnByEp1vhVQnJ4c1NrJEu8/U2uSEW1/ZH/DiOpJxgT6O1jGhDx8iQzns6GJJTk+ZlQ0m5+nTz5tu30B88vvfHzv8K+eax9/e+/77Z9/ee/p57v3W199Efv9lEyz911/84+XTyZnS1qacyS9evn4z2frDDzPZfgyK3xk+wzkn52Fo4fV795tef00hdcdihKoChbRPxj93HvIjdNZeKHd7uwALFBlf4OuLJntfPAvgNHgnASsx9ezFvcBTcSyJpltbX28ar5ZJyooxYnVeYmJgUoaV9yGHNjomhdY5HX72WCAu2ccHZ2NQ6DCUuDkQK4iFZXGy1h/+tdTS/7Z8jlQO99Glod6RHQU5hFSEL9BDvTovBPKV7IGAAzSYZC8MyY9UVcFUpw101mSn1+RUpvhtmqHxvMEZWtkZWu6CHypB3VbR19ff3TKE4fFEYqYsqTEx8BqIIqF4G6bWJl1Ltv3ssFNwh1MYGWnzsPgGXMcweGZeKD8/PjbfD1oE+fXPSgeeIn6+5/yRw+c88msAt5Lb/Przpy+efN7z+tsn393+5umLF/94+frFi7Glysnp0rTmcbgr5a++mRYSjx448adTGFr6q2cPOfWvcmNfvH5y+4iXtTWTwRAKh0xDCiSByzvt62vhSTfYHXLA29ja2d+yD4JH/EVAduy39wn46lZqgJ2Dnz+twMPGP7+Y6l9WfKMan5gcQCBYvfzC75idWMHAMupbnT7aA+wRH6RYP6VjzZWPx5NIOK5Ywm54ObxUOtI1thSeMvPD6uRk/sgPHC3LGw9mTcaudjOEB0B7b6C22ELdPNiPFt1XVcEZHmfHUeKK6kuL/GVyGxm9TaBUDi1QN8xdZoF6YiEYFCODVS19dCwOt6D1dNt1jwRBNZx1jVq1EKheSL7lYFNhQw47R4uOTqss5tBtbIT+JD+/yvxSSUxzfVl8UX4P4udXgO51OOTSvSd3Lkfe/+LFs6dPvux59fntuJqab79ubn76urW5pn28tTonI7a+tPRNPjTCwwG8iBfS/P2y7+U/BD5gVsqzF/ebKL9xidBN6Q1Shl/RlI5HUFIdryCOFJXYeMN9MxUmYwAhLAxaLgh7h62u3gPvR82ODpJL9NAzljZ8iX/x/avRqtCJvEBtcHXr89dxGWIqA4vP7zuWaud7wMZnG6vTSY1MUqWQgVfqsf0jw02V7eXC6Ib2OdXM9HD+ZEOOSitI9g5hYMIjApNsmAIfe0BFu8KtzNLpmHVG58Bkvqq4fpid/SAru/NVU4Nwq6NN0KcmCLYm5s2bOyuLaq1WOzFP7TD39V/vrFRQA92CoJoNkl34STZLtMkdVYGeBK0ZSJXWJcUcf1oMrUTKp5WEeik4ZWV05/xi/xslGcMI558BMcDuzNXvn9z503e5nz+L/fJJ7uNvvsyN/OZVT9Nj8HK+uhef0ZnDoMU13SOVN01jSNlix8NYyqksf/yNS/SJ4M+/ScmujL33dQ0lxZoxJQ1XQLdeL1fm0ReSWY6FaXHBtnnHQPftGShlQNUO7EQTo8vrP8AiG1Ij6CYwVJMtOzo6xnpUNI25ghAoGctvHhh/PmCNx1tiuqWNAcgK2kaeVs3TtYm5c1IlEy+eixDmNKfPzEROYTAamar+H51vV6NLqOiJhcRgvjPRCQfa2InkhD2pINmEq679rXPVadEDPePs+scUZ50uLn84/fqEfF6pbNNqCfKFwPmFnQ+LeRN58FNYNchpSWuvFCwmgIkcjM2ugIlBUEGH61NVsdehA14GofxwEkCnzmBU8TH4EJvAAD5HUmxpA50Xq4LYfATl5x/Z+l6Jcv4eOP1Pvr+dm3I18gkcRpHf5375Zeu3kXdu19yuTO+MDc9yTsnuY+eoCuYwYsERR5sTRxihfn5A5LgfS6FkZBekwyFF102lTGEzDeYKNW9eRsIXc9rHuk97D+WmHt6PSD63H/56Pps7P7396e3bn7qWl99PgBjJD++ILAytah+ezikeKvTymXxRrsqvHG8tKSRahae3ByP7BgZMVV0GLlev14m5uOjePhKjIKeZRqvOjiuYWRopHVhqb6mWCgkTsjQqhu9lRBODxTiuAckIAafTLVdYHN4lqhJZdUN1Z6Wzfu5Uwb3YyoLkRHmiSGygIpW8WuXEyoJmlCBfFKz0DVZ0aLo1hUgwxV9rDHMLAl8XIlkwH+ZGqKqYVwuCJZxQjrDoodUBLCNF4uflkBdAYMTcyLAKtsLig/048YgTe2854I9g70RGRubevBwZGUuJjKRkp0Tm3r795PE/vm2qzy1Oj61hX79T153OnhzoxUzNEUEpBKhLR+6cn19sa1PWKWJ4HKXkVPipbAamIGJNbDa1vFPYcEzLadWahrHQw8WdfB87sHgA7OjDTtfb9bdd68vLQ+82Nt+Z1mV4vNVxq9BidsPk9d+FGixjhnMw5UJ6Wf1YPI0U3T4sLKyM7latd1H1eml7G9cgjmtol5WUO0cwMZShoZGlfyyx29NKyuFaYR4df17qH4wU4XRCKYOM40rFrhdhit66ZRdoYPIEdIwq9lL4GVp5ynjTPQYhUZTIEimVK/OLi1qltmV8usWcN2Ho6FsxU+mm98mNB8+CIQeQtkAfSWaFJYZpRxcKqYARq6ryCwdjqFMo1F5VHvTsHOsDGc0Z1iFQZyaExqgQv/2tnZWzc0pkSsr33z25813kk+/uUJ4AWyjyJiXy9udPP799R1iTm9K+1BrZeru8u1rKEOsncEq95S9+FhAhBrth6Re3PSJSMh76HQ8lqjLK6VFr2llTS9fgRptMZiZJZWNDHpyMo4YS8u7D6I95XcszvW+7lk2bC9qJrZ3Z5Y4QKyD9Aod/pOzCOX//4mpVgV9lQ/04uze+mlZdTfOjZsv4/BnTuzacooGq1zqGx6dnZMDrxlpGiutN65z+15iqSFrOYJAmoSU4HeKFQ6Md6RhzBFk3Nw+79Vdn/XsYB+Qs4zyTyfeLYRBTaDFE8H4QeCJWIpT8JqC+vZK3UsJuaF9qkMC+sqJVF/YpRImuQN0Aeij4dURgbhLJ1QIqdVcQXOHvhMVGAfEoxAPAhDGkHFppqcra8bilE4psE0JHfPLLX7nEpOTmPkmJfHIn67snT2COPrl5KgWie4Aolnu75k7496BT7GyN7bxNKRppE4sdHcVcPf7wb6+gM4+GY64351yy8i+qZts4cY+75E9iHd/PDpoGTbN4A5VqoJpNQ90zDRKPaPJJS+RHP9uAbbPbNDu4sWWgbm/tbMo2d9ReAT++HzW1N/A10aU36jEM7HHaQKuqssbDoyf9Id5albZi6u2tUnCZc0o98bChPDw7joJCrc3F3e6LV1X/MCxUwFbA1WtaogfGHwagLJPQIVpLNJnMPbdLpTkW2zpcgkOhuQp6MAYzB14ZG6cI0NInoq4likQ8HszT2g/qAk00SVMSXbWhVueNmkwMFsj74ANgk/+Bwd1YtVsCbbA6L4/pZ+3kwohAOQW7YP1okGHL9KepGI4BgYEBgecsmS7/4wH+yuVO5G3wFH+XlfsEFnou0IMyvo+8NPDlk8gnKWfwI7frnFMosT252R5Ea2KEosPM4HKd9ru7u5PDabSs9MjfBJc3vTjjdOKXB3qeN/h3jA6aNma7Kgr59N3x7OrSlL1f3mzjy9a7NmdHTbLBrXdbGysrKwsbG1um2Z2fttUVO5s766tva5yZPpU1cfRz4Q2xlenZeNrImD8nOj9X3NayqtIqFGsnGZXx5QVTXIbYAhFlHfeAURCryhcGK7lzTL1eKIueHgd0vbvIjmtjnyDiOsIJb+UlZQ+/bmIwUTyvELwzGHtBTUgko7jQ6oOxhAEV7Y5nHhOj4dNl+dO92m2B2cSvViPgXIdugFsj8IaCTu539RZoCwleeSEVGKwXOeKIL45fFoOh5RSXY/wLsvGOqYfs7S7A0e+CgDcgxEOcufx95JPI777L/S43997tyJs3Hz++Hfnt05rvUiIfhKtqKM43s1IGxmvo5mVNW1fvajeSbPHoEToThc2+TqFdCr0b/s2LiMx9Rxqmx5Zmos2gG3g/WFVVOCGgtu3OyM2qt29h21ye3ZyF7LDZBap2ZaNNSy3ckoIhYMf8/r1p56ed9eWyfOeY1tZ72Y5eNXH5rSlWVpqSUFq6lGxBFpsXtFvMzLDq+6XZGKK+TmexpifOEXFWmDiGDmfU6YiMBhXsZ9MDYzSHQGDlOdiT9VaWAe6tA6r4/OfP2hkoCFSjU+ruOoXZ6+ZQQbCGw1ggjkjkhQXVQueNyVRp+jBFY+2FG6NSqaBNEXTw4q484Ro8QBBuggmICgQ9m2MSJKx4JTna+JxzIWV4OGNoeAHGjy7GBaaetXW5kY4NlSJ+8ctdfuq+O9/VfXw5JRLOdrBr/yn7NkTyPYms+TIy9k/ElBQKhfLAWdM5sNoy2z8Sy24ZGBiaZVrjye5gdIq5Gkex8vpdZBPFiKQ1VLOXlgZMHR2jHaObfAGBazBvdg09HFyH4exaHtV20Avp9DaqQa78sCUQaN+tvOsYXB/agQN/ef2ndU1vd1PP87TYU5CeyG6OpEFwNB7IAqwwRJQSjTdZWuBmC70PFMwxopTMgjkdxQGs2ngcWaQT63Cq9oHy8IqiHMxJLdcRLQCqLzHEEa3v7CyiNUwOq0gsBEoMnE3GHBm6dyjEbvsJhWI1wlIG00OeWKxnVpAq4tNaJ7v50UNQ1a9FHASfaUIQAJcSgjwF6rxAeMr7gNhPgIRSpN0JKPX4p585ZQnYLccwdJit/WlhfGl9BhvxB4DRAvHTBQYz6/JVOI5u3q27k50LC/8eTNTvK2/WUR48eJAVUde+NLn6QywlvKCooKVMFY1Vh7rv/bmDS7B/ePiDuai6bKhkg96QVj3QOiarWFBrVypklVycdmNjPX727fr6smlos2NBC85/A4iDVzbfvweuwsZsG2ywP8HsXd7ZebvzbnCoe+xZmXPIaUf6cE/ZpZCKCqZDQCBXFe+wh2Xg4gr6u/KsC6Z03OwMjEJB8rI/l/RjIBql0+mUpJb8omBmQZGLlabI0RItFuMsHbhQ1JAVYDSlRSqSu4XR2vIAcU7nYB9G1ul4SlbjNVZtGAJ4TQ55PB5XjGTq+0qk+f3dne3+gXmC2lqwEkKxdtfDlbgtIBBqkzxBk6gWOCYnoy6cYMJXbu2f3YxH2CaA5Y6AZlT63Uhn9xcjdqfnL/fuO3M1BVZ5ZOTVrDpdZCRMTxjR7FwK+OBhMO9mRURg46fHB1429VCMXE4aSLmJxy/8/hfHLogxD5yzUqbv1xFBlVxaScOo4PXVos0TAKu/eizbqNRubrpsmLoGd6oqVoIN2gXqPFcspm9RNzeomysdHXzz4HuTaahrc2NzY3SrYqUvbSCtOlri4fzieWnT7Wg+VaqoIEVP1hxGG9fWgjXdhcS1qL/rwtMZxLjyOBeBx0SSmzt5bUpMJLEHNMFCaba03S8gYL8nTsHFRg+XkvytiUWt+ZUkHzuRpWWUOALlaY+dgj1CFAbqmsRGt8TGQwkEpZIFyh9DQTCdMxoN/S7/9tE8CzDkgKUDHsj77Rd5SUksUXJgYkBgXiCr0fWQA/mCI9bRKSSG7APBN67HTsjP0KwxFP6NGMQuVu2oy8eR2bcjsyBU+jLl04/rLkfCeH5/M+vJzZTcyD/djajT1U2Fp9fk1/dUPvsY7b/6vPeHdU7IYddffLbXlxzhdSpu8rlzSxGWUVRk5VFdPZMm6Yc6SUeFZmmsoA3OI5cfN2c3TRtqqsBQAW86uYinoErpWrVWudL7drmrsKNlyLSxs7WlWNF2DI41DTSUFXtZV47DNU/liLSyJtKan7/MDjIayR2xIxxMJk6nexAeFTVXEBdfUqBmoYw4MuhvC+I62+PTPFqiuw+kugXZYUlW5Z0t8XA/wAvT4tOKaI4PMDg7JxQryY5MoUSEgfJGBPk9jYlu9o48sUiE4yEVaX0lwtn+/rT2/IHJhv5oPJi5dnHr16CVDf5bmKAO9ixloOf+g952qNBgyl0i04VSfgQSxH4Wcsra5jTDT8IPRfzslz8/c+kqPI4i79ysi7zzt9+ciMpypjyB6XnzU/jnrKyj7nfr7hbExmXnPo5LiWywVi7kz7DZLRV0nvsvf3n+CtrX52h4/hu2RhJDK/eoKDyOaWgvHigLVS/QVeNLvUNdy11Vt7bfb5kX1CE2TIWAzuWRycErXWKB4F2humr9nQxPbTG9e9dB1XKVSq2EXZOWP9Dp5ZFf5nIBcN8A5LTuae1pfRFOfj/YQWtoKFmJYOjnYIrNpcSNNBfoeNy56gzVyIysqLx0bLWqedr52MWJeW5UH7uzkgPRXdbYGy0cSK5pH78HigUxOmmXwOkbBpd5EZzdLLh+io0wP0U2+GA6lR5aXDUYn88uy2/tbGYfTReiwJUJzsYAAAglJgG/hJXscxjMJLYobHiGnkRSVR7feyvhzG1nznGvA1hn/xgPBASLn4KZeRnAIVl3IC4y6uinlJs3nzy5U/fpb47erct6AGDPu5+mVD55QMmmlKektasuqWL9W6rwDLE7MHUsQJd3wbJhpr/7xsfZ2cFWNi4lI8O00tiQCiurosqBgRFwtG1dsN/eMBvkgSiykis24uTGhY2ultmtd+s0vZBqxmtlmwvbXCaOp+SVyEI5M89m/G3i4bmdPxPuDfo/5nRTJZQzZrv6+zndq34l2QWKqZRs4hQlK7Z8Dje1ZozTzBaVBHt0dE+ye1+PHzmUqNS34UjRafkSWjYe5xWsauil9edXX/CxsoryTvZGIDLRKLgP7TJcEUoll2tkXUM34gh43MSCuYOOKSBh6PGtafntDZXtg16uCVD9dvVOtUjwtAf0Y2Oi562LqXZOOq5TFLagwNEu9URKc891OtLJK9RaYW2DAI78p3+6+d31qxRoYPy57m9/o8CsjMyNvHkZ4rfu1tVlTd2Niqp7cFdHLIcuMUWVf9u/iBZe3mdjFCtFCEgduAJymOmR2fXLh/FMvAvTpng49mpPjn/acMNA5cD0QMPy7MoCdfTtTyXIxMVFniggEdwXWzvr6/CMN/WRqBuDmzOjCyvKD8prPDEvWBgSzOnO9/BIH78XUznMdjh0Mam8ksbJb39W3z94gxY9MrPUoGDMzWVH6R5EpmQzoVqOW5trKKcjHUP9blBkS9P7vHk8XC3ZmiQZrCpg6Mg2oaRBzcMbOZUhS0vXzyGtwyzQZKMIAIQJniDxhf8WflggRWWKefPUCj69AEyB9OrWtKKicj577IaDJyhJzu4yC+E6m+AKwStAKPYEh6wDOcLpnPeNJ/UvXry6j/U8zAcAynEHhC1oZC9RrrLZcCuq+9vdut9ERn4fefPPn0Zm7f35aUxWXRYFENRE3VpmhI4ozZKWx/kJYzBTOoElWSBGuR76/c/2OJAx0eumXs7v9h2nu3gV9hd7RE+mpT3rLM1PHx5ofRa9sD2/MLrzdn1rfmE+kQWOIsK8fsM8OLTzzrzQ1rY5tPz2HV0rV/JERp6ytiM4lN7fPxSf1u5xQ+UsSXLdjyqKjQOF/PgzDgfjXNbbPmxlOaUUYwLt5rKzsXYWqCkZY6rADweODYm2UBjd29KtRyR8mHdmhFoLCq3JTkRgKfRO11dq/FunRzguB4Lc19aMiWCdrxV8EPGMPJ5SyWOFJbjxrA1akL8xqXpBKEaaP6DCCIuL2jvHSHYIN1cgMCTYp3pDvEqYKOiwt8+t/fae+73tLJ2fff206fNXr844OPnTHnrEnEDs+/mvjpf40cJJBdisI498j/rlfJubm5VVd/Mv57wis8MjYBoQH8zp5xRzxIiq7spoVbi0AOYHN5kn5qJPXvwlxM+cIMZXD74/YYNkQNsdKyn0oHWWQXJfZdmltPa0arBMJm+D7322japVsoISt0O0ar2CKlRwhrpWFIqh4aqNDfidxcRFEU++SBCEhj6U9HbNSuLjXc45IlPPohnWxOv3itM0Ff54AX95JLpl0EwUEe1vBZwOD3AFQieDIUZycTh8AWdicyj9OluDC/vw4YgDmgxwSiI2yqaQ73GDbfJIy2C3j/XZpqJQcCoBeK1WzqttZAE6xMhbFF2D850vpCrg4YongACCpGKzi6N747vZbJkdnElAvmr0vgUcW9Z8IsQIpIKW9pZ9knX65/XNNZe+ffrYB/yB/jE3JMcRn0a5HOcLTUUYPS7q54d/d+RM06tvcp9cvnnXxYOSXU7R/T2i7sHU3BzcyzewHrF9nWWkmZy5ubYpspLoKEfuBSWZ+1FGHIc2u+8ANdwae7pN89A/+pJLQXl/fno2raFHgmEiWciKikKuYcXAA97XAn1BQBfyFfjKweUOsWJ5dbmCOg9/N3j8oUVywFOpq0r6+4uheCE8l+ppa8FleKg6GziyImk4fiWmP21kCIwei7uBSoBBcoXb0hQDSXD09Al9mLc92l89rBFKG2uBP2fneM4ngOxkiS1vh77vw+P9y+zJ5tM+3geBK40Ab0QCa17klihKCBOxRMZrbiy6RKBkCqC9SRDj6FKppppfoJKSFKFyO0gTtG9Mtk89C6MKFVH7W4fcyOg9e2y9PGpKb1+PTLmdAvw5qyJ/ds6No4jjWDqeGC7sJkWIM333gbP1y/pntwHg/SmRkpKdEYHVRUVhIikP6Bvmna3gwWzn0PTWnPAiFRdqMziuzsh1z1SQoGnBVx3dZ2lt6WJpFRI8eBVa/eDWLfaLSV+qwjsR0F7CwVmu0kBAg6NoQmsQKBnWSGqJbNlZuTU40qAA+6q8VlQr2j1zGwXBfZLi/hZJSXGcd+qeQ56O1i6WeL6XSzyfThoMHSxVlZiRog9hYIj96qvPzqL//neMlDmPS0pmCkdH+6MraSUl+ovHvO3kBGXyLofRK7j8ul8/22ujrL+8t4yPddy7Zz8U3t3g1yLiYhhcPLlUOe/aoWOhdC4X2jRMeghXzKQyGSU8vIzElfO4yQkBtUCxA8kAXEfdglKDbu1Bc5knfSyP3vv8elFsyuXILx9f5lzWFBdLNP4IYHwxiUS8sLvIgHOEoLScpuaeL3LufPy74xTKzbkIbESEjpGiCg/d2FzYob6bNbex668S606gjUYxjqybmuPiZekYCjZkm5D86xOgYrexQQoLQv0lDZKq8uzj8eMDXBEZFaAwzVL1TDIrUbltMMzzeFSllrpR1aLYNku6zUr4QJknAdUIZbLGH+kcyIYdrIrxczp78dghOzSP7GkZ48fpleBLqh5KNBSumBXWyIKgqY+++ugiwnftQYEBvg5Lj74Wc1VpJYkbluCZF2Jp42hkARrDKyCJ1N57vbsbVK3+Es2INc4SLeKxELve67MIUaCIwJfKSPPzPBSXaiA64vjBIUymnsDCGXkGLqzZ5BBp3wmEq/fFW7vVfqDZeyZ5g40TaMT4yjs99/39LzmfKX729CqI6qv8i6uKEXczI4w6fShTQrI2Akzt1L2n92vqa04dx1IoKZSIKEoWce7BnKq0W72xuandqtrc4jAi3G3dUGFhRhjSAthMw4EEElVLCHBwtLLWRXDBEXCcf6m4v6sqPNyluilHxzKywsR6Jc4wheOJYPuHyTiv585TtQLDwsSKZChNDzXya4m1qFpogB269qNga1TSL5mt5gBZDIAsKBzZ04cRn15C9aOGqDnrfCgJXUOIgLS8B3AoIgFTqIBZpNTSadWjhRlxRje3YxN5XoRkFg7cU0AFTvLP7/YYnHU0FBb2Y/gX7KK0xsREYBGcPQvlDiNTrCiPFePkPLlSTsfja1rb/a0cAR4UnYOkM5lKEQ/TOemPdvP2SvWGIFBbeyCIJHz2FeBC3Inx1yvjT51y/vgMEJlj/IuLY05xbnAQGCfgTRCtK9oYZHfy3awzl2MrOz//+v6lm3V36yJ8Hz1ImaLcxUoavhiONm+uqKHGVnjAFritCCN8eOKKt71xCjxlKgIkhicsFb+JsEZ6QUydh0dBf79VRTgRM50iRpPdcUquEa00ronWwsIsYEy1K3KcnqtEcuVGrKlbzFMmWtSKFmuhX/ORZ2Bo4fuq+Os2yB+BAHjrrAWah0M6MQMMAksOKU9dGD3rKIJiG8yxi2ehnU8W6BVccDMqqdyYq7MeVJkeaW2gQqIkKkwESjL4kpNCTd1dfgsLUj6n6kSEz4UKOjIsaDcZ6SO3MBFXoTPGpeOZPByVy1VN1/c8e/10knO1g17AhjRg2NBxhezhXs7pjPaQY6lnj+aHAKLxq88++mqP3UlcLOd6ihX2wMdXi/38/G2cIQNLyOcjiFisoxGnC5bice6+7hEPPC5BJfSbrz9Pifi0ru6vf7079aCOKBwHCdP4yLutCfXmT6EnBBsfPrEwwjwjaltGOstxOGxUlNgdoO9M8V0s1hKiNkA0zrl+4pwCTywhgvcCTRY1+irRbizU/pMinBKmp1jMncLh4MIpUkska2trPB54iYPcoBruXRtaWAFcIc6+c8lJt7yTWRag5rYNWBSIsVLA3QmEW0nXLILgmuO2mx/TKIcNTi+XpcnntfR4SSinO44WLxRyAUSLdgefliApyaG8uqgBG4KJz8iYuZfLloVaWlpcg9q7G1oON2EmmadKx0XYO+VU+k+CA/UV6Da+bv1CFYwpHs9PCnCkUjukmsk0dsPY9TL+9POxsso277OfnT2IszhwiXM9C2j70JjkOAeHWuOd/TOExxGwP5LJuohQmUJHPuL7KKIuMufepcdfv2quq3tQ9zf3qL/V3SUWffG6BwSg5gX6w8J3/bPvN9/l7b0m4mqGjQzVIJZszMwkkoHKATo9MRFj5eAA141qWjEGiWfoQvRzUW5oY6KnG/qkG8SiJBr0YpAVi4xzYjL0eES1haoSsRLWK9gR3Boh0cANtHTQgKrqHapABiTDMzUgEOF6IeHYXjTO0kqgTmYFwtl8DWzWh1zBRIBTilhKg15K5REWFJqyDjjH4uA2F3U4KQx9rTZxe9snyQ7/QNhLC4RXiGqs52UzHmJJD+4PCtqzB+ACehzOqNQHJrge7nz+uvPZq/Evxp+++sfr589pwbT6Fy8zqgrVckFw/kB7ddp0w3R0e0NvZ09J6lmo+lvYNV+N8bc5AJDs45HXPYhYKywWX0X6FOEU5UQmG6OQ1joykzn350f67ytLa1LSm59G3v0086/ku5l3dVxV5/3Hrc/y1bOTaRWbm2+Xf/ppZ58DlYyLcA8DV5BRHIGlM0bfrpt89h0hyvpcrDwuS2LPPAx2tp6zstEpPnVlwZaZKA8D+9a8gcFdw3G35CycyBL+LU6kDweJjEFvTNzlff3xEJhAkgShFTKO5KHgXO0EKVjgBerwNhvvYyBrSEauMAUBCQgLgO3DgyXBs5YrugZ/kpgpl4sE/KFujYTExltzoRDgeDDIHdxO844BqTiMsNvv32p/WnRDfnODS+AFgJWBHQpuSQaDGAeVO4uLfzwx3vosJz4nn91Q39T6cvz1PzNIN/KfD/SrCUy5gVYNt40iTUtxV9qqRjNAT/I+Zpd6tFLi7HzA8pRNqKQ0J+YUE2uJ9YjhSxBGcmYmGe2uprsjWDip5Dcfx92O/NPl7+835566EKHTPbp7d4pJVYHIvX5Sk/+6d2tzY7f0uwqYnSMoSNCOesDlWR6JML2d7Xr7tkLtdMGmgir7z+Tq6v31sUsRTCdelE5c67A/U6zEiVCwNBkK7hoPJ99OZCl5uw+9ayICgYCUy1m7TgEIDnC7lpgsCH3YcdyPX+GTvKgYGh1d8PH0ykMGeLrzkGoCiArh6gggy4vQGK/lz5pWcOLdxsUEz2DuHpmZ9g8WodBoI9l1z7WExcTdmG6nqALkceRhgjOmOr0mLdpUJtwDc1MpwhmNIngfwV7q+tkfA+73ZJRjClTVZRn1pc/qX7+E/a25pyRkniCrLpGw02SDQvbIUH93b3v7alqhva3D3j86eFjbnLM6FQwJ7qc+dtHBeIbHcaoQUeSozEyLTCKVhXDj8Zz4/nHs9EjK1Xu3M7J8dVMRsB3o88zV1+NvDL/oefpcsyUzzPYt/zQzsvx2c5+PCCeeM9rZ7jMMmmU7y2+H3gkLbbRbpv88nx5JSxvJvz4QvQCB1jhHW7SSCyVHseKBDnZNGM95OOYjwkRhZCMY0ZIIBjHaLewa8CfBstcYGFzFCQ0IDQ5srBVxt4RUQ9itswkiI4sH4H6fZBvq4YtAstqNTGC9f2va2cmzEvJEBrOSKm0reTOND2CJWCh3sk2gJ2v7Qy3S1B7OsBTxHC8aHzCLMmgebDbbYZdahlMaRTgYUjLMcjhgvPzBvkz3i9ZIyjGFJcX1L5+D6r0+2kugbdtS8KEiW2TSsKv4FcLJyTHg6zh6fvVH2+MHPD0dkzzwHjbnHCwjiCFelEt+/ogo90xfX4QvCr6skxa+54+c8rAKT4k7ffne7yzcdQ/uRv39LmlA2FFe7OGf/vjFy+7yUYOU1DKy3G/q2ul4WCFmYn1dD6lNbXTqkGZ9vW9ombNh6tNMLq3PDP3wH/iMuThAluGxj+yMYUYeLGu0xW/d4a2e2AizExApKHkeSAEduaK1rb5dAOXFs1CluL00XJnjB4FdjXIFSc7b9jnmZr8fTdZTyZBiEGZQ7r+4HwFAxYntttmNdztDIyMEnnxevm0Q9s9M+3kFoNE4JEPhlCDScieSPSBf4SzLCQVGEZvyHBm5oEiMPhSmVMJyYcFdPgwdxAzZG0CwgWI7o6B3ZKCmJNTAKS5tBd17z3TZAUJwnhyqiAohyZTWrqkQtg22APFIkl5jdcHlzDlQD4JJ2QZrd9jnKJ90POZjlwOIqEzIgoTgD4vzKHcu0vfCIydIZL539Hj5747efXD3t490YmxRRtFAc4hXCK15skllBvkxtXqmpQompKlNv0H/+Vn7La1cYJCCjPJt9frocleLZmx1ffnt29XV1fVWyTlb21uf/fKPB93WuFPcNRSwcXdXOqw0FnDLyIF6KDtBX8zcNSJHHXL1TErEn64HD/3rq0kswAXBLAq09UwA035qmFGEsPDloVEHIVULGMcirXbBsLLwbuft5JZIKUIiDeaZlu6yUSUKBhRnaWeRmAg4LAiYXzgccMIRHK5IYlFXlqzcyBKJxWFkligswoiGwlJGCTI52bJwpDOjaGzm+VIxhm5Niq/Jf/G6qSc/yZOQZzMv54oVbYySPpk5mNq2NTv08FRN/X0K9gAkoHn7QDOebImGHKpwosdDlT8Cur6QERcFi/5k1LyAm+2BJeY///I3H8uq26frC/766MAFz0Dr3Mf1cVahnIzHPc/SYyVSoayrpBwcLu82q2at9t6aoBrgiK6Y3RpaHlqeHR2KlnW1dHWZuoa6Zt78sHRpX9Lhz3752SGEhVGv1xtZJ8OUcpihYSy7zw6i5GQyKrGDjsuI7ptpbbc7FhSYVNT8rLX1+fMvHBNYsLfB8eQJnOdjt+zP214BfjnO7Zor0PDcGhO35+fnFdKNHZii75A8ZWBScNVq2fAbNkaMdt/nbQ9CrsT5D8DX2VoghDpYiXGOBMfyWeLUnCLTOGGwVDuyro9x4BpNIuOAER4sbV8d02haGv7xJq1igV80Pf6iNV2jCXAw5NXC12+UU5nUjuhNAUG9srC1grxLuUG0dAD6u62l5QmIdooKsTl1KQVML/6IR76+533FeidDm0CME8FvRd09czXrqI9HVm7s9VNHrf1zswICabH3v/arKH58v5k9ff8GHa/QKkYLFzaWl80b8mStVG3QcwVts0KpbNa8AspK2XqLyTTb0jU0PLY67h86NGjlab+4/6C7eHeCHkTh1ngiIO153wKcERzVyaH0hrHe6t6ZGSDtWh+gV8el14+Pv8pA21CTWYm1AakJCfDSC/L+6qwrSmR7MSzRdc9HsDVuTyzKDVtbW+9WfvognzeEINVdDU3TS5MjK07XPAOcztknsJJB0wMMRcLhPagIMrIWKTU/EIMCcN4JSY02tcmGxhZQaBDsHXDhk4SwnKvapNGrS296ZfRQsGsNpNc3xyTJ82qTWIE8uUEr4lJnNzvejZpN6kaclYdzsBPZ69zhgADbT8KionBeLs5xl2POHEYAz+JvmWRllBPOHeAWbhbnYa6ezvR1sD1wOfJylFNW5M04RjDG42rP5w850cUPLzXdPgUlNZwcVtuWyZQ3L1qcxxPggGGOSrrWJYb5eQLBUALdzFnTyOpqt6alt9o0MrY0opn02n/S/e9/X8t0M8I5gA5i7bZig8KABQwMgPT8/mJJ91j0obN+3c6kkoHJL3rGW4vGgxsblSC2hpelqxuA4y6meqbecnVj6cUfJWonJhYBpLRg0L7r2FnY2qJStRVd/Z2dXd0NZnf0scBCJZSIJ1YmtG0r24FJoFwEXS1SLyTixFylKDBMYO4wKMxDFcm2jkw9VYF/qJkZrJC2CTVjMzMzfcehYMcGCfHXGUmi5Hn5bp0GriEstZlDr+pe7tIacbTxV587X9ARfBx8QZ3ongnhzuAWcdnnDYBMHM73r74wUaCMBaiWv6LQmY8enT59+NbH4VG+mVlRmREPsohW2Ov3/SoKrR4/fewfQmcSjSvvQOYxayrcDrNLDkSLlIoFACsNjWrl4McWyFpmq8zS7qUfVntXq2VC0+r0zMDqmZMnT66tRZChkrKGOgmsfNezQDNwdQ+05JSx+6qEXdE0G/c9IcMa/5yB9Nbxnuf/7MyEPbMRPIK7z6aPvgLjTCqM50UUZog6D6O5a0BQy7XbH/IG3+5QtW0yjSSYs947Wbz/2B+PHXZ1C1rcXpz/MJEYZOcJhZWLqY2eUToyGmxXOJ5dIvgVmSWbWmVYIAFMTwqmuWNF2jZbpGoYm6keCrEJyYjvzIlVFZEIrEQwQoKMJETWN1o1a5oZ6V8u5IJV4MXnl/buRwWgWSz4I+ExZom1Oh7ysArhSyaTYXzRcJdEIPZfPH/SPTPz6FHgL+87/Ncr56PgfyEKrhXEuJ57kryQ42D/YHfSxDgccsFMhcf87AREXi9a2GEVVL6qT2YQyOGGodiStZlJbS2akdWZXvaouW89f3Xsh54RZ0RmprvvFRhVyJj6/5PP4qC2ZLR9ZrWTH1LV25DWd/TxeDcbegBxGen108/GC0TQrw2CHrh3aH44GYVwvQXfgftUiXR+MbG2FmyG2vntrU310Poyv00Tr4r3r+rt7u2y/eqPrmfhe+Btby9+UC42Bi1+lnrrKwhXcEcDixlw4Y2parmIrJD1QVPA0TOZX6UOCREYSAV9HE7v2PPqCmxFTvtk61gnuD3mCbWJiRaBE2WlY8NLk129XW38dx1MTHrNq8cZfzp9wfvn+93hG/J1d3c4cBwLoE+ExaNMuIKi3U+ev3LypCtEGECA6YGjR6NcLuy78tvzf/V95PvI3dGK8afc9IbRQOyrV69fvXzBgPd3rUiw8KFjiyoHiTbUZhT6NoVUKhaoqUMjFKpZS5XK+vpaVmdGVvuEQ0PR688nZ5ZqLCAwGBFmsSbOhMUAyUMWrnuu9L35z39++M9IfLBkJq23JG6yiV0ezkCGhMfVl6a3lq8hgsDEmnpr70DrUlGcHegPISUfRQSRIZArJiYE8/OjcBytg5gUelHlEsns6tJ092jeVXsQF4uoC5sfahch3DDREzDY3gEoMjoTNjWghXsuwIWJajZAtYu5yyDKg4pUXmEoqbi4of1le7Ba1ln9ZnJyko0hA25kO4hVGN3TOjz5arqK81BWuIJ0JDY/fdb8xYv0o6m3fgvjZYE45+DgHoEFDSjgV8lwuJ88f3D/lSsW+69AQvJvz/teyHyEPHzsvEeG1d1H5NMH8vLwHpyG6cqHYCp+Db+E2dbw3snbWlEnyycWkFylHBpqhhUmV8lVwDkkVSwoOtpk5hbYQnuXeiVDDUXVqzMzb3IgGeeT+bYo4xTM0N0wnIMAph9KW4eL6mo0/xK7tL17qLt04DZbiCNghEVx6dVi9C4m4+Ke1M/iGsZaW132Q2HrbKonebEWxrMW1rNg2/zONLu+3l2UISQJObObXe2TI5q0Ui2g1MMWtmu3a2tr4T7W+NlXsIfaQWSlONEOiI9J2wLRNblAjQoESmjhjwQb9aKNOi9U2FeV1vn8DZsplUlnVgcmaSHuCLgFB/kUVUdXq9Kej3GYoRwzbKOM209ff/30aZOfrR0M5Mk9dhccLJ3c3c+dc0GASI6cuf/8lYNXPrpyBaLNDgJged/Jv2FDLhyPHXk5RiuXrqxACjiJ9KczsWmvX30N8/OL+wMq3VzehHqRVzvBkwsmBAqtHCeHWxDU4GFTlxZsgXmCKuwr0XR1T0/2vjXVlPYN9Q7oLCzAxKbV6x/o1iBrJcjiZCKLYNakDf/jX2+WhTaF0WVlmhZJmoSmt4IiU3iRhla5BhVxN1dP270KUknneLmFGwrGE4QdiQsAaQCK/8rGwsquhK+3NK1f6s/pqDL1l0X3jrjYBzW6ubrlwWAmXrvYWJuadLx72OOAu1MEZCDBJym5lpXQmKee+JFACNj+cR6MSkoeklvYZq4qGXuZlkcvlJr7VhvYmkIfSK5NCo5WAY9R1T7SYRM8uN41ssy0zvn6/oum7LjfnT/h4rPP9gSwAywDfWxtAxBoEHVZnD+///z+334CtiGYoZ988kmmDvsbv+Gxkt7Wf7SOKOjmrhZZx4UL5fVfvPrm269fvn76RaVhOOTfgYmi2m1BMgFuK7uqaSUPN69n8kl0RlrZrHROIVQxqNK+lu7VrrczXZreITxkl6GhfahUTK2hruxnKZX6lULzYEl1ScObf61Wjz7s7y7VdFSVSAuIArogFHqVlcOs3XxC1LvovgJM9XQfzsIV6iBJSecm5kHuqF6snV+Z2CYI1odW8yvZJbQCIbAlKqL7Ynu9oBwAAs5AEZRXFi822gX0tac9nxxz8T532PuiPRoFBi3Yf5Fb6g8/TpzbRk78mJcsAjIekwrhkCOrEhsbRdVyy0g7bOyb6vc/CqgyqpQv7GsZqlJrpV0zLTuF1gX+GV8/y8aI3Z1OOxxOdXDwhSenDSbEAXHy5JWDEPoEWNOPPvn9byGU7MonFn+LcDpxGpPWLYkfbm2dlDKF0Os55ejl/+JFffP391+8+ub546LO5Y7FRrCTT2wL5NR5pShRhINX34qBJKwoef7PfgVDS1XMSdtgF9XIlteXu9f7YkI+OnsRzZzSt839/byjylRgJLW0VLcUSCtk+W/++cMP8YODmnKBNQncZtGTfDq/oFxqTIDDyJVHW2pgTFWXltseBO+nrWB7YuG/HF0JUJrpGQbErCImooiSRLJiiknVrCiRyJFiq9FQJVWyuEUTU/FAYFMVjGFTLQi422rEA4YqpG6b0WjShY3FA2vwKLrg0ayaZCwabd11p514TMzZZLft6/5OJpNMMiGf3/997/u8z7HlBAIpeFWv02cJamvXNMgSZJrGtuvDrWV64eSIKxCMLQDo2OO/x3SyZwOd1cy1EbdZndXUlHYePFngxq5ZXjd8N7vbACZDBiipeACO1ItMMpnQbbdg7bLRtecL0OC5jt4tWwQKuE5nV7sV5gwDh+N0Da9BY6ApaNTcl7+HPg7j+Ip4MGHP+TybhkbsS4VXHUVMDK2szP7tnwEICz1VmRj7J4hxZ7YIi1KKJlaBygJ8I6zyR8yqG6Cgff8v//znN3fqpkawcIjladdVUpirw04tKdHO6hoaQIPnnvtqjum0yPkFjTLr2JjSqR5+bt0AW2KfS5cQGabhJ5O6LD2ohJknXY3qNr3S4WxRPJvfmLbqNcR4vwA+Npr2oHVAqF9iAUvYvxhj0l9hYrut7tMR4BuMlHKWty3bW1vAIDOsS6QGh1spGxnvMF/XMBvbRqaq2q0OoaI/8/vUSfjRU1Mi2Ow0cJnWjdUFszupAgOhRwCo5NXPbi4vf/fKOvtWIpkVp/cATR68BpnVo3q7IUNX1tHhaO2H6mjeOC4zqQxagcFu7h83iWz0+vWtF8O997PvkzVLS/wjexISEJFAAFoUcBcRSjkCEYuKgvvo6szDW6eJkYdTT30QigryOxfNv6YoKpqfryvkkq1GkyW549rly59f/mjwEYAFzYO1BHbPihgBg9Sa8nKgAcH8vL63QadLmZ5/9PVr8wj58yWyRuNwKNXO7bX/PhlecE9Un2RkTAKD/hmQmtwLI4sDdo0SVH4tSv1Ic9dox3hrFAoZQ4hmxeGTAMoJ+6jvw8CWKs5hbNl2L3VIYx6bzCWIa2YtIMfY+9rcmqWrpANWdQZZPSYsatCVkWUggBDq4i4ITy6j9obmsKDwanO2TPZFvRIOHvPosKA4En4bTuBdsGnZXXYtvn37NnA2BsdgM3h55SJmkcMOc3juwLp9QD+x4VbMp3C9NpiA2rg2/XVl4N7kUGSxbRqSgSa4xF+6BrebfzAFAdcSDjJQiQjrchSORPSH7OiDMw8fPbrsX/nBB6G4sGPvSQIgp+aKYuLBPSXkV3VkepmtKdcuf/THP3429Zc7X5rzCwSuPHYmIbIYAUA4UPbBRE9r4wDRt908MfN0ZrpFp8k+RNtM1oFLMSwo0GueuBWjVqt10biwBgqk1Tkrh5ytVCrVADRM6scmPVspIlxFDL0bjc7K0iUJjXUA8j6oJWnHji0tUUn4Xo28hMBYgabHu7w+u77peWFR9axsOoH2KRxpO1mWpBlTj1tbmzk/Kmx1rgOYCo7We6iqzeEYUHsGlPbRhTXX8HAJSDZAaFATsyt9u7u5+Cr47dtZKZtN2jtA6SqZ2s50LksMtgGPrrF6eKzFgaUbCCIBQes1gGMmTLyBJ6CdLaEToNNSKi9nR1QcRgZB0H4U2G/utUT2dWIl4mwsqvKDH7Q233x058+xsSTin88dbTlBSw74kXl6aq5vCqusSgnEX/zbL9+/Vns5+ui15i/rzLVJ+Sk9pQRVQlT55uK6zaKKwJUD2O3VNWrMoxN9OzNPHxToNj0cg3J5eXvTuQmofqsJhp5qp9o9NzLyZM1ttVu4Ohkcty3CRZdLPTy8psYCTMseCknIuMAlT1w8efpG41HU4d5GYyOHimC3WYORTZ2z8Kx4DZwXwB4Hbz/Gsn2gF1tmtF6syia3Wq9PzdW19/e3nrwaEgyBBpDwYdMtWiedMhBHKKcnNuzO4e+gok0/DJu3k05/+2rcVfFWPCuuYdPhBNAKoJbhWGwl7Eymfpxp9Ax3KAsFcrysy9hg6IQ158XwyqGsUHWm87z1VDlZVnArmwRWNiHg1kJJQ8aCuaKoPBLCkGtQofsO/mHws2++uZJ/8U8QUph7HWxJT5z48OOPFRNdHSM3isZv3Gk289+v+p3sUNmDr6+037x1U6AF4zLd5KZzDSSbFjZY35doqUwNkH/m+768M7ej8Hz7erVtHKRBsC3XrP9dwy5Oqp1g/vd8EjaoUeCdXTbAO9rS4ng+ufXfl8+3hstwSDyBiAojF94FWyQzlCIQPUVqf/3oNAvX3dLLE5eueL1aoJDanIsOl2sLwHunXZcJcWVGRRc4p1uNrV/Ct7J54UGd0dp/T9ZTateTOXYmUMx1HLu1C26kLUk4tLqwpBj2q+FFx/jom7f0FbaUXlrMY3cLLIESncFQwubqHRwOxzNs7arSGZkj/V2KxpMSPPg3gZtWuReObWKp1oInQApAAd43nBiEim+CGDIkZJqXUHnpiGJepP/+uqrmm/N9t27W/enUpdQ8G/90AT9ZD7319ZsXTzZXVRX9uqXq/YDGL5t/nzk6pZjq+/pOodleWuLs8Gw6xl2LUDGVRwKK3tvLBJ7i1xPTq1/tLKz+5/V0/5jL8aRwce3J8Mu1ETVAwA7H2mjr8PATpVa7m7FYxh9zbU2+3HzpevJybZ2x5+joH3V6KulCbfsF0Hffvh1OGgRjUXkUVVQigNLMK9n1alcETk6Zy+OZXNu023X4QLK139paoEnputV1p3l1pm5qNb+96GCBvLRz2QKHIZdDtgl0aofDvbOzMTxbUxMObvRpkuFRR6Hw2TPnipgNboDxEQxCr86rBV5APVXC5ag4R4Ful/9ZkVUNg6f+6bl8QUnN+chOMVRpFi1QBQ1oJrDb+ccpTSjw2g2ODAWnfQxC5I2MRe25//+x8fRH71+s/fUf9D/ddwrpl8XlX4gOjJNVfXil7npZUXVKESS1JONpYL3+4eupX/0FbF9v3OyWce3cgZeAezp59StaYB4L+L3MFn1L4x/qput2diYmdlb/8+z5s29HU1501I08F9ot9mWny9o1POJc183KvRaZXqdxvtgs3HoJwQlbLzMTwv1jUSGrr91lyfnmE7CglygO8/zcarKYjRhaJxHZ2hV437UWg8E72zmwqOZILDYBlSvMb2ktkLXdm5mYGakbmf5siplDPA+cRCog8QKBwKbTajlW69a2om91VApSmPDwyHCVcXK8TO+efrIrJokZ8aGHi2EC4pVYDPQoqsqrlUCvQEdfaM23FoLmuKt/fiolgw4ZAzFsthcujPL6Bnp1tVBRjT33mIIjQs8Zg4BUcuAl8ACcRxwOjV3SMDW/P305hfwpbd8lzKETtIM5x88c/VB4pbqsgZxyNDqbfzQHgpAOHbq+2tXQfuWXv7t1o/mWiMw1rQ2vTU6ua6G1K59lMsn2MbXmsvp5K9M68Qwqp2fffvX09cbLQidojeycPZhvYNExKbNZZjtX4HLRf87kQKbH1tawY3P7xcvdKIgjPjexsZM/prijOA7WA4bprrpHr+sOxeOiur3lpd8Xj7Mgu4KB/atqpU2OPiShS7jZmqTqO1W1XYMTdf11dV3c83DpFJfXLzrUXgmMrLxai0096YEre35NkhCUFgmNgcpsbmnomPS8FZPyemIi9+BDNpWjU6nosXItAaqpWYM4IeHuGJQg1cpCxfT89KhBnL6yUp7XuRKcXk7vZHALW/uLiuKARoUCPAkFyEgeglSSB+zHve497P1fncb+5IcHc350+Z0DQRI+R0bjg9H/+PW7F5L5/HfBwiK5+373oXeLJoqwR6cf/K6x8ddX8Nzhjs21YaNjbHGZAMhW7xKfv6RntlS3PnPo1EKYH0xMTMx89dXrJ6tGzqyh12bxzgJaaR+xA6EOalZg0TvVHNN6/bLdqd5e39zKYjBwKe1TE0+b/9LX3hiFwVRcmGoXmufmAiArlEgsBuEQGNipJMvLyysqh0vD1/R6JSsqjsmUVPjZtcv6anfzZ3/ZRwH2HSKvpKZk4fWjaWY9EFnqvbPKbY4Nhgbusd1ZRBrQlwiQdGqqHndsJsTX7BX/h2vwXJlLnWHBJ0Kv5901DWxmrtNkzgGlzG4CJ4auqSllfDH88zU98UE4Yl5x3hK50KxoTqDcPoBBRcYH+aNwEN1PJPGGiNC3+9dfO4E+cvxH2e/ePQ3u82wBwMhtmqOZDYUX4rL4XBKKcOLTP39++tNPC76sMl2oetjX//4f+L4Wtcm27XEOjwm264EiJ4Ll7NVpGgY8L5xKciOw1u8pdv4Dz7cbY+taA8e2DFtF27tsqx8CmKKmpFfZBs23UbS7bFcOrG9tvtxav3DuZH9X1+pO18ZYMgKJbOgD35w2Rd9+SDMCsK4YvCdA0UaHHUpYv66/zJfpjnpVKh0XghYzsAdl5Pz5mVv6Fm72wRu9Enrv6M7qjjCjVw7jVK8d4D2ne2RBLy1N9y5D2ExHimegtX/UzQnGxYb7g9Fsfcuo2q2EUohOr99V7RI8KonkrqmQLLPrZNXVamG/URpjzugBKGdPt8QrX0rCYq/zD1OA+AOBjSF+ezwk2J0weUxHRZ5999plECpxNdhPPoKgkwgDFqLDTiYHHr0bx0BHq86QBDB64n3RUvDb32f97+6v/9C1dv2HZxAEr8Vm2lI7Jh3LeyP0+qUlubybyYkW2NXV+flMZdeNqsGN1f88fTohAwwfuHX1OqdHos0rLa8BIE1bPrIzsrYxtdcucCzLJs/Lly8Wbr5XZbzWP39n/gQKlYaJnmiUadrmJ5obg2JC4a7aG9CrOqUrIBHKSJGRsUtkHY1g5xICYZIpwrquNLc+7LtzsRWcBkbci7KxhdfP+t0LTzoEXgMUkHBS64dfzJb2eE2EYrpSaDGMu+HPHQWYIC3tcKlIr0/qz1eqCNIVekKwdNcgDskqKyvjMAU6E/jVO9yjpsIH9/ILdCQewj8vj01ISmnM4oET3iW4OIFgC1gY4s9Ekra3BJJl5SAd+jQ24iiNmUR7551fJIpoUM8nB+w3ZBEIyQZ2UCyJTUxEvBv9/ufRb98Envx3yuaThUKvgT47u70JVeVmfXEPoA/UoU+7c/m0HE7D5JMrwkadcbCgKl848VWfkKPj9GphrmtyrI2VbFPrS2t4HLpocrVL8ezZ6nzbwIB9c+vl1ouBD/tdY41tC7UKIQMDnxOhz+afbtnI73/Ql5XOIzJ6QOmyArWgtFNi15xIxkfbmJmisTFInws8RCN3XHnwSdVM3z/rCo82G92KlLbmPrAjXdj5ak5Jr/dCi+pyvBgODA1nc2SiBDVXYunIz1d0bRTE+lciD/PkzKzsriklxNp46T0xQbwYBJtjozUwmTpdb5ld1mHsM7fP3Pv711d4PP9IEh6dRdMnw5wWFQy+PfAAWSgScZf/s+tGWWw6D+R4QFja/25y9B9zfhGoEyx1R0PQAPTjBwlxBzMT/BK19YkAPV/9aRx9/37uXc+iU+huycjCd7Lwy2Wc6E7AfmpqSCX/KllSMrEMDlMvrErR9DYONra0t9661abUAHMJpk6g6Npe060vAn7v2Nxa79jomxqc26m1GSywnM9d/x3fL2xcagMC/nRAPHxKDONnBWR+Umt7+0Td8UQWtRPKaTobLiVG53ceLo2dQKTq6FKCAJ0QZxi4IGu803e37BPjdN8d69p4x6KMWTc/NzXa/xQc3IczIURqHZTPw4Whxb18pl3GlBgssqKiquyTHTE96efFBGYvFbQIkBMHfudBYNRfky61cWwQ4sJR2UyzGeB62HXr65v3Ht4kRVVCjg4tm08GWt5xbVbE96t5GGL5EOOulpTxQhGVdB+GRLnY5PcghTtHlJ1Ny46GgOWTZRBrEUAIDKCG1C91J6Kjcz5N7KYeP95ori4qLNp49nESFGp0umWZBJsTAXcANLXMtoyAiBC+zLpw7f59qEZ7+5+5C5RMEAgDkE+lr5R4xzj0TbLeXCb30i1jc/cU/TtWC8e0ubg3gfZI1rc05OmpDcWxOCiXAgPI18i0JCGzqrbdagmGRBpIhmSDUXgp3c6BjyimU0UisTQZHZYJpO6UlCtzLVVV7mH36IjD45R1VG98q2hxuFdnXv/n6ZxjYH13e3HxRfUyQacjk5UaMLIU5rfnHzuAjESFp3NHhdihZE4g8TxSLJWsNyyzb4NBqbZeYtNxJSJvnpTOEeKLpuo+uzfz4Z0q6NWxp5mEEsmACsR57wGTDcznIYF/eERDTmFmseTUaPR7x7qj4360P7e7W5SdjAXfBPJHP4xmJ0CaQiYWHYcmIkIgZO4PN/54PALCPhZlhc+/3evE77JIweWQXvI9B6ZXztdo5BkGL0cH+JSGT1bzwThtwjgGTH+AZuDMhHLDIuJZJL02u6i8uF7Z1Vo3v1rWu7jlVEK99PbI6IUsdXL05edG9+BYa9KHfA10XFZ9Ulv/zuBl6d4cowdI4wm7dFBTynQg+iVRe6kEjQ7K9e04Qob64pV7fQvf/nctv1BZpp9zz6/WyQbsI8YRSBdxd7x6NeB5tW7ycDKxINFuI5c1tJELPsIfuITEYSX3+oWZLAKZS4jxB38yiUQac5vCoxqoeAmX20tn8+iGljpRwTcPZsDC76t70aG4uKONgaVSESuqe6mbCIPavdsIMWmV/UpvNol4oHvIPf4uRB/sD8v9Iic5OS6QkKzjwywnISFBZYFkZVbQ2aCg/SGfXyvY7xfPOFr2E/L1lnxFMzqEx8tbgeFaaWleT+nQkuh+24jLDvxO2AFtS8raZIt+o53J79UJVDWgpsjLK15ZdgRsOpa1e3QwrcB2odAtNORyoMcHb5HvKspadTYqMdnR1tXi1BSMtfFp8uSspINl+bXz+SxYTIjcrq9fXpZIAJMQUPNIOLwuEy8R8clJcWfoJ6sXpgdXwVFjzdwy3t8l3KNJrMGwQDbmnn69uvGsTm1ZX28w2cE5lMNlnswogxa8NgxzO5ikr7s3crMZS49DpZesEOODLzWlx4sZbFZgCcz2RVAecLsA+s8f/Htz8/w/YEbxzV+OBmJ1QEUpgXVL/HNIMLjOR8KKTo6MujrKBIRy6JHOHkEfjzgHYHNi7lVW7v44sJ5bOh3IOMNAB7JDGOigcH9izp9i90vO+TWpjKPMAs3IVN/NMw0vVOnFwZEomNigIiNgRRsVRWU6W6+ARv9UzufrBL02wZJNdF9A6NlTnadH8lRrjoHFyXXO8Fa5Fyqsu9a1SSHW5IFy6eVK/AXzUve/opL1XWYdQQDf0GT5UKAhSdaQTR67QMwDQ+meTm3nLCcjs4RYzIN4LzYbTcILApYCj2OPfXLxk6784YWNhSfuiVG3sQUSIkcUo2MmjnKya2NhtW/B7Ya+yqAbU9uVkixacqZGx2UGRKX5VldjoaecN9OYLdQSuhgn9jt+4PYlSjyjnESUMnBElohbNN81Xr3nAddivnPn4dcPHxQkQ6vO0umoQ1EkBCo4BoeDKgrBTFLfzaJRQaYUnsjKPR5BiY84QxoCllhY2JkwdOZe8EBCTAhY94FfY2hoVHRYFENM8a1YT7moIV+zvn44/b61OiQy5pOPgxtblMXnKT5EAb+AKSNregW9ItaQfKmXDj4dVK1N4BV3du6dCukrWufo8PBL09qz5w0iXVmAoaN1/Jkw4BAYOwT4vjk2XtT9LxbL3S7o7IFMUQjvzZWYsrBHNeTkc2wWvbyHDYiZxWlWs0igd5QLVKC9ADwtk80GEkJzq8M1vLj2bA1Ws0ttAxzc3AVggcfpGZ+c/urZ8PAwhAQ8xsTR5FSBBEuAJEUChJMMDIyuVYP3/gSZhNVTeewwRsrNmSPAofNllEqDi30PFwugWy1kqvVj+lazsCi/9ubU32f+EEWNCg9l5ZDlLBIokRHwaSBSzYQVCESEEBIae9afik70gwAzShTxT1E5xONHjjOSk9Egs4sPpgTjKPtuY1L34Wm5VyN8H1MIWE0bN8m182hudPQuJc64+np67ukOtrGRQsgFJR25UbN0Xy6yZUfzBSXEUhbws6n1xDxoFUW8ToO5b1TtqrYPQGqbszEpM+tFSuHii6wE7uKwu1B8NykATHJylDJ8Aj67OzczM0BueBNIb+iCmGlWW5emBBoBrVLfwsRpc4lHRL3sGhh4UslqNDr5ZBnc6aZtj+Olw7po1dsMNru+RW1UWF3bix6ltQvmF6N2aIUwoSSg3GNBb/AuWDBiaYWtY6DnPam/gA7MwJYTsoom8vse3jgTfDtYBccom4HwBtrVdrKBzpFVC/PzW2vb20fa57+8zKKSUJjQxCGefxo0ZPF7afEIgYEKjChiyK+/vBWWmBiVSPHdVxHhi2O9d5XNi6qnQoZWEAgWK8SMoApkaqp/3pHcXCTSJ6FaI8sI5DieQGvuXkvqevRo4UnfN1993DZ92kvozmVB2wkaAduYns8RgBaku76EJS8hQsp949ObR5Nmvrr34CSDjpV1dFSbyHcbhketpuW4OJOzo//CLh2Nl+ewonrtvXKhulcUxxYI+G8IqqQixeDBwbrXffm8dLZd2MjU6GS91DhJSXlMBT2EUDYWB7FDL5+Pg6b+lRPoqGCRyDXZbMCKq5qfe7Zh7dienBwFMxg7TOrOI/0h4jUA3pqswOycY2hai1mpTLpS54akKuwQlVY3obg5cw8b0RQTZ+OoGCquUQlHcAtAeA3XrZPj7TODwk9gtHaDhOLxeFSBnEo6HBoaifCPhDtpKBlY7TzUvs/+/uWvc3969eo+H0pQjO++RBIRR6LC7ZQbJmXER1SICTFNMTGkvKjDZ2N9KL7rYxr+R1zZqHW6+YrC2NrVN20d6Vt9faf50U7BkPK0/H43mPZ0i2xLvXZ7CVEu8oLdDMk/Mk/x5dP/POrbs2ocJ8Q7NaD5ysjYMo27JztAE5tFVhu3pGGIPBZMYuRLHMvLl2sZAVdzk4/HZAIkI7y58M3T1a++aY+k52oKNL16WSBaQsgjsUMyMgn0eEjoR2e9erW8/WrTA34bdl2vrsGiHVjU6cAaZGO6amBy0rrmcNkBsa9JB2fzKDmdKjFkNpqjqQZDWRk5s7BdMYpFE4n+Z+qE7c2KLn5EhRS6Y4IJFAkjyrGifoXMZu8Ydnlu3hudUIxOz6VEISDtLBbYIMTwA9ALf09Yisrzh7opdd9HN27989bvPj3rty/ejxSbigkOwUGUdBg+MxAdBobcMTG+GIClSIm+mNsY385ZWnZ2gaxrNKmwtrmuFVo2haK2bXpu7s78M4184taSKAert5OTCnLqgZlWD+1wKS8qNbaYevOrb56CtzUYC3/rioNhonK8+tXWW8+Ie9zOkZSNla3vVgTBfxVcOUIILPSrySfjzrAhHio+rO1a+6251zArWO1Xi+IMSjK0LIIoX3werlhKyiCEleCQTW+3OYaBdeeys2MdumCb1gK2hCZrF9M+oIbuc8DhFjqci+tQItSkA/MIbxDRRXraaaEj8L1jfD49wNRqnqw9eDwkiC/TXGu/otGq2PXQ0LFms2TAzDe6J9zXM2z6kWmnYn764Xx/v+JXIcH+QcGRRPaptHBIgYfbHYY/xMhw/0g4VrHX/gB2S6c/uupH8sWFpqb6Bp0LE6A75bSAuLAzfhXAUUNiKCgExQeCXR7H+1L8NC1FI0V3x+enp/rm68x1C1fUiv65mb5+avSDApYIm00mt925s0TgbtdTLesvvGcxoWfz+m/c++bR60cP//Gw75Fj21OUdBK8RUfubrkmXeMuGNR1vNh9EwOlQiiq/Ixqa20MxiJrBF44DleBLYBt/XAhv/np1Ki5KuVEtg5EgdS8CBzwmeMZZ4hwOgdZBiy7W9sWj7HfZBmwaWF8bQDhKMjfTE7j5KLHNaxvWLZ07tHvgRoqDfSi0dSikTspQpddR06OpqldrtGF6Yk7l/kaPq1x5HORRLqirfcuWwwul2tcaB11jzpcaleXu2t69eG9OzOKpDDYdPFB8SF73f8lqOhR6ekIRGW4P4yMo97/60ef//r9nE9/8KervshTPj7x4FwbEJ0QhkdDlhwlRsqABfUNDYbDFAxtMQcwSLqmaDLlYMfqxuj0wrxiTFakMLc0DvbXaZljdXw5VsS3Cfv6bvBNGYENdsfaekglEiWauDc483AH3vcvb967WDgOJOcWoKwXTtZVlzmrC0e2Xn2HZiNQ4AcMQXDDDqtnce35RgBbNRJCqXhvZnXjgaKxCtIF5p62Z5O55SJwegDwNh2GtQk58vt8blWhBapL8/T8jlsmEXHoe6BnhsRg4u6aXMYFhXpsWDe7XBN+PhIn1pYy0Aw40GjM9ka1UiOpJwRyq42FRf1GxcXk5Bz8LFYSF3eOrZ2d9doMhgaPTGkf6BixDi96nML+/qn+rsH+/Kr9Z4LQCbgmJDiNAJryfXjPeVjOw4jYdFLO6dNffH7506tffJpz9Qc4v0s+qeAKwUKDwaxfUBPlHD3sDDvzp+dA0YsDNT4pFBWPPNe48PHlD5PqXvePWLvylc6FKZmSae5fujY996j2zL4fzSV17ezcKbqSvznsML7YXi6lsEv07VV1zTOD8w8/+8vfalOOYDMaIKMHPFBaHQczyIY2x393g8LhSfOPET9Zg1lTh2Phidq0aU6oON95o9lszL/2u5nVR6t32msL8kglPCJUC4hiMPwLhvRbLLmKaV8f6Jie6lroB7MHCR3wQQ6doJPZnS1AU1kYU+otK152BZAPpGzwAgmpSKBSRRlYmkQgj45O5hT1FxbWKly9oPKSW8DRRnqbkqAFKfSIYNG5bIJGvsEz6dJDPBTE3W0oJvqaDwUcC8EhwEUMGOiAhfjDT4cRoaEo2KSJyd+bCXxBBEJh7NkgygGf4LNEeXduCET8VAQFZWHROHpRQTSEcwODJBHl70/xjRsWXs4uIFetToyY869l0/T5ihHHRnvj4NzNez+7KOybmZkBmO6raaXrpdq16dz6Dp+Vp2tL+qj/Qd3UTF3tZ5fRYibTBkSDlIYB18hBk0lkeflKcvvSY+RhDGLZs+iqhrJwYRKesR+GxKtu3mwsOJlNbmy+0Tw6P3NzCTKqSkl4efzhCiQofxMyy7hJd2XVZabr813G6blGHXWl3rAMNgWz6pGxjmmwAhqFYOPOFe0u/OlIBPi1gz//GSq1nkWIZsTgCYQsw12jRl9bdQy2S/fnIhAZA8jBUO1lW8PkY4ADc3fblsxj7YCk1v4Jt3vh9cWAK4pDfhEUFOowmOt/n74N+zMxvPJwqD+yMvfTn32a050b9UUUinLgQJpPYtTVbhBsBYdAHo4vZFfEh2VjUQCdYir9Q+Hw9U3FLyV3Xy4w101MTea3QUhn18Tcs+cbVuPEV19/VtU3N3OntqW57+9f39i/vAgo3KLn2PjGwcYU2qH2m7WjXbX5N/9wwu89Gp9Gzsg0WHYLuQZViW7bQ4AB3KU0DE9rVxfKGrIWnw8PTwKHdG324L1H7Tp5NFS9WLIyf0Khw5eQeFIwOmuCiR04Uq6ot0wcz3g7DHrGi7r6+4RSrbdT5QUiHtOqlI0JBECtBAYZUPIiAAgKagoH48WKsBwW0AyT8SDZiSvLwHJPavLrbryLuSqisqkiwv6QGAnTodboBzI4IMwrLRmwA04OL42zY9NqnBy1GvWF2GowydtzhQ4FSBmMRpCIysrw8/6hl06h//hpzp9jIxJBjJR64AOKPwp4YlCOhuw/FOSLwSArcEFnUP6ghMK8A7/ChOL2JDZX7/Obh2/UNcrIS/ejx/JTQK/ySZt+4cbqo4XBi0evVV2pG5z5/TmpwbP53WTfIwiUdFfxo2WL7sGu+QdPb/3wXOrhKHzgMZUBkuwJBLY0cLeB7gM63jTUskQH+C0Zq3xS21E4+m1X9Rl07YMWsrzXXjfF/Py0hkvj4zt5IeUiVUjT7Qqw+Gzyo2eUbQ8s9DULW8hWt2KigWu1wdyOUE632ZXmaY52/ZVF0gmKubyeoCAKxb+CQml6TDC3GAgCrmgIDfFrJ7GaKynVKSkfJohEZ3giPrQjtJZGPZNLtthmJXQG3UDjcgqrXTLTlse1MGx13WWCY+HNfXtzYsz3X6GgQAYSZuoHpy6dOpULVjaJTRHonLOn3nnnnVPIUP9Q/0QERCwcj6ccuBQRRYJeAPhHGAxQhCG2OzLSN+pfV0uwRULFTouOfC07WoX1dLxqznfCsd3c32FPuUj7Zbas+Z56lr077Dx27+lrSELbedZ47HSbcGTn9X/+82DwRgSFF4lmKjMYbyx4CAFm0QU0QhBMXVH2xUWlmiOi6XeeLE6uPZs7lnRlsD2ZRQ0b4hRNz40OmjTMBIilEicExJ2JqWl6nAav7+w6p3BwDqCXpJa5QaAMmCUrWq9KClRfjv4ek7PM0cIA0LvHGw1uaqKALejjx9JAyNlnMRKG8HDSZh1tE6a0NCQIloaC4/Nycqi5SzYZnyzXAhhSWkoXdwIv01ZWaFp+NWCcdAODIDMrYODD1gTk3oJ+/7rvrSgCiEsfnEKeior64o+ff3HkTGIOEZbTh4IDnhgqJrgiKAIRdebAgSBiFDXsLFgHwl+EvIjK2ND0WHD/gWzusrsTDxatLddOn/AsqiSe6qTCa1WDPzpwfGz1w6juZA3WoCy12BsWL345Pzo1P3enKn/sYAZzdd4NGTaP7vCpcvOTlsDgNx7wPYRiV7Qc8fjSJZ8jBfmbTNtKZ33Zk/yRcZn1ickxWWdGk0RSHkMArK9GmXFthCuuienpkcoF1PDbSFyglBE4YFL258tA3Ox2G6tHGsQ8LwyXvV6Y+rUo1w2lWi0MVL3b69uzcOlVwDFKIQGdHtpuFHElk7CblXlSWHdRg8OxiMEVOGJuIgp60vvy+6Dnmi3N48UZVF5vL9fy3XeWho5Nz+TkK5c1ydg3jf4BbM00eJAYDNz0CB9M6qnQ8+HA6/5jTqxvTk7iqZ9jfNNS98A8SOwMxWAoiSE+GN/AEIivCAevep/bPmm+QRGVKF5uiRyb1JCZlX8TyGhFczCgUBE4I/O1beZCT8NY0VQboYTaTcK/F7y+xbE2mv8CHM0FxYM7dVWKkbmpb/8zM/eoD4b4z6aT8Ow343MXMtkhbLbf7du3ayq+W1SXCWiBBAL3ReuYY3LyxaR1TD2qB+8mhjiwN29oCB/ANNm0jGL4kDVERPjtxyj8OQZ9IINWq9bR467392cUKukrYqJXu2zTekkhgYLvYGCurC/ttGwDch0cDnx6sK/wB2Y25A3Stfg3b00pHxcyB5v5ON8IwH5CovIS/YdEctDLisALgQ7j+20JIZkr01k2BzwNL96qwF2r2mi+mP8jsz+86mmXMHCOwoPwSQVtT1plZW7051+cxZw7+JGfLzL10qlU0CgA4yHVJ5VCuoqkoPuxEUHIeJ6fz+1LPuE+vvE4UlQvn5q8Wa0pa2GeiJYV1RZ1Jb1pGN25p1dyrw+fJDMLuN4hOpoEw1jv5mwcAauH+n+wWSj8df70BgifXz999GDmq0f5+dVclfiNye0WdjJCAKYRHxGdlXrA5EFOpVMNywObTrWsw/rkSYrSLhqi8hh0zzAZKNXgCcCTkopDw4H2FVrxuIkRXBHMtbH4XJ1kf0b/DdUZ+t7to9UpOYJNumqXWt8J07YWndKig7e3Bwcn7p5dDasXbnhBQAA+YTaTeY1cdjKJGlsBQFoTkYgL5lHv35fnyIHELhDRgcts0TFpHDCtd74CwuL6q1dbGXz8QeOIC4PBwO5Mw0BFj0SCf10anKA/P5v7UfQXlT5N7370Q7QvMGvf8ScBJfSDcBQC9PwhPgEfRp+rQEbIEw9DtHwoct+5kCCc5Crx2HiXsFEDDjYSpt69mm+qfrYxzjlBrjMn4ztVgu44SyAh1t8/JuG7ipAYsv7j9mc3xz+50l+lGO0a3bi3s9q/ag44Ex9SKn2T1dp1JaHTRkVRMofVWirAujo8vGEczx4xDkwuyY6AKKIIvKcYkrbVdo+iPRvljyjlpVOa0uLjoUKPF1cw3nL5NmwAmhDnNHEPEbBg6SvS7o2rOgwCSzk8IqHR2CVbX7es9JwPRVbEIw8DrTDsX+WQNElgQE4HBE0eFNj8Iirim8KhsfZPhBGlji+HarS3t1QspUtsA5yBAdPmyxdbL75TqdbXbWwMJlK6N9yEdpNX9dv3QuH8jK3EpKZ+kBqbk/PFkcrUsH3v/TEX/efKykpk5eFYIhF6aSo1NsrHB4r6+ApMhD/yNhJz4HFiLiuBiKdmWxcmFEz5/WgWfd26OtHYcHcA5gn2tkdVrBIv9lhYQDPXlhgO+MCKVElT2g8WAohQ1DoxN9goa9mYm3J3qcsuJoSLV+hvxXfjgmOkWPskWayiCSw6g8Syu/LmTcOkw+OReC3bm1sNfhHHeUSpuMH4cZzIvDCYADF8UUBkrVAxwL0rfZYdmEGgwchdzOBsZfW7XW5FdP2eV5XEZN+Vsst7Sks4ll6tpV7rBK/USiQyvulxaGgsKo/KQ1RURASrIDTmfq35EFl5LijG3x+HAHSYVEoPpIE/3BI4QLArxFKpxTYAPHMHtHG7K6VSaMFUp8IvwQPjTYzs0Tef7fGFoxJTf/7BqQ9OnU28eja1MmpfZW7iT68mXjqF8YFbKLESNcRi/fjIOcwBH19UHunsgWMXDiH8SNTkaIhe/yFEEP2ypSB376iLIzRgA7mBbyXui5fb5q5RVcwACAk7FDdyMA2qK//OARlTgx1rHVloqO6fahQyC4d3HgkL9WNfX8yC9/HtmxiwiReTWEXWaAqpnsM0KQX4BEZc4drkQBZBlUkrE75cDvKNoJQyTFN2HkujmFN7mmeyicHFQaBDRDYFdRKkEJwtyMIn7B84caG/v9AlNBNguKyFw2aFDcBrab2lnuqtryk1yQIji5H+iIo0ChFaLBQuHPZqMJcWkJvz4UQ0tqUoKD0IQgNx6LASCPPNEFCHqHJtVExTfGknXrIOvBTX5Kv1Tikogph6jhQDSxlSfYh9vKp58N6Hx/fWE/QHlzCnTmEqfUHc4YOJqkyNPY595x180DuYU6lnr+bmEnFHInwgLJhEPNvk+fgYKJ2pchb+6nF9V3vSGTK5mxWXTGVI2QniTIJUNz9nrm3rZmUGsmKDEgIl+Q+aoNo9z84iZ59olGW2Ko4WdqhThMyM4YVnL7asC49m5usaAt+8eQOOkDHpsYEBOEo8MRpmoaBuiMuEBs8h6ZRIVFxm2VawD6ROBgcyw7Q5NPK1a42NhDNsVlz0Y3ANkoLFLB69FxkO0cjuYzRjtWHSqC/nISALVqXczisu3tOH7yEkNbPeAW9PTzi8NeGIEhIKWr3YGHFQQkEyPjfndFfy1bCGhIrYRBYJnSvAFgQKsGAnsdQrAkZeT+ds6e6s5ZXH5Zr1zu7Omphxkqz4AwfKrp+omxprqW1uvtdXB4mRlR9cSoUsXnCHx8QmVmJ8fFMxvtnmNqOVFoI7FXs2+eAXsam+vrCeRxLP+mMO+P001i8Wl4iKuvquCfuu375kuAO7wb0GiqsYNEGqlU23JPPvS8rwQfF+eJhAh+GCxVQ6WpRNPu0YONox/sO7eqc+hZb0fA0QpefPnkH48SdNFTFvVsQV4DEVSglmMGAEzR5ikRKkDduuRYMKNELry1nBCSSYSMcHs2U3NPpk7CfZcWG+FKkWzXj8mII8Y7AJ5OJgXEgcQ0ovDMwyJ+lrU8LKd0vLeaU2mR2MFEGORyzPq4mUejgub03NeQoSuVdio2KDjjeg45sCyGg8O+eaHc+DIMMmTFBUiO+QSIQXA/MJLBMEPKD6pBF7ELvf0dfhbTfszgIPr7fhQrXvgUOKmx8rIKo0pQjin64fQlR+APdTOPDr0kJjr8am+jAMhHPHySOKabeeLzjCQm/vT0zz8cXAimKQlaj4oHMwLMERiSCyCzuOSoiH8chVIhWkgADxM5I5BJVB2f/Z/K8CAig4JFQGxLNph/1RyfzcsICMa+bao+SBgAvAn+kVFT75dt7T0dFhXOhbjdtbz56YpnBUcJ4EyHIWLyEBlpO97GSCgWSmlC4XdKz9ikfMQ6CainuU5oLmNkKGVROQe4yGCwF8gfEYZFAsgUqaIGdypdI3FeK4zOg4giiMDpS/eu8KIxIB41fwqoMs07Axu4uQjgI0KG2vbQ5F4pkBMU0U+n0qieGLw6GieKDNP+eHRFJ4yQLAe/PK04G3LC1O908DBwnxyqxla3nd05ApkFiUk1M3f7W/daTuL60dKRllKYDqpwQiUmNDYXPGosIxv0iE7Zl6psNhb8geE9aNjJj5oGsepofgfP2QlB8ejD6APOtHiYiI9Y+C3ik2IjY2wm8f5FLXMMDnqBhSNUlKTbRElQ3yrDsnjhW0HKMgoDpAhkPUGa+k9L1jtIFjR8knA6KvkckirHPnP49M0OaMKcqgB38D+MTjx8im8BhOAvAr4YOT2FLoU7dnPQ0EaSlVTjOOJKb3BFUUw7yZxVqKJuJT6kZHv74WFMOIj0febvKlIIZ0WXRCVgZdyg6OL+2JIdEJWBWrBND4klJSXngkhCEIONuqYpVlMyHt0u3HsJhN4aGU+Bh0QnBTEL47isimgAgL2mwiVcvANIUX81gIKj04MgZi6IHkkx4ZXgziw85O1XbDeP/U3GgDNzPu5MTFqvz8X10vvJBZeKW5vTklAXEYYKZUzOVf+59NSDyLTPU5pjcbrS0KyBOyjjGxTqPbxTo68+D3ta9XW34SFUtBYnxAk5j6M1+4In0hRZpKkBICqeJgWNLgPBsZC3msLf1XOhyj7m8GfxQWdNgfCWp1oAMPCQQB+49hsdy2aA6zV4QXrM1Djn6duaxsXxAENQVD+4e8JGb4Vfhc8qmA+NyVFdhoql3Vm85SnrhcHJKwiSiVNjWJRQwUgjQk6I3CXixgNubk1qNj2MeRYnjr/fNYCQy0lo5WgQNBT6dYjKep8sqBXVgP2pPDwICl6sbMrqY0qSUYsviRe08QRBCHomB7JkQfDyLScSh/+EoMQkXBIZ7mvycx5SE6wXVvzz2rZyUNEwpJct9JZznCib6Hjxq0HKew49ZFRX7+xcILSSmfmGs/QYsRsQAmn9r38cxvlv70g1RU6r44oaIlf3hk1Gg2qss0raPmtoy/AO72FBpu4f3kM0GUSvKvz7y3+oc4n0sYn1O4+tnZTq0hEI2OD4lhS2gq+30qZ+0gPitlbqdrsBEFmtBwZFoqBkPkHkWzCQF3UzTyXjkAOgTjt4UZw3OvjQERFCT0Kk3AT4v/39ZbBthv3WbIdRIqm6GC/La3bHE5KSovOKaELbXEPI4XBQPayaOq8z87zdvrXzLPiAnBj8V5PcXxe6K0kJAYcaYYMrkEyjibnMVDgAKpvKS0JLKHVC5g6keZhtvImvP/J+lMoJpKzzAcED3sw76EPaRhD2ugIazqCCIEAYE2BGIhILsgWQhgkLBOZUmCFEJAxRQRGEBTMGwRSJGJQZTdZUZcMDNtXaiDVtRpp1/aezycAx4O8N17/+X73/d5YTOjYrWl2DqqW1jYej3B2Gp4unQ0GvuCQ8MBYe2uBTyIEwhrRBF4Z8+F5RYVETPBCQia5tw1yEwkUAU0yaPtBWEVidrAB3Jdfro/DnuD3Cs5ZGOEcLXTggDj3/ClotDfl17+9tuDqVQqr4U0Pf1UoQLCP20Ttsog3nR7U9wn6JAO/jj1R/p6d8f2Ygt+n/ZJCwfLc8D/uHDXL++UWbaKem92CeN2e0w/t7qRzRZcBhm5ik6hBkumDHxyqXl0DgWVBKah4OxLc58W8JN773blYjxGe6BZBTH79c3rXz9DbhEGo9HlHWSS/fnm7M+XfNzqiowzg0+V5EJkBuQoOUAuXkRw+ZDIHAFxruYuxRh4eZsdHNxS4A3JhDwwI7NgWCokoYPN4CRRDXDSkNMBVXUwi8tfWzv3MwwrEMYPF/SCHBFgsLQ92ozRQYrvvfvxkI3K8wIgACMM5uSJrAgE8BXgdNW7KIuIOPX4BxhzvRqYqTRJby9oRDY3N8dIZCq1oEE3WsfDygOdxuF0ph9CyHp09h/+XQNzaevi77+9/O3R2Kg2UnjT8MzYKsgsJKttk6/kPQD0kK7vTKX1ba9vfNoWLWzDRpHHOX3gpPW1H2pAkgStNhNVOFejiaYRHNfn7HRY+hD7OWkH1Abg11b97oeN8brx5knOYQlxICFIuZaXFzmbk9EytsSVbWLVAE4K7MnPv3789VcYN4pPwPpabb9PcPb523fPubmVZBHPBpt4o0azm/cXN2cSob9uW8s7XWztYOQTkI2B7xwAMRa0G6DhYOAWbHw3z8vIyMAoUMMnGHg5FsARIYJVLmO0enS0K+sxbPbht4J7oK2lZQpTkrGlAcYmbXB7e+NdZQhGWw2mBk3o5Z20AKd4cbG1OrAkiEVZeXf//YN1s1u1jAyHHTQyo3txZ3NrrI3Pr7jh7+wJ1LXIhikBnUHqRDxaoh4+8wdck3inJzSRZO/r8hsAqfPmSNNj8mlJL5xlCJVbC4OD4uW9B+WgrJS++yQd3lwW/8iWbg/qG/7wM5BQIdb9nElYTjWhEG/qACiaAGGoF8Iyq+vtyAE4vGuGVutvz2jEx9vHejjWjUTlwh2AXH3oO8aEzZMba3VPwqP55GtVPeH6/OtnTVVikUH2pUC3gJtvLwRmX4J+T3agBlp//+fPXsVumVpumZb3edRi2AsH6tmoyjnw5GsLGPocITAuQM9n5LEJ2t/ACDwbYDKGSjsA4OFaZhFkAucHXHp8VhsaQap6wlsDwEttR6Ja4hREZD5a3l5+qQn9H6gl3CA4v4B6Wn9tDcSroP7+vLzvf877989tipmVsWleOLJ+ZUkhXmXiCm6gdXX0PGMPnWdSAcnLD0UsDh47gNn3++NA/VRsS47/Meq4bpx/yyrEwtyWT3Nm5KubEo6AwRGDda5CJCJz5Hsbwt5BxeLg0I/ifiByE69ZZkK+fY2Z1f2HjeVqWm5eT9RONBto2doSTWq7iCAr99JWyywJ8g6yNSw1N8zQwAPThuiW9zk6fRSoLtXlhQPwxw08eVL85cuvqutLMUxNxtEZxMC8bDPSRKAReO98PgdDCubNO1YezV7QYjNKwdthLLS+RtiaxA6ormYjFfGxLtjIKEknM69z7907KdIrGIS31yyA8knMRJhaO2QIZybunihW3b2Br76C134ALlhSYJrZ2+BDh5jMjXtHtb82NYUYRmhLngG0FtjoTEHDTSw5fx7a+zfn78y1zSzQCXFYnQLy3MyiZKqgItTVw0fvSOwRHX+wajGHhYjFxUMQOfEHXYZgSLJ5jzvTO9RDmU+vqqrik9qEvbNr85tSNqAKNnZWGIKdzUGKUPqjiEJf6SYJV9b7i4rAVABUH5Bo/RCd1D/qginOLMZoPzGK8LJptiaCi0Q9MMVLTe2A+bgtHEz1lzga2/g6Em2N3S59+dwejkKhxvYGNWN9TkI9VdX8ONdGnj82sB+I/yUpp/LcfNpn8yJsg2GEhiCS87faWnqPFMOMgbAtYeljoE2G0DPT/N/zaaRu6JaSAqsEn7Co7KVPW7Aa8wEC0yUwDKmYsqpDs7PeRsVgV4aHL2BUEz5CMYutLWKtXAy6NzaePXu0/Gxj0eXgftOv1SAz8GvoX6jyOxygmg62TjHtMRciSXOd1Cb/zlSA/5U1yjjAepL2WTkft/L09HRFf9PAbypootEQfT20tIo//sYulUqWKBbWRYMibvjcPNjnG2fJvSTQGcL569LK4ru9ldW0saWdsUYJHLM9WOomtMpEV6E0Z1Vw2UtFWY/zAvJnPL00Hdyam2FB6HbKAeFgqG59RgtTrKX2268MDA19xxPuZ50Ce76lenBurkf2l85bwmnF3pKMk6oqyecvv56Hm7QhjrZxG3e0tLyUd625OfhcTYo60Ta4ZPSOBz4hv1O/GYAiphhERisZrwkb2RREM0ZVmuJrRFAUG3kVexQqmXOrWzvb75LMLoDJXcVycYCEvBOqLKMByONoPukhUfrnaYPgXd1dTat8o8d+8NFziMCGV/75c6mmVrG6JSvFwVpLC36QBSA0TyHOtWv43MgOjgPFdRoWi8L262PZC9y2CZpEFGrnY1/mBzqghoLT9RX+9WmIqUrZs0c9aWmFqeGcXhptQbTeTSYR8vOrWkhVPFAflaCEbF5hoeSdgiSQCWW0vR320qfNTXKCQEiPzyKC1A1atC8AfGxY7IkyMTRIyQRYB+S2XYJNHjEFXD3aB9S+/u1X2r4u3ln3vU2IgbBUPVWXEZDt87mpikRbla/uyHUxUM8v9b0L3XLplpSSZFnqHgQbPbgzp4JriFrA3q8LG442w8cEYp5AVq81xlS9hJJEdLPWOgMQoQHV5QVLHy1Dr9iqTbGiaaZ3bG9btqT0A0Q+gFPBG2Oqnmld7Ka2/8K+J4KxFeV2PQzZFmBv8CrcfkS/9+z5T1OV4o3lxR971JyjOptu1xHBoAErJwS88dbW0BDNpfm7BZRXkIfqsdWR0eYa7DFOL3+OxvCMPaKX09BE41IZ9dTwivoGxIMF6bNnQ3Q+Vmd4jtZLU7Bp5dgGHIQE5DPz+xMSqlvyq1Eh1wt7pKtyDpvQ2vd8iL67904UR1lYF9MdNTLA0Af2u0uwlzuap5Grb2Ji0zzghsHcrdECuF8E4gy09LVNMfsQJkl3A0z+/TbynKGbh2NGXuwl6Malp6e9mm6ZkYc4mXtpync293ZhP09prE2wtUwKIhpbYAxyTWqIXuqGRrZ5uef5zAvNMFU1WyC84DxR3RGo/EDkwcC9gNHCC6EOnmmBQrgklXNIrWOfNja3Oc5tJRFaYHdXMTMsT9lEZWRPM+2WVoFUaBdeoKOtDVB+7Mb2y+V7DxJ7frq3/ejR8rFUBvn29OQsJQWhMhcgoLFpAcE9P7yeG44KBHxNNwqNwnv4eDQ0tdxAAqI11FnfngQr+oJDyAYGrqmjB0GTLEI+XWGZZyhZKVG8fNRDTTULfctqj6pFxdWWCxdIBFRcHLqNwhcvUOtzwnfEglaBbLEip1Gxtdfj6FRUl9GfVFOXchZMEW8mcq0+hN01ylwLqOvydnAw/doaPI0G5kC9yTkfcOtfP+t13e16ERxrYn7EwO3n7C83YvypW4r0KlJ1Od4H/f6XTzu7u3sKCu9hvK8h3hxaFhgTlneWlgWcYoH6/z6vBQrX/OREsVcx5gRsFxEgFLLUguETvhxoaBQRKOJCjrGERh6ual39BInL4rEdxtkIB7DKAafB9gedLU4tW8EQS8nDdvYKifPAfkFcceHzZ6J7P/U96Lv3aKOv++KUVCGgVlXJlQQHYCRHILRASQMnAPuMq+tzzKKcvimP04lGamTr+QOi0skPFxKC5TEETP/OdGdnXCqSw+Eguut7Hg12lCWWXexYWO9bXKxHu+hfuNkeBVEBUSXjeHhOUSGtbTJUKnVO0MoQstMacfVbezIIcB6SXlZReU4BSNkdAWB9IosLpo3bCf0/v42B5EDY6TkgrqmfVLNF59yc+M+b+X91dX2oqXthFhyQZ+CVe+HjDeaN8w3LCqYzvpaFum915+mnPeXMJ7ZiiR1nkqCogmm++AWB6KaSf1zLtjUpH4W5HAYSIyNYkp34+ompFkgrApsH/j/BG45rGc/sro7t7oLYvJqkXFxZEYOgogFQoVDNCBUxlCjckfhPzyyJGNPTLQ0HD6SlMoaO/fTsebfgeWVhWcfyxtTFaZ5goY1ZzZ8eS4JhRf0EjLkWKp/BSQzWP0RHzyQUGXclFO2hh56T1fsYmzsh41g0GccfN0vuKGjANdHINIR0U7yxtHD6YlpqfIGcLenuOP4bTY/z/nHohKQSQAkFeT+EgEi8k5UOjk8hgHXl/lWn2a09UjpE8KURgdp5arwotzHnjLWDOnHk6YekFqCVJIXdBcQpdBFgdLX8rdHj1+8/3Hrzn5bJidHvAy68jrzrY2wcmxvzMeYGTgq8Fy47ubQE8E2t0/Id+eSucndhAeXNk6cXazd7acCpMOgpDCCJSy/UCraiqjdbdZYGGwBM1nhy3RH4woDqgmY7hjD8tHdhdZoVh8ohiSA5BCwIGcC2UF0OKfCBtbcSOkyWMyi9beFYQe+C8yExQ7S8PAWxZFhXHP3eYLR9BZpLj+O18ckmJxyMHCzULMCHiMjONVB3KksEkrFVSAESHWqmi+NJThtr2un5RaPpDH9kBRmiuSTdDD6Zj9iEuXBriCvgnHY5xG+TCEjU+oaYSBwOrRumF4RvN1G3Tb5+9YqGjoZzNJJSfv27+MuuyPWlG+f9UfEmcCbmQCQWjawumJzKTHEYDxtlrck/vLnZdc77mnoEuA9A3Q2Wj5svQKY18Z9dyIpIBWV7i7lBDNYv+kvsZ/QmEKD7XgquOiVfyR+mzUwLF2Sr7Iox6cW21fT9A5DRezbw3Mfv9fLczPEoees5t2JYpv6vfs3FrOgRtoCiWwyrxf8t6AcGdETCNhL8m+1uqmXJd8G0qJR6Q6qe6ikrIhU6XEtSLglnhKTwRiXTk0BbYLvYkZkdlR31IRTIfmpgy9brKzd7/kEJyWmT9+qqaQEw42QziGhSXn/4NyTKhCLRen6406exzjporI4e2sPcCZeKa+ipR4aGC+gdHX2y3noqFQGtp3cbK4vStrJjdhcFjI408uIQ2ilaQ0cnWiOoJCrGUcv9L46O3sh4Df0b7Na4+0m6VUObe+nt05VXHM0tiQHRJlmot2vmlloOEE0C+sqna2ujYCfMhHdMPROc9Qg4twEx5vcfgA6qfAUphu//xVyVk9civ3h8MZNJpJuDG3TUxPB7UsuYZHaCRFIuLAwNShZmjoDowCvT0AM2vK/WGuZRqFtZsP0ZeFLc/P8dkR8BfPat+RjQ58Bn0CLSb5VRWaMgcR8WEsCGLWjkKBpRROBanTgRUeJNJtUVFVW1kedaeBTqUh+Tyh6UlXmmsruhoBCHy52iMgafAf1sSdAadp0ytiRz2g9TkbapNWCi7pqBCdbYPLHMytMVG2oVjcSHuDrjo3XRoVj/8II4Z2d63+kGejeXRupsQJDrJeJtsXSRC3Wvf9Q31fdXRmoZ0tksEjxckKuWVDKeAr1j3cu6+vrRDArqId6qsLuRh7yx80kmXME/FInpL96Ohr12186E4Ib8zonhibDqwYdESP9VFRORUtP1Jmykq2v0NRAFXk3OTryXv7+9qtydmbsTcwNNFQ1tPluEUYQlV06ThuGstGp3Z2txe3BopkKvWSvT/M6E/BWkya5OusbCCYAXVA7KqTo7HzB6SKhupfhBd+/kSfjSkaUhnZbGRlZ+YxUBAoUVO9xB0Usxz9uv6gfAiNx6yxvuL8piCeeaGloabtC2+CQujRvyMHHwJxGoXqmc5UfrXOnm5go7HOXXDym3tBXlhWZopsDKVSX7ALijt+dlJ3uXI55YM70rZezBvkKreCsrdCGyDBsT2jBDYqxzYRuZVoBgsxncdfjRK6ucb6bWB6cGp7DIkPDIC7l63kFBtsAC/JtjsmNQaNJD/SNWOMr9K046UWTh4CKHCwIGDoo1JXM6lR/GylDLRNTdr61mMUdrx7c+Kf7ZhTir2ptcAtbVCBA5akdHvwcc42vWm8n3k+/lyt1X3GH+MI9CEcAUSAFrYyNnro3ZCTH2u58Wn4k5/NWl6R79o5235U8nJt8r3z+9cQSkKm4wWqrKeYTJMrfxRt1PIDyMjTE7qdqN759bCkc1zhPyW6sIKOC9KsBmvL4k7F3aCToRcco7Ib81rOisd2NTI39mvr2JP8enop3LKK6iB/8AkaCAQb+3KX2+vNydcD/eCV/e00HIv2libW2qylCAFhQk86mXGttbWenHakQleXh6UvoGK2Lt9D2tsCG4OB1kGqNXusxl8Nn0dISMXikRDa5Il4cGFzfFK5I7f8SG4sIjNWxTLC0hVfV+iYa9oYkT3s/J184sofx6sqO5c0E5Vda3uQT+g39UiEIsA3hr82+SsqyLSsI6q2rHg7xJW78s9o5kwkrYMSDsMVQU7Nn9o5B0eIs1v3b7/cztYZiJd17RsZCOGpe2yC6JTy4VcHM609sjo/2Vn34ZXJEoaGPc3oMHh+XKyaXV96s7S0Opd+Y9mlX1hDf+XCM9Ut+ptSRIRewxgfNaGFDbBBM5ra3VFN7wfG17FK6FLF9dnRkWriz8DdaRsMtJihpJQVSn1TNoE51NwpVNcWq6gN0q6vvH3xOrKeUNAsXK83vd5WVYHXxIOZU8qwEDp4OFKppL+zCUVcvXN9blkLO9Cxofn+yob2Xi5Oqiaazv6YTGhlxxOl0gEy0P9bF7OioRQ1NcaffQUMcQu4M+tSz5a4xzKBaJTbIFD1Ip2HvwkMMdGVfuF3/Z3lEXHFze8ebJrq4BeozNaemKSt/paslbrepq76+7VFcSdVPXMmtNOTyr3FkXHI0AeOGFkbqSx7UjIxlh/e1gUwOK1zBwg6pmIK/8bW0GHvDhlNZyILYb6oaDGb098kKkimG9q1TSaE1z6fy91dUFGBuUu9NAZGY6+0A14RowcPK7mhSUNO7rndRvjhk4WbxvQLOFl3NrtLWbTWqZnb1w7uadTuHM1p5E8e6dWCQqtz6Rad1fnZsSR02DTSCpoFu2At45cmM5fUg0lVYNqcHrom721F+vu7bjCsHOPP2NyFMNZEjW0INSXZ7IUE9jO89Q+9A4vOeh455O37p/5+J+zN7T08nV0xPJGGT39FV2NOAq/BGijvXu0wLZZg+ygr0COQj0K66qUBnzoPvjvurAyzTRi38IgW14pFP/VfgPQDRcTw7M1iGJ+ZNkIfTtE71HbrfWZkFGoHdYUmnwKe/bMzyWcGt1LDmiCPzZAJ7ur0mqCct/W/Xie1YtUBiEr3552vL0w4fXrNNRV6/GXy2Pdx+v8bW/03kzrP1OrhkMsE8ngTii3OLSFDuc3S2Z8tWkEsCsM7de31HNRarZyJAI2Qp4Y4uU+BJ9+PTcndgBH1ZjRtcojwOUjNGk3I/p7bOyLZpIptjc29rZdAQRtjoeHY1vqOcL2MxZyTqXGh5eTSm8CCnrhRc7ymFZ/1NlT3khLpzaFHe9kaZ41xfvq6YNjfyvtC18o2SrS62adsnwfuPQBdKNZ9j9vr6+6pal0AqxOu7kN9WXVvGPysRQdAIa0VNI7j6NG9pk43D1PRyR6KXANTleA57CoFIE0ZIIBBSNZAhlcg6Nt/cFY8Kx5MulwWZW+jHOoi1x29aOeMtTYxhEfT/XmHj3l0DGA7GER2+ZnZa3jaufrckLzhr37qrJ6GcRwsIed4GLhzUMA2jV26err95+mFm7/F1pcuNFwyBCdaQOmkmuqoqKZA5XhbcIhQrlLwoa7MPbIOpzEvyDM5Ov/jPZ9hmKqbq04disNMjYy8ixVEPf56QBk29lhCTxqlGgzxTOVrPufCRRebMKdiuDBF4J+cqMlbftUV88TpfZ0AdtSuacREZvbazsWe/u6Thd2NPXXTbV/aDvQWEPlSShhrhWbm3ubMi4Vw+AYXzAKtSXrewlpcYnWx3qSJzl00UvF0/vNwWhLHgIYQSwcy2vqAgvDL14sRwV54zoLi8swOawFYKOQgo9rXLqwR//9A3uimdpsrs6IuKaNxGAlnCWaeLiaO77rUaMnV1yPwSfaRj7BFZIaBwxNMbYtS3xliBD60qoO6N14mxEyixvFgW4NV8tSyMv27u1eMBqEW61QyzsSExYWO187+3bVYTbysm36U8jXyRb2saJhkpZTXj/0arhKh7h48e1ufQZ+dYm7Q6BNE/tvNlOWGsDmyDw2oDa1Bn7v806DJfw9yTbetmOg+g18CSOM0jD27VWwTjIvEUiVed3vl5r4+WjUHBuQwiy5/eR8xv97NSMoxrC+Xz/C1TK7HRvCy6E++jlxoPKxLLCBx0h8WUdjKkHDzroi9IVIAasi/v6xDK83Vdf/Xl9ZUrRO6ZIdL0Sc3G9h6pYoI8t+u8/4FgKl4udprsdtiG9AHnxous3OFhRIUJc7Q8i+YtpfPHL5fWfyi72VJS3Mlp1PGMNQMlFBJ0CgMSOHv6NoYGvlrsfNtrPqf/hw4euR3w+89nTO0qOZIeOMoet+tGspNpxrcMWQIZjER7qTMy/HnlRopmdBbM7AEUAEzSbkEHo76plVfVOy3vfgMXyDep12FtN09IrHaLvHvJybuoE6IaEd364M8kkrYj3ZGFh+Wvp6e1hkaMsUCxOTq5Nvppp+/hlAPMZRlA3m+ASIK4bIZL/ZuKxL5izKBoa87tPaW0U9DQKCVH56R9fT3OZJD6N12KSzwNdJNKfwEpKIoBeihltFk7vgyxJFIox1N0nYquyhMvSrsdDbHDH+tTihgSAnOt925sihkbJwp+Q7MGtbQVJolyllTf1QMhMLzNcmIbU3HcG1Ek2mvvdHf/ilHoDeUj/kHNoGfYbJOKy78HKwcHBuALR8saGuDuEXo4McXINjbfxQWifSTHRAFA1aHGs3c8c1jZ0ccKi4q4EBV3WjzU7T+7lhVOq5XtjOEegRZz1HglLIZ4FlJN32CwPFR0FXoOio451dTUAQBqNyxlaYesSgMpWTSCwZl5Bdopi91+38l97nokfejlEucqk4nSs8ITbTz9+PzcJTEdZNWmIf/PmzbDI8/mjOQBsGnv1dHJrZjKmOPgzdDuDxsHUq54R5GBZamPghqdxuEIhKiEjIY3XxoGc7fAbdz62C6kTTOHC2JiMK1kUERrphQkoHDKRR43WiWGDdY0+K3y+3ANZ14CY8S3r6ZiaKkcje8QbL8XLG9LuPvGP3cnq9svi5aWdVVoriSNMKywg0fjMTj6D2dkQagWVdHfX1LTxdbE7HloW5nos9riVs6crDpHsiVx5uZyIxcb1PBd1i8oToZyQ/Knh6+F4RivC0szJMuXwmTNHgbK6z80pwQ8WaMnf6Qfq02capxVMVMXTrVV2Ws8B36DH3o4pEe4RRY51XaMtYcFmNVnjlrZFgNGuqwF25tb29tjtdNb5XB6FlcCCrTyrbWItVfh0STr1clFKuezPb2oba5uAlIqPzFcKqXipsylU/0JYUtTjsFtr6RNzSjnEne++muz0Msr28nKzDbK0NlWDANyM3GgDoxJWY2NLpz9SRzeqgcpMT4AQ47k5lLCXRmY2MtLYnDZyNcqvnhBXiI4J57Xr+ftHxXG5ha6QSrSceMUV62p/ufLBHwc3++oLsdyl3R8XJQs98JxKr3C5MqmcK6ECKW1scCg8UQQxgenMAnITmSYr1D8A1fzW3cflYDxWBx3lGWvvecxFLxRRUC2R9VVYoZC4ej6DUQghZ5ftbGxiD4D467CWewaqFio4flT7sM2RQC97P90rl787Hh/g4tQtYo+NkZty5LuKsV0ZQzl9G2EKIy4CUk6Dkkosg/MsoSHpqOFdU1dSi0pAScUAUGYSkvwIrFu1CQSg/7UM54+SnLtl95aXh1qv++NuNsBsdRtyLP4FTIWFJVyqV8CL0cd1j28NT489nYPcXuUrpfLpRLtZcLaPMcIXymkQCIqp4CAbjBmOFE5pTM9BO8X4syLD/MCZNy+kCH/Zo4H/S7oua6lOtlU3iU8lJaLRN274NOHwfqhGVOFUpYhTERJqZWViX4g6nnhPPLXASWMvrQyldXQAb3p9ULqiGARqOkW3jEFb2UzDYUlMJhPSG/lgmBnCHtiveew7R019O3M7TeAGuBw7Zh+fdBwhqA9H6h9xFVEaCviMkJC0BN9jmgeOGoM28bf7Md/G3w95CGlmlr6OSbrmXloHSq+6HIhLK/vuslWBRChkVocrd3dovTOv9vpYZqZa4/1kVVpUfwkRAjUiirIyRi5AQb0JK1zRsnR7Vx4FQMvWBHClr6215cy/f3vrDpsmuNfHLkyw0tD1qyb0A7SivVNAXmEoDxnGtMlJdQGX7gAXGpDFbRDGAwuniZHgU2eNQJtpqmaU5J1djFEDJYexbms1q5WaHyWStMRAUJZfFGp+WsDrXeJS51bBVLoiOKpu6GLi2cRIiolL1Ufj0WCrL4TNWT0MAM6eGp6XQ1r/3icVb8lnOFR+fQO9vmehd4G7tbnxcohBb0ThC+mcBRkn3aqSzpw/nz7PByROwzFNTU3jZN+D+pc1Dnx1+LDNwd8cjEfijyEKXcFEbOUq64hjknsK4wrK3N332SQnx/sewBQbWAZdvX7/+sP7HuaOOhnxlu5qBi4H9nmElMc75bcQcvIpca20mZXTk5PTtF7no7ZB3qV1ELlXwspC2NZZWpwFfX1NzQjA1P/L0ZmGJb2mYRxFEHdMjbAQBMU01BRNCcKNcUJzw4OYFeTSYrmFaYgmubS4lJpZmslxSTwelyxz17RwqSw1tdDOnNSy3DrlmZY5M3Nmrnmc9+qqPvSlx/f/Ls9737/70UTD/L226ccPgs7XP6qpT0jMzyj65UFM8ceYm01NFUIPUb1+isI0JWXvtVvuJ35hehxkFhD3wbyMOHHS6trjp5ABAWWZA/xu9xQESFEcdxIM0VQsS3LU0ZwKzTzWHmdRPfOSc/PnL4W623VD/Pa6PznYMJwZFpWZVJRf0v+0rqhSI7ZOlBqka3ox2mLf9rhYC9OWccbevBNOe6X6FFI1v7SvbuJRYfnBhyKhhzApTviqabquoe/DyzpTN3ZqXGkyxNImxd4VerQ/gXC7m5cvuRE99TEoNBfSJEj23jjYmAhGPGkIiYgA2UZltY1bSTzbo1xWSSTSab64IObBslYM/CMKfWa8ej2Rpx+AQqKx6lwxJPoQjOj5hcnJUYf2OgWlZqZ3P0/PeFgS19Z/o/lTNu0HdbPl7HoHc/WEY3TIYIXghLcXfjS+lt5QIQr740VHw9uQ3hcXzBF//23zgciugna8S3oPCDmz3FNSW2aYZCf39n06b53yO4pfQQZ++VPwUen4dEEswJt7L95Pfi1v6x+oP3vWZ84WQ3qm54IigLn4uBHWCLIxioPJjx8D6OLNG7Ii2C8irz0q+TR06iOKRUUdBwcKyk8nv/i9Y9h0q8Xlu//Wie17nu6mweJZBdtZ4egBWKy9tDJudropHdQe+fmlFSJlz6vp+bGxhun5iipwcvOFSenpw0+TnWN33f3lRsTlyx67kkVOQbAs0iytbYigh4BqehtJW3ieXARc+QQA+dtuGif0SJ6xotPNrFrYsUmiRgyV40rR92lRjEeyuLBYeBO4HCqFIhDQ6Yz08qikZB8di9iS2i+FtZfPZGSIRGQfhwSArXMOgHjKHJFw5zUsoDStI3/LVuDx7NTU2osgMklikGsPLpuL94U9cHIfenBL4OCcFJcKwd3jAgYzIuNTQXfecRe9oaTk508LnMs9Xp/7j0Z7RFFY+SRgXf940d+bEhP509mpPx/9Y+1pb7MtFox7Zon4v+BZ3vYMZu/7/iEAMOzSYTIHeg8+vHy1o6aqqlRU9KIwSlRU2DQK9oeLJB2S479satraXnnokCTVVro6FDoWyMe+rcTSmtGGUpjCh+Ly4+IrmoaHAcXdVHc1LOqqKK1UGFaW3tEf5XG5/d9PIiIORlyNOLTVE+1LQDeStqMwGArOiGgNhkIul4NoJLX6EogYa/2c0gp2taK4pqdCWhkUxBVvgNPp+5wYVi2RDo2hNGsMDWmARBslsni0xhZhKjOIbbcLAsY+ZyZ55PODx5kOdHWTLWJXjjkAhekQxXiMCs9HYjWTbdnN+UVCoZA50HNQdq8m3em4yZab3Tc+ZmQAglXvcnJqakt+qpRLImqQi0ue9+vo2Z6PisoPttbJtPjx3El9oBl5ZPSnw0Py8/4i5v36I/7tX/4E2/GLyXbsqV8JZhJzrU5dY4oLI6y7pHnyzWSKjt/dm7Ulp8PCOl70Qc9cCF3nVFFRRQ1IsIZ3gXxsqrAiM+xND8wve5tAEk0NjZHYS9mxaVVNPaV8U11du0uxFlEqYdVSzfNH6XeZ5LuH0mSy/LCG9KiwqOQz//bbdenMxTQnTzSSQyC4ctysiPosnC+aqE/UdhVzuQg6rpVL1MdZE0kL76arSXYTH6ZJEJeAooFknriZFwJcpuX1dYmihUIL3R9OsKaJJWhMUGmaB6QgPWyD996rk8NCtnQZlH/iLSZaHDMtGhbx0xEEdpu5idY2iN5w1boVVpxUFzUwV+tR/mqiz/cvhGdX4zTuMD+5Gx2oL0pKHa+OS0pik0y3RpJrf391+uLukz7MLB1UgDNq8z4NxUwwkwmI5fI2sC0PQD0TEqfm+geav7atFW3fqW1oBgJ4J1Fw/X3QC6QMwHnr8qFDeXfJeVPDfR1XgSrWUzoB2P3S4uLSjsW+9JooW6JOZm355fJJGZlUncQAxSudMjISVFMYa8OHTijf1CKIHWtR1FA1Njs2WseWr8QF2W2Xy6rKamsvVzQ0Je31Az7i7dvEcCQaFUBAcRleW+090RhHfXsosFhMQ+jbjJDsNQQkUuD0h5eBKKBR5qI9PVEYFMrAwFYhgOjD5WXFyPi6AoydoVpiDDUUiTS2yy8vLMwXiTzCnj8q7W37/LTW2Ewd4Q/0yz1A1MD7/2gGMQbb/qqtxlFTp7Q2BreMs526++dMhfMVAjojxTnDZg/0mD/edY8kS+PIPP5S3d7oMnIQLrWpIr1EJ+KaMMYbsz0P7XjNaSYymFl0M2Xg9OT7588BV3HjwtGhDXgwHEcH6rE/U7Vh4GLy3YfyCzJSmAPdFRejRi9fygp6eLD/cmxY9+SfX76UBLWwW2bS02uuXu1oSpsS2QmT+adf8MWWwfkCbY6atqRVItmaLBMm5+dXJXnEsdOCbHSLPWL5pklNgSTlqp2F3naZrHChqWzx5WJdWXxh5s2bQlsMlkvwRKNC0dxGIsaIQseAeBPsBmKEblwR2YqFI+kHQnZMLoqA09djFhQJU0mh+zVDEaz19fXW5fXxaoVinbWMZ9GoUGaKlW5wccXYWMWlsN7nFXbRHgPDmRqgAE/AA18E0gHoFyA1kHYE6P3btLjq+OLUdCE58ZZeXncquZZ57FZJSUoK1Tvy6B3gSsU4FRe3CKxShUF+lmhDGsVYQ6Bh1Tv5Yom99ZBfpNMN5nly/sGrzVPQIR4ags7y0Ne5gv65mwVrJWs3Az4d37jNo6hXjIJTBnoLUu7cyeh/M3nv3lW/aPKNS5culjwGm+XXtakU5g1dRvJwxcODhyLOpF2F9nvysA3SYI8LRg2FRiLFFCLea6xOKZdKRXx+6kXneGkQ2GLtGDZpRF8vAKJK5ROlImHP2MLYfI+w4dW7xZpkTxQaBhVtgLHkeFoHEAgYDtKAw+WEItjs4hwSBoPF2NwbVRLRKGoABVcdJxJV74d6utLHx0fWYYJWCkZG1tcFBG0wHGqkigRS5/i65Cq425my2S56WclF5/722sqMxlVzDUWo//g6AdjUB7ZpA1ITcWC5WEQWpY5T9kS9iQkB4FZQeVb9L3QTQweHvXkpZNipUgV7rHg6SCSaoGFthsPZHrr3+Z+/d0RbHMrKYpJTisLePx0czEuZSuntqp1b+94NmIHLZ772d3nujXEEOSQVwmcILMD7PXB3yOp/2L9WXnQ3z+l82KVDUb2Tpwc+Da0dLOmN5jGqRbXPa/Kdz9hczQ/ShX6Nr84zDApzqACwKPqeqMCGCRl/RQQ0eFmSnUWcqLQ0RiTXjY1NU8q9+Pyl+bJYp6x5OCkvjAH75Pfhwh5nZ/BiiJHgPDJA+wbA1wzLI5dreAqRa5PrawkZFAH62900KGDNRvlaC3i8RnRoqKaBK7eSt7w+ophZl4xAXSma4VQUIcCUrKcRgObxvEwtdCBsyooV5FEMtB+mjqsaR/2sOfhBxUfw+KMOJmpaWp3jCoUIMnsric8el/vp7dEdv6NrRqOpQ8+zM/FOu1NwCxsSURNw9MPbLVBIQ7yh49awmnd/vEti+lkEMXjB58kx/TF/f/sPQEb2FsAEBTRVxN27NyCg59JUNGFDXqp95cCtEGY9u/48I2suIypsLsLi3y5ZwFp739Hf9fFt8xq4Y+NYlER200QZO+6ys0cQ+cShsNHp89YoI/firShxIzO/KLasZ6VUpszJbZGnuUlFdX0VVWUVgJwBVO7ibMXYy8wkpWp+aaxqYRa0eB8+3EvKIRFRSDWYXgahoQQUFUQwBqEcDg2NkAcGSp15RM8dGJKbFQWFRKJoG54jHA4H7CAD8Ui1YmRdMTMyIllfplORO3ECEtFpnzeWYG2IFlRuJaWxJQxvXCKDpeczxwTZ6gF/WqgJDTYnrP8Fl53miM6ZoMQsUXVlTyaoKcrv7gHPtYuDlctvbz9lQ6axPyT9QrEViSGUTZG+Bijwh9sa64R9+ePdi4PORvYCY11y8Pn2O04PIqJn6kVFg11DH9/e3xd98wykcn8tsbiC/FkbDM+UEHLMtTuM7KyBrq7Jp6cv2R6331fA3D4AXQKf4N6nbQVx/dUSRlxyNMPxuA47LJW/z3mwdtrZdG+ebkArTcxi85PZwR7FcdJDblK5UmZhKpuebcrt+VCna2OXGitrUi0sVlyUyVSqil1uE7MTC4uLY4G3iWh0KFQR5P7qG7NT28DA1ZWDQSP6cuVJFTkkW2/P6Zc1Ipj9WnQit3EE7kzjcfZIJNhiBS2MllYOFxKnOGp4AUnfKtHeezfOHi2oZuiy32RWhtgGSFgsOu3+Zri/wy/A2fuDTwrM0Cab8MvsluqgVIZV5nTRbpc2kZlZpMNmRYjZ62xoPP3VZMsmhGRZgeONk4MrsxKRV7CnMBoakvr8N783VJEd9J1NnUQ+7vezhHk+9cF3Ut7mfSffuh+dNzUY0f7w8eOv7T5PDqHA3n2yXpcNgZDPICCIOfD4qv6v3vt8GG/bdxUM3P8Ys9b2eLjscYpbR4/dVg0kSsMu9dLMrmgAc18sINsGoGncw745G7EPbjrbray2O8dJ7Wz4PRMvZ6HTNGZn5xVIspPLVXU1C0sLqlJhGmlhTLU0NpYbDiY4A4NQqKfBfowrVw0shwZIVwNXDOLi7du3PQOlcZ7XH71617DLC83dyOsa8aURrarDXbniRgRvfHymFUYjTUyDg5QtW+C9k2BsfDd9RiFgFEBWivFOAsXhpwMI+gExVUsLnN7+eLo5BaJCwbnZWR9cH6nYQZGInMBTSsCa4SSdDq0Q56yefYELutVt6nS8WadUGCYVKIhIeFnD4nCOW9mjnztqyjpeZPhY5BefGZosv9MCWZPufoPRkRD1FJ2S94+Ha++HBm/2T06hkDtwF+p9ThzLBlEjOSMmYu+/rlAtzjTb3Wj3YIZEktcgDrT29CenumkpwhqFtbezCBJlAof+Q+EhR9RhbRMUCsfgJ/Xwq+ExiGQfr5JaeMX1dHx+OTs98WHMlGQTGD8rz1mdnl9SraqSF2RLMOZ7LFFevsjQUCSaow3HUCq43WAgocBoRGOAJ9LS62JqOJBuRyGuW14WNzLCGGdxXbmuSA6wG1xbl5dn1kdaKRJwa9BQlvYKihlld4DGXb4CrlaV9SGRAqwaVqK4cCDBLFRTGwl8lwRAj/nT/Y9og/Ryc/B4C6y8/Dh3d1tgxhw7tptlhk/oTMAczeYY/Az0NzxdYqwhSmfTWvxgcUf+7KhPCLDnlz3+/O7zi7379Hzym/+EMTrcNdfdDetnW3oGQHGmAK8elpTxsLvL9uedRkedzod03tGguPiUN2dc1tN3vljeHe2je979l+z6geaB4gIvo60NtXHW0EjBdbp51L35AoCIL87gPQcp+mF0ANpGCV07r8Bqeako3u26rCKq5t7YwsTL+VUvUuzKQk6OcmxMtbq0ULeggrIu1PVYBjasWIaHu1LR8JFzxNqamhvV1ESi0QiMJzSSrOoCMfK2jrG+2Q9LNZlbR8bHJeFcAprDNbGE9DM4NI3AWMZDVCeN1VJJlEhaDakE70pei6CRyJwREKlaiY8KeA4HOBzN/WAD3yBpgNtkh/ZhEwoa0Vnd4mBc+EeHUOPcDb09u4/9TV1sgnBgXTgKjvErrmAg5TkZe4Pe0GgnWu9uLxJ16tdTW4sBpj38tE/fkVKw9nSt7Xf478f2fv0+NTfYdtrj2t0nc4NP8p4UXn0AhTU/rB/pfssh4QKl89ZeZn9U9wlqXn8YZKwwme4XEhUZtWtdQQEBh6YvXfSlolCUlqThpkmIwPlnGxHKaWBAsiaEo2k0XwabnV+0i50aZOr86F5daV3dxMSHxUV5IL9K1SSHaSlTqpbmlxaWVpdefphelalmF2df5RrA8rnfVXzYALbuUE1LVKMnwtKXsF8Tfft2Vd9oWU3fu3equnSFZSuei9XibjgM6ZLWA5B5OiKRNLo2LktatRp5AkMKpdUIgw6obGkZCXlc6GxP2EnVyK+tND+A+MFVbcPOAUNLPSFhG4deP54I8arGuOSXowzHcyWDm3cjDvyUQNMW40E6rLVppzlw8BkiNg6sfVwjUJD8+VDvVwxGwztgV1RU/wuRZylcIZtr30w+/TOs6+H3mMEn167dcI5u/97+zN0vJeLauV8cf9UKMbZqSez034RrLrC3is6MxRQUuL99+wlY/9l6IQMlwPs9uNfNCeeIVUNWi15MvAOi0MF7vw/7oZEwPdVprUaGjRwOic9nywOrW+Ltrrv11CStQnZr3/wKiS/XV36YfvlqUaUaW1CtyGCajsGWNNajWhhbzAHQiut+MfCAYH5q96x4+uYiNDVRoa65TdeVfYVJdaMfPtSkk1tGNBJ5XLSrpoEBmj4iWOaGckfWW8XarpQRrtjVexMRg2YJHAkYXLVAEJkfrJCgIU6JFuKgfkxda5vJfk0DUPWD7QTvABH6F0CQx4J4Svs4xpErewbO/IjmqOM7sx1owG8/+xPCkNW6wc0SKOiS+gclX7vX/nw/aPsvPRzWMS/EKSzsTOqbN5/XmkueT3/5ozwlLyJ67747v5CZu258e3btQZ6Ts1MkFkNAJTrAY2cn/uzmrgwXN2HBTczHLub5egjueJ3IGo+JOVhcXND8OLGVvol6Ki7/9Ojzx6djLt97dzUdnik5hzmQ8NZqzW30Kl169UpWXS23s+lRlsr4SYWZL+vQmJz4QPl839ICpG3D3KxQKlcnXk4sqWRLIGpeCLfMQXPQVG2opyvScmnstmwRIQtEh1/vGct18yhOLa3rGV1MZ7NTyQwFBmkAYBa0OiRGckM5kvV1GqdRUjlC4QDsAhmgEYAxgnU3lNuqiBzn0SAlEc8FpR1NvAWpiTT44cq2LWpaZg4JWurmy6xllkQdIHPHNl3Rm/I5u+MKDS9R1Hsb/IBFGRzWWl7miqGv38JcCxtY+/jk659fvn777RyB8DPKm7XPNPZxH0zP/H4g43x+0dE/lMXQOeG3K+9c3tcnm28OWjDcWbTsyM0uf6doqR/wfwZU30/tsTG2VNx90P9DFsMMjxXC7PriHGBTVl6wTwNFoPGCi04XxTCDRE//OVr46sX/OeccmkTiJZWDcPPVQny8aiW1NE7Jl8fJ6vpyCARSoL6XrIovX5pdmJhXwp40MTb/YQGUYxPzsp7cnlkZEgnndJifHFLDorJuFpFz3UZYuKCKl0ut2BWynvmxJiGbzVCwwjVhILkwGi1DXRshKRfaIrAt0bTQSDRDwCU47sa4is2sEnEKiRgPB6YExNmfKFtQatu0fthEBdcmh8WiaZkt4xFi7KazO04dd9mptvst2fpHb5OzFGPDU1D1v4JRYGM1p9MMBXVfvnZBOMI3iEnK8/vPJqMr3o64E2mQmVFemx9c3P/lD0iW/rN2gOlz68S+k5td1tpPtOef0QV51GtAzGXzjiYY/eTPikxxHno6rqWtBe8Z9ZGRtxIVLvBUPZelW3Q6LL/YnoClt4xn5ceESNlJ02++PL2XDrsyOKTEYlTVaE7dYua9D338hiao3gqfrQTLR1+hDLpypJWVaitTFXzgslWl6tXs0uLLidmX87Pwh2opRxMGbOzwjdc19NSNIdLSq6qqFnJvW1oKTCsqFt69m+bzllkOvHBNFEoTqY62bIUltPX/5axchl1+XYLRtp3B0bGORng80KeNNSgUV4qApUhMNDQ7CpYqcwCLIpGwtVMSEFwzhYKFOHsSEIg+GZu8i8qTcec2a3NoTvpYbYOdf1WDqoa6cvB0gnfc++6u3+5/Gvz+9bv9w64A23/Yeu/U0Gg7XX7w9MFUdvlkSUZB2WQR0FVsNYzPndB7Auh4vwcfXTZvdtmzzyWhE8xNx/D+iSGJKXPJOAwWJ4gcZyhA2vVsb3Rx89yj4d4p8P7s1ReKWqxSPdhZICqG3KkOuMTDQO0Il8++zKxpKHz07pGXG1sqTQWhq1S10FPV8MjN09M3R5kTHy/PkcfnxK2olhZnx8YW4NtfXZpX5cj4mqGhBq7h8nBS1fxSpqoH8Wo2LSf3OuY26E5Md6VXFY6+i8P5Czp5Xt4B1pqaXA5tZGOsQ0XhygkTVEJD7tgB6qhGAh2O+jPjPDM61pVmxltWsI5RDhgagkdmG/zMD/9gDnwMLS3BeIuDP0VH+CSDHbA7JbP4eAgZo71N3Qw08JuAkwWgRiDp0HY+uPm1OeIfT9o/zX39LXMIknu6o7GOxOzTp8sLinqbo7Nu7nUKTskg34nUjdy8Wcd4j77f/Y/eONYePUdvaASAvcZMkmhmpMHCU7pKmvOsHY0ljBkosvtbY2amMAxMWGGDBbXvz7zITJLKikXCgsLYhr6mJh3kxjGHaOHZMTHxKDO9bHq0YSW+slIaxI+rzk2vq4KjUYeluBFW0AUbGzk/3iZtRbmimvigUiphuuaYeqI3vmI42nsuVuWWVqiuXqxDzJf63kYjvT13FYtSbUYq4xoWS3UpeF7NYpWAhIarI43WupG62zqyLlmGSQr7EtqI0shVR4t9W9FofOS4REt9Q35mxlIw6nFI1JFQONliQ0M3wukc8BJGarBineLzuT9MQftht57eSadgkP+Jtf5y+JQhFWxqVBpNQbvi/Q0UCxmb3X0efP06OPXt73l+7TZbHa31YzqKUu4PtBVHDVolnt+7LwTo0XeMjW2Pn9z9bNDn5G4tM2MsdacZXqKlRZc4HMPu3IGnZ+SH3clmCRL2HD2W0Pn2rV59OrQASz5GR3cNDA0JC0sK4IWoIKbaNOreq3cqDwvo75wpjO9oGi67FFvaN734oSmu2s0rRyqVlxUuNYDjozCen7syNqaMV/YsyeRK1crq2FLOyqoydyUcbemqCT0jdG6gfGxermpSVUWkIQpyboeH7/f0tYgLIuvwJF4N7+4Vk3BBNa/iKNW+cKrar8ZtbeQ2wv1ouWVmvVWwDIdPuhiST7mVlWgOopUloW3CbiCZ8DxF4p4r2kcAz6ZtjjAB6K0JXoKXzLSsCyh0jyIpgY7YpOFtZNa65RTYjTmHf95JRRqgqDTQ81B3QzzX4Kdr5z61f//vb/84d659cGpqqLectKssIyZloMgjun+m3h26hMy954MpRid3bzqe96Lt2I4fDhyhnuKaa4nhCEn13w0YJjVJJDmmvjMhO/tvFwBG+eBtZD0ziZ+193VIwdr7p2H9ZeTzzBg221RY3pYZVtNX47FD1/TMcNJ00qVdcmh6NzXU8SF1w95NmpojalqVLamC+DI4JilVMtlqj1Bu47ZamjM7kbuyurQ6kesaujH0cyYWlAsvVUswn+P3IWQNNVVKfqWtved1t0q4cpGfPmU6XQsSNYyMCHxJ+zU1YblrtYRvvXVdUbkxTWGicjiuajSahEigcTgClsZOLBCFfuXiWRQ1bcyOTeAvRJgh8MsUsRq4hHjVeEhMDsCKtTWsHHCGRpCleAXOtdrg0Ub9jKRiAh3oKKrfg2/fvj345VN3RMl/v+XlnRn8NvfwYcnkw546Jpx7PoVlOW12OX+j7UXvDETxHjuyKSA7+/6nY8ePIbYBgB1sShreV6jmWLAFq9HwkbiQyOwfXx876t8piLwDEt/mS+eNOx2Ybe8fd6XcyYacBmZ+6un04ZqLUellt9H6ptLaR0vCeAt2WtO7Br60sponsNcn2ihFFfKcnOpqL2Xu9dycFZtcpTzHZrtF/KpySaXkr6oWZqugmLB28peWmnJL69KFTYUyWRpCLixdqFNW+gbYeBS3wOOcvbMNTkPHKWakFd49K8M3JjQodVolrY3Lyy2K9WUYeDqHRuO4aoajEGLtDdCbuhktVA3JVT8iFlOs6XuM6PBv8MvL/iBoovNmeBQKDQs0h81uQYmEU/hxDao2gBoBIqANLCdu/lYU9VfnlIip709ufGqGtvHgt+9zYd1zXflhRWH3+s7Xvw0eYv6y2XjPnpCSyaHxEL/jP/0VteOZ8Y9GJw0PnEVsUzf/CYUzM1TbsmGj2QYdQgj4glD2BGArUICwVy+6X9B7C5A/WQPdZ2IgFxj0PxENHZlJj14mTczHW+r7Wkk9ijykbiSpPOnlvDA3sLKSbm1NchtbVFWQfBsr3aCe268HBq4u5diAfl6uVC7NrubABJ2/DlsRoANsqpJLL6ep4sFBVBEbi3CLL12VyXLQxEBQ2fMCfWPzvAPw1iQM9PGJlZXWUE8OnJlaJY2Nyxs9uxbYkVrVEQC+gGUSzeFwTCDqHG9uYqB9BU04a4nvTFx2GGdAfjYUGX4HHocDMPFoWq7aatSA4hnMFbNEQ+C/0Djgn/wZqYZ0NTE0QO6YG2jPe/ufaz4h94emfsm7+fX7zS4fH9P41Mx7ItBHZITsDvkI4K/zBRk8vO2Pe7DaZ3fsgEzCI/4nz4IU2/AsHnKSEIhtatu2aaOwCGhy0cHzqQ6I8uXI+vwHMRkPjt7KKp5i1ie+3oitfn25A0JNOn6/9/nlKD8s0MaUz5dL2XZuQbENi7NKr5FKIopEki/Mzuder66+HQh/lwV6eq2qVu09SV5QT9XYUhXsS9c194dqwkAJSfH8S00XbdwOXUqTI+TyHFhlc9GB293s7dNUC6NPt5/CYMNR3lYMmK6ennDjt+RCEDycQGEJhWeP1kZYPZFwIwC0EFXLVdORwvWnhO5HEY7v4cFjPgggFAyFYlkdfgrqXIECr86lb6R2g3XfcNxKm2rEQhgcNtHaeRhsBLC9G3CgnLrNEBj/zG/zifqY3578p/3J1FR7Ssgt01Jh8cGqlPOKqdqg+gz3+y66ZHe8IfW4vwlq56mdP57Eglv1b3/9q9oW9bNb1KhUdZC6wy3CnAuABbB6gXjqACXBoT7D2YE8GHJ0vDy/ngG8NsWdO//x6D9dPtz0bvTNh4mryb7WvFSp3C4ryDQ6TtbTp8ypziURg7ySRpdejX0YU1oH/o+la4Fq+r7CIS8CgfAmkjQkIwl5GBIhgInSRJI0IwTMg8YAFTDAtDggGp4NDBS0QISKoBS1cMIrTAltIEVokTlgg04mSIuAa2dhWgW7Tbqes8fZds5u2v1QA0c4yuX3v4/vfve7NrChlUYzm9laDde2u9vS0vtyuqtlwAYNDPjl7V0iNxlejFbW9pLMJbWI+lIbzWbTctBivZpQMf780fMeQejVwuGlbqu92k7mMuGGWixgnGqPB3V4cnqI8fCT8UIBKo3DUuigWYTzzkLGhpZBsikscOhjp5J2HNVIEM6xRAiRPB8wp8JDRffChmB86UlnmKIwH+SbAQG+0K8LAI3rI1EQrC8UHDx48G/H3v/3l3cunc6586uLqaU1KanFjTB8U/bpb4GJ807C4dRY5C9hPDns7E8PBJ459brlDeSpn/3M9wRuH7CyAxGwyhqq3J8iIZ/fx6s+eepoHP0ksSw9xvFO1SfHVloz9BEwyRd78Eh4ys3Vjva18cfjT2eAKmfX9sslBgmfyyVnWCU2br+EzR2tv/v9+PqDJ/802LQvN3ZbbAYDl8DhQtNu3vNhy249tD/BFw6CObO0Ocyc3XpDYkJCeg4DUZrnUstoAq68Xwt9zdrJgTU5mq0b3Vrvc1p4ajV8UYDCR6FwWkTOxT29Jxx5SvlMOCjkPiaVQ3eiI6N9M0UnC1ZWoox2oV7v2Ctw0iGxQuy4vRSZXp590zB1si/grAgW/WKEUyuRojd84QYBaGJRgPzl/ouzXxwJmXo3VRxz8Nzpf3/559N37qSmHs6Iungw9VjBR3+YoovtscXFtY0S/X7onSLf9PX6xYHoiK/iTuEokYeQsO0Aq6QCUv8mEhnmBUD2PnjnTMG7RxGBISenzgDzSgf8u6W18T5q9U7BR1V/Tz1f8dk3k7Bna+TZ+mRfXZRVorXlGUhkuc5l1Wr7yaRra6u5HRP/mZj9fMFm6/rhaOfnbT2QPT3z4Hb1hnlwn9txbxI2BttN3jL+2yEa6W6LXMrOGUNYzVYadpAqo9mdTGYAp19KCFTGkGrqRqkoTCCVZgIvobDADbUohJ6OnBFup0IEZx90m0V2ib5an6QECVGFIyoqY3PFboyyO3age7+yCajplCUTvhJuoYgn5FkQCiQ90JdCr/4JFCVhKti1B2moR+oNWfDXI6EC//RLOX4Hv/r3kT+/fyk9/XSBOOrW5kdlBWVJiMjzx87curmaKxUog4T0CIWv109hZ/CFkBCQRzyH8ToQk3i8B+frBWKl4JEt0TCHDcvok5CY4JDYk+Gvx1wzM+rWgen/VFJwYeqT8598/Ou67KHPh45nV9bNrD+6D9o0Qi2/V6CUF7rsMFQkYOeu3i+va/isoe1eu623TyvDYWXq+scvHj16/ujZ862N7eG+vrrlZ9svzdT09FlmVhafPchvqiWRcnpzmxHztS3QbadSgb9MPWCSsYghgco4tO58rlaGktn75aYsb1Em3GoRAKCLi8gIjrtaYfFcO5EFYZQAdO+yO+H+7Wy6Vogu/YrYZdzcQdD1sfqdlR0E0vKGQgH2BIpzEPRLIujBIHImjAzKzPQKsyi8VD5h0NI6Fbtz9U+/D/X3T3nn0tX//u3Sp9mMdPwh1judF8sgGOnLypL+dOU4/rNX1z8vJxAdjuKTPu/94jVfr4JjwVgF4WS0r7lnZGbkOCzrByELEFaClrrPa+4zR6N5iEAlKza8GHRbx8efjD9dl7huXbz79Z3k34L2xN0PK6MM7Qtr7ZUtfhqNteQyN4QqZZOtjYlp8piO9itVhbmtzXefPFl/Pj+Ixba8nH/48NGzJdAZeeTpfHiC0tbDEZOtx+yd5W2zyetfGppqS0pyExC99ToclonT2CE70mSZ9GilUhMcI8mrW1/I6CzNsGqoHBkOp/bOBP8JtNrgswokmBPqf5EoM2nFtbLisjvcqiSoeGlM40qGA5qh1VN6IzPJ5XKrVGEi+ETLa8IwnlAoUiTxIqA48qEn0TNFIDccFqbwFND7j0xdfCf19Lmrp8KL/vSPO1/eu5sex9EcYhTHR045ypI++Djp3Q+/jS/YbLx3+WRBRuOHdt+wUzBW/NW7PsFpJDIat/Zo5tFaspfva9G3wZ4gPwjeNGLqF9jIoGiMDC0uX3+yvjYxtAbIREP+kSM3Pvzt1225Aw13C815c/dhi60EJgp6squknGhOKJvV2lYrlUu6axMTW5NL6ybXYEq5UNO1PLox0LD1aKAdREaeLm9svHjxEqAQkze3vscmyxpkDrbsznc3d7f09iLMtXzcbRTORHNqbaYsJTqJw6GGxOF1eeU1LtembhCyJrWQI/cWwROvglZwNLwqPFbKRLo3df1g0E2H2xIBuwAW/VZqHIuxDsChHI4yh8u1w4NP9OEJERZ6ptPIewMZZKHTA3zDkEmxEcgwqAlApx3AUk7ZwMyVI/4xpw8V3IH1cecuseKwh4IoaDIRpiJOIiNA5Tfu3Nuhpx0RHsnYTh0KFXTKFyR+j4Zeu77W9Fnv+LOl52vxasIBUFjxSI+fgDjHO0PhRGKDsRgZf3JufbKk+HLdzKv1gdHCNEbiWNE9ELEfL8/rPJ5bWD7cZCN1VnIBpsdQ0TROUVFTkbW2Jq8o6nKx7nr5/YW5EbOau7zQ1z46+nC0r2cNoKVtKJkMXYMQWXAAlPJLGFyrdddQ32RoIRsQchMmEIPCMJmZWAjl6qN0WHsUFxgcB3tdYJrFyeRRF8GxmsCeKtGPty0TDKrIUuxM7azooNm7sgdlk1FSqtsEvN41tbOj1wOsB5CUGxyvyMvHuANh12mkK0QRSBEvCXPCCzp+8KSHhcEIr9dPA0T4y0/+tZp+Lvxt/5Qjf7lzLvzgwWDKz/Yj4vxDjx1Le/uA8oM/gG7NoXNvgerx/sh3P4atWxeCUbe94j4+/839/6wOGca/+279MbumEweaIF5hHooB+JhTisggVTRO7MqevD5xLS+j8UrF5PrT4UkS/k6CX+nQxPWOTtjHXXG9b+nBXCGJLQAKJzyFam1PQ0dyUWtNXmJqcWlpe8PQ3Zm1aTO+b2ALmGVwKysWBka2lgdburwBHYbf2pYuW6+tt3feLK/Pbeb6sxFYSHqibwO7CYNlYjivR9LpaioadF9DkEKnJ6ozmU4VExItkUUkgrCeBY+6535mZUXsWYHb4YL2PCypcMF7/dBKd8AHgMjvefIqJ/SqMi3IHTeA4DI90hdHRIqQEUdFijBVhAgEh8GBegH8KGIXjn/3quLWwXCQV3v/6j/Cf37wq18EvXWh4EKs3i82lCMoi/158IHXPxC++TMk7C1CuzYvIM+CclLB1+UwRPNqaWNk/PnSsDkqAROG8oX+7YnbkOr6eiHf4jn3VwP21ppIKs7wi5cU3px7MNtw8/ynhVVt52/MFiXnj1VVlrcvLG0na3GHCDggauA00sm5azcSrsDegX6SpHHi09mOuoGBPkbtNgT26Y36vsLJ9cePX+6avD0nAA5TZus3t4AHpXF7bVI2F6HFmDAaHArFxOLQ7AyX0ZOaRxyIVpLRSUZI3cGKnj6nCEwIJyvL8wdcT3iJsK4Az2pxz2VfNOpdrv7+fodLv1MGbOa9lU1PmrqoguDuU+0SiwLwkkjgPSEhNAmTRCLYBqDwICIiLwD2vMnTC2tzT8Zrcu7kp4EU7e/8f+7/cxCKvxBb8K7A+FYw8aMyx0fKsx/dFCORR4MEMAJboPKNhhzp8oMHc+UT33/3aGbu2dJIeWcOFqH4QUoNVKHhqVfFuh0X8xpqWmsYfpsf4dG6m5PldZWVbUXJQ21FbZeTk2+M3WgfmbtfvvrqOFtJIjCxVKJR3pJXwpfyGxsTxLrERPOV4x+Wd3TXLdcPb4+MVDTlTfdVjK6NA+pZP2j64XrCMWmhGNXy8VCiWq1cOcImQ5lwSoCtsDi/+DqrGusdEKSvDgRimCvq8KJQCP0NrAIM6ilVQagJnnh4hkWQRO3teGIR2NPZv+hw9Vc7XfYdfawDusPV0CCGsweeATaDlN2tFeVHBfl6GtSWE7hIBaCegdD6P3GAcgIFKIB6ZnJkYfXVo9UPU1PTQQvu7bdPHQp990Ik8STRMXU0MOjkhXc+KX7748/F4W+FpN+JWjnmPnH7NOtEKuyIXhq69/mr9tzOyZHryVLOAYsHbocj8gVBaOEZ42ZURmt2Zw2MTNUcFBQ1rFcMddR1MyTZ2U19lWPJ/N/943h7RXt3Xd1n3/bU5ctwVHy8oaHToJMc1vmJ4y8l55Aq7jV1TMzNjq7OjGxXloKGxXD74/oW28b21vLWSIvMBBYBF6mVc5ubclu6pOCEtQg7E4UyUXHQPGaq3cwsrNMZyCMaiZT3sEQxCHWqAPUABq4Ka1FFY/4frhEquK6Wneqd/v4dcJV2u2sPTOsw7sAldbn0bujerUB9CoYHnWxk57Vy7qdm4HsBFhPmi6LAj9XrDWfroFA9OXjxGJrA7sm7Xv7kyfjSZ8lcv5wU8qH9v3x9/y/fipPhULzqSCEyiJiRkQb7gvYfUB4gCiPPRPrevv3151R84eczc+8Mfb+anRrTN0xiU4PDRCc86YIv2DTTI+tXXSBGp6TAeEI4a1NPjLo80f64p77ZzC0pPF/kd5A89ru/pDH8GFqavDl76LocvktGgtwq58POUImYkZCQyCc1Twx0191v6l2rK9/eqLf2c+uPz43u9m5ADx4A+vr5LkgmZUymLC+3uX2hvZmmCcYh1CCuiJURmFkBWKZTwXQy6UG+FqExRPkeViDZjIV7iVGpIEbTkUAOscDFtCDpCCRPEYaohiYIuMsfrehw2ashVXJZF408hXBPD4yvTAD1kCJn7tefTzx4cj0fHviUON+AQBRAgDzD3PZkVSu3szODIK0szDs+Pl6RX8mnatmCuENnQRE1+vVAJXyHSiUvIuj1I7diX/93YCDs7TxSwAMk4MTt97//TUry0Geth2H38Y14Gik3Q09WilDEUBS0wsGeFiTyJ7wdxxQ9nh16GjSHb0WxGnWuy+OjhbnJia1NOjKafOnXVX8ZY3NpXVy8vKapjobBMOUkPk3OZesMOlJOIoPEl1xpXy1vWJpJfllZ1bfR3duSU9r+7LFtcP7lbgu8zUPhqTadb5Rxakoa2o9XzWog1UTgRCasCKXly7yZFojxajodRg7oaNl+jQZoScCyUfB8hHBUUMNbIBYhfX6QdIRtFJ7uHBx4ca3sLTrd1WBdt93lcC4uApJfpsoUhfEUmcgvhn4ze+37b9uwvjcqqDTvaJ4l4ARxHIRY7razixOSU/mdnblXer5ZeDBekha3H0EJOfXuT99UfXUmmKJBh74dEsKhvP5x67G/UwORoVEXT74G6lRwDc99AhOdQ41Fxd+Uc6kxDF1nZV5NDDruR+LLibDXLF6B2KNJETzYhhUaziIcy29NIcfE1+SQ5j78XWpjFBtI4fljf6lK8UtPSa7Kb2qWYjHqrooKRoxRDTRwQ8nYWFo4V3e5vKeivb29DbRrGLu9vS8rBra2ll+aura7bNu7MOdqkLBpydnN0tyFwpKEtg6tTAn8ECYWC9GIaxiEaOydxYEyBt4osrfotBhaEIdodIIdw8CaIhFEJTBmNQK6wDwwqn4RDoR2fb8LXp1I54570amC34twcRddQtDSFGXyWJu/qUr88Jt7OThQ7jh+EwUoiijmStPco4bZ/EssJTm1GCqRUt29gQdPnz8I3OeFo558F5jOJ0/+gkLrFxsjpkB2Ok3A/r4tEHE0qdoHOPmogPNkzMGPq26cz8ko7vh+XM4aa6wZuM+nAj4T4DkKy74ALAgT05MiiUDuSUpjEcTJNQIyy0Xyk5JK41NIJK4/Iz39H39O9Gf7k5pLehlqLTsP5j+0VomezO2y0Q6y/WPYpWZJaeVom1wmLTXw51/W1g9vvZgGpkjtcsfI86155mCXucRMKhnD95bfTIg/3ldXq8QggGbL9LjQWgO4RhNVD3WM0M1jqqZi9Vx/mSZtU8+Deh3qIXhD7VOFIasjkDzAFnkIugcgsQLAZbDZASRx8oSw8EdR7XQDlg8m3UN46ijer1tbq5o/+frza598NrfaIYdv1+TNrJzryT7/t6sSrhtH7syrACC7pq9ubanvvej3KJwQegToDB2N1JeW8o1JdKFXyBdy/1dDPmdRELhFKHicZ4ekTEFU3gcX4xNbG/7z5C5Ixa3e9wslM94Gg6J8cUEoagIWhaHfKigjoiONZSw0KypKgLfqSFxyQomExLbi0xlFsyCvekjJSExuqyrKv9FRUSGVlfbV98ptksN4Nj8thpFcK4VJlyYqU9Bvheq8aXqjr8nsoYE+3ppe2+BqAF/iknpJfBKj1izNaVhb7hbgEFi4nyYmyhso9iYT9pCxGlwkUwgT2n5iv9BDODVxKsLygzEz4S9EYMofSIl0IRJh8eEtSp6tP1wbntzdAeqN02mEx7/6h94I4FA7SIsn8TdmJBe33fi2vCO5rbCuRm3SsNO8Uc0DlbkJV3/ur2OzSHl5V3TiFb/O2dw8miaQEg7b6jRTsTRH8sJkZzwxJCgMFXxOuT//Ku4sFO37YMVQwAn0xDd3b1Z1AH05peL+3d/+5oOLhVf6yUaSjkUIir5N5FNLB/o8+dlUWWgIIcJo9IuH9YAsLknCl3MJVD+yGi9nXPrVbz5py0nPTy5p9szE5TaxuVS5tbSyScJP0IHqXwaDndIsZTVeLwEQ2G63sxnNtdDymN8GlGl7Y2PE0MQGKIQjl0q5XMBQdIlNldN5NhnClMl0giE9yRCKicqCE5CpwgEVWrxSRkdzhIrAyNhqYaYITpYXPOUAMf7oQr1gF8ne9Nyrp+uPn09C2QlZPLjRPaPK4SGI7+y4PeQ8wKXcNZ0l+R3f9nCbBkrVmvyJJlKfmqEmN+YVM7gMxqXkmhqdTiIpuPR+OjU6Mgj9USgG9Cphuf/4q4UrGRhMiEUVEo19D27dWSQiDP5lqAFQsksJFxmFRYeLiqruXU6N948X68ONxiCBgCosw/KH1549M2Nhh6ixTE/fHxKoIsiJghg0UNPtLDJ0dGS+qoLO/PzaLxIYTRXl2eXlc2sG4BsDT4OmtQPhRgIiIjq/eDKbDwauyG1lQcDW8psKpS0tLYaR7ZHRDWi+d9WWcNU0GU3LpdHkcra1tS25xKxlIrBZTKcInnjPtcQqPCkmBvwn8BLtLDQPcCInjNTFCn8sihQ+CJ5nSksFNCVI1ZGKxUkQlHj66Olanief97DwPACJJ/d0q0SAnijAns7Ow4xL7x+f4N4czn/nfHaHCTc6WkPDHktNTE/DH8QTZCydhBxa9sX7d/Axt/7wUerR6NtYYuyt1obV6/d0THTZCj0ShwH8A+XLi0CIvGBlJWCmwELAwGzt5fwb+Qk6fw3dqKHGBPui5HJOntmw8PDpmgxLB8WBjJUpjkZJJbL1BAKbxMbh4LKyqD5hGJ6OT+64J00tLOyphN6mWS7DoEwolMikUPfrdQn+Sn+12s5i5PDNUckSGoHAwTMqG9qkJPnLrWVAl3ZfbG1tvywtKbFquQwaPiGe1NxUUZsjNZkQpiym25nJNIkyTVC5BHjDjBFQbHgYDcckwgl3IizAL4r4AU8CkG0ftOMhe0K+FpapAAl6hSJ7Ym786dPv1mcMK26j3ene6bfvuasde0JA6CxgTWBHsmqkV8fSq4AmvAyDpu1tJlxRx5XGlJRExlcsfLgA5y1dcej98ZdvMAqOZUTVHOZ4fKhm89bN8putpLyKqMYgIgWkr4FyYkHsQwE8BewTpdKEweKjUsfe//MnBik6mhOMpV6UoVDsXs7gwMgaDPI3JdBo7kWAZYzUg+g4AZ7G5vuB7ImRiNNgVQoUNj40/UF5WorBnNvEYOBjGGN4mYzAgsEXoVHN8kMrCUqBlW/V5Ui1MrsLL7VK2YyKOvN89+OtF/O7NoCTAa6r7yWxBDYGnpTDYCSXXu/u4jJRCCAnUVRZWCbcT0gYoYRSqUXQLeJhPRw8oRsYn15gZ7ibIkCWIfkEYF3Ig2IeYj5PaK8bqphYW3qyupHX2bXodkLuBFU7zwOUAs8LrudUWVmGi3VnLH22fHTis5nRvvYqgjc1BQ+KJKxj59KoMSEhYoljr7+AkAw7/fDH8hpjMJg/xglwRj9Sdmty61C7n0zpJ7gdfQISdQvvQDTkaRYVRnkpHKD8lPiUlPzZbyeuG0hyv5RfpaECOCxNAOnhwMjM0oiBKxGo9SwHMQJivIxCFLDSyHiBExudCUgFAZ+u1CQkJlT0CELw/ITa5Mrj14636axTQMtU4ahEGBH2l+uskng/K95ok+vt/exDmt2N7p6HWxseBOQFkBeHQeayF9JVPFvKJZmToXa3JciliEwFSuM04ZwWgDrgeHuKeRHcQYsC7GkRupHwHlwNz/X0lJvwnKt4CA8O7INQOW8u1NVVlC+1z+VOV9RsuhVuwEjBNTh51XCPwXkiY5PEK66a2ZIv28oHOjsWluoSGZqA2xihShVbJvYnUtVCKhCG7I5b6PQoyWZZ2Wa8JvosLubqhbeqo+4N8aMuX2tgafRCDAbj4adbgoIRdHDcf7ytYdVkkDKi0tMSEyvL73/zzfirRD8a+L/aXBl7ZmbrYV83YDVqot0eQo80hnAAOoK5qlCqWkaRV5hlMfh+Go5ClTIqnrCpUE/k5hZWNTUlH3YZ3dVCIVGsVIKCL5fNNXPZbKtOShBoBYRgbkn9xjJATC3Qv4TiCFzo8nJ9i5wmF5C78ObsXtIYiJNUIrwpcQQqE8f0YB0AxUdrcFiI4/CUQ32IEsHzDSPFkJnCAXsr3kAiIS1yKBQQjSyZCnsnkByzZx49bV+aOb5itbrBiuAZnE43/BzAspFJehfkQvk56akd1yTW9u5ZGZRH2AAmmulE+xECcUYylSQBWD+KGIPXi1l0CjY6aD9FEx5pLMCTfo0PwTfXNaiFEaCvD84NBRq8yAhKgOdgr09W5hVlnDuXktx548PCm9d7i3AojLp7tLd4eni6bh6mS2nUkCBKIPinIHUgzKMY0f6pUQS1ebShp5kG820ULL8/t0J6eqy5JMdcm9jcK1fTjHa7Q7willEEUjFbRmDLuVy2EUa65Fqc2lxb/2J4un533mCzTb/Y3d1drq81d9EEWq2gS97bkFtrNtfW0hBZarnaZJI5sVlwvFU8HAaViRJhIelEQa6HBfshhB5EHuwNdlZA57hiZsLqFvr4gNWZpBpdZdPkjIea1rpYM2DzIE8iT04PGYAlzFdUbReDgplUnMa4kU2SHi/MN8EdBz0DO+j8pAmCAtGkHBJUq1GdfCLa6HBCBzoQ3rBEYllZJPmd8ENfnh9YQidVO4MoXgBqwvEywQ/Ek7bL2zJ+HSWGpqhYHBOuF1vrCmUUqm27LodqNUjMpZUZfB2BymLLMF4orEYTJEOT2eBj+uu2Xww/e+bPUQVRMKyW0svNtSWXxsIPqW2SPCuOA4NCDomLgMJQ+yW6LqpAzu1nlYGUl51G5XKlhtzpWlJLC+T73fO9tvmX2/VcGrVL3QUtZfPISDf0O6QoBIrJhJAO9WTWD6Hdx6nyhowJyiFASBQBARBXhHQ6UwHm9BwFT5wLuyvW1vIsYWFwESWg6LC6sLq0/Pj5vKRnFKYWIaq5obJXge0zAe50eMonO+tYzuW2bFJOlRoAGYqRCGFWzOVgQ2jUHB2ZrBPX5EUl0alCcJ0oDAz84jToW4795MMphJi24wn7j0bS9/PCYI0QYFSevI6io0J8lzr69bGsY6cP+hGRqs3GPDl8nWF5O0WpFpMMEqtLUorH59XLMYCcEQ7FaTRkmpKJ6xoGLe9nzytowhAKCketKamc7M4hxCnZeCufapJRgZul12JRFLWaH8XugnY5bRCrdrplHIKcpu5qmt8taSGwa1vm++oBENnt41Jl1C6aFjxD+0AzCcouNcLCZGKZFPqP5sQpoGTz9OkVMErnIYB6Q2eSqQJri/5vTxqsRni+vrTcLhRGiJgOncuVt7o6+uTh1lbudHvHlYaGhcqMlT39HgKCEbCWjWijPsNq1/8q4fBYQ3Nbjgc1xCZVq0NYeDEHQ4TsmgoaZvwoK5dIpAZSKH8EN4kKIVI0F+PpMZ3ZSk0IPKo+kVjY/AL3E0JkAEBkuMZkZoAMhktgxKkgJTU/gUw8RNTIqBxq14uB4g/el/S7SFx+v9bOl1SMlAiwakJMHErDGcRRmNvPYVX680evOtgyHDhl0PyS4NPxAg4BcvJB6H67ebxBGB0G1RoWSSAT0OxoIeBHasoBHFWmZnfXv2jCE2rhme97uds9MA1J66BaqyWQ2VJze1+OFP4fCKwTKkwfJ0DwcGDwA17heHvgThR8KFJUwwIvJPJHewagrg9MjsLg7HgDCbBkva7GJcmbbBieG96e7hlZnVsaf/xoraJmciajzK1gekh5PDeHIugnfWpOnJ1tHlODNQKwRGMcCJX54zDsdCWGajbr5GSlBi3mUOIEStn/mrq22FSqKFpFpmi19d1IU2eiHduOFVT02vqAdKYx4qidYkaoaWlG+2GMMPFRJEAgXmMo+Ko14lQDGaajRIGkSowm2PggsYmNtGor8mNKrFb4UeOf/rgGn8dSbm+vfSz22Y+119kHXerx8dnxc+empp/7+qHzLWbyRlRwuBzIsE08sOh7l4gBM3TRmHs3esXLoc/esFtmh/tcFMVyUeeYUyMFdcxpw6ACm3IUOJWzj11zFnGt9UtF0JXt+tER7kL4bs11EUGYh4fJWZK0305LBDU6ZiexWS2ERLh3zqLe1CpoRI5rb06RBH/7heezNKtTnU6CGZJr7Vyt1U518oWczrMk1edy2WKFIlgVbqwHzYqdygygApKGZf711F1Et485ceUESqNuQMJS3ogvFTbXlheeC6q4UTbifHp6/VQAk+9aeTG4uHx6992NUPndw+fe/Mlju+5MbB8ar4gn9hXv+mh15NR5BF4Xk4TbvUj2tttNdpEc7u+3q9qblGVo7lZUDp5Rkrj+vD8uvQsjaD6cfvbmP+5+8otf68Xtjy+CWNT4uSwS8IyGgjrl2sHlmYM3X+xU3vsuMTboOfca9Ct4zcsgdjsoSou4PJqKCqx6vB+MMeTsq5+8Ucxy+Wy8fFQsHjYLS/wiZYkVMhg9cf7547MEuuxmwsDTUiqFPTtqiaTGJbo0SLHkLEI2eE5Jb9dy9mtiCEkp8EtAtJXDWBv7SIoZ4TCa2saBn9/5Rd1xlOgSyp+/TfNvOBHs3d2oHr7yTN/8AEIRsODXQ0v3T+eXXpxeotSoU9Oe9s9ZbYHNA0wdb6e0G/3x7V0M2dp8TtVCT3scXhD8IFPD4v38yBN52+Kdg+Ezr732AsRctwm3XAhVYbyfJyPo4Vv4b6+bcCN1mBq9uu+OvgfDAuxmNfbaD998gYp2108bDghr1M/0TimhzRWnc+/b0dshFhjde/mpzzeZlx/hzRaTukUJwu2Y5DMbtpNnqc677342++N+cf9wN/Tah7GCjctXs/5sdvsYF1W36yEdJ7CH4XdL1KClV6JpM4wT5PkEdIZGjqIOshItkdTtQ+OklD6p6XLHZR9ziW0x3UDLQ8/kRI6l0iNpa4gRQM9j1mJPWK2ApSyVJF+vaf6/1YXUZGA8CftEKg+2Dl04qc+J6SILc0/f6yFvxNHMraDzimgtcNDa/aZZL+SXsp990/y5cHoje0VUAWUf3kEmG/7gsuumZoUnF8YEqJi9bgI5zFUEpJ/nC1acumH5c6Eycbv3wGS5w543z33oqln2sQtuA4WwcPr0d1989um77z4xfZZjiDD2uyV5P8tdMR167t65vW+p4atfGNyacz5d/v4bcQr7l30zGHzzYgdxAfGYQ+2nOGv/q8kkOpLH737zft/CZws3MokVFGnVwu7R/na92jJUCa7hYZpwT1x0McXSA70SUnGHCl0bTExIozod1Xmyv98imdKNRsxlFexcfwZ1fLtQo1k74+JoihvjbEmXYAczAAUnmm7IGfFicCmBNoD8H55QhsDf0T6T1FWJ4COWkcV7R+3MeecOXjSoaR6nHH0pX/PvJqrf/IjIGSxub3/2afa5l3FYd+vBvXu9O7TjyusQuXmLcMXzQ7MWt2PvLAicJ8wTxgQIYtACc7j01CjS6MrevVMllFxknwWE29nnX20+53w78+R7T7z32XfNNXnNn1vhYaESdWPImNAJccCUB2NlLrBrznq98P5voyDKzFPQvu+FUT9dbXJfcP7sRbf39/nXoeNeK68n775jcXE1uVHOhhInB0fHOCVcNs5ovOvChgEJTLmsHkpCYkvo9tFvqQtomGvF41F5iheepWhpQBdrssvO9hsZZzrdTrTyDDdE0iTHnMsxixEBG4pF/V5yA08caRKah0Vhfj4V6zrRv9bAJD6QPvksU/9GlmnAeer90wvLNtf4w9ecN0tSwiBJ8jspOfhcnFlZO6gWNrPZlaw/GnXeG713C8wIrpIc9IYd5PCgxcwOjdw+fPZZzi9fxk3gqvsxApmE5WajsfrwDd4rSQvrcTpvdZzJmghEJD58+ZnngHkmn/xuM376i1+3d7/E7UsZu0SP4VhgNIj2ylt7XjfYp5uHLxgrv9usUWHvuNkUHh20q+EJy+x54z73OcSj11pY6+o6ejvxje2TResd4DD3j9aKx7ut+slhs1nfR/uCJc4ftw/eTuhcxDtOogtf0XWKvBKMxjypUoN2XXC9w9hpGp93cZmMK52m9Ew6nRLbmhHehxiBylBcwIr+HCFN9hhBGDU8LTaPjjczzEFe/9s8jXDejQHxw29+bR1s69j7mUQyFzo1NnSuZejiCd5un0ChT8vJZM72QGg5IO9+/25WCcLQppw4+IFzyZ6fPIMOsCuDtIk461JigPj2ivhaFJXlWYY3NGG9bbnp4n7QZKRlduxeHqfv8TZsmTh3btbk8hNEaPPgs403vtyMrxW3o4RrkR2xzonRqOfxN7/1VGjz8PXDBHHm3MpBlfFqt189MElYIBcYNvORczP05DnE+bf3J1eerxbX8uWDVnI6xVSPi4eb++8etE4MRuP4x2IT0KQZ1JPXn8VTJcSgYfh2mnT85JawGXgSZpuTs9ZYLZFzudIZjnHpaYbNZBiUnSmNZ2FRtIXMkMxykuPJXqmHLum3VuZnSkKxBTne8TeHMdosEYRhpMgFgaqUP/rx1++Pc2CeMq5IaoxBZnE3NTvutrBsCX6XDsbFWE4OBK/IluvHZf/rUQ+KjG+/3fIYcrxbqSsrboSzq2bt5xLnh79derlQ3si+zA9A4mPGWbrzH77UQlL28TCS6PNMAzDatxFvJ6XbHzUnt5nl7XjB/2L88/Lz/pX3aXNmaYjnBKh2dzxvfntdiTBf+BDxtukSx1z8s6DDTZ+PmRK4Ltx9vtmSEvNCyU3MrmeLSGQghjs6+rFZP64fN5vH+9XN/ZNkNntUb37f/LF51PyUs/PUWRT0MbSbZocRiUj1TfcMhK/DAqdFplNimuvkoFoQIP3mMmkOeApcug0tqE7zPHwFy1O2G2WespM94Ooupg29LM4v4RKgZibHCMOkzBgB3mRknXKrhQkP36TxR5eQYlCujtnmpsYvGL72+tsv8lQq1MqmYmWYyFy0ehIvNJRqdA9Npam9b4EnJiN7cQBk0tT7AjE7JXmi3367pBReXoiStGTCGsDCuXx4PkSot/GxsfD3vRMXECbbE69M+/2BOWtwfS0Rr+6nt5ziUP/jU5rVc+ube8HTnPkqx61m0wtn0EL0/ddJ8GSPwv9hRNRVJomLb5aTwlwOt0SV5WS2eHSEWT+to2arnN2uJosHa5hPWTeGgfx4DEFSGo6LpVFgTxoT1Hi6tCOE6cfMQEAXMnLuRllg5IwIQxYyLuDJZLDSnJDrNBpMKs3yDhovs9XaJ+h8z6Rv3MWR2PK1k2qxvF2EifXRjSNj10uTRu6UOmnsH37/RVFJuJDUjZ5lJzPgpDGMjSAgsad5wSXmZYpDKqrUPzOmfTnxgJQJ80nBLEMwuuPDV7nKNGzvvfRbjNtcet15754XHgDJOd66C3dQms1/44unxybvmQCoo9OhUNQ2NBZY+KxQP1hrq7rdrhOkx7nnhupESaPwubGfOMfsJueeeNlrmhw/j4A6iLqYwFH/xuHxvpzASbYTUK7JlWw2mfTns4U4hvvmi9vNg0Kh2iwUDpqH3xQUhidpc9f7EDhqhYZaxeuQTI+ViF6J4CGjSSgxnuW5VCqjcyKMNJcGnKnUkM7CWXBaRt+x8zoX8zMgUHrmJXaMo7xuAdesZD9rHv34Y43NHNeMOC+lBZmzionO/pe4tSuRdmW0CBgAO0/PUqTFPDNDEDM0qWf8iVzKv/25XwkFonNTGhIqDGDUnE7PT94w2GUHjUTWPPlY2K7uXfEtVDr4zFn0pAElEO1q+jFcdMJCAMounjQKlzPxabM1GoByfXE1tLCcxbFSXgKhab/Sbu93b+1dedF5fTfMWVljg3tV55QXPxJvRpLj5EyT5kkZpyurtQSqtpWV6UA1XwspyVpC8SuJjVbRcGubhfz2UX1/+73nBVLqRZPQRKClAzBNvfSOV0dhWIKDZlmdy4BLStsZhCBdz0QMKHPGu3QuxiFa0yTPU0OoVYUIBza0p3SlZ2zM9fw02vX52MI29PP72f0f9zPzvWClWlV43VSiWV4NJZR0jMFRHEFgddY+ytLmq8xGHOPgozluESOuMYDZGTy9pAqRpZd3djxOqOkxKQrnv4x6AQxgeGpLjeypO56VEOWlTeZ5wjLgA2zdwDRpIXq7eOK9ZeJ8Asz2vI8S/SIzt7q8POJaXooGnzs1JvAY/+42Od7cczhuHR0lhwdMkFt4K+ht2MctNKUhNSxIJvMkW0QaX4j58xshqzXYCcpBJRgMKoqSL574Vwrb7+cTifqPzcP9QlXnEXkGJBO2OzCdQXcSTUVfrwRFAcsSQIyQUtAuQPrN8hJhQNnOdA20FuB04FnhhX67JNEZAY2kHpW3MzZrKA6+SQmufgqyAGMF9zFxxF9N1LM5DgeYEoWELVaLLYLuEwRQ3DzLcDRiidlCIP0SeFaghJgSE4PBLblcCAra0pzHC15p71uj4bmDohM0H8aaeTy32tXoCrPmv2Lp3tEHrwtP9HbPOs+gQAfXaphm1wM4LndMzODZx4rJHLd46oEHrrljOhbJLQUZ3nurA4kQBFYYm0Wdx2J8kYMwxpo4xtnrb6dyysnx8fdpQEPHCtmsIiaCS4FaLBhsy21ZhCOKxfIHhbyyshEXxXy1WGwen2wHckxvlxtAwTIAPE20m0BdTIN/oCDhBKADwEoQdIJmgRqgrAk6i2ckoQns/R3EIZuA9pueobw9QxSFdDR00FSqBSWRPf7+x2/wXVI0JmYcHVUlKZdIKIGcS7YxKXwJhhmtOHSIbAnzDHYEaRdoFmWJGsmLUacVKruV0+/7A07lOcyxVff2HEhujXphEvKnEmR4YUf4iqjz/qAYnVLfDDsmTMavQaAPaET2v/AEbTBMuyfgDnyTfCSlcS7bOy7bonXx3qAYgQiOBz87OFUaFM6/YGpu9irzhWf6YKKEGQZP8/mT1iGacdKkibdaQ9jcShDhLCfLYtA559REUQwmVkP1fPb0CoynoRSO3q2XszElM/CX98HLC2uUDJ7XBItzCF2aSDKx2Om0BMuVwIoguEuSzvJ4xvGZRk2nUQzZaUmCRTt6BDsVW34+WTiAaCxmXfnsEGnZ4WF5DQzc0YlIZ3KdkxPZxURSkRzDpBhVBanD8lfybkxgBNPn85VYS2mqlkxtOVOq1xOpbu/WItGXtFJFu+XeTNQDTe6k7zEHCNRSeAcY426J6+wIUhjfjoTGSCJQM0OZYsQh9Kyuwe4ney34f0AfaEjPhlx9/dcsnuqLIJLEMq5F0uQ7B0yp6vdOjE6Tw4QJHxMwUMDAsqmT43p9/1DwDZR01on+YyIbizixgsmkEtHE4FwwsBoqNgpr2O7lA7/cqheax+WNdyQAigXaRyKwMYjHJs2QEDsyLNCUoEDUdZgmIMN3AaA8C7ANQDkX3B9FQo4EVbwE23b39Ntdwfi6P5SHgsyKy3jXD6onR81modEo19ErobSc3M4xaVnghAyHFMxb0UaCzDhLGHjS0jwSDexpzZmyOiG082rBfFkRs9uaFkx8uvZZcytcAXU5CS6l97FKqQTJbZgY68MEMhxZds84ZuYNIJFIAEYaOf7Y51m/vC6Bv0bzitdyo0P95954ze8jAqfU1j49jcsxGJ/ZceXE+NDpqcfOWu67oCsIMZlmzjDsidI6DSRFJwkdcJhVTJaNri07t4Ao/phwqVtiLJhcjwbz1XxCweyEA1ku7x/++OlCEqoVIyyiy4tnuM4ZH4GGRYmle5FcltB/B4Il4AnzZHUYKzk/TxuGmlKUTvpNeG/8PS3BvnoydiZRXSsvrCQCOXl1Ofb8mnLShKCkcVTOx8ROhtXTCEkZDnjqyE2piDa3sCkKNOWAf5EIWk6NAidwdzZYqLaj+RPlolx91y9WW19sHm9rO6UZNJqwgecxtZT3bHkclvH4lZ4p5xXq5Y8RoK9MMAujDDOxI5Jl9bsvdg/KlIlGJuiFPUWM/uPQyCk5tVvb+Oa73ePt8dmU9QJkAEO3WwhXn9T7t5cA/ryaxniPauvd5HEbPg+vmdWJpXlUm2tLy2lMREwqq8nlYK1z1EjICWUjW25gpMKXG2sHUtc8fYYMBs8zpRmTD3sH4RsskrG1deO5u91hprBQARU9YOX0NnJQVfWOpjM0SlKa7rFBmJPNryRjcDKx5H5ndQP31rSKeTBZsEaBh1s2ElmoRkldCG0WTkJiYOW0VX9+yeni52kuUa2BQNVV1YM3qBpWymIkV939NJTfbZ3sF+MeQ1gy4QCesyoyiy3vBM/2V7yRvb3BW0uGjtwwCJSyw5L1i/wr73313ZfbIf6Cs2h60o5qzNYHcrn/VOggsduKv4crbZpDVB5Ho7CMstRxFm3IdLurlxfbWB0MPi20OS+GnXhGIzh8rXrf1Ma2VE8kMhdMKMkleTEYrHZqYjBpNNhOqo3sajIGOI03kwEnnmd8cD6kIA0MjkjAiYdJAkpsfdooCCUj8bxdgoGCWG4LIOTx+zh1nwQb7UGyMyfHAis4FSvGWs1ObKF51GoUTo7yKZ4nCDdSTLwciG94mQAehLpKIBFf0vz+BQhOUoXGUU2dgnZpB3jCP0aUanwLZ+u3NzEBMr92Ut4Csep2Q1sL4g+3dUS8FvNVV11FVPBvPY6/+awBPO782P/pGy/d/8pXn7+7YTv3aQpeYJyH/MXO4erA9U+3T3/3+ROfYSr8vaQ/iRweyQVJDl5J/g2mEcbS7aqCMT77iv/gqIMzEhrQ3MppKkiNIcbDRIIBEaU/iAtZrOH+openl6cTilJvKbFa5h/yHwb6F69GEAJT7dB9c2ldImCS9DzSKp/ho3XJsEw0NnnYLap4tOwn3BVXRPcRemmix2VHAbWaPw0HjVNKNTG2spkvHGG+kJzhgXdJf2yG0AX8h5cpjSQjX970d7JLyN2r2WDa36w2oLQBkngIquDdWlJWItGIqPgLibYCl0rjmI274oNWxOdVw2++GYaA3Hyt2TTjDqMr9R9BeOqNzz+afuaOF+O4+OiT5AaPfAy1I80zi1bMaX59eWF9Lf5lsdyS7wjJIE8R0Dn7lSWLGSD8Bahd7NQ6QRherdpSZEh/DNv0aBH0LeyM4NXgQhGgMEVec0VkXK+zkFx/Mh+ItoOLa0f7XQM1Ht0j2JIEUWwgI55wo06rzaODukDZw89DGQjvSfwFqNCf4SuCDrZngq4gylI6CfaxhxvnGbGTTyoGnji5Ldaa9ZWTat3v4lhUC5B70LRRBOi0cVpZztnyWb/iR8aRyG4WMDILjl1RVUBa2TGoKnVJEzfzXDohRsR8FMLQEuoMvIeQiZ4JT3nw8YwZjBy4i0n3xJX0v3ja4q9M33nfLQvvLZRxDRvkhr3IB1k2fWPMxo0xzqR/eq1Qxoz9amxzPwPlwqzFQkN+Dwy6a5Jga4qo7aS1lJwtSDOoJODT07BRVUDrg9mKzDnbMu5sHuPGtIjYKOfzS9VELBlfcYpgHWJG7dut1rqA9uJ3Xmrjd4iMQnxNzWNJmYwEA2Wx2+l5qbvlXRi8QhphxC0vurRgDj5qsofXRwKKsjiSkpGapnIoHXFMOdtp7Sd0ZEM0vnxJR1GsC4LRjWY4GW6nGtp4f20NVLehmPAnlCXXlAoZLSht2GopYtM4cFsabDivlVBvIseS0IpCjrRT4ZEJmSVU/pcNGsocqHgG/uIH+adfutE65nx6eTmfPLXuZ8ZpOqzbuYjVxdz1WYxhAuKCf2Hh/id2d+v7jU4ixthZ+i8QunQteATIr7V0oZFKhzrIeBxhldNUq1PWrAHRBgGn7ELK4Q+MDLnmZDnpt6ZjrbyCrXgQdyZkg5xj8c5YRhyCFFZG2jqmbYGEUQ2EpYxu2KkuzQNrI6/SEdxPMiX8mA6ukRVzjQRN+NieEp+WOwl40FobxVo6hfK/edzB1t9PILH1GRbO89yYXC3cKHCjlC3+/kI2vtYqflYs5Ns5JdspV8vTafUnGnjCZ917r+p0egW8qvZIpLOkVrDQoML5Lzpc4SuVYQJZK4grnOm6rtTrg2bCBDCGaJoJBHDb2BW32FY3f9x8I7R+CjNISQ5dmdFrMrFXb7RGEDU+eeeT+09vHnwBGvggm4qMGKHDeABRIqUFYZ58LScgaUL2NbhDuSDbjGjCqYDVFrGNchExFlOipxib0ykmZK4/lofPKu6Wn0ADhJtHc5j4D08LRqq04fD0nS01bTfISzqj07BPiGURiLpiGprP5NJ8qXSlA61OkamlJT2S6imBkspZ4VdzbcTzTBpVVL3ZbAtCrZqiYd86C0RxJqLRaHAyVaIC2XgsEFOyhePtg0IbrSklDj+6U/HRFR3WqSypQXmq4hGDlBpJQXE3vaShf4p4NVFBXjWD2QQW4GmB6tQBWCHqQ+4pLJzOijZkNzdeccPIXPz9jfVAiBnzCAKFjES+sT/NQKadXJTfWF39ZGG7vGI0AvK1oGbYp8+wUBiOkEnV1EopYxMiiXxm3kRSaFRoKjcGDacVNzs6Nc4aiwXnXKosJlCHxmQxuSo3Tqrx0yeJBIPch+2Gdlgi8KTlWlpMZSTBMyogCQWeehdPVE88LcGF+nBUjUCTqaJmPCA/55yxIFKqWq1Hzww5Rdg2kwaBgofA5RP1w3qKoAU5gowKQx10Km2zJRPV3CnBzcdC8VVxyxav49ZfzBLLFnO1pXwn6qnswIuCVer41/1B1SbCfSDg02rofSMFpWdK8C54TckJ3wQ9b5pwg1tFzmMoTU3vBJKFkM01de5bczcMDS0Gp29kVgvrGy+OCtgZbC507nlj/WNyoO+aQiuWDK1tPLCyvFKWuQA58LfXAwZCGtUf2F0lRUVApWFo4njpSiHNgDjkOatVYEQXc+MpEbImJpfoxFbywZg1Yo01GvnNehNNBUHgLpL+7vNgVzMdmArqazXNZfQSEIY1YpdLxrFMn4S4BNGbg7614iu1G22BZ2D0SRZGm+kheSYlwzwR+tvtcohbToeSNZxJzki04TCQcNOwWrgh0Z/OLvFnYYuviPfKSr3TgfNstQ4SYlBMd0SckkNeK3ALa58WZNea//3DA8SCSqJ+kILx4lt5fL5zfPw4QU8Qvb4JZzYFh2XyGefyrDHUhcq959r6RBt+skUZozgY27nnsiyLeSkEz3Eq5JvvjFhD68lkIlQVF/3xUzxB/5WEd/GEkt1gewnJxaVFjeBVwZUC8UNFBBJ9sn4oizlhdCS2aBXbkYgYjAZiziDu5EKAyicQ6082GymOYy1/4SnRQroG44LBUUY7RBulEY94gCFhh/kQoLuSty3B7S1V8C9zMj/qpXLp3smS+ieWGSx4JW8u8wAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/co2_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/compass.json b/application/src/main/data/json/system/widget_types/compass.json index c74108d034..6a5823e65f 100644 --- a/application/src/main/data/json/system/widget_types/compass.json +++ b/application/src/main/data/json/system/widget_types/compass.json @@ -2,7 +2,7 @@ "fqn": "analogue_gauges.analogue_compass", "name": "Compass", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/analogue_gauges.analogue_compass.png", "description": "Displays latest value of the attribute or time-series data on the compass. Expects value to be in range of 0 to 360.", "descriptor": { "type": "latest", @@ -11,12 +11,14 @@ "resources": [], "templateHtml": "", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueCompass(self.ctx, 'compass');\n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}", + "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueCompass(self.ctx, 'compass');\n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-analogue-compass-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-compass-gauge-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"minorTicks\":22,\"needleCircleSize\":15,\"showBorder\":true,\"borderOuterWidth\":10,\"colorPlate\":\"#222\",\"colorMajorTicks\":\"#f5f5f5\",\"colorMinorTicks\":\"#ddd\",\"colorNeedle\":\"#f08080\",\"colorNeedleCircle\":\"#e8e8e8\",\"colorBorder\":\"#ccc\",\"majorTickFont\":{\"family\":\"Roboto\",\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#ccc\"},\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"animationTarget\":\"needle\",\"majorTicks\":[\"N\",\"NE\",\"E\",\"SE\",\"S\",\"SW\",\"W\",\"NW\"]},\"title\":\"Compass\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" }, + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"minorTicks\":22,\"needleCircleSize\":15,\"showBorder\":true,\"borderOuterWidth\":10,\"colorPlate\":\"#222\",\"colorMajorTicks\":\"#f5f5f5\",\"colorMinorTicks\":\"#ddd\",\"colorNeedle\":\"#f08080\",\"colorNeedleCircle\":\"#e8e8e8\",\"colorBorder\":\"#ccc\",\"majorTickFont\":{\"family\":\"Roboto\",\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#ccc\"},\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"animationTarget\":\"needle\",\"majorTicks\":[\"N\",\"NE\",\"E\",\"SE\",\"S\",\"SW\",\"W\",\"NW\"]},\"title\":\"Compass\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" + }, "externalId": null, "tags": [ "direction finder", diff --git a/application/src/main/data/json/system/widget_types/dashboard_state_widget.json b/application/src/main/data/json/system/widget_types/dashboard_state_widget.json index 5ba95e2593..798fd39499 100644 --- a/application/src/main/data/json/system/widget_types/dashboard_state_widget.json +++ b/application/src/main/data/json/system/widget_types/dashboard_state_widget.json @@ -2,7 +2,7 @@ "fqn": "cards.dashboard_state_widget", "name": "Dashboard state widget", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.dashboard_state_widget.png", "description": "Displays specified dashboard state inside widget. Advanced widget settings allows you to configure target dashboard state to be displayed.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/dashboards.json b/application/src/main/data/json/system/widget_types/dashboards.json index a0dc6c4172..e65a2f7753 100644 --- a/application/src/main/data/json/system/widget_types/dashboards.json +++ b/application/src/main/data/json/system/widget_types/dashboards.json @@ -2,7 +2,7 @@ "fqn": "home_page_widgets.dashboards", "name": "Dashboards", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.dashboards.png", "description": "Display and manage the 'last viewed' or 'starred' dashboard lists.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/date_range_navigator.json b/application/src/main/data/json/system/widget_types/date_range_navigator.json index 06231d055d..33949052ff 100644 --- a/application/src/main/data/json/system/widget_types/date_range_navigator.json +++ b/application/src/main/data/json/system/widget_types/date_range_navigator.json @@ -2,7 +2,7 @@ "fqn": "date.date_range_navigator", "name": "Date-range-navigator", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/date.date_range_navigator.png", "description": "The date-time stepper to change the time window of the dashboard. The change affects all widgets that use the dashboard time window.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/device_admin_table.json b/application/src/main/data/json/system/widget_types/device_admin_table.json index af460a286c..358ca12782 100644 --- a/application/src/main/data/json/system/widget_types/device_admin_table.json +++ b/application/src/main/data/json/system/widget_types/device_admin_table.json @@ -2,7 +2,7 @@ "fqn": "entity_admin_widgets.device_admin_table", "name": "Device admin table", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/entity_admin_widgets.device_admin_table.png", "description": "Customized entity table widget with preconfigured actions to create, update and delete devices.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/device_claiming_widget.json b/application/src/main/data/json/system/widget_types/device_claiming_widget.json index 4ac8654ab4..fce1534c5a 100644 --- a/application/src/main/data/json/system/widget_types/device_claiming_widget.json +++ b/application/src/main/data/json/system/widget_types/device_claiming_widget.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.device_claiming_widget", "name": "Device claiming widget", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.device_claiming_widget.png", "description": "Allows to claim the device using name and optional secret key.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/digital_horizontal_bar.json b/application/src/main/data/json/system/widget_types/digital_horizontal_bar.json index deb82422c6..7972cb23a0 100644 --- a/application/src/main/data/json/system/widget_types/digital_horizontal_bar.json +++ b/application/src/main/data/json/system/widget_types/digital_horizontal_bar.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.digital_bar", "name": "Digital horizontal bar", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.digital_bar.png", "description": "Preconfigured gauge to display any value reading as a horizontal bar. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/digital_speedometer.json b/application/src/main/data/json/system/widget_types/digital_speedometer.json index a3844fc560..e4e755bac4 100644 --- a/application/src/main/data/json/system/widget_types/digital_speedometer.json +++ b/application/src/main/data/json/system/widget_types/digital_speedometer.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.digital_speedometer", "name": "Digital speedometer", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.digital_speedometer.png", "description": "Preconfigured gauge to display speed. Allows to configure speed range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/digital_thermometer.json b/application/src/main/data/json/system/widget_types/digital_thermometer.json index ab75474f9c..ad8543666f 100644 --- a/application/src/main/data/json/system/widget_types/digital_thermometer.json +++ b/application/src/main/data/json/system/widget_types/digital_thermometer.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.digital_thermometer", "name": "Digital thermometer", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.digital_thermometer.png", "description": "Preconfigured gauge to display temperature. Allows to configure temperature range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/digital_vertical_bar.json b/application/src/main/data/json/system/widget_types/digital_vertical_bar.json index aecd305300..cf0bdd3b2c 100644 --- a/application/src/main/data/json/system/widget_types/digital_vertical_bar.json +++ b/application/src/main/data/json/system/widget_types/digital_vertical_bar.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.digital_vertical_bar", "name": "Digital vertical bar", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.digital_vertical_bar.png", "description": "Preconfigured gauge to display any value reading as a vertical bar. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/documentation_links.json b/application/src/main/data/json/system/widget_types/documentation_links.json index f33711c532..a1ecf247a3 100644 --- a/application/src/main/data/json/system/widget_types/documentation_links.json +++ b/application/src/main/data/json/system/widget_types/documentation_links.json @@ -2,7 +2,7 @@ "fqn": "home_page_widgets.documentation_links", "name": "Documentation links", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.documentation_links.png", "description": "Configure and display links to documentation or any other resources.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/doughnut.json b/application/src/main/data/json/system/widget_types/doughnut.json index 6056cb5a44..d8b62e460c 100644 --- a/application/src/main/data/json/system/widget_types/doughnut.json +++ b/application/src/main/data/json/system/widget_types/doughnut.json @@ -2,7 +2,7 @@ "fqn": "charts.doughnut_chart_js", "name": "Doughnut", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.doughnut_chart_js.png", "description": "Displays the latest values of the attributes or time-series data for multiple entities in a doughnut chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/edge_quick_overview.json b/application/src/main/data/json/system/widget_types/edge_quick_overview.json index 018b3f7587..ede0165626 100644 --- a/application/src/main/data/json/system/widget_types/edge_quick_overview.json +++ b/application/src/main/data/json/system/widget_types/edge_quick_overview.json @@ -2,7 +2,7 @@ "fqn": "edge_widgets.edges_overview", "name": "Edge Quick Overview", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAClCAMAAAAu7EIoAAAA21BMVEX////4+PjX19fx8fH8/Pzp6env7+/s7Ozj4+Pg4OD09PTIyMjy8vL29vbn5+e/v7+8vLzBwcHl5eXd3d2UlJTb29u1tbWampqEhISioqLS0tLZ2dmIiIiGhoaXl5eMjIyBgYHKysqqqqqlpaXU1NTQ0NB+fn7FxcXDw8O6urqysrKLi4t6enrOzs63t7d1dXVubm6np6ePj49paWmtra2RkZFkZGSdnZ2fn5+5ubmcnJzNzc3MzMyvr69fX19WVlYsLCysrKxycnIiIiIWFhZQUFBAQEBKSko3NzckNjdoAAALR0lEQVR42u2diXKjRhCGf9AwDPd9CAG67/uWfNt7JO//RAE5TjaWt5ykNjbr8FVBNS2pyl8xQzeDbIPKqqpWfmpUVVZFqPgIEAEUHwGOQcRHgPMg4CPA1T6KCF+KFIuXRAhH8NNxLkKUdBV0HoVeMyLkKXiePuMs9Z+LVJbjsD7iAG7biKsyYDbxDcTsDMh06+ThMd7WkEOHXH7ckpDTrNebeIZu/HgTOYo4esWT74iADqK+nL9vcilSok9XPrzI07ioRgDNmrguq66vAFz1+GGPMpmTKgpHpxKXdEQGSJNpc+JJhNrwulqF5z2VSHYT9NKWGWFyxcaPoXMbi95ip35PBPpYPgnPrxUm9NzdbDpPd3x7FQ6y5H4y2atklYsEI3DhZZ23Qy/UV24WmnETOKaA24rF642SrNqDm+tgyMbNulhPE2UsPBhmGz8Gvq4BUvJ9kdov9CTysGpHhosLPzVJaC7Mw5iAtt1YAeq5yNYAxoNxLtKwYiLVwi/3ADZVYD9qH7ed8GDONytE7qzVGRsPzd7GPc4vAgU/Bo4CIPSloUVXi4ybu/WSy0R6DDAvUPXTPpLjLqgaBNI8WZvkUaRdhdqrZSINLzRXkMXeesUB/ZhgrHQnKzqJ29czF3I84Tvj4659qG0e/Lgn4sdAIwBal3tBRPn0692vd18/ff4q5mekOlRqjeGDP2jc77pu9foSIAflkO1Ps5n1lnGd7Ffp3GtIYWurxJfuCKDJYR9X1PUSo5U/NLZAdc1FsdQYtfTure42CH4M3YXDadbipaE1+BTM03Xr7vOvmQixWhtT5mcGo5vqwqbHIc2SNd0DEInIkPxtrIozo0mvODZqcl0qNgkgzmYiEAng+r6kdwA9Au3CGSmc3CQSjx+Es2iI/KKnvSAyvfuU8/lzPkv+hKX1DcFLkJqGd4PIMiGqhhdEZD+4uLjINoXgW1Ra+Fr/oXutn5JSpGiUIkWjFCkapUjR+N+LFK73+quIZtCnkDL8BUnKcuSPI8MSn+KK9pJo38abcS4iHXhwTMws5IpAbJtS3SZEF8DZVhdiixFbIBUN1Bd4RdU4SnRd85ske5eqM8pUUMbJNgXEdh9vxrmIcmWRqWmx4eCqdlWbDYfWbMbXDNNRjE0XetubGkOHUUgGiHrlCRY/tLzrfsc0ecWfXQ9M0Rgo040ORIoh4404F5E3nY3IGx3RUKSaYui2YTGp7/t+f6Z1I3BDcagyA4BjAVwzE3GG3YrimSIdDmrM4I7NtuErEUD87kjCG3Eu4l03R13JmXW8zixS+p5jWrbUNyNdONJmF9xMMIXagCMQfZVdXUaSyRyzo/CWxMy+xyzueHkU9KtMRLhXhhbeiHORKYOo8EPD7ptTp6MPR8NLwe7aQ0OoGX4NUCJpaAoOBTpDUxdmx75kmrpnMXNod5hwSfriYMjzHsDzkAca3oZzEXLaNA5EI4QIkdElGeA4ZEkCEC6Ps0x+jCzOX3vKZoA8fhI4bXgTXq8jcofn8NPwv6/shaMUKRqlSNEoRYpGKVI0SpGiUYoUjVyk4As9/1ak+I8L/1cissQcJtE8lNLt1nzK+338FaFoN4/PRKhAVEL1PLRubndzxpiaxZV1j4Pm6CCMEVBH1ucKBEdDcXguIqqGoJ4y1u0vt7/0eutWFitxyJNqPeTNJDFYPA6s23YnrB8KNArPRKRWpyJRqp3OyK1itAMArnHf5sL7Pju4Ct+udx86odTvKUqRRaBDtgkhsHa3u5tI2WQi4k3SWFc6rfCKjca++xC4LJSo6QYFmijPRCqObdvSH0PrS//YykSGjag7MVMj3ixHB9dIBjPaGBoHf1Kgr9U/EyGaJsgaeZrst9VqLxNRasC0w7dHFbvVsjmjqpDLGfXbHRSH79cRe1k9EeGn4KMWxFLk3fmwIoSI3LkJp32TI4U0fSaiOkxijpiHbObnmGoWzhPXwxMDCQXkvLJTqHoebidBmqbuPrPiJ7oRqlqzq9YIdaY26SoVsAGDPXBQEM5EhJFzEiF1BUBtMllp4BuEhNOqO76Omd9OlWOcXkjhIeHDQ8xQDF4QkdS8acxFpOmsocxpJsJhPFr4+7h97UaukfCEv58P5qOk1a+gGHx3aJF6k4xvtq7Yy0WI2FPWh1afn8Sqa4Q16K3FplXrDns8isF3JzsZj1h9Owmn+RlZ34/bWhAsm9q8Crc/Gh/2fHjfiuL7XlH6re9ffkeL9sV6tnhINKjGsctBHQwoPAGeyDUtCsnkiWPyRbkWf78gEpnjNKLJBbrn+F9W9lLkn1KK/O1bXV3WnqsQnTH69AEVTxHNN7Ugi1tniw/60+IDxI5U63RqGuCsx3XzZDSoOANRwQknkWFc9AtSEV9cDnrMVO8WX+/uvnoA39MIac5a3vR2yQ+CG2tAahG0Rhd148qTZ9fCpWArpC82l128Ha8v0OmEECD4fPMksjss9ThZJrWFZbr+Q60npRbQausTGhyXQTuozu7XUjKY+K6IN+P1JdO8acxFFvPefM4ykYWl0G1fbOghs4LOGO3lWAS8cJTiYjN3LyaGm4btQB/vBxzeltcXsfMzcvfl6x2PvGkEHkUcK41i8Lt9/tnxromL617VaArzsbEbiooykfC2vP5YAddfGjeT9Y0E1HZparmKmNB0P9zrkya3UJDh7yo4GEaSHkl9Ka4dKUyTggytb+uIJlKRUpEAXC2KmCATnVCJimBCFNOTtg2IKqSaDKpC5yDw/8zjvQsiV1VQND5qZS9F3p0zkZ/1L/A8EyGUMkq5PJL4GnV4L4+1blMieEJlAJiM59gVvBvnBVESRZHpWVTZ3X1tfbn7RUJeR4LExxPdFUDqEZ6T9vGOnDeNHpGFPPry+VP1l09fHZwquz2xp2lVoEu3OV0EB5qMt00o2yoVquklTQPp3l0oThAwvA/nIl57WmGcRnIRf1S9pycRDrFijhoto9FvKevL0ArbVi+aTPdVvlWdeDvFDKP5YNX2DbwP5yLkUpYlVeXkZLc43ny9lU4ihCTN5b4R6K7bvxqjOqp3kCzr8ML+9rDgG3Jrg7Sv1C8cvAvnIrZckUU9i7Rl3TV+/fyrl4v0Klc9b+Icgqjfn5i5SGKyntWjRzdo8Q98Tx0GcmIZ/CHFe3Auwum6pOvq0xz5XcRZjOMpaTd6Sz4eL7sBrs007G24ZRI7017Y8LYq3brzy1kSK3hbXq8j6uTLzWz9ZcdOF2VRzvcyB1UkRIbGaSoleQaoVLQsA42qhFCKt+b1yi7TCqdS9Wep8x+5RSlF/gVl0/iaCCcIkq7LeOY22piPfrz9TXZKcEKLCvDo4XlBZCpVBf3xJYkATM1//J3v1jUCgnQITkMGkcGHaibAyZAHMtGyUNPwfpy3KF1Zfsz4Kw64T7Md34A9H7SwmV6YXj3pApWLZNldrxLbceumeNFprBI9qsdTvB2vN42XFSarHJrzpi3pfNjKRNbX9cBwkVp7fzwzQw7HrbAcPkjbmbTZz52GsnDSUbpXBngvzkVQ42SmaQStXqRY0+Y+IZlIa80rLgJrv1k34pWMqg90ErRHljua1xpKTDYtJ6g38U6ci0iUUlvPQ7leJYA1sQG+Bz+YNryJFfj1TXcKmHWpZYakOtq3B+tMJCSt9qjZivFenN/q5nDIEXwtE+GziFUJ3bP9Ku7MupK7VTLL9njkLYmpOONVwNr8kgysaLXq4s05F3kd8rgnfx6cDovxtaEP/GsXPymlSNEoRYpGKVI0SpGiUYoUjVKkaJQiRaMUKRqlSNEoRYpGKVI0SpGiUYoUjVKkaJQiRaMUKRqlSNEoRYpGKVI0SpGiUYoUjVKkaJQiRePjiHyYf2te+w1XcRcP/CHLygAAAABJRU5ErkJggg==", + "image": "/api/images/system/edge_widgets.edges_overview.png", "description": "Overview of entities related to the specified ThingsBoard Edge instance.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/entities_hierarchy.json b/application/src/main/data/json/system/widget_types/entities_hierarchy.json index 48e9c3e632..a441e116c1 100644 --- a/application/src/main/data/json/system/widget_types/entities_hierarchy.json +++ b/application/src/main/data/json/system/widget_types/entities_hierarchy.json @@ -2,7 +2,7 @@ "fqn": "cards.entities_hierarchy", "name": "Entities hierarchy", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.entities_hierarchy.png", "description": "Displays the hierarchy of entities based on their relations. The root of the hierarchy is defined using entity alias. By default, displays entities related using \"Contains\" relation. You may change the behavior using advanced settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/entities_table.json b/application/src/main/data/json/system/widget_types/entities_table.json index 1ebf8d4fde..6a9e68ec31 100644 --- a/application/src/main/data/json/system/widget_types/entities_table.json +++ b/application/src/main/data/json/system/widget_types/entities_table.json @@ -2,7 +2,7 @@ "fqn": "cards.entities_table", "name": "Entities table", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.entities_table.png", "description": "Displays a list of entities that match the selected alias and optional filter. Provides the ability for full-text search and pagination, except for columns with post-processing or cell content functions. Highly customizable using widget styles, data source keys, and widget actions.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/entity_count.json b/application/src/main/data/json/system/widget_types/entity_count.json index cf3ad82e5c..457a7f01c9 100644 --- a/application/src/main/data/json/system/widget_types/entity_count.json +++ b/application/src/main/data/json/system/widget_types/entity_count.json @@ -2,7 +2,7 @@ "fqn": "entity_count", "name": "Entity count", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEXg4ODf39/g4ODg4OAAAAD////9/f3g4ODxjRf7+/v6+vr19fX39/ft7e3z8/P5+fnx8fH2uG4hISH09PTk5OTv7+/51KhYWFisrKzLy8svLy+fn5/61Kg8PDyxsbGpqam6urqXl5fzmzSQkJCCgoJ0dHTc3NzV1dXDw8PHx8fylCX4xIhKSkrU1NT74MD1rFb98eKPj49mZmb+9/EJyyRgAAAABXRSTlPvIL+vAC9A4IoAAATwSURBVHja7ZyJctowEEBNkxX1ATbGYG4IIUBzND3+/9+6QkrWVHacpB13ne6TWVu33kgM08DUu+x88rpt56Jz6XW8kYKWoxLUuEjgAzDCY9X6/dAoz+vCh6ArIswQEW6ICDdEhBsiwg0R4YaIcENEuCEi3BARbogIN0SEGyLCDRHhhohwQ0S4ISLcEBFuiAg3RIQbIsINEeGGiHBDRLghItwQEW78HyIKamHzW9vfRFSbqBbBSt8PEB+TiefYWrxsJTXFOgy22pbQ3RbahsURC8GnsWk+Go6Kn+ZTFSKoEURRWMVwGL6PoZPDQJGoLHQ7I3HgK1Uu4seRz+bQ1+JHsTEhEfJojwaioqBCJPKhVeCCy0VCaBcqxC1xRfxgCC1jWCai/Lh9IrEropQf9cGyuP1cwnYBzOhHvlLujpDI9nMpt1BgP19PgVhB07gi7o58rgAKTKewOQJkPeiFkGGCbA8Q7XvQHEmFSPJGkXAOq+Nqf5ziwxVMV8cNzB/mIVTCVQRX/32zWofzhylcYYIs+76ZT6ExXBHkHSLZGq56vQhWa+2EW5H11jpfQ+M7MiiwdUWu1vMIjuvVA+xPIvvV6ohOTR8tUGciyhW5gwJ3RsQligrP5lVNAzuiwBFZfHWPFjNetyOL8dMH4Ri54ypS+x4hkQEsFl+hLSLwkgi+WiOi3iGSJHRvGBKBcxH1dpHDfZreZwBZnqZ5BsgkTyfQECTypzuSzZabySwHuEnNHa7TfJJBQ9DRqtuRu2/fxiceBzAeu2/2TfpFS0CS3miHA2TpNTQHiaiaHfkJlsFAR0ckybB5vjTr3+CZ2qWT3e6f74grsh1YtrePGB9JhJigRKKP1RxF8tksX84OUEPTR8vFFTnMfmDcpT9u0vQLimSQ4TlrDveTHXmHSLa8P/WY5LtdmuljBrDM4RWw+vcIeiwzsCzvAW5m2H9WJ8JvR7Jlej2ZTNDlyzyf6Vt6c9g1+0GCIvDie+S23GMLBK5boxeez/IDIPNlOruGGpo9WuNtmcftAmrIEqihGZHW/Z81WgQ+ikjp37Va9a0C0o9UmUgctuxrhSAs+9sv+G3bEhVGgbMj5myF/QDagvL7w9gv2REUCdBkNOqNekQx45aOXmpiLyooa4rT1VA+MXZMwsivEMHDhSqaYT9J+obEFCS6JDF5zJhoKjCYlqYEQ/Gmay26m9uCZtPRFlKXoa1PzobTXzFHgfZwjxacvmSP0QWTvohTWXi6m5vO2Ra2goKBss/9Timk0amTzTtDUFPieeIYPVwRRCE+EiBxHAcxRvOgA2ZNQKhCl9kXlfux7W6DzVFn268wVmBvNJQJuoCiKbF3H1EIuCKgTaoIMJVX2MutcB9trrJfUJjKhqByUGU1XJEnCk39KjN19qScyqpe6reuZzNQTpmMUpWTqhMVP+Fo129qtIa7I0WX1wn9VW14ey3ghVSI6FrTQp2S9dKpgBW20eZ1oEQPT42dZBeizKVoMpuzg9CMxRWRhitC0AqKOSeeD0UrKKyvMI6xsZLudAaSd5b07PE//xSwTYgIN0SEGyLCDRHhhohwQ0S4ISLcEBFuiAg3RIQbIsINEeGGiHBDRLghItwQEW6ICDdEhBsiwg0R4YaIcENEuCEi3Oh6Xqt+D1+F6nqfRvABSC68jpe0fk/UCDUuOxfdtuN96lz+Agb8xlnnx/XqAAAAAElFTkSuQmCC", + "image": "/api/images/system/entity_count.png", "description": "Displays the number of entities based on the selected alias and optional filter. The number of entities refreshes periodically and not in real-time.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/flooding_level_card.json b/application/src/main/data/json/system/widget_types/flooding_level_card.json index f31aceeece..3ee0de346d 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_card.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_card.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_card", "name": "Flooding level card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/flooding_level_card.png", "description": "Displays the latest flooding level telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json index 0fc557f863..db5ee005e3 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_card_with_background", "name": "Flooding level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/flooding_level_card_with_background.png", "description": "Displays the latest flooding level telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/flooding_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json b/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json index 00804183c4..13c044b4d5 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_chart_card", "name": "Flooding level chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/flooding_level_chart_card.png", "description": "Displays flooding level data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json index 4f6d71ce23..a108aa4e46 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_chart_card_with_background", "name": "Flooding level chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEUgOk7d398nQFLe39/j5OLX2NoZNEgYMUT09fX4+Pjv8PL39/fx8vT29vbt7/Hx8fLr7fDs7vDq7O/z8/Po6u3m6ezo6+7f4+fi5urh5ejJz9Pk5+rd4eXY3eHg5Ojb4OXP1drV2t/l6OvW3OHN09fY3uPQ1tvb3+PK0NTM0tbR19zd4ufO1NnT2d7L0dXS2N3z8/Xq7O3i4+HHztLHzdEiSsHGzM/i5OLU2+DX29/Fys7s7u/Eyc3N1NnW1tjn6e3e3dzv7/DU2t7T2NzY19jL0tje3t3g397U1dfS09Xk5OLQ0dQsRlkqQlUjOkzq6+ve3+Dg4N/U1NTs7e7h4eAmP1IiPFDk5eQOJzba2drY2dsdNUe+w8gYLT3Dw8NJYXUdOU2vuMEZNEfa3uOqrbAwSV3d29u3u8A4UmYLIzG6v8SmsbsyTGASKjvi5OROZXe8vL0ySFo7OztDXG89U2YXMUMULkAgICC3wMi1vcY/WGzg4eIUKDgQJDOrtsAmQ1kiN0mlrbdbb4A5T2IKIC7IyMlWVlbCx827wsuxu8Pn6OlFX3RLYHG+xM2qs716fX9WbH1EWWszNDUbGxyZnaBUZ3k8VWqgq7Wjp6tidoUgP1TMzdHOz881TmIpPk9MTk/Bxcm3t7h3i5xneYkGHSri4OGbpa/j5eissbWFl6ba3NyzuLyUo7Kmq6+MnKxsfo1acoVfcoM9XnTKy8yep7FPaXsoKSpedoqwsbGSnqqWoah0gpEwQ1RHSEkuLy9Ucsywtbmnp6d8j59yhpdUb4NwcnSztLWdoaSVmJuLlqRpgZQ3WG4xUmgpSF7m5uaZq9ugr7uAk6OPk5UeMkIuVMSgpKiFiYuAgoRPa4BHZXuLjI03NzjV3OvJ0uXByNGFkJ1he45AQUK7xuSaqbd8ipdpa21jZWZdX2BXWVxrhtG/wcIEGSd4kNSPo9nFy9Q6XsYeHh6yv989S10RERHS2OdHaMqIndo7Xseist7HzNY7XsaDmdZgfM+ntt4vVMVrLiMEAAAACHRSTlMQILCvv7+/v1/Muq8AADv9SURBVHjatJlPaCtVFMZHVHCS6qSpPtGH4EL8AyJNEIsNxImvTpJmkUwaCAklUCgVKoSQTVsCQhfJq4W2whMqNKhd1EIVRNpF/dPiQ1rsJrhxU8EiqA9ciNiVO7/vnpl2kjFWRb/M3Hvuncmb85tzztzJq6bddY8VLVZHRkaixegINR7FPj4+MoJxlDK/WZiMVqvVkSKmosXxaLFYLRZHqlVMqpN4apHfgYUvjmM4HhUV7EKhEC2M2/ZWAfuWjbFdSG6ZlrWVtCxzpmTOmObMzEypNIZtDFs8PxYvlWiMQfF4uYwtnY6ny/HMxnPPplIpzMRTcU5TOOfuu8BhwWV4Av/Gx4tROwoi+AazEeWRApxJPfsYjo84nATBFzisAoYohMc/sFPlP1TEGTZIXBTI3lKfJGi20FnJZNI2wWGBZ2bGLJUAQtcJEgdIHpYMMIqPxVPpVDqOPZ3JvHgDJHEhSYMSICBL3aXdTccLcJduRzdmG1WMqyPK7UYU8+h3dnLCB4FByMdhypc4SQ4eAgBm0BZ20Kjvw3m4D5BCkgDJLTZJy7RNMzkTHwOIYMRLM4wAKPL5eIkItMbKqTgYMvA+nU5vZG5spNIZcsUZmTJ4Mouz8fK9Gp2KFtCgwz19LMp7zNs+Dq+YW3K/abFROEXhYWDoOHFUBNwWIgNHQIgm0ah8QkSExbYQFZMIKWtGMPjJM5MYDYaByqNPxQFCFIQjs7GRSoEngwbzZR7IbKQaO+WMxsuxHqruzWTyo+N8lbdb0otjbKQDgeIWSto01IjpqchcFu4FABQsVAcYtpBV7E0IKWVaoLHAAZZ4CU7TedYGw0EitGmJBTCoeBxNO5NJ4wOKfBpsKyuoH01cgssgGVEQUsFwilwYuD5Lg5tfpA12OM36cGxhRScGCUrI2WQhyiBsIQiQagQEzYyj0hhSDEopANR1BgAl7Kkx1gUhmFwEIcQGoRARBAYcGWQdSkZT1Uxn6Q1wlIosD3oYJYkUNNFErBGx0EkgaKDj5qqgPtCWuM5IFCwThknNWGjAwFIfo1gJ+Xg+lcqji8fHSkwqkJThLhJpt7a70RaSNlFAkUqzQp549sYN9BpusHBkjSGR6gew+2VIK7vRfSQhHQ9AaLuVSGBHm6DdpQlpYxOOItw9AzbZieXicjablR2KYDYSmWikUs+W+QwjSDTKsk7o/5mCkGfUT/d7dN/f0JBHw8PO5PLo5CQwUmXNSYOs/v+AUFdy/A0IwfCTDG9MLr6HGklpBQg1OaT/lyRdo34Y/4TEdd+D4hxYrhbTqJQVgNgkMfT/T/1ByECKq+UJhYM0LPPbuWqm/PT6omYXGvxIRP57hivzqr/r3cNhFwRSLXbMDsde3L658vsb85qdswu5QuN/iojrdF+QvwqAQyAdPB8YIIBHRJpI3Xj//cXX9rRcrpHL2f9PRMihfPWSwLw6HgIikt5dEhz/GZEBKpu6Mbu4OrWkNXKNRm7EC7L2/Vt6t8xs7wT2K6Y4Ixh0SUB8dX5FSXgiwqq4DAlMyjACxoNPPvrqa6+9/p2Ws0FCEPdR89b53K3DO7syaLcgs3Vb71a9ctzq8XrORzJn0uv7eE2GpH91CKsfpGs04EgFw6Ggth8fnfrhnTfnNSvX4GeIZalDpV/noFvvijOVObxI6ASRqJgSoHpFz9JQzSWI6YmhFwQRgYIC43taube/W94JNwAQe6F4QCmxPbqw+NvnJ19rttUgiUEMbKW5W7fOvz0/X3ZB0BDk6KB+qpv1g3pbXztsHVZut/R6q1XPZusHB3MCoo6urelrR2brAKjdIFSfxXzIR+J7YNFzRwYVEA4Mn1o929tbnXpNit3KGSxMJtad8/Pd5V9vveWCtFprADmu6+ah2TrVT1u89wQJ1o/1g9u363rbATk60k+PKnXk3e2fdIDiPEUCeQF8HEDtIRlCYXhBwBFIJAKJBxKDENx3ORCh63hmrYwuTAFEKUAMktTOb93Z/f7XO92pdfoTCwO3uYIW5s+MSIUHjsAgIK3Dev0n/RDMR7AAsiOpRI7gX4JAZOm7iBBEeT8YCodjJBAx0R5eXRqdv+mCNBoGLkmQO9/Pnattuiu1Kgd09adT/atWViLigHzVuojI2pGeNfXTOgLTwgRBnAcwmitJelxHSHw1grqIhcOhEDkMipPXp+YXlkanniYIk0uBkGS3JFtPjazVD1WNHJrB03pdUutnHMjW6/WLGmkh236eawcxefiVpJZHfpD+Gu4eyfpBklAoxNwigujB+TeWXpnc+10DhQWQAV4KF/7x+7k5tU33vGpk5akFS5nEVmqbx3XPs0oCIJaTV//8RdHPpcCwAiK7CKJiIRF56fmlpV9WF7COQDsqIjo35XSPiChi0ITYncse1A89qwxdJ4jjeM9i+C9BvEUPEgfEkPzaXlhZWln55SZBLGyG7vrnJ+EBz+iy8+vizUo85c/ECxJ0V4MQHQ3l43BAQgShlSDK8s1JgExOauSwLJs1ItL98iPR9L+qOyBsxBn+qCWJg+cl6fuEEqk1vJuDk1wHJSIB9AzJ9ZXn5peWFhc0xiNn2onujIF1xU8mIl2qJ3uQzkMqixMxBeLKQ9LngSUIziLOY14MAaH/NBARpNf1528+/8ILSwuahXDYOcuNiA8l0sXhIfQmoRAkinBZLksIKF0OCAfmetf2fiBcUuR90BASd5qSFV6W9gA5Etuzzzz66CuPrmi5Hcu07IIPxMHYz9e6UCRwhY5YXo7M8nIFl2Uu8wWb1yvXIvBFQEgicg03AF4QIZMkSjCDhEQwXBTh4GqCzN1uzjZHX599XduxCoiJRMRfJ3lb73TyHSPfqeXz+532ZluvVCrGZg0n1WBtGpHNSidYq1Wy+7ud6VoTl2zXKgO7+xXcstrx9d3j5v3tzazD0YMkfv95jRgPDJJEoQiHl4UVAuGVpZHJZGZXRueRWklweEDu98akaasm27TbwWZH37c3s/vBZjZv46TNYC1byrc7+ibN+yqdYiUxjUtPN3Yim4FmORAotwca1eNs7TK1YPhI/L9xHRBWsycMEguHAyB47YoNxrZ3T05enXxvSiOFnRQQf0jyJb1TUCB5+G/s5/PGBUgNn2S+mQ1WgrX7BcSYxqVy7ePtWqCdViDH1s8A6c4nT3j8khgJCEnov5S4kufVdzAWi4UGt1/dOzv7aPF9LUkQ2+5NLYfF2G9uZu3NioAEm+1KECCYuQApVppNggztVjoKJDDdrA1UmtMBAansE4Tyg3DsBxHJ0ifuPxCLRLCgQ2okBkDCE7HQY2+drb999tmJZjMkPSC6RxEwGRdHDTJCWeyXc7JsLLuVCCOwzbuHfWB5GMtIL0n32EvDpJJ8cuqAjoeuPfjQgxEhwSgcBhX7SDgWevzTjz/Y/fjkEw0Q/K9+f7E7heJX75x4I4mNgCg/JAvYDADEr/7x4LcERRJKgTz40EMPXQsRg2/y166FQzQiYYBcP/nyizfO1j/RTIvJZRlXOux7k3VNd8mS1x9xgggYs+3H4V/W5V4kYvjFISRuZg0iJNfCgy6HGoAjwnf6R6YW109Wzxa1JP8kSZC/L/FdfoS7Tx55o5Ob6RCIhroKWyx+3FUOjefnFTkmnPdbQ8LqoIQGVWxCSCyCoAcIzgy/PLq39/XJumZBMy4IL/O3ONTlL5cCSL1j04ELkOHhbg5x2fmOFEMg4azfHGGMGYIgJCgwCpNsVYELDwiYW+Fw5Jp6ADy8/uGnq1MLZ1xHTPxR1ZD3hz4k3jmDPuHy8IrrXGJIFi1yXIJAnB72PGjp6tBlDonPkYmYykYiKCUGMUkH5X3dmXerhRyACVMSkMEXF1dfW5+a/+UPts02pq0yiuP3o0GQtvb2JX0B2qyNIJIb9QPWgAVUCGoNJOoIwzRMp2LmjH4YTlFMUGkE32bmLFHQZAgii2EmVEzUqTPE6ECN+7AN4saiIzpfotMZNf7/z3luC8zjZi/09t7ze875n3Pu7Z2xGd8c4U9SzrcR5fox/J1VkAM6+9quBwdPPnPBLFzqyoxYhSJjZ5SAkEMbOLi0Ej1gE8OyUu6UlUgWia/q3kICv2WtpQYcNogOCNn4DuNCGrWXdyndh/E3bVAh+NKeIAUrgHyYunDHbMmtA20lbRe2jXSVAmTHaibVVjpQ3FW89eJdq4cyzdbIzKpVtLo6QJA1JAyADjOIQUq/5B0Jh5tmWYmEM5kUPxWcGyQOy+NJSNvAQFW4d8KtizSMgBz8bH6mbvSgsVm+5tYgth7zICMDKYBcn5wtQdNLtW0uubCtqX0MrW+seCv+O1Q8lunKjO1qGZmZycziZJJSNglB9GFFvBIpbqvODH8ttwUUJ9WAxucgXMqCASeRxDSlWrhwkERMA7GINazk3sxmR3uMazj9Nt3ZLhy0dSBtYyNIrYERBVLS1lZS0nbdxYe+6CoeQxffCpwugox3zKzuSoxhySWlZIzXuSWiEDbRE9+n1BkEReJEvUXuIUiWkDFS7U4IRhtBNIkOjIo+Nsazq533jLZmjclJPHvQNJncMJvmQa7/sGS2ZLbpw2QeZKBuh3WoGRhFW4sOTR7KdH0xtr1upm5b61atEJnj6fV5MzjlL3Dcha3CCdUihxSHxTSjTNAAERDhIgfUouVCDFW9FAiCuP2tlfkD27ItTC18Yd/Rvj619K1aDiepkltLUtfh/3wFb2r75MXFX3R8UXQz/ru1ZVcpthKZjKuubraoWEA0iaDofiC/5vGlzpNE5nFWW+wL8cN5Ng6nZUYibsthpYDTzgSU6TFPQqUn+DtYaDmX27u/f5uxeXKyY7KjI1kYfNYLnkm+YcyTNJEwlypfMIVmVg9tp7diogN9TQpjWxHTncTeg8bD0PuAaSWBXup0RwIRMODFTGEuTCgQe3+oxkltARH8RVbLTHbbntzrBjAmm+sKIBtr1/kXQxqkMFUjGaA9LFHe28IOxKWjdpz0F2ZyMav7P2jBEfGHA1YRO0zCHQGH24z4xjNuy0UOOyK21NX05Ua0EvGWO2+erHtj2WjqaMJDIATRtu5WwToQbglH4SqHfZAMvNKhYm2MQvEX3jUy0bcR8r0GH4A+zHFvONJeBI6LEtQ6OfzjEVWK5TjMgaTdGd2R8fEAaDOXLw9e1dwx8JbRNFnXjEeMqJHzTU+253MICZcZepXiuKYbCgTvCa5jEAEJhzalGjZLKzLuD7idpVgXat7lQV75/YGIaiqswrpaJflKkIA/7Pf7vd7BO56de7cze5WxuRmPbtW1JrWfhYhsnJHyd2HVbKvFTBDRipgklFR5aFLYhE78hhEEJVh+tkGYK26EtPQitEL2Q5OeYs1BwoCL4bAFEG8w3h2qTd9y7x0Pvj13wGjCo111iIhedvWyURGFATU/SPFFZb7C0lKUsznEuFkAkaYCIwlsbUXmMdREgh+KEh647kDqYLX9kAhVTQmuB+H7we7axsbGD369fWV+fmXewJOC4GhKXrDeBEISiSNS/osjjaEbtQaTV14sqLEUZrl0D7N3l2mZIESxc7BwLCiMGyy9pgeNxOcNegOQM3oJC7BCAAmRCOKJhOO1jbFYbMfrc/N9OxdeM1rVU2pNjMj5Rg58TIY9XWh07+YPhVlXqhdE6lGGV8tBBoUitYqFgxw04RBdyV6ipiKnxwwwn8gRDJtWvrmL4FFXOPMifKYvGKquBMjYNytzi7m5F42RbAue9Gpq/58vVtffbJVRW0CUL7KZfwPxUAD2iC0rTA/zYzA58n3fvruAzxaqKiROgUtiRawk9wEK+58C4SyWcivQeG11YyVAPnngjnvvePlR4+oZcLQ0py6mrYXItz2JJjdpa9NBNsUlDtaIh0vmbHpo70VwWx9SqnR11v2ZSyWr7jHJYWI9ULF8iAfhCMIw6LJrZjLYiUoPNTRWNjbu+P7ez+97+6G7jHuubm2ua2sRECCI2ctMDq00u/3BJDHyIFQqFMoraC2MQge0TYRhmzjv8nDu5RYV7cBBTMbD48KCo2BZQHDAEhJg5YzLnRn3b/fSSFLd0PDmKzfsP7j33gljZ+cVWTxXl2KjWkeRhIm+xKQ/57OLSLojyu0aT6Ft6LqqJ5HzTaYaS9WnBDBYY7FFEhyHPcSnOCy2b2aqNEWCIFbBYNAb9vn83rJQKNQ9Ord3356P71s0+oY7R2ey2dQa3aq7w3wyz8HlyhuVomUilg+ITKu4piCCUKhmKrmkw5ivExJDXonAadt9EjGwvBxnhkXAwakFCWYxIHbZ1SC+CPYJc6t8sHfwwFT6gNHTM3zPk6OdflFBkkYIXKjBQFLgEJBS4VgfEK4cgg8EMRlxASIqE8snHD+jLgF5Sas46nEmbKrIwkyT+ki44bPftFxaIfZogrrsx+iC+ubzBSK1O3vn04O4ZZres6dncLAnqM4FAhiWKpMJBAIZHk4gaHrWFQqaXXVdHmYAA6IgNIhKLEqMd2hp9CUPom5LqYhLhqmrENG6m2HBzgkzTBAXRJKwQdjxw17EyePiAuCT3qHB9DAfqhle2DeV6+kLOclhwYgxHvZ6OSAQRFu+qxZApFE4tUL0qK6/g2VeUQtQKksZTJHI1aN+gxzUitxrcNNFL5xkQ0xAnQ4TNTjAWPHjUqedLuiHFc2Dw7LWO8LD6aHhdPoqo7evb2piKh1XVVNA0P3jccQv4HaBjsVUAk+SjYYrPHBggTjE50FoStJUAqWgW7MuyQqEEVEmcUHyV5XF42U8L+PrVHPhuFpLB0XCxFZpHBj3+yKq9fIIZcND6YmenjPGVUNP9e7p6w3SVRcwHO2pgDceCsW9LORM8Pz9lw0ofI/hqEeEXQ46KSBSddWbPKSAOLVIdP9hksB4QqVDZIy3bFMoGgptwhIyKiaU7g0HTCK5Cv2VIQn4mIAwhiXUM7zy+uJUv/HUzsGhe55cAojcKuJKBEO1obg/4lGZKUFx0Qok0sbwCSQ4K2ZB6ScOnz18oh6OuuRoFDXidWyNyRhgITX0qmKZfeCI1tKi0dCmsir0iTIgYTHxNg+FNZAqYUn312aWT3yUSx/4IGu8u+9kf+fSzvgaEEYkzuwUp8VnnQda+KQjBYwSEKHDDv97Je3rs4yuiEBC+fuVBTvBTxOEBhQP5RGMRytgDdU1jdUNtaFuhCfaDa174JSqvsV5EBMmGGCqSB/Y15ttCBkrE1DIuTMBLruAyKAjHHltM0/4pzBQu1BkIlS5JL/KqbN5Z09bXGunEAPk6/UgjFR+UVFHMXKEANFQUV1TWV4eq6xpaKiubggJiLR1XetdXAByYCxgnSvv730q2xF60piYml7YuRSrp6sqe+hggHqjg3Yb1xlWMAfLB/qvR+MWs+7+yWD8cPaHP/D6o9ut+xjd9gmCBpGMszF4KeitikcbamqqKyqqK8svvRQojfhBQBhwu0Tqy2C7gMDXxvRSS+e2wX5j+uTJnvTQuQh2UkLQ8mRJXP/FnW5sGkOVQZ9wQDGSWu/Dy+MIw7E/AFTlLkwWzuM6EESgcV0JAQyEIxz2BjHMVlZWV0Rrq2OXgqQS0UFq+epdLL3raqTkI3sLEzR87WWt/Xuncsb0cF9Pf59qiBQJ/6pFgCkn0OYT2CCJHRaKgw74IoqDHUZJ8RhTSlXaH+k3cwtUao8T+MUxWQKYpTGQmwFyEGRTRU0sVtkQDdXWxMBRUxHqjrOFK2dkPhnYhY+PdRFEDk0bHzrzwYvPvbhs5AaXFqan9kXpuijaJRzSyhFLDCvtDC6NICr5aKroctrQj7n8SfddPEYYWz9In5BvCPgWDyqLoI0cGP5oYYA0xspjDElFI0JTGwKGF60dchWSgSd+bnE6nzg1ZppvfUofJWeCj79z/02v3PSVMT10pm9i6kAlcs4Ou5AQpBQgbo4NlpMIdq3i+QWDnZ3Oqq0f4O1vCsSB3PrbRZNC5zyLXJNVcsuIFClg4MeAn9dJsXJFEq2ojapwIFL452CTIfnOsHnX0Rbnp9+NtZq1Xx5p3Ypiohp1cO7GLVu23P2IcfLcub7XcntippKPxEVAVEAJgjtI1Jw4Ak+ojkA9xiGWkTU3BE4DxCWGavsHc8iGAeP7VSfOnv3xuOlDIoX9QKE6YMDApj8YAsilIIluQnuncUpS/wYJM+XojuaLnAB55ug3R0ORT04d8UiCWZY//fT9vz721f3GyaWh6cWefRWmyQnaDoldaGVwVp2WwxxMqRMyF478V/kU2PsaBAd6HyAiSxiO+zciwgoMnuMcqOC+cPikS5uBqk0NlQhJeWO0zItU84KkyuvLznw3k8Wd093f7CCI49SnnlO7TXP3W1+2wiHqLDg0PT/30rsrxkJvLndyIhflSTWKyyZxMDwmQHg+WETLExsYdu3LROGA/wrEQ+PmX7YWeEL8LAagE+EwQahygJDDg27tjVfUgCRWE63yRdggy8qC4cDo6vddo6jzmIEJ4tl96uajEMmRI+YRE4ZjxHrm0/tHd79rLCzkPjo4N1Xj1l2aRiJCKK9UJqnSwrPSzHqPDO02CZUDExA3TUAATTXAvmYsfjx8+ie8/nTMJwYQdCJwEIQiAQlAgj5TQDCgnNp99Jvv0GdYHx3PhIDw6pdYoFDnl60MIyJ3eW6pf3nl6V+NkwtTK3Pz05Uq6WyTduOQNaU7PpmwA2Z9vcwkMpETRcJhg7DtwgjCBeOSk+T44dO/MKbHSfJPQEDkTXVegHTjrgjqVU1tPIzTYRIuw5S069sXnm+VQo/5VC1MPswE8Xovyc0tv33/Y1uMxanFgyu5qahLJTMhaCoiLjJEiKJAoBT8Xpm6zy8gqkutB6kXEJ4IhjWXrqP0/Qv2+TugSAgm2qNP3k1ILRj7uZd3QwnicWw/1YKcQCqzjQcEXTgwoAAkHJtfmXvvqy23GROLHx1cXpnv1qoECPxQq055wDQJs4APHNiJp0DU8GKPxlT0lXolKHaWtzDocTSSiAeRv5BbARuDJr/2iUZi0gnjm3BboazK5+ajGjwgzswRWYEICUB42RsO9ez/5JWHtzxs7N/72mJuea5CIkI3AWLK0KkG5kg9FoznozB4XVtfrzQiYheBiLZOE0TUjvL7O2dTnpiZo1dRysDXFB2OHFBG14hcFqqu4YCF8gsQNpIqf71c0Uk19VCsUnFgCgTKje558bFHHgHIf1Sb3YtMcRjH5y9wZZixZ87YlzE4lhvJS9razYW85EbJciGkTcoFhWYVRhKKK0mkY5PJdNpEXotmpMzNtHFBGWRvbKxttSJSvt/n+/t5edQ4zYz9/T7neb7P8/yes67GleqRhV0h1jCt26rQMy8NQNLRmYNyAKhAXM9ChcidVhB1/QLadm1M2mHQz9gOQdpUPqAS5RCswvNhrhOnEXpiZmDJN0SxUkEDjbpUUZM/TRBE/PzKl9LgYKk/VU+Sw4fPHMhhIWyQpvs/nVe2ulKyWjdlMlOQf0ast4j7nUK20Jpii6JMbY+e6KtourX8QPyKQJWFM6MgQvRBVtxUxJzLnCJjEFiTo7Y/LRBSU3lwCZPbm3Ol8kCpVEpVKpXRZDRZaSFLEmqkA1DqsbG4tqxWQzXGzLU77pjYAz9FzLGWtZq4YpaiNCmVcfb1HLVY9ziGdDY5Od4ab86M8vkIN36GraueJaP9s7WU9nxnpI7iyl1kMYLwQNYWFm9sLQ0ODZbLqWotjq/WaqtACxRuHxrAZvCqaGAbhfj5r1TSCTobqg3kHYUxbTVxxSQ7QWUWPj36xPPGFPzwowXlTX1jYwm2icnxiV+fvlvZ88mQwWwydsMf9eN/QRSRx1d3PN31eNcO5bridQRWGX9SlXqj0QCI63rkCXqFKCp8koYErXM4w4/YIDEOYsAB760H+Tn2gkAs21TNT+ZuuARpV5+M8V9MZFpj2WYTIFEW/ad3Lw8qPBv4hyYMaX+QYw68sQQg6V2Zux17N6RBFmy/vhXuoEfi+E69HldWZtWIwCd0M0lwpQbX5Oyrvm3dSp3PSKqYZtyv7Gc2BMkYtYJzbBQRSfY1Yv88kRVIwPEP754/BP35fxX/PW7gmrgfzOYA2dt2Pb13g0byN56XBssDAKnU4npcT+Zk1YmauH3gsHsGBsIXppRG60GwhDCSWI3RoYIvk1/VT41LzJO4bGVDiDhouk9+RmRvmwhbY2GzGUXRzKxpmJnGqc+fK+1V+Z3sWY3v1mxOX+w4nr4YhAEeIS7b9RAiGRgCCKyeeBB42SvZOZUiM/GIwR9OZ8K4BVyDSGnU/mr9ajbfg01wrcnXTE15arr1HZ8w2VI16IGnwqkp7g3GdthE7k08dl5TQPDRDqBDpS3uIixiXNHbe+LD5a39+zeVU0mSVEeryWcHoiRlqZt/MYq4U5dYyKQzNn8qlucl76nh2N6V6WFWJvQFeiTCK6Xtvg0CB+GScIRFjERulxwdCDmgEANxHODCs1DYlnv71l8+evp5amSkevBgdXRVmOVN6XEDfO9Ti8xAsz+kMestMsSgYR/cAysBN82PwKkhIJ/ZeI6ABPZStJmonTfEQXKEOj/gNE7Rq2YPRhBKFG+p1aWeaNJ5bx+GLSfOX7qMk1U51Yi3jcb3qotCJxBKjTdC3WBPGzi4ehT6poIgkUovLTBMmTDwM3gLVfXsu3lZ0YxOCWXiCFHTOV4MOGmwMZEEumKF2gdKxHRl7u5hIqJ/glzvfBzETh7auXZd/8DH1LuR0aQex7PJIbX53/GUQzDfsGV4x9p8CebWQCK/YF8mdKKwGvPsD20y2hRXRHAYBhTIFzJwFHPL2tuX5ophB3sYbPrf8axLWpIq0iSFyk3geVXvnK6urvPrNq7v32MgSS3ZnaxkLpXO6BKnMZTOoNDZ3t3NXi6PkTIdj7SHbdmOvFtMr6HSntrNNHUgLVngOIxAOvkXBDvCAphicUrL8ShN+xAGeDTz55GO+R4gnFbk+hbMmzvr1p5Ne0rloaFUfWQkHqnt7sS9VKnwoyhLeRlMALtxSsAQ0C+EJhTRBpNXvDnxSyI68xiIJ3HyYD9FeqmcDuEKi7rpkUgDUj8AIQhzjsLLEiYxpvu2f1lf19zFS+6Xy0MfYSiI1Urt2J1FUBF5/7YE8B8d2GlTGpDgwJNxIIhqkQBFZldGYkKB0EOB0CKv8yjE2wThZ07tcPnS7kXtHMEHcLl2YAGmEbhAbNKcdq1gB0Eigsxasvz+R3IM9adqjVoyEtcWZHy/6cZozFDm9j4oCgceuCSftdDqwPuK+6I3H2bKpzQh8JVGnQgEVd4iS3wRvkGQXgSuZT/VRd4u9coCmQYOnYhg7ANZVYqdBFly/yM51t9ONe7cedIY3b2Uy1pBVEuYtmqRxyIcKpOkeyme/eBnIEBN7jAegGgFRT/jTPt3MWUoXvHKfVSN6g/fAkmUhwiX4omIyl0a5k4QrM3GoXLmWzs7NyGb5nN9XQtnzbpf3lTaM7D/WGq4MTx889WTA7yp1lHzuz1WfoKggPCdw7nZbIJsj7LMfiyLuLHkwFMMpTRiCUbyJ4eR6dJKCWnNFyqdSn0RQTrBIV+yblNmVDZICCKByCH6NWw1LAGy1oKuBUcuHzt3em15U6rxbvjJoZeNM4UCgzQDahuJhmwrCrn2RRw2MbioEY0f7AvcBznoD8chHXBv4tA+YbySkEgpEJYPfY5VCugcNXCy9tMd5qkXgdip1HpYmoG0EQS/wdF+4OyDt0fXAWT43ctXp97FbyRGFFfQW18JslwnH7xgJIAK2l4gB0KPWVkg5CgwYmDmn+1k8iDeRQDm23zTsIyE+zaNWMyRw83riCgSgSBrKdZpWJtGneqXanpz2xc/O3/twrGtg7+ZNJfWJqIwDOdfqMExCZOYpNpxYQiZ0iBEAi7UnSKoeGklJSoiXlBR62VRpUpkCloLGqkuFO8Bk4Uooq2KiVADGmNBLNoYXIg/wff9vjPoC2bizHTOeea7zpkEaoiRSm3yK4MN12NGYDCrz9iZHEigFeRgPRSLrILFiMpTxF1AJeEiXkaP0vAGSYgHmJIW+GXekBBkmVqOHDQFOShd1tMEpjIdGE0hrs21ChsNSs4KJXef//5jaPOtwCO4Vvvb5G8MTpP/elEgR9wS2S5MAqEeYt0PHBCjXRwjhqMoY5gFHJHT5ZtMWuhfX8UtcW2C4K80cAhCKgXhwGIDoBgKSGsfAIx0/UNihcSwRw8CZLU9kJjZPXN134atgal2ZfRz7clFU20LN1y23TEoDpewM0LS68akQ6E4Hjm04nM5DddVqohr2wwZoTAgcQWh2/4PQniaTjl4acosdhkYhoUvVA/NmFqiQnZP1EkkwysiFz88uPPo8vvtgXq70ajcewcQySip1bctjh5e6nJDEJDkMhZnQvtrB0WbkZHraXFMF484mQxJgBIjQ2wgNgAgBbEsgvi+BV+UkKBTQXRov/Nn+8zPf+soEP3ArKDIMTpyLNiXXrkyEV2+dMelm4+uDW/cGABHfWryZV7zy+J0qBCOYyrjL/qRUAiCKKFryVS0FC7GiWIQXVFz6YOQG6F4pgQGw8X/hq+cPkEYGchO7Bo0I8tDhj7oGC2CsEm1XueUR++f4ItZQ3H79vj4ypVBB+l36NjQ8M7tsEhjaHRb7dtv9etY8EUxxnHvc7ZxCyCcL5vGASYesskMcSgCRkLmxBCE0e4SZc7EPklilD4HQNq5wLbyKyXeMZLoyxLTE2ArQZSenav+qZZb479gBPNnlGRUd0XfeDCYSEbDJ69d23ho74YNgUq93h59dyev7kzJyEtDEBzfVZPoUib3YPKwAXMzj6kyrvgTqg7f/iGbLtOUpnEWYx5Wx/RJxEuQIYhoHhplvzY3Ejjp2dbiZcXxVnkWNNMf/aStIJbb6/Q7ThQvf49uO3B976adsEil8fnbhzt5eouE5X+yxFvgQMi/mD68J4ep4nsGJMhSNkR0pleYIcbfryJRh4wxM9iv1uBc6T4LpV/BfxgKSBE0CVG0ESCP/9RWnG3xRLqT++JLd7ba+ahlhqWa9Y1JC+/pBkZuXtiPTv5QoF1pIPu+/E2vsXRoTo1yxa2IwYoI/1q9Wotjb0RAYAgLIe0/9aEf5RtmUGIPxwI7IwXHZEKm7ZFlUVn6Vd8iCcNTQVheoEK1BWaNC2mIbs9Xq/Pj+CPgi8PLUFZowdKXj9dtPTT8MND+XKnVHrz6ugSkTDAQGVxSoD2htNnilmIjTN+y6VM2QEDB3A0QXJ0NP3bbaM1pRbGVaUuWwALqbFrKuW4t4gUMHljZ0JBDq7wBYXIbn6/Ozr8Gh/gJo5PFrfdD7fLhtWcAMlWpTz14lafR6BA2PV/PBACFzyw+w9hyIxZ509mCEyRlDYT8+mZFAC6ul8NBeWs+2O12pltf3vZLUyXeBrHQA+S/UoKZSoLWJ51CtbTMB/HPk+wGFq8zKDkFHy67v/DLh3t2jn47GKhUKu13M5N5TYiaVHupHvSWyWQyKiKJwZJO2PO8prjZihxqJUEwBZsRJI1AL76Fwz1byn+mS51OuVydiyL66WwgYWDFlzHlMsLpPv5izBJtKe5WS6TSPKzhDTzthUJvu2Ne5z5AcA/j2JV/OoQfMK/bQJDPU99nspJHQjE0Vz0Uel6UzkTCySfzShI2Wp7NLm95fU1vrqhtcQZVX+bgRgiBVTPURjzG9M2PlfulCwlFva5NxyaHBRe3uWTC5tTvEwHyseyrWmLRon1U5BCnhNehUXWaYNnC+IvDnhe3bdy0ff36rYHG+3qlPnNuKS+H9Qz6tsQCzJEIMlUbmwBEoyQbzRe8L9Fo4edYKZuNZsM9LsbVEpnDLYf72Aj1VKlaHiShvPYY8aZdHrEkGdIkC1hKzO8eCNLvdVolVdO2CELpA4F57lG3ZLoMNl3X1LMjl/eeOL5pz7rA8PBQ/fO9k7ZxYkY4bno0mnQSQdTOhJOkxCQ+SPKnJzu/eF4BR8KrI7aZn1JYGLbpeW/gQGYhhWnoE48wx2mWh2+xCmqbiOXQuS5zNoZndrfjBJGOkhzMoyZ2CSPfACKpc8fwwf2n9g9dDkxs316p1959tWh7/GSKUcrYIEcqhS5AlKRJKIIUxgpJ0cj82PwI0vkKcRrIMhV1EO4RtOMwFCmo0Ns/Be1EFVmeCrRpF4u0ZvvFphJlORzWxlhB/E4cseeaqiBlzUZuPX147/prlyeGAhMTw5XRemMHHgVZL/CP99y5UaQKRV9boBsQt8+7W3zdf/68hf0jIyP9fWlwk33l4LPqdDGdCsKcDDNsqY53l4dxFoWGL7xmTRj/oOXRt2ODDs5M9Y2I0qmEuX9QMpgSpfv6OQo3HC8ZoWV6rxw+fHbt9m33AsMT7xvtdn0mq8Idz+c5PB2LA+oscF0TLPSogmwduF0+Xxr7WeyhWO6p5PSf7g3L7xlpAeynymUmdw0UeRqltP/qmy2xUDJExSQZy1QnzVkDFiWdeMQvb6xS1JHJO8f2TJ28F9i1drSBfmsmDzn8MBziWWkFMTfVEY+767Xki8MdcLjinNfk6AqSZIxro0gM0yeIHG/adrWKcpqYJCWt/VyXNdGA4Fo4Rfsz9rtaqSGCsNUAiBYBNHnuxalto+9qr/bAtSr1RqOxO+84AoAP5QBIGiC0MaAg5DDunvaC5gSAZMMgaHrlIus5jPC26gGDkqcqYChHBrLvVpuYS86AgIQYnH8JAaKddURApENVED3FL9TE6MEZ5teC7JHO7ZuYmPxQG/1Ltvm1Ng1GYTyfIyhWjLWZaXoxKa64m47eqXcrBQvWWOla9cI/LSJoUMQpipN16CjIdiFjUooi6oXg6IWygRuI0CJeCII4wRs/gs/zvIlVPLq0Zm+S88v5857zJjJGtjafb32QvpRYTfuAQGgHOK+EON32hkZpoOvhvqTTje/tuTRAGOOikGNpgQQhSRKTZ4avyiie4Vv7KMzN6vzXf62yHmPyjztrPm7XwqQWkFXPyh6ZeJITCDgAElYe3O08ssKtrTCsdB4y1iL5YxCAcCLx+Z1CmO1t8EA00HcAwmSCbFvuAcONen2QAISFAvMxtYBJJg6+mx/X5A5U0MAKGHGwPD/HsdCWKwQSjqFJKDGufgkGeJ58iyC4zK3rF4/MTD99acEgnaASPiSGUTAyyPqbSG5uiMPIsN03eUdD1RGoISl/b7d/lPeMhGugqO/yqoB3Msjx1/76PeaYQKdm+sylJTTLUpUYEtDqBDsUS1ELwtQsjjR5AJLhexJfvl2oBK23n6wgCDe3Njc/2HGW8mECGqQ/lHz+vL22tt3P5nLZHEDW3sWmUUZzCQJdId2e5hIoTH+e2Ck1NXEpUoyHlV8N8W+BwGaaOObml/dFqwOMczlP3MfB/9i7iETxQwGnifYMPTD94U5Q7BTvWEEn7CBtPQQGNRxHGzzpyrOgO3fgF8M37TfDHOXdGnbGAhKCQOmT0gSWAYd8iCAsFMRBibaIh6pSmXIwORbbPXxXulJWNZJhSchCmPMmF5s168ck4DDRjlGFJ2GlGLRmrCAMAgTJCjmgZKNXG0s4Kbv/h0T7+z/W1n70c/1XQ3KYfVjHgEV4SXgBLsQ4gMdESxBQk3sYLaNsjI+5+dloYYUBnG7Mz+EoAMXtjmAyUUY4iWcmrGZRlwtk1CA5diOhueTS8ZlTnaAYWMWwWOkUgxdUDfPmujMYSzqp1AIylZTlfgnN8uY89yA4OM0SxEkyw8Qg8i0mF+1U2W4KF3EY2bH0tRpLr9dbWoJrqlCNOh6RKEZMCxY1LvJCDPMkKFwP9czga1tnwjOdStFCrJ+ZPtpcgWaQ7IJbzXpuKrWx3k9RW/yBcAOzbK/1c3QoxJBA6FkmCvbJtTAnou5VtKpJ5B0jHkHk8dwm5tsjQT1ODBCwKlWLwChWSSiHjLoQts7CBQPFXV/osZb1vJV6KZh5NnMYJcr0kcpZWEQguQW7dwB6IlISrp09NBKxyNeYDgAJJN/DNRUUe0jAKYIgJlqjF+IEtfdvUTRpeQaM6r49lBNQihUpSJRXlR5Iw4ymqli5FxyuygofP9y6K6V6vTUddKyg2WqWWsWHOQMy6H+0IZjp4GD/gagwxDSIQg5EcKxMfrcmXKmk/I8cKjdXiow6X9NOGS9DOsgbAm7AlElOsqooTCZUsPITq5eMIwqsjVXMKcTPn3o2NRLgrNTxKkqrWbHq9Xqp1WquGBBE+yGEAHRNyCL/kCg+wOHAB3ybKWuK2tDHaQHjSXzEBQEEtxSSQPLqtHVr9cUcCg6n4LMT9cbSeRgHFsmge2buhkxAYGMPXqR2yBmVS9BSFgmKZ1vHHly28GJNHdZ5LQ5mIlul7qQH98G+2b9BVEPylOznfdfTHEJTQJQ+QZKmMmrx45aSJKCQx2Xkb9qxG00xw8PcY99NoOLIj5m3ylXe0HjiTScdaMQzQinNElTEVtEKEET7o81PVukx5MYNgUBT6OmhiYKeykz/CCh5LAtFxSezCwtQKC8NoTM/2Qg4jsJW4QsS7Y4XlURCUfCCA1UeXAv679xNEC0CMN+qRFOB5bkstCOt5BkiYb9yGp3h1ub999bjn48prw2H7+GqWIajPXiIAEYGsXkoLaLJiwoybHkxoZlfeOIAAaTA7x7H8mtBT1Uh2sjj1eUUwOEk88hzSQ8gMIjKKxXulCmYDYJNKgZRXeHjMidmHmBOL4YWIASiG+57U8xCdNyUqt/YKAp0xjmUMysq/CEKAlcgvLvQGB8cQXEKDpIRmq9JZn46kFtg1c9mmiKfQrWGAzFwEn7J/OUk0liuikBM+OURdpHhRtM04kQH3z5+OQzPXD4CEIT7DYBAUXIo8eHhOg+M3UuHmjrMie8ifjwI8xbNIQDccH4wRMCBgcZraBb1CGhv2d4LxOMuFmvwADijrJUArpPYvXf/XwWvyeR0EZuiEIlKVnURt4+f6jSnw2MWQ71UKhHEdpD4kOdFkkzEPimMKE0UqF3cM7Knxqm4IEzFQEYFFR6CiHNk1JrRoAiEPQKhzjYEmS/NxKVbRHAnObHPVO5IuzCFAjFNkBGHkpYBmbr64DDUbzUtYJw9C5AcQTJ7uvvU1ukp6LgDD+Oh8ke/VlXiXrZNodxYHbdXfdmF9pETe5ywCmYNRiJiGxu2zaxoULPkEUZ/QHyPUYXhYqbRxpiz9CzV/Hcr2Jw+p1OO1hF0fkb01U6z/hgvNTL9luBbAnHHDi6g5txddvZman5ysTHmQe+GvVybdd3a6qJd66aWP5YPdLvQqzssH1iAsx3ozvrZbjnr12qEwb01BpAbRzKubpNa5+EnSGWeWf/DALgokOQq2AKE633mYTeSmKccOUWnc2VYgURrI2qH7p0Kzt64gheYYReAwCJZxHoiDZBdq7nBrsFyzwVIYnYxteBu1NbtXnew2FhcXWxslKuDXjWb7Q42AGKnsMcedAe11UG1KjeKrycSqggogmAG9ZS4HUc2Ex9GcDT9XsfYKEPjJbIJTCCuYscbZa1xYxGdmPP2vePnjhw+fGRaIIyR33SbMWvbQBTH9TlEoS5tHRPSLA4mDcpS0y14iwjIoUZxUZtYlA6noUtcOuQLCCI6hExGYLyUTJmyyVCyJPj79P/e/y5nAv1DEiuSTvrde3fv3ZMlvgeTlMgOsrvyxXV9+rrubLaixZtmq2nPs2Y7q4ZNVe6UvbJcLnZ25vViUeI+6uohfOjUWdntgotWX7MHURRLEx91EoiwVA8iCXu5r3VwxHmNH5D1W2w6EGlVo/NZfDgYDA5HQZ5/hUkURNLyJV7Wajaal9nb1XYdbrb3qv1lu4SXNRdZVd8Ny+6yWw2jYRhmdbgsO53ecm8JkCqrTrHT33xI6xDLgiCh2qdLiQhA2SGsy2dNH2Ui55xrc0SZ9DVDYRfp5CFEN0f5sXnMiyA/zotpamZsa3sxrttZnW2E4+xdVKGxelG3ynG9Fa3GWW81nnfG895qgTFzMXwTzXGRu9W4c900WVRV0RMIMBBGILoQJbMeborb1hT840B4ps5+nKFVOIdwLTWJHU+2bjDLjx8TkwyCIk+KOD26pZFhWfgo/FOTWG0NLTSYjSDMUKzLt0W2LKMzLdwrWq9cSL9KMLEgFsVXmmgRlf+gFIqxuYmHfMxfKF6UICTBWdSsKB7hWyYY/T6fTOJkZuu2SoKgJRmH3rsQIN9gHBf18TxKJS84I4YAxc+2qpC1u31g+10KQnHbah1T41Kfy0oED4fiOdic90wY9LYoinT65Udg8rQwuZkBkq191BiHkxAPJCbjB/4JCGbfWnHTwggu9oEXY/tPwU/kBin2eJJntF4MsMDQNdUGv9KmkVM6w3OI9V2EJ0jvNi+K0a9P34LCAATrEdek1kF5cy7BQLbESisRNPYTo896hhxrKXAlSuOibj27bx7H/xKeQse3+69Yl+ND//cgEfeEd3sQQbFWca5l4oPz+8CMRmmapDcs+vpivr8HjFBYhOs8W8vd1aWEpeBQUNk0zOuJiyz4zaPE2Hbf2jAAx4nWF5UDa2cmSsxPxYcppj8hNTNJnqZxHBwCxCTmUuKNPUwefdrDnZu0CGItgVSX/SOSUSSfLAWrHB7HA3lWJ4fg3EfemebDCMw2trhCCFsDEibL41r8ObiaJokxwcH550kcjy5bEA8X6eFIN9T8cBPJcndtaV8911FywUMocrAVaeB/QkdR3OAmztMBcqLflBS31aKjr9k5KDs1Q3q5s8n3K7BMg/s/f/8RbfU4jsJQOFeZE2y9xd6ATAfNFB5WioREJDQyBVAwE1NsEASZwkQU2WJ8APBoUDTKVptUWW2fdDnDnGA/86P9pIDlPL/3fbJJ/J7MW0XJb4z7MuQVk6lmN7GFkDukz70MqJgeYS0SFP7T7jOnnoLW8q3H8AXMBjs0xyETho6hUDrUwCFDA27gDKw0Md3R69HAbcThyUh+4o32WUaz7NLt2+IO+Nqv/bHop1fINCU6kdAZdJ9kDxM1/XtN8zgJQQ0B0G60h4nomD2Oa37CqAGAfOxKUGkYCkugDB0AnI0/9neD20EcdA0bGbc05r8+y88nnDI9ZV13atXHZr0OAzsM08ItijiNcXPd1Xb1/r5dufZ6HazTME2LYrtFDz64rGBip6kdx7G7XQGum8ZxkIbrwI6LotA96IM/OAwD+E9tIIxxi+3YdTEOkew0DHVwXIJAW8WFnaIFcxDaBCFiAz82m00YYiQihggCgw8laJLQMi9nr+fTlXTn82tzPLa3/Y2cPJKJLvOjaLeYG3MLD5BpOF0ta3XJSNftnk3r4eFeA/tOv/SkYL6jbR+/W8bSeXNoRbpLV1XGM8YbS2PpJzTbnxu8AlXfBBOcS+YxTml2/XP1PK9jqm4OB8lk3aimkTXj6JUs9/Y1ZzVXtWS13Ivm0CihPCE8j4MI2cvjsWE5p1wINmuj3d+lQy6nG85kt/0JRzjhbRs5u7kJztbjo7VcEI+xPIsi6lSG+WJZLw+mOTeShe8T1okESp7M+/miojTaVcsqqkilj1b4ieM4NPJyobnKQy2VUjWDGiUEycgFhC6CcSUBKGDy2DQHxXOOds4IIR4ticgFJ4iNAXme+2XuU8cTUkmYKqhGo5kZ/1qwYlW3YSga3tD+3L3aZALC2BgEDigYIecNxuaJ6G32EA8J5IH9C00LoYvHt2by0m79hn5Bj0JvsIjsSPecc49i2VHIN/P44e5VNZbGPPrP++12vwMy55A9z3OpWYexDpjMWLuwFzNJTRzqMYShcQ3QDsFOdTO6sbz0GYAPfda7qhoqBzC379fr9VvU9nSuMkBzbnDQANfOx6o6/vz8czweUQkojx9WWRmiZJemvIxExhAFShJi5LRkrTXahBr8UZzhdATp6w33kUNRQHT5Vj4eCb5+aAjlendxUJmZSEgGeKuDradgUSQJIsx2XhaLSvRTINK2pNA05/MwuObXDXGKAUZD1oPT6Y7eONZDVl8WskSQxpRTKOus6h0oj/UIodEO1dBooEaaXDI8IWAKobD/2KdpqhDCz7NkrWsMMZOGvmM1us1XFnEVJEUuP3SuVJJw+dtB4qaBIkQECy2MgWSI0RMC90/v/YxiLdZSPKWEwnA9NfUZWODv7BNkqns2unqaaJom08MSYbH4LLOPEwhJZAPq3KDMExlO9KSZ61GTKrAR3Efc+3VV6fY13SOe70jiyRbHCmfPixDe5wXzpOllsyFtAIYlZoLNovXL8jIZil43GgWYF2i/CJUUgiHN/5m8gDYLMwRbY1pVKNTbEnOAAA4Lvq6DQZeVSJhsZCCW2c7eK7+qQiIogIm7NBrlnQVS+ZjhFZh33a7rdtsubfHU975DtNuu67Zo0e/a/RMDmOJpKhpKbhAvHOVmzTL5gMfE889G62gYmSQCmb0Q87rGociC+do2zqNS9VxC/oBN5+EAXtADGgE4TMycKBhWiHjFF154EQkIZs9CALWRCWsb/dEEy4Ll35kJGr/uWyDGEdt2F3m8I+U23baA0Hbod20KJgABQngHdFBfNpt/5LnLdSEonr4AAAAASUVORK5CYII=", + "image": "/api/images/system/flooding_level_chart_card_with_background.png", "description": "Displays a flooding level data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 1 - 0.5;\\nif (value < -1.5) {\\n\\tvalue = -1.5;\\n} else if (value > 1.5) {\\n\\tvalue = 1.5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 1 - 0.5;\\nif (value < -1.5) {\\n\\tvalue = -1.5;\\n} else if (value > 1.5) {\\n\\tvalue = 1.5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/flooding_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json index 4bb5fbe32f..69a42479c8 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_progress_bar", "name": "Flooding level progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEXg4ODf39/g4ODg4OAAAAD////g4OD19fUjTMchISGsrKw9PT3j4+PIyMh0dHSQkJDx8fEvLy+CgoLI0vGenp7k6PhaeNVYWFjy9Pu6urqtvOqRpeM+Ys7V1dUwV8vv7+9KSkqsu+qDmt/X3vS6x+5LbdF1j9yGhoZmZmb39/efseePj4+5ubmpqamXl5dohNkxV8rCwsLj6fjk6fgljp4SAAAABXRSTlPvIL+vAC9A4IoAAARWSURBVHja7M9JEQAwCAPAUI43DvDvsjYCk3WwCHuo7dwChsn1GgbvPGAeKk/AlUgpQkYRNoqwUYSNImwUYaMIG0U+u2WvKjkMQ+HqFEeWfzGYFIaUKfL+z7eRcwMhy+xslaS4H8ygWFKsD2zI2/gVeRu/Im/jHyKrDBSO+IjlfFB8IFLwmUB/h4jjQL6KLFxfLuJ1I30V0Y6Xi+gRYENCmWD4EkT3oKjl1qjosdvjWA5Faz2LWAe2EuuXuHdOD4mkmTkz2GwWOAWEdCT3eYRbAXO3/FaQ3UlkdMxI2w9qf8EW4o0iVUT8LlJs44UCpUuIbLbs0fMhYstWpCZZeRLRPVXRqBBWCBeg0d972dsuMjMBngsKZeSSPVhwiERgYkBlBXAWGR3KZaQWKho7zOjmy27BMRndz+aNOrFcRTyDjX4RCRw0pNyQm/UM4iN3JGdgnPLA9RAJ/ytSZGOyrpVynFnpj4g021PG0YmAZgdlA5CvIlaDdBapLAAU1p+pVj8B6HhExNPVamMkxyIzo7kFWXgRsXyQdhYZKzELkPKQ78xVAvsjIhBHOttXZzLXn6DNVxGoI8NZBNpIlgSrFGx4N15xl8gVVewkTUeAv0nQpJwxuHYA5853f/220n1jxBfeLxK5EfCN94v8YYcOUgCCwgAIr/56iZWUkA3W7n87CsUGy3k13w1moqyKMj5lEPKLIYbkwhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGE5iNkqusmHppLGyivIfOYdusjZUmnPlDeQrp0GO7zxwxDNvbroMVBGAjD8Gnwuw+GIYZAownUS5f2//+3TVdddNl1m5MjzXOp0Etfpk7UwTNJt/3NwM1+6UmVnZABSNMMPujbXd0o/g8JAM+fPS0YGEijnRADtJSNwGU9Jpa2JXX2Q+jJrkM6IHrAqft/lYYEzAzpUhpiox9FrAMsqVIYsuB5JLYdu4G46w6/a/ZD5K+QZSfDhQQTO+eEDrQfcpu3VvfbxnUAZc9vQo6Qw5fyC+dIWp0jj5TsZiKcQ83z4kIH2g9hIFDm4GghcwAD5jQh5ICRJEw9g3ftNJ5bS+wAe54QXj/9mukhSxwmgc4TQhwB+CSUjfA9ZffkAfiRzhRCJNzLcik06/nwU+N939nPo4ZoU0O0qSHa1BBtaog2NUSbNwh5GKzFvlGhPCRiyzQqXItD8FOjQ3GIwVZsVCifyD1izei4R65vvLVOpoZoU0M+27t7FIZhGAzDzs/nQEihlCwejEZhjA2+/+XqExS8fXH1nkAPGjSKLYOw9QPScg1gqqlqG4eICirVukoUSeOQeAOBaiX1EmAc8ipskKxZZQbIBZznDJCer+MQ+Ry4I3g6+kCtjEMQNFcwFTRnwTgEKYEs+e/L/qwMwpZB2DIIWwZhyyBsGYQtg7BlELYMwpZB2JoI4jBF3q0TvJ4G3ptb3ATPp6Uz9mXzT8+ty/4FsaeuueShPysAAAAASUVORK5CYII=", + "image": "/api/images/system/flooding_level_progress_bar.png", "description": "Displays flooding level reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json index b5f7c0b41b..6cfe8f8374 100644 --- a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "flooding_level_progress_bar_with_background", "name": "Flooding level progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/flooding_level_progress_bar_with_background.png", "description": "Displays flooding level reading as a horizontal progress bar with the background image. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":5,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":5,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/flooding_level_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/gateway_configuration.json b/application/src/main/data/json/system/widget_types/gateway_configuration.json index 985426ef94..b57e35d61d 100644 --- a/application/src/main/data/json/system/widget_types/gateway_configuration.json +++ b/application/src/main/data/json/system/widget_types/gateway_configuration.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_configuration", "name": "Gateway Configuration", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.gateway_configuration.png", "description": "Allows to define configuration for a single gateway.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/gateway_configuration__single_device_.json b/application/src/main/data/json/system/widget_types/gateway_configuration__single_device_.json index a7b3291666..ac24d7453b 100644 --- a/application/src/main/data/json/system/widget_types/gateway_configuration__single_device_.json +++ b/application/src/main/data/json/system/widget_types/gateway_configuration__single_device_.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.config_form_latest", "name": "Gateway configuration (Single device)", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.config_form_latest.png", "description": "Allows to create or choose the gateway and edit its configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/gateway_connectors.json b/application/src/main/data/json/system/widget_types/gateway_connectors.json index 765d9043ad..a5dc75ba3b 100644 --- a/application/src/main/data/json/system/widget_types/gateway_connectors.json +++ b/application/src/main/data/json/system/widget_types/gateway_connectors.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_connectors", "name": "Gateway connectors", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.gateway_connectors.png", "description": "Allows to create and manage gateway connectors.", "descriptor": { "type": "latest", @@ -35,4 +35,4 @@ "ble", "bluetooth" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/gateway_custom_statistics.json b/application/src/main/data/json/system/widget_types/gateway_custom_statistics.json index 7090490ea6..a409ca8f72 100644 --- a/application/src/main/data/json/system/widget_types/gateway_custom_statistics.json +++ b/application/src/main/data/json/system/widget_types/gateway_custom_statistics.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_custom_statistics", "name": "Gateway custom statistics", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.gateway_custom_statistics.png", "description": "Allows users to create and display custom statistic data for the gateway in real-time.", "descriptor": { "type": "timeseries", @@ -39,4 +39,4 @@ "ble", "bluetooth" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/gateway_events.json b/application/src/main/data/json/system/widget_types/gateway_events.json index 4cbbfb8d7a..c382f8ae43 100644 --- a/application/src/main/data/json/system/widget_types/gateway_events.json +++ b/application/src/main/data/json/system/widget_types/gateway_events.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.attributes_card", "name": "Gateway events", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.attributes_card.png", "description": "Allows to browse events reported by the gateway.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/gateway_general_chart_statistics.json b/application/src/main/data/json/system/widget_types/gateway_general_chart_statistics.json index 7e1974d5b7..2a854925c1 100644 --- a/application/src/main/data/json/system/widget_types/gateway_general_chart_statistics.json +++ b/application/src/main/data/json/system/widget_types/gateway_general_chart_statistics.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_general_chart_statistics", "name": "Gateway general chart statistics", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAXk0lEQVR42u2deXwb1bXH+Y+lfY/utK98WkogZSk7LcujBF4pAT6lLaWvlBZeCrTw4AGFvrbQkPYRwlIWfyCr7WA7XrN4wzZx7DjxIu+2vEteZHmTJdmOd8faR9K838y1FUWWZVmaGQM585mPPmNZR/fOvV+de+455849iw/7OOuss/gojpaWFhI8cwQFVlQqVbp4JCUlzc3NaTSaveKhVqsJLBKMHCx2eDyeuLg4r9ebl5c3NjZGGosEpQEL+qm+vh4XKSkp0F4ZGRkWi4XAIsFowdqzZw/HcbiAurLb7Z2dndnZ2QQWCUYFVnd3d1FRkU914XV2djY5OZnAIsGowIqPj/cNfOXl5bDiY2Nj+/v7/anC0UIHHeEdwZUQxkRY8WS8k6AENhb5sUiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosECSwCiwQJLBIksEiQwCKwSJDAIkECiwQJLAKLBAksEiSwSJDAIrBIkMAiQQKLBAksAosECSwSJLBIkMAisEiQwCJBAuuzK5jV7SKwCCyJBd+pd35nz7x6xE1gEViSCb7XIFCF84lCO4FFYEkj+IFaoOqSuPn1cfMX75nvnvQQWARWtIKvFg6CqnWx8+83Op8ptuP6hWN2AovAikowsd3FqIppcDaOuIv7uUtj5y+JnR+a9RBYBFaEgvs6BKow9r1V6wBV7PzdYRve3KJyEFgEViSC6VrXxSJVL+YN+6jC+ZHOBQV2Wfz8uNW75lXVTni2q50/zbLWGN0E1qdAEP4q0AOqXq92ZKi6/cHC+auPBKX1dp1zTarq9vBweWytctyaamETVZy3pFim7V6FwMKOX2yPQmwup9Pp0tLScnJy2J5NBFaII7uHA1Xora3Vwgi4FKz9ncIQeXWC5aTTq1hVwU1OD/fMUfv3PjzF0w1JlieL7HcftOIaF0qA5Xa7ExISfG/t2LED79SJB4EV4ijs4+BWQD+9orIzjJaChfMnWUJfxrY45a6qYc6T1O56pMB2ady8j6cfpllfOOZI1bgaxMpgSnGVSNtbRf2ygzU9Pf3mm29iYybs+wUthe2Z8KbRaMSOmATWcgd6iFH1t3K7j6GgYCWIs8Ub91nsnPRVbWpu0Yx7Pmh03i/iy851cfP3HLS+WuU40s8trc/OJsHTtj52ric8H1vkYLlcLrPZDC21fft2QIZ9VvGmyWTKzc0lsIIeRwc4phX+Umb377OgYOH80X5BSaRpXBJW1eXhXy53XL131scTBtxNH9t2qJ2Vw1zQavjOxw8LPrb7DlkdbjnBws6XBoMBF9hVdXx8fOfOnbjGRpilpaUE1tKjwuD+brzQkc+V2AM6bDmwdoju+NvTrW6PZFVl4UicN6dY4YyFF63O5A7Nk+8Eed9PnIHstmqHjGBhp8Jdu3YdOHAAJjx2kysuLsbWvbt378ZemP5U0X6FOJLKdevjTqJLHs0cAUZhnukV3awjPyjRS1KNA6qudXtOrgMZhYPhV8P/fLe4/5LYk5jMJpTp5N2vEANi0GvSWL4DHqDL9wpKAhoiqCZYTmPhfLvOAcG7D1g93miranV578wQLKo/lTpClBj6hOAWlTAg3rDPsqKbjfxYMgo2jbqvFOdTyFloWL63lutIjFPf3yeIlw5xUVZ1c4XA6J0ZllqzOxqw6s3un4omPywzL4G1JoLNY27mE3rssB390bh6sHD+X6UAxC9ybNFUtXLYjfELqRPZ3dyKJYYGC6/HBrlrE4X7golGYCkniN9xy5h7W42DUYXYXwiqVuxmmMyYuOF7GszuyKoKz+dNycI3/KPSEU6J4VR1T4sTpGI60jnhIbBkF+ydEpxDd2Sccg49nG+rN4XbW8udfy1ziGrPFllVnz0qWEX3HrL6+I4eLJxPiRk+Pz5gtXEEljyCjKd/3zd9KhKyzwJT3ee5jhKsMgN3+V5B5cCrudqq5uo4CF7xoQUe//BLDKeqNSb3hnSLtIkYBJZwwAeNJKr/2G/1j6yBpzRtWDytqpuZ1nm+xL6qqo7Me68RjaF36hyrLTGcqsJiWy+6fIsHuGhatc7sZhH3Mxos/bQHmcQYAnw8wZLFuPDGkYHQtlQ0YBUtJgAitBdmVWHq/bZAyJJArkQEJYZZ1deqhWH6+iTLqCWSePngrOepIjtrRrTemQWW082PznvbTgjxsnsOWf2DIU8ese9rdzGeJOytEBGVVyocYd5jkhhtBPTHBzn5wIJu/kWugO9v8m2nnG1el3CGbNVZh/f1GgdTeBjoETxFVFResMb82JcbLLTFpM0LIwnauEDPJXe4/ppvQOfhZ/TLXBuGuasSTuWQsBNx/scL7QltrgCrXG6wPupdSAA8seiZDHGPUKvMK4vpW8QlhikIcK9LspyWi9H7DF/1Rb7jXn74XX6+GaD5V5Xz8Cka1/WiCO4IjYkoaqO46E1esKC64VeUFawdTc6NB63wPbK8qNAnxiAYT3ekWx4rtMe3LhtckxssnL/OE3TDPxcTAJe7R/QcS1tAnylT1Q/bhGxYhNih13nj+7zq7NPO2gtnau/jRxJ4x3DZEHfXolWK1KDM7lPaVF6wgD8zC+QDyzzvZfFgdkIbIyKLjJEHc23wJm/KHEHqyHv1Tnj/cns4mKVhWk4KgHWgU2gcuMfmHN4Q9xgjLlG8KcW6XMKCHFV9tkQYqV/K+YivPI9XncOP7uPHMviex/m6i/wh6z16TVLu83/Oyo1tnAr4BhnBwsDkM2KqZUuy/psY3IBNUAJoTGvAx3KC7QbdaMfLjSOh0ldYOGVXk3O5e2wdcyPlC5oYzg4lfwPwPjyRqZ4v+4oAkOGN0zy009pDha+XHb7fWv4lH2Heys+fbLzTpHmta6BGbXbICxZSY9m46wtiSA4WZlXQ2Ehqy+91rZXiWU5wuvnXaPHxtqcbR5ZlImkxARBuyaX3iDeZ++OPxxwKK9cW45i1ej3qX1DwcIF+wXJH5hYML2anAvfnik826yrN2q3zDbd7Kz/ng8xd9dWZpgd554gsYCEHbUO60Chv1DpYKAqRV8nB+suCF9u+hiNaUMHOgXphBBEberLlUfYjDnqyDHQopKX3+HcxsIjE4hqToqO22mw/qb4LNR+tvPmKuBOYLxtPemDVsA7FeVfKBOwKf5Em01xP37GRjs2W+ptx457K83mPTRawEtuE3yKcubBpYOWwZEUk0UoIFrwm+N1cFj+tbXt/qvm3zaaZTwxYHH7E6Jjp5l+5q74iXjykHrEF/fwuMUv4tjSLurk1aKQ5q4dT2BycaP096uysubh12PSQOMO4cnFFBiY90LKhS2wbNuj6imUZCi0u741ifgimXWzAZn/uOq6XECwsXX8k5bC5/FqmGGz117cZBj4JYOl7s1AfV/WFYL1zoJGr/gb+nG26v8k8v/TzcB1BJ6Fx3i/p890azHm2WmuLyq7wPGO4813U1lP5hc6BBvxZbuBYqg/0FhRE+E4+WcBiE5n7Mq2+Yt6sFZTWbUlTbq80YA2NaisL72VI2WuvstddLfRlzbfRkWsL1gGVxl57JSoz2B3P3tEONnPV38Q7c+q7m0yzS0XeqRca5/bkKV/bPF8SGGlWBqxefQGvOhdjmb43x/cmVnj/6bjDf066NmDBRckyTDK0tq6BamPnWzp9Yb3RCS8A3sQqvGjB4qZ4/YselWAtWisuMHR9AJug2TQ517hR/Kl90b9RlAerSfV3QX3WXeNvV2mGNK5qYaKOIbLZOLVcAiBSo3B/Bb0c81/DalbSM6IZbGcDt0n7RvQlSg9WjKpn84Hddccecldd4JspQJc01Lx8R0IH1L7LEylYXk7wy9UKv35Pxbl5BY+W6Uf8TE7HifbnxOLOMWtfWxOwwLdDJdx1r/7jgH+1G/odtZcJP4b6H2DOFZgAKJqhD+TYEKi4TpzrvF3nUGwCK04Dxx11l6N6Uy0Ph3aRKAuWtZs3x/KdD3lqvuHvQLPVXTve+hSGqgVvh+qc+iN31jan8B7rqsGaOsqrr2Hf01V+z8bExv85GsT+MHa+Iyrzs1EuNJnCYGFahKIxpVrGqh1ko6St/rrWYXNAAuCV8XPChEv0LyAAFV6JLoyz0d+j2mydb9ggKNTG25rMFkkaJwqwnKP8eLYQSKq/xB+mE6XfUpc+NNi9t214yFdM56AaHh1nxaJLrfqrfM9j/HSpGLZf6bD1CjEEJth45XBfFkt3LB4I/sPS9+ZiQBRsmsaNWapGxcDCbEgs95wAO8//bB0esdbdgLo5ar/bbujz/9cT2WZfOLxkgFsRqT5dJgZcfNWM6qqBnlS12RnxPeJHKM42LmobHpaqcVYP1vghvvdpvvHy0+JHdd/muzeN6JM2JHRihlzUH7xdDqmaYvLjmotuOyWovlaIRrnGg5fHTfN9/8tXfl74ZM3XhE96nQiZregzxIwGg6/AlurydoNeGbAmWzYJNrvqgdAfazGesNbfJMznay9tH+o9FaEr07EEQKxADCEO7YJpAbhcdHl/zjc49OvSQzjMlrtHUcef7an6knawRcLGWT1Yi34/vvrL/hFv/PcRMWEoRJejQvEtwoTxgfQ218Brp1QdAlL4Kug/X3rGgjl1ofiBc6dqf8Y7T+DtjnHPxaJhuzR7ZIn+GGb9h9l+d79KbrDQK6gnHIN5qrKVTTHjFHN0uWq+BZPZVyIidI8V2kMitRfuJdZoMInwJzyTtap3HbVXLLxZu97QtT2c4YyVqNMf8YrRwD7dIWkbZ/Vg9T7LG2NEmE4zwrHgjoVUkXobukIbDy4GyEDP5Me89kHeFxCA5ht4hR/P4tXXLbzTvpG3dPhmhYgrC4vpjjvCM6VnzKofiVPF8/t0+2UFC64EwVXd8XKYgvA7zKl/LHL/TaYqIIiEk4pgrddsmsbkmvksBPO/7kaMg75IEQRhTQ707LPXfo99APAZunYEdZv5n4WqfE/Vl/F5fLnkjSON8Q59hRmN/0NXQlQI4Qt8Elm2M45FA8s5xpt28k03nja8Qp+NpfvPCptH3cwLHILdwEcIqbRj7S+yqSIs6xXnO5GBhTmggEjV11tM4+ELQgMJMTUhuHZB10BtUEFM1jDD5aoWpkSYUYpIcctU1QVHlBhUOZshC1lMVJcbkedV68Rp4G/CbxalwTrcx7Ek8SpjWBVij/WBHzXwi+bqeN1TfP13+OH3eE9gdiVSGCCFVS6rbQJD105R4SNstwndKS1YsJph3+DLMQatlkjEeRDtEdn6yjFVeoCZD/3HNAqbaSIYF15VuV59nqXh1gW8qr4OvEB8ANNsLJ5v+GGY4+YagIWnXLBJsv+zN0NXCKlIF4u6ZzK89bcAC4+lY0NtuYGLoAkQvXJXf401ZatxVEKwYOiIxs1lDNnVjqHgcqL1CYEA1fmoJPNKQMuyia1Y4Q09faURVLWrv2qm6efsSwAovrPVaFycBj6JNy2qi4CvTDMbCcDC4zfR5bemWle15u5BMbcaidJhgsXyLf2fRLXaJtAOtTlr1jGzt8PQJQlYMJXY9FMcoSJ2gLngixGneP8K/6RX9S9syjLd/J9w00TZzd39lbNNP1nAq/ILY20vjHS8wlCDjSWfLyZasJAzjwdaosuxNmFVFcJiI5b0jaUNK5abVNbDHDwrPvYpdBMgXG9puIUNEJGpgYATowzTgj4zJVJ3JdetenzRg3DeZMt/aQY7JOxmuNamm355akavOrdXny+r9zhasFjWx10HLBEs5nw4P9xHVW9MnQgz1L9iEzSZT0ITMA8Qpk7RtB0whftHiAQMVEsSYDFrXp1o/QNST2WawAJWIAtw4buSO94VFVhY9MOS+LBqKoIKIe0TyZ9IAfVfXrf0QMY+m0WuVl0t3wQucTgQfr4TrY8HtV7Dabvxtv9mSVefkJzVsCMEQwqUGBVYsJDE0Kk14gptEp+vj0TQEIX+PFv4DMK00jYBxgIk0bI5fASJXJohLXQecr07DD2fLrCUEYwcLCyWxWI3TO4OdkXuHCrsc7E1wVg6F7RE+AwF62rvbLVR+iaA15tlHHDV/xZgcq3YdkjcgyCmWp9tPtYArD+XCjE7hHGirBDWH7OHeQb1u94nrvN5/iOjTE0AB8+s+j5mchk73w5TsKevjDmflnouCKyowOqbEfLNcX4cXjJaiAohSQGpCtB8Sx/OVCj6XZHWnFLRI18TwJMkprucwzyoLBISUtDFvNv+IBJY0oD1e1HNPF1sl6RCbHnkH47Ygy5LRFqzAm3X13uQTfEQuoaLMoQgclRYPA4TTAJLSrCwipKlGBwblCbGhJVhLGMEz87zlZUvZuj+IDnax2yuIkNhqI2loyDKdlyVFtwjarY4a4SkDOSonAl8KArWw3mrjtmtWCEkLDCLbSFM5F0IE2GhgZJth6DvnPpeMdn1vKAjHRIBWH7BcstQCawIwTomPo4BTnCVgZOwQogAsg1eak1CnbLFVdS3pCyEiZRsu0WTS1xr2vo7/+QTZASwgONy8WACK3Kw2DSN7XQlbYVeLrezdG9ucRU126d0TdquWvU+CwMLQethE3vzRNsfhVTgpp+dOXwoB5Zo96yw6DviJwqzRyE+J9ryt6VJ/PzW1Qoi/46ZXEgGR74U0ogRHkY8JHQUj8A6DSybzZaZmZmamqrVavGnRqNhexdiM7AAsGC2v9fglKlC/xCfVsDOD/xSv9eq7bBOiz3FAHkHWGnNFv+cUXxEC1Z+fr5er8cWmDExMezP0dHRoBoL1k9kD+cMp0Jwr98gLt3ckGHxL2UN2w7LE3wmF1JNfMMigbWKoRBbNSUmJvLibqvYpAk7geGdALAiq0r4FXpdfL7qrtOTcNa87fp1GTC5TJqtZxofEoDFNlmdmJjgxV3m7HY7tpXLzs5WGCysN0dOX8Mnr+2Qcxf0yQsEViiwsJXc/v37MRoygJhphT3lkpOTFQaLsUW99RkBS6VSbdu2LV08oLTKy8uxjS828O3v7/enCkdkW+PReaadp+1XeNoiZI6DGltqvCugsUjwTPRjEVgkSGCRIIFFggQWgUWCBBYJElgkSGBR25EggUWCBBYJEljUdiRIYJEggUWCBBY1OgkSWCRIYJEggUWNToIEFgkSWCRIYFGjkyCBRYIEFgkSWNToJEhgkSCBRYIEFjU6CRJYJEhgkSCBRY1OggQWCRJYJEhgUaOTIIFFggQWCRJY1OgkSGCRIIFFggQWNToJElgkSGCRIIFFjU5gEVgkqBRYOp0uLS0tJycH+1MQWCQoGVg7duzAZmB14kFgkaA0YEFLYXsmXBiNxry8PAKLBKUBy+VyxcXF4cJkMuXm5hJYJCjZULhz5068YiPM0tJSAosEJQOruLgYGxfu3r0be2EG7FdIBx3hHkE9CxgQQzgdeGUPKvHTWKLS90PHGXIQWHR8AsCqqKiA+YVXxepXVlaGEvEqd0HYqri3t7egoMD3Z3V19ZEjR+Qr0Wq1ZmZmpqamYp7k8/WkpKR4PB6ZSrTZbIcOHYL3G3eKP5ubm9G2WVlZISwfJcCanJxEK+ACNz81NaUAVdPT04mJibjA68zMjKxlDQ4O4gcTExPD/iwqKqqvr5e1RLgJ+/r6gJGv0MOHD2/ZsiUg4CHhgZ/KwMAASty+fbvdbt+zZw9+P1VVVQGecKXB6urqYg6I48eP41oBsNDEmJyirPj4ePma2/9Ai7MLdPbBgwfx+0YHyFqixWJJSkpijkOghvuV9U7n5uZaW1uzs7P9+TYYDGsJlkajYUMSXrVarQLd7HA4kpOToUjw6nQ6lQRr69atKL2jo0PW0RChs4SEhImJCWgRXOAe5QYLAZXCwkKoRvZnd3d3gBt8DcAaHh5mQR5UBT8vBboZ4fCSkhJcHD16lJkFioHFLkZGRvx/3JJbdfv378doyNQV9BYsns2bN/t6XfIDGEFB4mLXrl14haKSz6Q7a1UNAVsHowNeca2MxkLgEl2LV1wrCVZDQwN6GlYI2JKpLGjibdu2pYsH7Ff2pqwaS6/XoyVBM9gFTy+99BKGAplmY/8Pl7O7ukBGoYYAAAAASUVORK5CYII=", + "image": "/api/images/system/gateway_widgets.gateway_general_chart_statistics.png", "description": "Provides a real-time chart with statistical data. Displays one of the following: bytes sent to the platform, bytes received from the platform, CPU, RAM, Disk, etc.", "descriptor": { "type": "timeseries", @@ -39,4 +39,4 @@ "ble", "bluetooth" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/gateway_general_configuration.json b/application/src/main/data/json/system/widget_types/gateway_general_configuration.json index e2129c0271..9e4406d9a4 100644 --- a/application/src/main/data/json/system/widget_types/gateway_general_configuration.json +++ b/application/src/main/data/json/system/widget_types/gateway_general_configuration.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_general_configuration", "name": "Gateway general configuration", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.gateway_general_configuration.png", "description": "Allows to create or edit general gateway configuration.", "descriptor": { "type": "latest", @@ -35,4 +35,4 @@ "ble", "bluetooth" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/gateway_logs.json b/application/src/main/data/json/system/widget_types/gateway_logs.json index 45b380e544..0237f14a16 100644 --- a/application/src/main/data/json/system/widget_types/gateway_logs.json +++ b/application/src/main/data/json/system/widget_types/gateway_logs.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.gateway_logs", "name": "Gateway logs", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.gateway_logs.png", "description": "Allows to monitor and analyze the gateway logs.", "descriptor": { "type": "timeseries", @@ -36,4 +36,4 @@ "ble", "bluetooth" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/gauge.json b/application/src/main/data/json/system/widget_types/gauge.json index f5494f8b4a..5f30301cfe 100644 --- a/application/src/main/data/json/system/widget_types/gauge.json +++ b/application/src/main/data/json/system/widget_types/gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.gauge_justgage", "name": "Gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.gauge_justgage.png", "description": "Preconfigured gauge to display any value reading. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/getting_started.json b/application/src/main/data/json/system/widget_types/getting_started.json index f845b948fa..9db9645dd4 100644 --- a/application/src/main/data/json/system/widget_types/getting_started.json +++ b/application/src/main/data/json/system/widget_types/getting_started.json @@ -2,7 +2,7 @@ "fqn": "home_page_widgets.getting_started", "name": "Getting started", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.getting_started.png", "description": "Displays the getting started instructions.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/google_map.json b/application/src/main/data/json/system/widget_types/google_map.json index 8b27b9b679..47a2fe5a3f 100644 --- a/application/src/main/data/json/system/widget_types/google_map.json +++ b/application/src/main/data/json/system/widget_types/google_map.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.google_maps", "name": "Google Map", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.google_maps.png", "description": "Displays the location of the entities on Google Maps. Requires the Google map key to work properly. Highly customizable via custom markers, marker tooltips, and widget actions.", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"google-map\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7568\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAyUSURBVGiB7Zp7kFRVesB/5/S9PdMz/ZoHMwo4MICDuoGVIYICIuzGcn0vC+oWGuNjs8mua9ySP4wpgyaiVVupbHYTsLJmNT7WNXExwqqzrq8g4oNxdXUgyEMQARmZd3fPTE/3vfd8+ePenhlgBsFlrFSqb9Wpvn3vd77f+b7zne87ffsqjv+wE4nYDQqWl5aWfDUcLqkAyOUHunID+Q8EnkilMo8C7gnoPPaRTCYnVyQT71+1bKl80PK+HGw9KPv27ZPde3bLjp075NVXX5FLL7lYKpLx9yoqKuqOR6f6PIFYLFZtW7r54YcfqV+4aBEdHe3ywm+e39eb6etzPZfS0kj5woUX1EUipWrj6xtZedddu11P5mYymc5j6Q19HrgsUrL67r/7+8VLly7j8cce3d3X29vZ0DB9yplnfWXcrFmzxjU2NiaBXevWrUsv/trXKmzbqnz/9+9VDuTyz35hi2OxWHV1ZbJ1245d1ltvvpFtb293Kyoq7LKystKysnLKy8soKyujtDTCxx/vSW3fsT3c0NAQWbpkiZvp7a9Np9Ndo+nWxwJrLYvmzV9gAaxbt/75urrxd592Wp0Oh0tWHSkbiUQSv3unuQlgxoyZltZm0TF1H+umUnrC1KlTAaipqUpESmMzFIRjsVj3SPJTpkyJA0ycOBGMnviFwSISLolEAAiHbftYsgAlJREbwA6HESUlXxg8lkcRXAQXwUVwEVwEF8FFcBH8/xhsnZC0ksw49eQPI5mmNtP54ccAIvqgqbz4aYn8zYoTUXXcFnueyZ8eXtleZt75iQnpU0VUvYiqB5mvu5p+XH9w8RtgnJMOLut/7rd4+fpRBcS52hz65csnHdxQ8clZnyuT3NV40sHRUnfq58mUWFJ70sEn+yiCi+AiuAgugovgIrgILoKL4CK4CC6Ci+D/Q+Djf/higk8Jzs0IMjIGYDGAp0AUeBbiHf3Xs/HGAHyYlYaRX0EYC4txNeIFugvWHyXzua8cnDjYGMBoQIFhRFfLmLjaCxqAw8iuHing/nCwGlLuMrKrveNfnccPFnyLtQ8c0a1jElye8sGFAYwUSCN54Q8GB4ljKKpHkBmLOZbB4FLgjhLVYxNcDFnkMXJUj03m0kOKR0sgYzLHRvlwpcDYI7oaGYvl5HB4ZRrJ1cf9fP5E/5NwQUKM7uoTOI4/ql38kmgUOCMnEHMCL819sag2jJJAxgIs+HNY6PGlpUxXDQWXw5dXjxH8SFZBPf7SyqKrMQLKG7b/OkpmTBJI0BSjbwTGYo6Ni5+ZjMJDj1wkxmQ5iV+VsBh9BzImKbNQFhWjp8wx21c7dKIV9A94IxaJsdplZt9574JQVcUdpr3rzlEHdzLASslpg19EofLMMa3dc0Z9c9YMXT+s7/GCo9FojWWph87+6tmX3XTTzT7XA/F4xutXr4fyOuQZVQUQ0tLphY1nlcn5YqgAuOyyy3inefOtH+36aLJr5Obe3t72o4w68kIsFptuW7pp5d33TPne928hm83yLz+6b9PVb/4niRK9QNfUoquqUaUREEEG+jGd7Zi2Dnpy3qYHGr7OFdcsX2BZFs899ywP/fznu11PLslkMjtHBScSiXrL0m+uXr3mlEWLFrN58+auxD+u2HZWhb0gcvkyShZ/Ax2N+70KPcVvJpMm999NZJ99mi1dzsb3rviLGbNmz6rY0rKFVavubTWG83p6ej4psAbfr66trS03xtlw98p76s+bN5+nnvzFtouevK/s1AnJM+I/vB37j6aDziJeCtxhzUkhTgoYwJpchz3zbJI7fj/pzA829f6iR/bPPW9e9aS6utjbb715YWVl1SOZTMY5DGzb6scXf+OSS6+48kqanntu55+99shkOyLx8uuvIjSuDEzq6Ob5TdzgPJ9GhT2sCbV4W1vK57R+FP9lOrT33PnzKjOZTM2OD7dFB3L5FwaDq6KifGYiXvn95ddey4fbtmWv2fhIiVUqpbpMEao2SH4fiKCMgAbRggSuVkKwEQz22q4iVKtQEYUtJvzdlvX6+bq67PJrr41sbm6+VVv8W1dX7/9oADH6b//0+us1QO/jD6xPhGWSCgsqLJj8PsTdjzj7Ma7fxDkAzn5wjry+H3H2YfL7UGGDCguJEqnPPf3YOoDrrrtOe56+C8CKRqPjotHoN+fMmcObb7zRelsk9W1lC4QFCRlM9yfoKnsoEgOLVWCxDLfYBRwwnXmwDIQVyoMbo6lrfrq5+dCsxsbaaHlkqTFSpUMhvjV79mwLwHvjldewBGxQlqBswXn3Y6T/EDhtiNOGuG2I2444QXPb/WtOGzhtmL7PcN7di7IFFegiJDq3+ZVXAWbMmGlrzRJLKc6/4IJFGGO4MdQ+gxAQEn/2LcH0u+Sa27HO0IRq/V+MSqnBOUZARMAD75DB2w4mq8AKWkggpPiOtJ3dYgznzTuPt996+3xLoc8+vaGBlpaWzFybrygtqCPgeODtcTFtBl1hUBHfGgl+wNGv8FIayWjE6KCfD1UhBVqotPWZO3Zs7506dVpUaT1Lh21rPED7oUNtKH8OUYLSoHTwWRiEAsmBDIA4gCPIAJh8YL3lyw7vi5JAJ7QdamvXWmPbofGW0qEYQL4/0zeYjdTRTQ0Oxp9/Svx9jvKAkBocsCh1dP9AZ76vNwOglI5bnuflAaukPBo9bM8UpMIjvxeiWAUbATHK3/yNJM/h30vKozEAz/Ny2nXddoCKyqrKwc5GDYFMUJmM8peLqyCvkH6FZP1zXP+eGBXIFvQcrquyqroyALdrxGzv7u5i6rTTE3lX0gUL/DIYPPfwFDh+k5xCBhSS1Ui/9s9zQ/cLz0rEGxqEGMWAK92T6yfHu7q6MCLbtSj1UtPzTcTjcfW0E3t5EBSkv0FgPgAMQgtWa/9azpcZHICrhvR48B+52CvRaFS9/PJLKKVe1Mao9e+++zsAtk9rnIwbLBFHIQ5IACWvkJxGBjSSDeDZ4HxAIznty+SV38chGIA/PXumzZoK0PJBCyLq1zqdTn/U2dHxbmtrKxddfmXj1r7QRr9jMH/5Ye4d8OdV+odZ3F+AqyG3F/oFelr62PQnl14667PWVrq6ut5JpVJ7giLBygfWrMYOh3ll/pLx4iojR7p3QMGgpQX4kPUE8OFuF0chrjIvzL78VDsc5sEHH0SLWkmQLuhOp5v27t376tatW7nk8iun/UN8VhM5BblASS5w53BowdXD4L7Lg8EG7Z6SM36z+MILp25p2cqBA/s3dKXTLxRSBeDvtUpL7M0PPfRwYtLken791z9Y++fevmWE/WJBIelbgJbDtz4mePblBksrcPU/ubVrF65Yuayzs50Vt6/ozuXduel0etdhYIB4PH5RVWXy+WeeWR8aV1PDz+6/56W//PDFxbpELGULgwVEcwSYoWXkKExOuatqGl9b8p3vfb2vt5/b/uoWtyfVe0kqlXqpwDpql1lVlbwhUhr52VNPrQ3PPuccNm16PbXrR3f+9pvm0NV+pWEwhQKIqKHnm57iV9nydc6Smxc1zm5MHvj0AHfecUeuv7f/u509PY8N5wyCReRcYCEw6YknHi9bcfvtl9276r7qG2+6Gdd12bhhQ/rghhe3TdmywT4l2zkhEeIUgJTLZ62RygPbT5/rlv/xvLOmnzE9ns/lWb9uPY8++u9tP/3JPzd9e/nyLLAXeE0ptRlAicgk4BZgfDAGc/DgQb1790fWrT+45Zz58xdMue+++0kkk/5N8RO2iPiZ0BiMCMbz8FyXzq4u7l91L5ub3969Zs2/Np/eMM2rrT21YKQBPgPWKBFZAyQA093drTzPobu7uyPV3XNbR2enam5uZu3atdTW1LDsqqtYeMEipk2b5m8GANd12bVzJ69vfI2n1/6Kjo5OvrVsKefOPZeqqkpJJCtXJ5OJinBpRJLxeOF3bI8FZIAYoEN2SHmeJ6GQ2CiMUipUP2UK199wI59+2sp/rVvP6tVryKRTOE4eAcJ2mFg8wfgJE5nZeA4TJ4yntmYcSimUUsaydMi2wxIKKTXM6n4lIuMCV08m2O52dHSQzfbpvkxvZSqTbkinUnWpVDqUzvTS29dHNpvFcfy6aNsWkUgp0fJyYrEYiUTcSybin8RjiZ2lZeXd0WjUra6uDg2L/z3A6uHBNQNYAEwHqvAXTTl4Kp3O9HhOvk+FGMhmHXHdHGLEE8CytNY6rCKRsPY8VRoOh8tisfIkhFxgIAB2AtuA15VS20ZcTsEgEsBM4DTgFKASiAClQAnBig7EC8/8BoAc0AekgE+B/cAWpVTqSMb/AlY1WXIncMcxAAAAAElFTkSuQmCC\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"Google Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"google-map\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7568\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"/api/images/system/maps_v2.google_maps#marker_image_1.png\",\"/api/images/system/maps_v2.google_maps#marker_image_2.png\",\"/api/images/system/maps_v2.google_maps#marker_image_3.png\",\"/api/images/system/maps_v2.google_maps#marker_image_4.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"Google Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_card.json b/application/src/main/data/json/system/widget_types/ground_temperature_card.json index 56b1b6ad1c..50a463ae1d 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_card.json @@ -2,7 +2,7 @@ "fqn": "ground_temperature_card", "name": "Ground temperature card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/ground_temperature_card.png", "description": "Displays the latest ground temperature telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json index c4e87a4c74..11b06badd7 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "ground_temperature_card_with_background", "name": "Ground temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/ground_temperature_card_with_background.png", "description": "Displays the latest ground temperature telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/ground_temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json index 897c92a9b0..80805b9756 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "ground_temperature_chart_card", "name": "Ground temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/ground_temperature_chart_card.png", "description": "Displays a ground temperature data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json index aa853de8a5..cd8d0665bf 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "ground_temperature_chart_card_with_background", "name": "Ground temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/ground_temperature_chart_card_with_background.png", "description": "Displays a ground temperature data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/ground_temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/here_map.json b/application/src/main/data/json/system/widget_types/here_map.json index 1d60a8ca11..60fdca9acd 100644 --- a/application/src/main/data/json/system/widget_types/here_map.json +++ b/application/src/main/data/json/system/widget_types/here_map.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.here_map", "name": "HERE Map", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.here_map.png", "description": "Displays the location of the entities on HERE Maps. Requires the HERE map key to work properly. Highly customizable via custom markers, marker tooltips, and widget actions.", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"here\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"mapProvider\":\"HERE.normalDay\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"mapProviderHere\":\"HERE.normalDay\",\"credentials\":{\"useV3\":true,\"apiKey\":\"kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE\"},\"mapImageUrl\":\"data:image/svg+xml;base64,PHN2ZyBpZD0ic3ZnMiIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTAwIiB3aWR0aD0iMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogPGcgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtOTUyLjM2KSI+CiAgPHJlY3QgaWQ9InJlY3Q0Njg0IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBoZWlnaHQ9Ijk5LjAxIiB3aWR0aD0iOTkuMDEiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB5PSI5NTIuODYiIHg9Ii40OTUwNSIgc3Ryb2tlLXdpZHRoPSIuOTkwMTAiIGZpbGw9IiNlZWUiLz4KICA8dGV4dCBpZD0idGV4dDQ2ODYiIHN0eWxlPSJ3b3JkLXNwYWNpbmc6MHB4O2xldHRlci1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7dGV4dC1hbGlnbjpjZW50ZXIiIGZvbnQtd2VpZ2h0PSJib2xkIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LXNpemU9IjEwcHgiIGxpbmUtaGVpZ2h0PSIxMjUlIiB5PSI5NzAuNzI4MDkiIHg9IjQ5LjM5NjQ3NyIgZm9udC1mYW1pbHk9IlJvYm90byIgZmlsbD0iIzY2NjY2NiI+PHRzcGFuIGlkPSJ0c3BhbjQ2OTAiIHg9IjUwLjY0NjQ3NyIgeT0iOTcwLjcyODA5Ij5JbWFnZSBiYWNrZ3JvdW5kIDwvdHNwYW4+PHRzcGFuIGlkPSJ0c3BhbjQ2OTIiIHg9IjQ5LjM5NjQ3NyIgeT0iOTgzLjIyODA5Ij5pcyBub3QgY29uZmlndXJlZDwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IGlkPSJyZWN0NDY5NCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgaGVpZ2h0PSIxOS4zNiIgd2lkdGg9IjY5LjM2IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgeT0iOTkyLjY4IiB4PSIxNS4zMiIgc3Ryb2tlLXdpZHRoPSIuNjM5ODYiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+Cg==\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"coordinates\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.5,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"HERE Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"here\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"mapProvider\":\"HERE.normalDay\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"mapProviderHere\":\"HERE.normalDay\",\"credentials\":{\"useV3\":true,\"apiKey\":\"kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE\"},\"mapImageUrl\":\"/api/images/system/maps_v2.here_map#map_image.svg\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"/api/images/system/maps_v2.here_map#marker_image_1.png\",\"/api/images/system/maps_v2.here_map#marker_image_2.png\",\"/api/images/system/maps_v2.here_map#marker_image_3.png\",\"/api/images/system/maps_v2.here_map#marker_image_4.png\"],\"showPolygon\":false,\"polygonKeyName\":\"coordinates\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.5,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"HERE Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json index 93087939ac..1a3f7312b9 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_2_1_elliptical_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_2_1_elliptical_tank", "name": "Horizontal 2:1 elliptical tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_2_1_elliptical_tank.png", "description": "Widget indicates the level of liquid in Horizontal 2:1 elliptical tank.", "descriptor": { "type": "latest", @@ -33,4 +33,4 @@ "bin", "hopper" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json b/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json index 60bd64f347..782fb117cb 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_air_quality_card", "name": "Horizontal air quality index card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCg0mHy8vLQ6a+srKyQkJCQy0bf8Mrv9+Xj4+POzs5YWFiv2Xv5+fn3+/KIxznb29u2trbA4ZXV1dXHx8fCwsK8vLzn5+fIyMi43Yio1m47Ozt0dHTn9NjH5aNmZmZKSkrY7L2enp6YzlOCgoJLS0vt7e2dnZ3U1NQhISGmKTEOAAAABnRSTlMAIEDfv1C6kOEmAAADrUlEQVR42u3aa3OaQBiG4bRJn7yynEEOAh7xrEna///jykKrtjZK2iZDMs/1QWGXD3sP4OjIDREREREREREREREREREREREREREREdFb+vTu3Wifb+/fO//2S9VxH+HdU/efb+4UPoDo7qaHD6HHkI5hSNcwpGsY0jUM6Zo/hmSJGB5O+FvAylErbAsHlpVbUGgU+c/REa57g5CFGDNxYhzNS4U8V0oBVlisttWGX+Up2HZeFGvlQ0/ZllK+zrYtvV8f1IpnujgRuxcOcJfZJj6OXQzBAjDFxFH4tK2WaZdPwKpAHhYhQn8/Lwu7GrXLQan2lg6xwlWIh9Xa8h9W2yK05q0yDBEDB+4sMfCbmSSHYyvOBnqFRpt7xD0NGc1VqEMs3VTAX9chxTa0dIhfzW0f/DrExje9a833Vol9NXid54hhLvCDm8gh68ATEReaI7uN26/2roZ4bm2zEw8LD435OiyLHyF7G9Y81yEP+b4JWcN/CHEIWesQuygwL9uE9CXDkWksl2chpsxkWm80V/xUjKsh8tMShkgGzS+Bp70OqXfC0lfrVemvVuutDlFrG6F1CMF8FVp5OK9qihBXeeLA83DCPAvZySJJdIEhS1RikfhayMZsxIh3mSEezqknu3r5ZcQv1dlRaEWvZyfiLC6ELGSHaZ3gHK4w90LIuUxctPK0xd/KRIxsJkn8fEhfTLhivCzES+SEg1fXl35zzTwf4ugLIxHvRSHxtH+UxXhVx3s9k+mzIaYk1VocyXTABlrShHTqK8pSpldCZtJIgGlz2EIE10JmxonNpRtXPf4+oPAX3PoTdScm4P0xxBNZeBV9FlxJvDqtfz3EOUpkgdqgiVF4TFGLIkS9QA/0EAEYW2NEadpMRE15W31xMkOcemXnIcfdTGb6RWZTRxzvQsi5jZiHkDwP0skkqLaGGKbDUTQYBnk+CUaPwSgCgrEajVKooJ4IJiO0Fk9FxKhXNvtTiPNjFW79yWY6UpniBSE7xxD3EPI1GKhJMA6akPHXtNquxsZpMJzUIb00rUImg/FEVblDhfZiL27e0YbnuY7M4va/R7IkWaJhBekwGOSTodJnJBilw4EaTIJq7HE0ngTQIZE+I+ORpSfy4RCvyXOm/+eHVTrG875OUryNfw+JokuTCm10IqSLGNI1DOkahnQNQ7qmd3P3Af5mB9Rd9cDAB/ijPaoeGLj5cuvfv3e3nz/SQzVEREREREREREREREREREREREREREREb+Q79h0E444zJWUAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_air_quality_card.png", "description": "Displays the latest air quality index telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json index 0947ac3772..9de1fdb3de 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_air_quality_index_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_air_quality_card_with_background", "name": "Horizontal air quality index card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_air_quality_card_with_background.png", "description": "Displays the latest air quality index telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-windy\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_air_quality_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"AQI\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_bar.json b/application/src/main/data/json/system/widget_types/horizontal_bar.json index 27ec8d2367..e0dfebf11d 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_bar.json +++ b/application/src/main/data/json/system/widget_types/horizontal_bar.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.horizontal_bar_justgage", "name": "Horizontal bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABp1BMVEVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl7e3t8fHx9fX1/f3+AgICCgoKDg4OFhYWGhoaIiIiKioqLi4uMjIyOjo6Pj4+RkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr7AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dnc3Nzd3d3f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P0Qzb09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////7etFxAAAAAWJLR0SMbAvSQwAABdlJREFUeNrt3PtfE2cWx/FPuGgNi1S7LrpgVyi92AMKrqsWNRUd0IpaxBapEKC0ARSUi1gsVKmpMbfvH70/zOT6q1Jn2uf8NM+ZeZHzJjPznIThQW8d2URN5DRdGXjSYiKRmCwf/DiRSIxJmvX3X70581LvJHj7H/HGaiKnscrgjJQ0s9PZ0sHXzeyqpHvlQ3rvF0MCyXme53nnzC54nud5eY2VNj3vpg+xxeDYdF8Fct7zvKEBMxsPCcSP782mgs0xs2RlR9KC2iVp1iqQB5JUeGBmW1GBnDF74Q8u2plaiDRsNhkVyHip6mdm4/WQGbPRqEAWL9i5oiSNm63XQ6bMbocX8k0qlUqlUss+5OdpszVJ+QEbelEHKVw2mwkvJIgrPmRut9fuSHpktvhrGTKRyWR2Vz2zU7tRgUxr2E6/kUasP/usfh4xWwjx7fdBJpPJZDJZHzKph2YLSvfamNbrIV+vKcSQmZqL/TvlB2xIs2ZP9bgMuZ5KpZZWdt/R6/8pkLvSd2a/DdqgtFx/14oYZMts2Gw2+hBdNrO+dOQgIzNBlCHzZnZDkYOUo1iCZE6ZLf8VIBq1/xaiAHnf4SAO4iAO4iAO4iAO4iAO4iAO4iDhhKyPDvadvfZjpia5MzHY3z84sRMdSOoYfsSHcuXkq/5GP9nY/yoikIsxytH5R5B8friSPLQVCcgNAGKH4gB84ifz7QAcaAOgPRcByE4T0PpDVlrpAJiXJI0BnNiQNo4DjEUAcgVofCJJ2m0BTkuSuoBDryXpZRzoigDkU+DzYHsAOCJJagEGg0sIiEcAcjuRSMwF29eBA5JUjAHf+slxIFaI1oQ4XH5HDgLX/eQo0Bqxmb0L6JMkdQNf+sk+oDtakAkgtipJmgEaFiVpqQGYjQokvbW1MtkbA4KnUIongebz9ycvNANWjApkOJjDG6+VMtkvKzN7b1YRg8SqHs7Id5ccPQVFDQJdwWNBetJeeUf+vRkZyMbU1NStnhhwxG91n8WBNu/HuaEW4KOdaN21fm4G/idJ+hg4uitJO0ci0qJUhwc0v5b0CGDZTy4BrEQL8hRgSdIt4MNS9iBwJ/SQYjqdTueDQQZgWtIFoLN0SEelgQwx5DVA6S/P2wApSYPlpkvSP4GL4T+14uUL3O9ReB40irFf/ORWDLgdfkgf0LTkf1g8DByVpA2A7pwk5XsANsMPedwANH21sPFwpLVymn0KcOz71dX7HQCfReH2O0x1DPj94fO26mTb80jMI6NN5Ypjl0p91cbRiqN9PSItyubZAwDs712uJLN3AsrRO3vQ/O7VhFhcm5+af1Lf5b5cTE4vvtybV3RfYjuIgziIgziIgziIgziIgzjI+4b8/rax/b7CQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQRzEQf4mEPfgmYM4iIM4iIM4iIM4iIP8TSDzn8SJ9/wU3iofnbtR2qytdbXvYGz/8fGiDxkK/l9+OJyKX4f/BZeCQW2tyQZ/dLIgpCVovnR3sJHYwxAykidiUIbU1vriA2Kn7l5rgdtC+gzuSfoWToYQ8h+ItZUhtbVeg7OSVuBwEeWaiGclZfbRXAghpHN0e6wEqau1E1YlqQOeoDX4WJLUCU/DB3klqQyprbW4j6aiJJ2HCZQqLdfX469XFMIoQ2pr/QM+kiRdhW/QDPRLknphLuSQ6lpntQPtkqRRuIKmSzv79mLVwXcLqa51Rtt/UUiyamfYT61kzS+9DvJT6QL6AhZCDqmtNQ2HJUkjcAOtwAlJ0nFYCzmkutZVFRrZJ0n6Cu6hNw20FiQV/kFjLuSQqlobctIxeCZJ3fAI6YR/bcztxZqv7xhSVWuXpMv+Uqk7DbTkkabg4IPN6Q8hGXpIba2bTTTderrQAQnhzy7+WqkKPaSu1pvB6NhrIakw0gq0evkIQOpq/eEIsP/sq9JH3eLm8mZB0Yi6WreX17OS9H8TXZLm48kP1gAAAABJRU5ErkJggg==", + "image": "/api/images/system/digital_gauges.horizontal_bar_justgage.png", "description": "Preconfigured gauge to display any value reading as a horizontal bar. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json b/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json index 426bbdc744..fdcb9025cc 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_capsule_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_capsule_tank", "name": "Horizontal capsule tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_capsule_tank.png", "description": "Widget indicates the level of liquid in Horizontal capsule tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_co2_card.json b/application/src/main/data/json/system/widget_types/horizontal_co2_card.json index 83c280e62c..545550588f 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_co2_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_co2_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_co2_card", "name": "Horizontal CO2 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCQy0bQ6a/v9+Wv2XvIyMjf8Mqg0mD3+/LOzs6/4ZX09PT5+flYWFiIxznY7L3b29u3t7fV1dXCwsK8vLzx8fHn5+fn9NiQkJDH5aN0dHS43Yitra2YzlOenp6CgoJmZmY5OTnU1NS33Yio1m7t7e1KSkqn1m243YlPJUzgAAAABnRSTlMAIEDfv1C6kOEmAAADiElEQVR42u3a647aMBAFYNpuJyYX554QkkAId3ZZtu//cp1xUHoVpbS0gM4nYYaMf/jIGITIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBfenf3BuL9B+veDT985BxWSncvsd4PnhJ6AOnTYEgPYYggNwZBbg2C3BoEuTUIcmvOC7KelUR6tpShltclfaXc0P93VpDNRh/0cqu3S70tdxOiuabJhCwiS551RhcJ29hxSfhtPKK+ul6Qw4RKK9Okt7zsLkidZevNWM+tw3Z9YZBYMbvpK7evwmsF2RHLSiozotmMJEg2Wx/0fDOeb5a7y4K4SvlNrGypbL95UQGRL9WbWlwrSKZppjdrWs4lhwmynWlNu4zm/HxZEEe98Zgrl15k5WGuQvKUw5XKyQjdMByNXFNR6Pgm/rEKfW6cCuI7js9THefraWWWZRNrlx0svcuyWoKU2XZNszm3OMqFQQITJKRAybFYqYYfslpbuccZ+1zxHhEH3Js3n/Q8qRqbx/ZUELUKchrlgf3t9k76oTfpny8T2qp1PymPOIhPZuwi8Ogfg6h45Kk8JB5iZ6UC6dmOwykW0jgZxCWXnIBij66tUWwVngryZq47HKQ1b76m67XHzXTPCxIodcU0siNvsa3iU0E8IjlB3dmhPY/SOzbs00GCVU6OeWuFbhvQ9bRmNbnyfxEk5rEL4v1OkJE57Dy69MkOWrqefb84eZjDLsfehAu/2ZG4myHdM4L8KPA4k5HQTySv319I6HwSYWFWM6JW7c2XCVEs1xqpjp9axxmeimWGci8KsgiCFzLGXZiEXgsy0pTSYSQXhpQS0XQ5pbQoukYqM3/NV8qLA2Wb0+J1pyXMTeUcg/QzPKl4Fl0URPRByjIqtI64qqgqqjodV1FZ6qh+jeqUKJomdV1QEplGpGv6tZF8FwSyGJerfEGskar98k3DL1euBHnhKgj/QpDn53Gio2nUBZk+F1zztWkRVdoEGRYFB9H1VCcct0roDKEb/lC5fSXr5ZfUnSSpTjgvyDIqqmhc6iqRHYnqohonYx3xtVdeeEQSJJUdmdZLaZRVRX/OBBEmyFV+WBXTE81nXfB4H0HS9FQzob+k6X+ajOIGP3XvDYLcGgS5NQhyax4oyNMD/M1OlDzxDQMP8Ed7yjcMDD5+GFr37sP7R7qpBgAAAAAAAAAAAAAAAAAAAAAAAAAAAOAf+QwerQBC9f0WmwAAAABJRU5ErkJggg==", + "image": "/api/images/system/horizontal_co2_card.png", "description": "Displays the latest CO2 level telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json index d2baacdade..8e0b024540 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_co2_card_with_background", "name": "Horizontal CO2 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_co2_card_with_background.png", "description": "Displays the latest CO2 level telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEUXHRsbISAjLCEwPCgqLiMjJyEgJR0oLBsrMR04PyQzOBo/RionMigvOS4jKBpFTC42PiwcIRtLUy5CSSVITh4SFxhIUDRjbDUrNSwjLCtVXz9daDxVWy8zOCJaYi4dJCYvNBo8RC8/QyM7RTY2Oic7QCo6RSYsOCguMygnLCc2RDBATTE/RBpjaj1WXzZFUzxQWjVJTyteZjQvMyFlbUM9SzZNVTRSWSceKSNBSDA3PRlDSxc1OTAyNyk7Px5OXTsxPi9NUxxqdTpkaiRLVzogKCk2OyBZYzo6PjNKUyZYZUArLi1ESB5CUDYnMS9nay1udjAtOCA0PzRATCoqMBVpbTc0QykrNzJFUCWAiERqcScvPDUqNCNRVi9bYB5UWBxveEJGVTVDUi5qdEVxdDgwMzBOVyoyORB4gTtaYTRkcDxZXCcYHiROXC5ESzgbIBQ+RBFncjJOXEU5SDxiZSw6STElMSJea0UlKxFKUBJSUyaRlU2Ijkk0QzlobxwQFRJdZyh2ej1zeCxQVhBIWEFWXBI4PxB+g0yRlkBUYSxgZRtscD9dYSctMxBmb0pwezg+Tj07SSo5Qx1UXSBQV0AWGxNRYTZgai94gChLTSQnJypvdSOXmlVVYkdHSCaEiySBhy+Lkih2eTSBhTtMVyIVGCA+Sh+KkDtzfUJ0ex93fkp9gECHjS+EjDh3fzJ5gUUgJhKXnDtFSg2Hi0AiICYyQCF7ghego1RfZURCRjpYZzSEiE9DUEJKWzVbYBCLj1R8hTZtbzFIWC1weU5VWDlNUT2JkRiXm0hdZEycpCllahGNkUV0d0dJTDqTmzCOlTV9gS8eGSNdXz9+hSNvdRNgZg0KDRFjZDeSmiSdozlvckyCiBOeokekqjWmqkqssDx1exGpq2FXW0Vqbw6nryaZoBuQlVt3fVWvsVKQlxaeoGBbWzKhqRd+hFe0tWWzuTBjbVGHi1y7wSCvtxpCQDPEw3C5uk2SlGm/wzqgonCwr3nIyVJZSkHLzyaMaFlvU0seA6M7AACQIElEQVR42iSaeVySeR7HvVCBBASElENBMA9EQIUFBMMbRSURRQ3xwAMdFa/NK28p88gjrzTvsEytbCw1jzSryex4NdqhNdOx1WRNO+1uOzu7/+zj7oOP//B68Qef5/P5vn+fLwZX17fe1iwtTdfQRoshkrQT02lN07oatHZrSQfRaiusKipMzSoieWY5luZmZqYwczNYTqSdal1bRAgQwpyMQKYEAurE1tWdt1tvNzdf7Vxdr1t/dfXj27d/exdb4Dt5929/f/f3vz8bevCut72eI4YEEEWpEI5CxqlvLy9Ix1YSGx8NjZSei5EdNi1snUklIzFeQUECuMLHIcIPc/bsWau4o2HWtoanUywsvLyCnJAcInGsAN+Vi2k41nzKbXb2fq09gjhx40b1jQGlIPv+GxJCTfzQl+6DD6RjpwaH/jZ0eeTFSNXlFy/vvHg49s8XyzdtzsmJqTI2nF7KUmLs5+6v3ffy8ppjPx2fPbXG/f604lF1efftAToclVC6cW73y5fxhL7Xy+oL6RfTJ4eVbIYLI8GHdVJDD77l5vaDX+3CQvYpwenvnSgkEpeLQZDYYrwPNzBzWCqVVjYqZb5XN9H9QocA6iEHYnzBo5WSksx+FJNpbmpk4j6aWYmOb+9HgQnmFASFCiYLJb4qSpDAneDuaEJwNwGZm5ubGBmZGWxubm2+2qzbfFVDo2l12mJdU1OReWRTGiBbU522w+qJFSzSrCjS1LLDFAYolJPTkSOM5NiZm5uCYKaWBlYGMGL40tJSTV1x3eZW3da7d9rims3bO1d3Pn/uPf5o4vbm7XefP//8818vj4mJo1kSLFpcT2U+1khODExU5h5/gC294TOfEQP9k+Gf/pTEhJMQXkGOCDie5eKWRQn57jtbf2tr2+9On07Zb2Fi4KpkYYnhd+9yVqawDfTt+6dmbwUdjdiXUN8oDe8ehDpyEbeyqUwxrj43axXn6oq78UgqfTn014sXhutPnjz514Gfpa+v0RkNrnS8x30MnZSE8PKy9wryCrFga/BPGz4pSdTcgcr28uoBPvvx+3Olu33fXr9+fafv9XVXekJCzL0r6TG40NBFHFZJsrm/YL/g6dliP3frTHbI915UJNul0I8LVzI1T/vxcnmXvPp8NRfT1buzM1DeqzpkLJPB1QUrJT1kApQZ6R5gToFwxBzyCRXY0cTEEdCHAiaTVSoR1R0hoAhMTNxNTEBGRiYgUxPQnkA162/Xt17pIGna6eLiNK1OZHepSVu3VdxUtzRdUWGQcyknEgaz7LA02xPItMPSwKzfPcfMCrgMDCwdTcx919frpuve1WxuFl99d3t6WnX187vPf//759svBweflT+8/fku8OX8/DwTRe7nievFm4/wro2vYjc/i1AsjZhY35l8MeYY29neJUlBQggEQY4WCBz4z8ZBEdFx+UfDwvzDQlKsQ74HeVGVJ7sUcFV39UW5DwuLtJk7lT03IEmxxWTgUV1DY6Dv7UPvO5IScZ2FWe2+rAxvl3li/d2f/3b3zp2fFPXDL//1l3/d+2nXwxmJ7cLT4Vw2g0ECFEoJScm2AdNZn6qOubo+GDif2i6N9W33WQ50zRjXJIzv9r0v61uetfHwOHfxQum9mEC/UEyCjb3bXMtCfn7+UXsPj7mFWyZOFNxjhDGJKV9ZIcob2HC2JlxaUB2OL+jurpYO7VxVgVsdZKxPJT398WgyE68Q85iQHhQY3d4OMgGBjBwRVBKY3I9WxZMRJk4mjiAjEMjEycnQwNDQEGSw9XZ9E8inrVdLkTxdWs2WNm1ae8msn5ZWV6TTLdU1XaoABDIHzGJpaWqWkwMLIBgYwPrJ/SqIgQHwCZYgE26jr4iPVn3cuX17evPjTvGoauntx1efP98+/+D5swfV1ScGhp5NHH8+qCGYwZAcDrFyR/04dkfv+3Gz3NwdI0ta7cxIuB6z6uLtl3jY6AAuhhLiSE3Z5xjiNZcfF2btb+34eJuacn9bQC1IZSGhqdIGZWym+gbyzf1TNvi/vKtEwAOzUJpnmbbW1gfsqWtJSUme89JuTT27s/PO8Wfdl4fL7j2/oTj+808Dz688SMCRvFj1LAUmG470EyAsvEJSQhAYgYZTffyC/OngM6lYX999tTImmX4u+ZyNn+tXm+X3r7fPzG5nzD5OTrhYJhfjA296HvRcWFiIi7C3X3Bt+G1tfNvJ/XGyC5dUsKKOJbI0GkZXFxKZO9XLahwIL5BKh27voGf08SWf0MVA/JcECBWZHA6rBwLmiHjugIEEFDCGAiWT+3skZBNAEpCRky3I0NTUEPh+LS0N6raW6rZerb99+5YXWaTj19Tp7CJhJv206Tr+Ut2rpZq0ioo0mGWOgaUBoBAIBBFe6qCY2dmZNVbTDGABhrYG/hROsVaXxu9957vFV51fL+b33v5x/cTWq3exld1DlZWVsb4nu+9W5hKTjHKQaAWeMcryQC6tK9rP+14t16NQq53KjKz6+U4bb3ZytjGJWOnq5RUSkmI/5zrvGR0d4ZX9+PVPv5T1lZ46cH1FwyZBG1zlE75Y6VOP+7PpEwPv3v1YyQiEasbs7QUuqYG3mr1bbyYtzp/rRCZlzRC7y6t/Hs3qOunjM/GXR/98npsbavPbPzSpWeDsbDbuTVAIcJ0+HUI6TZkafPhsKPz8CbR+ZnTqbm9X8IcjNuPBwTYfTnn8+sf2m+ZZm+ZTHmUNVSMPYz1OxR21X8iP25/fEhF83ZULr3IMuumxEagRy+UsZIl8mIjD28wpG7BEKBKvZGIbB8/vXJWgt3pX4je3lnbWhWRVJkdIFlLhQhSRKTBxJ0Ap9ylgKFMiormDDAwFTk4gW9s9oYDbHGKwtbVVV1M8DRhpC4i46RoAEuzMyWTI9Nulmq31pemmikvTl4AwA9IM1GGaUxRJAxPMTE0N7ETtxqn1lqaOoMN6/p5AxXUiNJ9ffEJUrFoq/1jMV5WfiA0vHxUr2kfVlVPY+vnVRBIcTtAoG5Vrrr0n0Jx6YmWlWJylqK9HHsrIwHl7+7j6Kauej7FTyuycnPZnE/aF+Yc8/ve3L9/++e3a6188gi/ewyK5mIbHd553S9Wla4jhj7G5UwOfB3FMKGfsXHbC5OD7jfHFxMDOpMXFzisXWavp531zr6TW+0z8M/bhX8bGRpJxZ475PO5iuByC0zGJwTYUjK2t7WlAJQtgRk09eDThy5xXiCvjfQNP5eWFBicH+3nX2jS/32548+bNmeSYC8npx6+4ZufH2c9FRMRFx+23Dz4SEeGhnmU/1jQg6T7hRDgByZGnQkm35ujKgkYuHcVUpmLDpyZul4/WrW+u14lUb3dE8QVoVADF3QwcgFKSwe4EAYVColCEJe0SCdjJ3xDQCCYxNTAwNTECmZjDDAAVtqb5dUtbb9/WTE9rtUt1Op4dBSpc2lpq0m1NTy81CWvSnjyxsrIEmRrkWHUIRTxeJNTSysDM3NKcYOoEDaDw+Gg0X8fnxyv4fP4oWiQSaT/u9JaLCipPDFby04a7jj8fY62KmWw/gqElhpEqxg9cpelX29FysRhVXz+vb/UeL+3bwGjulY6MvJiQmwxXQyOc9lnbng35o+/Lly+vv1zb3V3efd9XqkHCof2fVkaeN5rjbEjV3USsD3FwSNqIrRp7hMu9MXbxlzJcJ+5e8qr36tSd9JP1CqRGHFP64i9/u/JwsirXJyN5Y+jlCp4RGirLyJAlsl3pYSl7Ftp/H7doQ2dJKzkoVK5o4Lwv45RbbYubd/PsD2d+O3Xz+N2R8cezzceqfk0ILLvpFuFvX5sfFgdE3C03z4Xs7WTXBqRHw0UNXgynOLCIRB+mUlRA4PSGIxlQKJyulMrTu3tFjTsn+G3ozK2dzXgOigymUAj9/cjMRg7BCyGAUqgosgQNJlCC/A3PWgaga8xABpYmZiBTmIlBjS4tbXqaXzO9VKfVTesAyF6fpvUHkLdqtqZrlupq1ttp0xVPLEHuEIKZpVGFVU5O5PoQGnAU4CqA4gT9gDgiEeAhHnBr0fw2Gn/PTa+u1tHkvuip538VPUOfHLvYucoITuxkWFkJHBgyVOzHeBSqMjOTjEHGVmLhB5KXl0uXlzfOXRzPyLhzR1lVEnAuEcCD72yXX7+4syfPzSOzX/+9m+ABh2PWti9cmXSnEtXhUmxW7OCz7uOVw5mTUg19Ph177pf31xc704NxwdAu38rKrKjWjNzGezce/fWv6lxsV1bnxMuhZ9VwbiGCpMHSSbLVM9bWp09Th4hgG2fvQDoLL86SEVOZCiTbL7TFrTbPxqYl78OZm+obIy8nfGaTtz/QG9LpbvnW+fZxYWFHwyL83LLdjjz28FhbW3ucQQWjCAI4E4nEFoixlV3VuUwSnIpAuLDpYp+TvSvSH6+ekEhEm+2qkh6eHYFKBdCNnJmJhv4jG6A2dAm6hwamEEyMDEFgiZ5mDjIFppCZmbm5wbS2qRhIs5rpmnXAS2lNvLTp9ToahFazJSpRFfOaTjQ1pVUYmYHMIlEwS1MDq46OyK2dpQ5gelX8j+PIKH4xHxCojablA07StY3ydTRRe3F7PE/crkfHDsR3j4pHMhITXRITcVlU030H/wwnZsbHouHEG2OpFDZM8Zdw+HVAn2Ol+ECch4fHcl/pnStyOdsI4+F4/31f373l5etfm480f/3j+vXX70/9Y/v35ePPR8YKcgt862Xg8AfdU+Ul+AfVSrF04mbp5PFfO7NWE+ep2T6r4naZ8eHV0faTXbl3LmMDvTuDFxNiqh4MYBDUbAQjGFEYJRPsJZzwwTMpxiIUGYhPxYtlUC4iqjXxTL5nrZubG3D7/R7MSpf7nBy7MO5xy6O0jGV/NP9gXHRYnIW/dfS+CPvZ5ma6H3stVUwlIB0OIAGKaVzBZ+HwK3hu0Jz9nIC6RmBJR6dWVgqkNEl7fGO/GA3QHNWdAIcGuBOQ1GyBwISSikZnllApFIHA7LBRQIAdGlDI0tDQFAYzNagpXqqZLgZEqdkCcCEtMg0g7LfAkWg6U6sVaQHobprueFJxKacCdskSZgkYJ6e47u2rzZqaS5ZnrSqAl2kbTVRczE8TaQFKEfF1jfHF7beX+NpRReqQlqfXtz9bQiNxmtUydR8dY2z058OHHTi54nAaKit2B02wNLhx98Fww8ax5WN9ZeNPZxnjy33Xyj4BB5BrZV+u9V3faFj+8PXDh99vbv96HRDo29ftjdf//vbLTyoNAjvQzhKMVjdOjDLFP1XjT0pHSbj0O964+agD1T/G1q9mrbYeKEyaV6wSK32xDO/V1c55H5+TE8/CHwZkH+SSLLK9E4OCuFLiVPW7ch+4mycmUOGAoiKiVp3t84CAS6wtrHWzX/hh9hTDJ91HLn1Q9vjD+MXAc977APq3DlvIDzsa4bxvX9AbjzWu39oGisuFmh9ghMuVxFgilsUhKrkhISYmRCgbo1lZyUxVEkc59egTKrIYFRDgjtgLNagAsUYFDhZUpoSWqcokCBwdBQQCxR0GobX3gAxtQabAy6BOt3S1WLtUvOehJUCOyEi7Jl2aTkKW00Sq4uJpnQ725EnRUlpHDnA47QA8U6Grq6nZevU2Ejil7l1PLHlaGg/NBwBBW8zX81U1xfya88UiXRunsl2s0Bc8ejA2XvpT7pU7P4d/SJqZmTGOmpH0cFJl5vpX7VHUgstTL38ePLZxbGPjumbNDzf+fre0anf327drX5aPbcifPh338Ahu/nXWI3l5fHf5Wunu/4fSo4eNP37+MRMORomHTuDh6k+salbowQOt24l93gcwfT39WavzM6GF80kKcDaXntUa2prksCodyM06OTFYibAhIRiUgzIG1bj+7kT4jXdDN+j7LTyz9DwxBuHcanEwr9bP2Tm0peVoft4Ps4lsvE8MvfLh0JUqeVlCQnB+WHRY9NGjYcA/tw+z2fcxp7j3cYBKVChCgNIgR5VMkr2M7eJsD3KCsqrj8enDLLyGjFerw9vF8WiUkOxAQBDcwRQk1dHL0RE4o6J6VD09JRwwgG8m7u7mIFhPe4nYzOCsoSVQORhogamzBFhHO83XqorMi9LS7C5F6iQ8WkmJkNeUlsYrulQElASXrCoukWEGgD583dYSv+bqOiRA+OT/lzlNoteL+XxtWhoEKIz4WpFKxe+ltSkUCr1+5vjzBz+N1Fd2pWMnr9zJmg2MMnU6zMDjFTIqOD6VC60erjz+4O69hu1tj68NyVl+3u+XvzT2ffvy5f3usgdwue79ffi9YTb5/fXlY9euffv27fWXb9++vL738MFQr9BdwFaXV3KUT1kOCHtMvezAwXMuUan3HjvO1yclsYjzWfOkOa/sN87OsqSkzqnjuQwGPdM84xw3yoVBJZEwjC4AJaYGpbm4OGcMioAalQmCokiFtXlutc61EXFH8z1t/BIZ3t6dMSelD8ZGpi7cWgvOiztrHRYdF+ZvUXtmDfPm/lw2FTOLwWC4BAJc4MWUck7A9x88aLzghshoz1x5FKtW45VwuDzzaUGsAg8HE8BQMAGQxZ3MhArmBBSCIrMHALgSCcjUyQQgN5gdqqSnB21mCgKqLksTgybAL1q+VssX6bQlFZZWOUVFkU1FdgRIWg9ZcslMiKa11wD4bWXVoSPnWHZYVURuAR3D9GZdWjHfoKIC4DsDc/QoP02P5mtnHPh8wHXFqngRP1ar17fN6GfaCl7evfuX86OyVdaIvFQMNQM44RAuVaxvH5zRy7jI6vCMruofJ68/np3d9piclIV6fN3t390FCpaN67jm5uQj3llZyRvv32//fsxVnhwzDrwDEN3usa8b10ce3pBWuYJ7/z7Ym1m1kUDHyScnCPuiWkPl98pwipmZpPbKejG23oR764eIg1GtSTMZJydPany6sm5Uc4P2eXbOC7APq+Uahc9AdS7d0RlqTE2SOXuRkrJaE0OPHs2vXTiYF+3l5+3n6ZmIy3B1TTg2OLHCTG9usbaNDrOOjo72//MPfvcXsrOz3wAZx3XzcjKOciTBHZCcVq/9B/cbGbvgseJMorwH3w8YBtnzKbwX7TBrA3cAg6nu7ghFD4rpKOASmJASiYTWI8qEOjmaoMwJaFUJGdKP7rEDnf3OytDJQKstkpTsUXJ8zTQ5B1bxpKIjp0jYbwahQT6pRBI0DZIGYF5HxaWm4rQSLAFW0cFb903TrgNEDjECRpIpwU4/quK36dG00cg2HV8ECJSm57ep+LyZGYc2vSK8vPvqwI8Se83Pd3/6j3rN6U9WhvscWqH66r+pfMKRGimxP/fG5Ufyc2sADh3/WYq/3rcbsP1++fr1WSDaPJqPBLsteiQnN88m2xy79vp1wkZZ3/U/vv6K++AxPvbjw4lwIrXybjuew8Iw2amZ5z9/PNBS6LIhHcRTo2StCsWhpMr2Lh9NHjCMWnPnE4jdD1fU+JExfEicBSILSey+Eq5hMliTK5MFPQ5ZmANRzvZBUQpFVEutW4tFftzCwn4SJtGtEDBR+skVean6xvFHDy5XyTVu9hF7Cbfg5jZnke0WJPDKPmVv4R8iAFrEgNZOsF7pFOdkAEUyoahUuQbZD6WQCNBPRCIHzZQxUQQqiWpKgUKETBRFQCVLxJyefl5JCYriBIIBWKfi04R2PSpRv+VZf+C8alBUVAQR8SGXeFq+xPxSW1EkhAeB0NBNOR1FT33j3xbTdIB/LtkJ3dO0JVfCifKCT2paPK9Jm8bXVXRYWllKRBJaGp+XRuNDIBSCHmA6lTYtUqHX6e0OAQ9xV3uqKH5UMpLp3Tw5EX4vAYcxOmtoePAw4hDx7sSFYTGRqGzox4+NhT9UPr4ZKL37srTs9TW51/bXYzeD2ZjA4EBGYmESfTmjM/gPvPL1bkxgRunyvzeSjyza2DSofW88utxICa+GmuARQdzspIFnA3d7jTeONayMpY8ndnauipOSRusv+3YWei+mV6Y/LMVW3nh+Z2UoFuR15EhS58nuKTkWj5SljsivjEw+6EWEsl0QQfsOHz7csuDpthAd7VnozXDJq/UMTWIEeuA+NVxcGR6WTjzofQSuzLXw97cOiwgKCppbAHr2Fq6Xoa2TozGqq57VJZWa2VqAVUw8lEpBcZRMqoDiSGF+eoovwDKRGCoBTjICweHuAiqhn0MU0folQiG5v5/TIwZZpsb7qvjCALt+kcjMCjDLWUODtMiiHBGfn5ama4JcqqiIjCxqapqe1gEIEFBwVVv+drqoiEYjo5skIm3myLUS4sidqkhaEQwG4fNhFVaWZm20NhqtjUfTpUUesjNHN+2diICmPK1ND5k5dKgtl68fHa2vVz/MHZ1ql8doFpOM8/fF7TNyPPz08r3SAshoFpIM7no5wjmP/4Tvz50aGrtWVnaTcv/rcsYZF0+MN8Yl1Nvl976+3d0/rrFck2+63rz+u8dvbOda78SyQPqLoTEmcvBZ9eADaPTBCPZg+dTAwyu716sKfhmOyZ2fV4x26kf17fWrSa1Rq+lluViZa/rEyvPPaNtaG48jqydHRtSN4kSqsmryylP1JBijkR3gZu87eKDw4MHa/Oi4OHubxcVCz3xnNzYj9IebF101LKImsHvoxthY7FiZRVyYrX/0/jCLOa+giKNu9k5eKY5RMq4xmBgY5Og4en6nkc4l4Ps1TK7AkUqCQ6lIRRtKxiCBKAKgDoWCQ84aOrmjA4B5I7Szk/RIeshm5iAeTSQRmkOEQokIZnXWChjwew6i8XU6PlpnB8mpMDe/dMg80g4SmdMB693cOb9Ud4JMsEvjDa8MFvT0cEobyZyV9ExJJLAYSqPlPAEdBqiC19iOFuvT7GbMFG1ooFDQ6YElkR4IN4hD24zdjB6b1dWWG97OIo4qziGdF70Pxu23NnRkS3/qu6aGQZlwJF2+gl4Zwj4aePiwe+jywJ3xDx6ufd9Kbc78Bjy990+5+H39NwBu/74+7vr+/e4vGzeDfzvTEpro7foUSbyilmcOxfdXT8lDwrxOSrtWHg3tVKmJnHvHXw52rq7WZx1QjI6ukpyTMqJWT9azuXSlJiv9JZGa6On5QUbUbCQQka1QJPFCaWN4d8nPL1eoSpKFcVRoHjCBuNn5tX6J3t6h+RERfquJzYGudFcNPYs1+UCKJbJWHnIwEXFx/mFhYUEpKUHREfaeKSZBICcLkkDgKOgt39n5+AqcQsbimQECRy/qLbBQiVdiw7EOXEeTPxtTDssIjqD9jkJVJKCFEBJQUoImR5qjzFCR7nZm7nYQO4kK9mRPnyfAMmGP1XRtZJ5dW2QOmAe2MzcTNl3KsYNM64q3inV1dUUBwpLwlerGzJWnRDyyJ/zRMAvpTiLY6exMTC1h+ILRTHW9Xh8ZCRG3i4CwLNKZm5iLORC9HoC41VWZzAFepo7hZDXQ6YmJXL9F2Z//9J3Vd0bG+JFrFz45ugcqKfANuTL2wYhvrFQa//zFQFfzkTO/73659vVI8xlP57xTR5rpuIZz1wGoSz52L2b3vWuzd96Z0MUzbzRrGnn6iwsvGqVEaKCXdfR86mh6ePeDBlck48rIMJ6d6NbZCeKOtiOiD0bNzwfSkUkOrKrtC+mNIz/NH837QFJgoBgGPKp1TYmfunwh/dPgw8ssxz87R0V55h/N+8HmB/vQwlAX7zzPlqOh7IzkQAZDybCh030eHWednFRfHrtM2rc/Lto6ei4kxSK/JXguJcjR2jplfwS1ff32q/KtnbdURyUHz5ETTKhseDYKGsDE48HAZsHY2NHU0AgsoKZmZgK1qYQHASwDnF7FHI6QZwfbqw/MA2h8ntX/BSqKFKn26rWAAIIdBAqGAHwthNg1advN+B05Aeg0oJzjQySfMjNLCl68GEGRJx9dIeJlmFAjE16bGfBpzISLucp52SFLExik92pdsbatLRIKPLZJDgAhiFfnjy3fnMmUjhyvv+e72olzSVxM8guysjI0tsuqDF9253qkKsD0C08/DffQsPLqxtH0wW5XRqJ987HxwCM3g93y8z7Qb9IzMjLoucu7dEbpL303bx45AxRlnp55v92yCWxQl6rVPWikiSDI2rkTmXt+5YLaR6yclZf+cifmTlbLPtuU0wKnOAvnJDpc5oJgE9e2l69M3cAGAx2b0z6g8gH2oA71x5muvzILXlRf/tE9yMnowAGLo/kLnjZ5+W4tzp6etZ75+X7nNDbBgEJsb0agvGoQ65N+LoHFIllb++9fuOUVsj/OfsE+BbgsnE47UVC+vb7xYpVvm8AdX7LiG25OJbHdqRgUmQCWUbgIZ+MDFga2RkSg05aU9EuYIjQZIkGjJQF2sAAJBFhbw+x4hACaih8JewKYyOBSJLqmWBgAhgCy2AlRbZCS8EwaxK64CYiwCrMSlW5JV95D7uekZg6vXL4sEg/fGGaxKWBnI0szcxhYRmfiWTFYB9khkJldT93AeT5NH6kQo7vqHVpnZur1q4HXr//RnECsFOfejc3Kna/1XvRbpIYeMGIT64mcKjCIzXQAkzV4uVgpv6BeaVS2v0xnyfwQyITxTm8PP8/aM0eSj9i4pgbT0y/0yXDLly/jvG0AhfJaClvygmY1Zeqq4ZgEeVdKiL9F6CpU0YWHV7ICG7Zn06UxxzB5b4DS+fT33++PisrKYATbz7Fdt8fDr8SmX8wIc3IkYTD29iQSiU1sxF8oWLtwIfeyCsl1MvzTUWAZF2H/W4SFp6fnGRu/0KPWJBbbz4+xGIhkJAJJJ8UhfTIC6Taec44Lc3u7EeuwOGCruN/WHtcKIgnay8MrgZJLi5Ywu1ZWpMP9VK7AxBHM6geBleh+ygHgAQAZOKIgJTQOLSAAEimUcCR2PDKa1sQz2/tJAcwciL2STJGKFrnXpbXx2vi8Nhrazi7SLBIySpTQVI2+QnMUr6SyqAIG8PeJt+uZPeh2Hh6vvjwx1hN+BailEeaHcyxNO3JgBLaSycSW5eJcoOQe397zH19xhGZt6DaFvjWqTcYZzWUCLc0f4+8vJkydRyvAxoWhiYkzi6uLWecq61GyZvZ9UyoUDIUzYpT0p2PqKmJqau9fsjydEZiY5eRg70LP2iMeR474+R3x2/41Icbj16qYGBtv77za2vyDbm5HU37QyBuqYqo+iRHWIbYWxn4kL6iYWFaljHmquVfJSGxpyW+JDrP93t/icJQeiwu2uQX1KdtQD3bNe+YHsbmk0ELP+9lcKkkz+TDzSkyVHF9VNungQvKstQcAIc5/f0thXqBPekZwsCcpGZfkgsQz1uh0THZS6BHGfKCLH66KEhedknI65LR1NOChIFv//fssuFLaj+Uc4qgQ/+MOTd2oflpQRaQEOXLJEjkLoyT6ppr8CdjH+X93VgaR0CQAHgDxJskU0XokoxxVGwzYtMHM7WgcIcTMTHI+0gpwEA8INR4PLRKmCSOFw76x53t7fcvr0L7l8ee1gAJNOvT6ek28qqAEiSoZHhkpKDiOVTCiEJ7GhwnmeN4hh9ZVJJ3lk1QIVBiiq+XlV1VCB4V4VHFIptenKoBFpeuvv39tXt5Y9kk1drQ44FxYWOjSicVmpXYpZlzekBAkZFJrIS6QycRnqvuqgPXDRLei0NOzMKvTJXi11q021NsmOPjIYvCRZBtgiXZu5B7OO69lIe/g3mQ4/cPjY2r1yoURNcgWiJeIUJI9t6vSx1X5mO1x756bW6h9xJmDcdbffed/JhjYN52pnXUlTm24Nsrijjo1c5G3st2inBFBpDnl1NinMg8czjVBCTcSHAmtbYmLi/YPs/ZMsgmsj01atPEL7gzM0py/q1ZyXW0wg/g1hjew/q1+uZIdgeCmhHznH+LlFDFna2sdZt2aCmy7UWShkCOVlihZRBSrQK0MMkFXr8erGlnENvMDhw9Tcs6eNXBH0nhklDAAGPCcTLSQJ6HRImGWMHMYLFLYPxxAk6jqdCc6Kp4YtEFoNJ6QT+NPF2vRvgMn1suXylV1b+NP1Ew3dVR0kFXTVzdvLxVLJOjMgoKCO8TU9PAGdmtUobHxIQcxEdw645AUmEBvNZ6ZIQvjY89vXo3ntR1qmzE6BCACJGvk3bOpmK8fbn54zzpsYbJ/f+GehTr7fqqkr4pRLkFzAngqBImBUteQqNSGC1RXPHTSd7XQ+WBosItxomeUs7PzATdvm5vNiZ2L3n6LNocuXlld9LZfqH2TB/xc4bv7yqe/VhWkCt6EBKX4WzuHhmZDMWuBJDXL5rF6GdOy0NISWru3tPizd/D8YiguMTiQWXKReS4hC+8ReCr7IMLTjXQ/iMtl3pssVW43YLErh2Qmax4uEflH447aRtgnZtFbs3wZbDc/bJL67sCzj+9uP2qU4yobEujZzqEMn8njVeBHI6SQkIAh+EK20/ff+ftbOHVhOeh+YBdH/CTW9KemKrAaJVhgouSUXy0/jy7AgyhizokTQFNtx0MBrCYMAFoddHsJmYxGt5kZmcLMYO52SLK6RFc+8O6j9lWd4X85OPOwpPMtjCuggqCgOIjgvoBKiLvgEoi4Uaa44IamYuaSlrineXMpzd101CYt0ya33PLmkplN5pZt15qnNNN0ylbLblPNcu/z3OPlqf8KH36H7/m+530/R7n0SCeYTB0hQf216GBFWVmFxp0bjjmPy248zs+vPKxx5MTBO49f/HYj39Vp79EnR+NC1HV1A2qR8OAyJQRaAC2AERNwq9OCkckWXQpxuui6/8Vw2dXA0/pqEtDYDa1vZz48HXz3etT2r7smy39uKML8knjr882HqYzaqyIGcsyAFBNz1dDEi0O1bvNNMjHWDojzDPBBZhjUkAU8cgYdB51f2BDtc2sixkcQIxAGVYtBBLfIUvzTAFfYsE8Yn83LfX9v44Bp/bYKXWXfnt+nowOsQxYp9ndJRip2LG7GvnD3cAFFMCEU9nZypcy2oPdDfukOCUyCM9JOhTW3seHlrF4d28ux1HQ7vnT2cby2hwmE2eFaKtyJmOhoH10/c7qK79NfLrx69WH42b/fvn1rndD4dJ4zrU6tSrz5vONmx4WwwqX7pa03vX465G5mbuP6PsnQBmNCPGdNtCepE61+4SsTXMw4R8te/Na0v0IfgSFq3BlW+tldgYjG6JwzVIIR9WjS3l3KaNVAVSVgPxQHlGxaX82ebXLNP9u0/3CZHCSxTgcDoSTPHl9xdXMDX7XsTtmJ3349UuTmtrfSDXCDZy8e//bsRdEdxzNHiVbaxL3VCRgGUgVH59HFYnFtrbgWm2hBsxeroi85nXXbD6SRE1jWCIbo6unk1pnhmbcPbfv9Ej6DhfbxL2MyN9otWXwtnsZgiGgB6ndzrRRsblmXuxhY6cZ7P0mwv9WAV792NXhHQvng/DNYXCrk19QpnwCBuYA7IRNq8j1tsyZkEJpdP7Qv+PrvlPLcntgepkn9a9uqlBRnL7yXHC7DnEGRGkEsncbj2e0LTvO3E7BqJigTVK4gy3MhtqC/QPeaRYMPicDjyeq36o2cTWL4pVacxqTY3kdPkzheB/S0IO8hMBqoMTAGGR1zN3w7c/7so0f3nz768OXDq4e6qY9e9obepnApjb3t8e3tHT2zHSs3L+CdD/yE0zr+yzlvDgx3VhVucTEBNFqIdlCEuoJZwPHI327cOTt8I3/Y1THy8S41PXmUqaKxIZEIUarDUW+PQLSHMggERUCndp99OxPkGxn24lHZGafHcpG/vThx5CCEdlCUk2cq2ir2H73xa9GJE0456XsdzlTsqqx8/FvOTiD+9sTeyEvq2syIvUF4kjgTh8CBLykWXa0Vc9TF5gLP1EBiXWQdBN+PTwaixTR0puiWZWrhneHWB+VLz0v+3Fxf/fqx5+5dCZw95KXagAAd63c96x8/Ym2M1aMs75b+slKR57c3ADtNi8HagdfP5dqp+DRcuzZRGz1RJWOxGNGCaDuGJYVEokTXFBfLtNz3pcmmF889SUh4X+48ndUZJbztPEZN8YKTwRBSmNZeaeHHoA+mHWN5dlNY0TA4Fc9RgmZnV37RtRebZ0Qz3NMyi+e28QkmBtYRQben1R1uFja15R21NnPXszNn+WSA4MwwNyLrHSLOXD6u29jX41Z4/unMhy/nW91mbjIplKigoNS82P7O3qGh0tW+pXamipmBnI22NtbG8FxEUoWGIeZWLdY7Tpffo6kjioOM8mzXzMwL6DCu+fmqcoqKkCVgIJxDg1awMdaxgTkH6FA5NdVzTUuP3CrC+tKPdjz9bVjuJBTmSuXByiIgElx3ubomgbGaU3kj52xkhQZMr8r6R3799coJCCSenTh5p86BaGWIsbKniXl0HDmTTmMgQTXSpBnkDAonwbvO76KTRllkGFEUE3BVXJtMCT3eF9b69vyz+/0l5ZPNX1dXRz4uK3iJM5InzE1tovLG11c/Tk5a6VR1L/z9qXSwd9XtYqEUi6QJCGYwL9WYNzSETDRER0eDrhYyfHzs4LlNp1A8GWnHrl8/Fgwn6J5FuZTDWbydImOV90sTOWYHfHyM7LgMgxQGlRB8LC0c4LWarZHmr8skKitDKvTs7hz61I5P8TFC0g28xtK2p+4xRypCQlJIXiox6qluFb+09WoDLJkh8IHbMoNhzjP66V//xLsdT9U8Fd+e7mvt53f+yweoUTx22TY0yrq9taCgp6MnKKr95eBKvJWR6aFDNI/fvfAk9TgrEx0ajcYhXtTWjYjQoeEvebvuP5FfVlf24oZrnZOSHDoEraZEw0D+A+41Buw3JVUdHRtV4xDlc+lt5x2e9Lg9mSw9//aE3JG9ZTdeXLkDjOKRk2VFOSciwTWtzCnS+DU/KRvtSMR4nygCFPhFTs5wkSPERnu9PfQx6lykOY+ciTMHpZCJo9MZrAwcHaEYEkc8Vee9OxKNuxpDA6eU/zBKM/2otlv+2/mCTipfc/ZNae7Ix9tTEzEx9H245ZJE6uTCx5HckditzdCFl0tvcr99+/b3t6MuBIKzHgKe0ERWTAZdjc7lFhezJnzMzXkkbv30tM9EBrUfuEHIzYycI5+fLUyKcDaSTVCrBFUG7uF7eBlcW3PyPQMuFxKBtJqauaruyc2/3i0scYuzhFVMaftaE97I3JwluKbuX1NFmfv9vSHBPQXJ4zHwun5PauO1zfcZtRQLwCHNYJmb20UoeHFI6qeAOB586Pvkdrlm06u3H2bO3zS5vWgp5EqpUdKhjiHb8vLcvJGFILfjGAWijpeL1+8kPN7UjEDjq1vBfGpjjDUxJO7Kj8zfH7K34vELuEKUEWqQq5p46KDR2N2GFQfR+hgdVUUIuNVMQva7tYX5trXud+hpe/bhvNzuXTl3ipLOF+UchIi7qChn/4nHN3zdjkSGPXLw0FcGoQEptnJ25UGnfNddV4pOatvQ0Ca1WIYdLjNTno0UQYbNM5ewVZAUsY4I46ERtltHU9nxtLeqGs0Hn5rU23URr15x+Xxhf2hoQuJsaU/Bx3clidJERXcWkGdZ0qjmryMj4+9G8trX3qy/+fZm9c3zDkNTHGRVejzxxK0YMZ2dWcxl+RRnZISDdIjm1s/dsxO+W6Xa7dszds/e8PyXf38Zxhql+RdH+0wf8B+DaZ6XYaeC45ib47TcD2mFp21XTTFfb378uvqZJWNxLPpX2zsKbM15BgwOgX29WFa19Zq5ZcqwYfhwSHi/0FvVyQyfiWixnR0vgAEaMiBeICDhO5fCGgfX5h/oJlhap549/+rZo/NjBIqAIuRGU601ewpKLEa7S5q7DcuayogYFzKYo0QdAwKBgAfYXNvPwZJEsDHAO5SFVcQRDSvulDmUe59GIKCbocFW8zjneE4j7DRaVQlIbLkf5FGng8ZH1dsuvLiTXpAeGekqByK76ORhR2BHrpzI3g8CITLfNefiXo26/K4TgY4H0w0dk/ZrBOq7Dp/x2HXi10vKKGUbhA9DhKTzeDgcHUlHSGigFJAk4YQ3kUZsfXpQv7Gw9ULYJVU02oXjXfcozOp9+v6uR4WRQeWJk/2azMnmd+ObCYgDVdSGaAoTUJHmd5vjzdV58BXMbc4dWfv2vElhQ0HuX1rBmRkNYCbjeFw4QjXm5H+ZMXyQyGmmxaneoJX5yy57xsYimrp21NWpY0Y+RsdYUCDTn35yVnDXI5MFdLtjeof0tlW2s7KEzPF3f37/63s0RcC5HbpSeOFptWeGiuIBZ/+04rmtks3xqWm8aQyec4+U2h8Q0hATkyW4ncA9NRjLI1+7FZDB8rSIX30eGtoz+GmtYEoz6MKjV2f7bhobUDZkMGpRpaPM6k1bylT31lS98iUHvIGzxNmUY4yii6/aY70vHk+vsIKOYGqM3+sNcbc+Mck1BKNNRCBcUD+oYTA2SiEOZwLRZ/SVdmB3+R8UbOwj1G/jy+NCXPPTz6jrEpPkjlQeLFI+fBLyHaci0AaRrkddlU/uOk10AIQrMtK3ApB8jSPKqk6Py6ys9hcZKgc+1lBjZyIy6Zn0DLEkMxOBPMXwkUYzMsyREjFG3xHKclrj4l6Rla7rcZK9dd1wZPmTx2Gxj/LjIiKoDVPL0vHmkipbwRSTK8yyv9vZ2c+fst2S8vM+DjVPDq3ndiysVJSM5DZit8zc6TFQeRyPIQZPIFzlp2Aebt++eyTrB4M9PStreVqECqt4yCeGn85kNI6C9DZyPpamd8BIRUuLbK6yz59ltE/+c9b29lyLdKr7++u/tqaqqNzF2b75+2uDJWIjr0V7Z7KR7Pvnzc9T9SpaBKV79aTGROCQsyj0+pLQEs28VamKwSlLdWICv70jvjyK3772fLUzzlPT93xX07N0I0p9vXlNNEVIsuNOjjM3x/O27LjJkRUYZLSJmQtO3lksMvAgxoVY2exxV9iDwmIjlK0g705y268RQDB2UUJjgY1DKaFtlM9oKCt7qNIzQTVgbBOoRCwGr65uGIc3sbxNQkvkKiEgqNTIKQI+Dv46HXHcFeftCg44ce+ussgze7Uhy/L1Vq6szCk7A8Fejsb+4Ww2QhGRqYhAwAFi0MSZYjGPB5rbXwWRKUJK0DamNpcuYkSB4MldPEUMDBs+Wh575sSdJMNRT1IL9JPJdyUgkwUkgUDoOR66vl4uzEpJsQgdaS4pWf32bSG3d7Zk5Pkfg5+StNiZIBLNfRgMHvlY2j53Mtx74QZ479i27p6+m5b79Nr9IvLvz3+48OrpDJLnw5JBhrNvj57ePv8DB/ZoqZgzE1x26rORBans96rvW39FUandIwVJoblL8fR98hxScLhse5vyumrOKwX+x4F7Y/bJtbW1pHqZP6WKa3l307ZehWRJ5XsmhObd7e/n9w0+nx0hqmvzm4bDwhrti+E7UcOyY5V7Mm2Z5bMrbzpZtSCQw1BITgrQPhK4nzFYLA0LZVAxsVe38oYnr2/j7VqWcwkF1KixPsg2FzTaVEfHUSNOWVENKVJVFdVaErE6NIxIRIvA6NTrcAhoOacjA/84WHQj5+DAwZNHHPcXOe2qvHRaGVzTXSfL7iQdBdzk/RkP9Mkb+UefaCdpRHo7lSH06zLp5ipwjNgqAbW1iEwkLpOsgsPh1OgSNDRVNKy2ICS1tTSQCjR1t7L3i1ZOX4bTYy0mGIzPm3c/T46/3nC+l8JmWEj5Q6HjTApIZ9v+/rtw3y6trr7p7SzJW1laWsvXvbozaO0cVFCMNYDawse2wHcM3i+w6ByK9SYp3e+NDeuru9w18/L8xYmatHAwaIIPmBjzjMzAvwxGes+Wz7XMzVW9rsranvrzXvPHXGpoQYGvdu7s4Czqnz/rAT0lm9renqo/pnL9nwd+OjDmBbccnUwXs8woLayGqEmhj11Kyu1uC0/pMjUxz7q69HlvZwAlvbRpqawxlUoprilOY9UHpS+slI6MjBTkjVto+ubPHFdEIF3o8E4GdIIOLJUYqre1aePfR5zBgCTQpyX5hnVFolyAu8bA4INCqQKara+qgJWTR1zVthdhTmNckGi0hKGOpR13JaAx6XKHD2frOwKQDZkQwAc5wO3uhdTb47TywboTVyIhpDt69BxWSSnQVTnI94y2obKGkotGEh2nqIgDmZApQYrFkgw6Wx6H02KT6XSkvs1VjKmCvJziQCZSRDCwNDxRNjT6+1lQPh+6ktWjhS1ZWVvdWxtjLhQ4QdREzSgqN8sid0g7qj8xqjo0dHZ1dSUvKjd3aG3w+dpxHJuNIONqozNVyMdqjpFxelVLX1e/velhWq92lF7rnWnzi4sjxZ0Ke3R2/hYvHMaePWbY+flGYngwmNs88+SsuRZZ/WjVaBa1+y+Yw9abQ1MbY5/kLl1eYJqiAQsxokx9324BW+/6nj3/NDMiiJFIpLk/wShlShA9ERpVzBLU31ukLFI4JKZFkPUvpS/vW1PiW5fmn68VJkfP1bdc96f+8vTB81cX8mLLy7c8SSGPXgwPv6hDHZCXl8D84UJAYQzxRO336trqu3JgKUhHx/ASIL6naTrGKEVViRIsAaFFOsp4tBoAh3QkIVOMuUowVQN0kIChxXU9O1+G1ZWrDASyCuagkzcqsyuPHNl10nH3YZts9FWRo+PJnDJ9R2XDM+due6AB17mcrm2oQzR2drFRpSNwRgi2InwcsQiZmcnWYrNxbHl5thwCLVGioSBbD7kKBTKptw9x6Lgf9n742atnH4Z1vaO5dvVbW6S50WV7S27VlDBrqgGQpu7cXCZVyozqL8lbeDP7fIU/0pu6tLb6KYx+TN5oCnAcsTiYzAsHUVY+uPr333/nNeoWdj0Yyn3YWudnPcY8VX38eJ8P1OdYsN5P6AdL98+jtFSg2fkz5ua2Nzagy41uAdj98U17amNjUNT4+srSSm5vh0HadaPl7bntYplsTjb2rz0uXuTamFqhOU5P7p6toKZFKCRMUzijowJSVb2lp31ifFvvhU83tTurQ9eW5o/b43jh19O8Ym/evPlw/mmQ5e27i8tPkstm3r6Y6bpk6iJBZrJNTQkECOeMMSZYT9pFDSIN44HVaNxfF3JJhJJIkCgFWA6CI6SkgzaM01GQQzHEEqSELvFCGRCwWGMdQ7cLFwr9CgH9jTw5MJB98MaLfNhRAD5ul76Nh74o20M52ynfyQOO17n3e2E47np2wVffw9gF3ndncwVH3mFEJdB/MhHy7J3iwEsPDmrmVXsbotvzl326na+ltq+lQfq73S68evFq5svM2QcxtyhViy2sbdnGRhbXVhjdImyQcYWJnYmJzMnyKSm/Pz6v+fLz0q8FZ/2aSy9cwhnJhFJqA0gFPbY/GVdsB2zvg3//900e6UmP783QnpuxuhYkgUVC41BjY3Bw+LFgfzMXfurlp8lknoqWmcpY8U6B6ltGP0+97s4dGSl9GFquXV4+nhfbtlBqrHI9Ldi/fkNWfD38umxPSsXgUWPkVVqKF+xawtxbM1a/ODe34TW6OEqq3xD42DM7S/gdL+/fTmB29q88KGyPcLkORGQBXzOV37uyjLceeZO7bhnXBW5x3SlFhLEJwsyUTrjKMUCZGmBIWBSNiIGhx+N0HaCLItDTcI+rmSIUTVEIRYANbWB55B4jUyQhmLAzMVhagAdEMMye0g63VjkYgFR3oKojsGd3pOjFlV93eejvFOjwwEDgLtdC34rdHhr6coAgXHnRlYRRhRUhd3g3eHOEhIfkISW4TDYuEwcCHgoEP0qNVqvv8KDjl5WXL1c8LSZnO0tsUH7wvTrx+MurZ281+8rr61k18Mk3hFlCGECBf66ySCj3tL4c399ATeQnR0UthILf8CZ3ttlKUQsXTaVyhQwwlnwoxZ2JnZPV1Z0dn/4ozX0fuvCo4AkAUHhpwqIFE2gEcHWOqWwOxTfw71cjtXDh7mP1nKmpKZAALVXSDcrt9eb5wrZqOEJPeoKC4gtK4QABmWiUdqym2Pk6Cp/X+2htEGuKMiMHm4NbzpLN3V6ee317eu7e6Pa9lBqWzJKqGRX/JtSeyMwbGVkpff7mbtXyIrPfk2nNX8grsJwKHRla7044Ba71qVMxBFAGsFYrMaZhtSNcTDlYAx1jZR0dHXBK9TE2iggXBbbE1BSlpihRM0OZyf0sB69jimw1+O67I2hWNDGGSDSwGWV64q3kKg9mA/J28sqvRTfuFBXBPrG+UmBlZeCPPyqJgGB87Jp/MFBDCRCfvRVFjwvxVrv2Kyn+EBiZ3hOFJ3Jc4OiwcUgxPRPOFAJB1pNDXkUjbOJu9vr6tj59mRukSeWHUPB1w11NRZGwCTvc2LrChDhU9toWhlQhsOk+gixpou01funLP4KuTXlea+js9uuP7xz5OLTaq/vkkDtbMMHvT0ZK+lZDY3Rze3oa+dL+3k/Pv7Xm9fhaGmvrWtl3PV+M1eQ3GKUFa2lRIu9Xx/DDdPe4/1PP7PZU1dRkN4RRlClh/e280JulobF8a7iEVnxT4xeGQtXJYNUFQ2cENmSKIrUOfTPYMRRhpuWeBjaFHSvr8+jy3FbE3O3FuZQxHwZLIJQmxpb2j3pGBeWul66uzQY9iR3vrsqiMvtzS+OZnlTPyXcf+28lOzRa35qguRwwg+U9ZxdkrRUJWhxBgjBzcbHBYA2VUBIUyijFJIVkgFCUV7BBKSqiTFGKOxXCqf1gaqqm5uIRIxJhU3WtUGYEgg1G7kRR9o+wfwKvI1eKjgCgna2kfDowe0Ckr6wD463yOSUlfUP47wP62UkLJjoOd1zVbPzaV0dGZvPyuj0yETg2PZMtj2hyFfH8g4FjNGOrSbQ1/W7WtT7v06QyJ62Zu3uO12lcPNL6bOZL1+U+UvGczKiFRGihyOyKi1sEQgsqVbv1/vyXh3mJAcm6qdUjoZ2d48DNXy5tVZTTY06OfFzPK+lYKy23jkpM9KvO6+y8/HS1o923VkXPIKaWE1f4xDdOfMq0BrvhblmSmMzQXE3FK5pqsaqqPi9vfS/Z/D66vTHdPJuY2F4Qn0q11k1t7+srKPGNzzMC0XcMpEJNTdWfQmknf3Bt5GbpMnTK8HBwiED9vd5qLl9cJNU7q6TYpfgwbK0XQhOpFgndUeOx0IdbWwuYnsIsir1ndXy5paDFR/h6fNMyZOJWQ0NciPwh9wM/qbiYShAIuoHE1AWLBdvNhIbRoQVgsBwOi0XiIBGwRCcxRqEUEapoY7UfYCUVhTOXEExBXuA4JrfxeCQRi0bJnbzhVHmyMvvIkZ1d/CsnwFHYtTdwIPvwTjo+EIixMfXQCPxRTl7uR0XX4ae7FWz2isxMOoM0e0bWezrzcrOQKjw6nYwLefVhpo7MBhqEjrERGKqHOJy9fOFylL3mUESVhe/FiyGXTnc97Zp51BdmbztWb+Jc418jY8mA32QJbZm3U1tv3n/1cjA1OTk5pLPzWqL08+bXr39/XZ1dCG3Oyy19M/LmzdpSbrl1I5/fWd1ZkBc/crc5iWG2p77WxMTeUzu0v+nl+fPndX0S8dcmMjgWmolcYc3cVFXV8uuqqa13tvXTr8eZlqdCh3R1IfwtGBpqDVKyroiq0gLEuubY9RbZ3cnE8Shp5+ws2BlVx/5foesbG3PLn5v/s9ONU8agQNH1FlCIkrtAindTNdtWh9rjSVlgcpCqqhITpfV20K5bhLYCUsyEZqPDJT0t9z0oOh3mAzIZR8aJsESsyBhtgzSGLkczt8vw4dBILooKcFfsLNIB/7lzhhRM6SIJ0hRFR7BN9bEmaCzahGYil32yErpcZSAw2kVQoN8c956oG1AO/PEwLIsfDqlwVDJ0zSfKKUoU5VT1dymaKcBOg5LlREJ1Kp/vmdj9GtZ+M8nsfyg1PXr1VpHNpiMlmEaiegjR4cHl+adhVM10e4Zb/qWLdU6YusjHXfGwJXKqeOO9F8/odVRWVguKzIIwwSK18eaDCy/nX4Zd83zCFJZLp0rGN7+uf42tXojt7+8cXM1bWX2zECW1oCZK+dXx4wX9uZvvYrH/2pPCQOK11bWrI+MuloVh9rXw/fgT5ubUUJ6Zc8v2jnob7V4veVdOMaB0Sxu0qxfSKxyse3p8Hzz0K+2IjZCYBUOHS+MKYb2vE9hr/uDg6lTuO0gpYHc5vH5jens89/f/TM952RmwjGTchilA+alcjgWzRzcvqrk8KJHB8AyN9aQI7IwIYzzA7Slz5sWUgJhrUXWRBmT2Tmlw7u4IOk6PLUYrmaKM4eGIJP5jKuQMliwag+EogeUIe8KwbO8CWsFGDqEGVwQWyVaUnHYo3M0wtZE4q7DlBrIHlLIrs7Odruy/c+XXFzmuR06ePK0PNIK+khJqAIS2MdZRFYVCH/5hZ6VI3lm9KFCAD0jUjEm0iGngCnjBZCMyW43m1zT8oS7+EiKTLdHUvOZNC/Gte3ihNLawoh3Y7NSQsDBdE+unTb90nW3izplPkzrHm9c3c7uN7MztKNFUzWvVvfdnHs1/ahv/e80vNjGqZKSzOfTru4jcvM6o5h199CY3OavK1lpTs7q6eb3kL1gfGrdUcIkm4DhPnqSfH24ztAILzr/6U1eMuUFjMtlLtgHLi1ktr0uam0sm7y7bljAt8JqrbQ+STvkttHc9fT7TeiG/bXKo0L6Y0q+b2J0oZVKpUXkdpVEl38ODYb8xzd1odLJkfIi5QZpLYbWk+LN8LJYpo1QQ3dS88rvgSDR3qMeXL5Q+7E9YnGalHWtpKW4BCilFVkWKti48n2xmxjNVcZYD0xfHPsQmI0wRxBCE+ComQBWRSQYwg1tLstdB7KgDkHyGHgAMaJzWkUNgRCg5tmkmxspXWyLSkbCBzR4A8kARfnHFkYOgCXKu6B854aShPPAj8IxKqj+q7o/MttFJgiBWaUdbwz9XUHZSMmCoW1+7yo2JmYi2Swv3B5Bcp+9sK3iIl5vgB9Kppy7qep/STG3zbT0T5vaLb2R1JPFUV6Gj54PWhzNvzwYNcYunuu+OjxQ0UwUyHx7FHGK51L55mPherq38+9/PZ+NLmkeiYIPr42xe93hJXvOboSGg5oVZWVGacZ3jm+t//jn5cf1dlosKj4xDprfvDQtz+Pnnf/2s5X/25VoqIaMBGk/L3CjYpBTbu0/6u7ub33V3J+J9NFfa25KuabYWXu6af9V0/3KY35k6KmtbKqVSLWzhko/KW1j9tDaynJbmDjWabm7OC5r9lruYksIZ89pD8PEU1guXhYJoT1sL24jlu8wmt9Ce+I6HS0uFTFZNsJHMbu51FUUmE2I1k9pbA8x+IqsgcP5a8j8fAmiFrGLqhfFQ0MGjIUc2gDAaKa7N8KEwUQS6qRezJGi3CC3afRo27kTsHxDQ125bRTipKeig2GYouR9/HIA/ldDpsgcGbtzZvf+Oq77+wGGR/sA/dEAsHBywsanIgd9eAXIdbpifFZSwyAxGtDhaLKaJRDFCHg5aLPtqqoaThltRpJ+qorw83jM5BGug7eaQ7qcZxLfWPeVwkcO4WLfb7Q/furNNvvllCXwq03Z9pLmZIWtpkRULT13jw6L88bDBh59eXp5/+ccff//9rae/pHfhIx+EcknowuzIeHdWFjdLyudf6/6zBGyBd5uf/5omm2WS8X98C02uvnnu50M/7+H3XnjZyxnjMaRiXvHG3FxL1ujixtzGcsldT4rQguGZdzxWVzPs6fmnpe0LS4V90ebB4TWyCS7XwrIBbnsqNM6Sy/ODi+H/X87i9OT26LYPflw2IIw5AybPYgiEUHIkidIihIyi3vhMHzioof2wv+9nPa1ynTWWMgqmhMyTEhQb+1Cb808FMoSa/jwc9H06z9/cKyAyAYuCiYSNgPHEjpUh9vGMwNsHBODLIwCWpIkkjrvRaBQ7U4SRmOLxHA84D2ZqOkeBLAU6O/CKU87JQFjcOnHu6K93cgIPi9DZP/4DindYVSnf8QzqMNxm8lAhORAeiv7IWjGS7iPOYGSIGXZ29GAwEYjW/BCit0PcaQ+5f5lcigjxsDnnOuQbRI3Q9qZ5W1mJRR4m3n4PrNvy90bmhzVZMZnd6yPrzZtZMvhI166d0oznH0//2n4ttOPvLx+W1j58+fRxnN+/9VlqmzW1BVdEe0NWCxRzuftiIrNka+rdZN7m1J9/wtWA3D346bxv79k+vUOHDAZ7e8EfclahR8OEVXy9hlW1uLi9XT9ZoJkcwKHULyYmOGh2lfm1P+hrOpvOJ8OGT01N1sibTk9BBjeLMiXN7ZbmDa521ntpgbxLae9rZOZNMn83qqnxD3Y/4M8AeIkiQAi4ss9btsteHJOSqHI+nxnU8eDBA1uv67Iau/p7OH8fmZGFdVtvm7a8vB7O3wwhQfKMIKAyMrCPi8CLEWz5Q3J6WvJybJ6KwKfWAFtuEWGRUMVm79TltI7jaX3HsDIdAwSdgCkfL0cZehhCgSph6gncBVxCINRqAL3rzuPKAeBPsw86KSmCR6SoX+ltiLdRU/sBXv9QUDNQQ0mMwN5BIunFxWJgL1mZbD0thoa3IcYjRFlX+Ycf7C2kVIsodcug9KNWFgkMOuM0LSZEpOR7Id2q4uVw2/7IAJN3/dLmzdDQqCmKrIab3ADLo7qaQSsj5Z0gFuZ77//7y3//+JYLCbXFFKWqaqqzuzNa1lJ8XWg72j3J51cJpzo7X3/f/D7tgvJrnZ9f65u/eY2td6CtLzU1fuYX5wM4HA+e6vXrsvrXVcvTFuOxyYlUT8qGgGkbEeQbdzG2/cKjsxwDs30EgYAlXHu5FkqJYUQLhdJxqm3uykrvaEtwynX/lALNqPK29nXKAf9jwJCkCaIKcuMp9kiBoGV0dHRrVGoVVZ7I75by/UJvXk4/MCa8nuavEk5OS7NLhvbeZOEOdizOX0WBbYZTwZFVDPAEHx9zOE7uWmwcHI5MBMIuI+CWPSwuU1HyivJsibLHXrcu8MlfuHlLUggcfNJRFNig5/5H0nlHNZmlYZyQhAAhJAZMQhICARJKSEhCCEWaoYTeIgiR3gQUEKRIEQVXA4IgihQVFRRBqgwKSFFUqjQHZhZFLGOv6+q447jlnH2z+x0N/MXh8J5773uf93l+n4om6KQOx7YU7AQ8wj5N7atGZ47u3BMDadOCm5gDsIjUMZmehk3eqvqaV0FYNUNjAGgBYi0M7Cxwrrm5rrn+rpQANdYlTycUcYSdo755sxlNICYLw8X0VBYez2fh6nWuB9emX3KIXlvXPdo9YxuuRfAZ5okWIobId61gqFl/Jz4+XQijALDwBkUsN8qXPv/nP/95XFM9DKnv5vp8H7AcZh+HWG8z7fH82ycDCQl34V/s6x//7IrRmKgJXGrpr0AGeKCWsiQjQXPRdF9fA3OIX49lPJ9yb56cFTHIyekjydI6rpQk0MGS6BJ5EEwFghJ7l1r7YtOG/vxjpqNolEaFIHnCp9GIovfD2dkJxOPPyVkJ3PaH5QNOxpCn0xtzSSmuKedRSVNU6rdZ6pspJi2UTObS0mLJHV0b8yuMFiHTJsQVkq7+REYyQ+xqfrqtbfdpgCDsxRmD1o+j4OLGbUJwKioGdq6udghTDoeghYzkp0m8S7EsVa28SE3GScCy2ArczvxyCWvmJQ6s0i+ECqlY7jzy06GdcEOFrQ6uP/pNVYXAS/jl0LGf9mgD4kplEwjimZ62mzy3xhw4pYGCWDcuTDkMVqFgkJGqFjbj8RYhrjK63DZS1TudVqG/+a+ZRCLYifCsyclFEn7SKY8TZkqIPHHpMvb5CgT9Xm/0cKji6ruvX5eOvvexGds/Fud/XXY91SVeemsoKCWNfP+gvKf749eWNCnNx2eYSisaSmtWSvs2+Uzh5/4BoDL1JKTFLrz+8uM7eSm2piarX97PQsBJnHJS6N3e391yZSrEFYcbG6sbrrOpo9ZxG5LFsnQJn1+chrUXaxCFlY058gePznStBQ08GSBnzc197n/6+UEr1SX/y5fvt86eFW3fTgVgUkflcOVA78BMPxZsPh42cVzvwPM9zVbNK4teTnVM3KKIRyMLeVKppKN0fun28rvpabnFfkqIBVNMr7ljZYEzb1M+BgE7XF2Vvw8OaWGzY38IBSQxghXSwsoi18UuDwm2Z27rGhGDRIkZgTkMAV/GTI6+cgK6N/S5tXMfzhXSVQr2HNuzb+eRI8qj6Oo2TecmZ33nnXsO79LV3Xq4AKylB9Dqm1TQaqoCb22Mg0OmQJiKxyLzIk2RscW2qXSiemKxqeve+Mu64cFO6mAEU9/E46fLZHDhBk6NPV7MROfVu8N0KAxjT2LZ07kKRfFF4Qq+2aJuvZL+3Hg7GNX9c+PS0xrY7jCzPNgwUtGdlRUUeKVEIsyXuufDJAfACS6v+2h9o7duJbyd6+5+Otcgqh79AVnvW8QsCaS225fpjvCn2KFekZwcGtTY3aIfaeM/W5dddwOQR15vOlPFBCcOD+J6fCZrUkRPPPhxa2XV8tx0ztB86SiMsB+2lHd//fr1LV30/dOX4tdnF+xs+KkdqQnSlfXAnByGm9D4eIAXkysVSw+6ayUtLpolJZnf8KqrptFSaSKqKEFKTmy/8Gy68dV52MKMLQREOlk6ziJRN8ESApRCwPbtxv4yG9Ncpo3Nfmh5YYSCREKzoGqTT6umYvmlvQwBGq0v9E6NwpswCawot11I5YGiXxjV1ARb3E6YpJYU/LQTbkJbHXY6N+mDR+uYoYmz5bEjRzTPHb6yDYOCYQVCRftqYHt//+2BJ+WJpWQNGks8OjQzM1+cFdpFj6+9I8BqsMX65/Q12Pzk9GQ2C5sspIsF3yCAQ3C/wzatPRGsTmRba/SE3ian/PFQWNnBt4J8+9jxvRRIR8XdyWrgsUyJ5Ijy5DvpIzUV/U8jsmITfGju1DiIAlV3UKsTyCnC8fxmycb5C0uf0xIqb43e+vH9zcr6rZGsuZn7yfhrP5vg0w/aJpNDDwbdj6A6UnAhdc0ZxmPNiyJuOj5jyp9fn+EezxZUKlKrGKBnuM0MPRk429EpKe36cyPo1sbLua9f54rW775R3HqfeJdEG6Gnkencygl5kE7btR1a2/ntvSROvTQ3xODG1N3UhLq208buLlSaVOpDrbPJTk0kyc+fGXxwcjVdz1UWTia5c4fF8QxTg4AALdgfA1w5FVgb6ORy91tYmKtBOEgLuoW8WpkYGUnAVwUm67NUxVgNoj4Btro8DYaGOUlHe7NKoV+TszNLZQ/o1seOHC7Y6RezZWcBrB9rlCPm1CbPc5YFuoUFBXswGAjfH4AuDtN1f7mlrPzpw/Ly1tszEVx66czQ2SIGXcgAmyhbw5DNNnI2uS6LJ4YLZGy+txE2g/WNhSeysSwcztoaK48+YWaWKlaE1rzdgL6Zbux6PGTv2N7j+4+7jN8BnhI0uiPkrBRAH41Ie172pqTVx/m4g5pqlTsrorqIQEWI22uVVhNYttRN6nyvkLz+5w9U1+2oNHb4QHn5ld7Q6NQGRupIBNl24vEqPcN4715QaxafVy8yOWk8FzGTNUIijdAkEQusybUUt8G5J//4x0All1zzsP3xw9IEaJcfv/z6ZCBiff3Np0oRTSzmpcOP4+66dIkE25QOsXE5UWDP59sb47Ld7d2nvK6ZM/kuWB8arT7bisSV9Lqvvjrfsvrx4/lgHEsg8T8eZ68cY9lQdlBwOBtXLQvXEIqxK3wNAYl7k52HnQGIy/EyVS2kPRZLzEqW4OnOJHsCwQImSEQiBoHANmWq+TWdc/Y0gQgkDBuu7tm3ZQtsdIeiCw2trVEm1vpGx3Qtd0LS/pS2hjZgMTereIb6VXUvdfefP//wyf3liRwiPzW062xxKaNLwfcPcUXCygNuE4gZ7Hg2OMmk6cliL9a3YSkey9Syo+g7BXvTUde8zpE1bQMvNnZrMKeMs8eSKGPZNmMW4/V3aiZGIZPCS00L52alV6eUZ43U5/PEx4/bHIdLuuLWynvFurvUBng6UeQnlXgSeHHe//Mfi+capPUWYSMTPTWx3llZyfx4/GSyMOvgUhYBjPNjgNr5tCImuU+5+1ug7KVikjg9PYppslJxsR+mBX8bKoepUE+spPjhk76EWMn88ufHj5+Wc6s/rceOKmLJUmEyj0YnH2QZXJvEXmwpXw0i8pEhLs1mOI/dSUk3jG04Nj4+eJIVVTpwITFoYrUxaPnR9MdX07pEPC8EhAKkqVaeoyPOMQQ6BJCRt/vqUWxCQkJycy0oCAScRHk2YiIyOJ4GhgZyg1As4OOhPnlIEolsuUVXzcihycjI0tLZyEQF7qkHDtjuuarp4GB5aPDFEYgyoq9uc3hxb9vVq3A6GWo6ZG6G+nwo6z7fOCEv675wP6j9YU+V0JnYd7Y0pWsgNFVMsqLo5eWZRCrhdKa1eWHXPVksvncy6ZvjN4KXI8FES4/CxpizptDXFi9OkBlZbx8sOS+cZbqaeiXZ+NtQfJ3CRrLKyDReer0UHwZiMH+8fhzAOj4Z2dnHwWpgkT9UBDCs0beK7HGGOLUUoq3ctVujP/7t+K2LAVcyxoUan0Upz5vPqRVzgTk1IvHMsLE6DjyXuvVOBt/VEWdh4T7l5CgmEvkmfO+yoJzWoRlw4HX3l4M6nQZziFZFZUfRzNPPL59sKLKzF+3JabRhvhjPT52USiELNZNIbr04VyPrGOFkOJrjbbWv/fzz6RtWuBAcxXWcFts7EVEzIe8FUOmVd4/eXcH6u+7g0NLjwiwovjhHZUoSwGV6kHhRupJwTCzBGKdqAdgGzsrw9TBVQjCHKmiIYrHcCZEoJIJiyraVy91MjAph+ThYWvpZqmRq79M+ATqP5rYDp05pHrsKl6HMTMy2Pb8Cmgdzah+wK07pHtmXGXobapOYk3Oh7In8zHJvQwq4IdbICd4LUj7H2CbXzrQ2WAudZI6CK2wwMhhlgg1neXk5OqJQjuYIeDT41wkoKJCgooHBWP79ce+MwNc45aVby9zEGE/NIjjemych0+6Mx8nC7qS7wBiP4yLzCfnL8b02+/9S3TkwA5JacfnfYtOE+MminOKhDyai0a5K9GQoPfw6k5cSb8zEy2Q6WPbwJImekowncJJFMHLLoMb2pjDBCxRc75KR5BhHBBu2WFjTCvLc6Pu/zZwtTpHQaAkdE0UpRX2vYyMilp5uzBSNjQXsxnHi+Px0PgmLx6eT+4omykvJiYEcgozjj6VLLny8Yp3U5kuiWo05BtjwY4slvKjQ0sTWlMCgIHAETp/jWGgh7IL5FmASA+QSZbvH9gAPPS0cFMogQI/CROa5Iv05tfxYoTj4Om6zKlYgjBJax+USImHIiiIJid6X3GzVNS3PaRgWWvoVAphv604oyjGHPcc0Mdu01a5mgnygtm3nHpVNp+A5oHF569Zfd2KCelvdom0Tq+QX7ru5lV0MbLUVgGVMKsXac4xxmiVb4d6aB1I3BSLM15E2eTawo+LQXmZJXsbmQKjb7OV5IhiNQK+ESlL5CzN//v50o4+49PLzH48/fvTuv0wl1V4nAvEvnV9dHE7zsTC14bj4x7u47h/7ywM5R/jx82og0Z0X0aWoZNDXfmtd+BLFpI0OLE+KWPg77DB8bD07iwagMr5UCoPqmosTUbtaPtZAaTtrJOT42DgmSepv7AuEq5Q04L7+GFBUxn4aPVvc0RcrFUnT+iLkS2BSAENEEbQ9RS4wmjVwrSXh+e5Ulo6OgJUclFJaadvaxY1QxLnze5cuTE/bQvCVRBtmTuFHaRFpklEuNy0xojho9Uoro3d6lWBqbBxiL8vFBXhsxynbOEoIBVaRch0ZQIm0KGBWAocIj8vaJGOrIpOTiViWzJ6gnH6rEtgaGE/Brl2G25ThbwdnKJC37hFLP51j24BGduiYkum7M1PJjoXODVpsSHxpFvbKWwWa3rpBbg3CGtuq+xf2nAw8Iw8KF2hgOfHxFq42FnbRjwZPYPJM1VTQOC01MIQhObVsEyQywzHJ3Ivk5etIgfNRVXU3gtlHHpHxui4+7b/fM1+69GBmYO7l7yfnXpJrySA2cNIrIPIxknbXKizOh5M7bmO6393t968Pzn/8+LGchIttSAykf1AszIOEurK+wuhKmcWG+FuY5tpXiBJ++01BhNPPxGtlrSJltfH3ly/fnQmxIh4cGZGkkUguuYQbOB6Wvwj0ItbdH286O78vLHR2cnlwAlTHKqRBPTNPeypHh4p/ixjNV9rrgJVgT/X3oUalCDiitDQyL7WsPYKY60ohNN5vnFiu0fadcs+PGxbFFhdLQie6K0XAP+mUn+9fvlj+sAwJlx5KmCw316NNWRucnR5ASXboBVCMcUqCTAAiUhfgH1sGr+h678ohGnrbEjWs1Qmmqkq+rLYF3gQAUZYYhybLJk1NZyNNFRB4ToCGsO+nF0oo5k/7lA2dYSYwRBBonbXomzsxxNv9MVHJxBN0cvj1yxWXbl+44Hb/cclEQ6i1E1RCVYtip+J5tKSk5LI2RGNVCZtUkpBmMrYJU4xnE8zMHY1h4ThZRJrv3o1AzfK8LzFCNwLX5GX3y9rLl3vOBPY/bjn/tGZ86WC9TFYTS991Od4HZFF3kIBwKnrH2S8hSvDu3fTXP8/iwaJVWrrwemWhv6hTtJLax/3iiMJRTCP9Uf61rFtDG6Wk3FyKGf2S/Mzc57nzj/sj3PG0tDsQ9jVV9QdWC4GHt8hAeDz/VD18t/ONYmG9msb1EdFI1L5yMgzrlpc7FENdQDybhYH3fjMCk8p35/fJDhYR9XUqeCReUMpMlaeZGSCDq7IO0uoWXZrz3anUNAABzyz3355MiOgf6FpaetXd37PLCadHcXS1QXgAUDoAhwvZr6xQCEwHDXZ7sAER4fACPBrPfv1l8Nmj7vut4TrkYCwG/D0sL7SjfTCSTzfac8zQwRmoppaWhpirKkCtALAvtNo3fwVE6eGrL8q27DQE9RrQfZkOO2NWj0SlkoVYtgCSpyeSk9knqlI2jsrPl51sSJZx8nCuAZSA7ZHpl05uLQC3ihoB4YtQAc8pK87fJR6PBcjwt0Vl8gyHQrRtVjl9DYGmZyXO21YuPV1+udw48TAroqd77tVynHfL5VpicgUvsKUkTqxwwb+59YWJMLAbb2l89/Hrx0ePXj0o/9QZSK/qDppfez1fHFH8/u3Qwo/FbyGwMm2cVr7/rWtj6G8iGwpBy/HO9MvpB/3yubmZiUZbQXr9OI1jr7Xf2DfJi2AR5262Jlq/++VNbE//QgLNp46a70MVwThIFDFf1NlX1MW9mw8Isr03mpuZPkxCfFCPm6QUFppMENpVWt7f3xKTnpourRHKqIuzMD69u6JQ9JWC2F5eFNHXVb68NPfuyvTyBxMYdVPMKfu3Q4H0PIAqB0eQ3nY9DyiY+k1LzLEXkFj85cXNZ9BRyHcFFppgCURPdWsnpjWKydRGaXyI3qK7U9Nwmzpm2zbMVWsVoFpow1mzD5A8L+7dfHbsxc1j2zDaBzL1Dxw4sE+z0K3QSCBIjWWDHfUET2DLgHBEf4yuPMgbCBW1rgF2AXbgILq8xSG84ESwmnawCloFlFpzM7wGAZwtZmizRaCBXUMkmQGv3Andhja4sWsgi/6h54/y/o2W4rSUCyBwdrdTs9ofpJMIQm73x1cVqamCBUXRa5IWwpW83Hj+0culd69KHrmFhib2ld7uuh0637smWlubf/991gsH57Ce8eTG+4udZ3/7ly1z/aGvL7pk6Un3RNWVzy1zrxouVViNx0GQxThELymJJQPJTx4KSt5A99LndhqJRp0dTsi3HxbR1rnF5cvzHUW0/L8nbd9OmXLPYLLMvPzF5ECJJNXFnSQIvXD7dvlAT3w8m9NcN4U3N86erfZJEFUucBMSRH2KIYWidH4Z2sILF8sgkcokJOkhAgBDskPvf7WBz4D9EALnn7j57JdfXty7d2/wxa+D924OBqbaaqJQKA4wylgsaxZWU91aP6rKz2/PEU3tTABhYzIxKph90LVlAmexoADYiy/23Du85SqQso9dsTwwmVMYGkQXOtN1JHSIDIddZ7hNXN4aU1ajmwUcuNwwMOd5gFDrKrt0edvly5HB18Py1JwQm9XsoIk08XJEmfuixFgzEllH3wBNMUVamGrh0NbFPd6XbAM/d7enZNkK29sbQovabd0ev3ugifF7WfLwz99XWyLO/hZx6/WbN2Y36sgHT7ZC9nCw8d5BonUUADPXAtdLu3J4ZBfhP78vGkAS286UmlCkiF0YmB/6rbhPJ8mYdEEuITMuNbZMP55eLYkH0E4kJ25HCKBjvWREIoA/YhMSWrrb+3v4VnV1VBF3uE6UEtHXXxNRPi8SNc/63Did5GjsBfDDJJP4OJ84mTuJxMbzaO05t+VV43EcTroP+BDafsYNiyoHiJ9G17k+Lj6jCvAUR1zsfrhR/nJaI7wBpQU6NmRooS4GMNRog0IB1sdDy9at5N6LkqNnIAp8OPpQjG70LgaYslD69kgTE09NlAkwLMLPRREtIfStCfdRjJKZoHL16lXtq6f2bYOz53DBvXt7jh4KNNQuOPLimd8mdbrOOSMjiSY2PKojWAMfjNQJzAo/wYBuzpZYHxYMRkhVPT0wFOaxr6tDsDtPO1ILAVMjnGnYndpgR0doEZxILCds1WV0gC9YT0FrRyMyOpMvn7wU+HhpvjULAsntn/8YmhlaejVYcPLxy0erq69+fzftLQIcXKxi/UNRWFZFeNCD3gervWd0ZSZChphH/jD8RtGbIHLp/CfXqe3n3b4Iqy8KRQNX9Pbt3wCl6afI6H7llgriKDmcPLA811t73NWqjgrp0WsAX/YS3qpMWygVdvW3t/Y/Pi92n31enf+cmh8RG1vMHVHE+jTDulg8HUChJPn6mifhmJywXJmG1+IiniaQpGbdl6s7qsni/ePHCY6IRX7oaE2nFIao/mM+ioTKLojaXSyen9/oBgQtFovWU9ntoad8tYEBxMx36ykXkYedN+RNB6Oj3XICDwdWXboEpIuoVBOUk5MTMjgSi1FnmWFtvZONDDWBDqMc9UCBTDAqyvMHuukDcAgB6PeXmKNHcxyOHYI1uO0UKgoP7ndeGJKI55iCqsY+l3hZw/B6BSO8lqMOQQbY3RBKNu/mSM1tQLYyhVYbsRlm8JGQckDiCHACIRDmFDOsKRCWEZs9wH2K1jINy2UnBz2R99ZkVcSzW1dbN/6UM4L+tTr3cqnsZPTBmsbzR1Gz66Ofbl248vCP+722+IrWnvbekrkrzmg1VhyRTxqGwCMpw17GFZn9nHTNwLFZJiHHphLPDpR2Xnw73+W0da6xwl/aMCFkJzeQhbQ4K5w/n2mOuAavF/AVd1a+UfSv9gyQU2YuQJcumgWQSHZ+R0fKAF/0iducnf33WXDea5nr+QKewj0oSqOWT/Vn4lPJRMYuRk1rIwgSSP/6O2wZKa2mWDiSQB0m1mVQedBml/bFKhS34L6WmEgkNkYb7IZRN1QGKrQbmmt4gAZgoHvv2S9uMW5ujYUxR1ubdBnhgnAjJ1dosCM9AUHPgl7BTN+TfDDab1eTMwa9CXY2Tyw009BbQ4X27QPOjp+f25mYksOWMcf2HQaaubaGhgmLqa2qiswDJpWaBr2CvS94PP46+zok68AfYhqinD3t3ow8cZkNzjykmpIEbKAKQQdVU1UzfdymNjTKFQIDIOsanDbQ8wXNQw0ZhhQLB7oeZ9HSK2on10RdRfI+SfHF7vaIg1sFJ21TWhqfL1a/X7n9+9eXT58+7TcSkAfKP//n6zu3LWhKSCSfy/u2Irb3Mvb/uxRvBmSCkNHXnR0JvDtFf0Z0vf2jBWvr1pgeD9fAsvYHEUG8ZLxxiNcNAjHSzNj3ml4SejFBBOp1T4609GF3a2J56rCPz2KdC41b00KjrQPDaVZp1XY1B1YzPF5RUST/DHuOvZRLIzFacyQQPY1n4vzZcJmWpjEY9eM+w9nPFzNWRFQuuXKhc6FrZuPsb2vgTokm60FtlFVRlsUDPpXLCbHJ+crRkpxdcrecmJJHV7b6JetgnYmqqgAns9axRltjNVj6hp7Wft4xOoY/3dPcpA1TUn0jFcypTChP5inA/R7bE1NYVub24uZPNyFJnGmNPqWqhiGoqaqpmetLUzs0dbvTrpOFAqPg2mDwzGsHq1rAMHVzW5sqcOFOYKzV2WHQWKC11DbZ4QhmZuYUU9XNajB+Z0MHtxvhYXDaztxuh7lrGFWcSv7woPFWzcHwE+ujK6KutVBGUKP1JvLjS0gZI52/MCXqiCUPLm10P1w6A/Ipr+v3h39CAN6Nz2G8rcE7DpNZEC+0l65cu9amgmxI6RQBmDdi6OLF0PmhzrMDPbKwOCsmvkHeUNM3U15pfwNGd1Yu/r7XPAj2GaRKUcRyjVDAeFiektKVYTzrM/v3Zh9qak3am7rm5mYIe336VA3pFeUKItQiCTiKlutz8crwZFSXPOg6xcQY52saFqzFGQf4M7A1Zv9iYywGFIqUVv3pLrf0y+jZW4riDxPvIlQR0MFBZQygQCBn71Y+dL+F21VVObfPPBocXH12tEmAJ7EF+mogb6MxBDNMMFaJLz3obG30q+6hm78ewah76l9Vx6jA+jkAz1VoFQqgxTjTGj14P2ZXVWKTISjgWOdBI78S7TwtTFRTaeKAW0Pyh9LEUawVsjbWxRRs88r3cwRsp2hHgk6gLgvefAABbx0AJ6OjuR5saKaozWisPfQKeptUfkaonEaj1Ci5YS6yKC5d3NorLG1YWp24PTVZvNxIhsu6JGu1Ic4fX8s0cXzzJTax1G1CPtB/4XxjWfnG0pOvH+c+vntw/+FTxuKNySdHxVNOxl6In9uMk76AHMDHk0gLo31FRUW/vS8uLY5w8ed4LfLrcnNriWAXMTbG4YxdcQE/e+BMHDMqo+hBEp69sLxGWsl7fsMiHyzICRYEfP5dY/cEn7H8u535IsAjQU/hCy4pU1OWuI65uA6sRPKFIHu0OZxOOFOkL9MlHigX4/VUUjP17nockZfGfdO5UPm9euXLQmJKqVuOUEdZGlhFsNO1KU8i+I83IkYV2n4IHHwGtLJnR8/pYLEaTC+1TYhNLDwBBXKymjrWyBlj6HDz14KCwzsx6tuIRibWKoCDgSfz2DbtI4e2/HQvp6mgpDVIvqu/1cg0WO1S1fSZR9NHHXQyP5RWNXQxHASpfcIUflgtO94fmjh4exA0KCoqkZfZeXZqGpdRqgbgLMEhXQMQBgg7c4u806gyIZxEBCfE7jaEHgJthkOKvDnSUQlZkorlpeXIZz6slP7xQJJGn+gipiXTXHKpBAtKSP7dWRP7tJSs8pbAxJiJ9ofwbqavnwcf/H4xhzs5dWOxdaN7aopD0XMU0CJJC3i+zH9SXL2gGF0Irez7LUIojeP4ey1KfwuyF4v9gZ1oEWLnq7dDL+m0o7GZl9SHROfxTHjtDJOMZkg++NxN4yl88tet/vKXuJoUSZ8oITt7zBxeWHQaRqDwg+qxwEoU0RnJad5EAtrM3Nc8hACpzDvp6cDwAepmRh3Myrm8hFjFl+9f/vljvfO1SOyElUQY71auIHNVBHwa6CkrZZBhpE9sKtxVcuV+o5v8ftmkvQaToA/oOISaOhKlZgI5b3V9jOexaMvorQ4Fhw/t1DTy1Edpg3Pnr8rnAERQwCfSpLnPITowsVH+brqkSa5TogwkPToDlBlPb1Cbok7lxROdowx5d+7U5lr552khVAwMNh/YpA9sHgRa24GNVWJmVbTy1PLycNBXI1XRzvaoJANUmHKRI0BSQKkxw9gL/a3k9DvxHPDQPA7idhUpFriBq7bIqWEBU8olhcF0IuMvUyx6h27r0/6ck+0XJlJ6355/+LS/h4hKcno+9e/E23TClFRqz/okyReL8cPUqZWozlHg/opE+Vx6ZKR/HMeKJFnNUfQ0EigUf9cQj9NmXqe3w5DAaXgy3YeItxeProR+qGwlubv4gGG0b3hSDFgfl9i+jgnam4RmEON8k07rUewA7kcwY3p9WyHhvWt0xVJVM0fzACTBHO3KAfG8thY09zovOMQSEhbuxv74/uXN3xf/Xu1jf7ptv55y2r0bMTEYbafc43bD02bgJRbQ3dyOllTpbskpmS6JJrBQILMgwPILKo8n0fKEhrq2g/NWvwIHh5iYQ1utIesDwXxYQMoH0iaaJ7YUHAO7/Fa/Qsb04KN3JedL7g0+ejb46PAvvwz62eqEDsSq2yB1AyW1wbJg00gwGENIfjM8myKDg1VVIjHa0DsEw+6rHLub2tnEWWSqA50eTXE0gIGsKqLNjIPngCm5a6YsKIsNFA532kV5snRlZTSU3vsy3V0kMIkEpJItxMEoe2FCkxZedPHxfOVyf5lEOPT0wf3S2CC52fDz2X9/c3JMmsKuzdDNaqkJogRRc8Y38eh7RSWpTip8/UNkbo4zm5oayAIl4HEZlXiwFl5FtAgIMN8pKmlyis8T25tMcm0ft0cMnOTbZDe73O0E8yjAS/J93H2ybfJLLQJAdjaDBtTCxh+Snr5JLB6+VnbwApacpe1lZq4FoQMbDj6KN54bd6c+w8v3Rp145e6buwvvP32frZulSSM6HZXbGmvTdkLj+RYH+F7Low0ec1ZyYWCZW8xWS8MTB2NKSnSRLBQCoYpWx+pDlote6GcNpCtd2yaAWpzw8zuB2YcBw6i2yl//XyG4DWljQM3ONLQ8YmhYeMbt8AsAJty7d/TQ4OCho788647x1snpoys0bINSa68jId5tqmS6mMKCARHHTk2ZDlJBgl5uorI5CbEZtFa4tzqZqSI2qzjlGqusTRD9bdzvyPwj9RPbJzTTG9j+Mpn94hQrgzhF2liSlwXJOGKsKgW4xnOo3Qhz30mhrbdw7cNM4VpESlYHfXTjz9HOs9PvLszzJm/MOsIgw5UglCFwSH4CF7Y0lmD01mt4Cx0fKP7vTdrMvW58IxPrakcaGjom5NgMU+rp0wY7bkzZi5kZ8GnPLD6XejFUEdFDMt6vRAa+ubF3zCq72cf9zdhYvqj6+BjMqpOSrOBmrWVO8TLDVuA1wrzLNZhkoqO5KYEZOV7fICDy43Pj+S64AMpf/j61sn53QVG8Pjw7K5II6NSkNjWSSU9rR1VZ2flpOcKApYHa3aZCiL2dE7NVF+AgGMuSqiYAMJqoesDfD23N0mfpEJs0MCgHiAk7ALmv4Cc/B21tbbRa057/1nT+8VDneRxnmJ9+m8lvGmP8GMbPiWEwjNE0osbPYjCDECbKJhWlQTYmpRDDlPGrNPmVTYrrBy1aKT9iD4t0RVtXt+5ku+6u3bv3dHfffew+anfzh4/PfN8/Xq/nS+UY8X/8eFApnjqoB//62++Yh+h07yezxU8kkieHnvQJhUUFL2fEhLQoRzeb6Bod3HxBtL4lShOmA6pbrm41hhpfRRU8KCpwXdXTWgtjNLh6Kojb18IQekrrPxAvjK/qacchNOPgISbgMSiNzPsOSfdBt8XlOgRWOy5URGcmZWj4GqkbYG3044ysdmUl6ZsFnZgbvlXnmnAGvDJ//nNM/j9/XV/fWKNTUvpf9QeHH95eb2Sl63QUKgJLy2eOZ048rYZIrp+fW/pYQVmQwnUTuxlGmJXpWyMp1Vkevb1bVTfP77zv5WPHteQ+O+vh1OLWHKrj/FfnCxdMMq5bhYffg5YWWKXgQ9l3756ydfGEbiEX4aHjE+yaaZ1lk7pvl7+mL0UV7AdxiS467g4A38qs8d+91djoG5+//Hz3b3/7y10wVAB1riFKdcv7yfKpTl5OdlFjYw7GF+K17DxIOvGieNdKIMUTOUyWKIfmC/hfyNrSU7fm6FfiSa5ka3VzmLIBLpYI2IpI5VmoRApVjl36/wFp43BgCEKhiwuUxB4AyxQXlBwnhAjfsQjCHxcXJYKcBjMdWK7twQOaQJHr6e+p5wliBWMjGARuRdhCVM2wNZoY0zn5OMARG+ewTydXVflApWdslILQ2APMGGiCyBg7XwooLo8k7dFyt1ez0ncafn62bUpOioaLrgleMFhuaWYmhUU4tQ6Wp8JGzrB2wCX+8r/GbiQXxjweW8UjfTZH+oNheJ9lYmJy3gR4LWqbP12f+8PZ51mBj9LfJANfRwsOcUenWJrp0p2to6aho+4Li6neV+eP3Dd5ZuliOJxV7bOp4aJhEGhdDV76nUctY5VGIdivX/gmNebMcDiMN7d/7WIQTmbcYIrLI7UspJ2dpr2zc5YdpGPZOtQY+dvvOm3l90OW1cmtsVZWWWCD/dvPT+cMdh5NuDwpZzZ0ThUMNc+lW4R2TOUYcNXIsIeCAEimhjmzkoFWbxVRqWweFumri1Kl0WhQu5GweHqInl4Y5qA2TRtgi94E7YPQ/0Aancqp/9UI2sBdxMFwDj4HhSVMRmXkTVbJj7B6iDz0TiJiy2QvS5jHqIJhL3vQlLKkowqUp7GK0pkKEwy13VsvhYG43q4QPDwWMV2l4xUuHt2XPbTg3YfkRNts8UTBkXgiNCkIBPwC+irQo/f3AzGMa3UkIGh4OLVpY73WNSgbTzGC9QkMJ4x2OWMrXbaRwB6NhQQoD8eF31YdM2or2gx1glM2U1J6oe01GtHx8cqy6rfyGhm5e+P7n+cCnZ0TE53ekiHOM7jf3eqIZSbW0lVWWtqEN/Li+vRO16M01Xa4jID2Y+QZ16faKtzdQL/6yDffQAF3BPyTzqdrMs5U+2z7i1c99JXK+EnPYB+AhNTD8iTOORgEoUbAhTCBgT38YGntMgjX2uV+D+Cc8Ee/qR55Vf3zXHePfKXw7rCGWWMOb6icF9XwPoonK7LQhQ9JV2vr1CBXBpXEAW4fikTgcEgW0WAmVSeD1AZrY0M0xxuWo9WJ5mgE5iANA84SPSWZDI3zVvnv9Tl16iB4UKBSgHXqsCuHSMRhiceevHxdAPFOL4/LCwQlxYIQ4ROmjheoVK8VFHS8q8pVhW85jEtVMH25emoIEKqYJ7e032rJz38cE5AK4+FuDd7GrOS3jzKcGqp+q0qunioG93X/TXEwqTbQSdS18tn0ccgAWeHRmPG8hFtLH+RBexCaMCBXNQaEr5kG2dXVNRsPRLJEg+63U3PdHRXXMZT6YJ/g3vreq/9+BqyDq8H+toFXRp49G94G3yJ3+yxL3x+cq0fq6wMNKFr2DjU1amVBqW4OSR5cL8vtWf29xv720OKCLgdObMSkX8fFALjlYIH0O3349Gm/gbQWx96Uo1Ahw7PV09fe31gzvJ5ieVE9zsNXU+kSAGOuZnDw9r257qDT2bnTyuqCs/Or/gNbn48AEeN54eT8u9Ln+wqbk9lDgEwHjlRO8lS5bhZXp5aNJ+uQmHgAj+HwHCQWwyBiQvAUqMPJYFzFmIdhsFi0jjYKjQCxKBJQEzDihh0DDo/brwIrbnj7SECjCMge+BXxIJG0o4HEiITxwiHB8f2MgtlvJYsAO+tTPCggxodoeyIqCVWSjxtTxIrrmirGqlu0ZZLag1tyEXqY5MGuW5A3mj9+ubYwH0DvTb9tfNzYmKmgp9LN9UIFNMVauq+K6tWtun5XwL1jYAAl7Csn8xum9sN3XCFmY6ELVEuqsZrQ4l311NG31NVxBbqlSaDBSJbj5ymntxufeQ3IXhh7TvfWf/n9939zg6dVrJx2JB6x/DK379UIt9rKl6vr7Odr2l/vY08JTulP6povAPmNgwbNh4zsDbfq7w/X9ddK0eIajPj4WNZq7Ijwstode/ICQIRPnnRPNOyO2dYPg80DXx9/4GcYa2n11ntxqIJ5LEgN4XobaVF6jd21Yk8fCffatuOb0+FW1T+kGMeOPLQeiZpqaZSujU1MtQ/msPMsHJ/H6zMtmjtCaCk+PhreQTCmdsWFaaPIOHVVbYZEwGLRod4NptE4NjYcNQwzlYNSRyvDNmFjcxCa11OghFeB6AyVYzdhjnCob7H4weuX1IOXSh7cxJEvYRpSGTcvEWUCiIQ8BzEZDXWAWXow2yebLQGEjJgnFrLl81ONxHIqcsuWg++b5r1PhaERuWZpOdmF+bderHwq7bxz63G2bG11bWxMIpaPfthQ8Jvkax+7LFAHrt675xdodaXaxeCVjt/OeK4dLMUfj9m47EgvEgOJcKuqcnSnquNqo+YRL07NhOilZyN3VyYzx1fXX2yEblWF+3Mg5fe///7vTS68ILwcbC1HNh+e+WGTGxhoda/aIdPRxKc3OOVwSj3XQSy009Tyt8zibp+enqaAOZ8LBaCdle6zEV+uL3bTSzfLZ/vu8Aun7eGUdrolvLlhcvrr4UwrPT25u7eidHMpFHrBx48fS9SRFLhEdhSk6oHYw2Br9HdwsfR33vXNq59Obt/uUcTrmJxs5EvnVz8stIfyRIZ1gDrAGpSz+cnjOeleNpxIpnKBAHUZ0Hn0mAQ4n+NCJqQCImjW5DAMAo0P0TgIGbVKiSgSeWkLzA/AS+IKpCuVSyqQ3/QdJJ8+eLLofWr/kwcHoZqD6VwkhNsy6czIY8KSYhxTJGhmNwuPP3h9LM7SLJkvELLghPpki/OGeqdIUU3r+y+14vTiaOmGQc1ppaVLPaUTbePjK00Ao5r9WCKSrvVtbPS1rY5+lMnftaoe/utR0MNnVWeZZmSaitWMfFJ8TCfIYMjoPmsH/cL2rRARbWsTcdtXw/K8k9OV6gvPnj2Ld/JIyOcHVKAPbIc55jRcoN+/fPmC3J1iREHC+2zb05/7uYHugDhwyHxf389Ngc6H62OZ3eO7d6+WpSXcO1BKGRt/vQPcQN+7d310rFMAmm11QQm9vgeEQHvTdMP0kStHd/fCJHq6F0YzUJwij0C8wijs3D/Oyj1VAeur2gujgdjwcGDN+CdaWSV69P/wd7DzdU22TZQO8lol88twQCJA+EEVjdGJioJ30VCdKz2EBBxgWCEA1FedhjWvpIbsZxIIBCIN3jQoJALiHnEMfTSU3BDlqEx8RsKyDvLRyCLhdyqYU6cufQdJnS8h67bkIOy9sTePM/YriNo3tU9pRwqETOY5Bq4hj988xMsZevIjylM1DpMqZrNYkrHZvtE+NApx6lLB/FjPmChS/6ZrdNkdSKC783iwM39yvqMtlL2w9tGbJZVKez6PtkzOrM1IPzQFBsIOxR7M3iN+2EcDhuTtPim9wT5ITS1798R9gUZGlJQDW90dgFxrpxYXGJFkctE+y2rEYy7h/I2zrUGq09O9vfAJ92/4iPv93yn12ym6Lu7cZ/0uj6u51SP9Pv3PXr26+weabzDXXyv8SASZstvY35LcOw1PsJaRkW5ilo+Di0/1vuUNeXlKPzQ/sSDnADu+ceyumNLLVw7D1Aya/qu9vQd6D0z3wuZBBIm9fS/XPsx6wpEFT1/dsn2rJyzhjIw9QRTv4nb+p7+4/gHWhaXSQgs8vrzr8cSEBHIYNMg6ZHVyfHmeKPlEIVtGwIHcEGOnDlNrGLGZo6Mh9ScEB4s5tDKeFhkH/4HqikZALiACtQUFZD8ESHkRKqe0vakqQ2YNh8A9DHqE169fQt325BxrEX5mJDepIacu3TwuoAKQfrNhM4/dPiTKExZfQ21X8YWcDAKhUVra0dSkDY0uuYoPV0XSWcoXGHYnx3Qnp7XcuhVzYlnetTaxurosblyfF3TNrxVVTSp4g/PS+86noUQFae6VKwCTykACUxmpWs/1gfk3YPONtKx8AP3jcERNE1FjwwUZl71u3MgPX7a5mZWlrY9pq/vCEX35979/vxEz1W6uSjntV+MAVZnXG5Pw8KyRV8Nzd+e600KTg41AW3PE1AwFA397A1/lCdWDgMO934diZ53wrOO31fWNVK7W6W8OA1oz/DDIC8MDucGH99YfmN5M0DsAj3LFh+YEC9fWXi4uvnw3qo6Cji8Y9AVwUsZ7D2vFap3UjRhOGE4PaO/m5UTlRLtqkEI7Cu8MzUhIgE0CCCmeyuMJy6eKeIxIBoGKhsuCQdcRAEWCxkG/E6LMH8FikAgw6WvTYNUQhoKpDAb+hg86AJoDnQyNqYtUaedN9b2ERM7X8M8HQLMoPkZ98uO70TXIGrwEe/FI5VG71rk+ey/K4QlKSgiRGPWDHBI1hNAk/1HyRNhYQDjGwdeGdjTJZ6QzRbwTAQGgsO66FTBQUzHZ1KMY21jokSwsL3R1NG2sKTrKaieKgOl8EtoPCMi4MpKVkeaLNLIKRoJu4Vm41kl/TWNjCgUqD1U7u7iksiTnEaD3agXe9docTohpebzyuamIBN/rzS+/R1UMrr6j21ntibOFmxOc8kN1Vq6V/a4dZ5wcMrPPIlMgIGu7WmZXmfrVrUZcSr3yhDatwuEzLjg4r7QleWVhfaPIZFvg6W8AfhoL7SZA5GMPpCBjVckdb8s3oYrTBDO8dJFUsPhk9vXo6OLrvgJksJ1agDNYwOFrg+j/sFX/XV2NqE0dwwqeiJQa5GJDkk51td9qlOLUzRn6dR1dIm8RKy9PQBCICYpGknkYQ1HyQCJVsKjmetpUDEQ2VGJ8oV6DkTUKuD2+ylBANKh4oVCA1AYaEQOJGgyVFl6X4jUwY4sfzIIo4XjxoZvEAqni5bsHBWuiNTmhrrmjkScUPGuYey/yFkI8HRGFssTjghjUmXeLfQUS+eLrYgnLNZnf0tYhbWJ3QQQUkAy6LTJrMgfS2OJo9oeF5jZpS+PKqmRlY2OSns0WP3J3/gaYV9/7OZ/WMkYn+vq6c7nK+f6I1WHNcAiyAuLPVpWrCBuDix5+QPvnZl1x8eD2P4tKHupZavv8VkN1uvd50cRCx/KqXJzpYKsGspDw+pRX1VkUo3B3k6fPIfnKrjclePfeeorto/vuWVrw7U9RHlCvltFuYy0OaeXdCrttcHljfnlFP9MPrPggKtTUOknxoeiaXs1bmFhZxfj0wkAw13f2Q9/sS4mg5MlH+egoEW14ov3yfftYEBzsheYc9tiU/qdtw1763kUyPD3dwLqB39jGA2c7cK3O8oYahwAFPwSpJAxZ09TgZE4Y8duCRpaMD7MzHAZDQmuDs1QPqQf9I0WZ2Q3+UtBYgw5eTy0X2JiYaOD8HYM+aK6wsJz93XcQFr345Pih4uPnjqEJcomkb3FsZmZBMTo1PsMubmI3NLx/n0eoxBP2wxdU0cMTmNQ86euXD5pGXypCy/Xx+W2lnXJZaCsu3TEDzPLpNQP8tAyLsmuEHP7KUpGhmeK1oGh5dbSOPrm8gVOLAEGM6fdKDJjWT/EGwzpcZEq/ncn5XGMoqTwBHaDOVScbOP3lB+e/njlv66sRl8X98urZ+yiLzreGJ0pb473U8z9vfP706XN2xcAjW0uvcMrWeq/7fuEpkJ1gtcukJY1cr9znGAXXw1TC3x+0v8b10/CkaBn56OOXlzsnOjsrstc/rn6cMWvbdRJUhfBontatGNBdqCsaG2xroEl5eqrYOF/Bu7XF1w+Ov/zxHUxSGGwZJHw8DnXXhBiCWPisA1jFq5+aCw108ARxvFOQ9aaXxft0fJBFVTQkZ9xKboZ3N7suh100Ix1sHpLiKlPrcAVScdVU33GCNloPyjmI1oDpGMwtkRS4PHA68EDmMwKhTsaSbCpJQBj5ViVVX5QnAjbCfkjXFMy8Lj50iAQLCQJrUSpo61FIkpPZsnn5UEMDabihan9kJR65RRXL5hVJvI+xR98V8aSjEqE3jsFfUMy/E1jUjexIcEwH7diOzMGKgLJWw8FmemOLuDWgY76ILliVm4EMc0xNDVYVQMG2B++J88PrO968OW9v8sbBxM/qMLx9EVeNL7ruSLi87+Gv53/+6a8/nbc28FL3eQ6wr/ioovlCMze3sghazL9+W3+7PhbaRr8dF5RmVN+bctbDmQJ6HC0t++iAeLgs9SkpPoBRhF2MEUJL92uRUG9nH27XuND2aaV0MCY79PPq8sfVifVHMApQAntiLzhPLOR0lnY2hT4mRXWZI63FqYjZ2YLZBw9YJa8/zHpnz0yUhiYnP16yB9dP+G5Id4CqUIUsonvo4ysBp+hK0nBNFmAtdVxDLKK6pnLo7clMcGA1TxWBtT1HpqCnEoqokipvURdPUBWJQSrnBJVU8/+G2Mfpwfl8/euPW07B5505noQD0Asciwp82by6EBx4TQTMb1/De0jGhnk4ZAmzongFDyC1WTQ1Ix8KmTMnbwoFOAQK2ic9UpXYm4gWvJufkc+8m6GeA7T9oFQhZ+NOoecy0uP1PfQv2l+E+KvMVIvoiNQhnmF2bXQ0fnBjvdBCPFPgf+Ee0Fh3utp5xmqevA4QnaW0N0cdd54Gze09NXd3VdWsM5cfvvk1+0/fb9tn8rO+AVTJz+6enYsymxpdlZXrRmSALfzE289LLz6tLHc4uXS9gPmYj0sWF6Q4mlnVtAYP5QsHOiGf+noo+MJtKVnI6a8n1Kupiby+tNTxYul6ulvapLSjcezjqjOM4eABsNLJgc/swuaFxqrO8aHI7Ck2QS5aXPyxvIp1rZL9ejaeQGV30mvTutL8Y7W09m4PP7wXDKnGWtdCgnSsbYKCSNd0XFOnZsgUXw8zpkUoPy+omS8FBU9zEdS/5WaDCyH4KoKQdQ3HCg3BHmMwUDQa6it+Qg9wSpzbF5mR0I+qqJ76I2LLJZDz0JikMG00mB5VYFCHrwth7hewj98sgYRhcBCXR5kJ2BxYz0pyklnCufIC+VReHgljzmCilY0UZHiTKkExDMvBtdXVVXlHkYxuXtfSyOZZhDTMBZlFx991uKjvoeZuc80Ga8PReR9UGw06E6aoqc3MwvCR+2F/cKbvcuxxcw+/cDLxzJl9S5f/4XjXORE8V+AauRf+zTZw2t948+unX8ZNa99eTqD5aOgY/LTpytv48PGlvOx2hE16TNvj0sGeF23CDoFF5x2kKgwH+i23/bRppevg1MIfSamfDv56Simv0j0CslOtlb+B324/YBealt/V0pImdnNMW1lp61lpgoOJBbLIhezYwztXJtpDu2rFL95jQztkGFqn8EGJmMBqvYbPmZwJYY16i4MMO0sr4uDmGCuVVP7n//6KQmZeC/KKTg1pYGroR8cH6dDMXfFmdEErs7WZLzgubxQNDfEgyWmoOflcpYhF4GDwYhYWCVQdlDlGRRWuDwmHcp1VCIvKlS4sJGqLnroeGquOwtC0D6KIh4gqMGPF1fEBLV+8/9i3xcrkYW8qgyjkcUh1vA5+co4oT1Iy1icMoaHz2Ez1OD1QjppHYHFhYRxciKxncvUjWMs6r2EwVXwBr2uC7aoPO2IPmyMupmpg59PFPuJYktPZVUke+gGK9bXnMVWVYUf8nT0cAt3emFpq+u/1r3mYcCcfwoJ23QuPPbwXwKPh7kCBhejuy29/WXnx9l+f/lTY1lk493zzy/DozGrfKH/gD+PNFZ2NMScqlhq7FIrJqYTeeqRPuN3ZO6Cgf++Y2e3B3UyBA/p6KHYBA9mhtS7T09B79tYH05yasgE0nAY+WcNbjc2hPRUDVrH3oEZIdOnY4ewccyvtREBtzgK7sKtggkrO4Vd5V3kXl8jEPNnL0XerM7UZ0eKeCbYdqBAPgN5a84dXV+7pmlcSgPCP5+jgXUM4Gq4e0SSI2hHhSWJJiIA/1dJSWE7A4+mlQywenUXAoiF4GIdBQnGAQGNBN8pslSgYOAmbz2OzIk+pIDkIhLY2lQg3KA8HQxoGQwXLpDY0RBK/+xZa0+InEFonlBxiEENmmA3vh9iTQ81yifBYkRAHyB5Csbe2na62p6qedhiWAfPYcumUoHFtbXSxg46vK5CXzHqLQqLxOk4GDpBB45F4xF7XXwObRCbHi8syk7Blkgp6fM/GTKfsPn+MD7qQG7sOaAXez4g6c+KhaUXfxZMnw08CNNE98PzDbUA8v/EQWDAPY+786ZfHb98unTj7fq6hSzI6P1pWVnbixePmExWGhkufl+eBYd04TNG0cn04Dv/r21/Oorma4SnwwumFQgG8SUllA7UD5KvgMoYDsliuDMiGPiAtwy2qe31CIV8cyxio+B7gVjf2pSU4JwaktVdBDulUz1Bz12DrI9bsjzLvqtCivsUZxdqHGTYojlLLajt7TgSDZHS7p3JpFKtq5IXBh9EgVjiQY8NWFFCxWGx0awjJA18+3iybKWrmwY841bW8qEMqYHLMtZHDRHU0SrmDAecIB6jaLAFfElIuoufQ0crrhMfAaVMFBCGhjgQTnWORKtYcUNLjoKJDKb2qh84RDhWzsBghGxOfM88byhMVrQlxQwIqR4cYeWg/AoWNB8uqeSUnkhxJgOqxSCyVz3+YnygQAm1MUYK/Rk9/bgBi6D32Dhf3wP4H6zIAaXplmTa3NdIHQ8cmusakjeKyVmlEoMX1Ad/TRn6PBjK6Hf3013+T3gdwLxA+gDprevT8jn0J30PY7fWYy788/tOLhbePS6cSeBZimXwU5I4R0sJbwAo0e/zbmKKp6NZyqZRGy3/xp/H8Xz996rTm0lKCe5XXpVcnzQ1pXfMosybCwEkVaD71Ogvt9IDrGYZpFemGhaUdY9KOpVs9q4Z7Yw+71wS4+R12AFd35/jTqLRBfhDOTHxt5jg1JIhXzltcm52drXqEx+oHgbZyW5YR9FigCt8K05/tmmEYcw6Zpu+iQwuDZCCitpI4FhQUxBSVd4z2sfmggqtj0mUCQeO32r5gYnDjQAiNigpQrjD0Y1QwouAs+FWQhc4v4FOJGjbq6jimBoSmkXAcEkcbnA0q5jgizAoAkQD0X9g37Gcdp0Kc0C0CqaFtLKqOypOJQkSMOlw85iBMiuD+cVCnfIOouNtobQKdDUI8hWSmUVEg6xttUjzFaVDN6NX2VmAzP5L5SMfaUj/a5TZG3YleZqOmi72GNxSsgld3o2Ss1dZ0/MTl7ppw5/sJUU574Ef3xeextpPG4faBpkf9zoMUaufRbX/7242KmLRf/5R/6+3bt6VpkFV08dpUaMRtW/0ut7Nnt7l4tPzrX00rE6Vtoe2Yhp4XSz2QLLD8gp//54ZeeOAGGYBYmGyYuOf+QKbDNBzQtNlg9x/E4tra9piEfcOQnAoUutDGD7IIe1jYXahxC9SqFbNCx2NERcvrRVHs0NqZH4sFAXSRoFE+86Qq6FoqPjUou4uOgMpwL4jjQQZjHGyHUfeFngaXanMbTiYOY45SNw+zia6E1GxB42sFX1bOYkGPwqNHm+VhzdX11J04euDTUWpr8JJynHA/g1nJYmFxLEmJcIqH1SBzWoNCsBwm0ZzDYaBBC6cCyYIMiK8jEo4firwJELLv+OyCciGV0YArzIufIw3JGHm8vEiNBgCbApiU8pU8ZxeWCoDsyuMQkTIDverLgjJ60bsPs2ISCY9NUlNLAti1/cUkVxtDw1RIANFJysx0gSgd3OamxTzE7ax+/K1kV0Jp2VHn+6f9dkQYHNlz+U5awlLThPY9P0cXE7/Emp01OwcCuvftcwy4fib/17f5Mb88fGMa/eh2xDWLaOBAI+KTb2zb51gd869PypfU0tRU+/L6i+WeFcDKTS69mDv7Bco3eAMhLS9GmCRd1ExMikBNT4+Qp8nZtTu+r+BPybq6h5+feZrcNrHcNAYS1nU5+KpsXVKHM8v5nS2FyYqmqaF26BLoPHHrtdYywUtZMbv1GikKzB0VpYo1BPBcYKIKW3Fd/hQfiwjjmEcHYVkSlg3KNs7IFtY7OOJtHbZUKBAeD8GnupLiLehB0Tj4lsEAwRtLho5UBbRWOKEAbFXeDEY0AxpSAsEbj1ZXB7wlLYwWFgYEcmvmORzUDRgwCzEiI28qsYtwYMQ6FmR/49DmRGbhXIOocHzonCgHEDwckJfAsSOhzgZ1L2h7I495N8llrKkqgmRNEURnSxQzTWzYDSo1c3FaVvb+R7JssDpJSXgbGzU1JOq2Ta6lATY+R7YiL91YnyDajA/47UwEzmSE7ZXTpqAL6Xzx4mj46aMAKHM4urNmW8C2fefPJ9wIODP+ywsln/5yflrCbcye1MrcpIx4l/dzATcSTBwvtxfG3Gr79K/ltqWm0tLOJbhpQGf85c9PYXCgfChqgP1SS9HaswdVf5Wb3EDRr7DIcEtuHxx02/ZTcm1250oRP3RyrKNn2c3I3dY2IjqVHirJyem+1VQkFrOqCryPQ4xyQZU3ZMMUV1VFdZS73aaPrW/IQwH9deDAFoxv9kLpID7MBhfS2u7dNPohBIWIy43LNcfSzCHSXigi7PcmpKdCH2PRSjIn09T19DhpQkQcfAdhl10lKTnHYHuz6JXf7oecZ6q3EPZ0CAQZIJlx5ugwuJlhGNCUwg3CAH4skqi0OhzaD7buPCbkE9ngiO9b2p/ODeW0DOVxSAzzS3rQAMGjDaZ8yu7dnohchoVghl1VJXTNaWrMCynnsyWvQzA4bBjAn438D7u7gzBOU1OXg72dCxIXRNijpEQbMs1aONE4BXNKmVOA2pGjV867+Pl7XrC3766IMSy9rgaTHiOTmkc7d5q63dgG7yJTt4zu/D8BpfTF0p+f3tkBYtYIGet2VDzJMWa8sML07Jn2nNLS5fnL10MhaOlpdkzMi8eA//v1zlKUsqjuVTY+uWH2WrqQBh64hdnVGI8oSxOXRT3tTqtNTn54ouK6YVl2RVuZa2hB547MOFVdN7MoHu99gOjWVBudHto3OlrM8m59ILzW6s0vKH5QPrPYKHu91tRUMiHXAD1ZyDx1cqmNjavEU/tYLTNFjfNBKEQYOAjUaNqIsFY3FgEitFMBgZMjDKmKRJPJJJaAJ5Mc1IYDglZFICxgDRUJ2VKgLTMI7NnyOjotzhzrS1ZHhsWZh5nTwFOci7ikgtauhCDvSJo5+ibk1JSEECFSLQcyNKi8Fjl7rplXnkO3YOK0t/wRJhHQ6SIxBxF2noCIQ1SKLMqhaI4sa5INNS3OzrIqS6hB2WIzTJymJ8gFHYxsgdaMQoAyJs4Jq38xM/PRI3PacA6/Z2WhcV1adttfy9PdxNTeU+XkSed9A6lu+Q9Nv3dAWgK4rWbA8fq+6273B2q2ZQS05ZfGvLm88k+zhxmOCNuwKmlYtuHZHSaPWmsf/u1y4WDT6npoRsaJuaizz4HafDkfKHTAATyT0suth92r3cXEI0fADuOgodc/KJd2mD0qE2ez+d3ZA4Zn//ZwKjR5aDDUzSV7bF4WZGjop+8WUMt7b+DGljV2GZaJFQUKBeDIK6PFldfo0SV9kndjio8fZvrWFxVJSaEHWbKx1YW0joXSMovySUHXeE6zzBWlCiPrXG0UwvZ2anoDjsNkVuJxdWwJq4qODcOHytkiXhHGDo2iMbX1qKCRK2/OYSvYiuJzjG/ZIowy0iHXFqOtPByEmjVcR1uE3n8AwpRtaUGtG4kAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_co2_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json b/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json index 02cf7724d3..f61a1b77a3 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_cylinder_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_cylinder_tank", "name": "Horizontal cylinder tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_cylinder_tank.png", "description": "Widget indicates the level of liquid in Horizontal cylinder tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json b/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json index 6ba607edaf..f87206f4f9 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_dish_ends_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_dish_ends_tank", "name": "Horizontal dish ends tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_dish_ends_tank.png", "description": "Widget indicates the level of liquid in Horizontal dish ends tank.", "descriptor": { "type": "latest", @@ -33,4 +33,4 @@ "bin", "hopper" ] -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json b/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json index 35df7fd221..9700a677c4 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ellipse_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_ellipse_tank", "name": "Horizontal ellipse tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_ellipse_tank.png", "description": "Widget indicates the level of liquid in Horizontal ellipse tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json index 8f35d8ad76..face4bcba0 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_flooding_level_card", "name": "Horizontal flooding level card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4OCRpePk6fisrKzx8fHIyMg9PT11j9zOzs7y9PuQkJD09PT5+fmtvOqsvOpYWFjI0vHV1dXb29u3t7c+Ys4wV8vCwsK8vLy6x+5aedXn5+dohNlmZmaDmt+enp5aeNUrKyt0dHSfsedMbtGdnZ0/Ys6CgoJLS0vW3fTW3fUxV8pKSkpA7yNPAAAABnRSTlMAIEDfv1C6kOEmAAADcUlEQVR42u3a53KbQBSGYUV2DivKUgQSRTR1F9lOuf9ry9kVUkjGQyyT8WDN91iGBVx4h93xD3kEAAAAAAAAAAAAAAAAAAAAAAAAAAAA8JG+fHo6Y3xjfHaTm6/cYUT06YXGeHQb0hWIbkcTugoThAwMQoYGIUODkKFByNC8FmI9egm12dOpLW1quaep0z40qEV/aX/9Q3IhRD636CzeydSekqNu1+AAx3HpwCM11CddQ503+Ihf3E29BA9m67fXM+0dIVtxtJ6fQ2zDsadGvIlpunGl8bK5I5fce9dWQx0yjV0ZGwfbjn9WPUPmguXnkqXQLg8xxVn+0IRs7iVPrx3F6R3JDQ9c/WFPn3moQ+7s5/vDLjZeprtNvxBLiOS7KZbUeBLveyKJOFvu6yZEqnVyUCHuXyH2KWQhDeclJnehZmG/B+LxthAWHYmcfgusIEhqvvRtlnSHWHkrhKgdYvCD4an1M+XBXROihjrk4G4kxTbZbrzrF+IJNQ/WYk5aIPZktabLWt1grebbY1dI0HQUa978COhPjv7Um4ZRSfd0sbXvFzJvtto38aMQwgvO896crTli9lCIuiNkK/bNSit4n9C/OPZzSp36hxTbbS6W5yeiHpKw1K2aHSHW3BKM+z3ebamv/iEUBETWacmYegEJoYadIexJzUGimV4kvfUPYXrJXBaSLAuhrWvB5gF9uK1e7EuRnP4eWvqwvizkSazVItmrtV54efPTQnpF6Px9IqT/IRFLPZfUjNJd5numVh0QJbOEyJrNeFhbpCx0DL+cjLQoomjiqxMTivh4Za8oyrLjBT7RKykXnvmo1ue8SVKHHl0WQsGsJm6prSboFJKmfialz6OSyqysokXpp6n0K8evIiJ/FVZVRqGvL/iyovez1JzYBipkzYffczXTgwtDtoUQuae/dalWu/U7ZBFKf+UfQ1ZpxmM+t8r8UuqQSZZxiKxWMuTcMqQeAis47luHr+laI/t6novCTDxRbBOzSEix/az0F6ksQ/VE/CorF+FC+nzO4Rv3SYVE6omsKltdSMuSPpgOuVi26riYyozeYBAhUdR1MaS3GETIECFkaBAyNAgZGoQMzWR0ewVvsxOFt6OxcQVvtEfGeDT6ejMxPrub8TX9Uw0AAAAAAAAAAAAAAAAAAAAAAAAAAADAB/kFV7oA4xEmmqQAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_flooding_level_card.png", "description": "Displays the latest flooding level telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json index 589b3cd7e5..ac2bfab3d6 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_flooding_level_card_with_background", "name": "Horizontal flooding level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_flooding_level_card_with_background.png", "description": "Displays the latest flooding level telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"flood\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_flooding_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal flooding level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json index 8294dc23d3..50ea0cd94c 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_ground_temperature_card", "name": "Horizontal ground temperature card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4ODy8vLIyMjI0vFYWFh1j9yQkJDOzs7k6fg+Ys50dHT5+fmsrKxKSkpmZmaRpePb29vy9PvCwsK2trasvOrV1dXn5+efsedaedU9PT28vLy6x+6enp4/Ys66urowV8taeNVMbtI8PDzt7e2dnZ2CgoIhISExV8ovLy/W3fXW3fSRpuODmuBog9nW3vRsY+KEAAAABnRSTlMAIEDfv1C6kOEmAAADiUlEQVR42u3ai1LaQBiGYar232WXzflACIRzOSnVVtv7v7P+2bQijoVYHRqZ7xkIm92M7jtmBmegBQAAAAAAAAAAAAAAAAAAAAAAAAAAAHBKnz48m3FxKT669uVn7hARfXhKXLSuFJ2B6KrVprPQRkjDIKRpENI0CGkahDTNiyGDpXygp+ZuTC8I+anogAOrpwjpyeCHHNGOu9WJVkpR9RAk+MijCR9SThT8sPOkqgX7KhTpRIlybI9UX2fUnfmPo93GRoO99WMhHTnoSod2koKEcJPtjTFzHZIRJt3EIkm/csAmpSRM6C7cpKkRX0MjFomZx8nWDTc63CyM0KGehHz1nOpyJAu+8+jejnyy/GAVjMvXsZ0d1Anp7YVMVJzGrkuJUJMqRMShO6cJr4V6kcSm+EpuLCbCkDs37pyvJjFPXT63ISml23hCNQ1k0PnmyDXvpBo5ZM3W5MseUSBXs05Xyu81Qr7vhRhNLuMgkbwQYrRWv0MS4oobrTnELG4eQ0IKXa2pprXslPc379mRo3J026v2ddu5D2wnMb5paoSM9q4qTDpZcEg8MQuVpHc2RJj0jtdcwzPJn5C7NBELY+YccpMmW7VZ3CSmDClM6FJNs0G58TJkXCbRF+mT1V0u+XzMdayzqhNC+7kkqKKqJ3txIIzanav9RUWvMpArTihDbM6OnawcD1mPOeQfKJfexGe9ahRI/x1CmEP/wRf7i6uOEb01hH9IaUanN+p27dtGL5Bd+nvIrF7ISFq39P+sqw76Yfe8lD494VSLM7k+EjKWlZ+H/9FQ188nFL2Tx3eObjnwZfDszr/1beTDq0P6VYyi64ysKKKo7ZUTbYr4fBgPKcqyaoEn3pZ0L6VTGlBvKZ1uIEfPOwPnYSwD/0hIV1oBPQ0pCi/T2uNRTnmWT6N+7hWF9qbX3jQi8oZqOs1IeXbB01N6g7GsOETfAimXI3qG26Rc+XQkpBfI0mA/xOsr7Q29KmRYZDzmuWHm5dqGtLOMQ3R/qBXn5oreie/3DsweDCHfWcpVh3ZiL8u9fqFzxUm5N83yvuprj+eup0PtURkSlX+R4TQuF4o8p9OqQl4tG9LfFTqjOpoQEkWHFhXV0YiQJkJI0yCkaRDSNAhpmnbr6gw+ZidSV60LcQYftEfiotX6fNkWH93lxTl9qQYAAAAAAAAAAAAAAAAAAAAAAAAAAADgRH4BUVMBmbp0nFsAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_ground_temperature_card.png", "description": "Displays the latest ground temperature telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json index 004b66759c..aefb674746 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_ground_temperature_card_with_background", "name": "Horizontal ground temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_ground_temperature_card_with_background.png", "description": "Displays the latest ground temperature telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_ground_temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json index 133214dc6e..b5ed67dea8 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_humidity_card", "name": "Horizontal humidity card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEUAAADf39/f39/g4ODg4OD////k5OQjTMfg4ODz8/M+Ys7k6fjOzs51j9zIyMjy9PusrKz5+fm2trbb29vCwsKQkJCRpeMwV8usvOq8vLw9PT3n5+eesefW3fWRpuODm+DV1dVYWFhMbdHI0vF0dHS6x+1aedVmZmZohNnW3fTt7e2CgoJKSkpaeNUxV8ovLy8hISG6x+6enp6dnZ2UGhvnAAAABXRSTlMAIETfv0i0+14AAANBSURBVHja7dp5b9owHMZxxvrkh+OcJOSA0HCUY4WtO97/e5sdygCpg2orbVo9nz+Qa0uVvzKOUEuHiIiIiIiIiIiIiIiIiIiIiIiIiIiI6DV9evc6Vvez8971PndNhxPj3VNOt3Oj8AHEN50ePoQeQ1qGIW3DkLZhSNswpG2eDqlmIY5EDiYljmwABFEQoT2f054MuRVxNQ6mAaI7peDAaV4RAU40mATBVjlQ16oJq6zQsOZVttBH0/psyHHHacn0Z7C5C+4wdYab4Wo1xRCb1XAQDQbD/oPaRHhhx9v4AsDfjyztujP58pyQW2nMwkPI3WD1GGIOAt9NyAMiE+JMMfg5dHANWmQ+zsS1G3LnY1+WaGTfQri+6ZlfCBnLo/rkrXUaoob7kGC4wlUUsgaQi8ZM5kAoEu5CTNrSR+1eOhFX9uand2S7ejicyGC1NSFqW2Ia4SoKWTYhIYrCJoigUYnWbq1FXwgpRPwql3wt4uKUeuIH5WwVriJ0pdK1+Pt97UfhzF5g18eFENeW+/kYM3skl/3q40rGxzdV54cjGI9RufpCyBcRuV3Mxs2Vr/GGQlfWmSu3uw5XKhzovBhnmT4XMhcjtx2GjzdUid/ckfkuKsMR39f5V/MQPhOiHzvWVf7GJ7KWwm7Zvoaz045CdP0NcOszITD7X5jzsL9Cfpxe7FPqHqeUwkvypW6u7A/bVJ++6TL4zUP4XEgm4tb2nriHp1Z/F6Nwn6ARx4h7np3oIQYwikaIk2S3YCZeImku4mdLu4najKwFdhZmrvqmdV6cCwld2SuOQiYTLwkCz4xSpElaxv3Um0wCr7z3yhjwRqosEyivWfCCEv9vYXfyVQNL2cmOt7k0a+G5EOh9SYXjEK+vAm/k7UJGk8SMzdwo8dKgCekliQkJ+qNAmdxU4QWEOsRfaX3ps1ZYzERyf4w/Ii9Jvf4kSJU9Ea9M0r7qB56Zuy9HgQcbEtsTGZWRXZikKV7F+ZDLkhH+bhIkeI42hMTxuUWF52hFSBsxpG0Y0jYMaRuGtE2vc/MB/s0OqJtO12nPH3D/Wex07Vc4es5797n7kb5UQ0RERERERERERERERERERERERERERPRKfgPNbdZin3BhXgAAAABJRU5ErkJggg==", + "image": "/api/images/system/horizontal_humidity_card.png", "description": "Displays the latest humidity telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json index deb4c48ad6..7c18fd191f 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_humidity_card_with_background", "name": "Horizontal humidity card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_humidity_card_with_background.png", "description": "Displays the latest humidity telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_humidity_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json index 166d6583ee..e7a9d5de6e 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_illuminance_card", "name": "Horizontal illuminance card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADg4ODf39/g4ODg4ODf39/////g4ODYGDjdNVH1xc2srKzx8fHOzs6QkJDiUmn98fM9PT364ubIyMjz8/P5+fnb29u2trZ0dHTj4+PCwsLnb4K8vLzn5+fwqLTri5vpfY/409pmZmbaJkXV1dXumqjzt8Hu7u7sjJzkYHbU1NRYWFjfQ12dnZ1LS0vgRF0vLy8hISHwqbSCgoLpfZDofY9vEfvyAAAABnRSTlMA7yC/r7BI7FImAAADHklEQVR42u3a53LaUBCGYcDJsmqoC9QLiGJip9//rWUlOWAcTMyECTLzPeD10dEf3jEyzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM42uhuO37sPI+kYrujd04ejwQedbsDqbjCmmzC8lZAxQnoGIX2DkL5BSN8cD/mp0HtzPCRmem4aapqr0Z4+ob55GWLFlswsJlGX1Jm5k4k20XUKKWwnae2CdF3uckhhd3BRVp1/c6ih1vmSnqisvCkk488WddZsPg+RG9n0ZWZXVdUt3IdtpWmPlU3fq2042douXdCahVLuVs55IZTnZK03n+OSStP6M+QrTbTQpuY208JJNdNmZOs2LcJH7fuMLsdhVsuclWalqGXB5nkhwlG4sSZxOmSbPOxD7Kkb0uVkvJE5Z4cKLoisOVu7EMtp1o7MkyEKd9QXIYvH6sthyMN224bQpHoMH+xKu2iI2YZYZPJSVp+43IU4PHdkKM7JkIyfmPSS/uqG3o0LshSunYJjkhCV2rkLoZxjKavp1ZDaLKjg30g1TbqaksVn62iIVMby+/WQXELifcjyiiHyWDe5wuujITKZHaIznlpXU3PcXiPq0RA58Yn+EmIp3PlG17ThTGYsU34OL/anl5b6jf9+c9rx6Ahv9XLDowuK+YdMhZdU86Z9MaF9iMPzJc+tkyFiyWJDe9M2Ru6rgFq+T/7YaDbG5MtxqqXkB0F3QjYukKQyx7n5+8rOFc6fhWzkqOD4byEli/gwZLEwAtc1ZBVRFESJP42MxcI1kpWR+ERG6iVJQJ7RnjDchP7ZUmFm03l6iswL2odkbZ9cPydDxDLLMucw5P5+6rlGanQh6X0ga9lLAyNy25BxEEiIm6SuJ7mRR//OcqyD1flv41XTLOgZzQgiY7pwI0+SIiMJoqk3dQ3ZW8kDN6gJ8Zu/SJpozYlFFNH/cjrkk1LQCUFKr7t3A7qCJuRsvn/qpEdv0YuQPkJI3yCkbxDSNzcUMqSbMB7c3cTH0/rHwWh4AyX6sPnqw4fxeze8Gw0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Fy/AL5F9/papj6AAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_illuminance_card.png", "description": "Displays the latest illuminance telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json index c896876dab..7759ba0e2b 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_illuminance_card_with_background", "name": "Horizontal illuminance card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEUAAAAWHB8VGB0ZHSAWHB4fISIgICAfICHIyckXHB/OzMrMy8rSzsvRzcveI0PJycnVz8vm2tDQzMrZ0czOzMvUzsvk2c8WGx4ZHR8YHB/X0MsbHSDOy8ri187k2c7LysrIycr///7e1Mzb0cxDR0no3NHa083d08zY0czW0Mzg1s7KysodHyDd1M0hIiJER0kfICEmISArJiM0KSIvKCTY0s09LSTb0802LCXi2NAzKiQyJyIqJCD//frdOFQ5KyM6LST45dXg1c1AMSctJSEnJSP87uAvJyJGMiY7LyZONidxcXI3KSL25NPd1c5XUE1ISUpENClTOChDMCX/+vT559YtJyMjIR/q3dH+9ez15tjz4dG9vb2MXDJJNypALiT+8+j769vp3tXg08zFxcVhVU5dU03RoahnWE9xSSptRypmQyr86djl29OHh4dwYFOYZTeUYTWtbDKjo6P56drz49VRTUuQYDV9UCx3Syr+8eX97N3v4tbBv729trKenp5bUU0wMDDs4tpqW1GeajuOXjT78efIwMCQkJDVdobcTmX/+O+lnZmZmZnYTGTKfTh4Ty1gQClLMyb+8eGtrazWo6moqKjwuodaPSnv39Dt3tDMtbmys7OtpqGlfltbW1tSUVF1XlBNS0veLUvfjUWGWTGkZy/UuLr91q3fj5eMionWYXX4sG/aiEG3cjWCVC7UysK2trbPipfbQlyObVPSgz07PD2hbTzAdjacZDJrRioiJylYPCj27eX06uHx5tzt39LMxsPQwcO2rafde4jUa37dZHbuqGhfXVxtWlBOOiv/6M3az8fYxcT+3bf+y5mVlZXUgY/bb3/vsHZnaGnmnl72o1nRkVaGaVN5YFG6fkencT7ZrK/9z6KelpHYnmjGjViVclXnlEoyMTDevrzMqa/ZmqHQlqD8xpGAfn37uXrZV23KmGu8j2a3i2Kcd1d9Y1GudUIxMTDjzcXgtbT3yZvlrHffW2+xh2Gge1rTzMfRs5beqHfLhUfRipd2EeMNAAAACHRSTlMA7yC/sO8gr7sVXXAAABGASURBVHja7MGBAAAAAICg/akXqQIAAAAAAAAAmD06VnEbBgM43qS36Aki41cwwbGMEHLABp9RBF5CIJ563kuHxsu9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", + "image": "/api/images/system/horizontal_illuminance_card_with_background.png", "description": "Displays the latest illuminance telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_illuminance_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json index 62c8faf373..48fc5ad9bd 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_leaf_wetness_card", "name": "Horizontal leaf wetness card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAk1BMVEUAAADf39/f39/g4ODg4ODf39/////k5ORLcN3g4ODy8vLIyMhYWFjOzs5hguHo7fv5+fm7yfK7u7v09v2Opurb29utra3CwsK2trZmZmbV1dWlt+7n5+c9PT2QkJB0dHTd5PmaruzS2/d4lOWwwPBWed+Dned4k+WCgoJKSkrt7e1ti+MsLCzH0vSenp6dnZ2DnOgFpIuiAAAABnRSTlMAIEDfv1C6kOEmAAADEklEQVR42u3aaW+iQBzHcde2f8Y5GOSUm3rbc9//q9sB7Wq3DfqAbUbz+6QYHEIyXwZsEzsCAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Em/rl6XMb5zrt3k7sF0OB5dPe6MR/ecboB3P5rQTZggxDIIsQ1CbIMQ2yDENheFxA4d+buMTjhkh4tCpDAvnJvNIS7jbp+3Ce1bwc2o2eXHbWDNtBNQJ1jm+tKQZvkYGvn8JETI9M3Z1VK8pET+Vki+c3ap9F/qeJeWtE2lU9WleKtN6MBy1tnPRrurDZtfFDJ12UF4EpJu30oeV2X3hsut9LdxGpeOdOKKSv4S129V7fP31Oc0sDXLp4bez45pWvwmcl/PhYSMfRtSCRHXzj6EpIxL8Z4KQR8hQjiZSONM1BUNbMH06fIQhRvK3eBMyCP7JmQnt5msK1Gmh5Bqy1+Il2nN07oNoUqmWWXutHcpfRqYy+g461c2D9xQsyn1h8zZ15ADTl/w4zD/2DgNja2eGVvo45V2dRjSmZA16ywOITYIGFvnLvt7LzUNTVf6XMiKGavD8/5IVgga8/LMlvRBu0u9zJveEGa4et9hTrVHfnJZQzPD5zWbn1uRJmd7c7JBM20+h2imlyyg57AvZMFY/rEgbs9jbgaf/h3g9F9M2aK7taZ04D5S7pqpbvo/tVxzZud45qyLMT9PEXU8j7yJagcm5BFRERfkRdH+gBkYNClwzcO+OF7WZhPQK3vVpqf398jSrEpnQychWaYiIZTZSyiJEt+bJSrLhPKflO8RqYL7fkRcdQeU8GlAet3ORlPn9EO4N4QCYp0w+BSiZlyoQu1Diiwy+2asiFQiupBJFJkQMSsEN7kJpyEFOvg6dPZvrWC9YqvNnI5iFSVqlomEtyui/CiZ8ZlQZuzJL4SiNsRrV6Tw4/ZAliT0w05DLhcVPQczEdElbAjxvL6DnC5hRYiNEGIbhNgGIbZBiG0mo/sb+JqdiN+Pxs4NfNHuOePR6OFu4ly7u/Et/VMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAwA/5A5Ee9c9zue74AAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_leaf_wetness_card.png", "description": "Displays the latest leaf wetness telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json index 9b498729f9..6267065a28 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_leaf_wetness_card_with_background", "name": "Horizontal leaf wetness card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_leaf_wetness_card_with_background.png", "description": "Displays the latest leaf wetness telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_leaf_wetness_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json index 4b82b62bb7..edbc0e5d25 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_noise_level_card", "name": "Horizontal noise level card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4ODP6a/f8MqQy0bIyMhYWFig0mDOzs67u7v09PTx8fHv9+X5+fn3+/LV1dXb29vi4uLCwsK2trav2Xt0dHTn5+e43Yi/4ZWIxznQ6a+rq6tmZmaYzlNKSkrH5aPn9NiCgoKQkJDt7e3X7L2enp7Y7L2w2Xuo1m48PDytra0hISE2LSZJAAAABnRSTlMAIEDfv1C6kOEmAAADL0lEQVR42u3ai1LaQBiGYar294fshs05hCQEEo6e2/u/t+4unVSoVaiMRuZ71GXdOGNeFobMQA8AAAAAAAAAAAAAAAAAAAAAAAAAAADgI3378mzGxeX1Vze6/K47riP68vzri96VT2cguur16Sz0EdIxCOkahHQNQroGIV1zUEidUOKRcTeiVrKm59YjOspnhLgu1QWRPlMZ0CggCvQPSVcvmWlgD7knC3GW1X3czmjHkB0KZ9r96pCQSe7shtzVxWjRLIJCboon6ekFG7IoFmYcucUiOFnIA2vCnGdlZ+F+yIAtEb4dIniwE+ItNoW3pnVtQrygWd896RC9XLuJ/pL61jtVyICFs6pYEIVmNuHh3yHz2Ww5Z3F8iJQ/i3pNhVfIRDZ1s5HShugDwcatE71JJ9uRXNzqccohTXhCFE85pq343tmG2LaYOXwtJHacF0KoKYKnxqVC3jWul7jNxoQErn60BT9HtG5cE3JC5vSHbJLmvCJrMGUW8zaEmFevhQyY25A9QTvaYff2hOIwNJth7/3taITMk1nONmQemj95pINCPo/DzEPaD1lyrsftjljz+KAQ+xj7HGE1EVzthzzycufJnrOIDwnRE0GfJp5yuBcy5EEbMvy90OmQ21lMZJ/oOQ+ePdnz/ZCcq2NDfHqBf7O/4NMpzO0OCD0u+dG+mJC1tKcv2pBQ8O2xIWMbo79vUrKiiKK+Mgt9ioiorEuK0nR7QC+8J2nJ04dqaP55LPihEly1jzazbkOmef44feMF0clze4miJ5NnIUmiUimVnmWUpZkXjTOVJFJ5N8qLiFTpe15KvrIHlPTo/w0E6zON9Sw0s/YsVvq34Z9LFDGJj71otCFq7EtVqm1ImaR6rtfKVGXShvTTVIfIcSl9nZv59A5hGLcvKfHO+juvfn+oNFPjRGa+2RHlpdnYH0ul1268UioyIZHZkdL7YQ4kWUYfzIYcLS3p3xKZ0gE6ERJFrx306RCdCOkihHQNQroGIV2DkK7p967O4G12Iv9Kf2DgDN5oj/QHBnrfL0fXX93lxTl9qAYAAAAAAAAAAAAAAAAAAAAAAAAAAADgg/wCTYn9BVfiGNYAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_noise_level_card.png", "description": "Displays the latest noise level telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json index dd4a79a5d5..6ebb7a154a 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_noise_level_card_with_background", "name": "Horizontal noise level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_noise_level_card_with_background.png", "description": "Displays the latest noise level telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"dB\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_noise_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"dB\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json b/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json index 32fa8954f4..5dd3f70b34 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json +++ b/application/src/main/data/json/system/widget_types/horizontal_oval_tank.json @@ -2,7 +2,7 @@ "fqn": "horizontal_oval_tank", "name": "Horizontal oval tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_oval_tank.png", "description": "Widget indicates the level of liquid in Horizontal oval tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pm10_card.json b/application/src/main/data/json/system/widget_types/horizontal_pm10_card.json index 0548e0cafa..e9a7239452 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pm10_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pm10_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pm10_card", "name": "Horizontal PM10 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/f39/g4ODg4ODf39/////k5OT/pgDg4OD/9N//vED/sSD/+u//3p//0oDOzs7z8/P/6L//x2D5+fnIyMj/6b//qxD/46/b29u2trbCwsL/2JBYWFjV1dW8vLzn5+erq6uQkJD/tzD/78//zW//zXD/x187Ozuenp7t7e1mZmb/wlBKSkp0dHT9/f2tra2CgoIEnlQuAAAABnRSTlMAIEDfv1C6kOEmAAADg0lEQVR42u3aiXLaMBSFYdqkh4ssb9jGNjY2OyFLl/d/uUqihTYt0IHSIfR8kzCynMnojwyBgQ4RERERERERERERERERERERERERERHRv/TuzetY7++6b13v7oPp6KZ48+Lu+859jBuQ3nd6uAWfejcSAoZcG4ZcG4ZcG4Zcm/8rZDKddjFpgWYNZI2d6OLK7AvpB4XCd6N19tCMHoCPL/gymqJ9al5wnn4dFv52hCNU4OMV3y7weEgiIrrYhmR4Go6esq6NmUwxXePlvC1JxNBzMwrdSOGglcYrhWidz4+GLMXK1feQl9EIo+nHyeRbyASjs0IC0YN5KBpQdrQUDwflyS8hIZSER0NyccLdjtibp4d4E7Je4yE+a0PcbueisJQl4Ofiw1EK5lC5o36hYEe2u28n3QxU0Ie18LQ6FqJkI/k5ZP0Rm5D45ekLzmeX74lNmskclhLtrrbEDGd2AZutejazA5nZmdBeitrm1Svp/+mO1Ngnxpl8pZaygAnpw92+DlnJLKi1eG42sSGyKBYmoi60hKjNRkpyKMQPkwC1WFrhUuy6xMP+ECWigML9TGD3a+CGWgJ7/Gy+dS7FoZCZ2wm3gXNcjgoXWsL9IW7d3269mR3uugM7VHXg40DIXAwNqMEcF+bnovaGBLsQJcEvIcf/ISoxZriwwv413R09keC3d/ZCttsQijohBCsR+7trrzhy144fX0/E+FMztwPa3Nby7Na//TP6dgmJ265vS9YeTglBEA4AXyTH1tDFmK/HEk6aIu1FdqKH1ByPJ2OkZbk5kR5/UKslT0LPLt/XkoRawm2IDhfucX9pR7l4piA4JWR3/eqfQpomKrMsMqMKVVm16bCKmiaL2seoTYFoHLdtiThyJ6KsxWGBFtPi27Xb0WJ3YeeSezYESzNeiWf2xz85ZPc0bRcSDeMsGkebkHFTmrGZG5dRlbmQXlmakGw4zmKTW8U4QikfG/52ZK8x/8d5+0Crk7/3NP5zVFbRsMmq2O5I1JbVMB5mkZl7bMdZBBuS2h0Zt5/tiaaqcBK1uw7qZ4W+luCiL6zKMfZrshLG2SFirXDRkDQ9dDLGyfyw3kWFyWLAl7pvF0OuDUOuDUOujQn5hFvQ69zfwNvsQHxvPjBwA2+0p+YDA50Pd73uW3f3/pY+VENERERERERERERERERERERERERERET0j3wFxKH86witj0MAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_pm10_card.png", "description": "Displays the latest fine and coarse particulate matter (PM10) telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json index 823b419fdb..75e8b1853b 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pm10_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pm10_card_with_background", "name": "Horizontal PM10 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_pm10_card_with_background.png", "description": "Displays the latest fine and coarse particulate matter (PM10) telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_pm10_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json b/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json index b64711d5c3..0625e3b4cb 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pm2_5_card", "name": "Horizontal PM2.5 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4ODv9+XQ6bCQy0bz8/POzs7f8Mqv2XuQykb3+/LIyMj5+fm3t7fA4ZWg0mDb29vH5aOIxznCwsK8vLxYWFjn9Njn5+fV1dXY7L2tra243YiYzlM9PT2QkJCn1m5LS0t0dHTt7e2enp5mZmaCgoKdnZ0vLy8j+senAAAABnRSTlMAIEDfv1C6kOEmAAADWUlEQVR42u3aa1PaQBiGYar2yctmc2gSciaEk4Da9v//u+6uiFMcEVt0kHmuDzG8Ycbcs4TDwICIiIiIiIiIiIiIiIiIiIiIiIiIiIjoM3378lzG1bX31Q2vv5sOL8OXF3hXg5sAFyC7GQxxEYYMOTMMOTcMOTcMOTcMOTdHhcxubz3MWqC/h3c7243OyWshkT9VeDK+T5f9+DewWWOdbu7taJQGOImkyn2Fw5SfYE/i++qIkFhE9HQXkuJhNH5IvfESHjZ2SZY/ZziJXAzd4aC5qP20utYSvRkyF6tWTyHr8Rjj281stgTSNYyR99DiBJRI1OWicZBeYU+Uq0Tmb4bU4uS7FXGbh2WwRL8OAAT3uL3HCfiycv9Pbbvs30QlMLppZ28bkfiAStwEiR/Bygut3gpR8ij+O+TXBkss1+Of7QY/H9beaUIKF5LAEXGzGEgKewLyA0Zc23Na2ElemY0r8GOpjl2RCq871aWupVJzibEfEov2ff0YomMbIvE0F6mr6ULmJiNBvToUkuSxD5vtwj9eJ8YieREiooCpC/ElsiE1gIVUdrpAJFqLfyhk4VYif/up5GQrssq15PshkU3YblcaJsTtFuJvp6o6/PTbiWHvF3X4DJV7VGmJXoQsnkKUxC9DnEMhyq00Ps3KPT5i8fdC1POK+NK9M8SJReydq2L6xoUd3O0PArxfLHO3ItOnkG67SrVE22uk0HhviOPnEZCI1NgZPcYEuCvhZBmyYWgHQ2QAJrMJsrJ8PGAGxydFInFeiN5dIzqf1zYkFz03ez9MQfX+kJ2kFv1XSN+HZZqGZq9BUzZtNmrCvk/D9i5sMyCcBG1bIgjdgTBtcaypFpFCPYeYWzYEc5F6ZU65EvUfIbu3abuQcBSk4SR8DJn0pdk3s0kZNqkLGZalCUlHkzQwuU2Ao7kX8l0IVPI8j6SALk74Nj4sm3DUp01gVyRsy2YUjNLQzO7aSRrChmR2RSbtzB7omwbvtQvZihYdOi3Vh36wKid4XZ+WMP43xBerwIeGZNmhgwH+XZ7jiariecSPul8XQ84NQ84NQ87NBYXcXMDX7EBwM7jyLuCL9sy7Ggy+Xw+9r+766pJ+VENERERERERERERERERERERERERERET0Sf4AN2T4354zjDoAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_pm2_5_card.png", "description": "Displays the latest fine particulate matter (PM2.5) telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json index 0d5690cd8f..3e812e90c7 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pm2_5_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pm2_5_card_with_background", "name": "Horizontal PM2.5 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_pm2_5_card_with_background.png", "description": "Displays the latest fine particulate matter (PM2.5) telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_pm2_5_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json index 7a2a3da436..b91cd32661 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pressure_card", "name": "Horizontal pressure card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OTYGDjg4ODri5v64ub1xc3nboLdNVHwqLT98fPOzs5YWFjz8/O3t7faJkXx8fH5+fnb29vCwsK8vLziUmnV1dXHx8fkYHbn5+f409rIyMjzt8HpfY9mZmarq6t0dHTiUmrfQ13umqiQkJCCgoJKSko6Ojrt7e3tmajsi5z39/faJkTgRF3pfY4hISGGGYADAAAABnRSTlMAIEDfv1C6kOEmAAADqUlEQVR42u3ai1LaQBiGYar2z89uzgdIYgKEcBJBrW3v/9a6WUCgUiTMlAnM90hCTHCyr7Aggy0AAAAAAAAAAAAAAAAAAAAAAAAAAACAS/p29XTG3b1x7dr331WH8YOuXmDctR4CugE/HlptuglthDQMQpoGIU2DkKY5HOJKujaHQyy+upJDIc6bxaagrfF8blDDHQqxOVJfQ/rgj/NlZnQ6VOUYHb2otVoZ1eUs5vrqVXycaOCYq31CmLQmWGx+wFGGgzoh0mZmQVt+TqPQX+TPI7/zPFlk88kyn+SGb/xeGP7o+YyKMmKqvLFiS50xZbY2Z2fb/TvEYs2Wp4RsSwTt8Be+T35mLMejsT9JO3O16BCf5qPxkmpyZ6yQItk2ByVPq46ILaca5CNbcjBj8Tmk5zivM5VYY7LLJ9rl59XKMJZ52MlzP83y0XgS6pDnSZ5TTdIWziqk5FJ1RazGZrNDml2NdMj2R4g7HEodopMidlaPQnk8RIodw/0Q0g+t0cKYj/xwvBxVIcZiNKH65CrkUc/EGQ/UyC2S27GZPN2E9Gzmd3MToq/klJW3oyEm77DoL529Zbvv/BBzvS65F20mgCvNn+xsQlg4PZ5+hDzyE/W4NJ2I5bEQ19whqZ7zQ9TClrB5uh68Gu0m5JcaFHMVYpnm0OJIkhAuqRrnjHvkAiFCz5aBfvq1ondzd7KvQrSouoX7Wlo2O3XniHKBkGrL2gzO5NnnkJ7jOLrviaPZowqp+6yl/KcQPXA92fUDRa2HrjMkhflziKAVl1luo794HXmjHQEdELz8vSOoHfLKvWrbrram+rzS5Xc1ygHb/w6R/K6jnVNe2fdKQh2jLi8xad0uddtetaNNXfV9f9ynbhyvDqgdwYkhrq2nuFhv/WSrGqAtyojF4RCtuu2UvwxxV39rOXshWebFReGprYSSOEm7YeJlWeGlL16qRu71gzSNKfD0Aa9ITwvRv7Oo1Fs9Zi5ddXpVwdETHQkZ2MxTi8ujIYoQFps9dz/EC4PC63urkH4Wq221rx97SaFD2nGsQoqwXwQqNwnoRK50P21JSV+Q8qz3I2MvTrwwK5IgVCFeGidhEBae2veS9gsVp0K61T3ST8fVgSxJ6AyXf4cY9+nfsiKmy9MhtXW7xw4GdIpGhDQRQpoGIU2DkKZBSNO0Ww838DE7UfDQujNu4IP2H8Zdq/X9vm1cu/u7W/qnGgAAAAAAAAAAAAAAAAAAAAAAAAAAAIAL+QMW1wDljmkjjQAAAABJRU5ErkJggg==", + "image": "/api/images/system/horizontal_pressure_card.png", "description": "Displays the latest pressure telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json index d0551423ef..a7de00c0df 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_pressure_card_with_background", "name": "Horizontal pressure card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEUAAACbr7dqg5eruMFIXXDNzsWHnrL9/PTj4NTNzsKZsbyetb/l4dFIYnpFYXjr5NeIp7yfs7dHYHjeI0Pm7PDq7u7j6u7O1NjT2d7p7fDR19vU29/n7vHh5+zv8fHh6e3f5urc4+jZ3+Pa4ebX3uLS2N3p7/LV3ODb4ufa4OTs7+/f5+vT2uDr8fPk6/DN09fd5enX3eHQ1trx8/LL0NXd5uzP1drM0dXFy8/r7/DP1djX3+Tl6u3u8vTU3OLN0tbGzNHV3uOWrb3g5unJztJAVWXs8PHj6Ovb4+nY4ObLz9OYsMHf5Oju8PCRqbnIz9Tc4uWSrL+TrLr09fSPqb2UrsGKpLeks7HagZSNprmgpqmas8M9UmJlgZZdd46huMiwurWcsLPc29GlusqqtrRgdoXHztOrsLTZ3+LW2dOfsrSGobRQZnjR2N2dtMWsu7qGmKXx9Paitblxj6RccoK1yNRXcIZLZn5EWWnT1MzEyMGMo7R6nLNohZp3iJXV18/ByMypvcu/xL6Ama1gfZNke4lPa4NUanyvw8/Zr7uFnrGOoKt6k6l8jptYbn9BXHNIXW/N09Chs8GKp72AkaBviZ1bc4pMYXLcOVa3v7+csLx1hZJHYniyuby8wbi3vbVpip++xceZr7N2jqLVeozTp7Kan6LY18zRucGnuL+0vrqRp7Wirq2Rlpltgo/j4+Dk3dDM0MrR0MJ/oLittrfni5s/VWrk4tiuwMl0l7CaqK6LnKbkcISrwM3IzMbJy8CVmp5lfI9LTU+2xMmWo6ft8fPc3tfExrqEo7mFlqDs5tjkztbbytOmq67Vmafhg5Y2TmLdLkzno7DUkJ/dUmtYW13fME3N3ePr19zW0NXWxM3lvMZqj6jcdYnr6uOSo67aW3JjZ2ndRWDfPFgnQlZNT1Fcg53caX/aT2i6z9jMxcvYZXswMTL39uzF1t7jmqncjZ5Pd5F9gYRwdHdAQkPu5eiKj5HjY3nXY3ksRVzc193hVW7z7+TiVm54cVsVAAAAE3RSTlMAICAgICAgICD9QN9ISN+/v7+/oJ7ZJAAAE6BJREFUeNrswYEAAAAAgKD9qRepAgAAAAAAAACYPbpnbRyG4zh+T9xwR497TVr/IJCRDEK4GjwKtJhLBseDsQnBGAIpzlA6BDxmPDjo4KFb30rfxf0qNw0tpWMnfSDBth6sL46iKIqiKIqiKPpIX1/6PDtdfj/D3Wl4vj8J169WB0+rv7zp9Pi8zzvTw/vwO0/4dhYyfvw03uZ5Xk+bzWbK7c56YkJK470hUkLqNE2d61yqObve7a4ZCI6nOkkSRsSSpCxLTcZi9eQZCSYEeWuMz3Ns5Nzf1er2cDhkbYb/KquyrBqGseHlOGTZ4BjjxyPnCS+7ph/HYaiyu7vLZ22L6UXfdPca53CYU2Cr/WK9Xi5vtsGvC3QIIRQO7a1FS40ihAitpSL0YAwpocSl5REl6MAAk8AhwSkk46nrONmptrUXpAiUwra2NuTJGFL3t0VxQEA1l7RtO3RMNzjzWEIHIWJu2O8XT/YIeewo+r5voO+LYqjay8Ua5o5/2+3N8uLT76srqQIyFD6NNTgDYhCB0z6W6DlEa44ShDCgPFehhHMtBcY1ha9gwjhCBBhr7ebPw4OdrFwV/+kolxelwjAO+zdEmHjBux6xTIVcjA2RbRRbpKggUi6iVRcmTBlwDGQih3KmGOcC1WLAVcxSiIaY/QTtz2agXTCbgbatet7v85xkoIeZ8104o+/zvb9vOEk8Oh3qgFe74zG1S3kM0ghx2HuxtTUaPRk9UYx6e3iICALTDuxyBsrT9vgkvLvkmE1saro1BKqF0DN8EJlMdLLePEaj2e9TO+DTbpeJXbPZR7BS6zcr1Uaj0FJJQw+TWq0u6To+M81z0+y2apPHa0cdIBjAQRMvOoGIjtNebwuB/f33mn3lAbhYIKEcSJUEi4fyYOKYnZyczGY8+RUViRIltEkYtTQnSIgGIn1g1hcOC9VCixebDblBlXq1WSkXGs1Kq1yQLlUXRLrn5m2zdPv8/Ky7cdyu0xkaIyoPYDClGePxlGY86o2e4LC6+kVYFY8R0Vqgp/ug0eO8Ka/vjx1IcBWPjib6lnDjh0OeXdgAFg/b7W2bD1x3+PxwONw4HmqO5dUufJXnxldgrSBWZqlYTN+AIjKmaZ7xH+WZtO2w/3bl2yH85Oftt5Wdzc2XHy1ebu7sfF9ZYGfOJlgz2Hr3qTcYn9TbDjQQWevesEj6fD6/3+8EPfiTgaARLoUiQiiUCIcNI3wvmA74fMlAOh1I+ngrlbpscdMJasMbi127trz8XLO8fI2Vesa8KT42GC7lI8AnZ+IeV9SdW1q6AktL2azb7Y66XB6FyxWNRmWDHYiyBBZXr3ri2wdrjXr52UMtMsPDhsL+gYcvmTbkK+PxTAYPIxi8GzQMLZJWIsrkstcySbHSYt7/iGByOeULBMP5fCiEByJ4ZPHQImICqlrAAlgzBTfrp1HxRCSy3eEW12oOidXabO5QvJGemzjnHrAgEkkY1K87gYHVEXA6lYPXa+vYImCL2MRoih+TcCmBihLJKg1tArmcJSNDLqfmepHNIapbEo9E1ju74/WpA4/T0wkO/CgwUdGyoCWBItmSLzTSHH6KM8cumVRGiCCktkE8LpqIykURbaJCiwsmcZcbkQuIjqo7hxYzLaHBEhUPh7v74NVgMHCcnh78+rVuGNpCDfTEL+ikk2aqDgTSwbt3fJKgGDXIroBJIAmYIKIgVdphoScWIgB68HJR5CTkkLTI3OTWdYEJv9jMtzHBwoIlTUEkEpr2HgzWGw40fv/ulP4RNlChMjFBRCpzWqSIDqdODfNd39zEakmK7ZvOmym7OYjAooeXv1cw423dlVDGE81iIhoabLSPRQ6skYl4eDKRfCLxpvO4Wq46xOP1wW2bfL5U+vMDFVUctVvZj4EyQM62k5aAvExPQLb+Ul02rU1EURjOfzhBU2Mxk4ntFD+aytgURqK1IRp1oaIlTZcuZqVbNwpxI2bdzVhwISQyUMSFFix0UQaEQmtCP6bUxkBTiSltoDWJWurG99zrYPqkpelAwn3m3PfcM93XpAtMROOSKp88D9CDFyPKjZqo4UgQJYGJ9IhdPsJRH1EWeJyNhNFyRkLPxCHs+/r9x/PHT+PgrCQ+PFynRY2bP1bHKrKTShE/Virz43kg72yC31PeJe4HXmj4g0eS0YHfE9H6Il7bYg0PHcR0WEkR+HAlIMxZ7zW0UDfKf+zB2BjGWd8MTLgiQiTAjaCYrlMunUJsonDBit40m5fPyx0lAwNBCRYtgQ33Y06NaGW3bo2cQaCOmMhgAL7oxUl6qJ7I8X5o6B43ALvEYNAvYI+HDznlkZTSfcnPPBrl0RVhR9yfpAzDgMxZlrFoCa+CoeKwQF3OnKn9+tB4rUfC/n54JALR6NDp0OkQfgJXQqevSAtFE0cLJGV8b+M/LpE0OYeXgDUEZViA8n4pxx7ISMBeKaAeMb2QzxdgIMhTHiK8tworoGhfgEOQI65FT/n9PT1dXV0Prt6cREZmZnAg3tOAmkoJlw2LiNLx4ZSqqqKb1cyom6m1X7XcWrBVbb9sVhtm1RyqDTXaQzW3FYWH+HSfqihRoGBhQFOwxaSJx0nAFpU1EiErEbAWwzjY7W2iXWjYlri2818kJkR2SWBtYBIw+pQRlAPfyyIvxifvIiP370/MT4xfl2gprgtM0oiKkRIqquq0HUervbzSmHPnatXM8WY1M1g1s062pjXduYbCGjgxwzy+aADRHUB/D8MLu1g2io5cvNsiwFlboG+5coVWewMBe4l2V2z9RmKbDuzCFuUTnkjME9ksFve3yDpUlJEQNLq6epLwYBEeVH135p+8nx+/GMXpAaTKxj4yDxOAfmw4Jv462WzDzAyapvPmlem+rWYg4mitqmnCFtUwMGfgZjGR3qAsP7yisiYSWY+Fb6U9IoSpu0IVpe/LEn05ccGilRg0EgnL2kkkimQJDx0iO8WifXzwxC6lwyjEGu0h4QvL5fVkMomCgI+TPIL67k1g2roDB8FiuoNCfFjgfIaTkzVartPfctuvm66TedtwIaJm224VuhExLnlgzAPBXq4Km5zvmFxk414g4kN2lQroV1tkDxbpIGbbCY8CbcuY52nTIloqBAfqlB5BX5+lkn/hD4FpWQ+IXIXIlO/O2Pzo6Lg3a+Wog3ocNzbO9MYFOtarY6U67n0M71khNsAGQY8A8282RVUG+rC7OkdjBFzsKeIesUo5HIXQuVChzSUEQKjs8NZa0UU28khrcZNWb9+qU4m30x/a6/lNpfLyGq17IuKZwMePguPPTnXDAhk5zHWwwS1ZAh+BWDFWCLBKwLdfTnI8kOKdBCKyKoYqmtd5CQecOzREuNNBBE8HEDmBpB/kLdpmkTz3GvbAqZGnSuT2IdEl/yzNlsu5WVpb/zQ9/TOZ/E3LHSJTU3/JsL+XpsIwDuD7Hx6Xv+hUbmWnH8z9YJ2trUYb2yxtIyHsdBESdKQYkbfdLLqp6KqrNjgXEz0kcehmAy92MRi7sikqyDQE0YvCLvRGCyLo+7znTBt+xTk2kPPZc573ed85XtVxcHtz5szly+m0a7izIjxcjiMMPGva5wGR8zlfsL3F8yH2HlxssgFxu1CS/0eoGDRfiXiFAERmyFtAZgK3d7Hoo8dnZ34vL8+iHN19PeO0lIo4iUKhKomsLUgN6WBvqbpDK6EQGE70yDS6xHHr4YcPdx7z9m8offFiZ4+gP7gM/ccYvvAcNm8ifRwoMMQ4PH9tkg8QhqMigBwfcJjBgwYQFwLCgNuGzKLXf9MqOgOZpW1Pt69nUF6iJWcyShSVqvRrZWXlG3Zs0h6tbf9hCCQhZ299Dply3EOrPHiEj+poTA+lv+5j7eKgCQRFEHKIheCLtzYMrMAViPBNjeDlcNCXswaXF5AhSNqx99GADMvy9e+06PZ60ex9W7SKj2KLFndXF/nfEIX7+gdGUktU8Y+NEfmjVTxDJEk6IMKSVWUIUxgyNTXleIDcfRzh8ykeIvg9s7BD4y4Q7NwIAAIGCDCE+eJx9fkSbmMEioRIqQSLwHiskrDDjf1BmneVdpiBuQMIHwz3acs7uEEfe86P0w+PB7Pw0y4tf+ru/oTX3Nl4JFShypiA+C2IhLRoLSl6RDCczvoU8tRx/z6+znnUxcEdx++1drjbMFB4OHIMFCST8ynBkg4EFDEloOhqopQo6AklkYjph3osr2mJhKLcVpSbN5Wg5Rh0XweEpz0sSHs34wKEF7v1j/R9HNO3vwfPfs5s089weIs+zmwu07g8koqEJAHxtyGSSHKHqpW/JCBOBBDE8e4+vqSaZ8QFOBuN6MEOreFnDwdqu9lrV66Uy5quqk3T4zGuGWWjppiG2mwaqllQzbyiqHrJNLVYSeU3mk3VyPGK5YVD5h0bMmQFDhsi1r8NHhKbvHxvbBHR5npP/zq2L7S2H0+lIr2SvwNiO5K4Y+hPFd0DhwV5OjHteP/62ed781wMdvCptFKp0rdfXy6nIbEhubJWU9RmoXktYGQMrdDUVF1tqoe6ptYMASlrGiAGYPlmzacmLAd2RcMum8IIjrVHFA48rG+sD3pF8AwDNJuNpxYWIkhXb0hCf8BhxWKMjo4mR0dbLVTjEhAWpDgxPe24i1X41hEEEv/Yiyq1rvZGTg9dHBYSE9XQappq5M1AxlBrmmGWTPxVDwumbqgKQ/KoSEKvHeZNFUpVONwsAQQUYbEdgIhtgBdhj9frnhzgyHJ2JJ6CAMHDCYjtSMLAcdqZB2NiwqHk5+c+1EV3JBGJvyg4aL2INpJMObq90Os4YHquBTKZjFZ48iSGKP8nFkPDY+VCrXw50ei2REZRbAoz2CG7YcB1y5MCNMkEBIx4SkDQsBbED4aVTobtaN9az5+XHfP1uWKxzpOFMYLij/r9UZZ0nTrLnQILhhtWraBHSJQ8HMgJRwarVkIJY+0VEoS3kWgUxMKwA5ABvJ49dy4LETIpwzACRfwsQ6DAnQWKMwlIx20FyCWbcQzJP+c4isXi55dzopwisCAYn41G8kIXisInDTfKAkkQEi4JCsI5UQ84eO39R5fdtCgRxwEc9yoE0UF6giALogiCCiqLCEq6FBt0EKKDitYqG8qyxDYHlQkREq2FQuzBxS5ShDkhK8zAWiSGnnwF7aU3EXTo+/v/Z3Y2q29Ozm5tOx9/82A7BzjUgZAeS5gUBQT5ECSLOIDA0F1HooISOnFojoFA5yFkra0h/AT2yeOXrmKOc2E/EvUfvouXD3oQJEB0LmJ7HMoRkTcoUEhRiKNAUejWcQovLoY5L98QCQNREAiaQpoTCt08JI4z/4WodQVJBa6U2l/ffA3RBVXIlRBPDJmrsexgx5Cc3utPZGf37i241/VTQE5rCKHxJ8NUvIAcZQyHbygJazsgPgYJM6E5h4zhHxN5cPDgeDw+RGqIshdqERBJrvXXleTkvgN610LiE2hh4az/RisCBAltW3hAOepTwkyEEbH5IjmuIL5ErcOg0ImbOyDeNOZq5nLvlnOBTAZH5vttN2+n5MuYjh4P+5eWyEjO6ZF4oRAHiogOiJKIxdcg8U+yYSAEhG7d8iHkQUAQkLl5/E05lWIeXNnHgzENQiD8BONpLnCoXLp+9fAR+bEmZ+Czeib8IsUQB5sveRASjK+RkxgQNxh8JDsUEmJNH+csLiTkQuYd85TIcnY5S4HBr+lAmn5Xffyjxcj5Uun8lYVzkXucpbfyzwuvut1uOS2tSOlyucxnuC8jt2UmE/dWTaFQkKXAmk7+2KluVbdznLyztSzvv7MJ205k371pX1lTWaXza9f0aoaKa17WmkWPOp1OsVh8RNZmqZ3LZhPElb1YTGaSyYwqOea3CIv6i0WrnbKr8v1tvs+7t9X8i4evn3JbbPaTfnj9nM1mG88alRVo9SVunUWj0Y2NqOpuVLe62liqp8tfvpTTZZKXgVue6VoefK2mXoZR3zQNYzg0hoZhmKxvklptNd+7xePrrW/UWteltAIHENliymBBQuJAB2Wzb9u8iI6y2FXK17485P6jcGaquzzubqzCUNtXr7gQzdguuvpMIDgIRB3H0tJKQSCOM2FxRnETRnAYDAbRABkKxMTRWvcY8VQq3k9JsVhKPoxlMegCu6fJwXQ6HYx7yV6vJ5IeiI6sW0b/g804cqbB62Pxz77vx5xat15ho9mv2B62ii1iGl1iOyuNZ0DmGECiQFb0V4mBGo1GumAn7NEHe0Sf76x/Gw4/fQryANJqmQbBwBF362tCTD9RlhLE057AroGCJIvE7geDOp3edApl02ySaViP+GTRwmKYzZQda77p99/fH00mI+d57VWX44TjQCT1xk4JD38iosZeUfduG7L8ZtfeVRCGwTAM11bxeH8FJ4c6uHbSSRDESSdnxVUCHgbdnAoFL6J30Dvo4PsnrVTQwf1/aNPQDM3XHKaM1yF/KjImGQ4TghDCBZHJs1ukqY1R5YjK/hvjQnC5GASJ457nDbqsIFAQhJtCqmdxJQkOj5lMO/aErMhRnCbzZ55n9/nheLwswoRVbreBDd2UyTWlsMggNdbIivlEqyS90Uy05dYYRsRKzCi9iirIfif2qI1HCHJEFI4bj7hPDrR+6IBHIGdk3i/adbTbt0HDd5r/8H05RsMtDz5RE3zVKFH55CmllFJKKaWUUq/24JAAAAAAQND/174wAQAAAAAAAAAwCqCi5ZfRKSZBAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_pressure_card_with_background.png", "description": "Displays the latest pressure telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal pressure card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_pressure_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal pressure card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json b/application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json index 36ea0ef3f3..f2af5d5113 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_radon_level_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_radon_level_card", "name": "Horizontal radon level card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAApVBMVEUAAADf39/f39/g4ODg4OD////k5OSAwyzg4ODv9+Xf8Mqv2XuQy0bP6bDOzs5YWFj3+/Lx8fH09PT5+fnA4ZWg0mDHx8eYzlOIxznb29u2trbQ6a/CwsJ0dHTV1dU8PDy43Yjn5+fIyMjn9NjX7L28vLytra1mZmbH5aPY7L1KSkqenp6CgoKo1m6Qykbt7e3U1NSQkJDH5aKdnZ2n1m4vLy+qqqrWFLAGAAAABXRSTlMAIETfv0i0+14AAAPtSURBVHja7dqLVtpAEAZgSzsZkmyuBEi4BAhXsdba2/s/WmeWUiJW5dDSA5z/O4rJBOP87G6EAzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9O7i3ejGu+dS9d835AcTosuXuo0bj6kdAVaH26adBWaCHJmEOTcIMi5QZBzgyDn5g9B3JiUt6ssHh8d2kiWtJN8pLq7ko5wsiArzmwcNu62FN11Rgk5ibRejogklOyRbES6kySU2P1hhw7lrbLg9+n7/ZisuC9uPXpm9rzm9W9fDzJm7pIIeJck6tAo+Thcl4v1cETRMEqGUfSoQWRn7Uip/LiU4sFBMhZmun3k2CPLZcvc0lNx7tOeMXe5+1qQjIWe1+gZY7Ki9fdH6txFi6h0Rp0lfb0bduxoRJ3RQqujZLRYLg4OErDxphkbUq6pB5Eh8TmP9+/v0Z4skFbdF4PoWcU9kccq247I1yGty4+LZccZlbUgEqHTSxbRneTrOAcHafNMbvNNI9J3LQiJLgc6DDLHYpdU25BsSuVWEnq3UxJT32SvjEjAIveI3C6L7m5qOdFyveiMZGoNl2tnG4R0SiXfHfm5PHxqzfquDRLbv5iZvSA2Z5AzmzZ7tjzWvPdamWlfmRYzY+KXg9yzCCgYu3HOon7XRL+3G/Vq/efhAu7aKWCoHsR13TEbuzme+WyPBOzagVtpivYsY9n3A1rx9OUgXdv9jPmb/KaY0qm4xp7cl1uzv9g9Xau+bcfT26694xed8LkdsUC+u7l58x+iJ8HptGJjJ8hU+zVPFvvK18vlvfStLXtaDWyQQDc/bTdnctF+M4hOLTqpuCs5hMTp93Mee/U14vNYH/VtkDG7z4NYbwaJ9euktFfb+S/tehCdVv5uREybjg1ijE7OnZT+IH3YL6R0qLGsQRV7yvBq+vTyO6aVzaZteBwcGyRjUb+29bRN/XooyGq1qNUMtdCkluxPfkyoVRSbA1J4I9KK+d4Xtp+na8T35SqbuxTn7GdtliM+x0cGcdkaPwlSlmFRVaFsDWhQDOat3iAsyyqcP4Rz6TycpPN5QWloD4TV/I2JteE/C6Lyb7ompkYmnB4xPh0ZxPDGtB7kc9hLq3ASboJMPheyLbVJEQ4qG6RZFBKk6k2qVOIOUvprrqtrZMazo5/G+13mvF1/Gh8Wg7BXVoNURyScF4Ne2qtCqT3MJ1VIGqSlIzKZL/RAORjQv6BBTvrCqpjQyz5XupAuI0ir9drBlP6ZIHPxUvdSIci5QZBzgyDn5oqCfLiCt9mJ0g83DecK3mhvOQ39CEfTuXTvG9f0oRoAAAAAAAAAAAAAAAAAAAAAAAAAAACA/+QnXMPkgka4f5kAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_radon_level_card.png", "description": "Displays the latest radon level telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json index 27694748ce..3a9e039e1e 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_radon_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_radon_level_card_with_background", "name": "Horizontal radon level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_radon_level_card_with_background.png", "description": "Displays the latest radon level telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#80C32C\"},{\"from\":100,\"to\":200,\"color\":\"#FFA600\"},{\"from\":200,\"to\":null,\"color\":\"#D81838\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"Bq/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#80C32C\"},{\"from\":100,\"to\":200,\"color\":\"#FFA600\"},{\"from\":200,\"to\":null,\"color\":\"#D81838\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_radon_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"Bq/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json index 9f94eb4b46..9e1998c554 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_rainfall_card", "name": "Horizontal rainfall card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4OB1j9yRpePk6fjOzs7I0vGtvOry9Pvk6Pj09PT5+flYWFjIyMg+Ys7b29vV1dUwV8vCwsK2trbw8PC6x+6fseetra3n5+eDmuBohNi8vLyQkJCsvOo9PT1aeNVMbtE/Ys7W3fXW3vRohNkxV8q6urp0dHRmZmaenp6CgoJKSkovLy+su+pLS0shISHWoRcHAAAABnRSTlMAIEDfv1C6kOEmAAADUUlEQVR42u3aDW+aQBzHcWe7P3/BA+QZBETQ4aytfdr2/t/ZDgStjS7baBtqfp+m5Q5Mel8P0xg7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPhIXz69OmN4pXx2o6uvskOx6dOzlOHg2qILYF8PRnQRRgjpGYT0DUL6BiF9g5C+ORWilyF7Gh3MFguFKnfB7vBUT7f0qFBfnAjROFTVkj2TWs6D+y0mJaYgiGOFYueO5IG+kdMxRJffptFY789qWvIGITrPq4RlWB5CXPoWP26fgsVs4dw77vO94mydriH6PGR5GHNDo9p4xZJndgxZ5uGKailP9iFPzwtyH5zZQn7t1n+3+NUtxKzXWw30Wtj+ug2rk/WK591CNA7LdltDbbLfkYct/QweDyF3W6VjyPi7ZsiQls55E8i3RJSw10wnppkkciE3yU0z1eupof8pROeNSa0Vc27uby3Fuf95CAmc++e4U4g0fhGSs96s3EjqhZRUU1negHyrl8zVJhm88eQoVeWPlXk+ZM6TF1WGyjkdxESnZ91D5NCjl1RetoNQMzZy1UYayla5iVoiKzxj6XF6PkRlOpLf0juSIUcLP0j3XSpr9QMn1fAHGfVTy3xTPenz8yFpVTkOE/JS2uQy5CjsHUJOb8g6DCevQpqhwaocfa+6NFbPh5hyv2SNrssD568f+34h6tGzOw55Td1CaJwn1f2k8Y0uN1srTXo/h5Cx17w229mSuoS0wpxK7+h1b9EJVvz6hPW/Ict2TZNdh0ZvESK3wpSPKVe0N93FWBT7VLNtskeiOjEiW86zWUa27+8uyBPWv4W0G5KyWk1u1YreeUcSM5F7m6yPQoJA+K4r5CiiyI8KexqJIHBFEYvCJhKZVRQ+WaK+INziX0KWXFITMifixo+OIYc/J8chYmq5IhO7kCzw5Viey3wRuXXIyPdliDvNXEvmRhb9D/ON34+kczoyE34kpoEbWdWOiMKPptbUFfJcXGSuoCrErnYkK2bVhSCKqIOPe2PlZ3Re4Pr0N/oQYtt/umjR3+hFSB8hpG8Q0jcI6RuE9M1ocH0BH7MTWdeDoXIBH7TbynAw+Ho1Uj67q+El/VMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAf5Damp/4Ir985nAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_rainfall_card.png", "description": "Displays the latest rainfall telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json index ed2e536310..941e62976e 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_rainfall_card_with_background", "name": "Horizontal rainfall card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_rainfall_card_with_background.png", "description": "Displays the latest rainfall telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_rainfall_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json index 0823d85d79..87afeae509 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_snow_depth_card", "name": "Horizontal snow depth card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAxlBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQwWtfg4OCXrOsjTMfl6/qxwfDx8fFKb9zOzs5+mObz8/O7u7tYWFjy9f3k6fjj4+PIyMisrKw+Ys48PDz5+fnL1vXb29vV1dVaedXCwsKQkJA9ZNkwV8u2trZkg+Hn5+eKoul2j9zY4Pe+zPPW3fWCgoKkt+51j9x0dHSRpuMvLy9wjuRXed9mZmbt7e1KSkr39/dMbdGenp7I0vG6x+2fsebJyclLS0udnZ0hISFSqBZZAAAABnRSTlMAIEDfv1C6kOEmAAADuklEQVR42u3aeXOaQBjHcdukT1ZuOQKogIBXtRrrEdv0fv9vqvuANU7GsZVOMsT5fSZRZP1jv1k2OqMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJf05tVrsLdXN6+df/VOdtx8olfPvnnbuLbpAny6bjTpIjQRUjMIqRuE1A1C6gYhdXMkxCO6U4luac94yHw6YvZ41qcgpAqeMeS2/ZFDPvS/0R/uQ/CDDMMgeVP8kE987Pp/HhmdJOTYSqa6RlI0V6Ye7UWKMq0ewt6rH+/UD/327WNI5vu0XHQSZ+s+OLPANbZE/naz9DO3E2TbzcJZzkJ341IVuhA6ESlCMjUqaevioVc55PaWS/pq0fGVSkbYyahDi9BNqGO4M9eZEclf1++Es0UW0pI6fshPqUAzi5BI5NFkLIZUWomWNlmLceWQz+2iRC3vvlBhQXKiHLKRIeRuwk5AFHLI0gn8/wwZC5NDFNEi8oQgiQ9yvuaESTvedKrxneZ5ER9N9Oh0SHlJ9dSi4yOVsh/ugjgkcN2Mspnxi5dp6y79n52Nk7mubFpUDJmI8ZBD5mJ8GKJPeZvsF2ieCyHGRa4pj/SVvFmfDClL7tSDDmY8PWBGeZOF5X01pqkVIV6e69qYJ/uoxQNlbT6fmkLhjaRwhanLtOmJkLter622e32191nt93q9D/R3TkDVKUInDuHJSkM6MN9fWSt+hiYfKmJVrJvGl6RyImQoQ2RBm0PUIuR5abwzOIT3fEsxDyc3yXONSrmY8JO1cieREMWfQKlwaT0XOXNdX4vWlFrFHsmFt2/k2e/wErBTIac3+zPTxI5JQxHRbnEYr5D+2Hs85Ox/vzYdYd8/PWHT2SK2FuMJrYp5mZyjlR3K4a5XuHr9JOTsF8RBGWPTfUyFbpe6TYtPNKlLRKNwRN04LgfkifOShuULotwjQ2HyHm9xUd5i0W67lBvoSci5b1E4JEms+Pt3Sx6llMap0x2kVpIElnNvOV0ia2Q7Tky2VQxYgXN2COkm/9fSdq8oYkenQiQH8zmdFeIdvGk8DBnYgTWyypBREstjeW4UW2lQhDTjWIYEziiwZW5q0/k0zSPmHR+s+jbeo73QilNrkASpzStiOXE6sAeBJc/dy4lbxCFdXpGRE/JAkqb00jjkbPHoxGASxPQv6hDS7Z4atOlf1CKkjhBSNwipG4TUDULqptm4voCP2Ynsa/mFgQv4oP2T/MJA492Vf/PaXb29pC/VAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyQ32C4FBab7K0VAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_snow_depth_card.png", "description": "Displays the latest snow depth telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json index cc6364dcfb..e5589ce99e 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_snow_depth_card_with_background", "name": "Horizontal snow depth card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_snow_depth_card_with_background.png", "description": "Displays the latest snow depth telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal snow depth card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"cm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_snow_depth_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal snow depth card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"cm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json index 0e42ee38a9..13c028fd3d 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_soil_moisture_card", "name": "Horizontal soil moisture card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQjTMfg4ODy8vLk6fg+Ys7IyMjOzs5YWFjj4+Py9Pv5+fmRpeN1j9zV1dWsrKyQkJDb29u7u7uDmuDCwsK2trZaedUwV8t0dHTn5+eesefW3fVKSkrI0vFMbtE8PDyRpuNmZmasvOqCgoK6x+6rq6uenp7t7e2tvOoxV8rW3fRohNkhISGwsLAvLy8aKS4pAAAABnRSTlMAIEDfv1C6kOEmAAADj0lEQVR42u3aCW/aMBjGcbZ2b42P3CEXCYSrQKHXtu//1faaQQPTFCYNlbR6fhVSaquS/3UcoZYeAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHv68uH1rK83dx+dd/ONO+4C+vDk3dferaRPILjt9elT6COkYxDSNQjpGoR0DUK65u8h9dynI3KbeGRlxgyIvEQSJTFZI0lMXv/92l9D7oXQihru1kyJuCWOBwmR+Z7xa0CSRzZ2XC63JPnLk/ZFl6OeZmTN6vCBDvw6VGdCmo7TEjfxPHJHrpcMdiFLl0buwJsu17Sg0dqNF27MQ8ZdbNZL17tYRilEaVdeHi9IaT0XL+0hTQc7urvkZpHwSgfrfcjIlW4yWGc09RY03cZyNPB2IUZ+H4y2l+rQonya8EUu5rNJZJus8NknHfHs7EzIROzldDAiWpgpbZN9iJtNN6NdiFyQMdOYQ6a0tCE/jfHoMiIR0s6rXbMvxD5EE5UR5frcjmhx8JacTN0RrZdT7xAif3p2E9zE3lp8M214a5YLDqHEXcZ0EUpoUqr59hBSC6V0roQ6E7ISIqorUb0KcdQs969T8nhONmMXsRLlnNfwQsxX6m1/fDuqdERnQrQtj6oJze2WXFHIJz18Fc/2qD6d3OmTCdVanQl54R+5f5hP6L752euIhP2ll6K2Sw9zzRdvVLWahKFqC5kJVtkOFtGVNGc9FPlh7c9+MxepquSHcEuI2ne81tWVd6QW+T7k6YmYFrPm+Kj8mUfylhDi9T/wfnC1vWg5wPLxzwFJlzQT2ieaixVVNkFVb88pX4cU7R7CbSGhEDq350Q3T63h4bn0mNJOEFDQd+xAnwIiGm/GFKTp7wkekJe5t3RY2kXUvKJQNzf6gx17VnxQ2kJ8LQ5WRyFx7KTGOHxVUJEWWTAsnDg2TvboZAGRM5ZZlpJ0dhOOyej/+TmvobTbwBWiCv2TyZLn/LYQUoeSmo5DnKE0ztj5HTKOU77msXHqFGYX0k9TDjHDsZGcW0i6AF8dlqrs1Smlzr3X8ldzIapoQm9+OGnhDGNTSLsjTpYWQzk0Do89ZmPjkA0J7I6Msx92Ii4KehftIeel45bJ2KT0DzoREgRtk5L+RSdCugghXYOQrkFI1yCka/q920/wb3YiecsfGLj+H27/W8AfGOh9u/HuPrqbr5/pQzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+QX7yoAidBTT3IAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_soil_moisture_card.png", "description": "Displays the latest soil moisture telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json index 2a4d3245f2..5a6271f0ae 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_soil_moisture_card_with_background", "name": "Horizontal soil moisture card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_soil_moisture_card_with_background.png", "description": "Displays the latest soil moisture telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEVbTUxvXVh8ZmF5ZGB3Y15fUE+OdW1yYFqDa2VYTEpiU1FcUEyGbmiAaWR1YVtSR0ZoV1RPRkRpWVSIcGhIQj9gU01USUhlVlBDPjuJcGtkVFOEbGh9aGRtW1WbgnaWfHJMREGJc2p+aGGQem6TfHCEbmVsWViMcmyMdWqYgHRxXVt/bWKAa2V6aF5WTEd0YF6fhHmUeXJbVUp1ZFtgWE0+Ojd8a19YUEiFcmeQd3GskISNe2pTS0WnjIB4hlGIeWeylYlnX1KXfHdrYFZjW1Gih3yEf2KdiHhTUUQ5NTN4cl+RgWp/cVyAglt1iUmGd15lXUu40zK41iFOS0FvZ1NvY1mTd22FiGJ/dmKDc2F+elxZZUiUgnF4c1WoyTWNiWR7fVNvhUddXEuErjFVVkSbj3aGklyVklZgY06Qk2JxaluwzjGvzSWRhF2YiXN4a1lrZEtgfT2MfWCji3tzbVNZckijlHyYlmp8j1apnIGekF1WXUeWrlxpgEWXil2IflhrclCKgWqPqFNxfE5jg0CHmGSDilqLoGRjakeNmFx3c0Z8pzCYh2iTnGWZvVO5nI9od0lrj0OavWmjx0GHn1WPilWAllB+fkSQpGuIkGhlalSnvHVde0t6rDrA0KKSiG6mxGeevmJxgFuVlUhfXUKKuDKro1qy0RibsGevzkZ1k0yek26emVaMjkWirHNwakqTj2mGhkyMtD++2SqTul6Otk2innOTpF+WukiUuHFudVygwjWVvz2bn2uaqGq1qVmqq4Gomlx6mlpjg1FVakSKsl2Zun6nt1O6zZqnwJWxyJ/G1atvjliim36itm2OnE+HsFW/1kDG4DOrylGDnEGLp0CSqXqduD+1yY7G1oyupXN9jGljiUl5gGZOYECTtjCiv4iLrmmOmnW6tmyCpWCAjT+arUiuxnGdnkmcpYSctYusxoSlnma+z3rQ3LK7zmavrWW8zVKop0y41gpwozS/q5ajxCaxoIl+r0eCmnKuwF6twD3K30a3u4DU3Jzf5cHYbVrXAABMMklEQVR42nTYa0hTYRzH8S5CN4qKojcJ4dtYQQt7E4NIImKl1MJKVhqyZhe8oCSZuprXFwtLEy9DakTJiCy6WIZWU8rKii6YoonZjawZUQRFt9/v+T87p0V959FZx208n/7PmY1LSkrajiNLciehFaqEhIQVCUkrHLnO1OLio0d3qI6eS/V6pBZHVlZS0tIlaNmyRcuXb1gwR7dgg2r16tXL0vG327dvd7vdFZFwL+XEiZQKVsUKCwur/kjOenr+/PpP6NSpL1+qw7auruzs7BJ2+L8NHh4sKck2k3NLVIWR0tLWBYO1tfvD3y5fvnDkfuNwX9Ovn29qVU+ePDhoVsNqVbjz8uXL59IVfsK3oVAoGAziaQdL9NOxwb/qGWSdqh5d6OvX3t7R0dHb0p076svw8OjNm72oDpWrSnEQSFAcjiyw4C5UGHwQgcTnNKOQM1elzk9YunTp3CVLpi2bsmj5rFmzNphBh3ZL8SH8LR5PVkVWhRtHUsUJGLR4Wqo8VVVeVujt9Kbh6Kyq8rCK1480EISuPm7sysMSYHW1xedomiBujEBRQuAxgYBPIQK1wufQ8SONw8Pvun+N9bdqoAcKaP/Bi1qIQMHaUG0oRCFGJeGhTw951HPmMb/fD6GSv4R6Ogf9nVqIB51EyCASIHwPoSu9z+ueA0iqqxuHQRGgrJX4kMFhKyVHpj2xeE/Rvn3k0UK5uS0KyMGz57G5cxWR2TL4gIYl4MGzHA78iMfRQikywauFEF6WZosUCHi9ATWiDwB0SoR2X63ut2FxsbbscBAa0T66aCGRER4/efxViA8SrAl/OHThSOO74dvv+sbG+ptrI4NyUID2k0f7cN5C0suQIIkP1nmQPNTpQpqIEcZPKA3jZ/zKe0qKQzQaRTRKn7cYoA6MkMFDoKQEZIj8gTN+I8rMtBfv2VMEnxs3Tp48eQNCGCGHjBDPnz17Nommzp02bsqUZZGW4GOpUOPhHEhPHYwkGjudztTUVBvLV4EISIFUr/PcdxPoy9UPZ6oUj5Z4EnyFW3Dd4cNpAmQIlYiQSSTf0kfntdkqwx+OH2tsfNfXd6f7Lja4GperRqV4VK2RAcpXcYqi60FceeFBQzhMIk1CIYGR8vzqDO52A3qKhAk39Fa2OAC9xI1AHQAyeDYyygjPpEkzrFYrBihHDRB5lNDRYgA58GF18LzY2NmqmTCKij7yoGDZmaujFX2UGHyQ6LhwQ2VlZWtR6rmHvAgJ0Narj/tt8LHl1+bXSuQAGPa8NMOHYmmFhVSJ9inxiw/2U85sfjj87dibd32o++7Yz3C5q7RUfMijgVpba2oqIad8QrhF6TA1GSAhjiRzBASWnZft1zxGeToSiRASIvKMKh4kVx8NNBvFxsq8AESMxoMHPjEx1ngAFQFIzc81HKeLCKTaqCB1sSAyws6HR+VjWoksOU0kpgdo7dqyMhcqLXXBCNUno7VrP8pFCEK7d12tDp+BYq0LcSvCASoR0hMUEqE0CIHInCB81gPkgQ6z/aAPcLrv9DVxg8NTV5aXtyKt07G/mUQ18OE/G6Oe/B4zk0d8JBLpMC5GRJOMvVANkRi9NRIh+KDIFkee2PFo4ySr1WJFkzZuJM8MDFCMhUD0EaBrCsieSR3chEdOnjQ+lsMkrQQ5/9TksdvtTpXdqY3wZ1u2bFE+lZV8PaVSRkZGPZC+8SIk7xJ2ba1+3I/FqlTVVEb2HhuB1ikfkgkQhQwgBh74eDVP20hf+A18uru7mzA/v/rfuABEn/3NYEHNqtbW8ppKFyqTvdew+ef0mKWkkMxwIo5RSl4X/1bPWWcgMECikZFes5GRupGvpZKM0DjiyCqTw4JiYITFpVCM1SJA2gdCN/btSbRn7txptWKCxjOeHGMF0aTxOuyPfDRktbD4eLs9cROMSAIkGtEscZX2wUuRK6PP52tvb997tn7bLQ20/hRGCHtcO07z+Sp1au+x2dZFLkz5HKn84DoRMoEKJb5V9LDckab+b9/g09TU1N2EC1C4Ej4KqFknQh2t5XgW+Kjk4tgT6LHhCMi+pXgMoQ1D6UNDBUMFBSmsS2fiVMCnKwUN4eC9PE9bIPBMiKLyKSCXelmcIK6wXG/gw5TQDFVMTIwJdE0CEEZIRUj+OCARf4ojw4NZ4uLiLBGfzYk5OasSExMxMbjqgIg+W1atWsX9TXyk9vZLaO/es+8fPTqvJ2j97q3VH35k+JgmkpWzMVyaIgVt8KKQ+AiQDJAWavv1Kyw+mKAxDJDPJUB1Hc3N9xFsxAdAEZ8BXhYDZp1tnR7xwUSQBb/xpQ+lpxekFygghcRhwcy48xryUowKmBi6G9raAs8oxAymep2rXr0uX924GZgdCAGDQAvj4+LiLVhs8CymENYWQNpHRqgoByOkKGGpHSciEoGKB6cHQDiFcX6K96Cc5GKmiOx/ABlCvR1nGInavz/C8FBIv03w7UW+DJ1aulSbZBCtIxiESowBSiOQl3FwnZf6P4gPgs/PM8nJ9fUE6uiAj2QAwSe5LHktjrIBATLCb2oVkSUHzRCECKQBeKgwOPCBkOkzFEFq0EJm2mYgGS+KV2W8MACpleUqT5xgiYtfyCwWA2iiJd4AMkcoZ7Od51FzwkTVBGQhFL9OsJg+AoRfdYuKdmRkbDuKzp0rLt6yhUC8AukREp9e6FxnEPr4aD2FcBCouv86fDKM+G6P06h5IlcKAZIRUj7Iqwo40b0on7GfjVwLCPl8CqixsVH71LX6ACRPgrcs6Fkg0Gb4tHk8DaZQejp8pIIlBdvFSPk04OZOcZs+Zm53A4meoQEc6ED9QP0AdFCZMqLWyLgJcVjlCWqFMRSy7haSMYxCpv0PoBccoX1FANq8eSGbPH06fhzxs5KaP39+nFIRnniE+eH/FJ3ewRRRMYjsa0QIQLwekkj7sHuXCLSeQIh7XP9eppG2cdEohGz4WqYyhUoEyBT6TaWdh8gcxnEcH0SOUTJJ62x2rSP3EYuYXEODBiXrHLl3XIWIP7BEZP0jhM2V4w+LRJFjxT+uDblylIhcrSP+cOR8f57vMz87n9/OrOM3O+Z5zff7e55nTNXFb9njT/tKKwHi+KgGtzMDtOPixeMGhJCAdmym+TmaOBn5FKBzLgHQrg1zyLRpBgRRkG6OyMLOyRyIdDggp+gyrQpR4ty5hEOK627CU/e2sH9bqH5tBrl+rm4eaERPCZmPm8bND4CCHjee5JNwfn7t+s0whkVQ8mkvG/NxP1E+8Lw9evT27Y0bbx8DSEJVSmidCamCvM/y5TdfMktAx4A0j+PKVMbFqegEScXjExQBjQyA+lvcTA4gz9N/LSdpdnLC+8Bz7Y8K6KLGgGw2oFIFoIvOZ3PRuHH2JAjxi0SCYfRZDRDxQgLiS3e9uBnBtInG4nkmekud6xApNSNKnyO6S7hMTkxQRsbHWUKRSLhp7fow1aZ0GM7x40eM0ERBEZDNEqoC0eNiHogHh10RAWzp0KGDkCWNTm779vkF+Gw78Pbta7LmtnLsmISSEwp56eNcBRGMsoGe3GWpCo71OE0Tyk6XISSeVHE8yavwr8WHfiQelRA+GDmf/mwk4UNSHz7t21LqJwh/P1Z8/B2PFwuoCKAd2UDyUZmqExe6JAhEHPicwycA6iYcBR4OQTH6PtIh/szgVDlqp3Iaq/ldg3YRFvPpJRzpdILY24KMC9Wq1SYnXFtR8TDuAKmGdG3i5i5CVkLexwHFChxQOIwuQgrIBKB8H3CUgkXzzeehhNbcvn/s9rHtCC1yz+8u0pYflJABfbu0HKFfAKHjvua6EiLly0QEENP2hOJfi2Oa6oGshLRzTfgD/mrChOLfn/btL628BtCjxx/x+ZOaUBgvFhAc2UDlmpGoTPUkCOFTaD7cWGOwjAt8tJtPTIjM6KVd4gzQQd3NoVb4VuVEfzbn9WAnZ84AghHH2LESUnhSvbBQ195eiBFFx4RExDVFcT2OErJ1kDZ7AOobKyjIJ00FhJDp8JumgBREo9ECkl8Qbds2Fostmj/7wNvXD5XXD8j9+/cpoW3zU8XFxanUTuIXZizZ3vkCEtDnu3cNyEqIaUJVIA2apVCBCSDFCxF8PBAZ9/sD9fP8Bv3t0SN8Kj4eX5gAqFhAhPljqQkdB2iZA1qUBMgSPN3CRJogNGjAnDmD2c33QJ06ddIeZBDTCQKPTuymM8kwdpaH6RFUEUHJ74ECRKq8MgHVyomE84lwkhamALnNqrv0bO/ncYp83q8o6RuLCah2bYQExE2/zIlEItFo27y8vFptSV5eq1at8obPXzlbPufPn3940gO92r5tWyqVGg6QhIrW7eRgFXD6NELwkG/LPwloHkBjDOjNI83Ay8slVByPZwMhBJEHkpCCTsYnfgmfK89v3MCncs/Hij0fHycXImQlpDVwpoSOH79YHgCNH9GTuJbNnQmlCRti2vkPgHzq1evWqBFjzsGoozKKo4fxKPV0kows7iHdiDYuZWRARmQByJVQTiTjs4isckLNLLntx7sS+p8VJcNVQaZiNdS0aTgSyWkTbdOmFiyKvk1S9pasPArQ+a9fz59/dtKAtm+ftY2L/d69AEFkWXfixYubN7HxQC9Zqo6eN8YhzZs7Zcq9x5cQKndCVkLG4xPXlEHJAGUV0Gl8bj2/wfWnsvQa9VPxp5xNqJ48jCZbhJBKKAto5onhAOFCRKR05CvtgRDK9qmDTyOLfHw4h3ifevV6YeSROOrIFNV6jTgxSygwCrVs1ZXLkAdKOqD5i7iE80+jcTXLbUYFuc2EDFHZ5ZKS4X0LDCasoON4aim981q1bNluEkQtxbNgwYKSFQL6SgCavnvTJgFtLHK9SgFonBN68WLmzJvEfL49+WVACAGkHvc7S0ibRxmdmPq1mpyvIISygIrwOfucDy8fVVY+on6YIWgnhBqSkPb5XJO7dVwptz4KkPqEgPzqgyS4dbdNZROiYnopoXqhEGMtHUa7bo8epgRPFhDhRJiwCWXKzj2u7mCS6XKd0zXSzaTUMdRuYMveAgoDZDyKA+pA88pVi9MnDhARmFaUlQEUjeQDpK5G5ON5ereSj8+kdvjMLHt/+IsKKBto4zLFAaUyc/69e2eSpSL69u3bcgHNxWc0QNbj9P7WG9yu4MmkbHySWq5khIDJ+CCkC9CbLWev4HOjslQ+e5ghdNQwpxcmJsRHrvdCELmfb++cvcNjsfHOR11O9aPoPm1CanJAaNx9ajYifDhWt0ddSZFpXijDE5xsVL3qkJATqltXRGw0iwgkpXs6HWrXrqX1uAIBiQeMbSaUH27aIbd6LisZCZlRSVmJKqgtKiQnp42Cj3AcUSt8sPFEQ4cK6GoVoN27Adq6cXM5sVmzATFl2OuFlhrQJ4BUQqNHj+EipHmcdaCLIsJ1UdynMJ6M8W2VAQU+Cj6slH6/2b/F+TyvrKyoYJX695LzGeuEtIryQop+tlIcCzoc+yK2rgt2K4mEGg5uTA2Rmj4QMdLwMOS+z43yPj46x59LLdVRVHs16yoIQYRQtbGdx7pYBeXkhMPyWQUQPCu3bZtP/9U0mhpyHznIzRmVrBBQXq1ohHDJadMmyl20LTYAkTyASAulHSXkgK7+/DpPQIdO4vP9Ph8YnHFAWtgIKK5ANGnS0AVDFyNEBHTKAZ1yQOfpcaWlLPT1JtcyhfBIn2Q8qVkCQqxUFe8joEuPt1iD4/8gVHysuHat4kNhRysC3qkmhFHRZgs/mR+4CB9scgm7VwBxBfJeMpISXa5hY0sTTKqMvEIFBcHHdPDBwQKQ9zEhbJs0adCgYcPWrVsPaj2o2iDFKign3FQdTluaLPoVAY1no4AuRwmNt85XYilbMKlVXi1oHEgUIDdpY3rggeQzdGgXhBYEQFMEdOHkye/fzQcgNq4RAkjjoQuJgCbxyCGL+/UhL+lxd+hxKM1zQB8eAUS0VGEcSYaoUEQ2S1i7NsNzBB+l6EOpfK7fuP5cEwQ2ev6kegKED+F/xdhaFyEX+TAlLCy05WB1wg6Wc6GpuPVFByZP1V0NNm/ogZq4uvnvE/JAPiqpoMCauNTltyEf2ckMH4AQUhoSA/rHx73HVF3GcRwHMejiSYwFMxA6QnBUUkiXh7Awl9E6XazMsrCaC7uQ2KLZzUxsa+XKSnRtsXlZznJodvPCsss/4G3dc0p/6crcMlLbWq2L9f58v8/5HczVx4zilpzX+T7P97mcqoYXnx6AVgD0OL8WzmWGTDIz0UZXz5zZUJ9KQRPS2jqqoo7U1jKsJeJEQNjUBSBoGqdObWykHCKglgcA2i6g35Z/vnjr1g/xURzIp/r6iiZoa2qmXiohuoQvv7jhdYBaEAKIMS4Iab/ZV/ss972AbiPmE4ReTlfQM5qADuwmvb379+zZuXvniWOa6vME5PeW7CuZqjy0G3TTBAHfqhcQgYfEkyCxYTLSTs4QygcoP3+AkPoAAdmFHIY4kh4F8YmAXOi0LGmqslQ/5/ALIGiIsLKmTKlVAbFQFZAX0Ab2NQFqiMcZ+rREigOEUDAqbS0toxdQKsrrEgx2boSOgGwSqplqQJRDBHSHgDZv/hyfz3sWMNg7kFY11jRfPCYZr6uYUorP1EsRunS+Ad347gCgw52rV69Z8+kahDj0lNAcbWhiQ2YR98mMcORN+dgE1KsGgaVq/zWDcwZzmOVAqiFFG0Lhe2mxw6GxHXZBhNDIWDVA6ChGREmJOVvXMTwm5BJ6yCfostQ0EglFPEhIKNSbKs7s8BFOpQlBrvhOggNd4xUEEL8WmhBNGkICQsiBRvGbLjoC8tkobkYBCKFGIqEMEELvb98GEOnpWfAGLRM8nzDKrUq1N9x66xjaxWS8vGJU6VSGODIfIMa4d29898YWhNjtAWg1QBABZEIc3XEiIJyr7aB20aKXXCjTI3zQv6a713169+BDAT2lk8UApHBBYtOmTVySCIFHHYBua5gQFRSA+BkVGdGAI0QJ6bF0II+Vinwe9AQi0TlQEApAPsQRhFQyVkREgnyzLHyoEoSqadYyFRSACjJAXkMSasJHDJSRNg2qIiGvIBMqNaF/A3X8G+ixLfO7mpslBBBDiITAbUOHHPUSIgKij+vvW60gtIaz6a1b5fMMfYFs0Jm+iCD05IAKmtO/Ou3TbQPc7j0fcICcN15Evpbh3l4600P0fh7SovxzsvP8MHNkzCqoIVEfhFREJQBl4+hA58nGCkhvpj0IuuCdCCGPK2aGuBCboc6UnOz04eCXW4UBSQMh5EQLDYgIKCEfCTU18VeTYPARUJiEQgUpaaAadBzox2M7/kDojo6ObUs39wQgVhzfsOM2f35zc+sqVr4a4gFKlNMm0Mcp34YxLgLyEiIBSIeel3GLjsrxEwC/Tmw3fIPQ4TAB7erWBKSLCPsZuOyYHiHaMBab6bEIKg9q+JAzi/JH2Dg3PudC5iGGNvFoK0vD3JjqQYO5LINQkcWHOAeaMG3TkiWzlixZ4kKkyJZG6aYPAOeJ+jgioyihvlgBDafLVgVxMh0B3fO4tQnYIVRAYQehphSxyoHH3goood8RkD6UGeNau7ZkgJYufa+nx4EQsm03hFpbm+ptc08PgIAaHeiYgL5gErrxAcKXA3Q4VNB7CxYs5nYPJ3RPm829niAUSogJqP/T0CB0awWkvezpPOR2qUUlBNAEZbav9idYTMdmbgnlV+piDSWXM5ISt58yYQWUpJvLGS+hMKX7oCQeFRA4ryy5S0IAKRPOLeJ7u5CXjwMpJ1cScR5SVSUe7RnY1YEVREIBKGlHCpz7IERmoFOeKifUSUYoYX12APJdUkrIQqNNBa3b8cf7aSCEDOjTAPSJAbH0VYNUQK1WaPFk6QLoSyYhAlALX9/fHwFxPzfyedZPzsjatRKyoyABvdC/ppMGQQ1c70omIG5aXTmCi2Y2cAGUDRA0lokWbV2qJ2aNMvaMLITUoumWH6Y5JdbHoUMciFsZ9BIjgpETgWQF9MrbrxATUgR0BQk3cWkkokQ+USUpZ9lHcgWED6duGuMQAkhxIO1Y6yxCRSQjHvtyj7UJZpTrLjy6LiUitctaqJZKCCA2syMg4kAMcVZCja0aNBMN8QZCr53SFh79eddRAd1gPvzF1x9lEnKgTAHhYwf+filg7e0S8rO6p5/REcMRDXC9B3ZSQPz+eIT6WBMSEF0y98o9k8hYNj35SxGQN7/nFeXzFRQdzbZOwUyItwANUjeYB5GnkjrShESHgI8iIQFRRtQmYymhis4V0Kn59/sorbqogkIJvY1QALo+meRDFoY5iGRk5aOZJh3+3WAKACL2eXxYmz1quJtafTMOIQNCyIc4gLYwBZHmRs1r9fUJ+Xg/sqr1rdaurjAJkcwY50KqIK4v4sMLVgCCx08qn3AghLiU33mYI7poBcRNkT278VGvlE14YANQdO/fjMYWFhZyGACRgJQIqJph2BqiJClg4o6VXJjj189CfIE5jQJCJxIiPs6plBAyICXrfyMgNgQGAHH/BqAV8Aho5sxkMRGQjhOCkReMhLAyIXQYlvUJUcyorEIllnr+kQ2cp54CpHVQl3be2toaS9UaltfXDwDCp+tHgP4ESJPQ6ycDUUEU0ECfm0gaiFaOfNi/ZtmRXaqf3iMrzWfPPJvQ83Wd1kcmnsxZYycNHTZMMvYPQ/Vr6NBChJiEHAhRxsQLAUr6D1mgsI9fTRHl6BIUf40bNy5v9OjRKPFCkU2vvL3RIiGCkPGEtm6C9xIZIKwyLCcB6bABhBj3pRACiNNOZe5c2+zhKCESQoCd0QioPAQgEv7MQ5IKxSQl+8z6FAdCAuqIgFio6mCZNZDNNm2NGg5dCB4HYoTbssWBbLeHdLzPJBQNccsNyH2ewOcUoGfUYR/QDk9vZ99P5tMMCUOQxizrjhmPqKAzCiOgYeeTYURCALlPEQU0nu2EGEA8BFpZxIc7kAnlDFb0BiKGPF4vQAE5UCQkHY/NR9EsYxHRAJaIiCGuTltxAsqxKzxPhRpaqCEOIGJF5JvXREJ+8GOjWwDCw3j8VsKQ9CgQJw0PhSNVuux/AzUDxO5oEALIEwExxv3JGOdAbCYwCUVN9vLljwqIBsHrR9EkRCO36Gnd5OnkDMh8rMPeic9uVQybMqQoHdaLJoQP085QhACSUGEhQ5xmIAFljx+EjwEhZBM3wUdC0eVAI9IqePrDS/B5jV8bN4ZeQTKC0j8I6Cx8wnZ2IYEkiouF5PqdhGoHooTsBY8LydwUrS82SrFwJJQBqi33BiECQsj/zDE40fJrCyg1cGtkLyXkFRT6bO2WdnVRPo3NbRGQCTVEQBrjMpPQ677b82mn7Zbq5qdaBDq42Uw/7sONptkR0At+BkT9dNsAxzHd/b5Y8U5YKTozLaQRLesMpCIgqyAWjsqIvJwSWfgQV6VRx5635lOCjPn4W10mnDVLPorXkBURPh4JAeQ8pwKd3HeHWz0xA9IrDiihuZ72hngSHLsQAo0fzJmQBro6A6oIFRQn9hlYV5+uRidsWPEzzXxoxWuf7d23b3uoIFaqixdvfYGbM62tjY0AEQHx3SQUzUHKcYBa5GNhmOwLPi/oAr1auHtnXzRxEji8/nISd5lma6BfxM7atfuXdXfLhwFOBYRQc9F5YXKONlcAMrOz/FQmixoSDuEhwyf/HNtXzh43qLqaZpYMj8d19KUHTT2CAlEAMiR7nq8AxyOhQGSlRFRC1skXKgbyn0DeI4Qbohrjrg9AHK42JOIcCBEB+QxDYMIJoVq1APz2Plvdhp3MeleuDSD60DEEoHs+2/vOvu3bt28zILL8uefue2tVk4DkM7WGllwNRSoIQcS5hkrIK+h1eHwS2k97gc99c+awyTNr0avTBMS0bj0yl2kA2vQwQG92HqSAbIDTEhWg3ROYcE7j548GfoQEpHcjZHJ6Ptv3gofdy8rK7NGjmf0HD4oxcttzVAUEkD1oFA8BSPHLgZwfyYebmpZIyBOIAOIGCe2iNyM4/NcI5xcXFUlcPMaAuJWgXN+QyK3io8UysQJhlEuPeQXDc2trK4jtmCoY8TdUHAghH+WSDamF93xGH2dAS72CePENt3pSTaMMqBEfpIlqyMe59pQJHadLQEhAYRJCh11s7n0KaDp7Zhfxk04qZA6ZGF6xrBeH3Xmk+2D3rl34dB/ZiQ9T0JWXX84T94yxhC+YVFgIAkLeKVBYA085+YjOzipHj+O+OaMbVeJtkj83tYMZGwmKTTwlJZRSDB9/HKt1ywagkIzQoUNpoU3TWBjzpyAAwRDtHESxDoJ3aX7xWQaK6OIIOgQgOzL18QyBKn/eEIR4b4XCtZMoZbV0OD4OKurk6sub6LPVaO8DiM24zSoggG65sj2lkz1FPuXO40Jqt1OrEDrGGJcB6rjjaN8Hfg6ke5+zHhYQ45My0U5gtDkN0DV/Les5yCEdE9CB/fgA9PGsh/l0PnvsUMX6NGpIDR1C2kbLnBfw7nNsg0etdfGQeG58iPnYQM6msIC4DWAnESaoIShmT2U+MclVzw0/e7yGRHSIbDwUOoa1bFw4kI2t0onabman6B0ARU0AswzTRuZqHMtUP8nmcbczOB79AuPh8xnzohtWginT77IpnC751YREVSIBqw6HfEP75wC0maSBsDMgvreA+GwJDQBimHvkTwcyoZaOO46fsCsjHPLpXO3+m9l2ZpK3KUU8OiIFaN4ny7472Kv5hyXqSny48Tvnbf4XApqeJ04apiA09gz5sBzCKJPztFIaQe0MpjiqadtszYcNzzzvY+2pyvhGb63hL6ckRuRjHy9I6C7uugCUFjrEb3sDUQDKTD5hQRxQokMJ/p41UpXpt9p4xiPkd0tnKgDNAKfUUlNTWlY3/IIYX1BdzLjHE8mFAJxyUnisEeKjfGmNznbmb/lxHbs9GaDFArqzvV5+pfi4EDVEgo8LQfS7+ux3BdTCJNSxvu9jA9IhH+dqnNuwA6ZnPqtJdMJrlq880vPdwR/c5++/4dnf18mtcIgYXWZPvOl8ZdhQKkiV4qlMB6PK7LNzLryQxiBJT6mnUWmT7ZjwGDlRWJngQ3B0Ht6v1NfbVdyTS4h87W8AYohDKMPDdOcibpOfSZYOo+gB3KcgKR3LGF0ELkjMKBtVQ9xoVHnVkNP1Sga1nAjFtVytNR8+KhqFN7UziHZM2+C5ZPJjj31z7NiOHZqEMkD33dmOr/OPUsogcqFEtBwij//5Bful0Ri3/ujOLs4nVrW3NzTcejGn0toPsO0bHml7zTJ3leZ9zADXK54DK0+c+HsPL+juW8DNcIh4cB5cexVC+DDEnVukbTmqgIc6L2+07wTwLuYVHU81oNOkXlObHXoSaVFCKCBrfMWTdzYlVFys9xK9KU89D9BHmUHOiaKeTn8G3SPRbCcfAo6Cjnh06u3JNqCYA6kF4wK9brvOu9iO4AsStRQB0Z+O1FUVUEKDSghVpNZBvRxCIYx0BCSEKlQ/uv0xefJkB6KE3nEg7xHaK+zkKOK3PoHyq08oKGnQa0odz4xxLS0d64+vbG6WUAqhmWM4MeNxzbbk2Yug5yHU3vl5T7d8dq3s6zt64u/9R/oO79ixQ0QbNb6wrmWxo0YaoNHw+CLGphRWmnln58SKk0l4pMN/TudTbY1tU2k2GcNBUAGxQEUV0bzBfLrf28SP1DvQR0bkfYJH/2ANg9o42y49pYDwcZxsQgOZxR8NH4CoWtuQU7gBJh8e/9qyUl0vEA+PO5PQBTxz8NG8GIQIRN4jmJDtcs+w8U31M/lFgL4BaBtA78gHIBUQPVyZffsaj7VymoyMR0ICavrRSihMQuvXf9Xnh3x+iDRmpG2z2Atj/d4ax9Dz/urp6VYB7V65eunvAFFAXxGIeHXFdU8+u/Zu1k2hk67M80mEKcWZ5DSymJmH4vFrep42HcTXlEJUFQeomMOgwXpuAFTC8IaOJzeRBlonn595ZRQunr38zgCd5j5EMmSgD/L45GQNYvSkPAFSddDM6xKlflQKnId/hgPx50KIJ8+QqPsviblQwm+URkCeihkVXkD4ONC6Hd9ve4dA5ED4TGGA49srWPKf0bOg3IGIfHgOH/9iPWOcLmgLaH3/L79yRsEzupW9oXjS9nnV8YZraxh90gkQPgd2Llu674/jAPUdXf+VsnTb93td6KpJbBTQSzPdaJFDBvlqhiIC6II4N4xaDcevi/MPl5A2PY94HArYR4jlnJ2Hj+pPFaQnqlKXy+C8kDmI/LxuwwaANrx2DzIhNsZNv7zoXPUE8BBgPMEn23n0rf/p6jxg4izDOH6r3HEcw0NFC1fswQFlacFRtLj3nrite2uNGvc2bkWDW6OCVuMeCIp7JBUT44qjjhi31Thr3Cv+/s/z3oE+jLbHUY739z37ed8vYsEhgCyKq7c9WLb1Kk9ehtoKEHicz0CZ5a3Ky9Agq895/ZRXZ65IfHgW4iZOA24G6OQpQGbiLiBLvWUv913SM5uz6ucHeTQn9QlNJ3LZHwKgIxzQ9zf/rLlTCMlzqwiYsbplwQRE66FA5oFeHB6fWHLXsne/e/FbNE9COXD0rc/3u2LRogM1FJ2emWUxkihQp/1acemPordY5+wm+DicEqCTAXTcZiBqlJmr7wRQO3jjcQhlfAkQGenifpDn4CNEEHIT9+pttx0CIOL9LPoyJQ4HyU7DgwAI/UEyWm43rUx88XrlZZTrNLOCbuDmMp8FHys+Kf5Usup59coACi8OPm1ktIoe3Ma5DzqBrir7twKgcwwQCgQg3qGj5xkhlRNERnwsSCTAv+evu3YwQAiAlv3z888gWvsE/LaXMYoTX9iAAvvQfh1aTBGBFsPSwfGJK1G5m29Gge5aZoiWTLz15uenX3jhov1XV66jxqo8Tr0TaojHPS7rWK/ZAZX4iNAJa6vqsRmKLk9U35CoSuKAEBaLxH1D/4UIcxiVhtC9enPRDl0+kNvYAkr+lssRfAY29iE+rj4OJ0gklnLdYeldkzJeYbJYDULyJfgUGyWFD6qD6JLp5OnKDVrdwm3ogoJriKHN5hJClAAgBdpffvHWdAuHAkmI+jByPqkIKFRIP8xF/wkavNkfXi/dwQm94YBQIQCB0Z4lkTpRxmh+ZzGAHqOEPTY4seTPP//8/uab35AGAQkVenL0zc/3O101fybidpFdbGgAUL1bhnhw+2vO3qsI6GW68ogihf5+AFlePUcLkmFopEp8KDPIxoFHS9C0znp+vpHJKQ7IxflwHNUuUQBN0yHXnxaTIh/7MxLP+yYfLDmE5PwAlHdnydcyrWRCxGSqDhZSBDrKm/myCh/i4wPazkeRdiOA1BQu86a4EUIAxBbit0QoACKG0zeZWUDTjJAzQmFFyZedKL9/7fcUJcDoSAGSRvz88+W/rt1/3CyYhFnjWQi89MMJscdQoMe+HkaBDNA7L75hAiMBOuDNz7clF9nbjjvZXTXdlADpukOB2rmGk4mO9cRHGy14h46iEhCJj8SuI1mUmClQzMLssj6tgpwQ2woZY/+flDa5n7nv1gt7A6BpEYLzQYfg4oAkkYSibF4ggGS1iiXAPCwY2XPvR4KGya3M20NxvmiBuQSVsx4e64wqsLIe6KXmkcXK7jTihmxI9J5vDnn1zTdFSBbuKtV5fHZYn3mW2bj1ERh5WCfvJHA8+usyzr562FVITuglqRD+gGXyGa9iFNjY1FY4mggBPli4sfEA6Ot3/iDIfmOQjqwAjbKHTPuYJVSEmS6jYym7YPZNRqa3a946U4BsrIWcWfnQQdBB7CJqJlYQVzWKBKjVowTFca5C0+UMCXQEaDsBaikBcjxISH2K+tPSzr8iLLhqCZXSGvnKvIvRSAqRFKygICeOweWR8A04ZdsVRElHKmSE5jigjLZ/S7soRCjN5bI76J5TDrnGAcHH6jzrlexicFW8m0iNLKSVUlkUePn3OvvqSAAFJyQNWn/tfjkhfmiIBKV6A21tz469BiBKpPAZH13yxJ9//vH1O5OSwcHBJ5+88kkRoqpgYxeSY8mMV66MJ4rLQlgXK3iM4CbuBM+7fJRFeLz6LvWd7U1VFDAjDQqA+hiu8P0gQcDDP/mgUX0mfNZkXKWlRIiiuQGS8iCBj9c0Zjog1MZ7Tib8E1rwQSCU70zl9fL9YB4H5BBTmDJrdUuDZJd4x8QpuEMyhOmokKjttdWlZ1ytQ0GnAJ29Th8WAXxFBxRgiBCIEHuEh5C/pULaKHTEDjsA6N0AiGUSHvtPvGcxd+CEkddeG8IDfSRAo6MffvjEn5M3fm0HWQ2KkGSCeOVL8w+naOkYJZvdac4HPMaHKklTyQdJgcBzNoRAJD4ydO7/iCBpURoeB+Q2rkmEjnVGzOLysdVRJuBhf+nWXQ4ILlMqpNaGEwp8fHw7Ylxk1RIucfgoxCf5a/fhcVygBihdAiAsYHiupKAgDjoe6fGSDRCaRLBgaed62x3LrIMAIQJEGaFJgByPsxAfiQgFYM4HcUA7OqC7AKSnyV8hxhiN07/mzPp7/LUxAfp6SHwOgNCSwaGvn3qK88YgNDFhgAbRpzt++OGbb54DEau31Tr1MfgEHx3vJMEAEIRABJ9bVFkiLyMrm2WA+iGEPdXVKUIWB3si5F5IgMJ2xUslVKyOhZgEPJxDkXBANaZC9AVLPqjdGYkPdDSTYKMOMEJHkhSlVDqv56KIAUiD+wTlVTyjylNmt3HWmULDgOWJXYxYosyDibI2bwhh5eYVJFi6QoH6HhurPg+ALEbg8gOQrBOL6zCgEQgFPOEhaHz/OjZO+1CO2MEzIT1NpnATg+MiI/fryLgU6OMXhl577TcAHeCATnzwxMt0Xh+EAp8fJGJ0yj0GKO6AWKVVFQDNXqdJCgMiBEBbBUIoLIAQ4k0uPQDhvxyQK5CHsgKEiBFwkHV4QHgCnyoRQKRBxd11TshFfGgt0s+LrJrglVHt4A+NIiXwQzidTjmcXI3GX3LRKuOjZ5kXIrjLOyD+AUcklidYt4REpQYcmbojHZ2kjakCuS2Z738AvXoRlew2wlJEHr6/CON/KqQ//aFPA6AdACQbR6bKs9xXeQqFgKv/7/HxxY8hLyxmH9LoAZdAaILzY2+5JRCamBidmJj8448/fvhU8h6EtL1inc64X7as0aqqfQkQoshAdMBDMOGAIORhAvm0MmQkE1TI6RAlMCqjqjPtTzyc0PLtxoxH2RWWMBMmG+ZdOrdzIsTP55Npz4oaYFk+0hLl34rs2vlTvfcGN3HoYJYuVprGCFpj1m5VAaqCidZfgKJFSToia3J7n1GhHnpkHcY8xdeFbL/Z9vMpQMfOU+oto6iCA4RcnE9JhUpm771lf7FNSICOeF02DjxAEZLjHFCA9Ovg6PiYAA0t/u0mB3SAALHKJ5741NOnnUbgYICAg/z96XsAupTtwp2JAAgXpLwzM5s8wevp0NHq7s7OBkpPxRajnBDmwmZHyFIRz1T7+mzmR32bhYri1wvijRzwGB9W2z3Q1GRcqPcYNsfDQeQrrRTRI65cfAFS5lgqGxJwk4UEUBKJBkDCE+8SoHzCBvtdcs4IicXdkSkOTEkY8lEBljmXAEgRFJHm7kqxBryCt5oTmi5BhSSmUh5oA8hU6FuFCGbg6Df50/x7/h51QDeOvfbbTRi4S3jTAeZYq3tOfOopVOic8S/gAyATAOGE2FvRWTRxRLm8/obUvDYRkgjObhgB9jZADR0qdbCaIKEwDqNjgDYUoDL6yPiIefN2W3g4JzHsLi7QCRv6MW+94IHP1CbIcknQIklaxs3xAEhzrZK6NF+HU1RKREId5TGr3aFBXs+XiUuojSVJEHXLBqpR5uLzzoggAhmBl+VMHQ7oWmycAbrmoX23xgC2luG4pEMlFSpRMX0oGTrkUwDtgAQn9KuZN0uWpsFd+9dJ5zM0BJ+bfmPLP4A4IvtOvIkIPf2ojsR2BXIVAtAZOIjdOwQoajFCUtVsGTknxMVvy6rBX9K7JlSo2GFUEEder5qLrFyfKRAhHH3PDrYM6tAY79v4JzsjVN6ixUMAU5+pqSvPWcWnQnyEZ4011rCKu8OkGZ4GlzVIkiiQCYAgg+CCAITyUwSSeZMC1aRtNzPCT6K1AuqACUJIPiZdqleXiSNlL2ZowgHd99DeC9fMF/BaGDgEDQqOxENu54PwWUIc8B6Z0DRAP/Oowmp9sxdkLWr4+8PR8SH43IgHgo806ACQDd0/Z44AKZbT2cv4nx94Mw26hwFNdS0SApRTDFVl4SkpggFq44sJouJ2XaAgUhtyjgnxqfioTcHzsXRl8CFqlbsCjwHqPbxrTaa346CxTZfq27pxc90xPNMBIXArr3Y+CI+HvUQ8tVujezMUkOOArDaUQwgPBMhCia5O2/iXsMlz5s4DoBkRDZtrMIAevw9bxIPEVPPmmxYef/G12DiJldt7uyoLtJvm6FJUpuphsooHgVVgowcJ4C+VE3JA5KrL/lbWIwVSGnRcEdD6f9yOAg0h0h8AXQKgJeNDDuggCF1mpy//IHnP5JtLFVvNK1RqJtQjIaWDAKLG5xu1Orp8XVkBArzZ8kOMKSOkqSn44FIgqoJe31y1R3Bam5rsoa2Uh4vMqiGL1OaHkjo4nGpEgELv23a+rIUGAQg8W2yhB+3p3Xilant2RIj4r2SOjUsV3sdnjnvj1LppWyqAo5iEMoZKEqMyEibTQJS19EmI5Ja0fUV8mKvExonP5zQ1d2ZeJl9oMw0KtRpV1mhSeHVoOpy+ttpCx+TrDiiU44iiQGPiHkwK9OwSqQuyGEC8X4LgggTICHG0CbtaD3n0myIfpve3MgeujSRKJmwCJI8TTtWWNatUoB8dZxVCCploYLchFFTPFR8lhJaeJFQyXbmveS9C8gVBtmGzq50cLhfhYfXUzkbgiE5pyliEAiDGSaoFCD4A0qPmlOSVbJQCQqE01O5hgXeCgSTT1aATBnhUgOp8Xz/v2RX87hpGiLjCvikmxbcwjm/Z+RgIfQ4hho/UUFRkkeigZEeDQnMNyqDUphAj1pw3welTHz6l007uXeZOaB/4EMYd3WjF8gDISuY4qg9HxxAUKADyGGFk6BEuey3dgw8edpjK/t9843jIQc8WoNmZQr1GQGyZabyow1WmXj4QOkHQLvHpEDki4gfrQ/nYSNIF1cs0Mc1nP+Qi3g47XzdR2EViERcS6EghTHeK00UajkPwNz09ANJSKkQwQAJXHmI6yfIQqkh7ROeZqVZaxQQA+fHNAkQam7PJhpzvtMlWlM/3HQE4o2zU8qO4aY/KSFXJjbbf/sILzQuJz4WLetwcRqtinZJKYawsZBQ3qEcomVNsEObRxM6jiOME6C5ToW+PtpaEIwq79vtPVohgAhxEJo4YYWRs7BYagIqXuayvvvqwiyAkQCc/Qg2HGFo7+zLqYHthWhNlpDIAshYyEFCS4vSO6m7YbOjMy8BUWmfLFFUNvGHeemcvMD52YMnB24iQHeySFZv0VAvVljyIrFa19Ek+wnb6+b1+XIV81FXq4z7JCUUgJAXCvJnWWB84aeI7cJW7+lCDTBk2IZaNsAuq6IeysnEKvH2KLk9RYvVFiwQIESBmAmzDh2Y2PLfSOcFaGh/0YtEFyMc3FVU1LMQJCRB89iFKOKGJHKRNT5UAiW94bwkGTgr02k0ulqcCaPHZtUyAIJseu+muVx+GPPXIe+y/fFk1gr3WkTIUwi4S8/feIHZAXF7WoAxtudDUNDE+IRvMySX0cnbWAvHB0WmH80P7Mvq6kWb18AbTxXViik9wRfTg/VBGZs2LQEiI0J4ir0CourwiDR9zl2gB15YXS4VLhATFCWF7K22GsTU202YifeiPp1iz0fJVNCCZXWGtzUUoAFq0+fIIc2n8HIUh/l8n+GGsehMrM0uAWB6ZN1lL0uc7XIPY7A2gZc+uU1ugJktLXgInQqs/RgfxPxAyBfoJEydAMHtsvYwB0hmcCxbA58SnHtHJwgKEV3dvIgsX2tfqjnonpNVU2Pv8Gv61nSeK3Exk4FAg8ZEJq9vo8D02XQAfB6QxPKkQs67kMBGJPhcVKACCDuKINLusIzMdkMdxEZ5X4oNASIBmUJJSoz2jAd/W+hjmTTpepeBawYIDogqk30arNHflRDbru9Z4FJsUs96RlRUS7fCZv9PmUiFXIAOEqnZL2/QdLskEhIhuB+bSgvABJ62cXdf5M3BCDkhe6Nkm1fgKvLw2bfsjoeo76A/xGRoZRoEM0CU3wWfJyNDixzi5xQEFPiVA2p20l9oGpZ/T4IRseDRMotcj3lRQvU2Awp4T+JgdIQjIAmjjDXbectNdAfTqq+BBrjnfVWjjFUoD8eEzQEwx5BXmF2VFByTZyVUIicAHPM4nAFquPC0+DXqZfZKVG3jtiC4w1bXNxYAim6vKp1bGZxBSza0NJW7vIWGfBQhMgBQf7a5aZPsvDNAqpkLz1wKQwHpJArKVBdX0Ql8FXw0hIAvQ1suoJARA+9z1qfbEFjjSTmNgtmWs9e8R4zMybHh++ukSUyCgLX6bKSUAnX02B/EIUFChr4zQZsRkFM/UkMQis/Y0+90wx2zPlgECFSJT4bUdAYqX9AdAmjBYfeMNjt+XM5kARLYlQuc/ZOP9G68gRyI2/Om5TyAkDQp4fPhfLigACpWEEh4X8Vlxhtm3WGfGAEmppdMCBIJeEVKUnSWMS8ZSrWEwq7FMBgmx/hItpKpe4bJwPFItLZUK2Wx/GO0EkKlQdqoWocBCE2B9tpmFDxHCPShe/6MUZ2PklkqBOnR3COFTPnz00hHjMzIo7fkJMUCTQ2OLP+GQgzV3KwJyQo98hbwsRAzYNZsKiY+dkiTbZd7fHLDPpRU3GBop+CAx68ACB8nW2N77Y47f9/yDXwUQooqJA2JLhSxYwMKn6YBsrwvCKbM9+9txDSI0BWgKTwC0CiFCjY3DQqg0zlqvlqrE1lwiDarLxQ0QmQvDjY0DbYVUQc1zdEk+BTuojHeFyHz9sOV3AhCEtDuGHT1ScPlF1YpWkHi1CPXLIFNF4npCPBOc0JHSIB05ss9Salv8IAlainT8PWKABofH/6NBWLjF72/AyX04cAN0vTZGLHjwk69c1I7DDVGYTlVOHQeXUEctlyWQhT2MTIkCnk6kBMgDuBafD+9Z/ZgHzn3oGvFR1U8lLQO0grLMaeJ4gheaT+grkQJtj2is3r2QAyIumM5nDTdw7Ug0qXEkMeI9U+SjHZggUm1BoUuykpqn1WqOM0Lq01VqyRSfq+3BJmqlxQo/sHEPCBCj4xXdVJtEyIPLCj45IQ/9fE1AzWcBUo+2cAqTIwKEcKLF7h0QKgbxXCyPYNtMgb7+TXgc0O0HfDjMDNaW7HoAkJ/SvYDPU4BO/uplUyHN4qngTIGGk8iUYGK0lLC3e+BA/mN6BBzn44QAZFmo+Oi83+0fOHfda5wPhC463wGhQP/j44DECNdjcPSxSHwWmZULYcLyy0cCnMAHBcLAmeKy/FHFTylX7voGxTiSGOphktSYufz6ADokQBBqpQAfk/2z2Az9QX1WgQ8iFSJb1alU0boZlJsQM8LavStNcg3ynJg/FN7yYSZTA5LHLvNytgH6fjvmHiAEpVhvMpvdeumg8RlbKkCXBAsXAB1ugLg7gu4wYgfCLbjlk5edkAOiq+B1600535kXqGOxOQ5GleQWsyZxT7vrpwHC8npwq9q0baxcawrQIIA46+l8B9TtWWmJT3kghgNSbgIdTNxaPYuCHCgrByAEQCZFPCstF5nZksDfsPjaEM0lbXVPHGUsqejZy9RSJ8yAcmQCuVSbp5YAouNdm0pE/Yg7hBrQilJVj9+lQsfr3kHJbF0FO95NRAj3CaAaa1sIq288NE6hs07AtnsJEIS+P5uUCTdUBPTIxODwmCnQGGgMEK2g2z9cciNB3MYbbwQg+CDw4RTtXc++hWO6wWMjBwBywfrxZSeEZfJzEG0bpF8yHm1PByQ+KuMQOctG7S9AV0mBAqBtiOLQIBEqZT3iMx2QZHPeA6DtF5kfYn2mAQo5KurTksBotYKjJa3dghUzsTpKQ2g5Zmty0Kj1vlyBIvzhdr+7qq4Cu1SCaBIpFq2bOja1e7lSCrzK/AO3P4ZbowEoN3MG9aZAyK0cJs7idKvxqQGMkPAqj1ULipPWf3x9hykNuqWVmoNazql8VzJ37OQE2gOfpUtvCoDQnycFaGzxdatnOZv0cQBJAKCbCXCC7Sc6p1saRDZkB0ouQHRTtG24VSibX1fn1qNcPF6bBJFP1YiMS4izbfuXUhvC5P2POWvdk7hbYQDENtotdxFpc0LTAJWXTJwRmi8pAsLQcRA6u8xcgwKbkJeko7GV525IClKfrKvo1gpWV9TlbPZg1SjLJ0Da2dgme0A9fRckyYMkJG0s2FxLXfKJFgB5HwpfE8JE8M9fa3Uj1CsNslzaAXVrOML3uuXgw5ZGq40D2M4glOZqQveQ13c4gjdpEIDK+gaaBzS20dlV1fvDknHoCNCIAOGFBAgLN/nY4s/OY19kCRDH/6EhnIcuRiIkQOBBVKQ5T/L8SeveatvHuYxZU0dEw9IChmkSkxNSjZpKjjb7oEKHnnUuhEyHVEvYZo/DAcQXpylNCZAjA40B4gyBwIfbQTsgrU4k8DFbM7+iJr7yhpS2Ntlw5USNACHdK+RwDMRKPoSlugElTboeOiZxS53phajFRQ0RQCunqL9H61hjrwAqGvAYgai6Z/W6DaQk2TQQrAKI+BESFVg4xYX8shWmXOEkCXyvR+C57N6v76AwzgC98WBZk6Z90aJCR9c9k6ODxNdjg8Nfj6uAoA8ZOAEiiOOIKe4C44Q+gA8G7PCF+KSzdQp0ic891Lovu0DyGYR0AMOpRLuW7EcqhEj7IEqEPNaOKVBVEOcNG2zchU6ISgK3Tdx1my2Vp6pFar9u4MMb4oCwctIgggIRghEmDg3i2vDFiawkQXtEsnxGLta3mhozjZl4tM7OsKmuoKIpD6nYTIDICds0k3Q2eYXOSdSMVw6GDPtpbKRgQVUdJST3LaqThzIsaSmLjdCI5ZryoQiRwE9SAlc3JqrjJWegdQgBBMUglEmWVk3BnmXgMUBPAKit2XpJAxTl2n5YMjEyNoh8PWw1uJsOQDBxRNncevvxip7VRUi3JOM+TcfvrHONGMzecjfsnMT4nBIA6VbQ3CqVI0z21EYvEJlRkhaRSXvwglcGkARCpkMzHUJPz6E3iNDB3PkTVdx10y0PB5C+yEqU9CekQ8HozZf43bUPDEqkW97Mn6+vA2j5wKebVSJq7ttQ7r6vPt7OVbFCmuikJhm3SKozr41NGQ32Qgg6mqbYvbAmLsDOGsqn5MpTBqhmhr2EbtMgONiCO6AVlPXIZNvD0l1KcnXZKmulx5MycunuVfiCQzI3BSsZm0k5oemA1LFjPO2RJUs4gGFkEAUaQ3uIrnlDSINeeWzxxzeUEyFtbPe7Qs66YQPdIp60/3B0CFlAAfpSpj/VLboOAdBnz9+93xVGyA4x4crnUvE+Slx7VdhqL0DSItuCggoZIIrR+4vQrRBCrhcg20QbyqOwdqkO4j24EiEAQYd3q2nb0yK2DPABUEVNe7y+zyaHMkyNZNURIpbDB8UT1tpRXXQ2BeYOKw07IE4nrlLNJ0HAlccXFfLUSQkC7ByaCJ9D2ZYfUe4KZL9Kt/Px0myab+/MMOSdoe6tKa9cupovTQm0JPeFKOEJASprtpFS7c5kc+UgMj64dOloCRB8AHTjY4uv219Z+lq6Y4zflsl+fZBZboQsOMOE8oJrEHyev3tbCLFJxY9pstdPZRcnDB8bXw/xdsy64VkxwGijqgAyQifphnQfbEnbG0IAMhMHIefzP+ErrkEl0d037IkR81NKlPTzEzFtcNCuChUKKFaHa1pTVeSrdv7BbDJuDahwzDWA1ACnLJeMkxxFE5W1JOSW3EfteFThoNdqV0l3CAP4Vcp5BD5ej1sRFe1KpShMk0WxW0BLEEumVwFL6PryySld/LoIBUBtANLA72pzTljCcKLkj6XD+B9FbxJNJHzx7I2fXYczZcOjHSankxlRH1piO3WvvsHOh+sGUdxLnvlf5OoFuu79Xuon6Rwgmbk9RYiXqmBTO46r/FJ1QCxPr+JOAHHd+WnzAqQ73YEHe3q4AUrPCHxQhRDKuTgdE9cgSc+BpEG8RHtWBBuoLihCmNtuVYKsjJDmrVZlCFYmi4qbCvB9ftg8m3DAcjiXH71IjarwBHQMolX5NmuMkqDEo2r0eNCsiQWCADtANxnVq9WxbCEJIgapItUtow80Z6C1vhJryg9N1KBCouMSGC0CEBokE/fHgwzmo0Jqi//wxIcT4jOxdOngJTeN3s5wbwB0yVsHf/zZecVTxliBHsT57DS/Z2M/MnsPTo86E9nmTN188f33nyeMO89uQmyn0Tkh65IpERAg3dLCbFxMNaESoBnis7EDMsGgCpDsn4IE+53NbodYu7tIyNCJEBLuh8eLdi+O5QkFSz9YiPCqmoXjwq6LJqi7ZyrjRGiMFGHtQdTXBwGNELGdejcGXmiz+ZCpFE2AJOhCbYyAhy/mUSwbgMwq0uN8wqgO0KvGt4QYYIVcwtIovmtuWYqRRxUvAFS+ipcIpxPaadnrKpb+IkAL2hgasPPTT/jzQwBJlg6PH4Bte+IJ5wOg0y74+PldV7ScTyooRmshFjfpfv2cGgMghNDb7xCgS1/+w26qezCIUCLai8pBOFNBgDrr1Uul9Y0HimkkBAsSNCgAerwICIPKQQ4b2xSvZxXuWQ2QE9Jf/EuGKFCy5MiP8VkR01YnPD49xcXGpctiyDVoEJhgMlUrPvLHTF/34SjiqiH0LrStrBg/DJpJVWVBs4jwaYSQSjF84JQS7TlsoOLz2YV8MqtLwBVdwVm2KsUWCDYVonaVqCHZMPFCsq6c1+GAXCwZmESFDNCTw8cWmK+ZpZ2t7z3x4ZMGaGR4KXgA5AokEzf82MfPb+l4TActGiIcJgWV3cDKHb/1mQ5Id+ffcksL9Xa9njtWSy676Px1IaRw2yNNTaqjQZRpAYR0cnS2Mg2rZkuDNnYNgpDiEQBtpCjOi3GuQEhIIbw1pCTdZw4QILlAKADqJtXQ+FREomtb6xLadumWZII+b20ZfGy+Zg5TFDJ6ObuHChZLxX6aeNYVTeQzVL4ND89uJk3RwQcMyBJ5k8u26gtlhaqcyqfV3d0R643XRLtqNccza6CS0MLS13IsPX/hsp9WZ/flvU2A8EEA2p2ZoObVNLP46S8BEEf9HYB9kwtCkS4B0IdPP/bZZzeUZsxWCjGjLLo+BUDH6oZWTOBwlA9Vb2I7+tYnPvIIUwv3P3WYCBHMQZP0wPoPBkgFH7vRxjwihS4N2YpQWmcFhXDRb+RpR3CnnYAQOIUQuZdu5oCGsfBBTJfmSwyQnuOzjB5sFbNKq2NGZqLTDWz/Ifam0IYRKqiTkETjskBSUCP7Ru0tl0vkV8Y/YePw9upYa/djv95nteUTZEllA7iMOa35ZI36i1Jbq+tEuwra5dVYW6XsdUX9FsRLOnEXRfMy3lSx4yEPEgA0srC3q9B8nAbiZOGQwcmh4cHbAVRSH24lde51n33cM+0/sf88DMOqYLjRzgvtkElteluIXYhSE6LKcDYpLICM0LrnXnjhocwVRFdN5toTMRtC17GFfhSJzmhWUU5mTkNOGwDoUBAZHUSALOlTvi5RThOckCY/NOupGeuI5fO88Y6IUDipjGhLZw6yNP41PkvEUcYykm6JZ/ocEF3mVJe3UmtYXrNGibi/OPUmWgf6VO1pLbTOVYbC5W07Fvrn1MaqCPDK4DAL54SeRGx4rle9JRSvgG61FbpyXIJWuZP2YnhnUmwCUen1cPXsC6C7DNCdOye7Co3961/+89+/AIiJ+C9Ght540gFBxwG9df/Hd/++kwAFyGoXK5j0K6wmCyC2IEi2Jp8rnlfSsft6W7F7y0azGJ6idrrmvLZMqoEIEzwWKbXWN3QCCD4iFM43r8GwiBASbnLLHThRoBmltNyTTiNEfSLtm+41lAUhESxlFR7tSc1asl51Lgegh7MOSR9WPk1H6wVok1ns0K2k3gMf64Hm+IuNzKshY72j1rmNBkgxMz5/lpaPrVbrbzKQr4JDbSNZixu5OioPvg1Mwz/5WoWGmRgBXsSCN4oOGt1K1mjKH0MXBlkiaz2wDEL7CNBpmNTMnH5+gFk4ZPDGyT/RHVMg5nko9hBlv/Lx878XrzkHhAYBSO16hCLqQiekXSFVfmRvO5a70DSLTd0CdOICqttbzutbbRYDPur32jw5hfsyP5QVRLiiLmsda2WkMoc6ov0lGyPKkUSoBEjLb4D8TAQIFXXof4QwJO3KeFpq0jjloilx0UpZf2hmvF5z4XMZUosn9dQ6r2Baq1flOW+fEunZIT1ldF9T2oo/sNraDqi/saBCXr5sFqM6A9RSgYJCDeDPGvCvqsBmKBOJ0EwI8SqXq8hRVE+pgD4DZHbhz8DcHq8wzgA92ssqNm+y/s8//ykNQkaG/3wLPkpRTXsEaPKxz55/nwvXEYUrDkC5Yk94I2IdCPm2EPWhWCx509lcTOwYfvkRAC3YY+Gas+cydbFyZWfYqaYU2WoYOgoUSNojatO2XLobr06yGm4i3dMDIFch1yGMlANCVmQ0x9sqRmj6QLYR8rOhI4zqqASW7vawtqREPDO0wLvTbDpT2K/2R47KLHVNm6syQvJDNqVY28cYL4BoO+rsxq6OeRCykfbV5tYmeOnJyrJG67kyhkaMvMnaxzX21VNXTdflEikAzc5XaXxBWWykpjfD6ekFmh4zmZrgBa0YmUmE2zGpMFt38nq0wFBx2Wr9lz8Ln9FRWbjJt645QIDMwt0UAD3/2a2sx3RA3QZIo5dqcJEtIOHGvgkeZMFwmK2NuFz2mlBK3WrTrbu6MjaaoUaMJloI7yU67bu5jakiVVd8FgBH5HesK93bdvXAJwCSwCcAqmuxrQbsnWtRCzPM+wZvmV61oaW8O9IuoTPd7VHtVN4eCOmp1Vy+aogk2XeULvecM+G+pwYlstmQWK0NwmPaylqpJmgSsQCh9dfehEsvn8zhDaOV7MwnjR3Q6Qdc/JevtmFZZxTiKyQ7ywhA0JgW37VZR2w3t4ljCOLR7AxeNn3EdE51imdcg56ceErnNszG8v7wyy/cnRULN/LnonE0CDzQ4R0lGsXCfXaDp8TBu+p3SQsQ9UXKSonYml0AYpOI5hDV8NE8OSAa55QxhrXmPMpZu3VhyDO1GvOBU7hPn49L2kmr2GdO+BBeOvxZ3ZgDLtIdIVq9ZwXxsXZDiU9wMO6JbetILgugUPd3BlyTNZusvfKMCEYQidZUYOIExMWULCDz4EdZESFbNm1n4BmWdmtst/ucb6yWM0kAZIK5kh3DUmCsa3FSRKGgrOpoY588gLQjga2n/attuHJVlvJptLJszqwNy8j/Eu0tMwmGoolULfO4qVhLXYVsXHU6Gq8nPLxDgJ6gcvDUXPKmFFo7iQsaHUWB3vh8pyc9RECDRgH01iVLAPTxoZYGmoe23obNJssFxnqV1ZBNL+S4Ed1EhOjZJUU+15yJVpSnN9qla0sdOpHoTKFheZsJa9VwZThJzY6TbmpjVC5Pdp10QIEQfMLdHyPebZjOhyppuQC5sbWpoAhdFgfkhECUujwVSUZdhYzQFCILtJ1Q+Hf1TAxdJ5uhVyXxAQ3Y66RK/I5xeXzmF5sJEjYcGKAHoK4DF0deiWoiF4ViTs/M17a11uqEJmwT3mnt/g1r2dJE2FTWSBTSp/C1AUTqpHIl85ZU944wYcWZVZVl1N6+WSYNAtBlfW1kwPHKdeSCBGj4z516QogwCqBLDNCNHz9/XY8XvcIUp0JXAYoToiSSAIrb0HGBWS9VsrTSaJCOx6nMla+Cw0pvTBUk1yt46BYuCEAM4fFnuMULWtTM0bv5fFusvSVnNk43ORGbwEd4goHjvRTEqYLjM5t2ImFaMet0QFKLjtX+Be0TVzsVxxYJAAAAAElFTkSuQmCC\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal soil moisture card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_soil_moisture_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal soil moisture card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json index 51abeedec1..8369a3f756 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_solar_radiation_card", "name": "Horizontal solar radiation card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAk1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCQy0bf8Mrz8/Pv9+XQ6bCQkJD3+/LOzs6srKxYWFjIyMig0mGIxzm43Yj5+fmYzlPb29vV1dXCwsK2tra/4ZVKSkrY7L08PDzn5+fn9NjH5aO8vLyw2Xuenp6CgoJ0dHS6urqo1m5mZmbt7e2rq6svLy8hISGYzLGRAAAABnRSTlMAIEDfv1C6kOEmAAAEBElEQVR42u3aiW7aQBSFYZqk18N4X/AKGLNDSNL3f7reO9i1ukAbpCInOp/SaDLjkvnrcamUjgAAAAAAAAAAAAAAAAAAAAAAAAAAAADu6cuHNxIPj9ZHN378yh1WTh+eYz2Mnhz6BPKn0Zg+hTFCBgYhQ4OQoUHI0CBkaP4Q4gYk7H7G2fkWiehIHcv3IxJm+lidJ+mY0P1cD1mruclR2qVWvEtq2SXx3h2Hw3iY1Mnel5E0RVUlC07jyMDiKf7qCptaQTuy1/NFN+V5xBZeYD6vzGbki0532cK9GpIpVRDzVF8S+5ZF8SHmHR/j0876VnNITMnJqg8Hag5xxAv1aff69ur7Vn3a09uhSS5WZKn6MdIk5orpdrOpks1rJWWFMqVb/duxSVOt3Ssh5iVt80L9SzuvjV/FFO39yNrtYysmDnmLG8uJ/IYX/IgX/ENMDfn+/ki19U1u3h8FhWLEVql8CxOktL16VhkZW7XmRSVfBkrJFoJ0S7/ICv5d3uUQVyv2LK8t5mQciBo+XDvf55ZjG8LbtqKD1Vi1CdnvojYkoti5HOLquXcOsSc80uete7LptDvbW3MgCr6kOx02Bfzo2nKaXM/u/syv3BFPsdTmywvFCjL8Oj7Q/lTz0do1cd2FHOOkObxRfKojXqjjmhputWI+WhdDhGtC2ltBPw6Qbje2km/7rAoVcFNGbKLl0olsaT3vTspcra88I8+KeeRlbpAqFtCZI7/a0a/6hf6T+NeQLkFLjkhVQGmxVgvezsJcn5kjki0yjvAWWk5Kltp0JaQwu1/I6doqtqKb3R4yUfZKZbL9wix4/FnuSPdXgMe7W6tU6+xyiDD1E+rdOyRT6zWPUx20J6+gPsTmEB6uPGb/LUSOFvXuGyKz22cV8JFYqGdzufd7SOd6SCAfvf8eMlGL9tEw+EakE9mvVmtzg9xbQ7Ru34jYxafXefl1wrk1ZC5P84rH/ZM65572GdUTui2kf5/tzGSb8vFSkpHnlI9DmRhTTkTL1yXlZXle4AnnfSFBqrZz3b+/Zd17cmqu8W4McZWR/RRSVWGZJCGPpjQtp5t8Ng2rKgk3L+GGdx4unc2mJCc0C2GyeVcIrbRS6Zo6HhewzGx4mwY3hmh1tvopJJw5SbgMzyHLquQxzy3LcJqYkHFZckgyWyYO504deh/XvfRU6u3N/4zf8hlNJ5zeicJyGs6qZOrIHQk35XTmzJKQ5142yyQkCcnljiw3kSxU0yndm4S8W7mky6qkpH8xhJA8v7bo0L8YRMgQIWRoEDI0CBkahAzNePT0CX7MTuQ8jR6sT/CD9tx6GI2+Po6tj+7x4TP9pxoAAAAAAAAAAAAAAAAAAAAAAAAAAACAO/kOdioE5akwBJsAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_solar_radiation_card.png", "description": "Displays the latest solar radiation telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json index b2e7fd63d8..862cf825a7 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_solar_radiation_card_with_background", "name": "Horizontal solar radiation card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC8VBMVEUAAADPfgjntTTCagSpWgHx0kb///rgoCDckg7/+H+hVgGhVgKtYAGaTwCfVgD////z38Pt2sJ8wyL14sPw3ML04MPy3sPv2sL46sv25MT57M7679Dy3cL358f57s/46cnr2ML568z78dH25cawYAH///r78tT89NT++dj358X358n//ufx3MTNegLQfgH///bUhQT//eP++tvKdgH999X//N7rvTutXAH//+/89dWyYgGjVwKzYwHBbAKmWQGtXwK9agH///PEgTH//eDSgQO1ZQH//uv78dOvXQGoWwGrWgHXjQe4ZwLnszPHcwKqXQHtwkGLxzbhnyX89tflri/ioyjFcALwy0zgnCDblA7ZkQu6aALV2JvuxkXpuTjclxP14sX02E7otjaMyTjmsDChVAGeUgH13VLy1EzWiQXKaQ3G1YbkqCvGZQZVUEaDxSzNcBP67F6ay0qx0WnuwzvBcAT248jwyUbkqyzgox7EuaGrpI734lWTyUDVigWaTwHy48XKv6bxz03emBjReRf89trb0bW+133451i3ZAHq2rrVgRvfnRXiqCTflyPYiR6yZASkm4jhq07xzkk8OTT36srtxmzXmkzbn0tJRTzr5rnPxqza46WxqZTP2ZKOiXf99XWKgG93cmTqvGDepEzquDK5ei+/YQLl3cDl3K/i2a/++568spqQkI7++ouq0F/ckCHw9uLy7s7f173ay6/d6qq+t565tZ3I2Ynxz3W30nP88mjv5b3j1LjVzrT//rHk4q7Z3aDmtlihzVXRlEqlVwK4XgHy8vD//87ksFFcWlEoJyTjtxThrhHx6sXs4sW/v7lqZVz36y7OkAuXTQGVTAHLy8X//8Curqv354bz3CTYoRDFfA7j4+P78Y/13oDz133y0lWTSwH//dnx89ng8cTLyrS3rZaCgoKZjnvarHToxRzhxKLR45jG34/rzCf5+OnV1dOXi3j25m+c0FDDjlDAh0TEfCWVSwH3+/Hj49mNwMzJAAAAD3RSTlMAICAgICAgICAgQL/f31DNJ4eVAAAOsklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAJg9eldNGAzDOF5P9VCpN2GnEhsRQhFjlcZB4iGIRpOiQRGM4OIgWhAHXSyY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", + "image": "/api/images/system/horizontal_solar_radiation_card_with_background.png", "description": "Displays the latest solar radiation telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEX////UhgXOewLOfgPLdwPWjAbHcgKzYwGwYAHThAS/awHKdgHRgQe3ZAHQfQGyYgG1ZQHQgAPNeQLmrzDAbQLNeAbDcALquzzViQitXAG9agG7aAHJdQKlWAKuXwHTgwWxYQHBaQbalA3FcALIcQfkrC/MeQHclxDrvj/RgwLSgAKnWwHxz0vemhe7ZQK5ZwG+ZwPgnhzCbALfnBrIdAHotjPmsjbXjQvmsTLotDe3ZwLgoyDkqizpuDrTiga8aQGqWgHGbgbkqCvipCjakgntw0X///nViAPotjndmBbhoSTBbgHrvzrnszKrXQHEbgLjqiXwy07ZkQrQfQfwyknZjwqwXgLPfAbgmx/twkH88GfhpB+jVwLYjQfKcwjhnSTjpinuxkHgoCDfnRP//+nemhHXigXux0XYjwbz10/+/+3sv0PPegbuxUn77WHAaQLuxD3//+TvyEzx00rmrTL45FjquTXipyG0YQHclRT12lDfoRzhpCShVQHakA+fUwHEawj551vbkxGpXALEcwK5ZQH6613yzkXswD7z1E7ipiX+//P+/rr23lXtwjr33k/pvDjblgz983Lxz0/88GL13FPgnxeYTgHwykTLdQnmsCr34lP//9r34VfrujjmrC7clArVhQP//+CcUQHXjgP//8v010rkqyn88GzjoSbhohzy0lD//8X++5f011Pnsy3lrSr+/af+/q3//rP+9nW3YQLZixzxyj/elxzvxzr++o3//aH++5KTSgH+94L66lf551OrYAP120vXhxn+/sDflyPVgRv+/Jz++obsvjTGYwf982vcmAzFbAX+9nqzZgr//9HdkSHMbhKvWgHOcxX//9Xpty/ckRrKcgH871rSfBjKaRH99on++X7JZwr99HzLbAb000bReBPVgBDPdAf36jGnWALfohL99m/44k799GTCYgP03yfkuBTWnBG8YQHowBy0XALsxDHlrCXqyh3frwvy22b363rFfQv475X59UDx1jniqRj04XXv0if58akeqTMtAAA390lEQVR42rzc7U+XZRQH8CLkIUCCJDFICAWkQEOMhyQoQxEKSBQNCTOlBLMHTSuVtdJ0iLpKo2WpOFf5mJXa1sxpNTfdmuYbt9pyvmv1pv6Fvt9z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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/m²\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_solar_radiation_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/m²\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json index 93804c104e..fd77223435 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_temperature_card", "name": "Horizontal temperature card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAsVBMVEUAAADf39/u7u7x8fHr6+vl5eXf39/f39/r6+vq6ur////z8/MjTMc+Ys7IyMjj4+Pk6fitvOqRpePPz8/x8fGtra2QkJDCwsLy9Pv5+fnI0vHV1dW2trZYWFg9PT3n5+cwV8vt7e1aeNXW3fV1j9zb29tog9laedW8vLxmZma6x+5MbtGCgoIvLy88PDyfsOeDmt+enp50dHRKSkrU1NSRpuNMbtIhISHd3d0xV8qdnZ2QKY5sAAAACnRSTlMAIN/vz6AQML+/B+y1FwAAA4lJREFUeNrt2glzmkAYxnHTptfLsssNCgoqGPCsR8/v/8H6LjTVaqsZ66TGeX4ZDbDMZP+yDpPRFgAAAAAAAAAAAAAAAAAAAAAAAAAAAMBzenv3wr1tae8+GC+dd3/Xat29phvw+q71hm7Cm9Y93YRXrVd0ExBybRBybRBybRBybW47ZGiKPKL/IurY9pAalm13dofs8a8te2zRrr+EmOZIOLTVZT4d4cV0GXYm2Mgi9lEwk6salpmJSZ3BA81Jp0Is4TjZgLaU31UexYqUkiqWPG/eJk8SxbHnSUX+WilFkmJ+5vGzdYQYOLkQD7z9SYiPjim+RdTIzcgS+ppM+KSPI26MnhASmQPaIbtE3elaBvNpb9VdynUwl/F82qVeFfe+z+V0LgOfvvCunK6qJZ3roU5whLCITL0oooyfG6MRUWYT2ULYepJ65HTIMNsPUbOgmgYB9cgPeDdYrqpg5vV4bNrz+UATomgWrCo6lxCL+u+Ljr44Q72+OK1hi9FDVgfmxHjEfELI4jCkp5S3DVktp0uleM+bedVvIXp5ncuyomaBWTQWgthiO117MOK0SPD60obOU64IHS6tYF3Jx5BZtVZqXa10yLya+d7cl71qpkO+97pL+je5GNQrqLkO5sHbqENbJ0LMBzGgfd5Ol7dzwGse3va8f8PvcusyIUPBPtPfqYAuzBSsQ0yvKYcuEzIR2oKe0cBkHWLDjDuOhAyfHmKL2reIHvXpj/oG7Wi3+ZHSP7JM7tgJcfaXRvT4Eo/z/ETISDTG9ChpZs3T3Gx4tvqH2/puyr/aZTP92NcnuFQPGf12nXlOR/5zq3nlR2L0x3uNHvl8IiQXjc5uSOom7cRVUhKFRmj4sfwqwzRWYT8xEtclfdjw9YarSqOUxUaW7XM6JtsFntc59uHd/1NzxewTIQvRiHZDvrqJUci0KJqQhEI3LVJ3UxJXuXEd0ncNHbJJiiItSnLTM+7sIjO1vH7Tmw+ZMGmfowdMwcknQqKJ0BzahoSyKH0jCeM0JCpC3/C5IyzT0k0oMUpX1SHtRHIIH2uXYRGHCZ0T0hjwjm3qDYv2NQOZQ6dCKMozMbHpmOOTbBdS0QVYw+hvA9x3GHKGPh1l9Ol53fp/iC8RQq4NQq4NQq4NQq7N/e18PH0zXxho3d17xkv3/t0tfakGAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Jn8AJ01hSMevW95AAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_temperature_card.png", "description": "Displays the latest temperature telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json index 25168535f2..6c8f44b735 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_temperature_card_with_background", "name": "Horizontal temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_temperature_card_with_background.png", "description": "Displays the latest temperature telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json b/application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json index 636a0f5630..fc5fbb907d 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_uv_index_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_uv_index_card", "name": "Horizontal UV Index card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAArlBMVEUAAADg4ODf39/g4ODg4ODg4ODf39/g4ODg4ODf39/////39/eAwyzg4ODCwsKQkJD6+vrn5+fz8/O2trbt7e3b29vV1dXOzs50dHSQy0bx8fHP6K88PDzv9+XHx8e7u7v3+/Lj4+PU1NTH5aPA4Zatra1YWFjY7L2enp7IyMiqqqqCgoKYzlMhISHf8Mqv2Xun1m5mZmZKSkqIxzmo1m6g0mDn9Ne43YgvLy/H5aK3Tah+AAAACnRSTlMAvxDv36eQgG8gyT+wCQAAAqtJREFUeNrt2OtuokAAhmFqtYevODDAgFIExPOhtrXHvf8b20HcqNntYv9QNN9jgs44MXkRBTWIiIiIiIiIiIiIiIiIiIiIiIiIiIiI6Nsa162LU3fTMIzbpufcnTqv2TBaIc6Ad2Vc2jgHl0YbZ6HNkJphSN0wpG7OPiRdDnBSvgrpmY84EIZAP+xDb4vRVhyjFo4O6VjoP4QPIeIoH42wZVmo3uppUh7S6w4BpB+T/PFycBCC8RSLzibEt6xFiGlHzyc6a+r3F6jG6uPFNO/LQ9LublXXHB6GJGNE8SYkjpLONIn8Z8uP/HESrztTVGJimseFoPc2QToZDnrA0y8choSfcYQiZAxLyzfROLLQ+UQ17t8GaWnI7vAytSH2LBbwI30XWXsh0+diE6K/XseoTHnIriM3wE5f7/c5ED/090LC/M0In8dRv2PFa5SoPmRoFl5S7AnxD2GxKVF9SLrsdld4M7fe8dTt1vDMeGzIq7m1OtmQvw6tejo2JN1+2IeoqW98/da648iQ3usE0CfEd+B116Js/OEdvEB7f0rmo8xDiUpCegeXKANsCQeQgWNnypl6gIR02vkwUE4mnblnZx7gBAJ2JuRmKbJMzyoUqg9Jl0Noj5NN1H6I7WezQPnO3AZcuFK0hfJnKpOurW9eYgOOgJ6VgK/0c0Eg5EyiRMWX8TrEcX3hBa49RxESwBWOUjN/roejIChCEjuQsPXSQMoggVIoUXVIIjxXCF/ona8ANxhJVyiZJGqWzO2k7QuBTYgvRnnITMi5G+jlDkr88E9dGzLAfzlqplDu5/98sL2y15b4Wo1C6oUhdcOQumFI3bSNS5wD+9K48nAGvJbRaHp3p87xmreG0bi5OHWt64ZBRERERERERERERERERERERERERERERN/1G1Juby0y7njrAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_uv_index_card.png", "description": "Displays the latest UV index telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json index 8c0096e803..789bc121e8 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_uv_index_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_uv_index_card_with_background", "name": "Horizontal UV Index card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_uv_index_card_with_background.png", "description": "Displays the latest UV index telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"light_mode\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEX/yQH/0Wz/0Wf/xkj/3nP/0XD/1WT/xwD/zFH/z1X/3XD/ywH/ylX5w07/yFL/zF//03T/0GH/yEX/2F7/1WD/1VD/2Gb+0XP/x0//02r/01v/0FD/0mP9xlH/ylD/z2r/22n/0zf/027/xkv/zFX7xE//1kz/z2T/1lT/4H7/y1z/z1n/1EH/223/2Wn/3nf/0zv/yEv/33v/yQX/0S3/0F3/01//xkH/zCn/0jX/z03/1UT/zl/9yFX/yS//0Wn/zFn/2Fj/02f/zUX0z33/zUn/ySv/ySb/yDf/11H/zUz/yAv/zlz8xU3/0jH/4YL/2GL/1kn/0Ej/2l//ywv9xUv/zmf/00j8z2//0T7/ykf80HT8yFr/1Gr/xz3/0lD/zy7/zBL/00P/y0L/0Cn60nr7yl//1Ev/zzP/zmP/0ET/01T40Hj/3Gz/2mL5zGn/2mT/2FT/zh//1Vv/1Fj/zBn7xlT/yzj/yln/44z/zxv90Xf/0CX/0CH/1Wf/4oj/0Dv/zT3/yRz/y03/1lf/zSX/5JD/yTSXXwD3znT8zGT/zC/5y2T/ykL/zkH/yj3/yyD6zm//yRH/0Uz1z3iKWAGbYgD3zXD/2mb/0Vn/zDP/yRf/0Df/yEH/11v/zjj/4oVuVyj/yCH/yEj/zhShZwH/xCr/2Vv/0VWTXQH/1D7/yTr/xynHfwCFVgD7zmqHaDmeZACCXx//zQGpbAHNggCPWwD/0z7/5ZRqVClzWCelaAD/5pj60XdgTyuGZCf/zg6AVAH20Hz/ykv/xzGIYRyJYBP/xDOAYCj/55xZSihmVDB3WiFYPAGHZjH/xiWNYA3+0nn/xUWLazZuWC//03dONwH/6af/xDphQgL/6KCCZC96TwFzVRfBewFoSAa4dQB1Wy2PYxawcAA2JwFTRSROPhljTiGCXhWQZyP8wjlyTAGQaS59YzSUYQdGMQKPcDusexBuUx7fqxDOoDLCjgvuvDrUhwCziTDMmRfgrjHsuSe/jyPvuwyfejb/23f0IbakAAAoz0lEQVR42ozZPWsUURiGYRPiFlYRV2VlC7HQWJiARVpRbKxcSLMQglWwMJFI0khAGxEsBUFtxE5/goVp7CwtRPDP6P1+nHnm7NkV7zkzplGzc+U9O6un7s7vW2m37kf201qtOn36Sq+dndFO1bOdZ9mFCxfWObmWbvQ7QysrKxt/VjY2Nm7evHn95nW6Tx+f01PrZfQl+mp9j35Hv5T6/fs7fbW+0EuPP40/1a/08T5dp5tdG/Rnhc7QjX7r6oL37MIzb6fpSr/Tq6dXs58cqz+jH9Fu1am5OnfF841jrg9VPAZ0+sqqhGqeKl5JERLSegEKIvqz4UQkI5BaJREJqdEpPtIBh4yFoKH0EY2FTSSaG5IRDhdr1oajB7TKET6q8zlm/TcQNNIRj5c4NVBvfDhHPkFcCxCnRkhCUqqGiExopTGqkIoQRCUZVTzWLI90EiarcZieHk89M4kTMlwENKvUjFAjFD5cFgCJR+3St7BhBdDxMWsG6GLtg0u2k90pNgMvlf41RmlEGzS711FjBFK72aUOy8dHPK5DfRyNTdh4siHpqADiRfnLUvxUaoJGO6NZoyoDsvOYfpwkzt7e7t6pZnaksxc8/Jr5BKKDTwXE7gaQhMKHq9Hc8QFKoUFmQIMCJCIJzSXCSGOURDLSXkdJpLS7mY546jedcFEdzv7+/rr1TkOjeCl6YaU7+MymfW7eEHFnuVgSEpCMWN4eBWPOkOEeRzMDBE7xWVriMird8dznzmBQC2HUqzVKIYioCEG0cKvTdqed7nvYiEfT4z6hQ65DghHO5XVyndJkMuH0KzaTQT/XSaR0yc1+VI9QTQSOz1EtZFtc6/MmgCIfIEc6JgFJhws6rPAZdTE+3jPOgRU+Sj4LHuqKELVTJCJvrpFwxLN4elbcJ2jA0eiYjvEcHBxMZhvQcDhQdwbQWAmEDafv++Jhselw+/weFqFuBOxZ7uTkRFucMiCEEsgnCE9bRefi6kX+xFj4XLQdLoSW3GepN0CjYiSdBqgVElAS/dEUWRIiEWm3M6IMnOTRU7V42ukJnX1idCzHIXhmfYYst+FaEdkIcSLELUAmloSITYc0ROGUPMyQlw8Jb+zQe9AbDny6sCF8OiEr2LE6bSFjayQeAkZVMhKaNETR/swDHSuJyvNCPUXtIMkInGZ6Wh4NDzjYWEnzDplO5xwNWU049Yx4xVyI+4DTyGqNTEUBpIJIE+Q6b8Cxejp7J7sc1PEA5CPEAQ9AFjoQjdR/CbGDi6hWarc5bXTt84KEIAIpiShxxOM6H4sOpQ6ZDjws53GdkMEmdTKMhkpVRgEUZw9oyXX8IqHyawMUE8Qlwwif3gCdZMUHIAVP8bFG6hZnX4c1N3/LbYS8/f1qitonOhE1SKXAqT+VangaH03Pevo8dhjpSGiBkYD6SQieAsTVy7cM25aIm7xtK4AAKUZ8hU4ZH/ns7QYPv2d7u+j0p+cKQJl8lvmelpcFtLDJYGK1QnTZiYDSGC14pAOpVRJNvbdVH0ilEz6pk7PT0AjocHjYCo0R6hpzC1qheNJdQqgMESe5Dm1f9BvNGUCo2CWTj4QoeaSj6SH5pA7jo+9sPB6o/BEbdnVChenAiRKIKSI9dLdEBUlKMlLVvxl0OCSc+Em4bIHD6NAMzgfiyuVQDYecFdGAeNHlTagoaYZGS5HxsEh3tSh5BqTE0/rAw2lCqtMJH/EwPpbRjGN43EgwTZ2PHd67dQ6I7KeZOZKRxogaI0oiko23kMfbp6Jz4Dpbk8nW1lbI2Gkd2hJOn2lzuLk5pE2CaeAHLJys7FZNZDcvWo19TtkYUQG6W/m8SpvwYTN0TnhE1Hs8UK6znI17mRGHfJr6Q0QHjkQ+RxAhZInICiIptdudbFqelSh0yHWSZ/IYHHIddfvF7RcUJvnrpcNLuQgcoCx/2WPl+/1IpZDyW6q2SUDWKw6A1EnEdtj5cAhIPlc4by3ZzsbRAS2PbYQU3/o/mygemwzJgYgpig8mc8ZoIVImm5YHnZbnMRUbcFgmQ9hkR0d5Hh4dORBBtIkWRlHfBp3xeHkZI25RBZRKSkYdkHxecZbxIbNhKftdGh4BWfY3I0QaIHwGHMM4NgkGTr+oc+XCfi+gA4AgAomt7jL5FNmZQkLSbqfHhsxphJM81DwXUK3z6UMWNmptbe3FUUB5MKWQXyW0ySEkhMh/hm9xQiSguUYVEMMTQPCUCo7S5EgnSx18UogfGp8gbKIcfjIfXo29ubJ38yyURnz8g6gYRb7R+SSZUBrpuTsrRO0oCUc8eqj26Umd4GFnkw8yFCaUX5B/caQuVSWQnQqgsQuRvxWQgDiV3WMfhgBKmQwYLnyxffLKTI5rHv+98umEUgecBEqeAScXlNImx+jS5qVDD6VzLITiAzpGrBBKJbt1bnTZ0043b5JmiOyUDfWfDMDufOLBwHG20KHEub22oEcQrT1Cp2WaD1RmyAKIt4SlrALyGzwVkKkkETIcpWZ8VPIUH/sLU0fl2PjJoS6B422io1Dq1387ilzIkcpWd6MYKTfqlFTQUIejNx4qOPB8Qic3tidJcW/tHp2vWnvUryViUSuURP6sa0AykhJEBNB0Oj1lMEo4LM7FPEtK49MKJZF0MhexXbsVmusURHQ5m/18pOeGDBIFGjahs+I8GhzNjo/O7XwgCBqv5XmkLxumQtR1djxmdUAaIqqJWB3RFB4HevV2kc/r19t2nW5Ppxe3p4UmfaYc0vEqm+jsWeGIx2zsKEASYi1Q4iYKKYhAkpFGSVKq/z9wbJHJY5MTjwXYhI735EnODS6Sufrw6lX/4uH58w84uHoC+nz0OYTeV0bcg+JzTUIC6hF1TSmBEGqQXncZUJceDVTaFJ5rLJfJahyVQodHfjnSxwr6QHw0VFvx8PB4ApJnRFLKHKmVkk3UPLM5zyf64DhrwQMOJtnD+RlPIj0IoUefP4fR+/cgeQXpLDFBEiIRSSYO7nIBevuXMDt5nTmO4zguJ3KQgwtqKHHgoCzZsiRkSVmaIQdr1mSJlChEClkPspQSkYM5OLj6N5TyBzhJFFGe7+XzefkYw3M+388MWb8P7+985+de8KQR3646ZrOd5ZuPXIxgTs/STmfpUpale4ORPjfFZ5xwBjvp4WNC9rEifFgeNGxpxNoMkOdzZIecalKSk/6D1K5tumXTlU3Dkzg2OIVm48aNPW+/b013998VE0IEETxkgzTXiBKIGKJsCBBCfsAjICuZbvMUk+PLL2/KYFQHIHx040aMz/Tp41QZnrk8BnDaADIiNlPiI/tyV9I4IUTJVG4cKKBElffhbXxv1Hzcoec5PNgwOsmDDUET9YaEjychRoju32eFkWdAJc5PEWJRpxNnU/tWFiVQ5clutwOUSYj3sQ6/UBTDIx2aNGl6weHhOsNpZOMb+W5KALFMieVKziQj4jzLSUQsSpHqQhqdvGHzYnKsvFtbg820aWGzqEeLrN21HotKiTRxx8SJmqLwmWEbQK0QRJETxVl0HM5oIWqBFEAkIFat09na2covUqan4zRsieNAzfB4c+vsMPMC4orNZjvPHJeUWs4imCLugTVJ/v7hyYk1eXjglNnhVzEaVuGJ0fHhSR2TSRuO0szd6lBv0ybWpl4aeS8yF5ox4/7cufNYEuIsiajGOY04u+ZkZ9uBhutQBepv7ff5KfGr+J5AdYDMpwGay/yU61sOu20nCxA6ZYsA8U/oA0pUjUIIIylluoFoO5K3065zzHVyfAoNgZOzQ3FlSx03Idu27d69rbb70O5Dhw7txsfCh0KIGZLQXG+CiACyEigeSxucBHKffgUSUlPh6eDjqe5IEk7yCIg/0wQ2XMq026uT97F48eJwE0r2wVwZVq1MURpxanOM2Bzpb0ws8s1psvywQ+Bk0NC0uCnw4XGZRZh4b7wCc56jduOQJaOFE6MXo6uQNzdKoUkcEKkAqkydjKkASG8+R2+zq37hoUGe9p3nLz4KnBp/atPxxaYQGp9K4zma8nJXmXhT1y24AspWm2CCNHHQqdc1cLKNVSdkZhrMm1nZeWLjIDkdElIlIohoBn95CfkQaY4EFHWUX+LsvAfQUePhWTi2+n0T6nv/9xlXfBaHjprRAEXCUeP9GC+gASf7hJ9G5JMgJpUgoSUZp4kbtkg4siENTrWZMmXWlEdTzj969MgOfxLSjUpECCVQZEMkIWqARNT1MRrZaWOCTCeQGCBoeDIbtpJ8unFls8PqjpzOFjoFh9h+1yHpiEe5ykAmYlZrWqNgIvtqmb3LZ67UWCVM+7VPjY7RrBFNY/Py5Zs3L9+ETPTo0YIFLOtR7bEhudONGxUJoYUYAQRRlDMkoMVVyB61bofDT7MKIBaH47D6RwFqcPrd8MngsT1tkkdCcxdLJ3xSqMXxW1Jb4/HJxbGDXUHEmbSz2UgdTyZlsyGtIFEBw4r+vKqJBhtw0iZ0FtQOeCqZjAghvR0tJE1RjBFAJU6RhoigcaZuKDVAdok76vGU9fu5VaCu0QSQGtBhcjwNz3rDQYcDHA1Q+rQBMzzur6L8IOlGx2n5peN27nn4UxYmChk15LIGjU1O4UFHOBs2bKgqO0sHssePjWjbhRuJlEJplDNkyUhCeaXjcBxi8zq5jcDGH3SbI5/7pS6HZIRjPgft108dZTL16oaQK41+wR8TG7sz4PPcYT7VDQrJaGhASaowcVAqFBKfGA7BZEkjnDo6s17mG44XNBEsrLb5vovowgUzWgEQrW2EZLQ+gDhfQqIuRsWmDSClGqHu1UaGw2wOHrQ9gYRDLrR+fVzdRrONJnisiQRQ7Nmg0v79bMpvgBuluO6RI/0v0WRG0+IwOlWmtZkTHHNi20vYePZ07dq1BwcePDCjxxeIGaKVmzatXLs2iKgR4sQEkiUiqtekfwJJ6KrV7xJCrAQiZOCJTIfV8vCHCB4aDVBUgA4bznAhHga0Xz4RTlRLIIhYbDZMa2Kc5KKko9lJG9LcmMyCpPF21s1s9jrNZSuUnIgktGLFCoAQKkNEASSi9QBFBlSJDopoOND16tPnQdhEycLwsOxABxuNUPLQDHwobNREBRFALLUfGKs+J8/+aap4VSZ7DA8XltKVzX2KjXRwEQ4mTZfPXi7dqq8aoxAiA6IQGjVqdJRAMUUViARkJ5cGga4bjLqa9fGh7sFu96AyHxo3jsXv0V7f4KHhPiIqQHdjv7uDL96X4qUyJTZ8BrXW2DHeNmL3flexTTYanrRpL2shkzxnS4Zz7vLlEycM59aJE7eyi7duYRRCp5MIIFq50i9z1BLpQoeRlIyGw0suP+UjgGFqrguIl1evmpASzlUpLT7ov7J8FoMTSUeJRyUQONn+/+VfKOOpppdKIaJEk7Ojm7Upuqo5DDKOc66ETAYO26no4Z1dnx9evLUaIYyM6HQMkYgwGjVKQnoraokWH+RMpg6bzviI0LHNbdDBhyWdqwd5XK0uY21ri8FhyYeG6CgjmXgXnawHUM8YeiyO+tI2nsj/i8aN2HlKAij4sf7K1wCMdLzg0eQ0OsAgYzgnTpw5U2BU2uzatevO7BE/P35e9xAhI4ohaoVyikZRFWKFES1uOxipqyMgcZ9MNKrqjGVlQC0urccnaexR+osP454veOko0iGXUPpG28bexv8HjJKOhqd510kbjU3onDnFQfYSFL6LPXm2zJ49YsTsLx9/rENoPkKEkIYIIKsAIVSMJMQMyYhrUk6AfBJIPhogVWyIrewm5IcGh/XX4eEIFuU+HPL5R7v50j+r1uuV/0dDi7XIl5WzIpRmatyGpTs22UBDBnMODTyeWm85rF1+pM4u2rIFnhFbvrz/+P7b7Dt2lVs1fxVCRhRCezRDmqKWaNl6b+xillf/+XPkTABUkpDaZ5vryMd1/AifxemzTLPTTA8rSph8Iunc7W2iP1iy+kJKw5KLw8iGzWziqwTJM0U8GhxoyGi8LVtss+ddCp7wmX3x1cePH5+dMqDVRhRCQbRnj4iiwSlatmw9SItZ4mkDqLYvnqqN44hFFSTDH8tmLfMqjHhUmZziozZlPR672XrOMjxOd+w82X/bpAovYWGxFRlWhkzo6NomHumAkzyvt7ymMbZvmb1ly5gtZFCan1OXPwH04+HDi09u3Vq9ipZcu3IlhG4akd6KYo4QoqkeQmFkc8RptDEaBiQeQmYfR2mIznplv0Pw4LOMx9TffUYVngBam0gtTnaoZ/9N+S8ZVNjj8d8GZITjOQ4ZT9CkDTgEzmAQwRPd+vb904d3H77eunjxFkAhBNGDK0m0h2SUM0QJFENkY6QGgUxm3y9C7SY0rioMwHDAhQXHWbjKxgFBN8GFoYvGRYogNUHFVTYGKS1xUVwWbINYqA2li1IrQruoltCWFsQgMQqSLpqWNG2wwySQLgohhmTTVJuSTJPQ3+D7/cz97unN6HvPOXcEUejjd2cSR3YmlWsrGTsE3ePfkPmkobNNgicCSYSCJny+YOFTUPr07fD4o4Bgd1vp0PBA8591ssEJnni2uY/RNLdpkYyIvvxuz+N798ZG5udXNwaPd3R0kRHRMYjopBi935cKBRHxZ/emzFAY8eeaArkNGnr4+GDDpUdb0agtGx7ZmQ9ATE/aNjVifDzmXIUoJyNbslOFnEZ5PmXxfzY55P9xgoUSrzx+Aw2Gn7YInMLogENb8tjo9BRxcGHl6+lB5+ie7vWJ+2Mjk7WxuaWJ1Y0zH3R1nQ8jJ/r5ZJ/U6z8UDQwMBJCHj5abobYUCBl2HLnUKK2NPmbzT2zDxpM5lallCREvt3kAkeNo3OS3vcnosF6IL2VweegQf+i84AgaGOKVorhL4ERi47lOPNtidJraRHuPdjx5tjp9bWmmNjtZm5mZqY5NPBnsOH/kSBAhBBFCEJkRQOMQNTXiz5XNf/vstuQRFzL52tpYbfgAyos4CJ805VEhvzdw2GoTQLs+3JW3cZkA+vbTQu+8EzcOqGT5jARJmIRL4fc4LClmx9911Oa3pjbR9r2HHq7++mD6xtLYzMrKynJtZrI6O3Z/Yu3J06FBxkgaEqHrx6gbIZ8iIUJIjAKo5EJef1tWYxqYoKKN+tjSv61YEUdOx8nGB51tPM4iFTIgZ3KW8GFuGB92dBgVv4nAYTlTEzYqegsULr2nzzXzMZ79Mj3Z7CQ8Ter5suvx6k+nboyM1WqTtc2V5eXl4SqNjMzdm6jdWzvuQkND9l7U3f0zRCd8iux9aCCdIBfyAohLgT5Dg+3x8jNg9GIV6u+XFT78kxMdtYmy9xu/qw9CWQWeLeJrNLbYDkJ6mIsXMKHy7ieh4zaUvPP8djXVac7zSs9XT1dPn/rl2tLY5Eh1ZGxkrlqtz1U55+b+mauOzVVrazu7ps5PTXVNQcQYMUXdB0XoxIm+E329tGt8fECqBFIIBVHUAonCyM1fQUTC81nI2PleP8vHRo80/UksV2ojPLz/ABTvPGGDzresYGEd5u4qnE2fYT4qepCrRDE74JDqEDyuEz4tzfvh6eNT12iOUOEZNzOJzfz8P/Pz83P1On+x9Ld8WKApmyKEbIaEyIR2DWjbKhURKglSKZS2ApJg0rvdgHGWOIBhmw63gk2MT/J8AwcbDvNhQcNWHLbraAlN2o9yvcH3nugNLlILu7HtoAJL2MTw7E95mk3Pyy+3vJw93I48/P3aL3RtaWlphEccHw5Wavg0qssx8uzgBwAdEaIpfc650EkXonHSNyKbIhdi8SDKhPozIDycJtNhMTz9omIH29MRIv5573GFvvrkhT5k4UMcHjwaQgIUI2Q+h7/hO2YFGyw4PEVhN6s4Nsiw1YZF8GSfq//7rQcesk8GT9cfLN6QJsCRajU+I8xWCRe23euPHj3Z2cXnOYBSIX/OOZE/55yoVCq9KZf8h8+2YcCIw4HcRmn03q9HUslv1nslU7ejOD1gsC2fHpL5EaD3pS++kPU+NO7D4LBTm7RmKIETMJHqWIeSH3ua8qDCYTE8z9cvTt+wGJ6RzGdlUlWIg3358uX6/XtrO8+L0JQK7bSnnA3RWYwMiBSoIjwASUpkIcRkSA5ULJkbh9FbZEQlGVJWSsS/nY8ruclh+fTA46ETPvx6Ma8zmAENcgVQYrTvk8LQuE+86UiOkz3d0KGiTlGIFx89vnhqWnwmNPWp4QPQTNUChhYWFkRobHNj59R5SUfIhIxIgaz28XYVihnyZH5KMkFeSzOfzs5+P0oGtHX4sHicJgmPAcXsRMYTOgbEF5cUhs2SXEeB9v24j4N4EcGBEizAyD1rT7zpuA80LHi+jOEp6BSUeh7+BY7lPAJkPrwFSWKDjiRO587dWzs4pD4idAmh6whBZDP02muv2XOufVyEzKgCUdL/AKlNJ1vL4XRuARQ+FWg4BggXhAKIU2nSgkdzGsdRHytTeZed59nzCV+G4sJGX8SbjuU4Pjr62aDg09Ksqw/Xp6cXczgTgmM+CjQb86M8LGsToinJPmwzRDZDu0+ehQgjA0JIjBwpBdKtQAf0SmJuFIalF5X6O+EpArmM7AqnfDoJoPDRikIpjxI1AsBkmuTfJDQWuRkPMmETODo7FJ8NttDhgRYvt3//+OL04uLixAQ86NjsONDwjDQ8Wc1GSLq9cPv2uXOser26uXFsyIQwuk46Q7t3C9FZhC5ckHei9vZ2gEyoEv/95+chD3TggN07I2VSGy2EKrLlUJ6KhkwEjPuEDits4t0HIAuXaGsVNqHjxZfWiNlp2AjPIdkGxPDE9DR9uMVn6ucP108v5t54LBWana1pAC2ITtUGiH37HEDW6Gj92cZOiPw5h9CxBpEKMUQQ2WOuYZTQ8Eett5YDlvp0HgCnSRkRqQ2XLG8gif84/LkWPmETOjE+KRDf1twXQqLBUSw/L4XJyc0P+fykT7e8jaU6H62vyuzw5sOPPLKX3GdSQohkiGriQ4DUMxjWqL2cXPv7AxO6NDSkQ0QqJEb6mGuXINpKSHMgbMRHiIpGSDqQvxCarG1qkwiND8Azrj55nt5dvRwG1BdAgRM8Z8zFblvRfG6n1SEoiY7LyLHffGJ+erLxCRxWI4bnL34VukjyobqR+3jwDAO07D4ROpK9uju6ucYQGdGloWyIMDrrzzlGSKpklRVJpyCAcPEYocSmnCGRCrHKlXLZvHPDUwkdGZ9emyBOq5crffPpS3QOig9bdAaRYWn6TCsCdXRwyLdw2V9/3cHhMoFz1GdHdVjw+NtPk+HRz9TbP3q8+uDBg+lpeDTTWRIdLsUh85nhsWZALDXx/CVEy5tPuodc6JINEe0mhADqveA+AVQpAEWqE69ViC2VyiWSu1aJMhcPHhXit06RmPT2yeSwPXQyH76sNMjiOJOL7zHt2SNLAqWD19w4SHi49EufdpCw+Ng4jtj4t3T27mV+sGnq0/Nw9TQ45D7YgJNOT+YzvLxwuV4HKMZHrgigu3eXH21cD6Gb12/e7O6+A9COHSoEUBB1AsQIlcVGmcoGlBDFq9cxKqeFTtROsLSzuFjE05VNKLH90YaN8LC0Bg48IkMcDsNK88EhTqE5SnL496UP7Y+RIXhsdMxGvkIlOj4+La8UH23EpzYrfvBRm9SHhmvDNd6Dli9TPXhGb3NRKjQ6+2hjSIGMCCEjOrsDIISCqMyy0AFHXypQ2ut6lImjUIKjOmwPG/NJg0U2wRM+FjbWmfz0BE1H5JODS7SfVegrZDxsRIcVPs4jV6Ptz9cfvKjD/BR4ALIRIoBigEZ9eG5xXcEl+nN0Ze0mOJ4RIbRDgCiAUiKWAqU0bNKzvGWt4pLx8DJ0HKcI1FfoG/Hx3CfHk9Acx4XF4TbhU4SRw2HkItGxeq46j/tEvPP8nsOZACfxCR42Olat8RakRAzPLQW6deuKCl3xhGhhZa3bfW5eAgih3S70UsyQ1epAshzoVa633norUzIfhMKoNXvRqjKtFe6t7Unmk8o0fHjFoy1Sn5MHHadAFD4RLsnwfPeCDCaSyQDDFh4DuopPj/u4Tnxq43NBzE2U8Mzq7Cw7jg0QNCy6rZkOQZQFFv15d2HzyXUnUqE7d/BBKHnKCU9razmtRWXw4f5v43b3GkcVhgFcyEURMRe9KohXpX9A2Yu9y51WCLlrb7wI+Eeo9wHJgkglsHth6EWrIyztLq5MFnTBMvhRiY5KUoYODjsb0xrMtknz2ZgP8Xnf8855z8nsos+cObvWbgv763Pm7HR75XXI2EzKfAksbthFcHygT69iW6I8boF8HJ5we9fSzON0ylMG0vIo0McFDoGQj+YzDXSum++CjvCp7B2EdanOH6iNyf3vv8TBn0vxsYfyu13Z1OcZFYcrJEAPH/6EBY58jFDhtLG8sbxMu4XPP//VARIhWyHTH17ifKD3XkWBoENKEPFyyQw/l69evnwZvyImE/M74I/Ct59+etEl+qgM9JE83nR9XJ5PpsYCiUyRd+n0g+J8hgEQyEjQHvoGb9nnpT1UBzs2yfeWB4fmd8GhjYHL82zttslDCXgwbIM0y8jG8pNvnh/xpUiFRlaoBASfKzTA4xPJU8tyGQMxD2IjQBr8fjwjoGEOTHzQMw504HP3rrWRzM9rfd4UoGuK49qojB/A0HBzXfIKxeHZK3YFhc5f1ofzC08SsVGcNQVSIQbSBi0TjebJkzXaLSiQCKFE+MN+FW+srnAu0KuIKZEhIporM5YJHMwjD4j6KJBj9DYGdHBACBpMIidyEzwSBRIf6s6U8PgNOufjiPA0KuiM46P9KcpTl4WN8hcCG8z372M8vf9U7rb9sioovg581nY3dndv09NCR8M+QoShRMv44PrggQARkQWCDy4bl8YAXZGARjIzQwW6BKAZtsGB4YbULwuN9sc06KIEUCDxIjYoUOGDbzJjTM0jHzLQFICQwubaBx9cu+YBzX08p0CLpIBZYbzevIOD4i1vuBFqq0MoOBF68rTI6tPVVZwUNcLXFNe+/nk3T9M8x4QHZGP39sNzSKJDUZsnnGVcisDDQkgVKRqEYAvGQphoft0AqZDjw0YzFHa55AOBZsJf3CYKIjfMc4tOtsEY4SOZmsKQiM41/r4zeCyNFSKbRRqQWXBwNJXKK5htbH/ODrAtaDNO4fKUTs0qnRgSuvbc57/azjlpHMdpt1nrbG21MzBRNpCvnP4Qka5swNH8+dNzJlKhlYsT/GbKIkVGABIhaVAhZIFsaFm7YS88HtAEIjR4dnEEj0aINHIFUh8O6oPu0MlANg7QHPVnbs74LHqr2zkQA0Sz3j648FItirKs3axtNbvduqSNRBmOJrLV2LJpNrv1djbst1qDdg6YYTNshVEKobDV6iNRnGSDQdgZpmmMLyd8tfENfKRCwoMhNEUe4lKE2M32ygQiDeIIEC1gBGSFMIsPhDSFzYxd3WhMeAEV7RdLPtogxNExPrjnUfhoezSQKZBcIAREi0ZnYWGB5uuGp2K6g/MVTuU6wVSoPUWD1rMoajcajZoNK0T40VqvFwR0djoNRP5XlvaXOIPuEEZ5uxNmcZxEgxbSTeJ2q7VOZtvtoD2MEwQGG7sboOEoj+b2L/uzIlRVoasWaJKB6Boz+ToBSUTHr9CNG5hQIgzhGZmLFzH8kMstM3DevKU80LlLPoj1mbc8CqRRHskiBTwktGBXNZrAgdlwUHEqlYp3Z/Ts7GyvHzS7lqdZjyjgAU4nQDoCiJJ1o7j/YskEPQoyGKX5MI2TuNYCWJJk/QAu+Tr/R7K9vR0Pu0EY9sKgAd1hDjtG8YiSH/85fAQgWeQghDgNmiQbHIgAyV6bbWDk+tzATCnKUw7ZYPIDFophgo76UN56632cKmTi8Yz3WYQPxeJMWyDmqLgoro+3yw7qzNPFlSSKmtBhIIrUh3zaaWfJ+nDCek5I4EiHjylJvJ2kGXSQeFjvhRJCwq+IOQyDDrToO6l5+icMHz+Onz1nok0jxD6IBSKjSUSANO4SxzaiI0DICJ6RuWWBxGdWgJgHg8I4dEpcoDfF5s4dxrkjOopDIRf4TFckYqIsJST9nHp20Og2m7jG5PVAfALocIxPvZ3WrQ8dnKVBL4qRBG80ZzvhpFGz03F9gh5OBFMn6JkAK8JPTdMfn39xtClCVCEFEiMR8oFmiOhV8hEZzBboxkghvztVn8fg4JwF0CyG9Iej9dGUgO4AiDJnIz4CNL0wLT6CUI5WqnQjDp9Ws2wYNRgHofrY9Q27h2G+VER88EhTv5O5QHG0FeZDejGdNHcCHBy0hx8kkOqk2zGInj1f3d/c9IQu+XGXOF3o7DZbfDCK/P8K3apWYYNTgi+z4JMzTsujQt85QOpjoz53REeBpnnS8oyN//+9G9ndMBQd4nH3B9ggtCyPH/rxMBGf5nq/Pxi0E7wQa2aN0qgZZhtmM3RoU5SAKP5z7dkfEJJFDkDCIqcClYkYSIho1haNB1pZkRI5sT4SH2iegRgGSGOBOKRjfOYcH47l4Xk8jypCSHNWk4sPhXUQ3oRjg6A+IzJgobg34KxvNzsNhqVde7uOdG3ww0SHQQHVELXb3k7yPbdCWp3xQFdMhwiJ4wOZlbIEtMIHhudDDZo1NbI4OAsdCf6iHjwezj2cZZ5yfcRGaTD/Z8pE0weNHm3dJMTD/dENQkuN+q2+pkZA4TpCU5IFDQ6/HGlT6nRyFKsJo3q8jcTZoemQrHEKRNPIJU6YBKhsBJ8RQmQzAaXqStUNgKrVWRYSIqQAMoN4YEQ+GMRzD4OiQPARIAnxSJzyXJD3fkyNxgvt9VAe4WGgLvt0Xyy94GiLRGZgEsAnCXHlZ6QsbtArmyZ4RkYazwlEnQzrXJ6HmySECnlA0JmcVCAvtEmwd3wUyCVCk86FhMAkPBqg0KRhIBWahw1HgO75QMivd9xdQlmIa1Quz/hlbpTQWcA4FOszzPsvihgepeHShCHvs81n2yDspo/jvNmlmxLYeGScyInHRAteYyvHBj0/FSBvGwcf4AhQOeKDWCMPCBkppA1y1jkPSBokAY8scDiL5U189BokKe+yp9UIGWtUUaGKBWUgzUnAQGxkFqgsxbrVby1xfRSHaSg9pE4NousX9mYoEN7uYa8j/aH2RJEyKZGpUbHOxenfm0iVgbQ/EgUq+ZRXOU0B5DKZjQKIqg6SXH80xKOhAlkjCLES+3hG4iMZCWSI/FwogCj0YH6aecF5oYWDbiHEPlEMDFDQZxlwKArCWz6aQphkAW2ug/XBVhrHeZoNeljooFOXGCi/RyzEJWpkScIdogrhfWWf8UB6W07vao8GYh5PaEWAoIOhwSahtMLh9ImmioDHIToH5G4VDBAPSuUCvfPjbiBUOOrJLxAgvRARTsNuEMKl1iAMgEYHCLgmOALei8t2OU6Sxvr6YED1auR5BAu89TW+ouFFsKZrkVL5HTL7uTRJfjhkIbyxXn3GXoMUyG2R1TGT0dGAhq9DNODibOdmvRRADwoiARKk0jZBL0N+hYjI9kibUeGlDFwgs1Bk5/ks8Ct8o+kTEpLLe9q02zazrlF9qDgS0uqtD/I4Gaw3ap1g5+h07+QR/yOTzZOTvf2/j452TIJgC3d5hsVK1y46pPu5Npj/Od7cBBAXaByQv9PWFBcip0AjgHgThxDPilcgF0cWOSffzYsQiMQHUZ/SXru03dYNN2Z+dgFhJ8jgQDwab4/uCs3tFJePYfsFfPrFFcdb13qIudMW7Azj+PjkcJP/lH0+Og/o77bxpauTk5Pj4/39/b9PT3eCP37DIpohbS5Wjv3c0WF1BQ2i7QEfkvcUyCfygFRIjXS3XfrEqu3R/lQtEvLIEXrAWzn/o6puFPCv2XE6GwWciPm0qjXi8rirF6MYGFfHjbO/EKDpRQh10Z8op1s6WLaMkGSdWYJaLTw4Pd0/ufvya29EaXoPNoqDr5CWhDSPEPOx9NH8zbdvHB4ew+sI2cmTZPeYgCAkO2wB+hc6POxdfFVXHQAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal UV Index card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":null,\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"light_mode\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_uv_index_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal UV Index card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":null,\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_value_card.json b/application/src/main/data/json/system/widget_types/horizontal_value_card.json index c6919027f9..1e965d337b 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_value_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_value_card.json @@ -2,7 +2,7 @@ "fqn": "cards.horizontal_value_card", "name": "Horizontal value card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.horizontal_value_card.png", "description": "Displays a single entity attribute or the latest telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json b/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json index 878bc1b67a..5e0641a35a 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_vibration_card", "name": "Horizontal vibration card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADf39/f39/g4ODg4OD////k5OTYGDjg4OD64ubwqLTdNVH1xc3nboLIyMjiUmnOzs7aJkXx8fHsi5v09PT98fL5+fm3t7f41Nrb29vCwsLzt8GQkJDV1dW8vLxYWFjn5+fumqjpfY90dHTgQ1398fPiUmqsrKw8PDyenp5KSkqCgoLkYHYvLy9mZmZLS0shISGwsLCdnZ3pfZDpfY64MVbEAAAABXRSTlMAIETfv0i0+14AAAO7SURBVHja7doNb6IwHMfxnbc/tS30eBZQQHyYD9vu+f2/tmsL7LadOpZcFrb8PomsApp+04kmegUAAAAAAAAAAAAAAAAAAAAAAAAAAADwlj69ezZj8tl576afJ7rDSendi53J1XVMH0B6fTWlD2GKkJFByNggZGwQMjYIGZsTIZnb4tQJD0RK/XQOJT1wqFI0Jv+GNKwjqXcfUq1UuJ45FIbmRuE+LEvSY3L0vaHc7k8TzZ+MOnNhuHTO3KXHJ7svhHgeWZxRb3Fw9rRW62N9UPfH6vj1sLvfLRbOt69rul/v1bCKVcDIiJgm+cMooU7AjBs6gzOPHmwCyZpLIfxxCE/IUvVubUJUuFc1OYfbmva0WNzO6JvznRY7etl2w7T2eaWbrcx8XTO6Y6v+FCaFNqczBMuol0lBG3kphPFHIV8Eteq6NCGz8KhDbg+zLmRHdTgwhMtItCErM/NtwBLymDDTD/rJPVmMhFMydxOdO+dkfZH2LOEm/QKdDUmy5yGJS8ZiTybkW73QIT/39ZGOC/2vVX+9pYEhGm9DvrC53m5Ypm/m2SXrJurqQk4dXekFTC+ZWcmofXijNzesu5/JTXI2RNw8DxGSHgu77ZNNZ3iI2267BKlHlmCbgAXRQ0jQzHXF3Txi9rzGbD224iLQj8iCFdHrQi76nyERk7/1KkR9SGMWKbCrJ8x5N/1yCs/d6sWSko8zhHhip96HCHthsOfqYaY3NnalU2grjGSkIVbA+MkQr93fSL0W0UtviDx7HsKz/x6iZ9i+2LuXfcCS/i0uuRAi76iViaBPf/XlN6YT4vD5jnhQSMPuuhlG7Jeel50r7xbJHjgV4tr8rdzYC3hE1uA3xCQha9bGxBTmZKUppVPf7JhSSkTL3ZLSPG8P6B3xhZCtZF4kWaRHgR2JbmpzFtgDJ0M8PbDDO9H0i/b6jyg6pCz9XClfjwoq8qJKZ4VflsqvQr9KifxlXFU5xb494KvqfAhxyVh78czMqLGvYbMV5m5EJ0MCj4ytx/Q5goaERKwjn4T4s1j5S78NWZa5Hut9y9wvlA2Z5rkOUbOlinVuEdMFCU/6uG7E/949STD34bF86Md4t5NQ74efF/6sVEVsVsSv8mIWz5Sv94XVUvlkQlKzIsvqhzlQFgW9qS7k1fIlnVeqnIYYQ0iaXjoY0xCjCBkjhIwNQsYGIWODkLGZXl1/gK/ZieLrq4nzAb5oT52J+QnH1HnvPk8+0o9qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN7IH7CH4Te59eAaAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_vibration_card.png", "description": "Displays the latest vibration telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json index 18cc00d6b2..e256382fb8 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_vibration_card_with_background", "name": "Horizontal vibration card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_vibration_card_with_background.png", "description": "Displays the latest vibration telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"vibration\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal vibration card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s²\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"vibration\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_vibration_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal vibration card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s²\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json b/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json index e7cc869d8a..4433be4d2c 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_visibility_card", "name": "Horizontal visibility card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4OCg0mHf8Mrz8/PP6bCQy0bv9+XOzs75+fn3+/K3t7erq6vCwsLA4Za8vLyQkJDa2trV1dXHx8ew2Xvn5+fn9NjIyMi43YhYWFg8PDx0dHTY7L2YzlPH5aOIxzmenp6Ixzrt7e2CgoKn1m5mZmYhISHb29u43Ymo1m6tra3H5aJKSkovLy/b7uh5AAAABnRSTlMAIEDfv1C6kOEmAAADOUlEQVR42u3aCU/bMBjG8a6wN27jxM7dXE3Tm2uw6/t/tb02ZWEbdFWpqoCenxCx7EjwT0xboAMAAAAAAAAAAAAAAAAAAAAAAAAAAACAc/r07tmM4YXz3o0uPnOHE9C7J53h4FLSBxBcDkb0IYwQ0jMI6RuE9A1C+gYhfXNIiNwSleXWIZaVccaHG1rQVsoevUw7JIR+SmrLUpIjqSgmMRfFNKdY3nALOXRK7jr11NNoSTueGB8R4la+EJuxp+jJZOvMaVFOFvNyEk/au5a+0JzbfrTRggcnlArmT3+P1PEhaix2fI92yjZe2JBMcgjfDWlDHDPklNPxhO9OU+ETKTOaifHRIdMNF6xDmt5yyox22rbgkKK8i23Izy7k5kdEpzMWZjddCUUz88XDKxE+C1EqDBV/a0vFS567N0SZDkUun1s9K5nMiUO2d23EIXftDT2GxHOnnNMJLT1lQ8Jd0kpMu5AHsQpdsTI7Jk3tvtsT4vMJ3+nBnBUK9me27A5PI95zp+aJFXGIS/bz75DUXmG+uMuZ2TRLX6Svh3iCuVPBZrQS4r9bUy4cOjHli+kLIbaDQ8b2Rnlm7vb1kLUNUV2IT+cWmiv9b8hGmDwbYqft8PWQ0DcbkCrB+TbHozMLV6bj3xA2OziETa+E2ChaeiFVtuncKjHbHb0/ftg3yyvhHhbSlfic4Y6fPWhJeoG8/ntC0ps9PG38tfhqn0y655Gl8MODQ5haiZ3Nd9qJbAx/XOdkBQEFI20mRhQQUR3XFOT54wJPHJu0FuJrxTyzyavUF2kXQrfcdngIc6sVV4zXIT0LKQqdN43mUUJJnmRBlOiiaHR2rbOASNcyy3KS2i7oJjt2Yz2q7IOX2MyoCzFt6/0he3QhOpKNrvVjSF3c85jn6lwnjQ0Z5TmHNFHdSM5NJL1ZqMJTv/r9pu8THRVNIs0d0VmeRDJqNM9dZ3WjyYQE5o7U2TezUCQJHeH8v1jlNb2uaO7pEH0ICYJ9i5IO0YuQPkJI3yCkbxDSNwjpm9Hg8gP8m51IXg6GTo/+gnuswBkOBp8vRs57dzH8SG+qAQAAAAAAAAAAAAAAAAAAAAAAAAAAADiTXxBy+4qYs+NTAAAAAElFTkSuQmCC", + "image": "/api/images/system/horizontal_visibility_card.png", "description": "Displays the latest visibility telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json index 0be7d6a74d..657fb246db 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_visibility_card_with_background", "name": "Horizontal visibility card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_visibility_card_with_background.png", "description": "Displays the latest visibility telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal visibility card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"km\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_visibility_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal visibility card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"km\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card.json b/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card.json index a06d5231f8..057863627d 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_volatile_organic_compounds_card", "name": "Horizontal volatile organic compounds card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OTYGDjg4ODdNVH64ub1xc3ri5v98fPOzs7iUmnwqLTaJkX09PT5+fnnb4K7u7v41NrCwsK2trba2trumqjw8PDn5+fIyMhYWFjHx8fpfY/gQ13V1dXzt8Gtra3kYHaQkJB0dHRLS0s6OjrU1NSCgoLb29uenp7pfZDkYHflYXZmZmaiBA8wAAAABnRSTlMAIEDfv1C6kOEmAAADj0lEQVR42u3aiW6bQBSF4bRJL9csAwyrsQ1e4iXp3vd/uN6ZIcitWtrIaWS751PijIEg/2YGKYpvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7Tm4tnM97eepducvtOOrycLl7mvb25y+gK5Hc3E7oKE4ScGYScG4ScG4ScG4Scm9+HqIp6809EyyVt9yXRZr+d0zn6fYjPIfUe59Qt9x+WD0vvofzU0dyj0w1nV/0onEX3R6MRPgd/HxJoHk62/+Q90sOGykP5gaj0ukN3asVK8zDyyYhY+EpGBYu1Oi1kliiyCp6ptD9+2W0P9OjR8rDdy1PvYbukU6g1CxKVloFvg9gPqx2viFIzWnN0WgjzjCI21rTihJyu28jkIpld38g7zJfbBzpF4EepCwkTGfnujUulkDVRYqZCJVstFSh1H5IIAlJp2IdUMhoNSbUv5yiKIuGwGN6V/SOR13WdRx+6RzO1DnSiwIW4S0FizaF7iebbvqOqn3FfNbNfmcAvLCPZ6dtRokbXyIy1PZHSmgv6wfzo4YVDXIK7w3A/Cp6WTpTu2Dch/uze58Ts89PU52g0RI4vXJGJH/FqISt51LI94dT+npJ9lf298ZCQP5ORslY04tVCInfrsSFuCg6TbzSEdhzaBamlaPCKIdqO9FGIe3QhyVFIMB4SaLfY04RnNPjHIe5eRZrV8DLpKGT3yytC4yG062+/FXNFRka/kM1/3pCdEhLx5/6muzIvPeXkKaQw08OukdmwRkJzxPoPIYE980oOLhKypjZGvuYNWXlO+SQ2GyaUy/PFdkF507gdsiF7fojSXEQ+p6aGi5WWUR8i29furqXNESt711qZI8ZDAm2vg2KTPYRsNnHTtrGMaqqbusyndbzZtHE5j8ucKF5kZdlQFtsdcVs+O4Qqn1nPSNwPIxuyk6dJICF2tFMmRPI4ovEQpXXgVt/9Ucj7eJq18SJ2IYv3H2Us2xZNXLc2ZNI0EtJOF20muXVGzxcEahiR5daIe2rXyHCEcqPxqaXcj4qebOOPdTzdtHVmrkhcNvU0m7axbJuXizYmE5KbK7Iot2bHpq7ppbjF3oe89B9WzWJk5/v2ozxeRkiej+3M6CWFUUhOGlX/95+6FwYh5wYh5wYh5+aKQu6u4N/sRNmdfGDgCv7RnssHBm7e3U68S3f79po+VAMAAAAAAAAAAAAAAAAAAAAAAAAAAADwSr4DXzz6NDozanMAAAAASUVORK5CYII=", + "image": "/api/images/system/horizontal_volatile_organic_compounds_card.png", "description": "Displays the latest volatile organic compounds (VOCs) telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card_with_background.json index 75db4ba6f8..d1f421fb52 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_volatile_organic_compounds_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_volatile_organic_compounds_card_with_background", "name": "Horizontal volatile organic compounds card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_volatile_organic_compounds_card_with_background.png", "description": "Displays the latest volatile organic compounds (VOCs) telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:molecule\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppb\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:molecule\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_volatile_organic_compounds_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppb\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json index c2acbd33cf..4d13d5037e 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json @@ -2,7 +2,7 @@ "fqn": "horizontal_wind_speed_card", "name": "Horizontal wind speed card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMd1j9zk6fjx8fGtvOrOzs7IyMiRpePy9Pvj4+O3t7fI0vFaedU+Ys7z8/NYWFj5+fnb29swV8vCwsI8PDy8vLzn5+eesefV1dWenp6QkJCDmuCCgoJmZma6x+2rq6tohNkvLy90dHRLS0shISHW3fS6x+7W3fXU1NSRpuNMbtFMbdGsu+qtra1mE7QcAAAABXRSTlMA7yC/r1EOHTEAAAN3SURBVHja7dprU5tAGIbhJPpmOW2AcAgg4ZRzGrXa/v/f1neJLbY2FJypg5nnMgSy5MPeLMw4oyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6G1yM55+drcT7hgb9OkZ48no9go6uORmNKWrML6WkClCBgYhQ4OQoUHI0FxtyIneMgpyUnKd0qCzkDenKB36Q5HTB2oPERW9tTdWIYUO9xgGdxlfeOwo3Tsy1Od6c9T+IKmfOSkPZs1uxu05XbYxO4VolGWbk02vHWQYGnfEP4e7rXNcq5CwcBzny+FopMew4LGVwSdlr4oqFqRooqb/qvB4Fpf5WqeQ+N4TLPZ2M3OuU60ow7JcqxBnW662pEKc7V3phLTahmWxXq23e7mmPitiPwlGiieyVyuyiYVoC9mI+44r4vH2IITnPQsxJyXfF3Jf/BZirIi+OEdauWEh89VBSnmgdY8Q3Z+ZLyHPvGvMvCxrQmzdtjcbnei0OVFN84npfJW7hJAQ30hXIbV9zq+XkDxc73moDMOVs18fHTfkWytUt9Z6L6kP/SVExGTTa2YTookqFiKeq9ukqsvUOdsT7Gu3EG22UyF/YfzcOaFRHzTbe0JsEfNcd/qFkHhm8kSezCyuZ2Oq969i9zDnz20hPj8jvi9E7O+qbGNTG6OkFh1DeBdrlS/8CyGz+ou6OvzGA5763k49J6a2aV+RSpuZDzr9Z00I2TpvfH3bQppDfqNM+Jq6yO0hH6IJaWbcJcQUOjHTV8/IwELmpppb1S3k2aMznVvMviEB/W3Q+HMgeF9IJnb87os5j/wr5HSe/JNvE83ErG+IW8fwy4iotljQYmqpgSktiGi5XdIiis4neCDoE2L7Qpt5wldJWnsIb3VrJTwz88X9O0Ly3IqktPgooSRK0oWbWHkurdSwUp65tQzSNKLAqk9YMu0RQronhPB0FVL9I8TfkWJX6pePjN4R8mi5gbSW1jlk+RjxMY8tIyuRdcg0ijhEuksZcG4SUB+2bp/31G7ePBY6h7eFzHV667sVJZabyyRQK2KlUeIGrrR4zEiX0iIVslArsky/qxN5ktBHUyG9RUu67FFG1MUQQhaLtpMBdTGIkCFCyNAgZGgQMjRXFDKmqzAd3VzHn6dvr+cfBkaT2+lnN76ZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgrx9YOdsEpKcg1gAAAABJRU5ErkJggg==", + "image": "/api/images/system/horizontal_wind_speed_card.png", "description": "Displays the latest wind speed telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json index a1fc60bd29..487bca4d0c 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "horizontal_wind_speed_card_with_background", "name": "Horizontal wind speed card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/horizontal_wind_speed_card_with_background.png", "description": "Displays the latest wind speed telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal wind speed card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/horizontal_wind_speed_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal wind speed card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/html_card.json b/application/src/main/data/json/system/widget_types/html_card.json index b4378f89d4..54defe2f7d 100644 --- a/application/src/main/data/json/system/widget_types/html_card.json +++ b/application/src/main/data/json/system/widget_types/html_card.json @@ -2,7 +2,7 @@ "fqn": "cards.html_card", "name": "HTML Card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAATFSURBVHja7d3tUxNXFMdx/u7vEkAJsKQK6bilKaBV1Eh5GGNaSyq0WodhRuqMtQJqW5UHCwKGMRJiQpL99cWGEGaaTjtjgaTnvNpz7mYnn8neu/duXtwWFbdWlxs8Vrf21VJcy5TU4FHKrBVbtjJqgshstayWmgFSWm1ZVlPEskEMYhCDGMQgBjGIQQxiEIMYxCAGMYhBDGIQgxjEIAYxiEEMYhCDGMQgBjGIQQxiEIMYxCAG+T9ACrlcLjjyc7lcWflcbfhBfnByOZfL5cpSKZfL+f/2G+WAJ/8dJAHh4GgFeK4BaiOjMYDtyskzAIvSQ+BtI0JmKif3NRBk3PM8Lwwhz/M8LxtAzgf30RoNBJEkjUOk0j4GwJok6XaDQ8LwtSSVXVrP1of4v1w978bu5YNh4fHlfnfwfpDo15Hevm/eHkCyP8Tc/rGV44d8FaLbl/QCRrrqQopXg251bkdSdjBIIpuSNAtAbwXyqgsA595Hh3Sm0+l0Or1QDzJxLWiYhCftdSFJoKMHiPnyvwTOhIHeD9KGA3SfIYBkOsGJtIPz/GNDauIvIfEFGJdKnZwtOPUgOw4kfT0E1vQMmPb12IEZaRJCz1RKBpBJCG+ocAVixw25XArTUdACTBbqdvY56MhLisK8xisDXRyiUi+MStoDnqjUCT9Keg3Oh48MCcXj8Xg8PlwPMqQE/Kzr8HK3LiQBFyozhaI8uClJ8+AUi8CD6qi1DYymUqkksH7Mnf0zLcNIvo2In64LGYXhauLCHUlaAnb3gIUq5FXN7//qmCH98s8RmoXv9KYuZBI+ryZ9cFsKzsvngUdVyAowcDGIjWOGRKRpaINNrdWF3IUeX9LS/PymLsMlSZqCLikM01XIe+CnE3ogRqRtAE9arQtZCVqynbCoWXBWpfddMCaNgLsnLQSj1gVwM5Je3/RPAKIBYPYIJOp5nud5dw8uFIPQxO1eCOf1oRs6Jm71QOtG0FMiydFQAHkKnJlIjTgkTwIyB87uEUglbh5c6G13UGhdkvSyPUicB5J0HYBQe/Bkv+tUPnr/JCDZVq7obyF6d6MNnC+COdTmSCs4A78Hs5dkG3zyYqAy13oec8CJ/XZ6l7qFzfW9apJ/80dNsr5V2yNyGxt7tmY3iEEMYhCDGOTEIJnD6YtBDGKQpocsDrvR5K4kyX96PeoOzu5Lysbj8b2Zvv7SkepphgwBcD4vqRAPVlXR91IauASUVAhWgny6e7ohtEdCwcpdCaDTBYYDCED5sHrxdEOuFZRx4Ya06cC3ZS05sKI04EzM3demA1NlLTqweuo7ewI86U7lHdYQzCgNzEnSHXB9SYPw/amHpKBPGoFzqVQqFYUxpYEX0pHqeINAav4wvXoI+eyweq1BIDHorry+nT6E1FRnGgQyCtFqUxVyo7baGJBHlVG4mFivgRxU9xMbjQIpR4HBqYRLz84hpBwFhqYSLu5Og0C07VZ6dXTvEHKk2iAQZZOdQHcqX3NrSdlb1WrjLHXL26/T/j+s2prdIAYxiEEMYhCDGMQgBjGIQQxiEIMYxCAGMYhBDGIQgxjEIAYxiEEMYhCDGMQgBjGIQQxiEIMY5PRAmmaD4ObYsvndVst+c2yiXWppjm3NS/oTe0OjFEeU1MMAAAAASUVORK5CYII=", + "image": "/api/images/system/cards.html_card.png", "description": "Useful to inject custom HTML code. Designed to display static information only.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/html_value_card.json b/application/src/main/data/json/system/widget_types/html_value_card.json index 880775c0d3..2991044687 100644 --- a/application/src/main/data/json/system/widget_types/html_value_card.json +++ b/application/src/main/data/json/system/widget_types/html_value_card.json @@ -2,7 +2,7 @@ "fqn": "cards.html_value_card", "name": "HTML Value Card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.html_value_card.png", "description": "Displays configurable HTML with the ability to inject values from the selected data source. For example, display single or multiple attribute values.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/humidity_card.json b/application/src/main/data/json/system/widget_types/humidity_card.json index ea1f3cd17c..40aa9ea0cd 100644 --- a/application/src/main/data/json/system/widget_types/humidity_card.json +++ b/application/src/main/data/json/system/widget_types/humidity_card.json @@ -2,7 +2,7 @@ "fqn": "humidity_card", "name": "Humidity card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/humidity_card.png", "description": "Displays the latest humidity telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_card_with_background.json index 31f0ca2444..b22116b964 100644 --- a/application/src/main/data/json/system/widget_types/humidity_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "humidity_card_with_background", "name": "Humidity card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/humidity_card_with_background.png", "description": "Displays the latest humidity telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/humidity_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card.json b/application/src/main/data/json/system/widget_types/humidity_chart_card.json index 0a352cd2ff..03cc12de76 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card.json @@ -2,7 +2,7 @@ "fqn": "humidity_chart_card", "name": "Humidity chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/humidity_chart_card.png", "description": "Displays a humidity data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json index e5e3435d58..6f1e98fdd8 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "humidity_chart_card_with_background", "name": "Humidity chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/humidity_chart_card_with_background.png", "description": "Displays a humidity data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/humidity_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/humidity_progress_bar.json b/application/src/main/data/json/system/widget_types/humidity_progress_bar.json index cdb98533ed..187010d4bf 100644 --- a/application/src/main/data/json/system/widget_types/humidity_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/humidity_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "humidity_progress_bar", "name": "Humidity progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD///8jTMfg4OD29vYhISHHx8fj4+M9PT10dHSQkJDx8fHk6fitra3I0vG6urpYWFjy9Pvv7++svOo+Ys5aedWGhoZ1j9y6x+7V1dWpqamenp6Xl5eCgoIvLy+Dmt9LbdEwV8vX3vSRpeOesefLy8tmZmbCwsJohNmOjo6RpuPY2Nh+fn7l5eVXdtJKSkrm5uZgoBxmAAAABXRSTlPvIL+vAC9A4IoAAAQhSURBVHja7M/BEQBABAPAOIynn/5LvTbCZDtYhD3Udm4Bw+R6DYN3HjAPlSfgSqQUIaMIG0XYKMJGETaKsFGEjSKf3TrWcRAGoihaveJ5xjNCoWUtu3Sb//+3JVgrlA2KqYBIuUg2yNURU/hqvYHcBl+37czQigyQGHBCfYhSMDe2bSsnfYUk5pltgn1dCYJpwgpB8Payq3MgwSZgsgCxEHKesCyAJQCS8xAZlnO7M/5MdgOQzNHpeIhxAAYaApWFrI8lAFRACh9PWM61UKuzAEJFp+MgNc7pP4ggtyU2yEiDKBukjda4fGV0Og6ij/gMiUBgBYRjg7AAiE+QRFt+ZK8zR6tB4gqZ9xeIU513vO9qEKe+QDAy8QedzoAkJiBtQqB0oD5DbizdyToFEqgp6TbEqINxhdQb4IUjOp0CgZGlbkOQSc1/kEkXQjx0slZIPxd/cwasiS8Qwc6ufPuVwIpenwAZWQS9PgESBke3T4Ds6Av5Qn7Zn2MUAGEgAIJVUocDwWBrxMr/P09DsI3tCjs/mL8wQmOExgiNERojNEZojNAYoTFCY4TGCI0RGiM0RmiM0BihMUJjhOYjckSU9FoiYklQ08jZ8qOOSqm526CVWeTKQyv9seZhT0iTSLnZL3sVh2EgCFczpMtiEJKwO8s/hau8/8Od8JokBG6PwIE3RB8ujCt/jGYlkewQRjIDyOQYMFedCI8YIgPZAwgTJ2BWHf3oEUMkkhGaxS6wHDFleMQQ6cgRlcQEBJFw/+gRQ6QaTMNe+QV3erLDjrPpZYlIIqdJS/HozXYYlTzDEZZI0Pk7xWe1SXTdZXQbxE9fLJFSw4hrIteniAaoSI85ox/gBXtqLQBCTSFoQup0vA/jGB1NYkMkk4LKeozhUNRMkWWVLHCDLRI0Gc1hU48HfewWN2vLENmOSdtrMcbXHUSKpFi8HFjsjiQ9a6WwbyelUwQ7SeKCwUtNDBH0PBgA4QMNYV0QR0Qv+7wlgphYyR1eRQ5C2pKXvv95Q5wDDMTNQeVb7uyfQxPxRhPxRhPxRhPxRhPxRhPxxheISOYZlPli8r5I4TncLjZvi/AsLpXrr8/7IpnnUOrv/msiUngGN+2IylxfXipfPLU+jCbijSby094dqzgMwwAYdtr+1MtxBIMGQVKtwYSkcO//bFdK5kK6WE31g3d9eNAobwXEWy8gdbZC43IdATEz2QbaDxEVbKFpWXsFxspkLJpllf2Q4Qal+ZeIAirkldrDOO2HTKMbyM/zlRIQLxAVWKlvQmTN3AaatkFsYTAWA/3bD6HobLRtg9zV9A79PBfegJAzXpJtoO/e7J9VQLwVEG8FxFsB8VZAvBUQbwXEWwHxVkC8FRBvHQiSOETXdDrA6Wn4PacuHeD4tDwYl+58/fTSqbv8A8IwqxFwwnsYAAAAAElFTkSuQmCC", + "image": "/api/images/system/humidity_progress_bar.png", "description": "Displays humidity reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json index 4eaf46e7ee..80d1ab649b 100644 --- a/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "humidity_progress_bar_with_background", "name": "Humidity progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/humidity_progress_bar_with_background.png", "description": "Displays humidity reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/humidity_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/illuminance_card.json b/application/src/main/data/json/system/widget_types/illuminance_card.json index a728e235bc..5a7e81bd18 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_card.json +++ b/application/src/main/data/json/system/widget_types/illuminance_card.json @@ -2,7 +2,7 @@ "fqn": "illuminance_card", "name": "Illuminance card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/illuminance_card.png", "description": "Displays the latest illuminance telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json index 2048c150f9..5d3cf889e9 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "illuminance_card_with_background", "name": "Illuminance card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/illuminance_card_with_background.png", "description": "Displays the latest illuminance telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/illuminance_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/illuminance_chart_card.json index 8970889f94..b0e3a00392 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_chart_card.json +++ b/application/src/main/data/json/system/widget_types/illuminance_chart_card.json @@ -2,7 +2,7 @@ "fqn": "illuminance_chart_card", "name": "Illuminance chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/illuminance_chart_card.png", "description": "Displays a illuminance data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json index fb2c9a741a..8b1f441fe3 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "illuminance_chart_card_with_background", "name": "Illuminance chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/illuminance_chart_card_with_background.png", "description": "Displays a illuminance data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/illuminance_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json b/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json index 6d7de6d4f0..0a0e6c2ccf 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "illuminance_progress_bar", "name": "Illuminance progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////YGDjg4OAhISH29vbj4+NYWFiQkJDx8fE9PT2srKzIyMjdNVF0dHS6urriUmkvLy/64ubv7+/wqLT1xc2enp798fOGhobsjJyXl5faJkX309qpqanpfY+CgoLnboLumqjfQ13aJkTV1dVKSkrCwsLzt8Hc3Nx+fn6xsbHx2d3wqbTkYHZmZmbgRF3eeSPoAAAABnRSTlPvIL8Ar7DvmsykAAAEHklEQVR42uzYXWsaQRTGcW3Ckxxm58zIbKchUySltlRv8/2/W8/oipYQt5ALn8j5w67zohc/dBfZxd3yy+Lxs3e/vFssF0/49Kkx7hU30JP9rHATLW4F8ugQshzClkPYcghbDmHLIWw5hC2HsOUQthzC1gXImBVBBmCQgPcqDRxdgAyymoVsZQeOPgjBiuXx3v9CxmiYVdz2YyybgP0JGjMQm8aSYYVWYke3pu2woq2/zwqxtIBT14IUmyBKtiPVKrX0UzjsS01JZAOMte5ERiDVVEUKEJLYVutbYsMzCQHkVW2WFBtpE8SWQ63ATgJWfSX1rSpA2Q+qajJE7thjBJAI5Ol0hABIAktDkDRNOkuMh1x0lAKgJpzHCwmDWBOkf6xv74tyCKeYIUlWinOIHu/OTV5zD6euBhmBzQykG/QcglTV/EPYXzlQnHUlSJOUY52BVIl59w+kyS5HSX1ScksEFzuKSJ37RrZJpCTREwSGl8FetYgNrnD7fZsGzBf03SW1wdv8369D2HMIWw5hyyFsOYQth7DlELYcwpZD2HIIWw5hyyFsOYQth7DlELYcwpZD2HIIWw5hawby4/n5G459txlYuwj5/fJgfZ0o6z57WYOzS5D1w6E/e8mvafYTlF2A/GW/DlYchKEoDO/OARddXAhBCUEpSVy4mJa+/7NNHK0MjEQKQ3tL89PS2lW+xkS1JDu4M2kAtOTNwgqp8/QqQCYyAHA9RwBX0gLotE5JAdKSLXKGBNAzYa6nQGMFyP3PFwrgSIO5REJjBQiE4wR40gP2DjErJA5QVQlihex7MmAHIi1UVYI4z7nx8u6QGxnaKGTch0wDMGjxlHctD8AJR7cLifl30bIZFyCGtMhFsv27a2UIzNmLg47KELfOTASWy+L8mTaI7fVc5guQK5dhBnICwnLUkWGDQEYtE3KwRmS51xL3I5ABnZB2g3gxWpZICYLAtQm5M5c87hDLi1VzbpUgaIU5s47VC8k+YoNIANSs9sMnxMH9PrLQ2qc8s79PFaKtCtFWhWirQrRVIdqqEG19AMQaPr301Rz1OCTxBZnmsIchfElN7lR6PQ4xfEEpj/W/Z8QmPj2zrJHT/N7/0nzwrvVmVYi2KuS7vbtncRiGATDstHcvxSUH4TwIihBkCybJ//9390HmQtrBaqoXvOvBg0Z5KyDeugOpvRUal+sIiJnJNtB+iKhgM03LuiowVgZj1iyL7IdMNyjNv0QUUCEv1BXGYT9kGN1Avv9fKQHxAlGBhfogRJbMbaJpG8RmJmM20Ot+CEV7o20b5Kr2J1j7vvAAhJzxkmwDvfdmf60C4q2AeCsg3gqItwLirYB4KyDeCoi3AuKtgHjrQJDEIbqk0wFOT8PXZ+qSl+s0TyS/jHP3cXn10qk7/wALYyfOKq+pZAAAAABJRU5ErkJggg==", + "image": "/api/images/system/illuminance_progress_bar.png", "description": "Displays illuminance reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json index 80005ba78e..bbe48b5905 100644 --- a/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "illuminance_progress_bar_with_background", "name": "Illuminance progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/illuminance_progress_bar_with_background.png", "description": "Displays illuminance reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/illuminance_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/image_map.json b/application/src/main/data/json/system/widget_types/image_map.json index 6103585dac..dd19998795 100644 --- a/application/src/main/data/json/system/widget_types/image_map.json +++ b/application/src/main/data/json/system/widget_types/image_map.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.image_map", "name": "Image Map", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.image_map.png", "description": "Displays the indoor or relative location of the entities on the image map. Useful to display floor maps, smart parking, etc. Entity coordinates are expected to be in the range from 0 to 1. Highly customizable via custom markers, marker tooltips, and widget actions. ", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 0.2;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || 0.3;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 0.6;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || 0.7;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"image-map\",\"mapImageUrl\":\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTEzNC41MTgzIgogICBoZWlnaHQ9Ijc2Mi43ODI0MSIKICAgaWQ9InN2ZzIiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC41IHIxMDA0MCIKICAgc29kaXBvZGk6ZG9jbmFtZT0id2ljaGl0YW1hcC1ub2xpYi5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIwLjM1IgogICAgIGlua3NjYXBlOmN4PSI4OS45MDc4NTciCiAgICAgaW5rc2NhcGU6Y3k9IjQ1My43ODI0MSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzIxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpvYmplY3QtcGF0aHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1nbG9iYWw9ImZhbHNlIgogICAgIHNob3dndWlkZXM9InRydWUiCiAgICAgaW5rc2NhcGU6Z3VpZGUtYmJveD0idHJ1ZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjcuMDcxNDI4LC0zMDcuOTAyOTkpIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDM3ODciCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzY0ZTU5O3N0cm9rZS13aWR0aDoyLjk5OTk5OTc2O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJtIDkwNi4wMzMxNSw3MDYuMTMzNjcgMy40MjkyLDE3Ljc5NTUyIE0gMjguNTcxNDI4LDc2NS4wNTA2NyBjIDE1MC40MzUyMDIsNi44MzM0MiAxNDYuMzkyMzIyLC0yNi4zMzQxNSAxNjYuNDM0NTQyLC0yOS4zMjAwOSAzNi4xNDM3NSwtNS4zODQ3NiAxMTQuMjg2NzYsLTYuNTI1NCAxNDguMzI1MDgsLTguNjIzNTQgNDMuMzc4MDgsLTIuNjczODUgMTQxLjc2MjIxLC0xMS4yMzA5OSAxODguODU1NzgsLTE5LjgzNDE4IDM5LjgxMTM4LC03LjI3Mjg0IDIyMS4zNjk5MSwtMC44NjIzNSAzMTkuMDcxNDEsLTAuODYyMzUgNzAuODI3MzUsMCAxNDYuOTE4NjcsLTEuNzI0NyAyMTguMTc1ODYsLTEuNzI0NyAtMzEuNjE5NywwIDExNy44NTUyLC0yLjU4NzA3IDg2LjIzNTUsLTIuNTg3MDcgbSAtMjUuMDkwNywtNjguMTI2MDYgYyAtNTIuNzk5NiwzNC43ODQ4NCAtNjUuODk1MSw1MS43NDg2NSAtOTUuNjM5LDgxLjQ5MjU4IC0yNC45MzEzLDI0LjkzMTI3IC0xNDAuMzk2NTMsLTE5LjEzOTIgLTE3OC45Mzg3MSwzNi42NTAwNyAtMTIuMjgxNCwxNy43NzcxNSAtNDcuMDAyNTcsNDYuNTQ2NTMgLTY1LjEwNzgzLDU5LjA3MTMzIC0yMC4xMDUsMTMuOTA4MTggLTU2LjAzNjcyLDQ0Ljk1NjY0IC02Ny43Njg4NSw3My4wNzgyNyAtNC44MDE0NywxMS41MDkwMiAtMTMuMzgwNDYsMzUuOTkyOTggLTIzLjQ0OTQ5LDQ2LjA2MjAxIC0xMC40OTY5OSwxMC40OTY5OSAtMzguMzc3MzMsNi4zODU2OSAtNDQuMDIzNDUsMTcuNjQ3NjQgLTE5LjAwNTAyLDM3LjkwODEyIC0yNS40NjUzLDEwMC45MjM1MiAtNjcuNjE3ODksMTAyLjA1MTAyIG0gMTkuMjgxNTEsLTYyNC4wMTQ2NCBjIDM0LjY1OTM0LC0xLjg3MzgyIDg0LjAyNzMzLDcuMzkxMzEgMTA5LjkwMDcxLC00LjI4NTQ1IDEzLjI4MTcyLC01Ljk5NDA4IDQxLjQwNzIxLC0yLjQ2MTM1IDY2LjgyODY2LC0yLjMyMDQ2IDM1LjMyMjM4LDAuMTk1NzggNjQuMzgyNDksMC42MzQ3NyAxMDEuOTE2Nyw1LjAyMzIgMjUuMDMwMzYsMi45MjY1IDQ0LjY2MjczLDM0LjI4NzIyIDU4LjUyNjk4LDUwLjY0MzkgMTcuMDk4NzgsMjAuMTcyNjggNjIuNzYzODYsLTEuNzE0NjcgNjYuMzA1NjYsMzIuMTM0MzMgNS4xMDI3LDQ4Ljc2NTg3IC02LjMyODQsNzguNjM3MjUgNi4xNDExLDk3LjM0MTUgMTkuOTY5MiwyOS45NTM3OSA1MC40ODY0LDE3Ljg1NTc5IDQ0LjYxOTMsODMuOTcxMTkgTSA1ODkuMTAyMjcsMzA5LjcyNzE1IGMgNC42NDM0NiwyMy43MjkyMyAxNS4wNjkwNCw3Mi43NzU3NSAxOS4wNjEyOCwxMzAuNjQyODggMC44NzIwNiwxMi42NDA0OCA1LjQ0NzE4LDI0Ljk5MjUzIDQuMjIyMzEsNDUuMjc3NTcgLTIuNTE3MjEsNDEuNjg3NSAtMTUuNzE3MDYsNDMuNjc3MjcgLTE1LjA5MTIyLDYwLjM2NDg2IDEuNDMxOTUsMzguMTgyMjQgMzAuNjEzNjEsOTMuODM3MTkgMzAuNjEzNjEsMTM5LjcwMTU0IDAsMjQuMTgwOCAtMi42Njk2NCwxMTUuMzkwNDUgNy4zMzAwMSwxMzUuMzg5NzYgMC4xNTkxMSwwLjMxODIxIDEwLjA2NDc2LDM1Ljg4MzMyIDEwLjc3OTQ1LDQ5LjE1NDI0IDAuOTQzNzgsMTcuNTI0NjkgLTI0LjQ3OCwzOS40NzAwOCAtMjguMDI2NTUsNDYuNTY3MTYgLTUuNDc3NywxMC45NTUzOSAtMzYuOTczMjQsMTAuODgxOTcgLTQwLjA5OTUsMjQuMTQ1OTUgLTMuODY4ODQsMTYuNDE0NTEgLTMuODY2Myw0My43OTczNSA0LjA0NjQ3LDU5LjQ0MTI5IG0gOTcuMzM3MzQsLTY5MS4wMDk0MSBjIC01LjAxMzMyLDM1LjUxNTk1IC00My42NTkwMSwxMS4zMTY1MiAtNTguNTM4NjEsMjMuNzgxMzEgLTIxLjMzMDE5LDE3Ljg2ODUyIC02Mi40OTk2NCwzMS40MzIxMiAtNzAuMTI0MzcsMzUuMzY3MDggLTM1LjA4NzYzLDE4LjEwNzkzIC0xMTAuNDcyMTUsLTE1LjE0MTk2IC0xMjUuNjE0MSw0LjI2ODQzIC0xNS45NTA2MywyMC40NDcwMyAtMC4wNzM1LDYxLjQ2NjQ4IC05LjE0NjY2LDg0LjE0OTI0IC02LjAzNTcsMTUuMDg5MjYgLTE4Ljg3NjcsMjMuMDE3MzQgLTI3LjQzOTk3LDMyLjkyNzk4IC0xOS43NDgyOSwyMi44NTU1NSAtNjkuOTc0MjgsNjkuODI0MTkgLTg0Ljc1OTA0LDEwMC4wMDM0NiAtNy40OTc0MSwxNS4zMDQwNCAtMy4yODQyNiw0NC40MjA0MSAtMy40NzA1Myw2My4zNDI4NCAtMC4xMjc5MywxMi45OTQxNCAtMC44MTAxNSwyMy4xMDM4NSAyLjQwMzQzLDI4LjI3NjE4IDQuOTYxNTgsNy45ODU4MSAyMy43MjA1LDI4LjExMjA3IDI0LjIzODY1LDUwLjYxMTQ5IDAuMjk0MTEsMTIuNzcxNDYgMC4wMTMzLDc4LjU5MTAxIDMuMDQ4ODgsODcuNjU1NDkgMi4zMTI1Niw2LjkwNTQ2IDQuMjIwMDQsMjYuNTY0OTcgMTAuMjEzNzcsMzYuNTg2NjIgMTEuMzU0MDEsMTguOTg0MTUgNC4zODczNyw0MC4xNTY2MiAyNy44OTczLDUzLjUwNzk1IDE5LjA1MDEyLDEwLjgxODU5IDQ2Ljg3NzgxLDEyLjIxODYyIDgxLjkyNjE4LDE0LjQ2MDU0IDMzLjcwMzQ1LDIuMTU1ODkgNjEuNTEyMTcsLTEuNDMwMzUgNzYuOTIwNzcsNi4xNDExIDExLjU4NTA4LDUuNjkyNjYgOC41ODE1MSwxNy45MzM0NCAxNC4yOTU0MSwyOS4zNjEyMyA1LjY0MDQyLDExLjI4MDg1IDMxLjUwMjYzLDExLjE1NjI3IDQxLjgwNDA5LDQzLjQ1NDg3IDcuNjA1OSwyMy44NDcxIDMuMDg1OTMsNDQuMTU2OSA2LjcwNzU1LDY1Ljg4NjYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2Nzc3NzY2Njc3Nzc3NzY2Nzc3Nzc3NjY3Nzc3Njc3NzY2Nzc3Nzc3Nzc3Nzc3Nzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDMuMjc3ODgxLDUxNy45NDY3OSBjIDAsMCAyMzAuODQ4Mjg5LC0zLjYzODA1IDI1MC4wMDg2MzksLTMuNjU4NjcgNy40ODIyMiwtMC4wMDggOC42MTk1NCw1LjE1MTk0IDE0LjAyMDksMTEuNDU4NjkgMjQuNTk2MDgsMjguNzE4OTMgOTMuOTA5NjYsMTEyLjkzNTg1IDkzLjkwOTY2LDExMi45MzU4NSIKICAgICAgIGlkPSJwYXRoMzc4OSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDM1Ljk2MDU1NSw1NzcuNzA0OTQgYyAwLDAgMTY1LjUyNDU2NSwtMS42ODQ1NCAyNDguNzc5NTY1LC0xLjY4NDU0IDQuOTQ3NDksMCA3LjcyOTkzLC0yLjg4MzMgMTAuNTM3NzEsLTUuNzI5NzcgOS42NjEwNywtOS43OTQxNiAyNS42MzE5OSwtMjguNTg5OTUgMjUuNjMxOTksLTI4LjU4OTk1IgogICAgICAgaWQ9InBhdGgzNzkxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiMzMzMzNjY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gMzguMzk5NjYzLDY0MS43MzE1NSA0MzEuNzA1OTMsNjM3LjQ2MzExIgogICAgICAgaWQ9InBhdGgzNzk1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiMzMzMzNjY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gMzkuMDA5NDQyLDcwNC41Mzg1OSA1MjMuMTcyNTMsNjk3LjgzMTA0IgogICAgICAgaWQ9InBhdGgzNzk3IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzAzLjk1NzYyLDY4Mi41ODY2MSAxNDYuNzk1NDIsMS44MjkzMyBjIDEwLjUzNDAzLDAuMTMxMjcgMTQuMzQzNzQsLTIuNjM3MzkgMjUuNDg3MTUsLTYuMzcyOCAxMC40MTIxMiwtMy40OTAyNyAzMS40MjQxNSwtMi42OTg5NiA0MS4zODUzOCwtMi43NzM4NSBsIDQwNS41NjA3OSwtMy4wNDg5IgogICAgICAgaWQ9InBhdGgzNzk5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzODA0IgogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDQyNi4yMTc5NCwzMTQuODkwOTggYyAyLjA2NzU0LDkuMDUyNzMgMS44NDE3Nyw1MS43Mjc3NyA2LjUwNzk0LDc0LjgzNDY2IDEuNjc0NzUsOC4yOTMzNiA4LjY3NTA4LDE0LjA2NTk4IDEwLjA1NTQxLDE0Ljg1ODYyIDQuOTAxNDcsMi44MTQ2MyAxMC44MTQ3OSw4LjE0OTgyIDEzLjA0NTc5LDE2LjA4ODMxIDYuNzU3NzksMjQuMDQ1OTEgMC44Nzk3Miw2OC40NTIxMiAwLjg3OTcyLDExMC42ODkzIDAsNi4wOTc4MiAxLjY2MDEsMzAuMTQ2NiAtMi4xNTU4OCwzMy45NjI1OSAtMi41NDA4NSwyLjU0MDgzIC0wLjI4MTYzLDEyLjk5MDY5IC0zLjQzNjc1LDE2LjE0Mzc3IGwgLTkuODQ5NDQsOS44NDMxMSBjIC0xMC4zNjcxNSwxMC4zNjA0NyAtMTEuNTkwMTcsNi41MjYxNCAtMTcuNzM4NDgsMTguODIyNzYgLTMuNTY3NzIsNy4xMzU0MyA1LjQwMjM1LDIwLjY3MjEgNy4zNTQzMiwyNC41NzYwMiAxLjkzMjE0LDMuODY0MyAtMS44NDIxNiw0Ljc3NzczIC0xLjc5MjM1LDcuNDQ2MjYgMC4yNTI4NiwxMy41NDQ4MyAyLjI5NzUsMzczLjkyNzEyIDIuMjk3NSwzNzMuOTI3MTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDM2NS4yNDAyMiw1MTkuNzc2MTIgNC4xMTU5OSw1MDIuMTUxNTgiCiAgICAgICBpZD0icGF0aDM4MDYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAxMTYuNTMxNjUsNTA0LjE4Njk5IDMuODgwNTksMzEwLjk2NDM2IgogICAgICAgaWQ9InBhdGgzODMxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDM4ODkiCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzE3LjY3NzYsNTc2LjQ4NTM5IDEzMC4xODc0MiwxLjUyNDQ0IGMgNC41MTA3OSwzLjI0MTY5IDIwLjM0NDcxLDcuOTY4NTMgMjcuNzQ0ODYsNC4yNjg0NCAzLjE1NTQ2LC0xLjU3NzcyIDkuNDE5LC01LjM4ODE3IDE0LjAyNDg5LC0zLjk2MzU1IDQuMjY2OTgsMS4zMTk4MSA2LjAxNjg5LDMuMTE2MzIgMTAuMzY2MjEsMy4wNDg4OSAxMC4zMDQwMywtMC4xNTk3NSAyMC4yMTE3LDAuMzg3NDEgMzAuNDg4ODYsMC4zMDQ4OSAxNzcuODkwOCwtMS40MjgyNyAzNTYuNTkwMzUsLTIuMTMyNDcgNTM0Ljc3NDU2LC0zLjA0ODg4IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2Nzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDc1LjMwNTAxLDU4Mi44ODgwNSBjIC0zLjQ0NDE4LDExLjM1MDY2IC0yLjEwMzQzLDEyLjQzMzczIDMuNjU4NjUsMjEuMDM3MzEgMy43OTQ0NSw1LjY2NTY0IDUwLjg2MjYxLDEzLjAzODQ1IDQxLjQ2NDg1LDI3LjEzNTA5IC0xMC41MzY5NywxNS44MDU0NyAtMjIuODk3NDUsLTUuNDc3NzIgLTMzLjg0MjYzLC0xLjgyOTMzIC01LjQ1MjM2LDEuODE3NDUgLTcuMzQ5MDEsNS40NTYzMSAtMy42NTg2Niw5LjE0NjY1IDIuODA2ODMsMi44MDY4NCA0LjA0OCwxLjgwMzk2IDYuNTIwMzQsNS4xMDA0MSIKICAgICAgIGlkPSJwYXRoMzkxMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDMyLjAxMDgyLDYzNi44NTMzMyBjIDguMzE4OTksMTMuMTEwMTYgMTguODQ2MjEsMTQuNjM0NjUgMzUuNjcxOTYsMTQuNjM0NjUgMi45Mzg2NSwwIDcuODY5OTgsLTAuOTMzNzEgMTAuNjcxMTEsMCAxMS4zNTkxNywzLjc4NjM5IDI3LjE5Mzk4LDEwLjI3NTc3IDM2LjIwMTkzLDIxLjEyOTQ4IDguMjgwMDIsOS45NzY2MSAxMC4yNTI3OCwyMy44ODMwOCA3LjcwMjAyLDM3LjEwNDI0IC02LjE2OTg5LDMxLjk3OTk4IC0xNi43MTQzMSw1Ni45ODg1MyAtMTkuMDQzNTUsODYuNTY5MDUgLTEuMzQ3OTgsMTcuMTE4OCA0LjUwOTU3LDIyLjUzNTIyIDExLjA3MTQzLDMzLjkyODU3IDEwLjY3MDIzLDE4LjUyNjcyIDguNzI0NTMsMTQuMTk5NTUgOC41NzE0MywzNC4yODU3MiAtMC4xMzk2MywxOC4zMTk0NCAwLDYwLjI2Mzg1IDAsODAuNzE0MjkiCiAgICAgICBpZD0icGF0aDM5MTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDUyOC41MDgwNiw2NTguOTU3NzYgYyAtMTAuNjgxMjMsMC45MDQ1NCAtNy4xMDgwNCwtNS42MDI1NSAtMTAuODIzNTQsLTguMDc5NTYgLTQuNzg0NTQsLTMuMTg5NjkgLTEyLjIyNzA0LC0xLjI1MTA0IC0xNi43Njg4OCwtNS43OTI4OCAtMC42NjYxMiwtMC42NjYxMiAtOC44MDk2OSwtNC4xMDg3NyAtMTAuMTc0NDcsLTIuNzQzOTkgLTguMzY0NTksOC4zNjQ1OSAtMy4wNDg4OCwyMC41NTE4OCAtMy4wNDg4OCwzMy41Mzc3NCBsIDMuMDIyLDMzOS42OTc0MyIKICAgICAgIGlkPSJwYXRoMzkxNCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA1MTcuOTg5NDEsNjUxLjAzMDY1IGMgLTAuMjIxNzEsLTIuNzAxODQgMS45MDM0NiwtNS41NjIxMyAzLjM1Mzc3LC03LjAxMjQ1IDEuNzk5NDMsLTEuNzk5NDIgNi45MjI5NCwxLjAwNDE5IDguODQxNzgsLTAuOTE0NjYgMC4yODc2NSwtMC4yODc2NiAwLjg0MzI5LC0xMS4xNjQxIDAuMjI4NjYsLTEzLjU2NzUzIC0yLjA2NDgzLC04LjA3NDE2IC0yLjA1ODAxLC0yOC42NTY1OCAtMi4wNTgwMSwtMzguNzIwODYgbCAwLC03My4xNzMyNiIKICAgICAgIGlkPSJwYXRoMzkxNiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNTI4LjY2MDUsNjc1LjQyMTczIC0wLjQ1NzMzLC0zMS41NTU5NiIKICAgICAgIGlkPSJwYXRoMzk3NCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDc2Ni4zMTYyNSw1NzkuNjQ0MzEgMC40MzExOCwxMy43OTc2OCBjIDMuMTM2NDMsNC42NjkxNSAzLjAxODI0LDkuNjAwNjggMy4wMTgyNCwxNi4zODQ3NSBsIDAsMTU3LjM3OTgxIgogICAgICAgaWQ9InBhdGgzOTgyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMTEyMi45MDAxLDc2NS45MTMwMyBjIC0yMDIuMzA2NjksNC42OTA1IC00MDMuNzQ0MDUsLTEuMTEzODEgLTYwNS45NTQ1NCwzLjM1MzkgLTEwLjg2MzYyLDAuMjQwMDIgLTMuMzYxNDcsLTguNTg2MyAtMjguNTM2OCwtOC41ODYzIgogICAgICAgaWQ9InBhdGgzOTg0IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA4NjAuMDA4MDUsNzM3LjA2NjUxIGMgMCwwIC05Ny40NDc1LDAuODU4MDYgLTE0Ny41Njg5MiwwLjg1ODA2IC01LjI2ODYxLDAgLTQuNTE1NDYsLTguMzI5ODYgLTcuMzAwODksLTguMzI5ODYgLTMuOTc0MzUsMCAtOC42MjkyNSwwLjAyMDEgLTEwLjUwOTQ4LDAuMDM1OSAtMi4zMzQ3NywwLjAxOTcgLTEuODEwOTQsOC4zNjU5NyAtNC4xNDU4LDguMzY2OTIgLTQ2LjE2ODk5LDAuMDE4OCAtMTY3LjQwNzY3LC0xLjMwNzk5IC0xNzUuMDUyNjMsLTEuMzA3OTkgLTQuNDI5NTUsMCAtOC41NzYyNywtNi40Mzk3MiAtMTMuMTMxOTgsLTYuNDM5NzIgLTEuMzYxMTUsMCAtNi4yMzg3MywwIC0xNC4zOTQ2NywwIgogICAgICAgaWQ9InBhdGgzOTg2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJNIDY3NS4wMDcwMyw4MzEuMTc0MDIgNjc0LjM5NzI1LDMwOS40MDI5OSIKICAgICAgIGlkPSJwYXRoMzk4OCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDc5OS40MDE1NywzMTMuMDYxNjUgMS4yMTk1NSw0OTUuODY2NTMiCiAgICAgICBpZD0icGF0aDM5OTAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA3MzYuNTk0NTIsMzEyLjQ1MTg4IC0xLjIxOTU1LDcxNi40ODgyMiIKICAgICAgIGlkPSJwYXRoMzk5MiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDUzMC4wMzA5NCw2NDMuNDU4NTkgMzkyLjM3MTU5LC0zLjAxODI1IgogICAgICAgaWQ9InBhdGg0MDQ4IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gODU5LjQ1MDYsMzE0LjkwMTI4IDEuMjkzNTQsNTA3Ljk4MDU4IgogICAgICAgaWQ9InBhdGg0MDUwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5OTRweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gOTIxLjU0MDE3LDMxMC41ODk0OSAxLjcyNDcxLDUzMS43NTIyNyIKICAgICAgIGlkPSJwYXRoNDA1MiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDczNi4yODk2Myw0NTMuMzEwNCAxODUuNjc3MTUsLTAuMzA0ODkiCiAgICAgICBpZD0icGF0aDQxODciCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAxMDYwLjgxMDUsNTE0Ljk2NzY3IGMgMCwwIC0zNjMuMjgxMjYsLTUuNjI2MTggLTU0NC42NTA0MiwyLjUyMTc4IC00LjE3Nzc2LDAuMTg3NjkgLTEyLjUwMDQ0LDEuMDY3MTEgLTEyLjUwMDQ0LDEuMDY3MTEgLTEuNTcwOTUsMC4xMzQxIC0yLjAwMDkzLC0yLjMyNDk1IC0yLjU5MTU1LC0zLjUwNjIzIC0wLjA5NjcsLTAuMTkzNDMgLTcuMDYwODEsLTEuOTMzNCAtNy42MjIyMSwtMS4zNzE5OSAtMi44OTMxNCwyLjg5MzE0IC03LjYzMTY3LDQuMjQ4NjkgLTEyLjE5NTU1LDQuMTE2IEwgMzY5LjIwMTcsNTE0LjUzNjUiCiAgICAgICBpZD0icGF0aDQyNjEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAzOTkuODE1MzEsNDc5LjYxMTEyIDExLjY0MTgsNS42MDUzIGMgMi45ODQxMiwxLjQzNjc5IDYuNTI4NzgsLTAuNDc3MTIgOS45MTcwOCwtMC40MzExOCBsIDEyNy4xOTczOSwxLjcyNDcxIgogICAgICAgaWQ9InBhdGg0MjYzIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gNTE5LjI1MTUxLDUxNy4xMjM1NyA1MTguODIwMzIsMzA4LjQzMzYyIgogICAgICAgaWQ9InBhdGg0MjY1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDMyLjkyNTQ5LDM4OS43MTQ5OCBjIDExLjA0NDk2LDAgMzUuNTMzMDcsMC42MTkyNyA0Mi41Nzk3OCwtMS4wMDM5NyA4LjQwNTIyLC0xLjkzNjE4IDcuMDY2LC02Ljk1Mzc4IDE0LjE5NzEyLC02Ljk1Mzc4IDcuODA5NSwwIDYuNTQyOTEsOC4wNjIzNyAyMC4xNDE3LDguMDYyMzcgMTMuOTkwNjgsMCA0NC45NzY4OSwwLjM3ODg2IDYzLjkzOTkyLDAuMzc4ODYgMTIuMDgzOTUsMCA4Mi4wMDI2NiwwLjMwNDg5IDkzLjYwMDgxLDAuMzA0ODkgOC43NjA0NywwIDEzLjE1OTcsLTIuMjg4MjcgMjEuMzQyMTksLTcuMDEyNDMgNy4xOTUxNSwtNC4xNTQxMyAyLjA1NDU5LC05LjQ5MTM3IDIwLjQyNzU0LC04Ljg0MTc3IDIzLjE0NTQsMC44MTgzMyAxMi42NDMzNCwxNC4wMjQ4NyAzMi4zMTgxOSwxNC4wMjQ4NyAyNS4zNTk1NCwwIDEzMC45OTkwMiwwIDE1MC45MTk4NSwwIDE0LjMzMjQ0LDAgLTQuMTE5MTEsLTEzLjExMDIxIDI5LjI2OTMsLTEzLjQxNTEiCiAgICAgICBpZD0icGF0aDQyNjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc3NzYyIgLz4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjU4OC42Nzk1NyIKICAgICAgIHk9IjczNS44MDQ2MyIKICAgICAgIGlkPSJ0ZXh0NDMxMCIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMiIKICAgICAgICAgeD0iNTg4LjY3OTU3IgogICAgICAgICB5PSI3MzUuODA0NjMiPkxpbmNvbG48L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjY4Ni4zOTg1IgogICAgICAgeT0iNzY1LjYyODQyIgogICAgICAgaWQ9InRleHQ0MzEwLTciCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNiIKICAgICAgICAgeD0iNjg2LjM5ODUiCiAgICAgICAgIHk9Ijc2NS42Mjg0MiI+SGFycnk8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjcwOS44NzE4MyIKICAgICAgIHk9Ii04MDIuMzc3MzgiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMi02LTgiCiAgICAgICAgIHg9IjcwOS44NzE4MyIKICAgICAgICAgeT0iLTgwMi4zNzczOCI+V29vZGxhd248L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjU2Mi4xMTkyNiIKICAgICAgIHk9Ii03NzEuOTY4MTQiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xLTkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtOC0yIgogICAgICAgICB4PSI1NjIuMTE5MjYiCiAgICAgICAgIHk9Ii03NzEuOTY4MTQiPkVkZ2Vtb29yPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTguMzA0ODciCiAgICAgICB5PSItNzM4LjM2NjQ2IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTciCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtOC0yLTkiCiAgICAgICAgIHg9IjU5OC4zMDQ4NyIKICAgICAgICAgeT0iLTczOC4zNjY0NiI+T2xpdmVyPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTIuMTIyODYiCiAgICAgICB5PSItNjc3LjIwMzk4IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTctNSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNi04LTItOS00IgogICAgICAgICB4PSI1OTIuMTIyODYiCiAgICAgICAgIHk9Ii02NzcuMjAzOTgiPkhpbGxzaWRlPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTcuMzI3MDkiCiAgICAgICB5PSItODYyLjYxNDA3IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTctNS0zIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMi02LTgtMi05LTQtMSIKICAgICAgICAgeD0iNTk3LjMyNzA5IgogICAgICAgICB5PSItODYyLjYxNDA3Ij5Sb2NrPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1ODcuMzcwMTgiCiAgICAgICB5PSItOTI2LjEzNjYiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xLTktNy01LTMtMiIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNi04LTItOS00LTEtMyIKICAgICAgICAgeD0iNTg3LjM3MDE4IgogICAgICAgICB5PSItOTI2LjEzNjYiPldlYmI8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9Ijg3MS4xNjEwMSIKICAgICAgIHk9IjYzNy41NzUyIgogICAgICAgaWQ9InRleHQ0NDY1IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NDY3IgogICAgICAgICB4PSI4NzEuMTYxMDEiCiAgICAgICAgIHk9IjYzNy41NzUyIj5DZW50cmFsPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI4NzMuODMyMjgiCiAgICAgICB5PSI1NzcuMDMyNDciCiAgICAgICBpZD0idGV4dDQ0NjUtMyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDQ2Ny00IgogICAgICAgICB4PSI4NzMuODMyMjgiCiAgICAgICAgIHk9IjU3Ny4wMzI0NyI+MTN0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgaWQ9InRleHQ0NDkwIgogICAgICAgeT0iNTEwLjI2MTgxIgogICAgICAgeD0iODc1Ljk2NjQ5IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICB5PSI1MTAuMjYxODEiCiAgICAgICAgIHg9Ijg3NS45NjY0OSIKICAgICAgICAgaWQ9InRzcGFuNDQ5MiIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+MjFzdDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iODgxLjMxNjU5IgogICAgICAgeT0iNDUwLjE5ODc2IgogICAgICAgaWQ9InRleHQ0NDk0IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NDk2IgogICAgICAgICB4PSI4ODEuMzE2NTkiCiAgICAgICAgIHk9IjQ1MC4xOTg3NiI+Mjl0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNjE1Ljc5MjQ4IgogICAgICAgeT0iMzg3Ljc0NzE2IgogICAgICAgaWQ9InRleHQ0NDY1LTMtMSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDQ2Ny00LTEiCiAgICAgICAgIHg9IjYxNS43OTI0OCIKICAgICAgICAgeT0iMzg3Ljc0NzE2Ij4zN3RoPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ1MTkiCiAgICAgICB5PSI0ODEuNjUyODYiCiAgICAgICB4PSI0ODQuNjkwMzciCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9IjQ4MS42NTI4NiIKICAgICAgICAgeD0iNDg0LjY5MDM3IgogICAgICAgICBpZD0idHNwYW40NTIxIgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj4yNXRoPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1NjMuMDQ2NzUiCiAgICAgICB5PSI1MTMuMzYxMzMiCiAgICAgICBpZD0idGV4dDQ1MjMiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1MjUiCiAgICAgICAgIHg9IjU2My4wNDY3NSIKICAgICAgICAgeT0iNTEzLjM2MTMzIj4yMXN0PC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ1MjciCiAgICAgICB5PSI1NzcuODk0ODQiCiAgICAgICB4PSI1NjUuOTcxNSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNTc3Ljg5NDg0IgogICAgICAgICB4PSI1NjUuOTcxNSIKICAgICAgICAgaWQ9InRzcGFuNDUyOSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+MTN0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDUzMSIKICAgICAgIHk9Ii00NjAuNzMzMTIiCiAgICAgICB4PSI0MzMuNTgwNzUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii00NjAuNzMzMTIiCiAgICAgICAgIHg9IjQzMy41ODA3NSIKICAgICAgICAgaWQ9InRzcGFuNDUzMyIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+QW1pZG9uPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI0MDUuNTMwOTgiCiAgICAgICB5PSItNTIzLjU0MDE2IgogICAgICAgaWQ9InRleHQ0NTM1IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDUzNyIKICAgICAgICAgeD0iNDA1LjUzMDk4IgogICAgICAgICB5PSItNTIzLjU0MDE2Ij5BcmthbnNhczwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDUzOSIKICAgICAgIHk9Ii0zNzIuNTg1OTQiCiAgICAgICB4PSI3NDUuNDg0NjIiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii0zNzIuNTg1OTQiCiAgICAgICAgIHg9Ijc0NS40ODQ2MiIKICAgICAgICAgaWQ9InRzcGFuNDU0MSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+V2VzdDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNTk2LjcyODMzIgogICAgICAgeT0iLTUzMS4yNTkyOCIKICAgICAgIGlkPSJ0ZXh0NDU0MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NDUiCiAgICAgICAgIHg9IjU5Ni43MjgzMyIKICAgICAgICAgeT0iLTUzMS4yNTkyOCI+V2FjbzwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU1NSIKICAgICAgIHk9Ii0xMjIuNTAyOTUiCiAgICAgICB4PSI1OTUuNDM0ODEiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii0xMjIuNTAyOTUiCiAgICAgICAgIHg9IjU5NS40MzQ4MSIKICAgICAgICAgaWQ9InRzcGFuNDU1NyIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+TWF6aWU8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjY5NS43NzI5NSIKICAgICAgIHk9IjE2Mi4wNjg3NyIKICAgICAgIGlkPSJ0ZXh0NDU1OSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxMDY3OCwwLjcwNzEwNjc4LC0wLjcwNzEwNjc4LDAuNzA3MTA2NzgsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NjEiCiAgICAgICAgIHg9IjY5NS43NzI5NSIKICAgICAgICAgeT0iMTYyLjA2ODc3Ij5ab288L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjI0MC41ODk5NyIKICAgICAgIHk9IjU3NC40NDU0MyIKICAgICAgIGlkPSJ0ZXh0NDU2MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDU2NSIKICAgICAgICAgeD0iMjQwLjU4OTk3IgogICAgICAgICB5PSI1NzQuNDQ1NDMiPjEzdGg8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU2NyIKICAgICAgIHk9IjUxMS42MzY2MyIKICAgICAgIHg9IjIwNi4wMzE3NSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNTExLjYzNjYzIgogICAgICAgICB4PSIyMDYuMDMxNzUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NjkiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPjIxc3Q8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjYyMC40NDMxMiIKICAgICAgIHk9Ii01MDYuNjgyMTkiCiAgICAgICBpZD0idGV4dDQ1NzEiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NTczIgogICAgICAgICB4PSI2MjAuNDQzMTIiCiAgICAgICAgIHk9Ii01MDYuNjgyMTkiPk5pbXM8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU4MyIKICAgICAgIHk9IjY5OC44NDAwOSIKICAgICAgIHg9IjM3MC4yMTY4NiIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNjk4Ljg0MDA5IgogICAgICAgICB4PSIzNzAuMjE2ODYiCiAgICAgICAgIGlkPSJ0c3BhbjQ1ODUiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1hcGxlPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSIzODQuMDg0MiIKICAgICAgIHk9IjY4MC44NTEzOCIKICAgICAgIGlkPSJ0ZXh0NDU5OSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDYwMSIKICAgICAgICAgeD0iMzg0LjA4NDIiCiAgICAgICAgIHk9IjY4MC44NTEzOCI+RG91Z2xhczwvdHNwYW4+PC90ZXh0PgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAzNjcuOTA4MTcsMTAwOS45NTk2IDI2My4wMTgzMywwIgogICAgICAgaWQ9InBhdGg0NjA1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDx0ZXh0CiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ2MDciCiAgICAgICB5PSItNDMzLjEzNzc2IgogICAgICAgeD0iNzM2LjI2NzQ2IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICB5PSItNDMzLjEzNzc2IgogICAgICAgICB4PSI3MzYuMjY3NDYiCiAgICAgICAgIGlkPSJ0c3BhbjQ2MDkiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1lcmlkaWFuPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ5NzkiCiAgICAgICB5PSI2NDAuMjA1MjYiCiAgICAgICB4PSI1NzIuODMyMTUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9IjY0MC4yMDUyNiIKICAgICAgICAgeD0iNTcyLjgzMjE1IgogICAgICAgICBpZD0idHNwYW40OTgxIgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj5DZW50cmFsPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1NzUuMDg5NjYiCiAgICAgICB5PSI2NzAuOTAzNSIKICAgICAgIGlkPSJ0ZXh0NDk4MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDk4NSIKICAgICAgICAgeD0iNTc1LjA4OTY2IgogICAgICAgICB5PSI2NzAuOTAzNSI+RG91Z2xhczwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNDk5LjQ4OTYyIgogICAgICAgeT0iMTAwOC42MDY5IgogICAgICAgaWQ9InRleHQ1MDQ3IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDQ5IgogICAgICAgICB4PSI0OTkuNDg5NjIiCiAgICAgICAgIHk9IjEwMDguNjA2OSI+NDd0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iMjE2LjY0NTQzIgogICAgICAgeT0iNzI1Ljk4Mjk3IgogICAgICAgaWQ9InRleHQ1MDUxIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDUzIgogICAgICAgICB4PSIyMTYuNjQ1NDMiCiAgICAgICAgIHk9IjcyNS45ODI5NyI+S2VsbG9nZzwvdHNwYW4+PC90ZXh0PgogICAgPGZsb3dSb290CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgaWQ9ImZsb3dSb290NTA1NSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MThweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyODcuMzYyMTgpIj48Zmxvd1JlZ2lvbgogICAgICAgICBpZD0iZmxvd1JlZ2lvbjUwNTciPjxyZWN0CiAgICAgICAgICAgaWQ9InJlY3Q1MDU5IgogICAgICAgICAgIHdpZHRoPSIzNDMuNTcxNDQiCiAgICAgICAgICAgaGVpZ2h0PSIxMDMuNTcxNDMiCiAgICAgICAgICAgeD0iMTkuMjg1NzE1IgogICAgICAgICAgIHk9IjE3LjE0Mjg1NyIKICAgICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIgLz48L2Zsb3dSZWdpb24+PGZsb3dQYXJhCiAgICAgICAgIGlkPSJmbG93UGFyYTUwNjEiPjwvZmxvd1BhcmE+PC9mbG93Um9vdD4gICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDYwNy03IgogICAgICAgeT0iLTUwOC4xODk3MyIKICAgICAgIHg9Ijc3NC44NzU2MSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iLTUwOC4xODk3MyIKICAgICAgICAgeD0iNzc0Ljg3NTYxIgogICAgICAgICBpZD0idHNwYW40NjA5LTciCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1jQ2xlYW48L3RzcGFuPjwvdGV4dD4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzY0LjE1OTk5LDY1OC40Mjg5MSAyOTkuNTEwMjMsLTEuMDEwMTYgYyA2LjQ5ODcyLC0wLjAyMTkgNi45NzcxOSw5LjI1NDEyIDE2LjU5NjMxLDkuMzkyNDcgMTIuMDU0MjcsMC4xNzMzOSAyOS4xMTA4MywtMC41MzU3MiA1NC4xMTQzNywtMC4zMDExIgogICAgICAgaWQ9InBhdGg1NDQwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMjg3LjM2MjE4KSIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjM3My45OTMwNCIKICAgICAgIHk9Ijk0NC4zNTc1NCIKICAgICAgIGlkPSJ0ZXh0NTA0Ny05IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDQ5LTMiCiAgICAgICAgIHg9IjM3My45OTMwNCIKICAgICAgICAgeT0iOTQ0LjM1NzU0Ij5NYWNBcnRodXI8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ2MDctNy0xIgogICAgICAgeT0iLTQ5MC4yNDU5NyIKICAgICAgIHg9Ijc4MC44NDYwNyIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iLTQ5MC4yNDU5NyIKICAgICAgICAgeD0iNzgwLjg0NjA3IgogICAgICAgICBpZD0idHNwYW40NjA5LTctOSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+U2VuZWNhPC90c3Bhbj48L3RleHQ+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDM2Ny42OTU1Myw1MzcuMjEwNiAxNDEuMjgzMDMsLTEuMDEwMTUgYyA2LjQ4OTk5LC0wLjA0NjQgMTIuNzgxMTQsNy4yMzU0NSAxOS4xOTI5LDcuMzIzNiA1NS45MjM2MiwwLjc2ODkgMTU4LjY4OTk3LC0wLjE3MzMzIDIzNi41MTQwMiwtMS4wMTAxNSA3LjgzOTU2LC0wLjA4NDMgMjIuNjMxNDcsLTE5Ljg1MzU1IDMwLjMwNDU3LC0yMC40NTU1OSAyMi4yNjU4OSwtMS4zNTE4MSA0NS4xNzk0NSwtMC41MDUwNyA2Ny42ODAyMiwtMC41MDUwNyAxNi4xNDczMSwtMC42MzI0MSAzLjYxMDE2LDIwLjcwODEzIDI2Ljc2OTA0LDIwLjcwODEzIGwgMjQzLjQ0Njc5LC0xLjAxMDE2IgogICAgICAgaWQ9InBhdGg1NDk2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMjg3LjM2MjE4KSIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzY2NjY2MiIC8+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI2ODUuMjA4MTMiCiAgICAgICB5PSI4MjcuNTMwODIiCiAgICAgICBpZD0idGV4dDQzMTAtNy04IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtNiIKICAgICAgICAgeD0iNjg1LjIwODEzIgogICAgICAgICB5PSI4MjcuNTMwODIiPlBhd25lZTwvdHNwYW4+PC90ZXh0PgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0iTSA1NTQuMjg1NzIsNzIxLjQyODU3IDU1MCw1NDMuMjE0MjkgNTQ3LjE0Mjg2LDEwMi41IDU0Ni43ODU3MiwyMy4yMTQyODUiCiAgICAgICBpZD0icGF0aDU1MTkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyODcuMzYyMTgpIiAvPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNTI5LjYyNTMxIgogICAgICAgeT0iLTU1MC44NDc3OCIKICAgICAgIGlkPSJ0ZXh0NDU0My01IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDU0NS0wIgogICAgICAgICB4PSI1MjkuNjI1MzEiCiAgICAgICAgIHk9Ii01NTAuODQ3NzgiPkJyb2Fkd2F5PC90c3Bhbj48L3RleHQ+CiAgPC9nPgo8L3N2Zz4K\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    X Pos: ${xPos:2}
    Y Pos: ${yPos:2}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false},\"title\":\"Image Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 0.2;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || 0.3;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 0.6;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || 0.7;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"image-map\",\"mapImageUrl\":\"/api/images/system/maps_v2.image_map#map_image.svg\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    X Pos: ${xPos:2}
    Y Pos: ${yPos:2}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"/api/images/system/maps_v2.image_map#marker_image_1.png\",\"/api/images/system/maps_v2.image_map#marker_image_2.png\",\"/api/images/system/maps_v2.image_map#marker_image_3.png\",\"/api/images/system/maps_v2.image_map#marker_image_4.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false},\"title\":\"Image Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_card.json b/application/src/main/data/json/system/widget_types/indoor_co2_card.json index b2f2f73c66..8b3ba60e65 100644 --- a/application/src/main/data/json/system/widget_types/indoor_co2_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_co2_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_co2_card", "name": "Indoor CO2 card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_co2_card.png", "description": "Displays the latest indoor CO2 level telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json index ff5479630b..9c6289ff4b 100644 --- a/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_co2_card_with_background", "name": "Indoor CO2 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_co2_card_with_background.png", "description": "Displays the latest indoor CO2 level telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_co2_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json index 3b1cb244ff..a99a0f81a9 100644 --- a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_co2_chart_card", "name": "Indoor CO2 chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_co2_chart_card.png", "description": "Displays a indoor CO2 level data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json index 93f19217a4..e1cd82d4ec 100644 --- a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_co2_chart_card_with_background", "name": "Indoor CO2 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_co2_chart_card_with_background.png", "description": "Displays a indoor CO2 level data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_co2_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json index 980e06157b..152d0063b4 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_co2_card", "name": "Indoor horizontal CO2 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQ/pxrg4OC33qnn9ONXsjbz8/OHyHBvvVPP6cbz+vHHx8fOzs6f04zV1dX5+flYWFhLrCjb29u2trbCwsK8vLzn5+fIyMiQkJCTzn5Xsjd0dHTD47jb79Sr2Jutra17wmHn9OKenp6CgoJmZmY5OTnD5Lhjt0Xt7e1KSkqTzn9juEU1uySMAAAABnRSTlMAIEDfv1C6kOEmAAADkElEQVR42u3aa2/aMBiGYdZ2b0wSx3HOISGcz7Rl+/8/bq+dCE3rhAobG6Dn+mCMjSbfDRlCbQ8AAAAAAAAAAAAAAAAAAAAAAAAAAADgX/py92zG07Nz7/rPX7nDyejuSeep9yLpAWQvvT49hD5CbgxCbg1Cbg1Cbg1Cbs3nQjajlCgaLc1Qm+cp/STd0v/3qZDtNjpEy120W0a7dC+JphFJSQ6RYx6jnC41cz0e566leRouktfrhRwkpU4eUbTjY7chdZ5vtoNo6hx2m8tDXCFcfgiExU2JYBN9rZA9sTylNCcajciE5KPNIZpuB9Ptcn9xyNpvQ5RYtFckFJNwvhLja4XkEY2i7YaWU9NhQ3ajKKJ9TlN+vDhkLHwb8iaoFZinWhRkaU/r11fPzki7ITGvm+mQN06FhC6/TPOP5+eXpXmeS2efH5xon+e1CUnz3YZGU97ilAtD1uKbsiF8ck1ki8xpfeGR4YpVIfgamcCV4Jln9gIzm/s8Lk6FiDdV0KxQfkI/k8fhSB4fL+VPPNVdAj7wymsTzBh2ISKZBaLQxEPivgll9iauyxXfzMbJEI88chUlCV1bwhE2ZC2KYMwn/BiyIjIv4ZAF9xZi3u4tTBIVwvtciBIioOtZm3/dhpBe22OGH0ICeyON23uHVjzaPdeG+KdD1PeC3EJNEtLeQtH1+CJx+e0SvB5v9OS3IQmPbUhwTsjM3uw8ejT21YKuRovOhELXsz958yaY2feMPobY9S7E7J4O+T0VuOGJ+1m+/7og6Ryh8SbGc1qIVXcdEvMRMuc2y+3WZ/Zq0VoI76KQsVJjsgZtjKT3kqwso6wfm4U+ZUQ0XA4pK8t2gxc+ndT+r+WLIFHm+Lrgmc9rXUi3ziF2PaCLQoxjSJrGZdPEPKuoKqs6G1RxmjZx/R7XGVE8lHVdkoztRtzU54TQWgkhlDmW+XwoFmTY8/LT754JGfNM6b8SMpBNPIzbkGFa8pzXhmVcNTakX5Yc0tTDRnJuJeks2tPU8o4zc4/w0+4T38w+ODdkGZdVPEibSporEtdlNZCDJua1dz54TCYkM1dkWC/NRlpV9OdsiGFDrvLFqhye2Eybksf7CMmyU5uS/pL58avJLJnjq+69QcitQcitQciteaCQlwf4NTuRfOk9OQ/wi/bMeer1vj73nXv3/PRIf1QDAAAAAAAAAAAAAAAAAAAAAAAAAAAA8I/8AKu9AITe3vWrAAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_horizontal_co2_card.png", "description": "Displays the latest indoor CO2 level telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json index 3cd254896e..a925d50788 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_co2_card_with_background", "name": "Indoor horizontal CO2 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_horizontal_co2_card_with_background.png", "description": "Displays the latest indoor CO2 level telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"co2\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_co2_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal CO2 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppm\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json index f48aa374bb..0ed8013f48 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_humidity_card", "name": "Indoor horizontal humidity card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQ/pxrg4ODz8/NXsja33qnOzs7IyMisrKyf04zz+vHn9ONLrCi2traHyHD5+fnb29vCwsKQkJDn9OJvvVPb79S8vLw9PT3n5+eTzn7V1dXP6cZYWFhjt0V0dHTD5LhmZmb19fXt7e2r2Jur2JqCgoJKSkp7wmGenp4vLy8hISH9/f1hfASuAAAABnRSTlMAIEDfv1C6kOEmAAADLUlEQVR42u3aa3OaQBiGYdukD6+7nJGDKApKtDGapv3/P64cYtFOqvmgDXGea0YHd794uy6DIwMiIiIiIiIiIiIiIiIiIiIiIiIiIiKi/+nLp9dkfL0zPrvh3beqw/iOT++78XVwr3ADvt8PhrgFv4Y3EgKG9A1D+oYhfcOQvrnxkKfSwwHHQJHhwBaA7dgO+nOd9maIK6J9dJY2nAelYMBonuEAhjMubHunDKgr1qxMH8DUbHhoeBvXPxPSdRyXLH/Y2wf7AUtjtp2t10vMsF3Pxs54PBu9qK2DazFFTAChNHzUUq1Lmb4nxJVG6XUhD+P1a0i1EPhZhbzAqUKMJcY/ZgauJNVtyEQ23Yq4gQcdVnOLMyFTeZUffbWOQ9RsH2LP1riWXHQTUgo6rq7KQuQaZ0K07C2O98hu/dKtyHi9q0LULsPSwZWkkk+aEAngYe9J/FTnqfhnQkyRcBNI8CyicUy98UIZO4Ur0dpvQjwJApFnHw2vrDewDnEmRIsAYTBFWS/JeT9GuBK3imhCUgnCXHef63SKJ+2fDGl3iLsqp3CbXfKBUgnRhsBLq0cgi24uMKeu658KWUglaDskxAfS4ppmKeEKrVBc7IVhGkxKmZ4ISV87njfBx66IJ680FqYPIO9CTPHzAND5iRAEIiu4AoT1QUvhDeoRx5TCJS1qpeTVhpDnZoUW+0btImxOwqdCXBGd1/vkYHeN2hiFxxiNKEI0tOqBISIAc2eOKI7biQi4WFJ71tISupPu7aw08BT41UY5FeJp2TMPQorCim3bqo4SJHGSRaPEKgrbyh6tLAKsucqyGMpqJiw7u2QI0omITHwc8CbViHcqBOm+ZIPDEGukbGtutSHzIq6Oq7F5bCV2EzKM4yrEHs1tVeUmChfl+R7+4vvnrrU8sxQJwin+cKw4sUaFnah6RawsTkZqZFvV2GM2ty3UIVG9IvPMqSeKJMEFXP+HVTzHvxV2jPfoQ0gUnZpUeI9ehPQRQ/qGIX3DkL65pZBfuAXDwf0N/M0OqPvbuWFg8O1uaHx2d19v6aYaIiIiIiIiIiIiIiIiIiIiIiIiIiIiov/kN5uj+TgHcSVHAAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_horizontal_humidity_card.png", "description": "Displays the latest indoor humidity telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json index 028a1127fc..5fb7a1e60e 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_humidity_card_with_background", "name": "Indoor horizontal humidity card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_horizontal_humidity_card_with_background.png", "description": "Displays the latest indoor humidity telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_humidity_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json index 7d5f21020f..2f9f5f70ec 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_illuminance_card", "name": "Indoor horizontal illuminance card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADg4ODf39/g4ODg4OD////g4ODzaQD7x6D2jkD82r/x8fH+7N+srKz+9u/Ozs6QkJD0fCDIyMg9PT35tIDz8/P5+fnb29u3t7d0dHTj4+PCwsL3oWD0chC8vLz4q3Dn5+f0eyD9489mZmbV1dX9/f31hTD70K/U1NRYWFj3l1D6vZCdnZ1LS0s8PDwvLy8hISH6vpCCgoLwemShAAAABXRSTlMA7yC/r1EOHTEAAANOSURBVHja7dqLbqJAGIZhtf38OSMIogIi6mrVdk/3f3E7DN1l27V1jcag+R4bMgxJM28GqYntEBEREREREREREREREREREREREREREdHJeg/d/q177KmOrv0FN+6L3e11Hm3cAfuh07/5/ah86Xb6uAt9hrQMQ9qGIW3DkLY5HFIEuDWHQzLB38ZT1w1dNOwB2uZ9iJd56mhkUPYL1CbhYOAObBtTTPURrh7AttWPOsW0PrmMjeGo48LQquVYP6INXlli/leIIWsPtUjMv0PUC0N8m3xdLpf1IHzeLl33ZTnEz+V2Oth+DXEJhoih7wrNqRaiBN5pIYgieNFunS2wML1/Q75j4E6HqF4TdzpYTtwJhvYQq+mL+3OCC3CCOsSUfb0jlpTWYifFiSH6N1UiKJ+HbGfPTchwHE5xAYUEOmQtqGXVqSd5E+I5XrVO50hIIDXrXcjqZfntbcjzdqtDMFi+TJ+HSxfnc6QwdYjk8ABdZOlVOX9CLMk9GFJ6n4YYUjuwhfaHE3Z9uICgdMzXLchFdo5O0CFWc2sVEqHatw9DfpgFCvkNlmniyiIxoEMcybOilOBgiJfnkWT4OCRSIVkTsrl6iCMZ6hB4TrVgsQ6FYF8/z064ta4skMgw1pJtUMskOhji5LLGkRCvlJqBq/PkVQDLcFC/GUypsnLxmhAVmIt19PFbvn/8xjggtt9PxDibVVlLscBedq/7EEkBLKREE+JIaUjgHQnBRpQdGuM6JoadQBuNMOr71UQfIwBzd45RktQX1MR5SfVTq5QsMqvle7kaBWquCanOdhIdC1mIkr0NWa38JAx9NUqRJulsNE791Sr0Z7Y/GwH+PJ7NEsS+vuCHs7ND4JgiYupPXaVIvkcTEkmp3yaLIyHYGIbhvA15ehrHoT/365D5U6LGam6e+GmoQ/pJokLC2TyMVW4a43z6D7jm6NHpH+Mt0yzwF9dPUn+8CtO42hF/lqTjeBz6as5WC/dRhYyqHZnP3OrCKk1xDcdD1kGBTyRzfOwpTHB9OuRko9FnF2P8j1aEtBFD2oYhbcOQtrmjkO59fBna7zzcx9fTj/fzDwOd3mP/1nUfeh0iIiIiIiIiIiIiIiIiIiIiIiIiIiIiOtUvJ7/Ykm8IwzsAAAAASUVORK5CYII=", + "image": "/api/images/system/indoor_horizontal_illuminance_card.png", "description": "Displays the latest indoor illuminance telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json index 9fbe5d75f1..11b663fd32 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_illuminance_card_with_background", "name": "Indoor horizontal illuminance card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEUAAADR0dTPz8/67+uzt7zS09b37+ezs7v67+vS0tbPz9K0uLv27ui2ub/Pz9f+//7+/vz++vjw8PD//Pn08fD3dBDz8PD+/Pv//frv8fL28vH18vL18/T/+/j8/fn8+ffu7/H8+PX39fT69/b39PP08/Tz8vP9+fXIyMj8/Pft7vD8/f7x8vTx8fL29vf59PL89/T38/H9+PP69vT59fS9vL/w7u62ur78/fv79fLz7+3v7e36+fn7+Pf28e6/ub35+Pf8+/rU1Nby7+/++/bLwL/W1di7u74XFxnKwsXCu77Y19nGvb7+8+i6vcG5ur65tbrNxMe8t7vh3dz19fXNztLLysvPzMr+9u7t6ejS0tXJyc3Xzszs7e346+HUzMu0s7f49vf+9Oz57+vX1dTKycjNw8LDvr/y9PXk4d/j393o3trc19X09ffq5uTs4Nv8+/X68u/07Ono5OLT0dHMyci+vsD4hSzj2tjd2djRzsz8+/T99+zv6+r77eLm4uHNzM25u7+2tbnd293Ky8/Gx8v37unCxMizt72wtbz9+vHy6efc19ra1dg9Ojn++PH26eDQ0dPGxci/wsb//vzr6Obn5OXf29rIzdTHyczh3+Hg2NXY09H617zl4OK8wMQeHh/v5+X05972k0j57eba2dvN1NvGwMG6trWJiYnW1tmko6P4xZ78+fns4+S8urrywJv5lUn3fB39+vTw49xycG/77+bn4t/55dbX0NHFy9HUyMfIxcTBvLuppaT2pGXk6OrU2+Hs49/2rHNISUr++ffg3OD97tvc1c/6toJjYmL54s782b/quJJXU1Lx3c7o1sqvrazzs4KCfXz2girm29Pg0MS2tLK0r66ynJT3jDorLS7b4unw5+D86Nnz49m/x87JvbfCsqmQi4psa22Jh4b3nFZBQ0U5OTvWxb7z07vaw7L3zK2al5b3vI/wnmCHbmBhW1kvJiPx2ceMd2u3pZudhXryj0NQOjDoybKmnpzvrHnGrZrE1aY2AAAAD3RSTlMA7yDv768gIL+/v7+wryBdcwczAAARbElEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAJg9OlZpGIjjOK6iOIi+zXHjQSC55gy5JGMotIPk3iB7sxiht2Ry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", + "image": "/api/images/system/indoor_horizontal_illuminance_card_with_background.png", "description": "Displays the latest indoor illuminance telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor horizontal illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_illuminance_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor horizontal illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card.json index 2bdde8beb5..6f969a5b32 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_pm10_card", "name": "Indoor horizontal PM10 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OT/pgDg4OD/9N//6b//3p//sSD/vED/04D/+u//x1/Ozs7IyMjz8/P5+fm2trbCwsJYWFja2trV1dW8vLz/zW/n5+etra3/2JCQkJD/tzD/qxD/46//78//wk87Ozv19fX/+e/t7e16enpmZmZKSkrx8fGenp7b29v/tjD9/f3Pz8+dnZ3/2Y/zJp/4AAAABnRSTlMAIEDfv1C6kOEmAAADdElEQVR42u3aCVPaQBjGcVvtw8tmNyEHVxIIp/W21/f/bN3dRGkR044MHaTPb0bmdcOM/F1iZOCMiIiIiIiIiIiIiIiIiIiIiIiIiIiI6F/68O75jI/nnfeue/7JdnQ+49373Pl4dpHhBHy+OOviFHztnkgIGHJsGHJsGHJsGHJs/ouQnkJtOpt1MC2A/AFIc7fQwZFpCenNTQ/e6CG9zEeXwM0dbkYzFLf5Hfay0l4PnhtaqZd36Omlag/ZdEiEJiTF7WB0m3ZczHSG2QPu9tuSSLwATuWGVrHBlqUYs1i9CGnvwOhuNMJodjOdNiFTjPYLWUukLQVLmT+GLOIXIRGURH8KqUq96fA74m9uL+/rkO8PuLzHPkJReBLL4jlEKX9u9mAFS4V60hK4Rb8CpQM4ZWhUa0ig642PsB3y/QZ1yP3d7Q32YgQ91LRE5ilEifHPu9iOcxGJJfT7Z1cDmbuVyD02f+5WsQQtIUEoErmSL2hzj/3IYi4SKv/EMtgVEstcV8aHKIldiJTL0kZUSyMRqhKQ+PWQShxfEuBwrkTWkfG/2VhWu0KUiM1c+hAtKxviRyPafb+2X2Yhy9dDAnku0Tig3grAXCqsJMauEP+4m9vwy2Z099RuVJXutf35DZ9LFA4tktI2RFovpAy2QvQmRIneEeK1nSPyVHJIK72qQ5Q0wq2QpTxvQyTqDSGIpBZgI8MO2fX2Qoa/1DyUueirwDFSrZoQ8adNjKuFqOZ+JsRbQlCKY4CNQR2T4XoMr99Hv5u4hS76ACbTCfrjcX2g35S3uDKyjsLmh/x2joiJSrEhKN20kNAW6DeFNHuit0LyPBmnaWKnIYbjYdEfDJM8T5Pi+lvRB5JJVhRjZN/8gSQt0E6tRSRUO0IWsghdCEo7u+tILL03hkDFImo7JBlkaTJJ6pBJ/mhnuzYZJ8PUh3THYxuSDiZpZnOHGdr5K/ULSsxm3U5a1jDxHv/9qgC/miaPw2SQp8PM7UhSjIeDbJAmdu26mKQJXEjf7cikmLoD+XCIN/AhaFRrhcCIPugLq/EEr8vTR1j7hvwQJ8ZBQ/r9toPZHlf8qNpERXEZ8KXu+8WQY8OQY8OQY2NDvuIUdM8uTuBtdiC7OJ0PDJx9Ou923rvzj6f0oRoiIiIiIiIiIiIiIiIiIiIiIiIiIiKif+Qnt477Z3V+66gAAAAASUVORK5CYII=", + "image": "/api/images/system/indoor_horizontal_pm10_card.png", "description": "Displays the latest indoor fine and coarse particulate matter (PM10) telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card_with_background.json index f5c4edad54..9c2be6eb9c 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm10_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_pm10_card_with_background", "name": "Indoor horizontal PM10 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_horizontal_pm10_card_with_background.png", "description": "Displays the latest indoor fine and coarse particulate matter (PM10) telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEXS0tHMzM3V1dXQ0NDJycgpKSnExMXh4eHKysrOztDOzs3My8vHx8fS09MuLi7e3t7Z2djDw8Lb29u/vr69vb3X19eZmZm0tLTBwcHW1dSMjIyFhYWSkpKioqK4uLh7fXy2trbU1NK6uroyMjKxsbKXlpefn55/gYCsrK2Ih4ePjo+VlJWpqqqKiYqkpaVvbm5WVlbZ19ZycnKcm5x3d3evr66np6Y2NjZbWlpTUlKDgoPHx8qhoZ9kZWXk5ORoaGidnJhERERJSEh/fn9ra2t5enmamZSxsLB0dXS9vsJjYFldX17Q0M2srbKPkJK9wsjIxsVzcWpNTE1CQEHAwcW5ub+Gh4x7enOcnp2kpauflZE4OTiLjJHHxMOimpZLRz54d3BdWlCsrKpOUVB9fHaDgnyMfnebnaRfYmGhoahjYWNgXFWckY2YjYmppaJraWKTkYxoY1tYVU2Cg4l2dG07PTyno59zc3uCc2k8OjrAxMuwsLeRkpdVUUieoKS3vcPCx85pZl+5v8anqKiQjomNjZhtb3iZm5+Wl5yYlpFCPjSnqLB/gIV+fntGQji1tbyIeXCSlJ5wb2eVlI+NjYY+OjA8My6in5qHhYB7fYM+Pz6NkZ2nn5uKiYMwLTeQg3qwtLmAh4Oxtr2vp6V4eH+YmKOFipOShoCnrLN8bWM0Mj+AhI/DwL5vbGR2aFw3MCyGjIlkZW4+P0u0ucCHjZmdpa2ViYRqa3NPTUWrqqWPlZJ4d4VTTUSGhJJWXVkzLCo4OESzrKqaoKnGy9NRU1uKkY1qcW5kZV7X2NpcX2lFSFG7ws1WWGNwYVRLTVg+R0K+uLi4srF9fYuqsLiTlqMyNy6DfneTmZZXQjWiqrBgTT+MgX5jaXZqW05mVEaBdnBuaV1/eXxmYlOTnKa7u7dET0SNm4J/kHRwd4GGkX0/RVns6+t0f4y1vbz5+PjO0dlHUGNdaoBMNi1nc4lVYHV+lWJLVWyWo4xpgFGLn2+drJWvwYybrn15hma6yptWcUaVZoxXAABtEklEQVR42lyae1TadRjGu2mXY5TpwQUiJiBX4ReCXBoRF6fCUQO8hoWIJkKNUGnhZg7NbZGzZpOmy7XcXKtlNG3lynSVZdkulW1dt5nd753+6HZO5/R8sfs7+okbOsfn97zv8z7fztn12GOPHZk4smvXxNzxhYkjE59+eiL0qd2jMRiqq7cGLJb2+oHqlzP29+4cG9v34dBoacW9+9qGCp/sO9BVPrrz49dfWny9o7vkxX21lfsP7Z6c5FpPqhx2v9rv7uycjg1GQyEOjUY72d8/2N/qd1uCy8vLwaWl4BKeLC0tB8eXbLbqYKDTP9Xp0nxktGvtToeBFo7NOoopjpNG44Q4HBVNZTQ6k1ROTng4rLIbjJRd5VAl0WhJqJWrKqQKhSju5dd+/fUltml/xNZY3R4IBq1Wydfffffd1w+9f/ULd7v647TBZVvR9PtPHHv00bNnz+7IFPPp0tWsglyemE6vEXAFAomyQSDgZudk4VdOVlZWRnb6qlWpX1+YnZUhKMili8vyhEwhU9vXVtXXV7VtrLl5rLml5Z7SeysrSyqSk1OuuSYF12RyTa5Ix/dIK8niSiQSbsb67OxsrrKh4XDu3bdt39F0qn1g6XQw4h8YkOl8arV6xqp/5eAz6/buXbfpmdeOHp07fnxChX9ZogigXY8deWwXLgsTC0cmTnx64gSl0VjVmsbq6vbGRtu4rellZWlvb3NL7zMHRu+pqNzX1jZU1wZAkx8f+v6l0ddf7+4+dKB58r39XV1d630cp8Fj1enVGo0vbDQa7JwkIHK5BqOuzlZ/JLi07AajIOgQRjZ8uuS2TLkt/k67LxyzJxns4bgjHnPINIQBzUlLoiU5PR4HAcUxcGg6tUGlUalW6CRxODTyKhUnicbxCLMvueLCC9pdrRFbU2P7eCCo9gkSgJ5+/+qHXK5YLOnk8tID7jNPPHHHHffdfLNWK2TSCwokEmlufk2uNDtDWSTgKpUCbkZ2RhYAZWdncLlZaWmpX5/HzZCwaug8EZPPZ+bl5QnbqqoIoLGxO1tqa1tKKytKSlZVJKdcdNE1oJTyJ6AsbnZ6DldSWyspFZRm52QrJQXSww/ctX3HzfedffSJJ9yn3a1+v9WnxpvtmXlFfnDTur2bDgLOwvHjCwtHVvDg33YObdcu8qDtojlDhoUTJwggjVGj8803ba0esCwvu8ebns1Q9j4FQJsOjO4vr9xXV1e1ofepru7Rjxcv+/51Aui9nS/uPnRosntyvTlsoHR6WTEhPGtQezROmjOJ1uqKx1ydnf7I8nJnf79ruhNoxoGp2hZxL/v9rtbxgMU95Yp7OGorXgnpTVnw9qs4HIJB5XCEQIJjN3ucaghIYwwlJQEOAYSPIYeDhk/w9962Nu2TSLTVMl59qrG+PWL1KhOAHnn/6kdcrulY0uy4+4Njp5949L4PPnjkLhFDVEaX4G0rkK5ezerJyRAolVyusigjI6Mog9zx+FiUkZWz6sKsBklufr6YIeTztUymlilsq6tqK4OAmsGntnR9SUVJ+qqKiuRr/qwUyKiicn1p6b3r77nnnpbaUogsK0MilRYUrNnxwamzdzx67NixYLCz1RLx+SiKIgoyH1w3NLTu4GtHjx8ngCbIPx0FQEkrrHCfnzjhsaO5eT49YTeovZS6ur56fOrdY25LY823gt59Yy3bvnhqcrG8ZN+Gug2bx8a6uxc/Xrzw1ddRXYeeOrR7/3uj3V3rZU4HpdfrZUa1XhN2aDSaUHiY5vS7ZmPTrZ3u4LJ7OhqPxaLT7lbS60YaLa3uVtxJgWBkvLUzpuHI1IODrdHBfotlOImDouHLOU4IHjQ0bF/Y4DQ67JSB9LUwUQ9+cIPdoIJKHTp1xDYyMh3tDAYGqhvr68f1aulfLe7paQJosLrziTPHnjj7yC233nqLWCymry4QCJQC8tY1ZEE9GdwMJbhwi7jZhI5SADllpV0m6FktFovyGEx2IdvEZ7PR3/KqNoAP2tv69fdWrkoGneTkay6ChK7BgzBKywKg9ffUloIRnqzPKGXlsnKv295I5HPsNKp1atoS0OvVaqvX5/V6D+7tg4J8R1cGzRGVirMC5m9ANJX9Uw8elMdjtxs0GjsBNDD97hPLlq01u/fve2pb89i+nV2L5V1Pbduw5c6Wlq6uxY9HL7zsJSKhQ0+9N7l7cbSrqxSAPGadzqqTfaQzGu1qyuBwDLvcrvjgdGsrAIFQLBYfHIzFXO4l247GQKfLbbFEAmhLkc64Q8U2xPojUy7/KUuYAywqlcHIoTmdCRYqjxE/d5hj9KgIIAdpdCATsjtIixuWyQORCBUdnIrYBmw2mS3go1grCjpz+dMucmf010+/f+bRO26+9aYb1lzHo+ezeiRF3AyuRFogaUCHAxtyJWwgIiXISQRF3JzLlD25ZQwmn6lNADKZ+tDi6rYQ/ZQCTwnooIDm3HMJoASm5PR7711fCvWsxweCqLRWzMu/LrOp/Q7C5wzK3Tplichkep3Xp9PrdXp2H3tvYbHZq7aHdu1SQUE0FFHQX+X81AP1zHhnZjQeu9Fg0LRXN9qmOm9utDG3le4/0Ltt59vbPu4aLZ98aqx5c0tL7WQXWtyrCUDlh3Yulk+OdnV3tfjCdrXcp9bTmVqZ0U7pvRqHw9Pp6h8cdLXCJCyBUH806gKgWP/08vhAe3DaHRkYjwRtO4KdgyqVSY2B5HLb6v1JTo0DWKAgYKKBABlJeOAGMpDJhMmDS0gFCYVp6IYOtVmvozwO1bBVZpbp9XK92roC6Ob3L39o2u2fjkWDrnefOHvfIzfc/uDqtSypVFqkJFAIIEmRMiPR2AgxpSADnkHZ0FMgESizLpOw6GV5TD4bxWcyGEJmW1Xdhi3EH4BPZUXFqlUJ/aD+JIQmV1J57+7Se2rvIYBqMahatjzJgAy32p44dubM+6jT6OyRgEImM5tl8mK5TM7XmoQMZrFZp3bQaH/i+afFoTiYPh6PV++1zlBAZDBE6rc2WabPfiQ/sHP3ewe2bdv29scvdk92jz7V3Lz5ngSgp/Z//yoB9Pqht0c7ukYny8vrZpyUnG1WK/L4bLnDjvmnsRsot8vVH+10W+ARIkv+6GC0H4DiQNQ67R+wWAJNTZbx8caAO6pKikQsls5Bf31wanZYZ4SwYebIz0t4JD6G7VaPM4Spk4Tfw5gadiYZhvGR5gAX3H9GTojy6XBbmvVeX+61BNAd719+B/Q7PTjod525476Hbnhwz9qChgY0N7QzUFH29BQUNAgIn+wiaKZI0IBfPQ1SFksqEWRdwaLzAAj6URQyy3i8sirw2bz5TtLgiIFLXlWRAgf3D6BriEkAITQ5vAJ9rqV5bKx3SMvIzNzRfuz0++++++6P7572BzpttkK5vBjUSfPUwiEK+cUyvc+I1k6o/KvF0XBREYNAWXXeGasVziIBaMd4p6X4mQM7R/cf2LZ587adO7u6uhf3NY9tqa29ZxI2+9BL37+0kSjo7ckOKKijfJ83ZNUy+XJ2sbaQbVRbKQPlNVJ4z6OY3cGABW+/f7oTnm4wPhuLx4m36wwGx0f8tkh7+3LMkdQZaWoc73cHpwdn+3UUOtywg4P25SB4yAOfGB1JHvtfgJJCBo7RSBQV8snQMNAhKNLVrWp0DivvwgSgY1ccc1nI3xqYPn3fzbc+uOeFPQIu+hjcGmSTw22AU+hRcsEHXksJPywh5q5nNQsmXJJ9CV2cmUcAKRQmBo/OyxSVbblTiv5G+AAQ1ENGD+Fz8bm4EgERRJX33rsbI+pedLoxAqhQK8q8bcejx1YATbttflu9SVFYyAQ4Yj1EeWyFHC1PZ8fa8A+glWe4UTVEQRRpcV6vVU3ZHf7x+q2BVov2w+ffHl08UEbnvbPhQNdk+f5927Zs2FC3hbi4Q6+/9NJLG8vL32seLema7N5Yvk0fsvKfxI3A4CuYGp9cTxn1dso/PxXvdwcGgsF597S/vmnc73bNusKz8UGXc9DV6Yo0Bqoj1Y2BfqMz0Hh47S2nl96fjs2GZXl6h91BGpiGGgYMInt0MAjG41j5oYnwHcMaO1SmMuiLdWrKKzfLzD6rz2tFeYsvTwB69+rT0wAUi7b7l25++qY9L7wAe5ZN2KTDUGcV9RCXUAQxZWVxG5QN8HUwXCxULkvak5EtEueZhNrCYoVJmEnPp/Py76yVCAR46xN8StDdwIWMoIsvPheMMIqIlIiIEi/BEKpt3tY7JGfnZfLW7Di75CY9zuW3WQaamCYTPw+AGHmMMhH6mx4Nz6wJOTl/8aGds/JUZbTLT3jAZ2YG/1m9VspunK9vrHe7LPKjb308udg2Uu22zHgnRzv2f9P32mtzx58pQbM71P366xsBqLYWVrO7fGP5ZgLoZQZTJisUKgzFbBllp+x6i2WK5rK0twcjlnm3ZWSkcdw23zreCTNNltFotHNqyjI1sLU+YgjZTh0+/ODNd5xejsYdTIFw2BEODxsNelmYk1hbk+BBDJwku4pohlzQ48JGhxNPQla5zqrWyXw+sxm2yEc2QN/FBNCxH688Nh3pdMX7zwbHP7jh9hfefPNNbDngkZ6Wk56WVQQb1yPgEkBYJ/EZ0EilufTVufRcFosrhbVW8E1sBVubl5m/One1VFCK+pMPVtOUFfsGPucnHoQUCAER4dcFH1c7trNub2GemEe/7v6m9iW3+/QZf6R+oH5EKNQyRSJRGUOUmU/PZBYqoCi5evhvAUFBWIGwpNp96r6FueNzM9YZPFaa3MCOrYH+2LRx4cChrt0jX7ox6Ye/Hd24/8AXjzlpHGtFyejOF7vAZ2NH+Xu113RAQR0dW3QnrOxnn2Wa1WaT3i7P0yUq4J5Kilrq6yPBeYs7cP/26kBgYLza1urqPzk4SDt5koNWx9FYrfqYKjBy+PCeWx66wwZA4iIt2U/tCrVMAdHTKB/Gp5GCdbAT100LQT/hMAeMQrQk/CYmj9Xnw4YsIwbBBwmpk7/++rsLTwMQ/EF/zHU2+OgjN+15880sFPpZTtqqtFWrcrhKCfFrBFAGbIMEfFazWDW8Gro4P7dGQufLTbBvWr5WyBDXAJ2Au57LRXtL8En4ahACn/MvXanzzz+f6OiaazpKSiCj9bW1zTv3Ve1l19F5Yl4mX2FDUw/OR+qrt47kiYTQT1lmmZguZeXyGEwkFQq14z+AElHC3MGjbQtzc0fnIB64BJ3O522db2wccPcPOhcOLHbtbvwc1Rn95NuO9/Zt2kU7SZspqRh96u3JjaTFVdS2VFSUoMV1bPOemJG//OzDhXKFSW+WseX6Yr3MOz/fP9tvGRgPjA9YWtvXbG9st9U3NjUNoNMNnjwJRLEoJ8nhsOvjMcuOtYdvf/CGW+oHZx1MnoyDhMfK91GasCo8rNOFVUl2q93JMSZc3TCuIQ6eGAzE3lF6nVqjtmoonxzKVUNOlCb7smu/vuLMu1eeibX290dbHz396CMPvPDGG598kkMqfVXqqlWr0rPh20gh5MlQQkGs3NyaXFaNmC4WYeTkChVmNuy1ULjCp6AHdgLmImGwK1IS04fIB4DOufSccwihcyCjiwmgii5i5lqa337+rb2b1lWVMVCmwuIBW317YL66aftdInFmJp2HouNWqKFn5kFSMs0wh/N/QBNzc0ME0HGvDoCsr8h0OsqydUe1bck9c/yL/RUZv//+62+Hf17+pGTji3WbnACkKUne/c3O0XIIqKLinpbSe8vLOzZu3PbagndTW10fu6qPKZPP2eVmuZytC8z3wyNgF223zfvr12xvahq57bbb1qypd7v9QBSfjUbRZWkqTzjeP377nj0P3n77fT/Go3KTPuQYHlZDzoZhpyNkMEA4RquBw3GgvyXRnFiHhsmzUCjMgYvT6zRwCBpKX1xo1qh1lIbSiFddeeXVZ3686n2SDfZbgmfO3koApaHS09PTUgkgPIG7JoRIYCZo6Mml5+P9yi8ry8xjwBEUy2RstpaJEuUXEK1x8TpiEMAnYRAwc0hXI4DOv5gQSnQ6tDj0uN0rA+itL555Zl1VXZWWz2cXy18xm+Xt7TtG1qzBQCNNk4VWShfTkVZoTYU+O8lNSNFQBNCRIxOoTQtzR48uvPYK6XCv6Lx6ytI00ljdWF3/Slvztw2///Lbo5/9/gsAvffkppNoi96Sit3fHFgEIEzDe1rWVyaDz8be4wsHNw3hbunbW4ZgSUXJCovlOot/Kuz2B9oD4xa3v/q6u5qatq9efR0r47oRJHP+ztZwf3Rlz4nHOwNr4bH2vPDQu/E4pdA5NPD7Bsqsh682GPCDqzRyYxINZMLob/BxBg6ehUOGEM2AmeMxakhMJVOYNR61xmjU865T3nj9mR/Peb9xqrX/R8vp9z+45cEX3khPezw1Ne0vQKTLZQAQWYqUSEwBiI5bml7GyMxj5jHyCmUKk4mJHI6flw9zIIDByOCuz0knASkxCPgF/VwCPgC00ucSg4jYBPCBfnqfTwDq6xsqhFUvlhe/8oqisen+7avXSvMTRgSuUZoJB8/gswkgQ3glY0SpAIjwWZh4THfCM+Px6PfqKB1cnN6s1jNNilOnGquLH37y5YcHnnjCNd0f/aQiWfKkXJW068hRpNkHDox2d2AElbzXjEAKzzr2TSw8s25d36ahKi3DR/mMWMKsiObMnTHkbQNYctzUR7kwlQxpkeRwWrZyJFJdHYgg7YnGZ+Ozs7Mxd/2etS+gbjgdH9Qo5IZhI2V06DA3E4CGEZWbDSqVExOIjB2kCMaQCn/iHIw7/VaNGl3NQ3llCq/dgKQ2rBHR8wse6B+83nXK5XJFkSl9cNODb77x+OM33ngjwCQnE0JpCJ4zSJcToJRKiZSHqcDLh7MSavlMkZipwIJKYmwmQywlgIiZyEpDPEq2U+IHcAWYleYGRCAFPsQlAFBty9g2AFq3Ti6HAYCRLsa3kxdjKaXzWAI4RlYBcgyJUioWCvO0hfjDmeFQKOR0IhyGJwoBEIl+AMgLQBSlW6ezms1WDVI8Hb+4+FR1deNW/sP8rfXtywPznRPp16RIngwkJe167LXu8tFv3hrt2vhSeXn5oY/3AxWqbmHutU1VWza1beGb5LL5AF8m88rkhWZXf6c/aAnabEG1icUrK+NJMhoaUtOL7t5610j7/NS8zd8fn0VFp5dvvemF2998c+2jsZhPpFUb0GsNlJXyODlYhZCAqOxYjhwrSxAujmGVKoTTB6xUbreHgvnExSejHMNGozEc0+fl9vCmY3dHg9MA5I8EHiGAwCf1xtRUCAB8UtOAJwGIhDtYUAvE4kweQywSkvAAmykD6tHmCRnod/QCJfESxGGkA++KtSYdjgACIswgAgjPQQgSItsqJDTW+/xQXyH4KLDoFBeSRALSpOdKuNBsj6RHAPn25DNI2qcoZM+cIICGnSSkH3ac8xgAHXls4rEjRz+lZkDooA4mSEfuRT1bXl9dffbUVny/hxtPndo+0jSUXZHaMxKI0Y5MfFOeANS98aWOjvJDL+4e7cYQKu+dAKCyLW1tVev2yhXtAblMofbJTFYXgkEAam+P+LSsfOxRkixlxkWPN+Tef93da+5y27bOu2Kz8Vi839Vqu3nPDXteeGBpNq7+SFhIqY1WrwbJKwdpO4IfGmy1gTImViAVOh3pAg6j6mR0qtWtpoj7VHu9OhlCdCK3sMb3kVhknO2M2hAk9fsDA08/uOeNtASg669PSb4gBZQACKYbiLhkRYXJxlpCFzJE4FNoEoKViMEEo7xMulSAsyJyFIFrGs4XCBkAIpzIE9BJFGiBD4ZTRSUAkSRhbGdVG74ZmxAqRGpAaAvpBVwYyWw0V5LNClhiUSaDX2ji6zw4UFA5nSHcYmo1UdBjALTryAIAWWfsrx3UyeQyr5pSy0xsCKe6sfHhhwFo5K7tI4y6zc/W3NU00J9EO7ITgA4MEUDlHR3vvbg4Wo49qGPnxNy6vrotm6vahvaa5OPzepnWp1eI9EhuxwfGLZFIxMxkbSmr2yDJLii66HFpzf3333+4IDKy3cKZnY1jcZ1eWqq//ZG1t9/tj0eNahngGDBcKBkFnz0cRkCKeYOYg4P4dKUgJAQ/J7HvTlFqvDKRI5g1To7BOOyI2SEnMzKl2I76qWhr0DJ+69oXEoBuvP6CFLLAJKcQQCQfJQ8u4jdMa0aeKFMk1JpIdCDmieDmEPWIMlcrszCvyOxCJQSUMG8Xpfzp44CGVOJ6EbzDNSWVZFVN2IQqLdskJC2TbcJAE6GJ5uUKgDo9m5xpYGEuKhAzyvDXCJkyhKGeYZXTqMadpseB3cIEZhCcHFqc16o5KIfFKDb71NZirbDJtmSr31qzma9o3HHXXdsZZb3sJ3EgGFCrJ7aVd1S2rSvt2rgRY2j/i4tdHWQcPXV8blNV3dhYXdXQXrnZqymUsYtNWnGx3dgKDxcEHxkA7X3tmfysnqKL0gTSTDq9oUdRQ7dipjiTYm53cGnHnvv2PHh/MB4zeq3DCMMNFEIWL8w1EgMV1p6wwTH8Dx88wYnTydmTg9FWCkUQ+XDUEfZojI64Rq2xG2djsdn7r7O0Imqy3br2zTdIi7seBUQXpCanrMqGdgRIeAAIKyuLDvPGF4vYfLaimM/g8fAQw2Ll5hYUZZFYFMMrlUyvRMIDqeAMFUWcAiloiRTmEjpcdmUltxSANm+owhAj0LVa8GFk8uhicUFRDsYfzp1y4CNzAEhIIgWh1kxRXp0dkxU3nNV+zmNHcD60cBxn3iEPUgTqIKYZEju91avgC7W24ICtsUfCKKyubzzFEJdtePnlplNNp7aa2Ah3uIXy0i5iDToWX9w/WU5c3IGF4weHqrY8v6F57yY2Q21CCghdC2UeD05pGm22QMBqkuYffGyBkd3DPTeZy3q2Jr+AxWat1qHhOjgnLe7l4I49tzz44N2W2VkSxOFU1mPU56F9U5AEB9ZaNQzPpkpo5y9KISeyvXh/K+BYfdC+zkypOHZ72BGG2OyaeGw2uqbouvaB9kD9rQ8SQNDPBRdcDwmR9xmAiooACB1Okkv8Lt5LpNYmPhTEFyEo5WXCAUuxymbnrErG14AProgQ/jpiQKVAQwTPn5zwuykpFZXZJMqWSFq2bKjL0zIZQjDHlGFmAnc+S6mEHYRwuTnpOTkZsHHCPJFYpGWbrT65nELKiCOFYdo5WIG+wiEeaXMLnhP2mddkcoXCrNd7dWwTs8k2PlDP7lmUPrvV4hqkXjl6gP7sdtSOkZfrntqyhS2U7O84t6PimtIX1492w3G//s3C0U1tVb2923o3rRsSFzKGeFVDOplWprai/59qtwXmKba0xrdroi5dwL0oWSClS3HYXNXTY4ZtdkVdFoutfsfhtWvWrnHHozQaAQKr5lX4ZGarURWCygwh+AAnFiDg+aucHNrJWVrUqLFrKEQgGsqqcTrBZphmRxu3k3C4ODfjOhFD8VEm683sN1KvT7ngoosuSLngAvI+p2Vg9JAkQSBZzaPX1OA21pL7XYgmxxRjIcqnw2mRgzx4t1QiHpAlX5lKEBEZ4vO/BxK5EmqJuJQruHNzS23L5g0bNgjJ/CnGTkUiuXyksAJkShJJQ4+0ICM9PQveJBeuXshAJot8u5ii0QwOLHqcc458dfT4D8eP4/9KOAJAHuucT1Ys18PI6eFdtg6Mj299smdRyeIFBmdVKtV+6Tt3jWy/7bb7Rc/uqxIJt+f1VsLuX3PPnbsnuxeRJDx35OgzQ3W9vb2b+qr66kTsdXV7h8xyJt/rtdjaTwUtNpuOmct7bddEVWWP4KKUItazUkF6dlXLnWpEAZH5+XaL7a4H1t7+wOE17tk4TbVyJoITOo/PJ1MPG8MqlZFjDKtpSWH1ypFwIpnHfBocjEehNrvGbofB0anDTo3HoErCeYfViDFl1Atva+BKTSZxwZtFWY8no7+RuiiZAMougnuDhStg5dPpufQyYqjE2nwkZPDCLBaPly8oKoJ1w6hC9oCvuICwSU1NTwMkFC4A9KeEVoJTvClpaVncnpY7cbS5uayqrkzIVpgx3c0IKUV0aQ/yCG5BDUsAESmz09KULBw/sUR8Nk4e+FoGU085EDqS/g0F/XT0h7m5XbvQ5zwnjPY5nR76QWoiy8vTFgcGsAbdWbooybTPxpJUu75Nl951221nt99Ff3bDlkzhSBkMmTRrlaDn3squUZiEfY65deuG2t56/uDR59rKpLBze/v6+rCrynGg0AjLYZPlFaDFHW2ulEhSUrPfKWupE9w7dk/z3K7QyU6/Zb4zGtx++PYHbl/TrjGQjDoxZXAGp4N9dqjwFNtqGKs21JWYQB68JOHlotGow2n0UpCQBylCiGM3qoZpRqjJDtDDOgVbpBRgKxK8+Wb6jSnXJ6PBodCroCByBISIAOc+qHx6UQEP8RhPCltFr5FKkcgJYLTAB+aa8El0RsIHn8GnIy9KBetzUSCUsG9kBUpPr8wQtGxuvnMzTFFdHWgz2dCPFmadhc0HilXiDConJTmHCIg4OQlPaGLmmUwinkjE1qs1BvAJ/0HF2QA1XYdxHBUXAlIoDW8vjEPGxsY2bhs4JosGIzcIcCAMYsZ4OxAyBGYcyou8BCYvnYQdWHhAxnEYJ6AEgRXxIodx9ELEcXFXZqVZXnqZ2Xvf5z/r6qdByvjf/H/+z/N7nu/z/YEIun3v9tLsFNS4pQ8+0KePYIfSQQzWidAJqKGZGXsOdPfG8fTvonQbqN4XIm23nTpRfnnVauW9dIjHsQp5GDJKq+Ju3UqY2S3S6842dD5v/Xh9say5Ii0FBiCMt7hR+cZ5e1tOjt1iNAQGCIcHZhuT4+JYO/zYx/PSTHEn06oWpg6vwEQxP/7ypUyb/VOUiopgPQ29HeMqCo3TkUnohGiEmlQOOvgCPmLuQH+3ch6AIsmSRTtrrAYVHPShDI9IDQZcqLgTFSJOgL8/X46N5MPt+/fu34/8RgvpaQe6GqS3ujpSW9gQebz3hKdi6wlVsQNwK0NT2XJqffx8UXQhZrCABXUcSi+vHY6qDgEFPA9ynDuJPAC03eTnn3Y8Pj7eKktJSZFKuPAzYFeLD4BexAw3aFro54erbfdmlPSQcCQ5LiYQyLAydWxwcCRULAC6e7fh9sKVKxghREaG6UfCUKcmhumiZfEyWY4ZOUld1d29xkui7vRmwj7v1EP2l0+tvOMTVyWs7+JRgXOo/qUXDk2siiHtitI1zWfPdk5OLi2sD3eWWm9MNqSUWuObCwwx84Nmy2CbQSeTs3VnAEgsZu3urmqsWjO9+MmBvLGR9JWS+ZoaWBQqv/wixmIelGG8ozlc7ph2Y14FtQ2iAUYO1OFsZpbjU3r56Z3nT4xnZJSMt45nwIRSeWl8vDKzpjCj1aMypjBfczgxLFYdKA31w4NKCjbS1P79jhTnAkIQfXyovkaBTTsOmxMaxA9XqRA7zFQOnZG/l8lk8kIxjAyHtQPLyw9cvLYD1L+A3FzciBKQ085GEp9PCF+CO47KTSTicLQkSHCk/CCEize1Ur408MCGtt23Ds8NfD9sHtRuiVZ7NeoqF4A0YYexB43cvTM63Xdz5Mriwmxi0uGkkWxUqhBYDByhlGevnG/LL8vr7U0DoJ1nztxMSOg+zil4d/Nmvbupu0pkq+expampL3R0tAf2DAkm9vH0GmS1seGGhYX1hYWzpQCEBNyYojYOFtltHTZY9Tgh/OGBYf/kiiqWKQ7mhv4EU9XrJ8emPFbembfYMkuKir+w11jsNl68SKSEkgMyDnEXmw2V1Dt36gmQY9GX0Lpu9gAdsIGhC3gKi0swnKssrKxshbgzn58Uhl5ZJuX7+maFEB8Waz8LEYQ76ebmiCHfPcQnVYrdG1MZTrwwnK3Kgu5WlxbnHycO8k5GwiIzIyKGYobCxweoGUB+WCju0BExfFzc6cq4JhB4BwUQIMySUHBBmEDbq4L0FhSCyIH+508NECptTHYBHnEUKhdnqQCIdqpoBbR5SIxOI+fO3bkLO9bs8NnZyESP8oEkCJRJYfkKKZvDNdeYbRGdeb0XRuMPb04/c+Y2hqZVHA1u1ciR6ltB3DZeSLI/H4kbHqYh0ZD1rCE7dmx4eHihYWFyvaFvfX3y4xsVKfHHmyMwoJm322x2uzJQfnx4aqmvuiltn6nx+Oj0Wu2Fi59cHJ5a+WC+raUFoztMS2qKcmxIsRx1hDoiP/v0zvT0zeVJDq8lPsBhSsQYaDQJ0geXo09tPQUkcAhBIUcQwaVyqjUzA2FlUOBpi+Lg4czyD/H2w01FicBiMSkOgGh5eoeEyuFfhPQPQNB2pHw+ditxHCyH3r5xYgKUDA7wiqIHQlKjm+9LfyRcoIQwcHFzAyDEkTst6pbQAKPs4ABPNPSBQGQvqDtImmJvij2WF7gAOwWajxeosjA5DKE3wmarDVfVRmVs0i6UcU4D565NX2xAoT1clpSkOZ00UI4efBesBLJUIQdTWdvYjWvdvXnWwxRB92qP1X7SPLV588CV3QmmtBQFL4i122sPWyKh3niuuUyRlLS4CNqL6wvrk5OTZYgg7ELWMl1EgdKca7GZDQaJfHXhzNJJU1MTK/nA2vJy/4Xqc9f6hkdWshFjOZXjhUU1MSWVthp1IE8mCORLZYbs7EjIhhDeCBEmRHpICg5C2I9oUpevP9U6DltK5TgipritLYYcDSXFEBcqK+fVCk2EgCOEPiDHHdmObcRzPwsLhFzckOKQ4/yogkNykyLFsZk6QcVH45MW5+2Pp9w/ztcRQb7MEw8+JPfg1vr6gRa+QHzcQXuDG34jghwaH4VGaDgCIkqNzjIa279EGCDPqhPjXfgBLXEhnRaB6Lmd5Ax/MZ+tUqn4QqmarJ8Fpx3zoHsD3/fWfr80srS4OLALhd1A0s5IpH5NRDSHI7MU2XLUpdO91aPxeuxBZxow1Z4uHTiDmu8IMlOzMbX7CBSnA/FiVlBnSoU1JSpyYLFheAmQFhYa1offnpxcv3Gjr/QsLBwKc4vZblEoU/c0LpxZfD05rmnf7uS0/v7p2t5z0xcJ0LxNFlhUU4ipa0lmzbxaW5ECQCp2dKzAAGk6nYyK2HEgLfzDh1QEPWTu7F3naWxeCftoSSZa65riwnEEU0lMyby5pcuiMMrQabJ5ob6IAD9SOUkpfcAHOQmNUBASnEoFNGAjFYanquTQrXErX0R1ECf2ZwQ4X7L9OIQ43FWQgfCDhfihqpsAgZCLo0NC/OD1YrkKhkcuOhujUUkPiUoO4Mz3PpCMgBmEPb28IDT5hwAQLeHnihgDM7ZDCDkN3Pv+5MUbi7dvolPVY8Q/cHhXoiJMnx2s5PG6bEU5Lcae6QvVoxOJO1EkfA/ZYLRvagA+7lrMUUsbjvdj2pAcxJZj+Gtqyqsw6pOWlmZnh4cn19dvNDQM3ygDqNKzVF+qLbk2OO2UPDkn9sxw04tNaabk7qPdy8sJy9NrF8cIkCVQW9RWghxXbC4pitZWcCPyBVqpIJ/LVcAcm7iLiECFo/UAULoHOp5dkHoySkoyxi+BTyYJfoOFrRmF9raajMoYW1euwQjJM4Cv8sZ9odTDouW8gRZTJ0BKACA+ggexg6ccn0L9Q1BYUYsPDlRh+SV7UQAhLTGjWELjSR+cnR59dKOTuzvAPKgRAAh8aAgYUsdXCclwL8KKigrEUxJet8cb3S5DiAlFMq04FB8xrHjygACpJCCwpBCGTxRG9Dg6jdz+8ceL63fv3b45MPV1+unNA+UeYeb58XJ9PlfSntOW295TOnqhun/1Aw+PqTMXIYxWWcFn6so+046glMkDR2eO1ZrC5+QXaLTa288dPxWmwIJRf7iseay5tKxsrAymP6PdnmPpQI6zW9r5vIWBsuTktLR9ycvLy9393b2fdK8tTK1kG5SCOUNBURE5HAvnDeohiUCnjBjPqDTn2KMk4dKCRPLTYSyx858EVw53I5QeEhjC8rNjHSpC0fygvbB1PMZmVGgMSrUIdhw8vHxI0XjYUbPhiUdGcqOOn555APLxl5ONEV1qOHYJ5CU+BkPIRLiNXiZ3kw9j3klG6DCIwAy5ianodrhsfOSRjY86ObsAD/jgAwHagcyFO14nR0xiJ0UZx5Wg3IYhNygOBRxG5SjCAZgyJWDjAcCl38Ic7LVnnz548GBxYUYkySZoIjz0KLMB6M7d2zdvXlm8nD2fPoCTHsgPkafDBIGBEK9yZUOjvdXLAARzycUjCQnTfchwA0tHElhi62SjePfMkX1Zq2vVADRz5ILgcHkhzBAi7MnNnc1l1macqojCeQC73Zabk5uTk9vR8XiodXGgrDsZEWTq7r2wDPyv9I8uDHhkK9Q9XI2mqA2DV/NgkVo0NKRVS7iFp06BmFYiVEmUMTGooE+c38wsKPLoXSMV6XqYeiJ1BpSl2WhnY+FIscWMlxTlKJUaIwhBOuFRh+rvtx0R9A8gF1eydhAiZxRUQaFY5KFHjyLmAxB0A6ZG82Jt3UF3lIV7iufcF3kOmQmxQ3WXm6vTxo0btzpRv8sU2YSH+KDFYeIHjgOJLBC6EeTRRqwDYgpFAkSEQJlJkWCOww/PPf3ca8+++sybb35WeAntzi54z6HT5zvdRAR9zwBaKB2KVWsWwg5DFzbP68PKAmUWsyVXZh3trSVA2INOQhidtq6seKzcBKom62Se97GZ96vjGvvBB/6rbkHSeJHFEo2i6Xjz2c6ylJThsU4tFnzeuS05ltyO3JbwEGH+mbFuE4wmyUdf7F4ere7t619bH5laFATO9RQo7ebiwhKzvU0mTeVp1Rxu5q50e70lisc/IL1aY67UaPRM7CB4PHZqdsYqgqM8kjzKEw0RpMNFQgnGgRlbTUmhuaNFoMRIh8tVR/GEwro9vqhkPSkBsf4HyMXdEzsAhIQ66D1IdvIgKoQBE/eOBNFH9nl57du3G4CIkDcBIjmbVJ4NTsCzcaOTJ6oEsEEUOdPf0/yCtnyaW3A4zH+oDw7I09LEEEbppAoW+VXoMjTu8MW04a1Xn3rq6aefeuaZN68WXgoLLifbEgb8Aqd7dx18RkYWrNZ3FMqUlChDTY3ZkBhcZpVwc7s4KX04V9Lf+AEVCZgxvD89Bz4rSxjTpVk/VomPzLyf0H9t+dgM+a+6ReOZbRiSq7myiuazzWMNKWMNzRggGlFhY7ZkAyDL40GcYI+xo/vS8kymJhQJoxeWL66trU+dmRXIUuMNhpq2GkimdjMvlS/VKkSi+fJ0c30Ot1QoPiArslUW6fSoDNIj9dSm6pMOa3ZFREaeTgw2oLGLDSZANnNb23xJjKW9RaDmRgkwOxBhqMEP8cWzzXJm5B3SSl23uLoyuzp2DHBBBAWJs2gwtCdITCe3SGijTPiYC4s5WcJCuUaAfJi+lBZrCwXQo49sBBZ3qt6ccTFczc8b8jgc98J4jkzGoQoXW2AdHoA4pMd9DiWcyDCXQc71RaW4J+u915576pmnnn71qc8UxYoC2DU9YKOJ0Drdu0OA7t28ObJe2jlsiE6JXx1q72hRxGJzl3XkSngA1Fs7etwBCGPTa32od1dGjhypreprnuMfYwD1zswcgUWuWwDfe24XFwPd49aUlLHhsmGFWingKmtsNosdp+laOjrCg2SaMw0+7gQoL6+//5Pl/mvd3TduXhnmSifmFLoYVGE1RUV2djh/tcvccail0kPD46ZUHGhqEhq0mmgF1W36RADyOHE+13KitfVdsqjGZFaWxIbpwyoL7fa2opjKmJx2LkfAC5RQPyeE1a3OGzeGUZ4J0IOmBSUCC0nGxz+UHy6HI5vGm3579gACANHE1W3Td6SoQv50xxyIcpcPNrIHKtEmhA/lOLyCKQ7cmYuhqsDsPBTORylPghEPTwqNHGZHqgYhSbDAhNAwr6dP2AJ993h/9dWHH8HOBEvTwaufSa4WaBJhyEy8GuV0G4B+pBrh5nrZwphC3Zky1DN0SCKpsD5fIZS0vyS8+MooymxHBH1Sm1B77eLAZgBCHs3rufzHz7sZQBd++IFMwEhxhZb6x6U8DreCAI01ECCtRDmP85Q59jYYHHLDxfHBHg3Ju/PyTMlN/QDU37/Wvbw+NbIg4PQA0HxbUQ1+5QRgdHaopf2JQ/O79Eqt0Hqy6WijQhIrMiZtLteHZSdBMy2sPDF+/uUTGMghKduLCzWJBMhsw1Qjs6ilXcsVkJFAKNOys+AIoXbdnQprZwTQg6bF+V+pJyuLGQkhzflgH3dECQu1s9N3xBUKtSN5AdAOd4eGt8GV6DyKFOeGDMeU1yzyCjGAUBWiWFdB24MYlhpAZkdvpEdYtR7MkggOyQ74Fj/HoPYNEHrtPQD67KBUi4kCqfJaJUXQjz/euXd75OZww9LiwnBnJxKSaIhT8fzbVp6so77i4sk1RFDelZ0eZwamE2qrrz2PMnvXiOlIQtX1+z/96kmApqsBCDkOKW6wg81HNw4HfXNpQ4NWbYyK5giNyHu5Lfa2ltwcWz2bG1xe5rc7rcpkwrQx7traWj8AjcyOdcbHT+g0hUVFNlR7uTAkrR7qeunxl2pa58PrKp5HBFUYAwxcQXZ6sEapy45M1wyeL8nILDKfaC2pjGlrK8EZClTbmYP2wZjiGApkDoeNsjmAw1XRwUYvL09PZ9TBTPPjaFroPhMgJCVylfr77wnCNuTvC0BMMkSG2/rdbsY6yuhrJMt4sVxwEWQ1ty3EZ9sjj26EwOOQ4JjuBjYDMZkf6WQlHKoQD5A+QxgnKi6LSzkTIwLktoGq/P3MBP0Nr+0ffvTRe++9+ky97KDsanQUhnIKNbfA6S7wABBF0LnFpcXZhcvKy0VKQfPHb5+zCl+qH0o59woATQMQvFYAVHttDoAGRky1tVXXf/r9jb27a01r0wkAhInqsiDb3q4CIDmkweYUtTJeFC2D20KktplxoBJSTotFFMUVRXT6surSEIMH4uJeme5HrT0MQGet8XM6Xdt8jdmMlwvloan17QGp9Znn57N8KyZPHj1aIZBHx3PysyMiAqN0weXBlZm2jMGcrhh7e3tXjj0zA+aD8coS1OgQFMy5HVoJJ5y0L7QWWf5QnhEQjvMHbg5ZhgA5VBkvguLjjyIaYwDqdWj7xhcZQIy3dzd2dBJA8SVcBN/JAifsP9seRp1NV3Ij1A7pxw+NLxIc+KQSG5h2kDsdRlTKlkw1gTdBgJjSfC9w7fV8440PidDBN+ufOSjTajky7VUcozWgSKAcxwDqhDsbE9HL+fOX1Z3nEEHsl9pFIgC6gD1IT43qtYT3a9d6EEpoVGvfl3/z55+eT7qbPPtHHYBm1gTZChkE+wAhFxYibnRUvEggZPMkXIESMdSCArwF8yjymAmbGqtM++KCYFueXu7u7Z68Mlt2Nn5VpNPBOIAYsndI+XXh7V2Pv9CeuBIT6ltRdjIurqLseJlQFXY6LMyojUWCg2p3abBwMGaw61CuufhS6/mXW09kAA4QoUE9JJFK5QF8cOaFQsX2RECQs4Ny24MFQI4c58fo/ah2/fd4k6Hekd820JBn02POZAph7TDh7lP34r7BycnVjeBtQfw8tG3bNvyR/oytBRobhRD1veHhcihx8joI1YwCAT6O0gA0mdGEG+VZWm5792KehAkIEXrtqYMH6+slXHiyVOQLVhAgJDnUcSOLDRjZwVNwWWcwCob6+lLiD3XkdvU0o0ionlYRoKlrte9X/3rdA/83Uv1+9cRPv/3255MuJs+4NQA6hkKuvzNbIUFUU4HJFQUKRPEiNY9NBozoNrhPLMhzUVAN4TnCUCKlKk4e1HTylVFEUHfZ1KyyGaFWoKgxW9rs9kGLlC8Pn+thP3EobFe+3K9q8uSLTSfLKoYrVJr0yMgCQ+LpSzhbVIkheXHmpWJSd1pffvlUK/HJrBksLgIgWDPqcE4BTlHYM5Cz6I5scnJlbsq/gFwcgCitobSmkRwNSLFAx9UVgLY5OzOAaHcBIHcXVxhIiTIF0MNYBIgJRtJR8TJIPOipqFYP4ociZfow1MimBeqo2x1ccGnHJwo/Gn4AEAi99vTTQpyfDZTyQ58NCBIHcJ1u372DdReAlhaWZsPCMFHVRVyOHsJB5rn6b69/OwRAF0x5Kv35zQNTn9TWVsu/XYHU8gGOdPf8QoCcbzGAZhJQxS13hkWzSdUKUMkCZbx4NkcrkvCkUpEy2mgUcHNsuS2YyHPgjhjq6WwutfbMwU5RFZd29OjYwKwS/T5HYayB5mCzmXMD5Kmpc0MTE0PBHmEq/6q3D7x49PWzFcPH83RJ+kRNfnYSlFBsOji2l0mJrTjmxIlLGeMlxTXF6GsLCwxRMh7NDOShEFC8ac8nscyVTJ8EiFkujpKB9n4SYMgih+hxpiIA6jTgbHJFJe1MiwAxDRASnBMMpMTukUe2PfTQQw9v3UALsYG+iaps8neLxVlIbfyA0Czqd8EcRlSwocXaTS/fRP4sFPqbXBmBlSLoDSJEtudnX1XRIg+4WOJ08873P96hOhuAFmeDNbM4e5Ifoe5JsQ61f/PtH9/O9cwBUBVb/7LHwMDJ6upbqT0rWF93116Y+4YAud9KWHYAmplZ7tRoU0Mp9fKlnFQca5byMKQMD+cao+HY40JM0ApkbIlSxwmfwEncHoFSWdZ8vLE0TTw2FWbAMHhVaTDbbPgJDZYOuXxidahndbUneFewUFx17kBy3OtlfWONebGHE+GT1ySOFxa2to6jJM/MAJiamIyMSvxGgqNj4wVqmi3DSx1EEpf3diYiNuB+0711dcQO6gXHvUfdRZEDVEDgUFFRh2/CAoxH8Dq8iNHPKMFtATMncpBu2Ljt4Ycee2gbiGM54wUoE4EiRIxqkI6Ih/BRH/huJ2GW5eh6yUnHYmw/W12dHGuL482476cIojrhIzD6yAffG4JiIyCQAH3/448MoMXsr8PCrlzBKTudsadvSHD9m59//vbbnom1W6ZGKQwbA2deAaBrQ8Dz11/etdU///LL738+eaw2oX/t2A/HEo4A0GSwgC0PQAQhr8nDA6QqKXrEoDpONExMpBhqtQIePzDYwxiyOjfBnlCrBXC6QHB4XpcerKh/aWJCF9ZiM9s+tdhyVQETq6XNjUH8d1aCpeIDH7/eHZd349zZqqrFkeAIpQJe3hidPjtbV6BLTIK2qysI1mRCwqYdqLjIoJZI6YhCFky1viFZfkzLSaZccn/SPaEcRowc0owf9n68woVFHQoCC8EFQFsJ0MbHaApHpReFgssG3NOtG7fiNzy+2x567LGHHnZyAKK5A/kTsI/hqCsz1BZnBWX5UGYDYEfvQyfwcNWtALSJrkQ2e1e8D/e9WPsBCOu99z709PSB5AQXGEeEPgh8mE51afaDw4mJU1fAR6fsGeqxXf/2m19//vXn1KDuW6vCyNbyKQbQ9MSX93/56f4tRND1+7/89iTOqK6NHvthw76EYzOjDcGB4XzcGR5G63Drw8yKioC/J4CLFSiiwxdqVR0mfkZfcSp/+5653B7oDJ3GhrMR6dkRuV2CIYMGO9WnaJly2ezV1ZSURvEO0eFglU+Q9fWjRw9833ejqmphBONERTEOt0bgx2XA4wJAGp0SR7tRXNuKimoGB81qrQo/AyGESjI6i4ANCJkEj+sW8k4zEcQA+ic4oM9RTkPgIHLAg8mCmxgn/MbvNjHbBdPRum950Jo++PDIww89vNHxZU+ST0m8w4E9bzosDp8WdVZeTDfKCBjIm/QGQGWrw4EKRgQIDwPo7HVGCNH60JfOxzAuPQknwun2+p07ELPv3b69GPvBByVhI7P5OpxhF/X0WK5f/+UbHAoKD+r2SmWPt5YfHngFJ4evpf7++2+/3L/1/oUh6oNcZwjQkR+2JBCgdQ0HJRxbxRGIoqLjYUHu6OJqVVkY9MNOxPxSSOUSAPILCRWzWHUvTPTMsdnGnp7odJzwslyOVhhsEFUtbUUd6O/YVuvxJtPxd95h+wVVVDGA1hvzhkeCMXyIwU6jg4eUTH4wvxnURoXRXGPJNVvsdrslisPHYJm2Flq+niwXV1e3rcgnm4DHUWHTcgic5NEBQcfehC/jwxYKHrx205aN31FKRNAhibHcED3/WVuRALGnuTGCEUUQI2OHyEMQO1lBuMU0/HF3dvSl++EjQtrcSguACDveDSVcN9cNzkAESHC8wjb+hg8skhCdwuHyKQCg9fU76/cw9V6I/frrzLBIDf71l9U9Q0hx1xFBP38T3o8iIaDy1Knync/37uu9Nnf//i+//4wqbvX6/fs/bwGgfgCaIWfpWsMsl34ohySFmxKolAm0zdFcGUpGSTibkyNqiVa2tChlAdpsD4W3tzzAxGqqqxo6kHz0ePyQOv1U5qDFYNQp7S2YGw3Ot8CdFBBvbRR7NzYsVMTBvxT3YtO5i+uvVzVcwTtUFJZkFsJ7pNCpFbGJ2bGwGEcYMdHoaunqyu0IlAhD8Y+E+uzHjAaQvrAdb0UFhzvCtKhYDkCU7ugOomZjxDmgQDJ0ovwDPAQIxRwlR1cXFirs/xPCZoSXU2flTIC8mHo9BG63ULSn8IHQgJzFmLQIEzIcZTWEHoKIvpHxaREoVxdXNyyE0V4k2r3bsYUhQbJ5HLXub7LOBSjyOQ7geTvGa7A3alO43dP7VKJs09JDoc6jumK9TmcVEkvLbTa620dXXfaKLutMTpvI49Im18ojYnAYifMIY9AVd8MMN5z35/v773aD79U+urtq/p/9Pn7f10btmJ11z7t/nP159jXG8L/9lv7fPHt/TmLi1AKAUKC51E+2llh1z99//4aj/X3lfd6FDzf8vSu5uWXPzrm9u6qWMH4yONry6loBNOp+zeYts9n7QxaLzW4rzO9322zLq8ymrNVFa0jzcBbKjKlK3/jMbV3GHEvFPaThBj6hruppev2OD59/Y9OmVTduWoUHqrn93ho9TaeWSk/yyR77sK+02hco7Ryc8Iec1cNvvWkvTn/jgltuyRuT03baDZeenZuZX/hUccz4tkSpvLC8KlbCJ9UXxTUS+3UElj+K6EmiOK2SKnykKsSJkct4MICWgEi9sgWDvMwhdOL3SxBRJ3zFEcKN9AGi+OCJNNzYPxWmn0qidZkxa+npVLYlZlAJV+wpcCREkCkiIcw3DwPih4rm4vNQpYMZujjygCtJDUp9NdmUpI8riJqd3z2/2y09OG+99222TOKvyOtvtxiSWgUQLmhqXVtfs7Xs+Q0fPni0r6K8b+fCt9/+/e3Orc17fpmbW0hdIkHC5MirK1uUBr3ZW2bpDdlDE5W2dkvc8pC7t7d/p45UR88WrdpQnFCVd/8z91977bn2ildZ9xOcbOlEP4qvOOS8N8ggXHvLNVSOsHHXRDNWW1bZVN3nGXvT72hz+SnCBqsHqquH6W/JTLvlgrQCt72Y4SOGZViksrzjkpqpKsJyXSInKILrpZxJZApVvDMk1FwVGoTVx8nAR9MfsEgaTdMgRMxZJAeKSVSA+D/iLS6SITqEv1oEFLUEPAhagsIiJMTj6dOSErnUb9U3VnGaShhp3xpI+wFpfMT3oUcXX3nwkQeTM0fIRtBJmVkXtXt+YPfueff8/I6XH7zuuudffP2G3Nc5RCYZzA1CaGpqypncWeGbefdlRqeaKlb2zS38+uvf325r5tGuPxecACLMbrkHQJTD31xBvaJ/OhSattnaK+NipkPTvfaYBJ05q2tzB9Zny+bMlKpbWJa08YEH3RWvNn8w6h9tLm1zetKpvpFLrZHOHnRt8zWXxCWgC5VeALmH/Y7qIIAGgyCqHSZrVxhXwOKXYbuMraddSFQXk5KzqibaGF2VvNpgoLOWfRQnSOU5Uj6VoEnMG6qgQgStK04BUpsNNLPGPyICBgAJNnExfO3Y7xUVvnjKUci/VEjOQ2gjgCkdiDU9Fdch+SLiOOlDJSHOD9JcnhoEXwSEicOioq+ahRNAPKOfn4AunHBl05wx46viqOBAcGBoiOv45lvnZr/4RvEjTH9xbemjWr+wsDA3HvQRKpYEXLKp7MOde5pLF+b+2Pfrr7/tWbtnbm7fgvNV4mvOQaJB1IrevM5OX9yEbXp6wkbPb9MA37vXll+WlKpLqCmM2dy9JS7auGnDBooEV9ibX/3gk8HgJy211d6m19+7tGBVzpqaW27fjBPpWLPq9vT0dBoZDMmdnrFhr6PWYi2tcLjagm3W4R32SntKQXFdnrs/LpOhzoIL09IZwl7TXZW8UxebbDLSDkr8hM/GumFcxL4JHzl0KA0iMYNg7bl0gkwLqLhsXPworv6x5G+OVYwwSIfhM5ScpJ4rPvsB4d+lSIuislxO2knwQyfjQZjEo+kHdkq0grjwCSsnhPBs8qEVPfhlEDiqlhMVC57J8rLWNR1RVp+fFS+h6f5hxm9vuJ3obaospTKliVJtd/fC1E7/eOqZ35zqnLpbHNQve5oH5/bu3Uf0tmflHoaK/1SA8EFoEFuvZnassFFncNH7Ox3q7W1vcvknBgaaGIcyZiRS+E1Yn5igrwIQM/FnuZuXDI4OkqeYrPV6i9/LTotL2VyzCUCbUaGajrjiMdYeZCZ4LGPDTY7kSuvJFQ7fYMBhnR2etrnb3W4ZhmWVChOfBZmZOSmJ601L1+0k+ZWaJSEUdYHFdiggRNSDT64JgFQNAdURQKJcohnoh2gPgOBzrKIQEXkUeaoAKYDo2AFShDiZ+O381agNHaJcXAke4+kOOQ406qrLIQzR+HDDJ2gBpLI9WrgCQqXbtOVztv3mzO2Nja0N11wTVV3LliRf77Stjsbf7E1rah6ZGreUNXGZY6LXd3fjZn7b/s0J5l379iK/7Wn+ZI77v//+ra9569Sfv+6yakECa3pQoObgj681OT0eVtNMTIfae3tdQX/Q5/MwvZwgC9cSuxpaaURNExN3/1ljzUtGPvggOLm1dNBqLXwvO315WeLmVVJ1XYOZiyZfV0DAzwRybkFlbW2/9+RTSwkWOmtnh4dC7lDvmD1kb4+Ro1VaHjM30Yndpvh1nmXxyVlSNqB3ABcg5xqMmPId6ogqFo6ASTV24CG0l3WYHJdNKB0bBhRWE3XLXQTKvx6jQgfIK54rSmMDnR/rVp8vlu4EnuOQBNDBKuUHHwGEliol5FN+F3Ukk9w4inwEgqnTmurozH+fEYKGLZfcHlXaFnBZfUMWG9NszMHdsql4+bYUPd1C+favEhIbFvbu/aXIdPrcvr/++uv33wXQrn2///HrrtUcVMfxQZ5XZdHI6IhsSQDQdyu8yWyBDPhs0/b+MbfLP+MP+Jyeyri6uBj6jwBUlVpVsIHlZBtPG6tYsvWDvuDoSF+p09n/8tlx0RmG6JpLasCzqiZHb8jwxqWjHnnsrnL3to95l8WX+kur+9pmh23TIZdv2h7qr4yWzQ+ZBYwXJurXx57gcPaVLFu9FCE1TdZGdXKIfVPegysg06NKgw4lwjtOACn14cATAXQiugMg+ABC3ShU2p2GTdMu+dcSE4ZrqZJpkJQRQ3iLExBkjYSN8nDACAPStJknB3JPFKip0UXCSoINOe0SDlJeveq5z778MmqwLTDkmhnwtefeRRr/bAAVMgLmTbL0s/UtvbBj1Z8LW7Y1jZN2A1EE0N5dS/esHQku/LnLqXYpTTZzi4kLvnuDsXRZaiDgQ4MANAEgnytgqLRfl8mBKKZhfWvGuthb7n8AQHeNVfzQsrUvODnS5/B4+p/NzU+q0iV2pGPeyMXl0JLgjI5jVUF+Wm7BGGKzJHmGaj0Oh314Ymja5aMpsrcyRQjFxSXE0EbUlXxCX+qp55xA5YDzD9dfACCiHEiUCqC1XLaqY54goTURtdKsMEM8EHj4I4AWcSAaIR5EKAFIrCV8tGIdrbuIJNwgFskiiYGDTXjEmB8gFo57HquniKJDrCKiAAGHGCH+/cbLn3sOQlGTozPTA1aL11Zwx4PZZ6fFdTzySFyM3uAta3fXDXOg+al3eUdcv6177g/kNxpBF/b9sffXX1fvuWfEz1HJsxIZnWx+dW1LCz7ox4LY00udMmEHIXtIAAUHXBZb/zDdLVzF9esTqrI23Y+J23CZu+KHe0bYmDVS6gjMtL/r7vd6MgwxHfSVUB6P0RtjnfqYJOrecXnpxOp2pJf51+p1IbvLNYEMhXrLEhnBSMyPiyYxaihaXdJXfcKhFSeLqByyWBZJkB6lAZLrqfhI1KUSn5ARQCpvACDNwoEnQmI/II3OIqwzTjxJYmytlVR0SF1ZAEnUJok8SVFEhoZUChD2EVmMtOVnK0CI3AsgtbaB6u4rlL6fuxlAo6MzQ0M+ZnjqmKHOLu6oeYROpUSdjoHXOneiKzjhSoxOmJ4Yn9v76969c8QMANq3d1fq1rUj/sKn1kzVOkpKJgEEoZVv+99Nc7K+bmJaLp/dHXL5iUBcjC/l5NMhxsrB1u58fWrxxg0bN9x/2VjngSv7ANTcNmidqdzhbvc4Y6sSCjevuZ0Wx5gkZ6rTwGGVAdmxXJuTST3ZWuzur2TAH+IsPaTp25MhExs5aRQqjGbz6SWdySXnVGhD2HJ4Bw4IxHohPAp75YMRld0+SF7DuOuLJOGiwgTFR5k47QGyH5AEd4rOGYrPKVEXHSGRl8jBF0tMjy/C26vgjE9tootfQYtA/i1azIg6CRu8ZDinLUXbb+LPX72dDrnHPvtszaqnokYnfUPzQ72VcdcxhJidmd/RURhHjcCQGP3VsN3S5J+wiDcIVP2y78+9u+a2DTQtzO2b27drG91Slo5Nj9i8jvLyag6qS9YSZ0/uGPOkBlyh0IQokH3CH0SF/ANlZTEx+owkTvhFZn1Gajp4GLdy9x3VsnXr5Gizw2GdGXht2FLrSa1ano4HWrOF4dDaaqeOdM+60jKiuHiPxeutpNWO1bjusXYetFdWQtQYyyhPSlpONK0HAqi0/ICSCuDgBoQAdJAwIKUoakKEiyrluEjowP1FQFIB9CKgf4sGTAGCD5BOOgU+yq9r1borUUlRWhU0yhXHr8kDIfVfPvJE6KifLoCUG4q0R7CVhvjgqptZD/wlPYJRfv/X/t1Dvb0FsvohOzc9pyMzR/qF2EvSnpAorSMpCVsY8dF3L/zy228NZUnr5xZ+mVvYZrF6l2+jbc64tKSk2tkpG2FoyXqtILW02hWaxksw3DA0AaCg39UUzUwufZZcxFg6kIqf37jxhavPG3P8sLK5WUxcX3VgYMdYk9Nr1BWmdbBqKSU/B0C1hjKdMxVAY4HOWhcnVtZBey3t5EeLMwuZ54h2eg0ZVRn6HI5BiejQsvJmR/k5rEhW872SnhY+ketDkMAzzu9aS4LGR2N01Clye4pqcguT+A+fRQGQ4oP+HKT4IOgP9TZ+qDQyqKZvUZuIRf0/IETzP5F/dKQ6CqmuITII2+sbL795/WfXXJJ27wVnr4gaCH799cBArztX5gwZYC8sTsvEpCcyE8Zm6RSXz5C4ZUtMpWuirKyo65fuop6rirp6zEWmR2JiarYUrddnUNb11HaWr2xuEUDp5y8lLMRJhNzzGLoBYgSf12vB2xszmKBuTM0wruu4jX7rF84d6/thbXPLzOgI6zisQ7Mhn9ejiy4uIM7eEp2To8fENVk8TmeyZWw2UFLqaisvdTYll1Y35a3ILUhj400Mk4X0PcfkF+em5bME2xh/TvlI+aElqjkeEyZ8xKrtByRGTlwD6NSpRPgoK3fUSScdeJIKqoEBjmPCiLQbJZS2FSBNf046KSpi4LBM2kiyyieoTiAhJ0q0SAjt/BciFSHwVQ0yhNT/pqBLQ3e9ifDtsc8y0wryzj7vssuiftq9e2j3UPs8gN67LpetnwyBdycm7Yx5pGtcb9B7M3RdXa2thqYJl2ucEiutjw/19DQ2mopXNdRce82aBmnLa/LUtlWMjLSsnNxhP3NZLftwA65pNy6ITcEzPq/VSwdhq7GKQl5jltEkGgSg88Y6f7inpWVSAPUpQC6PLoHhsuWsUcMkOmutXtrNnad77W5real/sLyz2utYGu/MrCOZnVZMB3h/L2s+c6gxpWWmJKFBh5dXHEqPLsv5BZA20hsBpIIuRM6CYfN2yil8qnuhA4iwowGGwqHBiqhP+GsKT9jAHQkbEQBJkU8BksIFcJQX0uJGZWUXCWkRnBg40W31C6qhInE/8DGaey6//ObPrv8qvYChN6qkUd9JLYghnguP/vC9bHaPFMTFJEyNF+2c6p4aH8cXtRa1dhUVZWQ0Bbw6NOjmm656qL4+K6txzZZvtm+6vZs54q6ylByLx2OdbHO4dqQ518lCaSEUmp/w+QK+gNdjSMxM6WJLni6jp5Emvtufv5pZxUsVoGYANXcOWod22InHy+LS09KWs9JEAXJ6miBU6gyhQWR5SipKnY5TT04tpp5KEqimozDfztwnDQ5MD6QQ9S1bcmjF2gPKS1grgeCB0Bduwqk0qY/KxVDHRnXJBBAJNvgciN0CgVIbSMhDTXgGoEVC8AEPWR/4oEDie6SMc9zFxNNa0loAHb6/J0RhgpEiJFG23Crh9aLYaHVC2acBnuTU1vXdq7685pZb61iRwqqUB5gPkm1kr+WlZ7N/OpusYyaTrmWGpPHxqalxxFCkZ+ucjqmMWqOpsbEI92XeXk+U0fPQ+680PGc2F5l7zA3ri7qu2dTR1ZB5aYGzuskVmLROBvzT8xOumRm/dSZgtcTFRBv0reYGU6zZFHuJDPyueGtsK0Wk5snBlSsrqmund7hdAVe7224vzqepJCVF52S1Ozvuvcsmd89PlpDlae501DocJyf3DxcyEZWWNxaXX7xcrWTVE2Wz0IDVJWgQndS8fYKcEHH85IhVFKBKMLLFTSnQEklTq/wngjqI/gAIAopDhMcimYhKKUDg0RRIFXDQISFEL/7hYUCECcqraKKF0HyASKiIqNAF6ybeEM3hjwRv8avrixrY7ljHyjtWeDEaoN4egMXmLPm6bEVu9iFXsFsJ2w4gcmdl49u2bZsa36lj8tmEJ45Nlfbm5Nges7mxvqe+/qoejB0fPVf1NPYUXdX40E3XP/3Fp58/X9fknZjwzUxOBoLz8xyDEBI/tAilGLq6GhJidWZjfd79Gzece927sx/88OrbIwBq6WyrDb3pHggMMEzkZjQiBUIZ1RASG4d/2j1Z3umvZjNRdV9fxem9Y+xdo8gw1p4Pd2JMQk5qR2eeeeoBh2Le1BJ4TA6AuIjSx6MCbVm2x7mdy0ogjHmBDwIirjeARHMiEtYWPv4jWqpHxQewQY4//sknCem5Y6xSyx5wEsLcqUEhbkATUSU0WUTQqNhSLKSEBtrSOuZP6nu6Ur7Kyz5P+kIfXhxSi5KF1Cz9XXHdIXdk5+Zi2+OwF9H05EcrQrw8ddLDGiu7iskSF5mL6k09jdtbzT09D1111UNm/JH4JAYnnrv+8XdeWJHZTs8jUKz+6aDLJ3ysAV+TxZZA/aLmksz8ItP2pzawCfW972b7NECszeprC705HbAO2N12N3uKU/gFjMm1Ho8X77bMOx2aLO9zVXdWdLbRn1lqH5a1XvYxd29CTpmB144xKdqYtW7p0uPP0d59RIuLjpTqqfLQ6hQPIFhxVbRuA5BpgKCDSGCA0EQVxqIAIeqxllwAj+ZF0J7D6TJE4uO/EZGGuSfVTAm0OH/BRomKFrWQEVFqI4CUiDorQGoZBpm87SZz1+b0C3mfA/bmaXAEUhTLB1AltqiwUzKP8Cg9brlGKHpq2/LljyRgQthvx2wrgIBk7mmtN5nq6+uB8tBVl1/e0CqI6h+F0M2P3fflBSvqxvoBNONjrhKnMoNMWl2+SltCkrnhmgtuSDDXb5d60Ll3PDG79UBmi74eXLkWQEOz074ZF4dRdww/n1KQ6XRUiD0m1lLfdMha4pjhbRAA1FyyzD6cwLIHTkQ2fYyO1sTkWINeGgTjw+GbLEFUjNTLFEfMjWjQEsyMGoLjHgMXzk7DRwH6l/YgggsJfxE6YUASflFao1VXAXo/XgAd/43kS49Tc8GiQvxREuYDHQRFRgQTIvkLcT4AEmEr2faeou5VdecxQoi8JHT4BNCDd911h+xcefAs1hrTIpNeCKEE9tltk4WDj4BKRAbUjUZ5/w5jT2OWCSVio059Y0N3a0MDl9z00EM3Mbt3/Z033nZ2nbt9wO93uYbsAT8uyO+3BiYsvF9IYlFDTWZKhjlr9VMbN959Yfazs1slivv6k5a1Wx1tA2PTZB1s7b39Kbh8uh1jaQuuxcRZ+zy2Xmu5I1DdV1FBbbfCYXer90+wWZoM9N4lrzszS5e0+sylbCvQep8BFLYqFynrxlPuMG/MbGnOWyxcJCvNuVPxAQY4JGZTZLhZFACJaHzkGkt8QJMUiJT6CKAnSWnTUwogzqqY10iVQYk6iqJBi4D4kDSpKkyBhyE7NvVk6NlEdhlw9ouYuLvuuusyWaTNrsm8uhtyCzgECiLJPYuN05fJDoQyPUpk0CPdrWazscgEoJ6iIm4ae8x4JBPadNPNj3305a23cZTqHxoYoM4wHfCT6gkGfWRO2xMTqTV06zOorZ5/yQu33fhG3WvuzgOJ4kZFg7a2DQ0PTfqDQ/32/gQUKEefFHs6gKxej7PCY2uvLXf42ypKKgY7S0pO7nfrOScRPnhkcIBp7Cyd7vQzmfM8VK2YInzTXrZadKtO6zxachSAeERoh6mLZA3AIx9AiaCI6M4iJHoTlUfaD0iro14MoOOfFD7vgwnNkdmUU6XHHhunlEYZt4goPhFEiNTfVXlBKhMMrGQZkxIyZQoXQOyeFEGPlIl78FxZfHXaFZfmUX5Rb8VRDKEc/C+xHIB04oRwQzqyaSlsX9y2uaPLDB1ja2t9lqkRTWLVtbkVFXrssdtvu/H2gjRb5ZDkelx+VzBIxdblsrU36Q2tXcR8XWZT/arbkBWvkepZ24wPKj+n01E99Oa0ldIuUVyM7Ac1JBmlbOHkLXo6vRZvaTkHVcY3BpmvOaHdnpEUk+KtTXWmsmE0dh1v72NkNoptEAfgg1AhEvzKjoFBi2vxQdKLptXmuEBgiwBCe5BFLBE4NCTuf6y+Hgakcg74INUkRYAQ/83xaJAECRcff/L78cdfTMSsom7hI5hgI5wIViKAFtVI5XekZVU2psYaUr4quG3jA9Dh3ZWulTd42PDAaVccEnXeZQCCEosN0xi2Si8AEDNxeAIIEWejQQZjlUmiBEaSdLqp5UndHZsbGtav7+oyp5pwSI3E3Oai1ssvv+mx67+8+8ZVaQW9tpCkSydQnSBF72Bgor1MbzK3mhpNZqKMhqeuvfWN3Lr+ziUrS8qrS0vWVjjaJt4cqg0O+Ui2sZCDtu5EXRtrcmqd1cs6nbWl8eWdVvE/gxXNJSWWdhKviXin2th18bwBxrLTMzKyzqc39HAWUXLkw8Zh3VWaJ5zfV1HcgQKIryhuyP68DhIxaIt8pGU08oi7CB+iPmXhSO2AiPj6m+OPexIi4nWePOHJ4y4+8iKMH5kflWTgRsHRyg1aK2lECTkeyeyJKnwwlpSaEf1VWt0LFGIoxVx77W28u8PHFDUFEDsi8EP/1HWuP22WUQBHURPvorPMUmAqpbSlaLjUiZ1UgQ4vQ+eFm1pnhU5cy4pgRYfotLpVp2MrSlUI6nSV6NBEbcR4iSZOvxgv0U4lCHj5ZIyJf4G/8zzva8XpoXQto7C9v57znOec85xz02n3EkeQhgstsg611uNLOcVX4GLYpPkGbnZVqNRHZfyRuiPp6YmJWCKdQCeSgXh8Ph6IJSb6crnc0qGfNg8Pr7iGOojFPbfv/edQoVcP0qO0nUUMB27AF4jRXJOWZs0rHesKLyES/vgNN+zd2/3qo6/2P3dw39AzQ06HjfSOVQFiz1t9XmnVWeedULYLDSLUxjan4yUbXTtwwGmFV1RVU1NMm6oQ1r8IMKoPvHrPGk4TMAxNOpZVWdMxAP2tO5qPiQgoIgad1YBQIHaoCpCEd6gFRXXIUF/LV5TqsO0iwoCPTwxVvkNnHAwPATHrHZWPoF0EaoW5sHaXLEBPP/Xe4E8/zs0u/iAa9ORjz957WsGzAMKRY6gILYdki06pGaXuAKJo16M6e+Nzt7sxctVcDVL+nEuaSKQSien0RDqdno4FkijFdGduuHdpafA25mp1NrPiEMymIOG5gwfJB9EvDdL+wKQ37gsk0hOJiUTMY9tdVbz3+b1jXPhNOzbte/TVxx/f2j3a0UFWQn6jpXrTpopqTniVlZadtLZo3dZXZA26kVa6Hc9YqFntYIKPF9etRmqYfVXrqLA6uRBAqvGhCoDppVhdDBVC5j1rshI8+bAOAgNNxLxbxUcgAkjxKQSAKtIRRkV04MZbAJAKaN9y3ElX8w3yHezBrgXYtYQEtRh5ITOQUCjZOTnPyqlXyqs89S3rr2diz61Xbl7+cVGmozDC5s/XZaP67GUAOp9u+5dfd9UFrVi4w4cPt9VTheEkDslNuXA2t5X5DwycKJWuuHWMNfAHADQtrenTKFMs0Te8ef/27Ydo4rJ8aEsu43a9RLrukfff0oA6hjqsAPIznyCQonnZxMLS4J1ycoi4ubW6jOV16839Ox7fV81pFDeBAd4WdVV0Mnp77OGKMu9ZZ9PuaGzTAw/hZp+ABu2R7k1bu8d2cXiB5sEyha5Bzl6Tf9OAEGXkdTjUAHQqX+PygIabEvisdtlMIOYzLSYfNrQAUnxgI2sQxk1qdbk3K1Vx6DVDABEGkrQGNJGTjdyU6SNghMnB0mCE7kmlbidDy67/8PVb77ryfjQHPHoKlPLirmMemgC6CQ1qa64/jNRy4qDVQf85WYk4hsem1Yar0CWAyHB+Qmi/i9b+dFT2BdRaFEhOUDS67a737uLAzm2Dw7lMzLOywjL0/luvshbdTCDhZpfd58dJ6OKOLW6cs8z19fS5dFmt1IJ2lbYPcUiou390V7ubERQYV1LnFTu+/7h703nes848GQ3a9NBDbzIRE0AdXq/Nu3HN2G6LD+2BDwcJxH065lRURwMqXAVIlbyTG9NtDXTQOu8aKAJH8+Hrhig+GtC5SoFEWRAAwUBIXSscEBTnan6vyhIhUMLSol1SeYzIv0sDEpMIILw3BoDaPeXERS96/VbG9wzOzX3OkC7U57vvnlYatJ7uDxL3uZsjA/Vo0GER6jXZjDgapdNZuZ774SZq7ZZ6aUu7y93FcFjUZmISToEA4VRZkuSc/fD223bOLo3PRBdWVoaojDuIj/D1qzd3ON0AqvQHADTpi3PY/EB8IPRRMJKJhJdytGtOuFbaxyq6u3f176ZehVCTrEEVO97eWlN1lnfNmScVlb28475r3tx7BYDadzfg9NT0k4C109ug7uGNFWXS1wBAOEaI4qO9Wu4hZMTiAIQYaey8ZyA2bBUiZBUgzUcDkhAcgDBtWrBgf9cgEJkDkBg5ZdR4pC2qUe0NH938nE/sG1UM9PMJ1fgsTsrLLzuNTgL7l3/6XGbcYeL+RF5XgBjiAiAar11M8RKd6zUg/Djd4xlIDhVNgA/Spe+99FPz+3wShiMJl2TRT0iv2VQiEOhLL8yEZ6JZZ+PQnqGhgwcfARBxBLvHRcwhcARAxB0OoEKM8TkgkglO57YNr6y0dxdXMBd2d6VdOgu467qrH+/+eWt39drQWadfXbSmf++D17yJAp1ww+jYeefVlI52j9pZEjkNWk1FmhRhn3IS4TbZlZqAzFkxhmdglPQKHi44fDSFo4yaCcjEZySHAISFA5ByDhDdHh0+ELoWQuI3KLWRb8LGqUTGqdQ7qhorpToEsPWhE1WZJ+4BDYJszU1XXXfvkxQ+798/PCJTVn/44cfvkKefvkk0aD2TEyFFIKG+nLVHAWInxBokjABEqalTupmIO+eGFANV6J9P5oAoHGXx8yEvepTI9faBKUnzxYXMTDianehrRIfeP/jIQTg9U26xWhN42EdYiBhvwiky2T4NTAUHpnriNBGKpPucdTXdVdVkVaFjoSVlP3Py3v6mu2Jt6LVLzylas+nGBx/au1cAdYxBo6EbdZPhFKUyD2OdnGPTgLhxpxVIiOhtqpllRohbG86ByUSbMePJb3k8fNFUIAVIudisLRg1xUeI6KJDpVaCR/y3qwsLUaRC8CC6VFHpDSL1PTqtK4fL17A97aKTedudF19+2bbOzv3LhzbPIYvfaXnq3mcBJFMaLqez0vUCqK2tvk34UPGMCuHAqSanDvGqiMixENkkuk23LuI+7Gni8AnNM9cl1OBL9OGakdqbmA7PhJfC4enexlZ0qONgB6bunlqLzZZI+pFkwAchBCyCaKpnikdT/lhjZaVt1LfriMVlQawOj31sbPeu6oa1oV8uPYdzHVfc99Cbz19BSvuZrZRslpU+3G2r8YoOMeCZTRCAxMQBSBMyK5skEGckNPlEpGRH+KBBCorJgicmn7xjpwEJHlEglebWgWzNByTcVNEJXrXse/h7QIj2mIDOlaJurcTiu0llnjoNQWSIAeG0rLigZf3F79x/KLdldmRpSY9ZZQ1Cnn7q+uM/LPjgjguvA9D511/c1OpoxYdraqEyjoEnDjaqMmygcUNbSXu7286NfpGBeFIC2n7vAHOJfJVE5OIhCZwmcblxFYAzPj4+w8f4QvPKUMdLjj0veJxMLbLwMlROAnq8iJdMHQBTMN4gijRPoDDVl0gESgKVSXwOv38CDzHN0mfxbjyrYd3pAKpYe8KaFx+45r4TbrB2UXVQbPOyM6M81ksPQ6p8pZT3GDw1sz3/qVpYfrBswufszz5TFbzoj1KgPIJVhBAea0KGh0eaWwQ+ZIFERwRQEQ6CyimgMDq4oBIZkNFSqAjxGpVxkveKyukqV+FkwfPLL19tHPBHppc2j4TDI7PMf59lhjUP5hiDi5f9HhZOBEAf0AL87uuZMFLvoLsmGoQLx8ggq4O0pYTk2hrZsLa2ozuVvsoA4VI/sTguj482GpPkhwZ8/mDQz+yNWCqWzcxkMiAKj+cWaGHXIbaRw3XlF7hisWR8HroBtquYt3mlQfNk/hoaQvOh0EBvLpbs640FUilQomhoYzQhSumPTRYVUUux5oSzrnjzgd+vKHvBwqGSCoysrc4bqvZ5G6giVSd0ocJNIAEFKohONYip++yzszWgv923VXRMjzvPB0D680yFJ5+lI/+JY60A8VQURrnWCOuOTqFzpwGZAiog8a/RHhzxHSKtGPp4MLIQDo+PcMHGR7QACEJYONGhP/8suJ3Bj5JevXB9C2qDaWs7XNtKnsHqqWUIQm2jk6QLh+YucElaTOZ5SROa0mrVAY8cHkoBIH8yuTAzk4kQMA1ns/yq8HgYP44ljMEpjZBqtqWS/rgPnfOnpglADHCUGZmfR33kI+Tr4+QDQb4ACAHk8/P9PVGxmalIJBkLVFpK1625ce8Na08os5YSAqOX4a46Oq1UcxAIH44liDTDsQKoUFfymDF9yagC6DNEeXB8HgUICAY1/cwUoYMYfCSGYNZYAQgHTny2QoOHyYSnqwGpF7PHVRWsegd0LcddX4PPAPnOHi7Z0sgSlEA0O4IK4WYLIj1u9c8CZp6IlbuddDfzocinOlrRIKS5tokG5xeUMy6Lbs6cmnbDCP9NNIchsD49alQuMb5CMpULhzPRKISy2TAaFF5YWGld4QfhptMM0uOKJSfRHACld165szORlM5bWDd5PblE6sRz6S2xvlQghdeeBBAz7npSMVm2+D+kAnbpWzW6i4hOsbOujDOCodLdW8ds9uqN9KukDltOsp2oz3Vww6opwcARwebp2f8P6HRTgVZJPut9hrJwABI+4EF0HQLaow2Z1hplAgGEtgBTA9KE4CNlWuYWlR8hRXQAigeDEQp4lkbQIHXRRgCEkWMZUpAkolBwN4cer7qdUOn6OwDSUu+g9LeVuxfw3cqbrrqqpbm+2WNvb8ZD4APLVim5O19ll+oTpHQCSaYS0Ww2GumJzoRFZQVQb+dKa8kLzXQlbmyXeQ/J+QMDfl+y99B2pt0eml3KLS3ExK8IMC3In+jcMjEdmFDqE0hWElnlL5CeCH3u+EjW1eFBuqT64InStWtDpZWjo/2jcoSVUznSgYqStBNlt/PHqVoMQNqhOjYPCD5HAzJtWv5erVQmHkRpkMlHIRIFMjBwJ1S0AIiH/zJxANJ8dCkQmdevxMBNcb1mxmdnAYSwfqNECI7CnFg6gVRw2rfP3k6fNXpJynjbDza0YZWYuEUyiIWniSS4kwo0i60R80YMWTWOrKn2krrrQiqFD5cxxeXvgVAPCqus6Tgmrre3eYUf1gxhZ+c01x3vbSCeemILk5627RzkPbK4fZC2wsMJH5M77zrUFwskBBA/UZijSAEWN4UnEgwm7cRsXZQZuZts68oqqjftYnb1vv5qCrGkTQiZ4+MK0SBTgINcXSjrggZ05md/8/lvQPLYfAIgRNyDPB8FyPCnJYSTB5RHoQBpWKI/ecHCKT5i4AivflmmGpTCR2EBDms3720uHQo0J4wWf/hxcXERQKd9++v6C4mYXkg2iDnRh1tfQHAS8L1kpny9tbWk0WJ3dlmsDPki99+F5ngJ+VDnhvAH1zKGKgAIDaKlI79RMertZPHxSMRoOrG5b9I3id8WGkilpwk4oD7Lg8tzO6+k9dj+tD+1//7H7t+ZY6OLiYO48BGBDYhEWIjkTTA5GUwOpmvIFVWNvfzIvpf7CRBxlIEDOXJGHgO2qm5Twpays8eJ04DgpBVIEGk8ecmvSIg446b6mIVw8uN0GoE/+cm6tg6BhHwbN77RUBjDvPGhwWk/QukPgKRtkngIADLYcKff28DRSvTDj58T9in49Yu7f2Vw97PX0XMAH3tDbfkbCOUiJfV0Pye+3VjbWM6gaZ+N8sByajTa3dYSNKdUhEwe5aKk4SAUjYhEAYTOyq1zy0ozEz9Y0aZj0wm/v4foQWg+GfOlcltyrFQL2czwIbowDvfmppfvv+uuQznJ0Qb8mE3WIPEWksAJKkIR0KdS3GejPZ3TD4e6u/sZvyw95HbQpPVGOUtHExADj4FItAc++AoGIG3otP7kt0B5PqYYBXCiQH8rBqIAnaT4KI9N09FAhKMBkww6gABlflW/3khUoD+aD3u/IJdL3s7AmVGg8q4caqQBLRZceDtCBePl6+/cIKFsTBx4PgFQbTkbV+ap1HOVrfZSdy1ZVrfT0exxNhODtvsInZJ5IPDDhy0WoyYB9YlGs+Gl8dkRfHqOa+ccUO7ty02nUYzgVPAAGjSB56LqtfgjOwNP/mXZ2bmlzPhMzySqU0lwAkiokkRhRYNEL2Ek+AEUyaVl9mh39dZ9+9CfvVesRaRo3Qi1AcjcvHMhxeQUngggBAU6A0Ca0N9pBY1mNSBdI38Gl9vko0ycoQKKeoGCYwrfzE1rnC7dpp4rD0iZvEJ5tdl2DAUKygEgCMFHAQrzIKzwjCtEeApzi4sFeNnEs2kCun4DgGoP15dj3sikHvGwLZLyBA9Zh1YH529aa1td1tryWnulx9Ncb62rqbNQInzkCJQANJEg580tEw6zHcaMjmymk3nTBRe09DJ5OB3AKZsKfjQ/mUhPMgmaAuIg0pPN8Cge5HlkJpyNxCWV7qM+eMAbIGyEEilA6KVg4jPKMpdOVtYxmISKBVonqD55a/VRBhXKMa0cfAQQRYnnFBhuNnzOBJCZoAPQaiEuZ/IxT5mYfJC8jcO4rVpgQKDpGHgQ2ZtS0JUHpJw4AAkf8LAAcRW4XlnYZLLKuhluAqIAsQopDbrjDnaq1+EiyHlQojz42VKwSMTFgbZIczeG2ThaZbBoebPb0VLSVtdV4iQtbfNWWtgstb7wrs1lt3ECNSmA+H0zI2I7Z0eGhzfv3Mb07i0TfVtyqWwPKNBrZbXwsHkD8Sg7M3WAmq0DXx2Izo4Ln6RE9+bjofkAfl+MTFRS/z/QTlxEJBjpCwwMMJqEbpr9O86TNscAUqdJ8hXquHPqehSyc+SZAoTglK0GlA+TchNg+djbvwAVGBpkRgsMPvryHw2IwN1RgHi1Lgai8eVAEAcuG2ENQlh9uEOHFBtNSAPCXyi4YwPO24XiZLeQZMB/Q6zvEg1zwaXERlckKTR12LByrkZPbb3LQZ2gxe1ztdfUUeN+x2GHlW9rbuaU9UImmhWNHV9krzU33ru8bRsNSGlgnetMs+9BT4iOsjCKLzGJCwOiaGRqYGogzoLZM57pGYglAxRFztP3osGfSMUS0tM4Cp0sP5qXZdhkBXsmJjd+VVy1iQF+j1cYXfrlSAF8lJiAJG7GRZGIMqoleBDtYgPIBJKXPCCjyCpvnRAVzuGG/uT56OvPhxKTkLrDyq3io6NBeAh0tEJ/qJBHd8TgCCHYKEBhtRUSSPDBxgFoFg1iYBWESHYzowP7hnwigBiy53Da7QwwJsXAJBK32+KirZjHWupy+zxW8jt2a6NrzzNDe+pdHl5bv+J0kqqb4Zd8LjKytHzbT1cyLma7nNyeFEsVFD5cYnRC3kGytBArneLL3MnXMhGCCArQxjibK/BYPQlOmoUXMhkYLVD2wNmXeENZWRUtV/iUMRccioaPMnAKEDezwBArByF4KT9bdOcfLgKSR2M+5VO72VxiUz1kARLQKlgq+vMvz8B4TMhBxPDl1V3eR0dUQLUIPixAXA4AiWmDiwpfZgw6I0rAg5swByQ0aMOGO+9gaiqpBnoO0CXhXeQIC3+7i55EdkoSLKCx0TyXCTQlVo/dTqCZaX2MomhvvLl9aM9LTktJS9OdF17ctHLl4OzCzPgIuoksD972Ez3Ktw3SY7lvkuRcj8CAC4KVk4UfKFkY9ShefHEhigaFQhIhn8eXs3SxO41EUSABtJCThEZAyoiK1zHjsoL9j/RPNjohibdmdKPIr0KIAgQfReafYdKjSkO0sFPlxgU21EfuNCDECOaswmMAkpMq3GvhMXd5QLoWSDJ9a+BDjGdKLz9qG4QYGkSsJw8IEUD0v2zZcOedTURGy3Hg4HNEBO/Z7m4niUq6u47eeL6HvTYLZ3x33TxK/np06OatlH127GmnyqNjt9XBSOim6y5urd3++chMeAT/EPz7B29b/pSJSzsHr+xMx3jLgEMAZWTRV5QAZLKaUtQyWSKqIaRhY4gQUqlMXZKiyKhILFZZtREpLuavG4qLG6iMphb6Ft1e1DynrSHBx3wouAAEGfIIev2Rmwnm6BydAqQ3P3kBDHKUZ236CMIHUWy4GY/zu1wj1QcgMXDiwmazGflQXPjUdxqO4WjLn3NzfwH0jTZQPlR8ZQAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_pm10_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card.json index 96f201d693..a90b7890a2 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_pm2_5_card", "name": "Indoor horizontal PM2.5 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAq1BMVEUAAADf39/f39/g4ODg4ODf39/////k5OSAwyzg4ODf8Mrv9+Wg0mHQ6bCQy0b3+/Lz8/POzs6/4ZXIyMiv2Xv5+fm7u7vCwsK2trZYWFja2trH5aPA4Zbn5+eYzlPY7L2tra2w2Xvj4+PV1dWQykbn9Ni43Yg9PT2QkJBLS0uIxzq33Yh0dHTt7e2enp5mZmaIxznU1NTb29uCgoKn1m6o1m6dnZ2o1m0vLy9qOap8AAAABnRSTlMAIEDfv1C6kOEmAAADhElEQVR42u3ai27aMBiG4W7tvv6NsZOQEyTjPKAUeti60/1f2WzDykbbVAMxAfoeqZVxIjWvHEMRnBERERERERERERERERERERERERERERH9T++Ons94f3557IbnH2zHZYajF12+P7uIcAKyi7MrnIQrhhwYhhwahhwahhwahhyaupBQYal/fT1EPwdGdxhe95+mDklNSNg1Ibz2XTIdtX8CixlmyeLOTeVJhB0EVVMrrGgdopZ6fkKoe6o+ZN0hH7EKSXCft++TYXuKIRZuSaaPfeygKZYZw6tEAtQaGGzoiTEP442Q+g4XMmu30b5e9PtTIJnByof3ObamxQTjphg4yrwZcpM+C2lCSfOtkGqi1x1+Rfyv+2k0xWjmbqnoDtd32FpDeu7yRMEayM1TiFJ+b4awgp6CG7nuwE36GSgdwJk0jKoNCbRfeNexEfJ9gSmms/ZjvsDj/WyIrfW08iGhv8qP5neIkk/+vkvtsCsiA2nA+maAQLpu5qO7Nr93q1SCmpCgYU92JV3Ui7Ar7f+GMgYvhQykqyvjQ5SkLkQmvbmNqHrGXmE1ByR9PaQSx5cE2C9lZOxvrPFLIUpEAT0fot2JgR8a0e7xV/tjHqT3ekggTyUaexUaf/OOJcVLIf66V78b3fXQnandUFU6rHv6bTyVKOzP+knRSFPrG5kEGyF6HaJEvxDi1e0R+V2yXwOZLK98pbER0pPVMriHaosQNGUpeGtjR7ebE/+w/yfyFU4YOEaqMVZdoYtMEd6IWl2yaWCbEMzFMcBaaxkT4baEl2XIrmI3cYUMQKffQVaWywOZO7NeJfIjtTSsv/aImOZE3L6Zu9GDNGyB3ipktSZ6I2Q0isskie2oQFEWedYq4tEoifPbOM+AuBPleYko9gfiJEetVJbS5yE38tDw83ORB/c6MpBwyxCoVERthHyOW1ESd+JlSOfzFzu2c50yLhIfclWWNiRpdZLI5hYRtuD2iH9Z9+zIPdGadIf/flWAP/XjL0XcGiVF5FYkzsuiFbWS2M7d5p0khgvJ3Ip08r47MCoKbBuCleqbQmBE7/WNVdnB6z4nX+DsGiLOAHsNybK6gxG2FjardVQznQd8q3u8GHJoGHJoGHJoTijk4gQ+ZgeiC/uFgRP4oD2zXxg4+3A+vDx25+9P6Us1RERERERERERERERERERERERERERERP/JL+y8/ulGq8beAAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_horizontal_pm2_5_card.png", "description": "Displays the latest indoor fine particulate matter (PM2.5) telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card_with_background.json index a22d207dd2..8f90d8965e 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_pm2_5_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_pm2_5_card_with_background", "name": "Indoor horizontal PM2.5 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_horizontal_pm2_5_card_with_background.png", "description": "Displays the latest indoor fine particulate matter (PM2.5) telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor horizontal PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_pm2_5_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor horizontal PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json index 887b697dc6..dedb31f163 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_temperature_card", "name": "Indoor horizontal temperature card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAt1BMVEUAAADf39/u7u7t7e3r6+vl5eXf39/x8fHw8PDr6+vf39/////z8/MjTMc+Ys7j4+ORpePHx8fk6fjPz8/x8fF1j9zI0vGQkJD5+fnV1dXCwsK2trZYWFisvOo9PT2tra3n5+ft7e28vLzy9Pvb29swV8tmZmZaeNXIyMiCgoIvLy/x9PvW3fWesedog9lMbtI8PDxaedWenp50dHRKSkqDm+DU1NQxV8q6x+6qqqohISHd3d2dnZ2F97sdAAAAC3RSTlMAIN/fz6AQ7++/MOBJYlEAAANbSURBVHja7dppc5pQFMZxbdP1cLisIiCKiLjvS5O23/9z9V6pI60NSdWmxnl+GQNceHH+IyGTiRUAAAAAAAAAAAAAAAAAAAAAAAAAAACAl/S++sq9ryifP2mvnXNXrVSqH+kGfKxW3tFNeFe5o5vwtvKGbgJCrg1Crg1Crg1Crs1th4x1djv034xJsmp7+0k60X3n5959FI2p6JEQXZ+yQQcNqUUlHJ8uZWx0dZJc3qvRjqUz67uSSZcl3SKpNMRiw+j26EC0GsIhX5AQpvBNObfcJ8ck8n3HMQU9rIUQZJIvv8vzp5ss1IgkRe5Oj9minUi3rO6EiDbMvc1U5y/WM0JGeo8KzAZRY7A2vfmguWoszbU3N/35oEHNzG9+n5uDuem16Ks8NAerbEknkxUzGXLgsks5Y0a02BDVmI38DVo8I2Tc/T1EDL1s4HnUpJYnD73lKvOGTlOeGzRbciEPETT0VhmdzKiRUQyx9m+ICphO1cH05/kJf+k8HTI5DmkK4RxCVsvBUgh55Ayd7JcQdXud4dcQlw9z3Pem6sely0Y+pWE8I4SOby1vnZn7kGG2FmKdrVTIPBu2nHnLbGZDFfK92VheLMTSOaJfjfhoqSREX3CPfucUupzCgpO/nMN1FwuJ8v0i6y9CxizN6HHCozKXC9E5OidkxsqEznR+SKR+cZx+a0WsFJ8JbfqjtkYF9bp8xSRdLERnl450eUPK2HU75SFTzt3TXphPLcfcbuW06ku2te1YbupJPr7/oC6waXdKa9fzzLNCIvXsPeLyl8O2NMTlXK0YEtthPbRFv08UaIH24Pe/9YPYF0E71ELbJrWstdSOLRIt6afbflI/M2TBLh2rMW/UpsvuEyETznWKId/sUEv7cZrmISEldpzG9jahQM7v70LatqZCtmGaxmlCdnxWiJq49ucLuLvQmXXriZDRjBWDDiFBP01aWhj4cUCUBi3tIbDjIIkTO6RQS2yxC6mHfRki1+pJkPpBSOeFuI89OSOdZYsxotIQVeJ2eRZRmfIh62lf0L80qln0GxVygjaV0tr0sm79L8TXCCHXBiHXBiHXBiHX5u52/j1d/UA34IP66MOdo712nz7f0odqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7ID2D6pgpcp3y+AAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_horizontal_temperature_card.png", "description": "Displays the latest indoor temperature telemetry in a scalable horizontal layout.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json index 5295d4bad9..538b04fd51 100644 --- a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_horizontal_temperature_card_with_background", "name": "Indoor horizontal temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_horizontal_temperature_card_with_background.png", "description": "Displays the latest indoor temperature telemetry in a scalable horizontal layout with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"horizontal\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_horizontal_temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_card.json b/application/src/main/data/json/system/widget_types/indoor_humidity_card.json index 621dfb8823..6df9243f70 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_card", "name": "Indoor humidity card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_humidity_card.png", "description": "Displays the latest indoor humidity telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json index e9f5058ed0..ee9dc3c91b 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_card_with_background", "name": "Indoor humidity card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_humidity_card_with_background.png", "description": "Displays the latest indoor humidity telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_humidity_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor humidity card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json index 74448c77cb..703964d275 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_chart_card", "name": "Indoor humidity chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAArlBMVEX+/v7+/v7////n5+f7+/v///8/pxrv7+/j4+PCwsLIyMj09PQhISHOzs7n5+fb29vV1dWQkJD5+fl0dHSrq6vx8fHt7e09PT28vLzn9ONYWFjh4eG2trY7OzsvLy+HyHC33qmdnZ1KSkqenp6CgoJvvVPz+vGf04xmZmbP6cZ7w2FXsjZLrCir2Jvb79RXsjetra2Tzn7JyclGRkZjt0XD47gdHR3D5LhtbW1juEVSdXwnAAAABXRSTlPA0M8kIF1fR+AAAAfoSURBVHja7NZpU5tAAMZxp9OH2YM9OBYIII05aqrV1t79/l+su0QxKc5YnNm6OvwlArtv+GVDyMnbE7yC3rw9eYNX0cmrWA/XDAmtGRJaMyS0ZkhozZDQmiHQBiH1AMTUa9xV1QApCY5a72ArWbWCZgikMcSs4niQ5CVAYmIM7EZA4DbjdqZkhpnNzriBABZnDMliG4NrgCQZ7BaXp+VqVSKvkXR1zFipT7u8XqPO8eyNIHm86067cjizDRBtYo2Y5LWJCUoLcaNntZXi2RtB6ljvyO5uSY5XhNith5AYA8R06xrP3wOQU7KJ4xyuAbLD5hBiOobuFoI6DuCTNYZkMcvaJNawDRBtb45DCM66sl8RFm/sK4B7fQzRXRd3XYa/MqPzYZ/vEEAjCEgdd4nBP7fuArjV558o4TVDQusxSFrgnytSHMcF/DQdwivVphilMU5DcBxXFfDTdAgrUHAG2TRVQWmqheYtY8VnBUjKGGVwww0TTfNZCuqunDNacCokwHPlDnilMSUvELr/J5WSqCCZbHkF2g9L5Q7saSGU7MdEIR2QFVwXqAC0SKWiHj5g0yGiQMNvIRQFkwWnIwi7g3AH4cUXJTgYHKQRPAxI2goKTas9JK2E6iFCDxBNKe8nW7mHSMYazqiAg0gqwoC8nGZIaM2Q0JoO4ceHBcLoEYgWgGJwCeyj2JdqLvpTgRB6BCLaFBW1ngYCQvRXrkUqOVTaWIgWVT+hwZmQ8N7TIUIXikLxCi0qMA5QLrWSdie4kAL7CcqrtFHw3tMhklFOUakWLSiEg4CzO4hqQPsJylvIsCGagqbtIURbB2M9JK2afsKxFAsZkqZwf7ywL3CkbogXgBxNcKkb+M//c4Qzgf/d/EAMuRkSWjMktGZIaM2Q0JohoTVDQmuGhNYMCS1vkPMoit6h7yK6bwkv+YMsonvI9iVDLg8gH18w5Dw6gPTX7zdfkEW0hwwnH+A3X5CtRQyQD/boGk8r5SnnuM0YAJrggTxBllH0aTFAvtsjPDFT2NBH6pgAWc0AlmOUD8ji0i7BPeQqij7iern8ucDkJLHdmkhJUGWaAMkZGVF8QN45wj3kxq7Pt8h1MZlC1EYpt2cEsJDNalcanG3WBEd5gfQfrAFy9Dz8eI1pKZ1pDaBNWA/JcreBJMmxxAfk/WX/bTtA+ufh9ub83WVkhe8xqU3+Nf+Fvh6SZ2bFgCRBgoO8QG7sZeMQcr28uIIbcZIrTMp8/XFKcNvOWFm9dsM6aXGYB4gDLAbIUR8iZ5woyQgezQvEvu3neBiCb+77y0ceIOfuXXf9dnfEdvsdB7mHJDzkA7KNjlvioIsXBPnTzp3ttgmEYRhuVX3q7DMwbGZxvaRO0zVJ1/u/spoJUWxTTANGwRaPZBHhHOT17xkiDnhXC1l8+vRpBqf6an25/rrZ4ISGCNnMKjfuAjjbuCV+jdKsPFXGzq6/zNBBRhU4U4CRUNjhQobxtNg3n7dzmJU/lMtm4SZys0AXvlZgmgNSao59w4fgi/vv5Pruc7n84bxfXG/wXDLDNiSPEh+ITIZ9w4e4nazybfaQ9vWu20zKiUD6gJGRxo7hQ5zFD5fx+XEMv/Hx7gYdZBEiWRb4ynDsGDAEs3KlP5r9XCxuNrt7Ak5quq81PlPI2EwhYzOFjM0UMjZTyNhcbEjEImTMQEqDs3IY4isFBskpRvOgkG4hUArUhVCclXqIm4jPqpCcaryYnKEJoxS76iGRgpYGhhmUKF7OUgixsuuGmlrIcRleTCACsKVduRpy/C8b8/ZbdjgPNauAoNmIQwLhYQdZFiINQjQYb4gRXu2ULYRN0KBfiCVAu+WVtw4YI8/pmHtAHbNFbNnpQwIhPLRh6dym6SoWq7Bnh5NbEVtz4pDYC4qY4BjyQXgPAWFh0cJ75DqahEEqYnLKkKAAiD02lNCbpwQVMvdaOgpbWeM4EoQnDCFxgK0jQ0niguEJEwxHMEHQQf+QqwJO01BYejiC5ZygEYk9tOoeEr5tYn7dvq2si8Icvp1d/bLZ4cn0+9tGf2rvHcdPNRFrsdU0lO3iYKgJiys0WBYEHfQPMYKgUl8pLC6Chn01wD8R90aLQUJii0ptKCStPaCrdZnEFl30Dwmqb0J9KKEnUoJGH1b/3nlDtBsipNpi6kNZzlcMjdwy6brz9gxhaSUIdz9BOLWhzOdrHGcEa995hwgxXqWILdm/FtaRZYia1mViV+ig+1crSEX6EGAL9JCmJ9t520MiyR+OB6ugiAMCIgy6c8uk/86r/i+EglbHfWFQCPvBohcm1uRJx52XPi/klmocYLb3HrMUOzrtvIz+Zwg7+xt0lUQlOCtNIVA+zspY76JMIWdvChmbiw3J8MTHHhXtnc04orE87gz1EArAV+XL9xP/8SlIEQcirbA9KobyANAcWj/9tjvb1UAhSZaUL55ngNLI+W2Wg2aJyu6Z0glnWZlI700Zwu+N5EmWw2S0a8lQIcYkkCwCRRVCwXgOrTiTmkvkkiqA8kRqwJeaKg2KBJlGNwOFcIoEGnkV4rsHyvoUUjGeuRD4fhnC1xrIMk4j6UJ0hm6GCGFS+oZJaGncJ+xTKfmtNIiYjDhjCpJzZgBoH1oBPjMGRuaImEEvw2+/nKKFNPcYXP8Q+GjDcWrTBfHcTSFjM4WMzRQyNlPI2EwhY3M5IRdS8vrVm9e4AK/e/AX6T9igU1qTRwAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_humidity_chart_card.png", "description": "Displays a indoor humidity data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json index d0250a4bdc..2c844f8e2a 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_chart_card_with_background", "name": "Indoor humidity chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_humidity_chart_card_with_background.png", "description": "Displays a indoor humidity data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_humidity_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json index fe33da9152..12d4f4d85b 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_progress_bar", "name": "Indoor humidity progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OA/pxr29vYhISHx8fHn9OPHx8fj4+OQkJB0dHQ9PT2srKy6urpYWFhXsjfv7+9XsjaHyHC33qmGhoaBgYFvvVKenp6Xl5cvLy/z+vHP6caf04xit0TV1dWpqanc7tbLy8vD5LhmZmZLrCiTzn7CwsJ7w2E8PDzc3Nzm5ubU1NSxsbGr2ZtKSkqpy9RjAAAABnRSTlPvIL8Ar7DvmsykAAAD+0lEQVR42uzPwREAQAQDwDiGh7/+S702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in9061nEQBqIo2r3iWTNjGzrLckPjhir//22bwK5YFBJTAZFykWyQqyOm8NV6A+miW7btzDDnKVAvOKE2JFBxr6fiRY50CyQzAZ0p9nUlCIYBCwTi5pddnQMRG4DBBGoiKQ2YFsAyAE0pesp0bjf6OFgHIJtDo+MhxghEGoSBhayPRQAGQAsfj0znoTBUxwIoRzQ6DlL9vbCGjIo0L36G9DToOEN+R6ufvhIaHQcJj7iGeEBYAWU/Q1gA+BUk06Yf2ei00VogfoHc9yeIY3C84X1XgziGJwh6ZkY0OgOSmYG8CUGgA+oa0rE0J+sUiDDkHLYhxhCNC6R2gCvs0egUCIwsdRuCRI7pDzKME8EfOlkLpJ1T9+YM/1I3QRR7u/DtV4UVrT4B0rMoWn0CRKJDs0+A7OgL+UJ+2J9jFABhIACC3XHFtaKCRfD/j5RArK/dwM4PZhdGaIzQGKExQmOExgiNERojNEZojNAYoTFCY4TGCI0RGiM0RmiM0PSRqopp1DKCqI3cmUdMby5PEHWROv/ItXfkY78OehwEgTAM3yaf2bkaIeEgkBCD8dT//98WW2jXw1Ib23Sa8urN0xNhUIUCMYj63EQSuwOZgJghXuir2AcZoIYMiVhIcHWIQ88FAswkdWTdgzCgKUMY8BGAYrokjFSFDFBUIBa5/iJR3gQSVA3iAL5C2MSZKfg8fq0huxDL2f8VCAOOCqQ0RmBcIYqCISVnFFcgCyKnEoR5c7CEFdRP86wViel/yIQ/bdabpRS7ExsmMe2GzErR2pIhKaWtE7O2anskVZbWDTAAY37uuddek4wypNJt/PaWWAGqPGDtaJKyTXZDyG3PETo50vN6y2g/hPQAICqma+OwDFL2e4bsK9gw0iY5315f9M/+ITWItBpEWg0irQaRVoNIq0Gk9QUQNjiUD90rehzicTDTvaSHIThcl/pJ91OvxyEGB/NnRvf2N8IehzKhSz0d88VT68NqEGk1yG97d6ziMAwDYNhp7/5ibsiBQYNCtYUshjR5/4e7a2nXQrpYTfWDd3140ChvBcRbTyC1t0Ljch0BMTO5D7QdIirYTNOyrgqMlcmYNcsg2yHLGUrzLxEFVMgDdYVx2g6ZRjeQ39srJSBeICowUF+EyJA5L7TsAbGZxZgN9LIdQtHeaNoDclG7Cta+L7wAIWe8JPeBPnuzv1cB8VZAvBUQbwXEWwHxVkC8FRBvBcRbAfFWQLy1I0hiF53SYQenp+HnO3VpB8en5Z9x7L5O7146dMc/B6Inq4uieH4AAAAASUVORK5CYII=", + "image": "/api/images/system/indoor_humidity_progress_bar.png", "description": "Displays indoor humidity reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json index b307fdaf46..be9a0ba32c 100644 --- a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_humidity_progress_bar_with_background", "name": "Indoor humidity progress bar with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC7lBMVEWCfHdSSD3Dx82qpZ7r3dX5+fr3+Pjz8O329vfs3tb09PXy7uvy8vPp3NXo29T7+/zw8PE7kRz08/Ps7e329fXn2tPt7u/v7/DV0M7+/v7l5ubY0s/x7enb2tna09He2NXn5+jg3Nre2dfq6uro6erg3dvk2dHg4ODj3Njy8fHw6+jc19Xg29j08vDj4uLg2tbq6+zh3t3a19bl5OPi4eDi3drt7Ozs6+rd3Nvq6Ofp39jc1dPd2tne3t7VycHo5uXa1tTt5+Xs39jj5OXr5uPl4uDs497i19Hw7OrW09HX1dTu5uEeHR3l4N3PxL2rc1GhbEzq4dvw7u3q5OGpclDj393k3tulb06jbU2ZZUfm3tmfakqcaEjj29a+wMNKQTrQ09a0tbjU1dhNRT3n5OPt6efn4uDn3NbY2963ubxHPjbv6OOncE/O0NPKzdCtdVPTxr/X2NvNztDFx8pRS0aKgHuBVTvv6eewsbPHys2Wlpbe1c+8vb+trK1EOzPs4tuFgn/d4OOop6fb3eDXzMbKysyDfXp/d3JTSD6NjIvCw8TFwL14cW2CdGp+fX2Fe3VbTUI7Miw2Lip+gIJ2ZlqSkJB+cGXQzMnBxMjJw8CrrrGmqayJhoR6bGGUYkScmppmYmE/Ni/g4uTY0MuDhIX18O2fn5+goqR7enrLxsOacFjx6uW5sq6RlJaGiIqUiYFvbm7U2NyjpaeOhIC+ubWNkJKHeW3b0s65vcGzrKZ0c3OQYEOanaBeXFsvKSWUaFCmnZeXj4lfVEpSnjfHxsZ4d3iak49WVVSVmZzLtqSloqGupZ6Ji45uYFSbbFCzm4t0bGaadF+elpRkWlM2MzLCvbm9p5ZnZmakg29samiYblVoV0vh7N6sj32SZUyIW0HFrp2fe2ZRNSeSiYnSvq1+tWs7OjptSjViQS5wZV6RgHbc5tnYxbXKvbWjmI9qqlOfxJHU4c+vzqTJ3cJeokSPvH5GmCqTemmIcF+71bIzhY6iAAAABHRSTlMVt7e36sQ38gAANSdJREFUeNqM1m9MG2UcB/AaI5KmL5p2uZIuIH9KGjKcpcUCEYSlkkgTfaGZL0y8Xq+4XJvcxbuDpJ2FrJyF2rHQKVDkT4BqmCQkyDaJGjXQIGYQAqFucSEmGBaTLRtv9aXf52lrNfrC75aNlWPcp7/v7zl0Ot3TK09ef+/Td167dKm7++LF821uxmIwMDaNU5NsMh6/enVLiqvJaFSp7G554403WlwuV1MPn2H05eVl5Xq90WFzyFNRNsoGlZg1I0eCN24uXenzBQJ99xcWZi+zMsdpHpvDbK62eaSvZnLZHJLyXf+e5qOPfupbGB0ZHh4eGT14uJDLphKhwUFfIJHK5vbG5+YmJyfn5sbH5649+mX/zoPHDx48uHN8797+6enm6ti1g4d7uYQvFHpKh+zsfr1y+8nL77/z9mvd3U1N523mPESQklEC2UpKohJXVYVrdbW1uNs6m1s77PaM1WLQ6/XlBsYqeLSpIMuycVGL2axChA2Hw1f6AolEIpXKDi/dlBQhlnE4HIwDkJmP+1JZJBG6/hFCHL/9eH+4f3Z2lkr2iAQhX3tEIHDkJb+v7h8/ePwYFEj24Xi0Pkku98G9GMI85g83dr9+8voH779w8WJjV5e9Gt/SwpitvMoSiBRXeF5BOL7Sbu20uuqdXq+30mYwWiwWo8WmSaqS9Cd5idcEQau2xURWTLIf5hJIXyJ1ZfrbiBSLeRxm/KcOD+efP8A9phKBQQqB46fAd6O3TpD+sbzkKJvFFXAUIAgg4388+uXencckRHK6+Wj92tzDHN6R0ODiou8p3dLQISQrT9779KXG2rPpilarDTXAm8dNRaOsKikiL3OEIWhaR4e9o9WrpONbkma1AcwwsUgwPDDkF7gIx4mKbMVIOEFWLt/PBgKBVF/qQ/9llYt5zIzBaNAzVlkKzucwrEBokTLIQPoWfjiZmJggECpBjhA4KOQaMklH8jMdCZ3Jvf1VAtnLpagjlN3T+cM78xtE8vLZc1Xp5bTTnkGhbTYPJpJUJZGTZV5UOFnLZDKazPO8GN9io9JaLOOpRu8FOHaWBtStqfhUMChmbNV2zeMQdiZmcwHccPZycCYpeMxGi15v0BtsMicFJwLkm/81EN+PC5+fHG5vn9wazkse4u3fI8HfxLG+vn5tkozkd4zkQQmCF3PZACnWYOJoT7cS9Q9RyAdVtWcB6WnV7B5bdXWGjySnVJFHFDIVzR6zayApisoGWYlbE7RYLBPj/QMDA0NDUYlTo9MDrJyx2rUMI/jZ6YMAkp33R5Mxm4ExlJcbDAaHvMaLwYeDg4PXr0NCBxLAipwcHm5vAjI2gjc/n3ESFAsMIiH/JiOBpAiZRLNSFOJLEcjtq9EVrPvrnz7X6uxJLyu454zVarVzEVWVwOCUOBwykWgyh8SxOxFF5Pi1NU5Vk0E/uhWMi8kwPKKsCXzMyvnRIBxcvr7PvlVFD6N3AKK3GMyCgPlO+PDNASEONOs7CjncvNU/BskkQspEQORDKB6t/w4IHQmRwJGHjO9lyZG1GEpgn3Rf765c3Vr+5JN0VTsg8a0tRdZimYxH4yQVA+HggI3neFlAyfCnJshihESSJDY8PRAO+/3+KBYqOB1mRfgE7NTMl18kMBBf4LvPwhGBMZgpxOKQBWFtLZxDrQsDWQz9BVktQmibYCl8SDM5jqr98esv947v3AHkeP9RHkIm4kvheABkYyXtrUin0z1Ob8Xy1WQekhF4BRAOVZLAwbZzPA+QDI0oShE1iQM36g/PLC3tDPhZNhgOB6OsovGcJkM4802WQvr6sl9My2YjqlUGiEcTYjI/NYyJUMj164M+QEZOtre3MRFaLToFKkGKDkwEJ8D4Hz9TCSYCyDVAUhjJYCKFE5tAdpe9XWcrIPFWxJNJhZYfEFGVOEWKxxU8RiISWRRBJtWgL06xUYQNDixdXgrGk6x/aCAYTXIZnMHo5NTSQvFpkBpditkcFgIxmmOaFtMUcT6AZhHH4iIgufsjsyebJyeAjGAO5KAqUEqZJBAq2SeSYwJZx0spsiQBzMWn28Wm305XEEhFj4jHX1y2Z+x2DROZUjgpDogCHqokgqFpoKA6kSSrknKp/pvzS36Zl4bmMZioEovFNB6sD7N5RjaVm7gc83gwEb3RYMNnPR5VvZFDtRA4QoAsjF65hdCBwEFWvHD7xcwRB54uR+NkTSChxy9OX3Qq4PNhUUK6U0BW7i6nSXDLW9G4nPHAIfARlXZIjZMaJZNxkQg7OlrtmixKmBPZGjE6fWNoJhwc2Jk/3AlH44IHx90Ue3M0RUMHMq8JHuyI0WG0YdLW6kj42wN0C4pBOAJ92YWDkf7+fnpmAUJPq1LGacg8UglIaLmOjwlkDKcWkSQCmEpIt3mKB/vK3U+WicNrazCdKS8rKys/ozcZTCacmEb6BG8wkNefeeYZ8rl8yhBsMJ7wZndLHeJmjA0mvd7U4O5sbnd2VVVVdXXV1ndXuxvO4CuLKTtjMFubnN6eQrzeLmdle019E1JfU9PYWPsczTkaZxdNFS4/W1FR0VN1rvG1N1+58O6FV3o/WT04IJIUKXEgUYDcvnt1Gadsg8mkJ5ByAoEDEjiIpAiBpOCgoRAGEsTNWBqInKlzNVXm7+Bce/35NrPh/0Dq4ShAoCg4igziAASSc41vXSKQC72XGvtHRikFOcrqTilk5fbtu1uizQQIbpFAwCCOBtwnwwCiL/8XBB/jOkMDJGa3221mGJAZd52ruRUQ4qhtb3K1ubHoJUeZvsFs7ShAvAiFtNZDQiBwFA0lBBg9UBBIV+2Ll968gHT2di+jjKAg4+NHOuKgWYnGTXQg+cqYaAxwFCDFapVDmZcULixg3cCgY22dLjscTid64WyvaXbVYdH/5sDS17kAKQYOQDASpAB5Cel6CQjSKMrIK2i3nqsh3brQ1tnrqsFmgTJKjoWcbmN3F5LdnZ0h/xR1FCF0R8jbTVKsVr51ev0ZYsmPjkpov+qI4nxzE3VUVlbWtrc3NVvrLKbSQEgXzdXNrc68AQikBCHNOgcIUoVQBQXQpPEL3bp46ZW2trZOSPqR4ZGRMTxT9gBBNvCzzvwAC0jJQUJ2nWHMgOAQgARVQueeb4ARGDIbqDA20qiWAqO+veAghbGf72wx6gEpORibqwNXFEKv/CeEMkjOYi9KCOpAt9qbunvzkF56aA8P31pdXX+o29g43TjdXp2d/XAnmh9IORxFSL42ZqyxCRKyOg3PvkFipBiEzIMyqgnD3lRDHZTRWt/U7Kp2/23XyYLYUD16RSntpWoB8l+OkqSrtua13k4EkpMTAukHZOwAy769ubk6PPL5lRtBU/FdhqAooZCixPT8s6+2vPvuu3V1LW63xYiQTuHwhQKMZpw8gCAFh/28tY4xoZPFgZiYkoMA8Jum9d8Q6igxCo4KrxMjKUjwc83JbD8gOL/+5Mv+XpoKwziA765YQqLiwtLlbOTaah1tTsvQYifI3gVuzAvBwlhCREGhEKekQ5By2FhXw34MNiicktmodaGUFFiC3UgswutA6KL/oe/z7D0eW9pXNPtB24fneZ/3fY82KF7TN4svGFLHTU/ZCumojQBSQ46roWg0Gsf/1NVCixsNRaUA4rDCcXeypLOz8/RpxeosrC4avZ6OBnawFMGXsmMbCGIiLAr1VnOMJGivbDb77ctP1OXR5JrtNURvMcUWMwSh0MIA5E6+gSR38sdouKKXyo7oSBiJqWp7z8EXL1AIFXX4IcY7l3+MmxIEDkU5TJ3lAQQGDk8sbj120NClX8hhTa1KiGXhudXn7UbHxgmyimTpvDkGyNijsbdjybX1z/P54aoa6SDJhrhFkBXRVwsJeuuop+wYCLQGAu7YCbVNiD4MfzRITow3ZsSioqymlpXmTukgyKF6LBEJQWc5Wo7RTOOSubeEIIpiQpoqITJyuXupJOiIlge4062ufvz47eejJCAT8KyvpYzpYe6nLRBay4DUU0UcHk+E+io82Nrq9/lwpojFikVe2r29OfGgrXt8nxJDaXhfw18ThIevHNsSgopQeAuk+snwb3asCCuey62EVglDgrgL3cH19Ovqt0+PbDS/kr9yhRfp7FMPSzYhjSbkWmY54niYKV6d0ucWksmif6FQKOK1UxnseolCIU2Q4dS4krosfmjF1Cre1nzqvHLiWE8ZwiOdjgHVQawRchBE4WwLqZQ8x4esCErS6D7R3tMVDM4NF4vDcwsLuIp8so3pgORynw1De+bBTKWlTpAaQLDwAbnimBd5R2RV6KE5URJLQqzQl3Fftyh5vYklgQ9A0iKllJZE6cN5saQoy6KkAEJrXZ4BkDpM34PH3NaYYkclhHrLklSGT47NDOnAEfF7sTiHLHy0JScAWS/o6VcSQhscdgn7hsgVkA3RVz0vVqsj00KPAjI7lBSlhLMgci4vQUbF56bvJQlBa90Jh0fRX5pYBARH32qMdAQSPiujtw43S8hfURDaEf0S8s8E5prICQwIOqujmEBAAWbBtpac0Cdm9FeaYeRRCC4JUgPIBkWINg8gkT1lyI/BoQWx4nQlxKiXIWIJB7ucBZlTVUOkYqNiWVFi7V0YWpTN8wyd8d2dBNlGEqDTLxxWSbatCUNo+n9PJJ5AQina8Ng1YxhpbV7XNb54cHBW2RCdeGFMrbYqQHZJSG4IkJzT/0RCAMLpbitkZKRXlPrEZUVC+FazKaGSKChJ819hFCBugvAiqZRwPczlzhBsyYknSILz25bUMwRJ6zOpNJ3DeaHb0dgE4TXSWGNUQvw+QJwEmcInTy2vCYnH46PCEBoaJaYCQkcYTw05+L5WHYyfcPt83YjPjKTwuGMIZ8eanMcaiZchs7Msgcc2qWd03dDSqRldO16L8Jkdk8aC2DWh7dr1RejnTIivGRCXU5SczpKY8vaulCEBgmDbf4DVP4tGUdSeDofHUVvrqKqTEnsVeosgrs2UJeyQY6tSwpT9/0AicCBUltmLtmRyAk/C0wY07w8dOtSCJ7rVtIdthdwTG5q2ISF+hsyakBlRSs+IMsQNyIcHoZB3SYyGAQmE48GIoz4YrPXYzZJURbpUQFxW/OWicEEsCMeSyLBoe8ja2qRmZAxaJtMNDQfpCXY1GoEhdAwGpK7OEGLpg9D7F8yKBADxMwTzS5QKZkUwv1ZCodC6yIZjeFcxFa8XxICh3UTePAnCDieHJH6CBDYh3n8lDDAhTW0WhB3UWoBMpA1I0tn8u/aGBpSk3rxA0Lyk1Nnr4r3hlxfO9Q8ODg0N4WVxRuFByZlK8O3U1d2sxMIjUy6GTAHio5J0UXBLrISwQ0oYUnbIG0mlhC3Ssb+pXJEIIEShNTILyCQvESP95s1ie8PBllrZWQgvTk7N0T1Hrp/rPzk42DrUKh0+vynxy153wxHFPXRqTnygI5nPFxhQR+I9OE7QkxSG2AkS8DMDfpZQSSyIayfIfhjgYEiMK4JKoCKAoCi8IWaymqE9fZMjh8ODpQ7FXnwCgpBj14Hr5+6fPDnYyglIiBmW4HgFCN2nsfFPEYQyEFZVHIyCDrs5fxnCDIQlDJHBZHZ5t+stySEHnglJCBOwi+Ab2ySiZ6dfacP5GWor2kJQEFkRy3Hhfj8gkODNDdCbNCW0UvHJDpUhc1lXtAxppX+LP453RWrk47IKiFdCqCTMQCzIXUtSAWnvIQg7ikVIAEliS9Ty2vSla29wVudLooTQ6/JdFn1FDobgndF9ZIAlcuAg5FDhIMiZUEie9okNeAxj2LMzRC4SclRA4NgGcsrrw2BHSdgBCJ7K0WIHJJufHr5x8xLvhLtJIh3McERwer/ff5Yhg+GwioTDXBQK7iYIDvXqCDsIEmUIO9CJ6K+RLoedtxEL4v0PpPc/kKZNSJBaquxYfmiDYyYznX32GD+ZwoCCg+675c2LHz7UB7tCUZSDwo44IiUy7MBSIIcsCCBUEsZAolJv/b8ibtPRiIpYDk4FxAkIxuHVoglZfnj7D9/299NmFcdxvDdaY5eIg0hs/FGhBKgDW8AWzAgiYBoJFyuBiyU2q1lhxECixFAaGisJLMVlXjUh0KRmmWWJoqZqomQXGn/EGC+89Q/wahca/wLf3+9zTk9L1Y/GMZDS177nPOec7/NM9lrsGPO5De7PPGqDB4a0eTqjE1NzC1TCQpgFHPuRLC0tWUcsxnkR4Kw6HIQAgcJlWMaWg/RYh5sjQERBRqTDiMGl1SGQBUoyQX9U875AZM9YruQzQNZlaOkeT3vR9Eei0XBwdCzGu1ldFQYQ7Y7RwXKSPj7AMaqOra2taXVoRUwoyUq2o6sVYiUWQowDiDOQtpHFlV77D7R6JR5kv1Jmf1Jd2+aGq5xDyCD/7aDLEw6HgjNj7FVfeOH111dXV3FIQSbonExcH52bA9CnjDkYo1NT09NZHALBoRAnYWzpJAGSXVnWJcg4WiE4LMSlHfJcTIa4NnvpwKcFUmTnWynWcofX3j7UHSPppgUUFcXoMDfWn2aRsBIKks3SeZ+YMhICQvtME1kcBqIOC2ERHViYSl0EwsrenVhZvtQYW3ZpdxAc2rhukViLg0gfh1s75JtPmCMbPgpSLpZqu+nN9HEonICCojPaC2OYzuGk9qOfBTIgFbmyOJtN0s7KIrmOhDUCRUh2IfTtIpFkBIg6miF8M5OE2S4Q9vHNENLsAPIaDsJ7/tcpAkRXXyQ/cSvh229/yX15wFWrVJYpkq/lMvW7bFGQSOuQcoyqQ154ZORZJANM+CsUJJJMpeinTEhRZExJO4PE40kiEF1EBILEOoAkLrRAkGBRhx1a415B1OEkOORfC3ntmZeBUBLm5Wff/USqBe7l/+DTfW81X63XT38fo8PJiSQKIxicQaIFoWtOSXBcubK4OJ1Npvx+kWS1jzwl13O+JxVPpQKBQDLJyMKhEOI5kCyvJAYbkKXnXqAkmvaRhaORcxNFabTwn+eAKXPziy8+Iz/9IhIfG9/8ycnP+ZP7dz+kD8UuvjccDI6OCmV4jBnSgFx5lWVCHYMdft4yFBgssJ1U8YkUEGIhOFohetnS2yPx6wvP2ZLgcBCpyEgrpC3q0O49S5c0Sd95h3nBrXFfpVg+2a3nq7X7n/4ukEQiHKIWwwwzKGNeSUZ6Lr3IBWtaHCn/4OCg3897jmSZGzKopCLEVISRteQ5li1kAMhEtwcZBPKi7NN6WiF9QNwUMfdPbKyCmNspsnbtv0M+qFR3C5k1Hyfc+vHxyXG9/tUZkFCUgtCSHgPC5XdG7j4RGsc4mB8BCqJBoo35BBFMPJVMCg7IwvKSVIR/lgesBAjXX9n20EcBgoSawLAQlQBBQviR3MpyAaAIYpt7vMebH+xzL7iS/+U4l/F9XsmfFApHueP6V/cEwi2C0TGeZxqWMxYfM03km/sWZJ4HAkJwkkgCCzequKebsJN9VgsiEiBuaMn1VyEX4qyIjC0kjQhEG9pK4ee1R+7kmRblJL1YMje8f3OfVPL1o8zXvt9L+dru0U5u96R0j8kuEOb45KRMF+Y9EnlxDq2cAJJSjoCkIdGJYlYRHDpFWPMdxKwjQLydvB5IltshOGL8WCw3xp8eN7ncknECon9seJQ5TL46ZXP18/2jtfT2OpDT6klmL1M4Kd1WSDg0PMk39PM4liwo/I4Xlmarzo+AdXxEkGSnWU8Ip8DprYgHWVqKxYDgQGJy1UBoZAuEsaUSN7RwkEmTfjJJKBIBycexGIjh0ZlgKBQmjIKjzBr5+nDj2o33fL+Vq7WT9NuZo1ppXyFMkUmKQEl6O5GEg/24+rUgMp+fIoEACuIPRLKzsmGXQ+51s0FZVIg33Zshs/ELFrLiICYepN+EkXNHbh2RmEY+pRcgJi59Hr1M8mghj5Fs6PNI782Effv367WTzbfXclUgzJGwQOT+xeRwiAcRO3v57WS/No1ZKmQWIAGiCURkal/ipMq+mmszDgOJiaMd8pBAsh6ENEFwqEAMd2Y0d2RJtgaDkJ2HbAk1gtBHgMJPdPjKhSMgGzu5auU279dCkPSPhng2tHEN6wUCg2hFHEROFz1c1dj7KmQByIs2DciKhTzqIM4hEBS8YyUENfohn2E0gQhLIbQ7Lb1kzY0bMOSRRDoCvt1M7mR3cy+dK9/+0UEkk0hkA8yL4QgDiauDkgjCQXroBZmSZG1FzjuA0ElRCLvGhYEBC3EVweEYLiBMKUBc0H64jTyONRMMi+MR385BZnf3cDtdqNw8M5AxgYyIZNi9lkASiUhkK/JxEyQpkEts/vQmkp6qBEKXheA4DyFAFh2EYjZBGoiQizKkFg7xkIkWKkxDlk/7NvZ2CoX0dnq3ePOWq4geC0QyY15VrhIJhbiKDAnk+lzsUg8rZp+MLaJbRiCtEjZqswmFPOIgPecgFCTYBmFIaTW0u4PB5bHHaO8SvZX0kO+N9YNMYWczXS+eAWEqNEGQ6KjSqCSb1TmijKEhdlwT1+eW+i5TPwdZAEKjTQLBQbL+R707uwqxBSFeV0yXhyaD+aGGIeVQBoBGunW0eV/wvXWNkmQO0rX9W5+PsZx7EGIgwRACpgq/iIQjB3NdHUBScQ69nCFZcXWSuIq0QvQkA0Rme9cgEDOyUEgakPMMGVTOYRQuZs6Ig4q8sbGzW0jvVIEMM7KivboEasabIXJ6yiJJynqI4uJFjvXxXn1wgzW4Lza3aCFXl4FojMNALnqQrEBcQTiVeJDRVgg/N/o/jieBoIChX/CtX9sGcrBWLt76XC6y8QS7kgZEr7tAQgrpBZJM4hBGF5COFIfeoB6IYwYy/6r0ugfOQTiTvTodkKXdVgSHfcRMITEg/+fQ9+sQT0rUYYC+vb3NNYZWrlS8dRbU/ZVctsZNQXSFlIIQnSRx2cbDkF6qlkSQweF+1nKFvOkgcu4zDq3IdGBIF5ILydkVe0ZEouEJtebpqAzrAOIcirBx0wbIDs/srqU365XK2b2pcC9rOSVBMn5uZIWtI4UDhjx8Q+crFefLfEN/M+TKVbkqEQ+yqm2xV2eTAnlIlnZZRb2CmFy+3CdXSH4IsQzdiqijGYLDhoKYTwPJZXhed+MwX6zcuh3u5VEN2ZUggSI7ExxEX1kOHUA6cMAg1IT7anFOMHwDbQggb745P//qu5QEiKQZMg/kIfLIUHKakjgH6RFIMCSX2qhNJw4zsFoq4uImDpA6z1FvrK8Vi8VbxQTrDj1SBpf8EeOQTWQ0Ho96R6dOGN3d+sCphcj/DSTEjKeDDQRJM+R1ggQHc8SDMN2HkrMLz7VALjO0RoMMCBMY1mELQjyHo7iCAKmeHB1cWz++ebt4VsGhvbmovrMxz9Fpw8sS/g869urQBzP5oUh4SqgZ8lITRDtiQOYj/q6HDSSQXWGH5hwjPZcnBSJbQnn2sPEDzcBqL4iGTztIvlY4WN+snd0r3iuJXzq+2kfh8IKDsUae0HS3QGS2g2ZoSUlCU9r6dRA5kxsJnT0cW4Eh80hx15A/srj8gnFwd1shDGNuM3VI7M9Tx0UtSPtcJ12uUFIRNihr+R9vF+/mdXusEHOdYqzxzuXZSxN20B6kSx30h5ki0V4yMWUcDQhDx5aEGfJmwM/c0nDjSMbWsxg0QJ4GQkH4k5SIRdLhCuIgGje07Bd8dc65O4XSveKnpSpvU16F6Q6ECa4XccmgfWl1ABGHFEQhiSgTiH4wq8h/QHRgDTXi9yen6WQbiDZ4xmMCYWNIlKJphbRXpAuJBkiBy1auVirSk6/JoKQexiFbTn3b+pCmSkRqIDi0IgwtvUzGE+oAIjcbV19XiB1bUhBP4P3X/1RWx5aFjACRxx91HAnFWFqGVntJICLx4sutrWWO86W7d8vlajTeSRjyuvzhkDdNLIWozEDkc0hgdPNrItsGsSW5qgUBYANErltAvCiE85HuOVRiKfziIMbhII+6td2XSaczdQ9S1oUVhexBKUi3GUZmPniO5pHF7EHgTaMUkFkgOJohSCjI4pZfKtHoJgU47LOUPOsqIufRTgNBYorCPwr5t5LwkX7NWHxrm5s7UpFKOV8KavR6pRC9QunqZyVKa4HoeFMIG0YtiN7+bYZcZZs1dFEhAQuhJHMvNkqiEKYIECvh5TXtEBeBauSEuLa9cZCrASnlS8M2QHSmd8gIbUAk+gkLsQzSHacgDchVWxEkDCzW9K4udThIJCuHZBB0RlsgvGdXFCKD20CI3TRqwlGbJ7p9me29w0z99FMg5bEx07WwELdo6DQRhy2R0Mz8l8LwxAmPbswr5JVmCLdGZiN+rrltkOkVpolKXhNIEIjOh3MSvaVpJA6jH9whM3c0QV8hfZjOHFe/+rV8eorDg+jIAsI7f/DgQZdAeh+Y9JqNlq2IN1Hi3Pptg+Cg+b2I4xEDQRIQh0pmVWIhM3L4xmFiKXq1UYhaXPit/D0pckN+8dVo19FmzJfpPp4vCI6/H3/8ex1Ifz1u8icQiZ01QHD0TvGA9ryFrHqQHhxaD5ZzHBYSUEjSSEaQtENcWYgMAmNp+TJ/ufDaupe3fae13cJRYffkfh4IEuOI61S/8OB7A7n4RwPS/PctoMq+Ue4pytMCAtGL1gAQcmlpbpb5If3FQQMxoWMZQcI8uUyv3UA67MHDVcWFsrgwtPnM3vaml8PDzX9IObMQG8Mwjn8Xjn071ighu1CyDLJkF1HIJVGEpESyjbIXMS4mYShisiTTNJnSRNEhLtxP6tyeK+nMma3c+T3L+d4Z3yeD/8wc53BM7+/83+ddn/eNrp5+8LThwj1InrwhzOc7h6+FUXx3pJjtbFX9AAQpiEgGAhMYMyoIItYB0WwoyXLaprMpNcQdcRAsIU62r92BKQEEDlcwJUVELLqmZwgPqqKrL9nkaTiLJw0NNLzIOLTt/ZHNdmZzGhHt2SJBF87yaH4HYvwri5GWUOMgnnxDCkqF7CVkkoYgQCDZt2bv5rmy1KwgcT5PQAksA4Ok4UcH96CTpugWVYqBYw1nh++tWEEvsqJLg5XLFnLZnP6+zmwBCucIIAPhYB1lCsvYAuKtLyKTRuzQkXvf/taJuIIliFabYwLLZKhFwqBPMNJQbMxn8hH5yZM1NVggaohOP1AQmGrOloe8o70Pb8nm8gKC+mazHX2/5YeHUPOMGz3YwmqQgkDCTFdAeLW4goWszBCKI01WEsRJ2MBbs3ctFZqhFu8HQxRIFEX7RwcAwWcsAkGW/xP0wEAuMOLCowqd0MJBEMPxLZtt7Q2IVI58NtveScAU8v67K4xjIRzj2IknrAEhC4UZO2KxroLVH0qlFWv2jBQQJ9ngu0WTF5KLCrgrYyxx0NvALmZYiCqUgjMk7FHfAuQBp1MPEjR7Ti5EOuRFVrF6C0gGtWVNeNRXVGgvlswPOGg/Z811kO3r1slUcUMfgtw5yFwzR5IkbFPYH3KMkZqlIAlPxH01pAuECAyheC8HfaMHD548ucA+9S5AdCALhrYJ0nPkMxkHyRc7O/KZUjvNr8R+W7F/W3Hot+Ik6hUcMQgkPO4Dwz5c5wAk1RLECiziJasaApJmCSB+SNAx4JDaAwYH+jmSxDnfiGPcHHy+dox7A/bI7FIPLCCpWC0ZAwnxt43qNZzmuK0wrFQcXWgdO3/KODjsSIdwSGKNYziHHpMTEBn8JkBcOnhhecZI3I8kCBwxBnr3TjnYbAeEcGEdhcs2rlUe9Lk+YmBQyHbmESD5fPjVdCwljJ6U+9HR0VpYMWfuUttOlt1SxdjAlNYwnANDFMRR+Ekn6VMmiRVCJMEBCFNSTh0GkLMyReRo9GEOpQ/1wa0MCuhCgpwDUd/aZAT5raOlVCzJYVYF0W1fzYuYTYhnmDPof7HR5mxkHPaQQoJsSdlnr4HDDdEI6c4BCAGiFUtA9rAzWsnJdS4UuDbQODQZ8BeQjkJBc2gLgNgkd2Gh5UdHKyA66Jso274V22YYBjI/nMNBnCaVI6AwookhQsVKcCAMgcMdOViJjnGtA5c7DBMrkI6b8yhULQGQSGHsVUHhGJiU2ku5lvYWB5Ekw4W63A6G+WHjsRgkKDgiLOmuuLzJco6AAQcyQ9wRubphFyBcgXBYIGKQjMU4IEMQzW+ubUgengK/WAYmuVJLx/zWgoEs4qjINnakwPgTR/coSdriKKLQF6ZxcKDSmiwDuXaN+wO4bkOu2PBhJShhDc9ACI64H+EdgLR0TGgpzG8BRA2ZN4l8ADD+xOEkSVM2IHpHtQWUsL7sHKPgCBRgIDjUEANBxLrMTy7yCQhI2ZAAkkGtOTA6C3ktoOwnTPiWK+ba6NadQ+0I4UFTEziSIMmIn2mii7SmGBQfBzmHUzgGEg435Gb0AY4P1Cw4zquVcc1C3XvZUltpGzGoR4+ZSrGq2rZxme3ITxo6wjGcI7ZjRhIEpYFgiAlbzBRkHGZHNwqSj+dBYRic0I8+oMuH5eaWaWOtlMhBBMAwHMsaEwWxrMdppIvM1YTxNI50DJTWM2rVcmEKKLabZHGudjgEggKVKeTOIRzhcprdOMJFOxkjcZCAwoMjOYmATCbRTnYT5tmkY0yCY2CoVj1DASSguCnDdOfCMSYYhUJIPqVBoBvXAcGQo2rI6tUUMwZxkqDgjYFM0sxH0psGzMaOBAcYM2YIR89JHCSQCIqEo3BMBsMgHAOBYSA4QrADIoZMm3ZeP28HSSFxEM3ns/0dMgHZLHCMwNE/wZGqtBFkwhQuAoBD7BAQxyBXEY45x6+obl4Bh34EkN2EOgkqDoIAgSRdUrWwm2UxthT7GEfSDzCMo+co7kkQJLyHjEMwlGOsU7jun+PIHhKaqLKS68DkNika4N4GYouLvyORHWYBQRwNH5HOEcK8xyRJSxB/JZPhxSsEhJhUjACCzhnJs4gt3TuXd7PExWVN5SEBEk8CSnhavtXF7oFgXNSFg5VMj3PlAOTvSYIppEJLJtuhTdvXbd++AhGRMUcAMUuqnsmu7i76wwNyB5iDUBLrFE1SeKey5xw50MtroCBuxiQDZFgyQHoS9I7iGKRMsUq2ncWMrdy8uBcQo5gfa05t7bnac+eqqqqePfsYna3ZU3mKu7NkyY6yKwjzw4CicP403BcEB22VKGB0H+8C0kN1J3E3dD1cVjJYtpzOWob0HIIRJwuiahig+PjxY1NT1HDvZCUXsfF19KiNb2Se7/sSJm+Rw0I5kwPl8PK7QkdoGP8A4hgv9kEBhFLsH8lWESRUK8MIKEKBhKM++vzkXiWLjtyfdeyUz6oop88Vec1XLOMElBmYcqDQ8fs66t8a0t2NFydeHOpGMXLk1KlTd+IJza2CWA4qwhERLOpI48uG17te77pzZ9euO1qlyvcFgSL7h5Q7lvNgGPERc3iLjQTC2t2/ZHCIFwoBhS67AgGFCU8gmW8g7sccYgQ5SlT1peGgzBLlQTe2GdtIHyE7iKawwyrShTJW0gKH3jNE8WeEwvXx7QML5fhFUCAICDGEUgx2hpiEU4NwuOY8kvzHL6iuTmGqo/q6hpp792pqavih+CykaKetO28mTxiI81R5jKce1CsZQgK/jQR/rd8uuoDf6wXfVn4nEAQY9JDgoEGDBg82L7qT7MARVTmL8+XLl42NjUYTva1786bx5efPb5DmQVoigx7aRbqWhCxXBxa4WBHMBEMkkYOEYD3LQ5GCDqEXSVFyvsvFNxNEq9CSXgqBEiDrd+5csMNBhGMs+iwSFkiih18+11VXY8+Xxkb+Xc8oiErF7H8p9/1SWY+76VJSy0VHytryG3FQ+vbRZV1B+OwBeYknOFLf+KWpvqmp6Vl1bbWYpu/Amvbsf6qdwsUl5dsf/DVfpgARSFJZ7grJ86Okz2sxQcER46gjSqKqxqrm5uaHzV+bPtYv4k0KC0j2v7X8dzqS+AvTnzy5C8iHZQiSR4IilQqK6ippfmtr6x8+fIseNr8d5ySyF1r8X45cOkU61ZE/e4IlHF+/PXHRIlCs4aojyKXxpT/8GtV+FIxP6C0gkjWnHMNL7f9Zs1798qHLD4+ufzEFkNvjZy1dZCioGhkHINVNgICBABFLSC3UZjhuszTpaazkyPM5TB7ad0iXHoR5jxxHWmmNz6pY/X5Vr1j90tRL2ivVIH0y0kRrpV+Ip+vXs8G61EiE5ZmNF+Gob45qAUFiyEMFmb+aplezzOyMqILAAQb/d+zCYZmuHNLyJjlQlzLy1SOSwU6CAkmsQDKuTPIMGcfX5qjuI49EiQSJVq05YohxOAn5dHqUD82ZJIY4h/YgHNg7ETiW/ArSK6inngwykjQQRI4wJIbSJONe4wCEkNdnyGrWhMAhJH7cVc71iCEjMj5SZFrCUrZWLFKCEoY4Sa90pYMYySBFSVhiHGdIQ7C74aCpFwaK/hAjfnZ25q8yhWEcn5R9SbJlS2gsRcoPQpR9KwZTM5gYlHVc+76UpVCSNVvJml1GyViylB/IrhQKkcIP/gef53mfc15zzukW3ztn7rln7tz7fub7PM973jPnPZN6TroY1nUBwRACK+TAEOHADp45uF/XJrKT5RMkYgiKW5Ksf7bEQAZB0qWjkxAIhCh18+xZMsZ5JJPdvCGeQ+dQy7Srzq0b1K1KEOa9MQQSjiQQln9AUZLa0kQ4NggJM/lUSmCVKnWVUnzARid6xnJXQDTXXX54Do6M9seQcFexiVYsQP42JClm4qLFURTb3MykK0kgkHAu5DgV7V8ZyIGIJ6i7zruwc4et8nqOwX26tWkQDSzhAMQ4Gg4cKFUqpjgIgiW5crWSu6TgAkRJBhnIyp0rPcjNaweQA+kj5zdBolp7dtcmLVfGoaUXQ5TDGQJHLzeeUw4uCqGNlDtwaiVJApHN5gMgsrrh2SN+GMIR3iHp9LMdqx4KBxd9sKu1zkFVIHukf7yw50A4WZEOcNmFZZ2vPVYOQISjnyu9dqzEOCywGEcgmmeK5UECSLMkFOeDkWzY/XY364+epW+vSr/bfWvIhyGOpFMnA1GUOQ7kucYWOnD2r/lmwzceGj5861amtANiZbl1I4Yh+iaOnUeGH+H4GgUUUZxEFtoZI9HNgCiJaruA7N6evvU6/extOv3otlkSgHiUlO0FMyS59jyc/sdxl1nr+wy/cQMQG+5TzXqaIfVchmjlBQOOCAVtTGSJksjj1RxmiXliICdJk5Pphw8FhCy5dauTOTKTC7qDYSBXdYCFbt6sBhFHhvc5rYfChsPRhnFhcFTUcQz1HOoIsWUgoQKWhBAz0pgngBhJCNKqGuSWA2k7c+YcbtBwAwQU1dWrQViJZq1v127rVrdO6jAD2We6GKIcIwQjBGnokj1CgpJIvCf+IZ8lKh9ardKElgeBRDjacpX1mYFS984zyEIM2wFh59C07E73zodm+CmNrfVNKTis9I7pBccUQJTkr14wQGkaR0n2JJmEatuqWdPtu1lf9bvVlVXp36vS6d0TDAQSATEpCIdPbpw/f0/lZzFShDftOfu8a9dwzlZzPQLkM50J4PgBiGpYnMSzeJRkElai+a7773iiIBN2r9o9IZ1+u2PHQ/pESOQqFu0hWbhZKBxKqlJZMAuY44Ij7VfphJp27f6aWmOHSC1D6NLhwA+pvFV7J+41rVZt8eVB/HYFoclYYv0KsYVu3WKrWtIemSNwuNDiFM0ZFaEBRidoqWxqja2zx4IhGlmW6SQIHAoS4bDGxZUcX5EHgtwBxEiq+vdqkLHKwKIgNTUc9oWmMmvtMaXwk3cgsQ0YEkaWnhyOIeNDECIrGlZ44NsfJ0G1eNI0tMS6kxjIGSUBRDAMZHlNDZ9ksU5J3IsfyM91sshC9CEY4irv+JCD8dRAa1pYsaqMqA3lrzRhsU2tQkvwxJPoRnMEEp/qCwFZXsMNDoJL2hylsBRp4UDMEBulC0dYfT2GKbAlFkRRU8LtHk5ja4MLLosu47BsVwkFX6LNqeJiLOH0Oc4yPe4cYTEKk6tZgNgZoxgSvg9jHD6xfcds8iiJIB7RtnlLIFEQI1EQH1tosxcgkiMzKmuPI5ocQvh5jUhyvcqQNRGOefMchGGYoiioltrVMGIJzTZHEkCUZN8p1b59LKmadUeOHBGQGzduKIGjsDJsIBy2doZI6dVBiO30eo55hhGTQ4mDxBPeb9FOMQTxJKNVAgIJIF6AUH6pv1Tfv0AiHEGua2AJiBniObhVQ9Avp6tIElGilYuvkEQtMEeQB8GSJJDiOiYdL9B+xOWIBzEM60VCQzpoZBmHaF4MxFBCQYIiJHEUk+/epf5a6vnYUhAkoWUSkNnrKrxXVanM4FRsmwVqGWIUbGxOZPkMUUOmeA5AkPwrlkQlpEpCdMWGK8FzWU8G2ex1KlU8UoGCk+ioXM1VxmI9OpJpHaEhgJAh0hl6Dp8iLE7/Q1LF4kGidcuDBDu/C5HmyAruVpD1bfwEU+cE0k1EVmhIh0RDBMSr9vrVUJcEkIgj4rFxREAs2+cEgoWqVVNTLFK6+IikbjbDpLnJMDDEQCzV9XoIyHMoSbIipqgZtWS8B/FSkHhs3d6JDGQmlxMplsvycWjFcnGZTZVNBNHOUB2JGZJMQquTSYLG1w7iSZomg1x8sVcwWNQRPnxtfpnOffH8LZzo1Ld2kN4CsiYZJEqhioCgfwdBURBC6+LtvT/2BnbILsq201vml2Xy2LbTMBXp5ZntQyl2Oua0cfKYEVN6bP/9+/dTPq/z06f3779+/frm0sdLly59RC9VhalTpxYymXw+k5k+fXqGe13J53K56YWpJ07waIGVqZlcaeKSidlsrlQqZVmbmM3l8nl+ykwvZHLZbCmXZ0NhaoEnTeUZrLA69cTdEydO3F29+suX1atX//j57du3H3st0bVqYcOWbYJS3jKf3RWqMBSMGJ+oGDaeRwsa9xoxdzRvI/3mM71ewfEeDkAggealyYEgWPIsgKB8Tpo2vaCcgBUy+dJElC0JSHYJJCUhyZb4pem5rP7AE/hlnuHuhUYwAEEhyE8IrBvZnyrP5nJhMJTLp+cfoS8RCkbxvMmIeC9ejko82dhhzYhJGwB5CgiGCAcgTi/VkRyWwOHEa4ryTjmaKyhCoiaJJSJA8EZIcqU8dNk8/sHHM/kbBWk+mg5JQV4HQO7exQ7nyE9AfuwTBNH9+ylOcJrNtbbKLDUL2E+BQo/ZoT1yd1Z4jnboNWXa9qVLfyvI+2oQOMyRwsuM+gBECQmL4tBwfqJt0iQ8kgCaCEIWECURG3LZiSXar7EFLhSycC9RlpHoUhBz5IeC3PdKlcuzZ5cBOd2tzFTX84IBhSI4Dky5ehiQ0bxj+TtmCBQPHnCzwLLIEhJuNJR7XdNMIAkgceHmskNBNLqgxRmxBOg8DOEtnxFbJGEisfWzGgQSiS0+trVyDD/krWs7pQM9IUW4jGPHDpcn3ZowJB5ZpMmDBw8+q0hnsplGigVCQfP1S1Y1kjBnuvyGoALCF48ucZ5kxRIIMiWxBwfEFb5xJ/miYUaamCUGQlxxEwGC5s/fsm1L+cisY+c1v28cO7aW/a9ZKtmjrIzscHkgpypQs14B4jmoWA7jrkoKUxBZWdFEVVaZ+K6mCKrktrPCfRNzYMc1HuV5GZouZS+fKWSwJC+WJIGQ6qZ9JDsgZQrWERmTnAdilpy9xalo6MiKdXpK2oBz4+cNGTLhu4BgSDUHX0LyRUAwhRdRLFEOWrhEokqNwYCABBS1REkMRWkpwVaIqcQ51vl1yZJCHOQnIDbM1fK7WGcg16yT0S5OCIVcMxA8yZ6ianH9xotGT9juUt0bAgcIhBYcX0SQiGhEXjzRmDFTUECi0QeLeeJkJNk8JFLiJOG0DBNUmMOiXYmBIHVkp3WI0rPX4XiQiFGiBBEUQNC50LvQvZSpaYC0bDx+w9KlfFSyGOJBHogMhH8AiMpqE+0SR1jgCAyikZDgiSS8RZW5ouU4h2HAGgj1DQ7JEG4CcrcaZKVI97j4GO0VDHVZKkjMKErGqOCYzaEJUb0Ooyi+fFRnMgcg/H0c+az/TLJeu/bwRSewjCQLCFKSkj4q290KSa71imqgrZdUomRBAAhbrEv0IAf38qHQyrIyhepAUBE72J3HjW0hRnExO8U6Wqm3aNL27dQsDyJhFSoE0chythS0zpasJBE0Kt0d0R0XlLNHjYRaoGVNuk1370BOAFXQrj3iyN5fe50hK/HjDw/A/ud9zSe3AAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_humidity_progress_bar_with_background.png", "description": "Displays indoor humidity reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_humidity_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json index 47a3c14d50..0c478e80f9 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_card", "name": "Indoor illuminance card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_illuminance_card.png", "description": "Displays the latest indoor illuminance telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json index 00ef351d75..0332da90a1 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_card_with_background", "name": "Indoor illuminance card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_illuminance_card_with_background.png", "description": "Displays the latest indoor illuminance telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_illuminance_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json index 2b9fdaf0a6..a0878bd0e5 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_chart_card", "name": "Indoor illuminance chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_illuminance_chart_card.png", "description": "Displays a indoor illuminance data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json index acc5c38195..a464557453 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_chart_card_with_background", "name": "Indoor illuminance chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_illuminance_chart_card_with_background.png", "description": "Displays a indoor illuminance data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 12 - 6;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 12 - 6;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_illuminance_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json index d281cc864e..65e12eb49f 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_progress_bar", "name": "Indoor illuminance progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEXg4ODf39/g4ODg4OAAAAD////g4ODzaQD19fUhISHk5OT+7N/0fCBYWFirq6uQkJA9PT3x8fHv7++6urp0dHQvLy/Hx8eGhob82r/+9u+Xl5f7x6Cenp75tICBgYH3oWD0chD2jj/6xqD39/f948/Ly8vV1dX6vZCOjo74qm/70LBKSkr1hC/CwsL3oV/c3NyxsbF1dXX3l0/2j0CgoKD149ZmZmb94s+rdVHIAAAABXRSTlPvIL+vAC9A4IoAAARhSURBVHja7NjdauMwEIZhZ9uvYeRY0tSSSUGbpcuSE5/3/i9tR45NvJTWCz3INMwLFvpJDh4Sm5DmcfejefruPewem13zjG8fC+OBcQc9y9cKd1FzL5AngyjLINoyiLYMoi2DaMsg2jKItgyirU8gvWc46oCOHD4qFejoE0hHwybkTCN09EUIBi1/XfwvpA+CGcK5Xn06OUwDOHggFA7JQ3IlhYouhctlh0t9neRCKg7XbgVJskAgL1fMmXKqg7ucU46R6AT0OY9EPRBzzEQJcJHkqNQjkulKogDyxrKKjBOVGSLbLmdgJIeh7sR6lAlI0yQzR0H4il1SAAmAn4cFAiASJHaO4ryoLBIefOKeEoAcsUoxxHUkLRB5Wz2eCnQJ1zRDIg2MNYSXp3OhN1/DtZtBeuC0AakGXkMQM4u/c9OdA8aqG0EKRR/yBiRT8OM/kEKjDxTrIvkSFdzsSER56xM5R6IUia8QCJ46B3Aimdzg8fs+dtjO8YdbLJP32a9fg2jPINoyiLYMoi2DaMsg2jKItgyiLYNoyyDaMoi2DKItg2jLINoyiLYMoi2DaMsg2jKItgyiLYNoaxvSti1qL+3cy7x/PP6BnjYhv/f7A2o/93OvE+O1Tg9HaGkL0h4WyK81RLYvqZFsQf6yXwerEcJQFIZXhyPc+wCGIomOIIrMQil9/zerziSDLWVEiyTD+C9d+WFyL14ZICNddau7P24NGlKRSCuQjnT+ZXuWCBkvuKbzSVYgSqse4jgglJOFdzZIo+eQgioBQrYII6shPzAlpEUaPYUIWcFDhOwdSSsz8BekiT+In0KUFgGS06eygPhhrB+I1zqkIOUBkdG1grony1eDCFkgQELGkeYvSFcDdYUIrUIGOplSqggeWbJeQgYPaZyBtojQGqTjoh/nLX9MrS/SegjGtlCDDUWCtNZibpghOdmGPRIg4iItx/U7MhWOlgdMKWlg3GKzewjUGURoBRJajl/NIZa0d0EhpiEVAVLo2GJDsSAoFnsERnnLSYAIK9l0tqJBUClJZwVzcuVUWSNA1AIRb/sSsl6d1wYhk+cG6fRG/+wv0glJrROSWicktU5Iap2Q1DohqfUGECm5t/4zO6ztkJ77K7PDumyG8D9lx7UZMnJ/fXZQe76I9Nxbedwdubzx1HqxTkhqnZDv9u5YxUEgCMCwJvmDWAg3WyxMYSPKNqIB3//ZzgSEqw72rtiJmR+22G4+WNhyrOUQa/0CmZMGijXMHSCqKsco+2Vr8iESBV0oVBPXCHQzo7LEQXpBJ9Y1HzJtEALFkghEoemZV+hGHiApHzJ2BiCP1wnhCZEIEh1SrONp0TO/IPTQpnyI9A3bRJkOiC5MyqIQ2+dl7PIhhJiUQh2QNuouYE0pQKua5A8QhoHyyc9R5LN/9vfKIdZyiLUcYi2HWMsh1nKItRxiLYdYyyHWcoi1TgSpOEX36nKC1dPwda3qysoGp38kO+NWX+/vXnWpb99gbrYRFl0QWwAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_illuminance_progress_bar.png", "description": "Displays indoor illuminance reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json index 2462922b20..8823eb9056 100644 --- a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_illuminance_progress_bar_with_background", "name": "Indoor illuminance progress bar with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEW+trYAAAC3ur3/59f859bEwcXDq6D55tjGwMXDqp////7//vz//fr//Pj++/r8+/rJysz/+vb++vj8+ff3dBD8+vjJycn69/b++fT18vHz8fH39fT79vP8+PX28/Lw8PDn5OL99/EdIyv8+PP59vXy8O/08e/49PEVFhj59fIgIB/y7+y6ur69vcD6+fjm4uDv7u3+7t7Mysm4trrKy821tLj89Ou8vL/879+4ubz79vD59O724tDYz8fu6ub28u8bISnf29rw7OoZGRvt6+rBu77Pzs7NzMv+9u3KwMDy7en47N7T0NDh3dvW09HGxMgfJS3Qzcrp5eTi4N7+9er969zk4d7g3d3MwsHr6Obc2Nf28e339/j17ur24czf2tbc19TZ1dT67uD75tL27OHKv728uLuysbb86tf86NXKwsX36dq/v8PSzs3Gvr/76trb2trf3+G+ubzV1NX549Di3Njs7e768+jZ1NLt0r/Tz8rNxMa6trr67uPDvb/r5eHPw8H88Ob97dr54Mnc0cf+8+bm4Nzj39z46Nbq5+RWVVXCwsX48evmwqn+8eHY19jd1c75+fnk4eDp4t7T0tPZ083l3tnLxsnW0czFvLzi1czOys3rz7rRs6Tv6eL66uDw4NU8Ozr+8uj05Nrov6D37+fQ0NLMr6CNionTycju1MFxb28wLSz25dP0177g2NDe08nmwaTGrKBJT1bz6+X2597PxsftzLNQR0P848zs5NzHwsTpyLH4hi7x59zk3NSdl5Tp4drYzMrlxK7rx6qVk5P0fiXq39Ts29Pn1tCnpaMaHSLw5NdFS0/iu5323MXAubzIsaWBa1/ez8vMtKaUjo37yKHy07jBsqr3pGaUhYB7dnXn3ND5tH6zoJiFgX71k0n92r+inJuBfHjUuamIhocyO0TRwre7tbI1MzLcvqutqql1YFZHPTnR09jr3M1fUUuXdmNiYGGupqWWlpkoJCLBmXwpKi3Pqo7l08aoh3b7wJPctJJcanj80bAiphZ2AAAACnRSTlMgALcgv7+/sK+vucF9fAAALvJJREFUeNqU1T9oE2EYx/EoCI5OQh20CK3SXDAYJWTSNklLpBBpwFwUB4ecEOpRU+iScNyqDoVQKMGpi1jqJgQh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", + "image": "/api/images/system/indoor_illuminance_progress_bar_with_background.png", "description": "Displays indoor illuminance reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":1000,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":1000,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_illuminance_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"lx\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_pm10_card.json b/application/src/main/data/json/system/widget_types/indoor_pm10_card.json index 3ecdad80bc..8ecb18618d 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm10_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm10_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm10_card", "name": "Indoor PM10 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OD/pgD/9N//vED/sSD/04D/x2Crq6vz8/P/3p8hISG2trbCwsL5+fn/+u/u7u5YWFj/qxCenp7Ozs50dHT/6b//6L/a2tr/tzDn5+e8vLywsLDj4+PV1dXIyMj/2JA9PT3/78//46+kpKT/zXD/wlD/x1//zW+CgoJLS0svLy+QkJD/2Y9mZmbltT9yAAAABnRSTlPvIL8Ar7DvmsykAAAF7UlEQVR42uzXTW+CMBzHcZzmZ8GHphqtrHNqCuvBAw/Z+39t+4PZQAhplixYHN/Lvxx6+KT0UG86efHmQ282mXoTb4/Bx4kx43iC9vRb4SnyngUyHyGONUJca4S41ghxrRHiWiPEtUaIa40Q1/qnEB/O9ivIalGXcK01LydHNXD7iCLYehxkxViAKiUoqbEWKQAakgChVACiTAgFSw+DkGPh30G0jo0kgYgBpAVEmEwV65RrEcJSLxC7gyAAEkEQmQCRkASJYQjCC0SqYKl/SOVoQVRGkDzjUFIRBCVEizVALku9QOwOgkiZipwgUXaBWUunIbvgwE4ffstRQvI8jEEQnciL4A5Ddj6wZNShdLQgoEpILKRCBeFZSIsElvqC7JaHxbekdHRDYERcg0CaOBEbWOoHcgwY9SM5oVViULYxGmFKsE9QMgGgVWZC2OoFUjDuJEe4XRdkwRqSFdyuC3JlDUkAt+uCvLF7yWBPBEFDMtQ7QkdSkzj8DrFCcP0DCd+js3NfkN2JVQVot2nsfEer1y3K9ucaYHvbF/YFgf/Fjh20NhMCYRy/PZLLzMs4DKzwiop7qLTf/+tVTdPS0hx6WPDgnyVMdHP4JWEX9nEJfnLxpYiepvmi4IPHpOPgj9UBMYOeWaHG6DmZnzMekLkLsKmOpQsgPyW3Z5BImZTJk52Hn7/BOI5cCNa3PCRT4EKO+7uEkUSgiAzI2K0ILbeIIhQuguD2+He94hnE2FqqxZLhwBfE0FIOfdTEleZq5pofkNSg4/T7bgdKdNKX9CLIuH/M/j+FhBJaQhTibxCGOIljLN5PiO9D+IQQ7qdT351nx+qBxpdBcHsbFy38FlVmLU5bigE5YH6fVeA7xLjx6ftoTWOHZFRRtgdEG/OAWEMlyKklpsZGuAoyKf9eX/BbQkQuFhHHIsLwBEAL5RNHpgqVMZ7ki1oZQ7lDvAMCCaF3Ui6wUigiFErLPWk8GH/ImZFb85GpKP4Qi9T97HdDVm1DVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtDVmtD3tk1g13FQSgM78h3eiBhQ8KiTXdNm6qbef93m/FUVMY71nuTRs34b0rhkPLB+Vs0vJo+IK+m/xVEzkqXyiQi7ttK9zulsUvbgYxfHrPZA98n2aN3Wn0GGtkKpP0KZOJHIHrvdOEM2oCmjUAi5GbRcBnRj0CmuydwGw32tHEjEA/zbd2PQHboA9MmG4HMMLhaAk0B+YZ3BcJto3TjuS6EjN/KIw1MN6lO+xdIUwZ5Pi4sjdlKcgksaeMhnBqTm3pA/ZkUjVuB9NA56VKVWF7WQEQx6SWwoS8RGVPjWVRIxEO3EUiGkK+nSkDdKogCzeANR0q/WAyWD9ErS+GgkJNLMR7jYNgIhLN8sSyyCtJafPXBGU4Fz5Jikk+FFsvejHYyW3ELELGZtWlbFj3akNdA9qB2fzGT0tQu6svBSbVl+IWp38ojMsWS881yVVkH6WGuQUaIl4iqjy6r1+563Q2bbxoHINlUR7cOohBrkD2keyBFm4OIZXSEvvujCEzd+E8QbkCU4F4CxJlJeq4VHl0Ru05PBYnet1YYDaSpQR72iG18nwoSymMj4FwbFw3AENsrkPqdNEOuQDLhuSAtJ3frZQG+NjudhdXfkdQvgRG654LYEHf+kAG5D5KDD5nTMHeAHuweWTa+TwYRZVGO7j6IKZ+Gmaq9lsD8VBBT7G26pcZT/Quk7yH7SXXnjGTW4715pPqZMZSIoHpYOqsO24OYJK0nYHBJ6soki1nKxtf04n8HGUilabnsOTKUd7h7PxBPMx7zC7jy1vuBmNez/r2dfT8QJ3sWHa7s9QYg0fvJ1ZIYQhgqjDcAeUQfkA/Iu+gD8mr6gLyaPiC/27uDIwBhGIiB5wTiJz/6L5U2hEfbgSoQjSE0htAYQmMIjSE0htAYQmMIjSE0htAYQmMIjSE0htAYQmMIjSE0nZwROmvAevqc505lwHz6TWXX1X+XVfsDI20+0h25oCcAAAAASUVORK5CYII=", + "image": "/api/images/system/indoor_pm10_card.png", "description": "Displays the latest indoor fine and coarse particulate matter (PM10) telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_pm10_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_pm10_card_with_background.json index a4a98bdbde..10dc82e60c 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm10_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm10_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm10_card_with_background", "name": "Indoor PM10 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm10_card_with_background.png", "description": "Displays the latest indoor fine and coarse particulate matter (PM10) telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM10 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_pm10_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM10 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card.json index c8a8e9f109..445ce563d5 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm10_chart_card", "name": "Indoor PM10 chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm10_chart_card.png", "description": "Displays a indoor fine and coarse particulate matter (PM10) data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card_with_background.json index fa74d5bb1f..9b72192313 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm10_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm10_chart_card_with_background", "name": "Indoor PM10 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm10_chart_card_with_background.png", "description": "Displays a indoor fine and coarse particulate matter (PM10) data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEX29vX08/Pt7ezw7+/r6+ry8fEoKCjR0dDLy8rp6enT09LIx8bm5uXl5OTo6OfNzc3OzcvY1tXh4eHg4N/j4+LY2NfPzs7e3t3W1tfV1dUtLSy/v7/Q0M6ysrLJycnLysiqqquvr6/W1NO9vL3R0dK3tra6urq4uLjDw8TT09TGxMKtrazDwsGjo6S1tLUwMDD4+Pfa2tmenZ7c29rc3NyZmpqmpqXa2Nenp6jIxsSMjIwzNDKEhIZ3d3eCgYI6OjnBwcGgoKGWlpaIiIjJysw2NjbCwL5ycnLFxcSTk5Pe3NuQkJDY2NnV09LPz9F+fn7Gxsl7e3s0LSpaWVk9PT1tbW1OTU1VVVXDxMdRUVJJSUtoZl9iX1i5tbJCP0BpaWq+vruFg31fXFSAf3m9vcJdXV3CvLuJiYxCQkM6NC2Rj4pmZmZgX2BUUEi/ublGRkZraWKJh4J6eHJcWVGenplCPjWamZRKRj5QTUW9vLiNi4Z9e3WioZxjY2OVk465ur+rqqa0tLu/wMWur7XFwb9GQjmjo6qYlpFOSkGsrbGlpKCcm5eEhY6zsq9mYlu3t72lp6+jm5Zzcmy0rqqelZNubGVWU0ucnaKqoZ2xsbivqKR3dnC+t7SbkY+3sK6Xl6KMjpqYjYs8OTG6ubaam5+Ulpp4dGyIiZWqqrF2doCRkZahmJR/gIaLi5CLf3h7fIKtpp+xq6ljX1CrpKKQhHqCdWxaVU2RkZ1yc3pvb2jl4+J0cGhCOjBnY1WlnZyTiIGAgI2bkYlubnmIe3KelI2enadpaXOnn5iZnKaOjpNbVUZjZFxsXVKTlKF6eohgW0yfoqtuaV2YjYRoV0s6MTJgYWxXV0+5vMNrZlhyY1ayq6STiYd2aFxWUEBybmF8bmRjUEShl5CNgn+BfXOvs7pBNzlLQ0VRSzq6tKxLQzRVVWE1NUFYQzZZUVSqpqhdSz+ompPNuLbt0dLcqqmvj46fhIPDpqCkcmfdxsTgubfZlo/xvbjAfnOAY1CjW0+NRjoYsGlWAACwQElEQVR42oSZi09bZRjGi3N4QUWdl+1gZyuXwgo9iIMgbTnjclYQQuntHE7BVsBKS9scGKmUzSpeqp0K3iKLzkSDG+ri1BBADSU68baKIhYNmBZQwxDF4D9g4vO1zDmvX05LW9ov8Pue933e963kkzFj7/w8TaWSZTTSTqcaD1gx1Lu2trmxGd3YnJmJRjfX4wuja+Gl9l8cg72+nrno8thTY6c+/Oq332Ljc2u9g5PBex+9R3mgtd3vsplTKSY1lfMItJpKZe0d1tTzFs2qcZeKN1mtDHlCm3FZfxbNiV+zTKpaUNucHKemaBpv/a/FmKl//R3NioLJY9caDB0y6RPph7fdl5eent505wO5uRn79mVkvNzX9/LLOTk5mZkZGZkKhVQlVxZU1h5sf7fNP+xyuYzYmcINf4FTEERBZ9CW18mUSplcKpOrFNnZOYrMjNy0tJqaDNWAvOSe/ttvvOHKG26UjC82+11GmqaSPFMZBo9os9jrC69vbMwsrkTnFqMrkcjUyOzo1Gh8QtfVGxqci02/98nYqbd+HYvF5mYjo0PeYFd7+z3dnd3fDPt5hvw3To5myU6cm0vdWtTWqRFONGHI2SjWygDLz1YhyZNS02wqbgxrc7I4jv9Z7L/zpBmbKDjcFkO5pq40+/47ZdvvzEpvyKpuamrcnZaWti+jr081IFUoVKpsRWaOIlupLCmpKK5tffqzb4ZCviTPrSUKVs6EjeqKZHKlUikvLVWq8LEcHMS+fJyFvP/RR/v79lyZ4Dm2eMhnNFLUWZ5kURQ9POwKr61EozObM4szKyuR0R/ei6/NRiLBrmZvS/PCcnRl+dTY9FenphdHI5HJFpfL73B0th7s7DLbOIZiRJtancpQRIyMEzuehxQXFq1mzOS3aoj155+dZ3lCoGbKxqrVLMPQ/8USm9PgSf0bapvVygcs2vKyusoC6f2vSrfduashDzwbq6ura2r27bvjDtXAgEoql6oUQAJIBUWVZRqD3SRwThYHTm2hYAhP3mPRlxWXyqVyuVIqK5FBnTlE1jm4SZX9JfL9V2LdcOWVku9iky5gTPxd9B88cbnW41DnzEaC58xI572zkamFJe+zPd6JnslxvBYbj01/N70QCkeO9uBAz/xysL29u72HMyFSWUotWlkiN+z0ZwhqNa1mz7KlKQoXBaL0z7STSTCCsBinGaghUjVe+LeFbdVm1vkPPJMvsU6r4LFoDZq6yiKZ4r77ntj2wN68vIbqxsaG9PSatNz8O3IG5HJpgmeOSiarKKqtLdPodW4T9ECpt4KDUjMcZO6xW3TlZcUyaTZ4ymUyeU4GaGbmIOpzFFK5rESef8MNAHrjjZJT0R7CE+scTyzKOLwej860tKxPjUKWo8tfvRfdXJkZDbUMeSdanp2Kj4bDGyuxxehsPNw7ecBrNM6f0egPHew89K4lICYC3UpTDEH6J0URfZIbeYSVyAh4AfjJe7dQGP3dXsZsxqGw/46T7ItcYaX+kTQJdyvnQPIsL6ssKlFlZDRkbmvckbcrL72xuqEhPW13Ws0digH5gFSqBFCVrKSguLasrEpjsAR4Jz7PMGqKIrJC3uE5h85i0erLikqlYFcKeUozCU2FAmk0W4oc0D+wP8EzLQ08g67VefJPEYhbQsVDl28d8d7ctj6LNToaO/XVzMrM8kxL10Qw1NYz5A2FXOGNjc3NCHge6G7jANSua+/s7DZo7RzDshAPC0bqZNCekz0xIppOPAMQEVqgwIbcyIvkp7H95U4BQOn/4glgqbTActQ/w06YUUBn0Gvqigpkin259U2XNV29a2d9Q3V1enp1DXwkJ3sA8oTYlHJ5QWVxJXhq9FqdhzPTFGRJ4giOyJhpwcbr7EgctQVIn7KSUqRPqSJHoZJKsxXZUpwIXCp7T0Ket96KeEeorlJJjmd5YqmDa+A5FfFFIrNTU6OxsTdmotPTsclJ/1DbYFtviy8YDrvWJ9bW18Cz1csZV1OtgqHzYDdSkJVlnaLIEve2iRR1vj4p5o8gZQQ3T6eyyAnnEqsraCy5eY/B6bSy/5k/1diYozj6r9pM6p5xwovsWn15R2UB1LSvcUf6ztxrdtbvzatOb0gnhlSTLVcCJZRZUlJaVFdbC3WWG7Raj2iGGlhkHKdoQ+pxsiarx6DTlkOeMtAvkclg8dnZKqTSbEBVAWi/MrsmyXOP5MNYKMzZaPIPEZ7nklNvPL4ysxBfXwPP0chMbHwxOjY+PtLjO3posMU7GHING88EhV5vJNTzw2RofpVNdTIHulu7y8otVjVl9Xg4VrTRNidFn+OJG3iKyVCCCASt3YzkScGbWPIKTCrca+y7ZEeJg+fNxM/+3doFmrKmCudLGBsRIzPbYMgBgrOKmEj2vtzd1zRU515Wvxc8q9Ord6eh0FERrcnAs6i4+PTpE+BZrtfaA4KNkLRarRzPC1arwHEeh06j6agtKiEgySHgXpUNoqiaQFaVDbK370G8A+dDkvdWBsO2hD7P40klec7F1yPInrPxaGxsfGZsPDYSdI20drW0Nff4Vo3uM7be5qmpA4fa/MYzqZTIaA+CZ5XOZKNFk0lgeCt85VwCPat8J16kCEObSWu3pUKyQMAQjeJBOGTM33ZFpsXjsOGlRIL9Z31yLHhameQhEYWTnzAzxiwCBqLdYtBUlZEaR5Hb2HhZevoD19TvvTlri2cu9CkrAaLSiuK605qOE8frOqr0Fg/POW1mjnfwgsnhMfEmB++w6wyastqiUiV4quTyBE8pqixYPHgqshVSqaqvhshzz579kumVLl8S4594QjOMfy2ysjgXXwPM2dnI4vipsdiHb0QXguHJ7tZnvYd6fNy8xWQLdk3NtR5tDqE4gjR0Va2tZWUGh1ltdmLxDpOVpam/WoVZIFZOclzAYKcpp0lk4OVqnCEdDvv8vhu3X3CxxeEw28zQq4egT3pY8tpayM20k+ZYUgMk34I72AeUJfACcNh15R1ldbVJntWXpO/Izdu1t76hkfDc3ZSbnylVlhaUlJYUFR8/rXm946RGrynX2T0mFO8mLN7jDgRg61qDvqMcPAvkiHCUVQSnVAagcHYAVeBerhy4owbeDnnul8zEunrnk8XrOZ4QT3AiPruyiHifmgXOOBqir2KfjMci696R1u6Rifa24fnVX86shgYn5tq7D35DYbGsXXu0vQ48abXTaXNaHVqLaDb/jSfDsclnZpPGgnRaoeFsVjNESzPBUGjIf6lk+0UWjmOcIm1TZ5IilmYTxwJo7DlDAlGziYZAsZI8sYETYepwu+2BgLa8CjiLK5TSnLTd1VdUX9D4QEN9fTXKz93VuxtzczMRp/0lqDqPHTl28vXH33zNoNcj4D3QpgcHgnxhtyBjVNZ11FZVVVWWShUEaEEBoEqVyJ2Ep4L0AiqlXNW3B/IEzv2SzZWhXvj7+TyxzN71yObKwnp4dHQqsrYWXVx+b/HDWGwDiXTsvTdGDnh7V43z8+Kwt3do8pCFY0hUo97ratZrtI5UtY1JdTt4rVvkTba/lzLqLbMXtRankCpVaewWB0Orh4OrbaGWnmsLU3YZBKtZ5Gwmcy6rBlGwItAQ5n/ghFcwotXGgiIu1LUJ6ZMeU2cwGHQWfVVdZXExapzsjIvTG67I3QaUeVfXg2cjitC03EzwUUKfFRVHXnzp7ZfefE1vMLQfDTj4QMDiMZk8OBSdHs1Vlaa4DPJUkoZUiWgHVNwTniB6Vp8v51985a17bt3/EPRpDP4DTyo4tD67srK0vja1NDK6trYYmxlfHltenBl/742xsTc6R7yDJuMZI8f4hofeHRRIx66mPBzHtWn1Ok+iQRecnNbN8YL5b401QxM4NG3jhIDJSl2882JFic7JMK7h0GDzYNstEskuA8+ZkQt5bkeVNek5ahtN/+lkRLuNdvKiIAK3mlBW4zKTxOmGMuEtZXXFFQUFcKOcjIuvy7uicVvuzobGvfXV4IlVA54A1I8U+vCRzz9/ETwN2qe7mgMBj91u0OosOh1Jm3VlWEW1pMVSQM/EieDsiHop2k3CM9n4D9x+x603PtTX98wzks1Fo9/2Dzx7wTO6Mrk2OjW5NBtHaR+dWX5veXl6+tR0bHn61Pcz4y3+5mHuF0xHmv1ioh5kUINzHotBG1CT59Cr3i5wVu4vPAnrrXgXHCanVbzu8suvKy064B8e9k+863366esLJZdqTSbRTCBdwIMXKQdFgRzFH0ZuSi8SaTNnE9Q0uhnINzEREMgIBDxBobgI2bFUBp770hvyrqjetu/6vOomQnN3blNTE3hK4fDE4o+8+OJL77/2sc7w9GefWbQ6rUUPoHqttqqyuAgKryjBXQGxdgi0VAb/kRUoVQrwVCQrUPyi/57+bz+596sD3ZKZFVTif+eJ+jMcX4lPxeem5iJr8cjGxmI0+tVKLEYEOj09Ht0YCQVDQRsX8n521EExNmgOJmTmTYLDbnfAYeDfFgsnwiv/pcFBkrVBgJQp74ILLtyR9VhPuNc/1HJg5NnbCgt3lkO4HKoDfruOo5OCFBI+efbDjh0ZDtEZ4EWKJfW3mcZwRBQ52LpOD13V1hZVwDuUpPTOveiirEuqtzdeg/b9gabGRsDMTfAEH6WstADxDp5fB3TuHpNbp9VagJOYUC04YhdSc8KM4OJoh0gRj3YKu5JOkxSiqBP6lcpnXn75x2+fv/sRiWvRN7QKjOf7EdpN31o8Ojo1tTT5wwIcKRpdjkWnV5bHf1tcHo/FYtHwDMqCsMvooviDZQGbPpW2mgWW5i281RNAG8wzqGdE1uqwsv/Q3IALVGUmujI7dqVcsO2Smy9ud4W9zYfa25+9qrCQ5E+nyCArS5RWKJDG+4Q/t6504MKdBt7s1tmtQIxK10xDwcgfOq2+o662srK4oCTZnedk5l6XlXdh1rbqK3Yi3JuaHtgNoPAjBO7AgFxWceTTtx9//4sPfuJN/NBn2nfeefNNzZuvnTx24sSRI8VHCmSk/QHEHHg5PiLHjtC1NNFrJniiaOpX3r4f1edDe/peloQ3jMMJjH+uP/HINQwTGkUpP9I6MhpHq7S4GN1YjC1uLo+9sbyyNrOxGQoGjWEjbEVotYjl9M8/w6rVvJvnA46qcoPOwZnRhHM6/r9GGghgynnpBRLJBRfe1DrcO9jcdeDdo9cWSq7TWXkMJmDnEr2TUkPLtNkkCsw5nu6UHVU8E3DqdDa1mbdzJoHmHCZkG7TstQkjkoEn5JSZUXPdRVmX521Lv6K+/uqdjYj3Rtj7vhwVlry0oujYiy+98sFrH38dcLiPVhWdfP306ZNvvv76idOnjx0/XQx5lsjloId+PSM/M4fIFLpONEhErOCpgMEP3EHc/aG+/ZLwui8STPJMnj8ekIbFOOwd6hmKjE4ujIzMrsXjcUxF4oszM5vLC7Gl3rB/8hf/mQmXD0Bp9NpOkxW+gAJGZ/AE7KiDPeUWrZ23UU6PlQZyclDnClH11g/o12ek/DtTCiUp269qDfcODo60Hhi5SZKSZXC4HZyIsVUhqQbURJ+86E6OT+aNWB7JNbWck/NoedRZZDb3Ew9vtmu15fB1JD20mSqEpgqToLSsrKwd9duqL6+vRwpN+BF4ZirAhNSgFceOv/346x/85LZYEOZ6PeYir79+8sTxIx99dOTLhxHuMmlOJhYZPOeQuCczJpI5yedJQQ+Z3/7QjXvu6rur7wXJwvp6JO6jCM5h81Ywqlln0OXzD01447NLUyM/LABlPBJfi88tTc3OTS30hF0hnfXM6oQrGKRToR0Mb1FXg5itvE7rdljVHHTpRh418bw10ZWfx5PGpUb6NDmsmAsO75RIUiSSm1t9E13PPv30wfZrJSm79LwD+nQFfRKBUQMn4WnVJro4I3jO28ollxWjnDDoSbzjTK2CW2dB9jN0kKKzghg7zFeVnZmf24i55676C6uv3rl3bxbhWZNWk5ufQ3jIkUAfPnb8+OOa1z5+R4spElqq2royxDoi/dUnH374ycNy2WHFnWSgD6jQokqpJDzJYaHjlGIBJ/F32PsLfbdLljA37h1O8GTP8iRO4fKFenp64qMLC5NLcwujSKELowtTS2g+l5YmUCRZbNx80DjsSpiBmcFHyWCdsZS7HW5ezdp0fECH5RC4szzPLbyCCTzc2GRCSeC78vIUSUrKbd1B/7MHRtpbD91cKKnXeByOz7yucK+kGQ05yZ8ML5SREhQ8AfRMWeEVlU5R0JQlW3jaaXXrEOsaqLOoAL6ulJL+BTxzc3dflJXeuPPqhuvz6vdmETuCPPMzVInIBRvZsePHTp7UaMpRz2seP33i9IlK5M3Sw4cffPXJJ189fFj2YM6d+fkYxCcdSEkWPqoiPLGDDHsM/HjHnrteeOHHF36UjPiNs0wCJ4L8jzmv2TYcDLYMtqxNzS3NRaaW5jAEXVgamVqIxyFSr8/nt6+aVl1YZNSGsgX6ZFIx4eJQgwY4PNTxgh1fN2DaDeUi3v/Sh0NzKAdsiANqWH7R9pSUlKsP9va8e3Sys/PgzRBrncXEdTX7wn6J3wXzIjwFRxE2wV7zq/PGM5XgKVodGiRRol6YEQqlqqQTwUMSFWIONJi5L3/3RddVV2P0uTev/nrwbARPjC+Jtog8ZQXHTxw/2aHpKC9HXXDySAVYPlxQ+qr0weeewyU9jHC/MwMrk7RCiH7yGZI7QRMCJ89J/flQX5JnS8TYwxKIhOgf0xDbmd5QsKWlLR5ZmpybnYJAI2ujIyML4BlZmPP2TvgDqx6bMdgbZBP/qo1loU+KVYsOnhPQY1K8KDo8bgdMU1Sf/XbrfC8iiZfxuYaHB65PQcTv6PQ3vzvSfm/nI3slKTvLLA6heTAc8ha6EDxJfdplZBf1PFkOZeFl4Ok26KFPLNb6UyCggzhJhYOIlCF9Jngi6eXv3t2Y3tBUXd9Qv7cB6oS9Q2tEnARPwZHjx4+fflzTodEgVZx4+EnE+KsPH37uuefuf+KJJ+5TqGBpdya/t8skg2dyWjKQJM6ULSXzu5L+/oG+/S+A548/SkJBV5C0f+cPG8x+7xAZG0fWIE3yRRzifOGHybnRdYh1smXw6TZu/pczrl6vl0Wjx+BLtS2JixadIMKb1FAfX641cYLAB4M+F9n0HMzEBQiiOIxvqi7eLsHae2/P4LMHDt7b3X2zZPuuKrfb09zs84YkxnDiLwNPrRQ/oE7Ic96dWXhZsSDoUOKSSR/GTV8ju5RX1ZYo4evQjRTRTvInvuHJwHwpL+t3tq3FK806DKOtddlq3VcuC7OaZWhZmqGAlxiZ52SC4uAjCJQEkQP6iR9TmVPDoXNoFphZWaRktnWxhmcHqNPFzjJ3jFrmarqV5Vpn1r/Q80LrdvolShtSPN97ed7nfb66h2/cduMDj3V37+7O6O68885U/m8UbFO9xRO5k9P19QOHPy8rmxwZmuqdG5qa6unqGu1K31FXtKNzML2ubrArixZGO9MEdLkSyidNnZnFmBr6O/r3PUHpTnhy5p8jCZL8N5403DlDnhDrnF8JR1fOzs8AUxTP6PJiYHG1Oej12q0/y7VaM+QLCZqRErIZkRoS2CwibK9SUtSoxrZyocylMCqcTo+DmtG/8AT2mGdM6EuBm3h0Ht3Psvb2pta2pu3oR/Uune9o0OP08MxmIhwk0IlS8bsngCfiU5F179Ycl1Esc6kp37Fj1lWKRaie+RQ3NLlgGETL2EltecvD2x64sfuxGx++a/td3d8CUeC5sw9JnZ8PPBGf0+NA9PPJ3Jy53qnRqS+Henp6KDw7u7szUDaB5510ZdCSgCfiky4WDf8CqFNgZi0tLf0Hd+1J4BkIaOX/Qw0DnpDVb7BaQ0HguYKFxwwyHmzUHQ0HsZLzyOUIFHPE7QbpVli0yHol5vFs5LkMGa/MVmVjuyMWosqLLEvsktMRACT/lX5NUPMcDu76e+8FYdq+1+r3Unzuv+bepLuEFpG+vd1qtSYRngXUw7WiNBDkn+U/a4HoBv/eK0oaawrFLps0m/L9188qSiuEZbn8xAIYHx8FDjGKwle0ZdvtW29PB56PXXPXt53f1u3urtuZmt/bKxAAUkHu9Ozs+NwECJIgn9871dU1NNXT10dwAs+i9PRBAIrOPpiewBNBTfGJ8ATVKgaeZWUHWvqfePrJPXE8HZycODnOv3Q1syfk93tZiEex5Sit5HAwe6IphWNR1ukGnpDnI26HUa1tdNHOt6YgRVIglYIFGpUVCCiFDPxaoRPJZMwXSwYn919rQqIDpkB4uRp4JvGAp1Mztr+hrQF86ZLS6pydHXpPKJQkd8g3SwvwWsLzBF1GrVa7rkvnXSG0KISFxoQeCDwroQTl8cGxEwYF4AnNgjbk92zZ9timhzsfu/1xwvPburruusFUfm9vbzGOoHhkcnzu9XGQpmI0dQpMSvauwbpuvBAP1M7OuvT0zs50WrXn5WTmY+hPpc5EgALRUmEr3Ax373rqxe+Ap/zE/yng2QG302nVGKzO4aDPG1tdXoRmN7O8Mv/+2tpqVON3u6HWNTodnLlGnS2xSRMCGsLEpDbh48pMGG1ElS6IIWqjeMwesBuYxGxDECaeEAha1F03CzwRoFfvDXnswba9DfoHky6+Qcz0X72lw+tlkzDSyuNis0l2kKin9sT6unZdtI23vVLWKNRhFxCnS79+IyqEeJyFFKdAoupJwO7IyAChv+SS5Fu6uh/f/dg1jxFSnYOojnyBoFcwMjExUTw5Ozv7+iTwzM+fGu3qGSU0Owl1Ck9gCSTrgGg6cj4VRCyvpQMiKCV7vmAC4qlQ2Hqg45e7n356z3fQl4Bn9v94VQIcVpgGg8ZjCLGaWCwab0lwNax9pF9b9Yf8Tot2Y8Pv97iRx4CI5E8QINoJSbBlM1VtVgNbcSW6hbSA9WnYJZ+KisI/B3hcARPtErnreffy7r33wb0Gqyeo1zfsvz9pU1GF+NKtj968r8l+kZkoAInJNnGWHPmOc0K73piZdLlFZylVGDGEwdeg/OZjbCBzoPpSJybDBw715IxH7tl2xfZLNz185+DOum3XbvuJCmMXunf+yERu7kQx6NHEceif48UYLcE58dcEaScAxQGY4PIZxAgG0eOIHvV3dEAfQZRSbE5OTEyWCMv3djyxa9fTSPjveKRzJda40r9xBYV2algnazA4WY/T4BteXV5G0q/MB2MftTWF0fy5DfnP1ZpIxCnJRh+SqlXk5rDhvRCgChkGbYSjpbC0tMKCBdEXzOaA3WW0XXDQAHpqyhK1UREAl70PdInw9DuZ9v0NDe1XbdqaWVl+20Wbrrv62YWL5I4ISK7cbHY3H5SbHW4350FZPf1y0iXVkNSM1cYqhK7S+PHbokLsNtCG44d8NF0JPO++ZNO1W65EX0HUPbYbQ09P/PSOILgEvcj28fHjx2fnensJzi7gOdrThcqJU0SIdmcQxSpKHxzt60vt6eP3tyC9D6ah7uaOTEzm5k6WlAoPvPfEk0/u2vPECx08+nRx9gm15x/xybFhH/gnYtQZYoJj4WU0JDjCFmfW2ta8XMQdkZ9wFTo4tsNI+mNKFenpUgVGaZPSVFNZjVHLpG4sF5XmyhQKjnPKHU4pFnT/iE+6gDgpbs530700b17XwLn9wYamhtpdD96WIyu/P+ni5E1P/741bA3I8XpwifCz8ojH7ZA7OM568tWkS42VLlGNrtEmNWHF8cahQqEATImEH9J+0JX+xPORSzZdccOVwLivr68zo7OnZ5AGnyHBCNXO4omJY+PHXxkf/3IIBbEP6U5MKRGcg9i0ddXVFWV07wYjQIXo5WelCgQdB1pb9vGLSRkdwSgwXS5saoPqsLq6unx2kfC84GBI+YdZgDOEg2Gfwe8JeTR4xkTBmCDUR6PRtVWWM5sj2sZ1ccjpRHzS5VDnQP61IbtJCVJVKmm9huQ3isvKymUco9m82Y5Fl4leSql74aphQ+TxOG5C9eTxwOet9toDB/qb9j10t55pux4c/6JbT16yZ6/fDQeLmQvVvhZwkKrgd1uDbz1/8aW68urCSrEMHBeTwxsDQtoNZxGHx4O6/M5OZP49yPetWy+97BHIloLiPP5oD38KfL13bnx8rncOXQjxOXscz4eG+H2pKAUor12d8VbUCT6PxEchzdjd3dWHX+dndeXn9ed1dHQU52Bw6B2ZPnz4MPBsaG3p7/gwGltheZtRnRAAJAH9jSfKoEdj94U1LOv148lRFNCZ6FpTbGY5troaszrcnEqxYTEAb+y7keU1ApRHm8UWn1VsMvCbqhSdpECr1glLK5rZgMPMqqAyF/yN55/2IIfDz2JeRwW9psHJ2pvgKWtubtNrmP0P4k8vvvn0Ew8+dNBgRrr/HGraxUUiHAI1dOrISzcnb7HkykrJwUVrXd2hz8uFucUYBHGAJwUqwhMN/p577r7pikeuvOWOvnwo7TngRFA55uaOHT+OFC9GgM0enz12fA6A8pHnIAQZdV2dO+qgQMVjtA6A0qTZh2bey+8hGn/wjjsy+4uLEZ8T2DTXF1aMNbe+tudg08qi08qTg5NzAXkKWR7lf1ss5PicBuzZNXZW4/X6jno10eW1tZn5WHg1HDZYQ06Vct0y5rUGiJfD0ie2UdpJ0eThtLHYSCVRqbVVElONRdagMRegxhlrqrIv7NTwSwk8zQG/4fokyHW8+xtCXm8YFr1axn6UYVqvRdO/+LZTn26972oN8AwE2KZdEQfnAYdaOPXhU1du2uEqgRJfL64GnhbR4ckSCCHkOEBLIjypMeGriPDceuv2R7L4yNQDreW5aOrjs6iZs+PHRkZGJmjbAWwBaN8dRP5BDu7oRAuiQ3yJwrRrCmQgUWAxej35yJY9+4pzSkompw8XDgyIK8aGW5987d21xXnOxgtYWdbvQD5RTsU5IQ7wdKOHaxgNa7B6GYOGYZjl5eWZFURnOBj0+lnnunJjw2B3OrTwbUELwZ4DtlMUUvQnaSPt4FLgQIpro4oxyIHmzUqjLdH4CkwoneQHIbOd3Gytvfzii5KSeFfpwSSCte3tsJ/4GE3D/USiHjztSb7yMk0A/3Nue9suM4d0NyzEYkd+fHPrQQUsMvDJVOpcFlnhJFq1QJCXSVovTlaiMQHPu++59JrrtlyevjNT0HKgZa+wJHd6+vDrr4zPvvLKK7MjAsHcyNz43BwiNh9lE3AionfEexBOHFC0qJ7eiQmaplCBd6Zlbbnqqif5Obkl5WXlAxWHKkQVY0f3v/bawSa/U1nDcyx9wWo4tM0IiUWgHjRsBFLkHLifN4zV++KMNxqFYAfStDi/Gl1dC4ZnQhon93Ojim2H40ZJlq6q9fX1E0qFlrQ+Mv9IAJ0W0OL9lBaXdnOVtkClTPAlvD0e9DRFrYTsrhRtu+IyAHp3O3W+5ub2WsZgH7Y0PEB4PnrEfHHyxUwEgoo71rbr3Pmz88sLJ1dPf/L9m5fnukrLhLm55eQ6EgsxRwsAKB/LcCJLFJ/UmYBO0bbLrnjkkTuz0gQtLbll5eX4EkMv/nzg8OuzpBmPjyDxUVF7OqmbF+0o2v3I7gzASXhmgDCBje7s4/eCvvelosCmpd5z6a1PZrYg1BvaCmtFw3QaDj5xsHX4C4WR5176YkljdVo5mJwDUsITw6YjYPZQWIYXZxYBJg7wXEURjQHPteZYlHH6HRvrCvGGslpnI/cRiRQ0d8a9M/AoSWmnk8ATOjv82zaXEg7ZhMnjgpcJ1luJzaRIv/+KTRddtGfYw9p97c217V4Do3OVb0/gef6iR+9n3AF5tjuq33P2/JmvT506ffrIjy/17yysKMnJRdoJccpL4uMKtr8IT3IaIDwJT8ybRTtuSN5KttdUMBwElbC+vl78duHh+kOFh2ePoZBSY5oiqgQ0d184GUATP6gp4Zqkd/XwcVLxthCWXntyT1Zey4H9DU1N+vZhn8/u89XubS0TwwzRyDNhZ6uB/9C6DqKMMELkyAMwe3N+FgV0BrxzORZbJvpJqh1AXV0NxqJeq8FpdStlG+s6RRXcyHLAKRe5tIldY0EKgNOqaFFB5RRuY4UJzqqqv/AkfwwOsAf/N5Xc9cDWK5OfCDuhz9eujYW9XsZoLLuAZ/I7bSHCk4uuPbvy+6mTQPPIkbcKS0sqy/LBwfNRx0Bd8rApg7RLuzNM7YhNghNZDzCA5zWY5jOJ4pCLDqy4UHyocODQoYHp8fFjx44hPId6qJETnOR3wHeKT6DanR6XUNNH+/Lz0f5Hya4ElW/fvv7WvQ1N+tq14GpsYcGLNmPXuRoxX/NsMOroGjc2FBva9XUbnDAgOg6MPQ4OeghDGC4SqLFV4p9RwnIG3MlgNYCcKhvXT5ikUrUSEwtUc12jNl6AE744GwBE8kN+Um/OFsFDrdQSn49jGc8CIE8/sm2yzHtue+CKO4KclbHra5vDdrtG0VhyLeG5/a3zye+vcA7kOxcNPzNz5vQpwPnJW3qxuFRcRvt1PvxxOViP30l4khEmlXZlhCd+kNQEPC+7MXUnDMiITlg8IeELSyF2Hh44VD8LLk+dHRx/sBuiMdoQ4QmLfSI80eOxgUvfgXzP780Hz0obhNMeW/t9/fvbmvSfrB05jQ36AmZIg6axUQFHHg9rHpkM+zN4kZRgchJyepicbjNpmwZ7NLp49ty5lfn55WAMkMZWm8MxMCeNgTP47BrWun5CKzEZVfLAOmQ0t04bF94TRmP4wSS0+DEpdBIJfDdqMH7ATPZEvIiCE+Mm6CpeoGjreO3Wg/aIX8M019a2jwUZ4HlNPD4/+T35fSvndADPWPTH6NenTgPNHz/8XohTJkjlQ5wQgAnmpe7IJCzT8KBD2zKyZqZR9m+7Np2fCXqTWy4sFEOFxzfgCUn+8/G5YwQnyudoJ1IbfQiAQn0mPAlQjEVdfX2Dg31DfHrRFL8HHJ/+m3ktDXo90Dx9EsfL+lkv4yI8a3hGmQUS8IZrQ/vz+oZKVUUWfycafsDpt7J2UulA3iPn5ik4kfoNzV6slUKhEGv3ajROT0BpUun85ogzEjBzPiU1+wJaOEqx7CQ04fuuLlWl1JAXp0Ydh1F6waZM7iMpmJSuyuvTd7SFIiAU4WBtbXOz3WIUbo/3d+T7hyHOCjyt4cXTXy+cQit69ftXX8KcAMdCKj9eNgUQfNLR2bNSacZOwEhP03DA67dtx2tKSkqEZPGsrBDD5yk+BDwHpieAZ+8UDlh8RhHCk+IThrH4IUSLBkenpkZHh4Z6+rBLIhUvNQ08or9lr37tEwQnTB4IT6sn5LVbXAq4nniqahjzahTVuo31dZiNoA5JHEtLbqyLQ9YQAy/YfICYVORc5NwipPlWPePHIlmDIswM19oNjqqCGt16wO3l3JF2RoX0Ji+/VqlF6UzI/hKFCBop+JGphggTrUIpSvEXaqWpgOJVVOnTeH0hLIu8R32+5rHhIKNTFN53Ac+PQlYPNBE2uHLmDMwU73/63EvPPUdFMy8njVxaSD9a6PCz0tDV0whQwhOgxpc9+NdLr03jC8oxWJSWEhcAoqKKQyDih6dHEJ4onSQnEeEkkgQ7OPAEqATr7h0Y5qf6sALBIEq49/Sk5ZOCXNbUfITgxK1ZX5+BcoShp7ra5UI/UogaIXMXwhS3DrOKEXZStdXvRP10oih4o6uLy9w5QhOgOhaxix8Osm4rw7AMduVNvvmApMol0wasPhoWgxJqPrTrUFYBT+o+lOEoITAsm9RqApJaFP4Q+GZXQdUD+lIVFt8WI0DXGmUwYul0Mlxg4f2JfP86+X1PyGB1RPx2z/mvkexfPfPBMx0dyHFCE2iloa0TbnygmUV4AkmASqZCrOXIr7nlgbS84vJ6LDDpUMIX4gE4c0fQiUg5JmWOKDwFZwJJ+ob4xLYDQFI9GOwiWKd6+ZP1ZSBp+mAYaALMM2e+1nj9IcaH1YvOYuFZ4GST8ctgilNuIEoVJolqiXM4AhF8Co1meXU+dvasg1sxm89FEKUrPntwjDEAyjDDhPX2xbOBFJWo2m4PmQ3NYUa6WWWxEYKolARivINnk7lIBf+3DblNMh39o4UMLDVJSDQ1KatdFpUKS5MCpUWHy6wTwb5Zejnhef+pSPJbGisLyYDzc7/DjvbVp8+/178PAPKLU1MBKOoZOeChmdN+g8Iy4TcgayFVOkxMt2ynO7XQ1OFjFFVix5QLE+IA9hsToJ/YvGGvUQQ8qan/BWXc9kB8Cdre1BBieBA/MCKNz9XDz1Mu1I+tLnz9++/ncc6wGk/IN1wJQGUiXikWEjIX7qZrhMkCwptRqdIsWa1uN6sxhA0+7/AwB0E3QJKEnJM7MD57GY09XNsWCjLBcNQRyJZgMvWvmM+uMR6zeclYRWtOE8WlhMYDqqFxAI01UpOqCp09YS6UqKVgqBS7UkU1TEc6lw3+RaMRbbLRgsQR3hjP94WTySfPhUIeR8SjObvwyZEPf3j+hffe+w072yzMlVmkwcfDkCxbpCoBxXimk4srH6IFzesZN+YAQjR1un+jsrQMpbS8cGAam+E5rDaIKQ12E4O/EJ1IeMKUTE6Q7DpHe5DzowTrlzSnDrxRgbdoqAWe58+dP4e7hgxHGUhwMOZhH8gTlpZWkk6JAK2urq4xVttU7NEvOHMkxNgZTPAca7UfDTkSgOKBXutgvayvVtOsCTbH3NoCCavv72jDzXMejNl+ncVWUAMRVJqNBNfGbV/ZIPJxdE00SyXikxy3JpU63vBrZCg9Cp0OjmAIRRayWlcbRbfw4vPmQvLJFQMWLBGrPbTwyVsfPfPOu+++i8zGF/xZNAalxRsuYER8IloTaU5ECrtdAXYYmTsyynJLxEJEjoju76J7Y8qnJwB0PtBEtuPUoa0TlPhGBTRxEj2pm+b3UeQ7CiipUtNvi3AXzv79P55aOEPh+fs5K4OFb624sqKyVMgrRZGWlRaKKmCQqXYpJNWqGoOB1Zo9Bl/Qy3yhWXL69E3DjN2aEmCwDnNzUrPbyXFH233tXzTXDvvVpqVg27533jx55PxiRC5Xi0pEVSqtzYSEt9CtPKBGOOoCtdqG/VtBQk2mb1Va3McnIavOH0ycjVMTdBjH6c26uOv18q48CCJeCiYXd1DCNt1WzR1Xa4xttxdZTNbADUFoQuA0IwqLps3AlCJDwSAIqsvgtDIqjCiyEnp/tVfs5V/o8/xGLz9xA6Sl3z2v3+f7/CJWB8Ich46Brz8YlKiO5NqRJiTz5e8fP/eTrwNin0eH3v/qhY+fP7B3bz85GyRRzuVKL5R5CzsvIv4Sik7kG8BLBJDhDtNd/ig7s9RSqmNZy5z0dlpv0Xlx9pOKGLtRKOHqCkHgZKGGh39AveuBmk9pOTHinbueew4LHRvGxsuNW7dXN330ksTPr5t7Gr191RKeQ+BJUWb2m7X6iEtncyBGaAiDInjGh5q8jb45b317W1v71FQi4GuPRjsXmfjQj3a2drYEWugOp1xVi8faDhw4+cIL333zy/EKe3laqJKVE4r8Km1QClA02IiPat3k8traQumOVBWvNnygsLFft1l6C4cjgl2GIzwyZA4GMy6AZL7jr7pzP0cC3nV84OgrH331w9tP7u3v36CUWCJVyKJaV3saSkxHY6RECmKXxFTqfAMfhpJMjVZv0vHP1aGHLwVPGfruyoTcELqT3A6alJzAycOlK+/kXH/9nZdyVibD6KfyM5/+CAl96tWDoWFbiOLi0YfbziD1+PD99wLexFCiHbtEHF6aojdatI5gWAePrtPH/Jxwj2+x8prOOGWgj0TeW719S3uPd6pnqnqqtSVaCJcJZ4zWveUaJ6r9htP1x7bff//E92+8svHruopYcaa+TDoknd5jilTKHNkRxMvddra4qN9l9ovzC68nCzOqwq+MhcEzHHO7gw4zytFgLIiJGi4574Jzrv39t3M/jx6t7zweDQx9/s0Pzx/o33Do0CG16JcLEcTmNSpMqYsUUZcrqR08ZW6p+iYjv2E99Q49qUhLajehFiMQQDzvT0tTM2GgInICZbqKnWDJueGG6+WIpYKomnTu2L/n1KlnjqAcGx8zciwmW99U3Hus0eudatpYbQqVIyWzpOgs5coRzKRWm5nUao7NeXspzuNTmHGicXGxbeuW9r5Eop1lV2+guSU6UMZIvGwgWriCFY7Yz6d/btw0MTFx8vvv3/ilriJiMprLyqpWrNVbnXaPbAO5zG46JqR0leRztastNKhsczAYVRWTh4bX5YpE3K6I32aNOYNhO/5vvOmKS85f8/vv539yvKuLqZHvm/e//eHxAxue2nzf5mUqLm/duoJ1wlBkqkOCks/oQOUIQWlUeiajSRe22RB7YUOlRgkBjJV3imAGIp4xkcROBaZydmAETznXY6grL5WyHpcnfhI9D56YH54ZDilZvRYZ81Sir08KcWhbJNGE6ZRJiBabifrTEXbbwdNs9Tc21jMZQgTSiMvPBbZvbauu3sIgd/u9D3sXP2xujdaVVZRFB1aswMQ8VadPd52Z+GLi5JNfvPlXXcUfZr2fyMjauzCiOH5VpaeSdO6K1MLNiXvL+A6bFFGnCPPgTkhFdE8sgLFfTZ3hjITddMLW7Mtuvu7G33+75LujsDVdrfH3PznzJXhuvufuu2EpZTSk8IQ1Jq1z2LlQEm7whEgCUYg5oZ7KTVS1VpueohPzlDU3ogP5Oo3KU+GpeswkmiuTeN4JoMAp51ZpO2t27+/YA5yvHpmfngFPelXpsnhd/5S5L7GRgcdWgjJsV8r06PjkJFTLcGTJUxV0kAL93rlmomPAS0EEoTy36VHwbNta8ui99x/acuYltDetXS1rOwfUFK/wdMVP9U0TX+ydmPj1+U+OV1RFdOEqaABXpccus3H2cykxC8vsZqSeMhkRSOXOg9uoqmCbCQGVREsXglhid4z/f8TjCsoCv9Zw/+1rnvr9+CV/HQvQYPzs++STF55+/cUNm+9edXvBulX/4pklhLrgqap4JYgHTsySEoncYMKQdAhlKWL0nNLknlvmztzVHftzYTzzkj3mMpwrk3Di9MvPuLsM46iYTr0LnN0Kz1HtuNUGUmYB1Ny+sW3T9m2PaEBTo0mZHh7nB8ZDOhcbFeBJjR/zQjDTvDd5exgYx8vp/fVt9z52/7aS1PzHmj5sHGr0zrV2dZK76S6poF57YeJA/94vfn3yq2jd6T9YIfSwYnaNO6YLwjfResIus1nohChJpnvRP3tqad0BuwrI7UHM0c22pEgOdfYGmKmGKpfp3odLDr1+vO7Krr7m1pbjLYHmwA9PvL53w+bbby+4sQAaXeG5Cjwx0DRloHwInuLoFiPUsTTsAqjerBNv1wqexSX8jIRa4fKYrS/3mMnYSS76P57ET0lI4MlE9B0mJEfQ2U9SLQPm8mGrRr9lu+XREqnPBM/J0ZHp0RFqM3JCjDfSLnyTr6WzNeD1xnt6vH/EjEUWvMawOq0k/7LHHnu4fcuWPlnglGsy5NT99t4rjz+598De/r1vtdRVxUxWV6XL5bjN7Q/T8ogmET+nlURAW8kbIOwnsMKF8A3CZ11d4eKcGzUyywSkN7PZ01DlaYCMDTNe07QNDNzX6W1uacFh4o0/PP94/1P3PHgjp2BdAUqFAsQ0Sd02vRJgJjeGiy0cVcFrrVYKJEvISnI3MWsyyWUNwCn7rPxnq/7pMXHr/+Uihej/8MTfd4q7M2jqPjE5qjNLHQuSMAHSbxGTGQSK+JGRSMrk4cNAKjyBuTFhc1DVUwgutrQG4vBHx9p77OFizSCzLk122v2rLzyU/2jbdiqvud5EU7xTCdmPs/L1wttfPE8h80ZXRRUDTXOD2WlucDkjTODwaug5miDWtz1sZgmeaEVFestdF9DXKBR6AxQKLqfIlYN+B/HB01D702mn2VSkaWupaI8GAvW8v/GeY288/jrmCZoCaGre+tRVBexhKpkwR2mNOSVFkE/FJuKmnqyuD1mMUPJQdHqh+GQEys/ncoQoxjjFz5fx5JMkjApP+VgpCV5YegIoIyY2F8a1YJh0dp55uzjlRdQLiHHocFPGmch3jw4P63R9Ca/foWcfSm/u7eqNk919PYnGiL/YwMboiCFn9S1Z1x3SFDEj3PZI29xGNjhFncW9A1+/9NELE2+Q489EK376w6FH+762wR90RszwTVglyptrZIfaJeX7f0tEpHekttHWxfoAu7z4vDSaDkdtIXXVaSRff0TMWt3pimh0aCjQ2dkbbxx69skDT21+8MY1N96YyslLv7QgL1XZJ207sZMH6TxZGAY4wKNhVxc0WKhj+FczDMU4IZizZO7JIQJLamcbkUKTZ2WiYKmO2CgwK/vcsbuGih4TBVCt1mYjFynTtPLqElRYlpXxtFRrKaGxw5qxbgmwDq/XbzaxBFpuDXTV+3qOJXzkeL+jqGgwNDq2LyezOOfqQ1yzsX37I5lbE1tNiyuAE53B14zqzjz51sTJk0PRgaqf7RF3xMV6q8Me1MGuQMvh1wyVGpzOhsr/7qyR8WYl7g6gnYvEbhd4AmvYwc+6nVXCxv7htqPqiVZUb/Hx94n7jj37cv9mZZ9rBM/1qSvz8tjDFOm1MCBQc+AJvWwsN4VMxnLJwKq/VFM7vkkMKEnLWZWXzGaksgJyUbpq2KUqIslTzgOipHmeVTa6S8pPilTwpIEXPPWAWCq1gpVwbJIqCR1FmsymhdxKGRt554OR7vFxM42z3Up+1estpojn515vT5PXOzflcBQZBifdS6NZqzU5VxNECRYlGcXaEotrRSGtTkVrM0zzpolXvji5rb2z4janPwjxfo29UEdMjsFPu2Pko8oVGCqn8P+CGxpPEaUMVNSTj0BTCqawo+G2SpyfsjZiR0gnirotj2z0MaCJY5/9TxE/xTzXrE9PX5+eV5CaukoJ4aWe50laIyZ0GKOlXIcJsYNpYQRHfiLn82eM1FbJm0AjwKPgqUAUI1SIKgvF7+WZAzMi6Wh1dk0u3RS78qx2l7K8TSjhEJOpbyklDPmrs5D08cbmpIyGnjkx8pB2xlZqDYuHWGFJdEF3/dE4fGZ745Q9aCw5vFBYOZObWZR1VV6+xiIbjUZtSXGE8ocNtvoAk7o3vnj+5MltQyzaERY9Za4q1mB1pQ6tKeasqoWkk4xEKZpcxeAXR+kVK6NRyKveoJ1UxMBA8PSgNa7F351//IyJgmfLpsce2wTvOtX+7OuCJ9Z57bWpa+ROFRARPJO1EikJ/Qeit1I10ijV68XfTRTZQGoBTnKGqIyJu6mwnQC5Xo3ZwRM7TDLyAm4Sz5XKUGGZ0vNEHZLBe3EL+pqRWSkZtLxVHBuxmUKXF4bAVkRhTkooxFj/yOTkcPesPjRaPKsN+602NLG+xqnqoabGKXfQogHP2skHdpfkXJ1VUgID1rH7ltmMfTHSSlVnS7PPO3SmbeJFms5jP0XXqq1+0Xo6HTqI4iB7h0yVKOrddPSkJiz1P5kUE3o2aQY6WSRyS83EQ5gt16C7gaU3uaintpDkFbbk3/+oRcv9XJoN2Ydux9nTL7qIO0AuSiUn5cnkUlhjHJ5KSXpMMpG0QjLLpF/nO9T3oAHkSmJL0bqe9yFVAVrAZ+n84kPu+kpVyR44l1Fl84uqDO3SvsOiFmWXZsRKKuII20lsVoSLUAYwWoTuzJTR2SMHDw6Pd2u7x0y24bHhUX5My20Tc4mh6nhgqj3msBQNLpSdnanZb8i+elWGxmLI37njobFbBp0Qnfa5OfJW06ZtL2/bKnhWUGBKOSQJ3O7B5hz+2io3lLxT1jtplDzuZaENczuZLMOtXBOta2hgMxhMCaAOJ5uFTuJurd1JU4UReyL60kcy841WbpjZ0L/hngLsK52TelFeMn5KWs9XPEixbARz04cxVGrRF9MeSe4lABi5Oon9LnUnDZGTdyEVLMXjRQ0uoMoBThxeQanIJsWFZK3bsXqXKJlF2jjWPTKL0TvCfink9TD14MhqDi2ZJh/Ffn4a9Wf3iSMzS9OjoWLNyKiW0l5Li+QIzyW8sEdNTX6zRlO8cNYdqsk1dFydk22cNQzu292xb88IwuSyrmbfXKCr5aNNE488OrGtOsJMGOpIuGRst8oRYwjnlBJ+bQOjkAaaIsBWLu+GFhVcIas6B1rWrg0GiaDYZzhGt8/gLlpWyTeCHl6oMmLWmYrEl//M6O/f/CCGpPIRkIhNZRE+k5UScHKKUdkZqJioNI2yyWkAZkuxbLRRwlN35hQQJ9angyJnuS3g8GWqouv4UJ6eFIigBavBPA2HYZ8HRU03q8paxjI26A98NUnFyFJJVmp6blbKjPbgkRMzSzPzocP7QuR59ka0er8DQmmqfWOiaaPfXFw06D/rBM9bOi7OzSk27jPsr3nomT2DS2cry1oDc95AS/RrtGJntm86Zo64qwQoVbVjvU4nnY7IaBnCQdyp+MkHAItiTK6pq6uIdg60NtABsNgNDRJzoyuzO6FZKzHWmGtF1VpPmKRSgg0gTtpwKOvBNQJn+vIBT7U3KJMiDWByirCXIpEX0ccrPR3PBnWBSja/iZ+pYorryfKrZOdN0VSS8AvWr08HTYWnglN17lkY6P5d7HwROsdCDPGKk4FZIrNwARnJCaBEkhzCR8rk+In5+aWlmZnJ7lD38PxkSDs2O+YIN84B6Maenr6Iowj7LPR01+x8qOP6dfsRpO3Z/emeD04NLpxdW9Y65/UGRPL22TcBhDJ6mzDDwsVJBsepJbWDJ8m9TO3IL+chhapoxVi7RQBav4jIr2sRWYAQH3S6zeyJ1fp8wZjrNsSdZm25IRP5Zr6SxiM4vlHBSRAVQCl+2PC9RQpPoxEc8XcSsYqZcjIkL2t2SdVZQ40o3i6WiUXyHTkocpbxxGqxy4suksgpEfUuUIduYZUu31BKRCbLcSylJHY9XZEkOMBUrUHyesDU9HUpo8PTM9MLSwsLCzPjo8Pz08ikBmdtZhj5RKK6byoRNmsy9i2ULR1+YNdYx/U7Ova9e2rPjgc6nnn34MLZwjLn3FRijmm+77OhQFNfD8UEpLSngR5ThLXKn7FO0YywHUNQ/Lf2pF6CmYcpifbWR+t9XcB49Gjr0UBzV0sU3X5Xa2crYsmYvRKm3kYQzM+mvsxVsW/Njfi5ip+X8igXRjLlKJHC0yLcO2N2o2KSsVihkjrYGJQVTJZewBP0OCDI4WtBS/DM4WC46StXKjhVuuO1SXgMAditKSplKKrKeGsId5fWQJk+8ThH3k+5BE9eKDdlcnphYXphhjM9PYx9jmDR4OmIeXsSG5sSCYdZU7Jv5uzS7AP7Z3fdufPdZ04pPF995gh4Vi56+9obexe98Y+OUa8OWUmtIR1O6/Rgo8n7FZOiOiInk/3/3aYCyly3xj06va3MAlh0QiVR34zUgtFVi9xy09q76EPBw8YNBR+FOHjKXxks1/wfTz6DoicY4NXgaRAaBNuBA83ANJ9jMi+i97TdsqABaGLhSO4U4Zer/F/hqXAlHQHlf3hKdC5AbJOdyVtlknpTGkzwhIgnsVOG0xZRL0hHgbcrYiYlsrCEcYLm/Pw0vyePjIZGuh0MIMJMM5oSfX6zwYBre+ZrduzbdWfuoAHWf+ene468271wlm3Nqb52tHaiD43XN03hmeUhm7lUrzN7WHal3hdDVSGTbTgYkP9ugZRbFVz2yoFOdsO6WBxjOO1jcoq1IkCu72R1pLW3UednwV1L0WwpEp2XrPTnrVF1zT/+LkaUBUPP5A08lX0aLWpjm+CmhhpEt13PsdK6vPUBchIw+VwOACe/FMsHP16To/AUNAkNYA2eBomaNik5EUVAxRcLKY3DJM1bXla9W9jnwpIHQLHRYcwTf58f7g6NMv8Oi7tzYjZNyWDkrOdEzY53Ou7cveeh5zqe+/GBPd3vngBPzxy0/RRCPG8cH03EHbbScpNVr6FUcbv8DNRFtqDUYRD1tf/iKYqwMjDlTrW6aH3rAFFT1BMwHo1oe0+3NsdbehdRozVxYZdDDSTLizOylXw7D3+XSgc0FZ4XEUCzyUbACZ4SPwEUVKmSbgHP1SzGZK8G1Bz2sTAfGdmBIHAmfZ1n2fiiuyHNq3dJwJQXVmhiyLI5KxlNsQFmqCV1/8Py1qGAiL0LkvJprsLTvSBnBqJ0fngYQ+0eHXfEqLASGxly9IWtGYLn0sEdu089d+enu5lY79n5wKmDp5bx1Gt1zJXn4oHm+JzPrAvNanVm0Ra5YuUxCiB0dSsUnlD1xFAFp0r/DYDNFLQs2rvY0tuKgx896kNKGe/phW9qDLCx1NhXvaXdrwthdJKgxZCS+y8KT2VI8piaJdm9hKpdkFRH9SwZ2KbikZBw7UrbzbNaoiF15HBUapLDI5Z5ES9IUSp4KkDF7oFTYqxSoBCVcXOrIuqsxE5FU2UTjJV9AqYyT0JICuS4Y0Zy0vDkNDYKsNpRes6Euam9+m+mzq6nzTIMwBwNghqMOISJDTq2QbAsq7TB0lbaqpXUrKvY4YBYS0eYfGRtkUGoDGsDDiWjqekI6QFkYXwF0rNRggcLyUgJceFA5g8QD2SJv8Hrft5WfTaYsPrS93rv5/6+n0UpCPuseuMWPBNzC0/XPjw5ifN7bjKRS6wqni6Or0rBk9maleeHSavzwELtnMj2xoTbSquZdaDzIzBKFxg2KC+efHlORrxRoi2jD7pH6Z8Yev58uDvUhdIeejh2P50KPR86pI7g9VtRnuiqGmSh9RMk6V3xdVCdkrRQTFGfmCMTAqoEUyST220QNybGqKCa7oo1TlJ6k15OrZKnzA8LTYp0vlRRerayshamGs+yPE8RTqIFlIld+nCdKiGN8lTvqBkFhFAroK159cHnIlLIPm9mfX8vs763ubmX3c9iyLDv6WiUdtFIOhI1GA4GXxzPTcYW41cF58lMfG4td5I7fUGVCFfbOzAR6nos0wvdA5zKZfbwzef3pp5HdwnIDAbr9etTIw+lqayAs4XhDwpPDJEAlva824MdCDLeOzyT6bGRB10Rl2+Q1LIkE6xsdzkMhPsnOSfCJNaIykRxBUxFPjHvmCMWux2zLpVN8pHE6ogg0sdhlTep90ozNzLEjiebf0lIIVUAJS4qrqysrKosLhGaCqemPhkthj5RrEkpZbNIKCPyGyyjnUnPxtj5m/SPCFB5pRomaSyKRmyiEGYzm5n1vszxftaLvvWmk5FANPjHH8Hx4Hizfev0hT8+Ofc0cTV2Eps7ScR/j/8aXzxtuXzdT6+Eq30wRLtdz+5Ol4sqTZ/NZTaHRj+buj/UZXO3Lbd5Bnrujw5RxcvbIrpFOAHwc/910nicbkOWtBecneTrQqFUOvKA1tKgzyVdTGIAPGwuDCkJHAwwt0i0KWYDngBlIZ+4pqqDwQB35SMZDCaOpEF81NKVtV68KUPaAFUi2igPBwrIJkFRRUV9VWlVabEOe6TxVNqTvQB4Qi9RnigwkvsIKDERXU/MfNZQfKJcIvMKojFEbXBBeAYjHuLQR32ZdXhacEJtSHUwkkY6o5x/Pp4ef7vGMdEyOHMz9uva1QVwxhMnvyeW4rnjFy9OrRxr4BpwUYjuGdtNh7ySaYSnOzV1ZrQ/7PK06acdNldXcpSDwLBLUtvEtH/Ue7nd1+tt52AQEs++G6Ds7CTFlEzhLvRwQFZYNW5ZPbSu2OQAC3DyZut03GVdnmdxgScuN3lPxZEKpxJVUhQgE2ISCZXV4pTfZBpWeOIkQUndfR0LnsW1lVW1lZXFdfKk0MgsHSpFpFOdD0KSRZLT8OzjM5ZdTc68TfHppjZVIyDlJ/E83r1UFExz9mqf25Jhz6/P7u9teriXtOzzSHolEOzfCRAcdJw7rfn+91+PsO8J2iFPYrmlmdzx5cunLovD4fH5Q6jQnmQkZHHo7W02v8eSGjszejectlgO/m7e8N6PTrkGbzEFQpKerX4GY3Sm/YOO3uudt250cGIxkaXw7I0kpQ9lqCvYL4JJ7pCeTXg6mEtDNlsJujkIVeFEPlmCk7hRxUcsyg0qd4cpopYBf2W3Pqxv+rDu+7prksi8KAIKJdno6koQrC1lu5/9tEoiA12JuroO0IJTE0+jW2TTLDDFESOyZS4R6yi5PuEpp+XwlFl12PdwWGKnjYO+vgwxp1/Ob7N4kZM0vnwymGa/v21wtrccx7+o254um1zKrc3kjk6OcrHE3q3OYza02+ObONyhfRGo+NF2R3gn2B/e+eyMxeid3Xi6ltBbBsydTt9t6u8c/PoBPH/5LBgeGh0dkWreSPfjoaHewdu3n489p2silBoe6wr0W/qoozkRTbPFaMdzbjjPm8bDZhV2JUtEqU7Z4Br8zWbKcdCUwy6U53++jhQ+Lz77Wkl+zqBO1ZaJtUUX61iKJ/JZVVlZL/Zd9KYYe+Xwy0nTwNNL+xgs2fNi8JrpYpqhcwKJ/4IXA1LFaOrR6N69WHT3J0lrMeIkPPeFp8fsCaUiUeRzJ5oOR/vfMrnbzw1euvb97FpZ7CghPOOJxEni+MWtYytPzuMboBsHnl07bjvVm/5I+M4PgZFzHd4Mqns6vtbnN3a6fQgmxx/eJqDvfMyBLn+qCTIaxXdWQj29vfAcep5ExGn2SQXGPRZCOhx5whJDjZwng10HgSwQFXAq91PxbCD7qGbjSPdQGGtU4biURPAnr5RfUzzlUEUlzPBs1a7F3xajPMFZVVqm48XCRqXv8zxVe76U87UStChmJrp5IrTgajzl+cqHTr74+GKRUXJbKtjP7Lm82FTG8m07ySgHyaVTwWAgGbAbLTcu+xuvfX+Q+HAOb37t6GgmET85IolHq4TZ7Z1oZ8STxpOddJtdv+y4G+j/6U549KHLwEDePE1+Flfz9TZXZwujORMdnDTXnno4OkqL9BiR5ehj2viILqfuDT8e5iKcV9m9Eh7nDVH3Yb7IaSEyomtW+MjtFoxwiSxFt5U9rNrm1TgCOFWSE0dVk7WyCniypKQh+Y3zyrx/kv+fSypqq8B5Bfnk8Wh+vPLi5aKIpzqAQS3licn5lwtzss5LRx7wWbCUR6wlu4rs+ja33S0h/mY2a/ZYLWS0nejPdDC60xWIhpNB/CdX+/6la62PZsrmthMz8dxiAp74S6do3C14ToRCNJRGd9Jmg8jn+E/f3gmMfO18q2Zjc3tt4WjTc6HXaKOPBm/AzwnA7Q/u7d4bXgmv9IQi7AMCVk4jG2XGgQ4fiTvx43G7HHZuwG422xuoUoBHbp5bzkeECqjaaeJ00zp/kfvHu5H8meZpa+oBTdv02oeKp/THYmUQ0PN1OpxXdAUlUnGW3nvjbGVVhbqw0oJaBk8d1K+17tjFyOm1Th3tJAzpgxD42jOWwJ/3pCt5v0iBJ5giBYXnb/O6UbpgTSYx7+jPgFVaAqhj229OLs/UTs4zrLO4CM6TBEmSPWmNsg4MhO6HdkORZNRsZJJkPPzNT3cjl7/2XKjZWl9ai09vZmb8+raOznYpAHOIIZFlhFGj9C6J/bvj0ZWesV/IgnJMABH8cPfw/Wh43Okmry7y4HCbqKHR+oWtwOkUlIUFEFncPk636v08T6+y+i8cbSw01kXHyz8t18FTuuSQcXgSGOjEe4UnHOB5pbzpynulirDa7+L88EEhhdERHFo+TM3qdG85Ix2c+dEFXl94sIW39VKRXuI0aV6Ep81ts1K+onrnce0goRGmgbzSvy+u18bW7PL3N2tmErntHDxja3vwzGy1OQlOQ/Tg7HAyopNeQLs5+M2dO5EzU9ZL8Ufrq/H40ydZ+7HJ2ME8xyAJDrQnvVH3YHdf0EVSXbimVNmn7j0gZk2FelJ/jN9F99tN8DQZHfjlREZKaRZcJH7JJ6UAdQhoPsHTCILGCyqdKfYBWOo2K9/T6ZQ10k75EltUVlyrgPKIqirPNpU3vfFeveKJxJEbFZ64/mhPRJMRRoMdm64y0jwqcGLXlUYuUPzvKeuKTMKT4Qeg2foQTKmtWjwIKG5UNBmAp9kpnpdt05rpm59+ZEosb8+vMe2IPTp12dyOPpd/J5SM7qYjqaQZBAa37U6bI3juA+tbbxmebC/En65m7afNy4PS0cAYx5f37g2NjVHG4xR7Bo5IKtGWjyIdGu5mmjnFcHF6vF+VI8HZbDA2CgGFs+DCw5JV4PmScrzFeSdzxi23IpmCk7+TmBRiVfDUlVzT4mxQoTgqSgUoq/bs2ffKy8vfOMuXcEE8cfLlkWC2xLhLGqlBZTq1gJ8fAs/80qmwV66jffCMi0xGJNpA2hJjyjgeNhUnxSrL6wwmAwGvDfvPt80MkTIU4XGS9l9mWmyh+ZjGdzrzGQ1xhdJRSe5F2lCfRrelDSXwwRlr89vzW4uxhenV7HzH2vIAJeCOwfbrt8cePBilLCoZvlGGxu4TS42RnmfEjOxn13DPAKcEwNOEeDQ3mAwX8CPVvoVnbZ6nLD7neZ6X7m8VOb7JTb+bdwNEZqqLqys4XFF94xOxMipm15XBs5SHUwHPK5++8frrr71Rq11YtCelJPz8C9IOJXUpDhwzojpR4dRFuQj9jXmcHB4sT+SqitUkAC6pKCtqBqcJn9VhB6ujjRvBQhGdwNMS8AbDHg+DZb52j8nhtNAGRLE0m9miMpWwD7R0+LDCDpvPj3GPRvjlMOGs9W06lsU9ksT+7OLcwtHq3sbxzHLv5529nGPOaWHd3VNT97q7QodDo6TlD0NjU0xEkZtnJPQxWVA5mZug3SRFLsIdjLEmneBEqIBQkEyAsiSQkSobr6L2AY18ZhRLVF1dfLWY2Ee9ELEVnq3sdm5dGpBF3IvPlr/2+svl7xXn9R/Kg+eHicdd0PokqEYZKZtc0sIDcLcWRkF0VEJpzOFHcC1ZZRUlwlPteMloO6Ah0bKRnhJteeg7NxgsHZcnGo2Y3GWzdDK7QEphahCetOq1eXt76V/GH0hH2ijhbGxmHk03OM+1+PTN+tklZvGX9g724sunt2jvdA1Qbeoe4F/fGpzgnFBGEpgf7WjvfvwAmD2SUHb5PWSPZWJY+eYNNSJwstdZvGsFVHP4dIW0haTKFHQdkqXga6ua13O/V5p4AgqpKE9MOhfC66wtrS8triiuLH/9lVfKm/KauU6rJ+ExNfLDkVGpM7/dTN/eRfE0tSyeihJkn9cKzdoKuV5tqTxreOodRjXrZAYmlt0pDl8zHRbE/oqnz9Ksd3a0THA0lrtGZwgHbQSk3kx2j1O8b/iCYYuFATssV/QPqstuCuAbls3l+U8ufN7iam5sPtieWVjbXj/ILswPYo78vlDP0IMuP510MtUMz3Zh7At131/ZDbF2urwup57CMHtN2g/wqSEgihCSQlPxVBx1BflEKAWTpgHyMBWcanAiok2vV+e1BNKHaaf3uKoenvV4nqWlVZVNr71eXqnhxJnVEpq4YOIpYM/xfVX7CcW2vOsuG0GHYEpno+oe0551bUWep8HuFkQWaecNh8MeRvONbX2IqIfEXd+ATW8yD3408eZbzfrGq63f9JudJACdftyBy6PYDjkP2xchexJZCUXdyBVnaRrnv5i0fmBtaJ3emI8Lz6Xj+PLxrU56S0M9j3u6BqApHG/cln+jyOq3pu+HiB6Su6mVXY/XbTJh02W0SFbju3XIQkkFsqTUVMES/Zv7RWJYKiMqX/IK/lSvZbNXV1dfbXqlLG8xeO0nZcWl9ZCs51Mlq4p9X1Uuxp6l03hKrp0QlkPV4IiY1shoEzy16BKeuLVcv14t4VmhPW/5s8iBBjxgnsTrRShVlOfQE/YzpCCNEFb3gNVocDIefBFVVnO1lT1s3kjEp7FR3nMPu1NRl4/GE+zWSmS3Jy39J8sbW8bpyfnl6377DG0A07H44pNfTxfms50yaT8xzDTtIMnNCRfnK5MFgeeAL7CzEg5GAwGiMovT8DdlLnVCoirKaHurOM+zYI7y0SIc1G1qL+LLAk/RaaXV1WUAbXq9jFUMW3jiKgEUnhpNfqNJi/MmDvmEpNTVyJnUUAI0Gez0ztVg5N5kl0t7OW1oUl4t4foi5pWIqPamoKl4HvTtbT6b3ZpdX2fua31v1ukx3rnz43c/9hNrBqO7QY/VYdwZ/Xr4x6/eNm5Vfv9r/Gg2d+2LteWN2YEPHj44TO1Ekl3JCL5qMH2YhKfJvjU7r39T/+h4/Wjt6WIuEYvlni3tx5/ud57uZV2+HkaaBv0DE34XAxBM4LINQkkXTWtmEfs2kfAG8mmqMKMd5pe3Rdy04qlgiiypfY1RxQPHCAlDfrEUvVL2MrIjGu6NV67KEpuBg19RW1pamhdOaLLIfRYeknL3+ZDTWE38yx96A4a9lctj2DFG+cYSrBGNtyLhLB6H+olqSwjP9Wz22eqWZdPi9JCiJ20HE1PDz9+GI+lAfyRodTkchw85hiY81rlYf+33k9xSbvKL2Jp9w9dyhtRvKtnVs5OOBP6IRENJpwOvcSuzsTzZvHq6d7SQ2F46isVzq2vPFo72bwxmrS7/IS2Q2XWXTwwbY3ATVAxTUa/B3NZnIR9mV7NBF8Sfxs6K5yLYKpTK5zNI8pIEUggKQ2WToM4NaYtvFra04KyHp2rgRsG9qhk2VKdGUwPCM9FwSjOUmsRpqMEK2U1scynegZNVklc0alKJuQWhKT/mfzxFPrf2nmTXnzzZ3LRYKHtkn2Wyfe5vfvzO9EMgGOS8kbDVajT2PGRie+q3W6uV136P55YWY6RB9Y985OcPk7jxFDmjgT+idD94+4x0i/Y9mr+41jcIz+mlVXg+XY3Bk56JrJeSEjNw/iyFQthynKWLhul01KunBGtqbjPb5TBIlL9UZKRhQ21kGLAEFJ8LYabiWSL4FAkF6l+cgktsDhpU5BOPhj8RTFBqqyCfEBHDrJ6PCjUpW1C3QGvS3FWjTgwmz9+qsnF5za3NeOZ5spRdL2z3iiLL3uqzZ09mZ+Fp2XrCWmccqf8nZjqiDBqG+73w7B4Z+euvkZFbS5VfTJ7MLOZik2uJ5QNfy62JZDAYTFKI5PCHIFOJSaJ9Djp5NB+b2TzeS6zllrYTsbmjWXg+hWcmY/P4mX31Z6WQbfUVeAZ91NLYXnYHTjy1DXgClKA975iAQ4Dmo8SCt0SSnrSGfF/dT3F9aSnIED5JD1/5VDM2aMvXXgag2uJV74APfgK8sN8LPIGZDwjgqQp2WHjsOzKad5WEufCUJXKvSbfmE+dxIp+WzCoQZ59sZjKWjSUGGDKzKDK76RsnmTtP+K7NYzQejjAQP/rbi1/rP8wlZpZyv8e3nz468H1+w2e1BYLJVCSMJFMOTctEKwLYZroU2zzdr5nRHyxTDD1aWngyt7h/vEcRILOfpUaV8Vghz2yOy0UmKdD/TaNBRlTtlHnVEV8y+6asjFKLgrOw35U3rwXnKE9dmTDWFiyVT1kvNJuarnx69qza0Xwtqk7DpwkkyAs84StP5B+yzvan7SqK477TaAw+TJ1hU3waoHTJeFjYUnAUZCJTZoyR+RAwoBh16pShQ6QCrtj5MyUmShpNaLbW0oamL1sTTZomkDamDW+W+kZfNTHb/gk/33vvisZjH34tnVs/nHvOueeeey6aCUY1oLUnSZhaD3OcDKGGXLtousyr3UQnnBI8fAOn4vlMhj5ZhUI1C0+ukslkggkmETX7xYmfVmdm4j2vnb98jZ7SN2L7h3bhWamvlHYT6ZeffoWivXNTrN0Znjjo/r78jra29pUTYKNdSibdeigSyi1VgpWdq6lCKp9inT8vnmyOUP98rbXMzz11OKB9Vlo0x3KZhVjzHdxYN9OPhn+XLilAYtoIz/sbOKFmBvIpAT1yn3ByF0Q98Nhg6OjyuVP3kUlGPwngTZ0DsSbrSyRRbftUtJQwGJ4mrnURhXFuzhe1y/w6nJZnfJ2GTkl4bmW3YshGLh4vE94T2lMGND+nkiDxvGZ5slxcqdTrm2vrPfkbr7AgPDpIMP/mm1PImFatshNsBJ1QM42dsm8gm2mNLO1WItu1EuUS1EtsVdHOvN1b1TcBT7zQucWDrT0+Th4gQpHlUn6O9JyxnGaWieJZnDzcJp5KqUGUFxanPoVHtyMZSPcdOQKphjQuHeHGMyJ1RT9RUGUASK0o9OSXKjev7TgEGuIp8wlQ4k7iI1nl26XokhcU6SIieivz994QPQf4pvmdVEytBnPr62n/y6ypkcMLvLsa8PkY7/ijrw3PFcOTDprr8fyNl14cDLCPgmjpzSmoqnAiXmbBZEzL53gd1vMzbDrdjUVKwbWdq9VC1cvFKOpJeVrh8o9phZ3cx/zq4elQKDJ9uMWcNvLYQb4IPG0KBFAIA92qpx3vHUSJuHR9A6e6fDFjy26X0p060nXk/wy5aLxAey1NZ5ntWhIPHSb6xK23IXaRTRXhiLKvelBQphhWnsj+7bwyz03KhzwyQKtB9JMSkVQyt0Et/UZPeev9l/oMz3l4tnS+fvnyr9c+vXwjeap96SbPjUT+xntjo/EeCtt/ZKzDk9Vi1jsGKTQ93k+SeUeyVU7HNwrhXDBc3KlSCZ3jpKEUs38B7Yemn5L+xYXW5lDL9OlmzUOwXaQeFP9I0DuFJArmXWbMqCdhNzl24BJN2jk9Xwl94dOgOiXt/A87iXvtriTWYZkJgMsFSPMloGyEEbxvl1jsP8EMBQSecn/8BnktTXU8D8aTuQpuqEqsBE8saK48s7VzUnsfB+E5ONLr+/2yxvvFd5Kn9i9H6qVSnZbilVz21WKqHI/3UF9K5E/fuTF4Dqxn/KPKV33xXn4rlZek/PlEJtpbzXv8NV6Sv2orc1xFhf4xMq4E8IsDh5ZDm8vj03gCOi4o4AOWTJI4yeIZn+FEOYkOl8UkbtePuHFhvpyMIjR5BBf3PZ4Opmyme+tu/aZMwOX8DaPeVIDLAfGuywToh40ZkCy1VkPhifDnJZanRg/jfd3zknzJFNWKSfoI45Ho9JT1a400HVh8t2+s0/cRZ5df+/X8h97+9tpSfXd3CZ4bua0zxWx6nQ1e/n6c0o9vTvWPxuFJqooYcuDkRDFT9qOL/I+pfU4kqtVyOukly+zR3UqQe1EPihdVCtS52tna1hI+MR5sJYrHtWtHi9TBGk/NCV2eTuJKtfiExrp43n9AP7VaQrbd8AQnwoUVh1E/RG7iheejtx9wPBGA4pcUwBtn18gSSzcR5/VIoUicZ0PDDU7u9xueG7lU1UNn8sWUhzuqMODL6Zl+JYoxh6uzM8d9vo8unv+VkzFfLbS31+tL6Cfx/EbOO7Pj0dGZbEofubrPz8GT9Px6gKUKX7glP3Hdt5n2D3rU8eDQhXXLj8/ze/6t9LpZtRp58eSMeM75IsstK6eHpg+RXUQ5Za9cRgNkGu9cOqBurilHK5bIAXgeaLrrgPwWODGeIMN+WobuSWzF80hXl4O83+B8nj9+FwKzh9nU9OQJuyAixyMRRQN1jycEHU5pt3gaoM7Ew9MrVgsFhjtY5d7FszxD+0K2QXYOLF7q7Dk68NGn5+kMe/FM4fF2GkSgn+wH36h4Z66WB+Jsn+o7OTXFGhr+vZMOuoERrOjBcH6iuLIUT/vC8RlOC/W28lRLpFBX9eXyrXeqnphKHB1S3/mNL7gcjp4eagvCEuv/rAs7DdAGTzt5d2Jwg1MirqTllOZwg9v4I3tlHgB6qguryvvw3MOpXwgwwckNnHc8qcp63Lwb4pahgLoX2GekMVnVqJdywhKx+rlGOO8Jp6gmYxV2I7GpTgeidpIsmv2yM3DU990PX//959mLrxYev5/jL0qKl1bWKoXrxRw93AP+kyenaOCAGT0e156nTGJgfbOlOFHcxLNvT6/kEulQKJ3hXCRN2vsJaxNls+2xnz4wY2ze+6blxOlIEPsZXG5TZOnmmNIJx1PGSWIch/2mBxxKbkYefVTf0PHs6u464jTU8tQ7DzzQ3d2FnGpop4yFcKKa0HTShmjh3mkl4oAauPxNVj/t7F0+SaZTOB3PjVJFbRyKqQKxPI3tc/H1RD91NBqRPZe+9PW0+H78hMN3z178kPFeg2cpsrwciW4Udqq5BO6I+iUqNedHCVrjHB5mePb25q8WV5ajle3l4OZAT+RgOE5vJyJTEWWaNKhNz5ofKWade2p8qFZrGz+h/b5YRhlPcO7xJPnb4HlzYe4AMBxLYD744N1AEk9CzyNd3d3dD3Qz8LlJeKvb8tT7gG6o5wE31AWSQvKH5c4tT2c0rd35l4I6nganG+2OJwLP0jbbkCse5q1A8yti+0Q8McJZiXMLnQMMRVx1b/y1Ty9e+/Ozz14t7CfBVNvdrUeWyGpWr1ZzsQQ8SRb5310UT/mjnoT0c8UrFqPTa7m15cjmQCIYfWxg7GXkJGW6U2METLQ49JsI1N/jW+g5PRSsnR4ab6ZGAJzWGblg3mYr93ha2MijeH1HUzCPsOYrxy3lfEDSzdCW6EmP3HhX5tO5IofzDob5MfY0cUdLyYEqKceiBiZ8T8yIwKiIpwa50UwJPPWPc9Dhqa7hu9uVZBX7SR/2SomTQQL9xJALnQz4hUsDPS2d33/26d9nz74inuPwLNXVjGijeqZYiVXSMOHgoflzx41+WgVNtERjOzthxvrucrC+GeJYpgH1xbR78F8cK9KXj1pKzLQCpku+oaZgcKhpfJol2Dv+w/NxrczA05onu6Bh9YS3LU35W/F0qiec3fYOQqOZ4smr5wSaz+y/G5rieWuDJzSfZFcTNKWg+ENw2ukZiJAGV5lpxLh5M9AFVDytbWe9OBnbLiFoaDUZo7W92gknVNQcGF2dpUPCwuzR2ddU3/7SGfEcgudabXy5HiqlrheTdIDII/SDhszgiNqPs8sxnVkJx1LVlemVjVCNRnrbkXCwNzuRV0G/xjjKSU0fJlSJAm27Og1P9HPZ1LBoookyKN+BwFO68IJb2CQPIrRmuu7s5u2PgpOj8kULbkYzZSmljAIpuvqhEKPESjyRaXLq+bCOxTbblQ3Pu/iFwZObcCIgMiKkdtnEMGzYTPNk7br+VNstheRGBZ6xqgnnOckXyc148FxcXPy4NzA7d3ThpcskmM6cebXa3j60zHivqblTKXW1mKzEsLz5PEUPM8TnAcIleKYTiWg4Vq3WZT9ptrcSCjL0szvopvaSqsSUWbt2pI9QoKMDq083TU9rQZts2G2KpFmmkH66kAkjBU+Fy/pmjbgFkW46L6TBTF2CRDz1xE1cYUo9DddcMdptpANMVPMY8tXkZMdw8+QwXYg6nlR5l9mIAE8jTB8cTueUnLVx4mbu5lOqzOu4RaPc6GchFoMnJhT/RMA0E5hdnXpt7OTi3JeXXle+jtrNwk2e47V6fTt/tcouuWwxX8yrjQZdiXt6Q2hoIh2PR8OEDEvT0UqJWrToGg0jCKBMWxg+nR3sNyX92lbDLjZWENFNUyTQNCSYhpnjaeMi8bTJEOZ0Dqe4GEd0992KK7vF8x6IChxA732gC768NlpJqMR/jRQeJg/VPDb89gcffPDTG1cuSCYnL9CJqK3N1i9pOV+QnDSKapyT3BNpqmJ+68gsT4SUXQWc6GdpO5fjeLpBeH782kt9q988tfD6+cvMNp+54e13PE8vL0V3q1cLlY0c03GGu4qcOO+BPb5WP1fCJJPqtZWN7eiSeNbguTPmx2xmCUFH/QEKbymmGRmhzOqJw7TjQzCeL8hcuayREu1u4sMqul6Y7+R4ghOBJp4ant2wk1gXjvCa2z333ANgLlFNx9Ol5BnqhO8CeuUN5MqFKxcmL1yAZ0eHMneu4LaxFOBwuvz/nsi8GwU101WA3pIvxHI5Zu3VwkYOrCSYSkw/cRQjc4skiAPfzH576bdr5z/75JV3bnjt+CN4BrGfK7uKl3K5zNZWCoWj6p6DvSnoM0dipKNRz0tFp8mTRtkYAs/gSr7oZ6kZmUkHjtvdlQMjgRbyc0+Y6nMVWNnaJBdeGqiyV+IpjsBGeFc+36SL5IjQTwY7VR7CCTWhBSPCky70SsNert2tZ+KJDNBjXw1/8MGFQ29cmZy8cqH5wuTwsOoUVT56wuaUGktVLmIyD44k4i70tvyaeO5kCTvhiR3NxQS2Qs87ujVzSBJHDQZoZ3P4yz/+PvvJ7++9ovG+XKutGZ71UPWqV6rEkltZeKqaTIO3ZY0zq4i4Ikt+L7WEP9plq8rSWm36saVUfkZ9EzjINt6ps8TVYTbQQ9UAPE0H/Zs8pZ6EJs7qm2oO9k83JoCW5176TbPI54C2j/sD2Er00QLlZqlSnySjiisST0znHk9pKCzRTTPq4an65VaNdzetMAHqXU1O/s8TcTytfk70eSRExLOSE1fu8PSYweCPVgdG5uaeOvrXWU6Wev+tM47nGuO9zni/7u1Wkl6W2bnpkU/tEzrHjDPuW48sZTMzrdPh3PZ0rba0yT6dYLaYGcFwJnRgqDarqwEAa8PqtHNiaAig6jVjed5qmZmsjXU/LwDZKaww25llQ7oMQiHt4lKyb98+xxO08ER1FU4Z82nmAfCEADyH326efAOkV+CJR+qYbKWrCg3IVLkDR9ZEwel4GjXds5t7otDD7k+8ZeJlz1/VjLMgkLEkkmNPbBnHvji7sLDK2WizU6+zkfqtt6772x+vOZ5L4d3C9UKJz2fzKXgSL1EZAaQ1ppyhXvSzd/0x6WcwCE9OEHrMnxoN2P0majPTywPFc/TVwlq1NZkuhuKpENMqgAmI4ImJgic4nU4oom7wtNOh55z1NMYSrCC88859FiZk7wToPn5k9dMuGYET9UQ4Fhuewwz1DoX0T04CdpgtCSYefdimSpr2eJpFQcRluZ3oh/gjkqfw9HtZzd09MiEeND1y6JztGeicXV24dGlh7pvFxXc/ZjP8yfd2Mi80Md/cXGO8R6Js4JR+xug1xExnlIJ35vwcIdA7sB5qORTJHGppXn5iO8R4j6zAczqzRdJzdJRjGVWtdtRHHfdRzCg8m++AJwWv3I3dtzxN00ieoUfIrIEusNxsRsICVbQu/w3De/c1xrfE8DRXYiueTj0VtjLVwb0jIENHr3R00BPv2MO38WqYqOmOu4Sb6ScaynvWhhqiDe9u8p8AtZkF59+1X+bnj8dGaVmZShVyMYa9JFPm8PPRwAINFS9xWtq5c/PvMvSP92XS40PTwVpoN9LG6V8+r1jYLZGB5twGBjvxkuEZbtkmK3Ko9XjTE23Nh7dD6GckOk518Ew2Qw6ZxsUM94PNB3WsOguapufCQ7YRl3DaYMmJSb5D73YSoG4hydRxOZyopny5wYnYBwuRCwSUkn2gbagnNFHO+8UJXtyOdTQPo6aoJxaVuRI4VUkmg3Cb9POYuj0ZW+qINnjavCdANdiV46Y++pZfPu8fTZdJpVdjjmesTNsRGsTMzs0evclzfn5+0B9IsPoYXqF/CDF6NJwremubu6F42ZtBNZk4wjMcpp4u7ttsPThyX9uzzdFdXNF0fZPNaW0zW2kdBZNZjw/42DmuzhvUp7OR4F88WTnci5cd0H/IOteftqswjvNO4z3Ga5iK4nVcXuDG5oIG0HhDvLzQmDgSkcUl9ZKBTaOlluoMjdRt/KRKrRZTRWIsNsO2MYbY2lCDxhm1Jpqti0jnC9/o3+Dne85pQX3a/nqh27IPz+085znnqC+B9g4zLCEObZucdMHHJJ4NfA4md2vqEiBDXVNK8LTGLpwSGXwnKHeCcWfjE9ST7wAU2XHZNZ2d98LTTHByk83bX+5233mz5pe1U27LW5PZUnjoDvQTlHhQLpw61Wd4xlDRWMAXjkZ92bWjf738SOy+oUHOn+vpvpFFvfOfTjONxC46336r6hshaXAvPFlOs/f1m24a3HXZ1a1XTZMq/Xp4dgqebyzT+bx7sYtzBYlbN7Rdi6ivhXL42Q9e3+Rp40/jwf/+igZPN28unJIHGDvuMiQdT4fP6qaQOmPnPchVpyNVNcNM8bTmjvt8DUs/F57yl07gKeoCipbedts1Fwmk7eI1Jq+HE1ve17Im7I39Ko9OZOtDtC4tM7OjOxcOQ2cZTGyGc3mjfogSlmZyK8UalY/Hnn2UMgazaCwcPtg3SzPi9Ecc/8tAHAfK+IjzVdmHcLqt/cbBy885u7/769kD2oz0AHuSHjw4wLYz194wNcA5wSRLpsWTsRFrH+kPuLDB0+C0PBEcJ8EH2yIubZs3l+yymgktPSGO55a181KU9Q05T3DC8zrVPOUed3a+pq0FdbkGZojjySge5YSnrY0KKiJy4LThaDtP24Qqnlo528KRA/lafYxjbJaXlxWOvvrqU1qzaHQLhfyBaEgwE4lcMpnz2Pg9nq6n64UzE28dXQ3vu/3bAc6t0sZEg0O039t49M7hH7+Z7mptj9563TX9N309+/irv75yTNnQtx/R68tvcAB7H9SiiS6zBf+N/egnPBGzceS/kztZp3o+iEfnOJ7QNBXNy8kxlWUaa7ZhCKDnWQuXy3RGz1WDzku3eAqTcnlkpwT9cyVQlZXxlw6gSZXO5qWru5xlGyGFc4unbVfpp5ukjSmHfS3Z/Fo+XRu/Qzz7MHZ4Ug0ZQuEC/lDsPo6wQzlzyVwiUVxYWMghiXQ6PLb61OQdj7CY8KprIbpbe5wx4aR86ePZb77Z29XfHrj10rM7b5x+nd0eX5kSz0/mu3WcMrtmUVEy2+2bc781/Xbh9bc8iAinJamrTectT+ydJ/EUTTNvsUvpptVCqCLW3s87D6KWJyDdx6qQSKVdWQmaCjzglHLCT4FdYnneRlSXTuJmEVuig6cSV8fREeU1PG3PudbgU+Dpa8mXstlqiR2SaUc2if3yV28sP6L9MzlU0n9fKBAI9SZXFuaSSaOk6+vHE5teMnncq42OHmSdU5vlqVk4WE1P75398fvpttb2wOUXX9Tf/vorD79qefZ/OsCwo3tvFwOoLm1y3KYNZZlt72y91/JEHE9ACp9Cp3TU1cHFk7octQ9oGp8JQG5AdTzBiQinU1w3OjLDd3hKO23kPleJ59NPg9PZOUxRUnF2Nq/ysaM5PDwsoCobNo0Hc7JcbVsezWO92hD3kZZsaa2QzY+PPgTPZYAeXGYl5z19KJwviv8MBaL+mZw2813hlkNNE+ub3qmFU8cznFDVw/KY+Xl+LzTOM1/JioX5rh8X329ra+0M7znvIv6ZKfE8RmHzwPL8Tf33tr9Oxxdq3KuT3ghIWsnG7Kzs3QF1UQidMA3petfoDFRhTmmSaJoCiLVmyxORuV8AT4HUjy1QfkqqBE6nnlBCQR1P0VRNXmMguUvxNAMiQhLkuQ2fM8wfGr4FoC6FV5pkqjV26p5uXoNzYPBOlmq0rGWzhSwyqhWcRCXCNMeG3BmIRqP+EN6TcKRoFOGBzHnJyMx6IrkSiTB+GiXyq44ZJezHYvcF2VUdx/vt7r0dT+6M7rhAPNsfPjD1x6/Ujw7c2UOnb/ve3do7j7zWbFXGSFltLXc92NBPredx/QFqhlV9HpCK6kbQTsydMaUNQbC0PK0L5Q08zz+fdwifOLFTRnKeoNHICIC4TUZGr0FTxm6W1ri4zw2Yznk3fOcwcp202xmODJ6ApSS+88mXPrxhLuePB0ffXJ1sya7ptgZPNscwO95rteEdGrzP9EYCAT8n4EYiABBPjD6yMhPpiCC9obExll+O0pLDlwMxf4Cj232+WjCI580dCbbef9uTN1zVenX/1BSD1P5jfbvFs62nl2kU/YXqm2UXBVXDDU8DkAU9jW4Ws42xuNpSp67w1EwlpCwsQMLTIuMT3ptgxFuJG8ArV9oDTgQuxilqHKQE6W5yd94CUPgEFKQIJK04rNfxJ424j103Ffopnnc/+fzIQjLhpWpjhWxLqVBo8rxTPMHJSk7xRInAFAsrxM9EVpBcDhKWJxo7MeoLj48Fo+hygC+G/PyZeAqmYXS7nhuJdNDTz7r+X9kN5ebuvh78Jx3pPYuDcrv0lHfjPc3it7uudzwlZlZGOI03bbYS67pViBctcDVsvVlXusSGcyvumSEpOCX4QfE08agTnp2d5O6SHdLFLaaW2vAWT4TfhnEX3E2E32HMnY6Szteefn5kLpkrevFaPdtShSc462NsJYY8pDtzF6DR6GgGe6dRmY5XXGeOOB+xgnrNxJh05yaeAYQTkcO+aCZulDUaSKV84Rjr8Hs62mYP9x94uPtgD51euJmexUVtLkeydIN4apvIC2+5QtEcfi4imXeajrtMOby0EpZWLE8EcFi4M2jU1lHWe0PxfgpKEgZGjqebgXOtIOLJkMjmRuIHOSv22Zo3dwISNK1+wxScwm4zefG8+/n3UE9wptMl9HPN8dTsjtnwjp4N3z6fLxqL5CIhlO7NQxxgfCZYq3FsWwJVRSIdIT8d4WfQzqAPngAMG57hQDwajrIFeCyTSsejdDNqWei8Fu3hP1tZ7kZ5dH5xaJANxrWlPuEIe4cnBm59psvl3WzXhWpJegCB5P94XsLD8oSZ8QI8GjypHzdxNsxd2umiuGpLZJ5EHmhagAKHRxBP0bQ87cfDjqd8uHhS4N5hZo20hoYZkznMPZMuleoF/KcMvl7n4GBz9B+Tjw8dpG8eBY0kV2IzoX1vrj7x1NsvvLWxcaZQqAdNcSTWSyEvuLoUDEZBiG6S+WPvMnwJB+Zl4h63eCw2CNB9g7RCPTJwYyuLUOY/+Wjgk08XOUDv2DFVbsk24En8FlHDVCid6en+b56yd4nNhxqR3cZ7nu3V8iQREE5oumiEue/Y3gui0L6FUxwbXnJYr6SLyL/0E5zwpKdWOFVCZgHYyMIcx5d4lWo+ny0Q363B08GJpfcBlK7MsUkfA/dcbqG3NzQ+NsExCft/4tzOn38/cWg/Oyq+OxYIRUeXXjyE80QbxRON9HOVqsa8TCrjpYrpOC+i0ft2R4fAGn5miE5ugvri4keff/41+0a80619FLSV8WXopxOAbrFUzMXet/E0fQsNoKLpxH7QfMN3sHGACmYTJ2wMTwz+XJvDG/UEpxOwXckDlI6nAcrrJk87zYxAU5kn7csfghP1BGcWoC0wXUNFC2fgeYeOWOPqm3w3GAoVk8mFlUiIw/dXV5cKa2c2Thw9ffro/kNLk0sTnJHyxHMfvH1oEr8grfQTkIQTiaObmUwmFedFKpXCB8TjOJfw0fGBv7XXzjyTVO//OM1BY2a3SHViXEY7kBUHdIeE/ypgt/HkSrvCFk5n7U4jrcIirhYPTgSSiGjCU+5TIpR6bho7GtiEZj3Dlep5oAVFP7myYe3C6Xi6MRax/b0/55LH1zPwFNCWbOF0YW1jgzH5hGZ9H+LokHGfLxj2Z+K5YnJlZSboD/kmVwv1WpZHnY3AOLB8iQawoy8+9yIbVgSUouI7NdCXdgbi6CY8PUMznkqH9VRKZybGZzqYDenqYp6KHh+OwWttn2L5G7k0+mlp8rA5s+Vpa0oAJd4Ipxq5t9H8F0/ziT4EqMIRSrlnG058oInuBqhTTP4FsdSPHM5LnTYjGu3L4rc480o6bkZYKqjgf8k9cZ6nhLNcLeXJk1oIR6cL4klj0WgfM+T0blPxjMb8XjGT7OgI+aKheNzzikXPy8Tj2WylZDxu/sSJjXwhW8n4kRCpqt8/42cQgN+NpmTpKe7xODDT6XSGE10nR2MDAxq4Mx89zf4OzCkhphHjLHhqeZAdCImngUn1+LqzHrTxXTxd8imczSpnEygfOYGnUiTx3GPQoGiWpyFB2Uh1d9k5nhHZppd7cA+Er2ZHo9TRcHY8hxs85Td2ksA+/d4IPBNeuVQqCWgenoUNHQG+xKKCCRq2Hp0YZ3WWLwqVRDzZEQpNhEPFVBqgHkrnVUqlzXXPW69UK5lyKVuqeiFcp4D6Q73+MPEIBxrni/EUGA1WJRL1eHw83BPr6UI4p+Vje4boq0o+VZAXyC2eLgs8i9lgpooB7XCKJ6hcManJEyt3hSSJMfdG++c2DtJBh0JFOJ4VZyRNI7c89bgUgmZQJvXlR3y4Rz939t6sABDaF4jtaCcCz3ypJbtxkkONNwpLSyy4Znnrd+8Gxycnxmu1eCa3PjdXLEIElEXyTzlEL5/1Th0/fipxfC5Z3VgDJ65TOJXm+xX7wxSaSEPTEhQU0SsvNRrgW5p1n539+vCxG6fgyXJdrN0tOhBL7uLJUE7lCHhe2eCpEh2XXZbndnqulNz8QDxxnCjYv3kiBgVVOBfVt9HUEzjlISSi6dqcWIFjeDqTF2BCpZohKACMzEGTo94MzjxSYnz088mTJ04Wziz9tH8/O5o+9db46MRkUMoV907lisUiWJT+JHOYfTxTLa0njyeSOpGrXMiXE7FoNBYyI9KOIyEfom3ehmTlqVodM+dVHZ7F1Lh/5ciRazsOd3M20zsEIvYw6m9lWYxwusW6gkl1zlS9FeFNjczauybeeMLYDc+tmQ1ET81PcJ+2VVE8xQAmzvPBU6rPAN3GdEdzm7kjDZ7mSRrKd1Dahhs2PFn5DU/GRQsryWIcO81XKw2e+bWfT544cXLjzNKXP3zGPsi/HBobYzykGF3eJK1ar1YqlXK6vJlYL5czlc2Kt55IcE/ghEvlzXXSdsKRBkwdR3qx9vA+rd1gqFAv1eu1WqmWTo/iQShVzVw7ctNV9C8cbvuYRX1mo22zq4LpoCMKGZiIW7wloPzAjo92ISidG7o36SFN3eQTNyOnsdH9twITsTCtrdtUHXt3YYhw06DYAGpjmGXqvCg4HU8XjvQ3aBqPYebCXM7LbGLopWrVxfc16efJ06d/+42D8r/77ju2QOL4Q18xk6pugi6TKGU8/MNmZt0rlyvc17njSuG7WQVu2vGMwBNv62evINZu1Gr1OnWWUj2brWcnGLGGqUtHuj+Ep9kUSpvvdNpdFbQgHYhcEWvxABVPuVDmNuFpkk4RbbYlUffcBtKJUVWXPjV5OqIqvQniVs1I/tDg1F3fNGht5dnqqdwGV/4qK9Z7qr6vTojnR0YWFjDgjFHNbHbNxveN36F5+uRPP8Hzif3aZuro6pjPI2RVgLgJRfSzsrmZ2axU+F2UM9WyAJe9xGa54nnpWioW0plsEXj2Mt73DwywMTSBHaQlHqPjvhg1ql6QX9t9BJw62fWl9kZHS3NBoS6AbU5rc9euAE49Ta8CT66iCU/E4rRio1Mzx9+lfEdpp0RXOyrn2b34j607treqkVlK6pqaFdiksQ3kw83ZPKzdxKJisVKtEt0hanhmxRMN/e23z3746bsX9nPgwf4vxkbDJPxQ/Iex84CJu4rjOHFVrXtgFLVWUzWAGre44khQMa44IxAZCVG0yBLLkGCsYiCnYXqhgCKuOJATNVIjBG0kiolxET1MFE0McVSordTt5/t+7/5/Duev3PVAOfTD7/32ey+KOg/JOAB1FqXki7OzbagnbCdZ/OJZ2ipWTfBcTZm4peU4DmEaOy46gh+SGW1uPeKwCKID+yKrI8frYhI32WKnafuSsZrBejhd9b1hxPN0AwtSUV8jDnjyoCjv2YbRExVkS4mSBJoAEUsL05fzlHbmgFBCiABOxMzp6Uk8ZT1VBYmN4KnbwKkPiFJG9v7oHfF8gZP5i3RfDOH6QOemzpmBySix56dvOJ6KlmY3DTQTDBGHQhSZmG9rrCulQCqiR0So4m3u2QzTsehIbKStuoEkayTWH8k4TrU56h+RCMpJ1VN70OBpg6o2qwRN4bSrWc3fu/3V2i98Ihz3gCeWEz30PNXYkFCTp4gMTIvkYYnknOi1U7KCPxKtcVPNpEDJVroZUoBKTj4RrghMtfj5MJziKZwsd5wRTbU2VAzT6aIl55BS3pc/gufHH+ONujlJfrS8iw3DjQOdz8zMjLS0PNP52UsD0s3JydYW3E2pi9IH9EABZ/vqLiylwwTNpkikA6CxI5pacFbR2Fh1C+oa4wao4ykiH3bMGp21C1ZOWtFx7fAEpx/1tD1mJrbswwMp1DEiWt/THNEespJJPNXiUI9DclAOPHhAw0hBkchI7lwsNDSvxQ9PwfE0+YJYesk5CLG3QTlPlBe0CN/ebYWyAXCy3Dvkk8mM4Dk7OzuBQxofh+eL4OSa6Hdee9cdIEcIukG73ajOOZ4jYJ3pwzNNtrU2qDAHTnWN+2QhOwkrif2r4RmL9A8OxkZiGNLTRkZo2I2NNa3GVg6WldFLZZEfLZ7H+FsJZD41pBrsOfDTiQ4oAtCAJ3GSuplmOaWIfpAGnpDcC+3klQEl8iQp8mI8UU4FCkq+9W6iqEco0lbhlCvig9FHF5TlWLUPtmGBCm9mkafG8nr7h4ejbeQ2+JJZVi7qafWQdz79BJ4fvPYCQ4l5WFDccWUhKWdF3cBYAzkkUSSWcGxytqamtBnbCdChT2egSZQ+1iie5E7z1E6y8qF5RJPK90T/LHlKnFDUlvKj1MfUde3uKH1di+13EK/wA50ep4BKVwMFpSRvvQwBZU0DDpyml0bT87SuZo6VOg0nAk/UXzz3lbkk+gl5KjQVTY9TQMEZdp18mQVLfLBxd7NKWuuZ2SUlmE+UBjWjUiePDU/5I3iy2N+B58evQZP4c5p7ETjZprSikNJmc0tr69BM3/gXA+h1Y2tjQ1sfprNz6L3immZl+c0VxRWNbWOd2/r6+8cuK+nV/cGx2GmxkagMJ7oJT+gdlUVjQ9dnHGOf2+U4fmeWbbcGZ6ieNh8vgadYOvPoeSLebHqc4mn+STxDxdOatuRVPB1Og7nEchpP0kvRlASzUBYqqPDngy5C11RWuy12ZZokR6jopK7CnsBn45Dk31/87PMPWPDvvvAC6snVJnnlnE5L3b2wmOTxVI7cpWZcXz8wUFrY2kz9uI8acWNxbjv15A0VNdUVX8x0jo2MvfX0Uw/feGXKzieX9MR758idKONn9JeVlCFuAzRHcurAA5jylObOMLQjPW2bsyMpnraDN8CpFhw0feJj6xwJeUpLvXsXz1M8z7BIh8gHoWIE50YwabH7wpJySjdKyg/xbyaiMqUJoLa/Jkt9UWjmi2ecVDEK0qhf729QT37js3c++OCDz99+++2Xq7rvXyuPxPkALHgCxxp6kZfUVzxQtOGlJyrrS5vraBFXNzdWdHVVMCdWTC25cXxb5xibNp985Js3b9hxx51zFlbmbJ+LD7fETmuKlLEsEM6Op/3F5nIdhQhPPtdBVXLvgBTPVOOJwNNyz6Agf4rPffzIghlMJOBpOO1fkjYFItVLiHJG/pnxNFtgS16fh6O5OXg+6bsJ73cKfonfkeF0PDNlO/OROcdzUiqqx6wKIm+kTAx9++334tnNQWhV5Xk6TrJ7VF2NGvLwMwnOr/vq3gcaGxqfqLu/tKvxiVfrSuuLcknaSxuLm9u/rHhxfKL1pMeee/6VG6NZOTvsvOPOKTts//HHeDwe6civLVBv+pjzsrI4LZKAM4tNPtn0VzN1NcaxxtOfq+R5+pN9kngmupbIATSE4elxCqa8Eg9ZApdqnuhZqUoX1DV5O2OG+XRhuwWWBp2qoOmmtJPVbj+AD5uUyMlRN0+L3XZ/aeKevMj0kxU/OUxQHwftcHQeJU0Zn/j+Wy34l1+enubI8nXruNqlqr2QU2suJBHXrtiLvqMgit+hu+60tjxv7XQpdrP5pc6XxvmllFafcRx9ty9e7D1y8YeNW7aA00lvGbOABUcfc3SBZlRXcewbk6uZmfDUEIOF88bTZo8R0dRaB4Cf/Ap4+tKcrXOJ/78OtUk4aXAgoQH1nTTZTseTknsyT4PqlNNcETx3222v3fZyeu9sqHj60j59ezl25hC4rRme/XPxyeFYT7SnoyM6O7sJSZkYf+fzDz559+23u7vXFq2bLspbmzdd1U6To/BCJpguYctARX0FIVEj3r2+FKT1nDPfzvFJrz7zxtDA/NaJmZnWhgsIQt/4dmHLT7/88suWnC3bf/j5B2RhYX127ZrBNQWsdSfpfMBTh0XT5rD0SDw1ourF1NN4+oMA1MlAfF4k9TENCmFKbM5TqzPEGYhtP4adVNV4+kKShwrOkxV5ep4eqLPZOHjU03Bq2t4NLzCBhMCTJd8R03gX8eQsCWXKxATV+U/fffeForXriqbXcVXW9P3To4V1Z59dd2ZpK6n4+a20gKqrG09rqO8qpf4+OpV79dW33vbAS9uGtm3duvjj4u+/L27dtm3jqh/32mmPLT//vP0nUP6yZcuWn35aWCjRLpTBNDoDqKe7R89dV4b4K7a0jXAZz2C9B5s3nLsNR5QCCXHKwxvPHPQzCIa88gXqiX8DJ0G7uCeIwpL1Dk4rtOyx20477bTbTrvttseeSrj22//EfS8z7VSLw9STADvWPzc3JyuKnvbn98edCZ1vS3nmmTde+uyT1/KKuLFtrbtsrHtd0Wix+sIMJFxwQStd9brSmtmBWE+djGrd6AvE/XfdmgfPrb0LC6L3M7JlcftOO27c+OPWhe3bt3hZWCiDZn5tGqscfhdn+uE1keQlVHWmyj67JvNEgvXOwQrCKVZOknBaYpTAqTKJOMEzST/h5asaEvcFkiDCdJPT3d54Be5SfpkT8RTSvfY0B3+gN55W81TRU9Kf3+sEpLykAy8NnZxP6ex76aVPP3+36OU777hz3Z33PnrCvdPTee2FdcCDHiPfDa1qEE22xePVLZSOmXrq4oz/K5jV2bp1YeHXX3/+RfLDD7//sHG3nNPTS9K3//TTT7/+uuWn7dvRT35ibQGjGKjnqoszs2wWENHfaoCnptrmHhulE0+AGk07qobMyGhaMQmKoYTqaf5fheSQpwylBMOIT4GpF6eKaDJCIgRJP4BvMB3NHXbYAaBSUAor6j25UMni+DLsJh/Gs6x3MH8wH6rO1U/Cc2acZvG3d9z/8p1nXbNu3fS6Q+4k59yA8wEo8RCt9ZEms7hxdTmGqxsqK5sbL72A38M21vvWn3/6+ddff11c/P2PnzbOrZ+fT993+4988qtgluDeWfDZLHYtbxa65ymg/hS6VNuCJqICqnA+cO5Kn1VZ0mr3PGH4NzjhCU4ggRMJcbow3e1614Sy5hsEE/bonTBqQSNSTL0xMI0mAk8lCAfuq/hVVRBqSuIp784HPAkHC1h/ZXC1WJT8M+WL8TcoKa/tnr7/mhuvL8qbfnRt1XRuvVrGFeJJjQjdxothfYd7+Jbhti8rqpsvOW6sbZt4/rjQu3Vx8bfPF7ctLixs7Y3G168fXvxtcdvcqhL2mx19NLugFSM5a3lxuu3nMQUVTjkk7V05PDwLDPHG0zXbKS1Zvy2ZJ3oU8mTZH/APPBEAIjkgDXvNfsBRr8Jci/eEpfHkL89zX3w7Ip6aaM5WaoRC8ihBCAALLFnSxDGZUgp9dUrLrxZ1d3OT3FRR96NVRVVdWu5fFM701dRQcuuI5HegmPF4T7wjHh/eNFHTyomrp/b1zW6bH473jFHHe/+liSyZ4970lelz8+ObemFpQuR+Xpp4gpH17kZWQ56yn/vsja4mjqrDdoa7tdQ0Mp4oaJBkIgHQUD2NJ0Adw2U4pZAGMBzC9T1Svlsi/+NXOg+J8ZRzt1kc542cf4efk5Js8CI8S2dj0ShpUsr4jNpIXz7Qvfbq2+6ampo+pGrqgVcLK+hWfPlFX2ureutAG+6BJ4MQKOl8W1s1J9ZztPrM+5NRZIzeZ9umWprFwx3cdl+C9A6yf484My37PAWcmaafWQme6CgMl/B0pRHxDEN5YiV4MtltAAKcYDQBgIDKIVkojzcynmH+43CKoUnYDU0scuE0nglxKA3oXvBUsun2Iriqp/H0AsfMTMeTRqd4tlEbQT+/GB96sbhr+ubbr75oqqvqkKLy3FepMA3VP1FPJ4PWUHXzJhIqePbORec6hnFjlJ1aaXxWTAyDc/MIRbrjmo9oamyORAYxMPzA2sGCzLQC/UhtLMUdESLZzgk/3yagIrqrc5xQDXkaTjvVj03BwaCCaBpFHkGICErRBCcwc5JwouHC6btNHrvpuVENcO4V6CZ/9OzEefiDDnRJqusQQ5P1XiKCEv5SLp/Nh/Szw3UpU1jYQ0Pj9d0vd21oz63Ku/9R0s2u4qmiK8696Dau42A2u6aOehRdpPn5OKLsv6enp2EsqvmG4R7N1q/efOolZxxxwRmHDZZgX9j8XICstx+FfroNe6zwdGbThc/OkgGoPucXL56Sy+FpOEmLFGG7Qp1AOmymlaGYBRVqs4cnG04jyjN19RO11kXc1BgxRfc0HUvEaCaLV9D9LNtc4XCiGFpu+FebxuVJCprGHlo8/AginnQivygsIugcbc9be+8t9xfljdaNfnXbtd99d86Zbz29+bT6yvfp4KkhOjm/aZJyyjDJFs5JZHFR8VjH6ozzH7/vvocOw/vw+4NlLft11/sR9czsBM8s+CEEHuvdWTLiybkroXcnVrKlbmPyFhRaBUTa6Xna2gx42jKGJzgNpuGEpoyFVZ5NTEHtc9EMLEeIM5nnHtob4nlqYDSLNASuiOOpv2XX8PJoqAvzU0rrvgBocdGda0dzc++/5c47752eyi2++sPvODnlnLtuevaChicKKe3Rap8Yn5+fncdIRDvmXPaKg+oRTzZqHPcYV/jT0ajVckiTYsJT5ltrI0s80UceNt6WxUYAXmvKzQb/rM2pbrFwItoSY5M1ppcBUKPJU6CgCn6sRwzPUOj9uN2I3kB6nN4DmW7q3WSOQ+1MFniqBCieicHRXW3YEbRCmiWdBSc8FdE7ns2l8Hyj8oE77y/PK+KW8Ft2uZcLstq/u/quuy669Kavnz+3urC5bYKOKN3M2flojyxpb0mvsgISrXgc9YxE2NTFXCcT3IMlzuWxlQ/jafrp95kSKSF6RkGNJ/9xqfijkCdAHU9IIBZlmw8ynrsZT7HkYUDh6TfFKloKcSpaV4weFE7AmeyDTNt5+ivM0IAeIP0MG8X2nw9QOKrIoxcFAqpmJzjFc5wdXcVPvHxnVdW6e6typ6uKpnMrC88999rrLrrqto/evLX5gde+HGLyYUImNCrpyVfI1a/UtSdOorCGHvA9d4P0pMbSiU09Onqnl3/s44kC21oupDa77nnqE5Y7PP1+H8vc5YpODsNE47lbEs8kA3qA00yJNdFEUi/4qugZOEREPU/h9YZTIuXcEXz2ZC/spfPwJwdjUCBNdf+twuj2ybvFn40UqHusrD6lsZTpt6EvN+R2U2Dqas+7t2qqqqui+dIzr7r1omuvfv3Gm06q/7i0gb77/CbhpM0ZHY7lk2hRDujvgGc+R0WsOf7BB7nE+qTSur62/uzMAowJCYQiC9L3fHIkt3vXFrt4rl9PZC+ICZ7Ikg2FqKcPD62ehDZCIDSey3gaS4lU1L2yzR5eE8Nc33CKp4nHKYKCyAfCs/7YgpeC+tkdz1MqAUd3AoFEmupqolru2E94DhAcled1c2HjaF53eXnVVGGpbv6+9JyrTz3nws2F7xU2U4ki24+y2Dskc2Ws+LneOV7m6+giOhg6dPi0ViaVI6tWrcc2Y2F7yxDx5OAYpUZLeKYbXBoy2l5lr4NjLJj68vkQADzGJF8ULHcxMk9kFHkkWmp8P+SSQ3/v1EV3SaC0RCfhGRK1lNMVmShawVOdUgv3ELeR1gMVT+yn8++ljeJZWFletG5tV+VoblFu7lR7RfNJuibxzDO5mH9zcdeXjZObNmE3h+Pw66fo16+cda63l8UOrALd0ZxGr+0IjSlHONKgNwZp4wnt2kxtIU/1PLX00dYET+3iNU21RNNKSl49fYnCWHqaIU/feJeChpIwFdB0nszAG9AgHeIzc0rG0/FbLsZTP8EDtQ6ST+2I+PyzXJOAokNsQjL9HK/Y8Gr5dNVoZW55++jUFCO07GLjvCm2BG7OqKDH0RMlg493zKmU4gTtQ/qlfNSPVmoH+LFph0UyWlojux9K4xigynBJ4nFI/GQR8zwBio/yy11nyx4OUL0CKOqJczeeQYJpTiNZwoKI5ynNDGmCE2iC6SVM9k3shQVKYucRLsUqnj6CUOhgRxHIo7rMxMQUVH4XBY0ZzxmkovLVB9bmtW/I5ZrdXHi2HHfBJWyYPUxSV1zcOCyeMTFEMx3PDuPqeeKjz1t57NGDx2c0Fey+e/rqjhjm09nPAh0GqUDTeJpfQl89zlRUVAve4TzSrXeLcxK6tFw3d0jiaZmmwUQsKDA7EbgbJCAaWlO98nFnSDABljZYwFMWRZGYRU3mjuCojcj+hZCKZ4/lRwxpjtcVtxfdn1dfOVrItcWjxc0t53Mi2gVnnn8Ye1rYqtWkjgkREtlkCQ8Wcj6fQpPD344ucFOxuo2eHHPN4MoVu6dndMTQTspbPPSrTPgiz1PbVdgKHfL0+yy8d/cDyA5niCVJtIJ9OO95AlOSUGwrFwWCgRDQIOi0F8t5AtTzBKd4moUWzoCn7JUWfMBTQahGv/M1HTZmPKWg6OcGeI6W1xfX1bS0sFWQHcibuV+Fxm/+YCQiiCUC5DD19lOxAuygJmcSh7Ov1NWVex+8YmWsKUZ1UEdz8LP0cyFpIvPjQmMQInCUi4emPxfVcMIzdM6G85950uUITWdQy/zrt+h77P1CMZ6eondKxpMXWgVuSEJdPuffFYy4Gq7HaTxdIoiGaVbZ7GdfY11xF3nmhvJKkqOKxoYm9llesPm4C0/S5TXgxEs7nmXZvkRVIl2FZ60OzvP19VSuFoXn7ntnNZ22msqIokwnK5fyRBtXhjzdtFaqbdqHZ9Jq/y+eewT6ac49gXNJhSPpeyCa9IYepwCai7en0B0p7LXTCIynC+5WheINqHhmK+Ec6+xMYR8HIzTsZX9idHRDcTsX6dexvjO4hHkzF3myhzWN8VdmZAgi0wqsFJCJ2mUWkGjxNWwnTTXjuatuUk7blVuwMjIitZQJMn1rw/O0jis8Wf18GE7xxLX7oQPV0IMl6+RvcRoZ7448z6XKmcAZiMgKqN4vfDePMwyQEMPp1ROeDueBjqdt7DCPGgBFpJ7Ej/B8pjOFDVjsM2ht5r4dRsB4sEOL0W1NER+fcfwRxx913vFrMrURrBaa6VrAeqIPzbFa8My+WDzVQmdInzYwt+ftvmJXNeGyySAcRr/exQ/9FE/EPjegRyZwKvjUcg/rvMv/9/njl67RDPyRm6sHZ/gtyTl5oNZJ7xeE8skRU2A9jadtY7Kz6vdGGwJJOHnxVEDPFq2UhmrxbGuu4LAFGpnQpOQZYWMlfXK3Pz1zzVFZRDjHqkKskgrPVDeyMjMpcpJz0UbXUILA7E2XyJU0D5fmKoFgVZtHDHmir97Xm+2EJxXwBE4rYiThRJayDHHalCI8KSTbXD04jWYAM1lD9V4hbPdkQJNCJfPtoXNXJ8/z3MfCzwCnicWfsp9jUXiyuSg6VlNX11pTxy7YFga5Imtqs3Xy2FGZR128ki6Fu6wGOyFflkmug77zFoRCK/We4mmKdvHFbBFN3f3QXbPVhVNSBE9F8p6eKIqnWzj6ip3DL570xaWddhadD3f+ajyNylKetl/TmkGGM/TaQdpj4gspIe5lzJfF8s564tzhaTiN5z6+381zwBOcnucYPBsY166umfmCjRqXnJGhc7vQTqaLdLU8D7vXiWOGsvAu+l7X9UVNXR3O5eUJT71Kv6vUA3eHZ34ZJ5Wuz2Knz97gEzzxFEZT1cB4stwPpCivYUKVkBNtcHAm1zsNQZJ+kgFt9Ps5bNYBnCHPgMxSon+ju6EvWs7Tkk3jacmRxF8s5a9d47GKOSLVh+gC449aWph3J0+kC9RzGnftMumu+7Gkkl68weMd4AlALV5VV6WtsqXmbLQdcpXk0INX7JNOnJrgKcsqoF6cX4Kj4UQ74ckwBzRttdPfWFqbXLY4TUGFMygQh122JEfksJinCWU5TJPQgC5XT9Sf3r0dNBTwRDxPnk0/C7R3huyosy9FOwm02aWJHYMtR+gANEIk3fIbHNnEwAFatrfeiuUMT6WOZj5MP403jOysMn4u6ouF7s0mDTJw4pkwoTygqC/7UzqoeUo7qaebc1/SCuc5eXEGzh2UGzduDHGG3xUGQUYoGWhibS/DuUT4LMCpoio4bedRashTD/kKfyZrrYbt3JkXKU3I6khGREg59hDl1Gp3nXFriXMbmHQPupa5ckYESY0B1cOXioVJn2AdHdD0MnhCW3mQEgsbAfKGwXaV2lknpEWOpnhiPBM14CQvHIrhNJ4ARYFE074rGaeJpypky/gtV0+PHwm1c39vPe0yBcuX7ar0YL1frMPWa0neWe7s7UrRfPbqiCR/zSCzruxrSSPhEUs3NsxRfE6RXB7jY0nNPYPRxrp4gY9xSmqVjxU2tN9LQJ+J70oVN/M9ckG2TxqxBa9erMJ4fzgqaCyCDIEur5kv5ekb6Yj3RYHPXi4hQMMrhMvEgAa+3c5xsrNxbLm7+BmG/m5eiTs9lNOC0U+2cko/M4i9I2sYwokQYHJbjW5T8pfXCyZFXh2JZbP4Kq5YZgNPBZbwDE4l5HeHMcU7aWUQAPS69nQm/7oYIgIIyWCbmueJM5In4kO+fWnW/nc4Q+++UZIYFLNu8r/hRJYlQH9P1Dc6bLUz3nRgwNPP2Hme3rtzwT6h+SA4lb7jj1avlmLWMmhEMHms5HAzuK4/ppK5Oxb2YL0fazfgiT5aKVCxA3I4n3Ce0eG7spixpLumF6xXLiVrG+AMeFo/hi/yzggrHfEdCtXZ/gknPA2n57mnkCKhSi+NfXZG9OxFQEPSBu/vJVjttpGe9R4elrHK30ZtNMmw08CpWl2P8Ywcr7BcXTq0y41t2c2IXM3mB1u1PUA8JXB0lnJpOi4vZDzdXE0qunfoqn3Ss107VdGUPy3KURVL9NPxFFwXKtkFOz7PFBhj8/c8E6GnePJsfj5Q6FADIblMHMH/h3MvzIkd82CjpNLP4CYv4XGpu46uo6fL2lavONomnmpGkOXQDyFch7vVihgxYKXbIVLoKK9WGE+9KR/WpICuxCwov7VMLfhUFQ4wrukS13IHJDwlppp+n++KgCeq6dMiZC/rbSTzXO7cN5oQfxrO5KmEHf+RZ6Cff4XIn7DvvqfxPNHODJUk9NOckUU6mEcqG+CMsEFI3r2vM6U2TdPYqK6Gh+2I9RW4dJ1BEdyZrGOLTcH4SPVl4ZAnLPUETx01vM+++8IT8U0B46k/Er8zNTyPS4nRn5ydvW6cVRCGvwgQP/ISYHGw5RjsBROQYGUHZEFJR2FxB0hUlFQICckFBRISUQo6hEiBKFPSwz3Q5h72GnjfeWdm53zDQmCy7G5sx8s+O39nvjlz3tekWUWisXzctFM4GdqNJ2lWd9vU88YN3ExMP0MKx1FUBtHmME5c1rYbKmjytLzzQ3hG2DU2/X16//T0J+LkCK+J+1KZqDPRtxOrGYk0p0c80cRPR8oWM4vzJW/AA/C7gmJBZR/MCyvqJ1Iz6/lC6YSpqei5rMgz9ROpkl0/z87BoDmmM85TZfaw9KzplX+S0AizChQ0RZGpQNSf8Cgqs/gEa421CoOXtQMnlfOIZ0dj6ISZO6pL0M93PoYqEYnOt7UNlQjQ8J7R03qF0yZtFMVthfn0I0YUQMtJlZCbwIlM1GgDKB0o0cnYxRM2H2iBEzzZHReXxlM5g+Y8GC3IUpI06z9xmIFzmqYEKgkHmijT0lWCUi/+kqlSnLunoYoxaR7GDlPEUR8c6r1G6v4NdlQbzwcTJqK8KjJGU7PVbZsafpXmxV1RjQhUJwKGgibPPCxELYjM3qmfnLJBoVqTp2IR7/ggOQyebFwQmwYn3nms3B0lft55js6hWLpwhlSmbdGkUksop6nnyPMNn9yveckcA/g65E20chhOyA/g+cvEeawxJ/g21TKGTpAnR3JhLPmBbQmybQI+L0czoXC+xQt5/h/qdTB48LT1EdaralVgfsWjyXLM3iGFKFd5AU7XdyPlaaGo4ozCZ26QK9XOjnMizsozkY51J8EUzixaWa7kPOOE75vJE5Gd6rk+xWL9t2vSfGg8X9WkW62mkcHHXirdgye6NTjtzMcjxfw25mHE+ULZ8HLLlmDgx6JcXFnHT92Skcu+JdTMlVk7J/x5hY7ia/YWJ9LacZNEXpX4K8409iph+uIpaZdRtDFMC02KsRDPW5XnEc397BgT+YDzS6RKv9jkrukZW44DJ5UIyMYjqa8gHK53IPFj7JInpPLU2cnqkYV5s/aJp+J5mDw5Go5Pwtq5Q7OmkJGVd54qiQqoWAbPmnhWml2CpxR0gAkRz5elncmTCiqc5j5RxHiL3hMnm5MnDzl5+JAwH/0BnrRUJkK2UAFJcfTz06/wxKZxHLiAg5ayH9LgWSrh6xAoCifPmPvcf/E2MgWYN6tS4MmPCiJ/KZ5MknJX5XtLc4lZWefdDpwS4RTLQTtLWN/NM0P9TD2zhUep55znG8kTG9JwoQwH8J9hgOl6s+FQH9PPXzB4YQIU8tRCGjhTtkeO8NPyzdNvr0xDARGOU5fQdb4Kwd4Gz9durrCLHxU+BkT7VDWXSjxXwfNAO6s49gSL9ih4imUiMkoite2gJc3e5VB51lB07v/1qBQ87XdEF2RcM636eRhD9RTfWWNTG+2vZ2fsLDzBVU0MVKB+Yq7VRP1RpMgyD+uQXGrZslrjn98nTjln5WNakWscO1/FgDLnvIl5byzPxTzPT/yj0rAJ3nwOMlMx7+dYlPLcoDJRAs6OJYhZvGDmhaUxje/Wfo4bZSdPKShxelFePPWmMyCJp3CiCgKeCEebHx9yjiQE9v7nhLjuiiOeggmIUB09W0Kcp4BGbv60i+knr6HDoSKWo5rN0zYOtVQVzyIH5VitrA2plOEE/W0KaNpi8AxLr5fYpZyVJ7g5St1LBLTyDEme5TiasHbppykoL/uw5RObqown1HNz/dWD7xDZJRO1s+IkRIlqPizxIreV+efBv/KICRTVe6bsCD2cLMFveGDj7B/+er2AQp0GnVpzO/7nhXMsgHSexJfif8mPwHG2PF5ExVNERwfawnt0nBjOK0hoUAQk8tSRXhDaO7LPk2tMmcNa89EjRqTJtVO09EYTpya82IkNiE+2hUVAwQZ/ZPc8M8944pG+GItdPM0T54XTzskMzfQDhq0QvxDO6OBOG3dcydMdpu7zMuVYca+pksM8j7uqnj0g+SOjEZ0nnF2cEq83kfEoeUo/1+SJI6IgtHeEJOOZVmiH/dLWyZPCaESeeAn0ZeIzI0+w3CdPYBJPvhB5clFAR4wv4iO1fS8soIoncWqrr36nt7bzwR1hMipRHo/JszbVtpS/8Pyb4N7UUzwhM54LP9wneaa5811Wnl87z83l9b3vIJxIRZ4K7GnrtHEKwDpP2DsHaeAFsKc0hFQBKg+lsxl7jE8Ia6D8HNJ/4jzwQERbt/BGr/xKWVyCKE19t0RHsnA6z5Rd6lmd5/nOfCmIlloggtGYK5Gm3qVwvopmkG/hP7mvn+HoZLP5noOjMeeYQWmidsoSw9DF0+ydlmk4l/zI9nUEcDhqD/WaQqWJ+Lzt7x8aT+EMOdDvt48I2hk4Cany6RKqSzGc/AoZ6I8kfGfznlJKEW08k6gMQU3MNEW9Q4mCO3H62p3Ns+DJrdO22txs0DuHUzlAFHF+Ik7CpK3T0MsxDXGwA8RM4MJGHGK4pqaV6hB1esi3SdDl8OJ9ANXYuSslrdrUz+RIQvWUrnnYeUyektraEMW8ubGDmih2nsXca4lJHbqMj7RM2p/jFM9Yu6tZCUDJ0+ydGkqg0FHY+4MJypmb+yiqBWDDWfxFDdScZ5Cc6V25n9oyShVQFPFXxvOCMxE5FZF3PjXezDykRPSI4k1c9SpXx9kd527fKZ4Np3jqz1C6irrS/naAe6ontTN4fmb6ecfi0cnJBqeSYGq0rd9fjJkFHnRNlnlZW49qO0n9gh/Ah6jlPKce27PgiV9m61WIWNJzUu3jUiQbOVpYEbKUNOWOWt/tOAeefal5XnGKZ0pWlhaWK9nazVRFrtPiQ1bqvoVgTyX95x0oKNST+nmX+gkJnqTpfdaBFOLPNUsiDmfkJ2g8beS9EiPdWRxHGoACHFQYPPFlZFlK3HO0194MpweEYvuq8aYE8iLOsiunpBDs5i6erqAlFGlCjvpriDPK8hBvtaRyytrBE/qpBZLxhODgV/CEArm1K5KH8GnwJEZl9n42BmfgiqeZuXi6jaACjQzuiuOj6TzV9QGM0YOYOFMqT7kzAZ31HCT95NnT+FDPss4c1LPwpAw9JwvtjNEl4tXAUzhtsuI74IkxF5CzT9drKSh4UpAzPZg8rufOiEWKUZW4oRtZ+k6NFiZGX0rKC0sulgvjecF4ZMdpxbROp7nXKhkFV5VszhwkdLeHopRu7LoTzsbTF5qmOdh7EPppFw5dO9W9wUua33L/AHl+Sp70oPSfkntfTUyLXDnF0t+69jbL5vMAMRk7ocHg1TnhozpfpJO0Kgr4GU/8IHVU6gmIg3JWoju735JXAu19ht13KrjjNqrmbvUUT64zs18p7L3wtG3FwVPuE9a+hr2fwuRxHDN0FE50wsA7V81wbxLxpLj/dDFkgOQBnk77gDy57IGwKvXSgroM8raognpGd2xOPelA0zuOzAaZ06za2e39RnOdpZosKXVqqyotNT01DgFwc4/GpeCJ3tmviZM8mTAdc5EEonfvIchPuZTGH2epdw6OwTM0FLmTrZyYlMNtKw4eKBTt84BR8Vy+TGW3ZTB5LnFKXkhw1EPnSWnaKdFf5oGo83Rw3dYJc+AZr0uc2igC5eI0bwcqnn6ZuPOk/zwWT/ehH11/OZmlO8mEmQrK1zEp56vjVelwAVSJb2QI9m2gfsU023J/OyICPIOkHv4h0dzdgh0ICt5m61U/eVeJ6is1uscFjwjty9hBH2OA039qG5pwWm835WeG9/sUGDzG71+iKfnH3ydZerKMugN5muRcmHyCQA9hKFReL5qM/sYb+BjM8WPGE3jV+ubrxb4gemycXZ5KGWg6y5aF9uzTLEXOs+AMg4eIp/ST0Z3TPwnU97HeNzGe34vnS/KZNVpUnqGbMQNXCyeBtafUUqtJCTj6j3Lbr+pU8p7gmUXOBrRgrES32B4bp0SqODhOURZOaeeQeQpnTLusDrTyhIgneq+TJu6xigdPyjV5ZggaeWbCJJyF51I84zNlTUozvNTgAX7kCVFbkml9cZlNlAI1Kdz+C89JRCvUG+k+E+eYefKdMBZR6uFRDEb0n5oaQp5HwVNAw+BPAPSSPGHsBKmhL8kz2zAAKSTxalUfmRR1EKM6SFtNwuSJ50sTcPZBFQZ0ppb5DDLjWHHu4NlhVosPjHo2BiPBzFV7DCVAOBDO1YgTPNXeRp6fJ0+qpoTHbWADAnmCWbAkjeJATUULy+RrXyVPASVRBTUIeeIfJk96Z018Nak0dd95zqAJmx6rPPGPNKWcetSTmXqWjXaxLmLGktrpLcnqLVI4Ek/Dmfp5mjztrI0vp71gScmspoR4CmlKyNLBahg8aNrEPX3Z2Mn1Os+cqTm2zYlilY6zq+fAtPPsLjRZjrFo3MiE9yLfyQSwWnvy9O5L85/Jc40jSdzewVMBnjyVdybOGKMz5PTWC5wi1aWQJ5L75El29J7IXjUVcqnrGoazYjOavE9pOaekqmfB2Xl2F5pQu7UTZrneHqcgVN8ZnVrECQmcFo9e/4LFZMixCfwnTmC/xFlud6exGUj3FCmo83SYmQQoxYgB7VgBLcEthED3FlDNCEehnkatSeXZrT146vFfcUb/rHAWwF07s7ksBjDslxMohDOdp3A6T+IkT5EMIdBL8PSFdb1+OPI07Sz1DMcNI9E8XJi7bwBKQTTH98VT8agy623WT/Zae7PvEajgdN2sDclSTP1p1p7jxRbOE0ArT501lyNPFNy3GgqgZwbz+JjnEEk7Ly8/Mp510N7IE2ZLmomSEq0aZvIKRzGXtKoovhk8F21E3BMj0sI6Ic5xNr2cAU2MDnTqpGssclv3N6FUaes8LY8fcAqoeIKmap+53rQqPWoid+8Fz2dHyZerncDbGG2PvpufqZOP+ygjDKOrKhS0KWcjWstFnWHHKUgDr6BJ6aopnENgL6dKtMQzeQKnwpGWmxxRa3IHQiUVTqooynbT4DWfLDwpjPspubqRMxRPiXBCCDWGyfKqKLtAxLNrZm1d523guZtj4hS+qp95mwl/PGiOOL1Kt52ynmVP4ZR+iqcB5awPP0XjjDzXx+LJgHQCm58EMhWvAZ3hLDvJzR+QXJ27pQ89eC6hoIT7fOCMIJ5ox85Zuc6dKAupDq3T7KZecYZ65tjlop3kmTjJM8z9HQ6PRDyinIXJs8CEKugJNPSDaV4/C7RCSkhRJpmV0ulqnbfTDBPizXUXzmDkuS24Vf0U1SFD6pIYR7IdaFPOjnOv4DTvKZ5DUf6WrB04IYruni6ZsZMmYbIEGjw/SJ6SBBr5WZs4GhzC7s1deA4V7WlyoL6CtyMNnu2ldd432c2z89sNdBTRrDjT1mXs8p41U9IyM1dG4ilr93IIiRpPaSfsHf9BLid5zYFnma9DJRxwltpM2H0gd6A+AhY8s7uzqeff7u+Noub/pdmBSjVFsziqsHUZUOFZbL1Mh9O+dFk7zP3oiPZ+xxQUPO+Dp2B+gNu74Fll7MxIni3dLkqa3YPJU/GdPJHUK52fo6tsWz3+sddA/27v4tmMnTSF06czKpcXzwxFuTRy//kxVu+YWc6NHTy2LXwneCbQd6ew9c4zv9E2oyTR/KkSNFNo76ol909DzUMNp6QGcyIp+bkeTXbrZw3qlIYz98QQp1dCkmfHSSFP7jCkECd5Hqf3PCFRU9C/eju71aiCIAhHUcR79cYfhGAM+IMIRi9drxRfIs/p09k1NV30TO2ck13QWqNZlax+qZn+mT5nL8DDeaqw9mt7jgC12/i0XLS/rePjESfXdT4GniPOOeyo3a6q3H1aaPKH41RjQmMFuP2XeApnTZWAEzxxv64QcMZyV/UOczaeIecJfPrJhqnF0y6QqEDxM3miCChbL6k5UDMnVAGJZKEqnguf2ve+9HlEE42lpyHQPMaTOJl8fg91dwJnCUch4Ly5ueCglU1bVR1piBMKlc3hArTdsZQXvfliN6CkaTyBRDSpmSr+JLEKvqx5b4UzeCZOvlU83VmXu67tJ83k+b7xBFLEIorVJsz5IfJ5Oks8/do0M04BWj2aQImUl0Gy0rTbG3EDFdNK0/wJEaFYDp95gCLO1Cq0gydCEXjmBIMKo8QpnhHc6c/cPt8mTzkU7aVD8szAQi4iuVECVjjqsqv0xykCSlDxbEDFLUGKql7F7LnlTyG0AOWZEhNPrnam8YkTjTpvg4BlfIQKz+eMR237BNDWEOkWhT3J0/rkJDCtQgc6X6k7zBGrrBJPQpuR1kC0OBHSSZBRJVohHlj6SaZuRkCeiXPgqdSTt/GoPN9PPN8EzzfgSZyd5zxf6fFWOF1+WvjALmopubqkZySq1vGC53r/hOoppvzpiSdXu3jSnk+byvzCCyjtqVwpFO6MS95DV+0tbsWzN5OD5w0WPHg6TPfmJlEZtF7LovBGnAZze2ym4tz2Z0GcMFc4mR7zrk1hT72fQg1GNRoRaLCkruFPOpTV+8dgGor0kw3lz+FPmxyy6OGFirrjg0EVmXwaURhNHoncnCt/MgQlWI0sFJrj2VvyRO5JnOQ5lkYW3nP3FE/6s/VCuNyBs4WjxlNtHqfpOCtQH66CBNKS1205zgGh5L+l7rEVmW5P4nR7KhZNxREbn8AZatG9pfNc7xR5hjAFKp4G03haS9Gs4HOxDtOt6mNdMh0fK5r6Q/1iPBWK8vSNPPubzZXpGo4qDTjBUwbFrc6YLYVaOEKFVHiiuXQQT3V9/OTbYVL6vSHRkwzb9lIXT6sv9/0JjCVf8gHPzOIKT71d0ngCV1e7bkJLnMnzOaNRqJ8eISQFzWAaC/6CgYG+3IjqGRdc5Dm7dI3OnSlZQHd7uj+1bXpLqSbyHad4Eqc2zxBxPptokidw9uId92UIsdxEcCdP+BP1EUxk/jScigymatBCdIVTn9SHmkkp4+hQa5LE0YUNnsCpnvzMkzg1vWA8c/cUz7eNJ5P5LuIkT1DkxzJJGsODUx2B+rflCNNjEx+FpXN0moROoJL1F4CzTmRldOdd5b/mIQfnusVTwajPhUDPyRP2xN7ZDMrDDug1cGK9m3Zwrpe9fY3kZUxHuT19FPY4Uevazf2vGtzBs9ZGGKZTIm88X4Uaz5/imc267M2TZx523CADvVjDlERzDyjltEaimp6pccgvH9pXrTV996zLXSeH3D11pKk5+UdTWylEnqGf12h8sjpCMGI4+iie7IZAqI92cS5qPu9ECKhLpP1J9tHVmiv2dLk/7Z9gPIWzRKOeLOk6uDGysw0CmtB145np51XwBE4IGejrd+DZ2kuokS4eSoax4nT5hvrwFAmmoJ5qz+rMEafnnsnzD3jykKPWmTXxTJypa/IMsdK8ukx70p/AScGfWzzLIvT9zDa1AegOXIPIT2TPu8gqd+MZRBOneHLkKnjCnsQ5TYMUnj/xAM5SuV+JJ3JPKHFG/mk8FxO/0iqhtt7ODk/tmNsvtu/PbXuqTVeXe83lNecpnEqTwBMKc+a50SWLzeRJf75kdymCUcs/5aUVzu30TxpDwoz1nr+IS/FlQ5/wKO05Ml3b88FqtRNn8kyg41q/prhzqtS8CpitNnoJpu8Q4DvQA3iOLaNZZ1pFUzH1i65pissMr37q2iorijsV29tqVyo/dZV87wxrUtw8M1d6S569MopwFOJy/xw8BwKDEtRddby8L/Ac53olONhPfHg08kEljUvInv0mwfUqONEsob0UReDZwlDhKX+KZ5AMoBngDx9uzFZW8O2r1n3nC4v3LH96E0E1NHGqEaJpOut5KhipRZeJ0vs8dSdPGJSZJ9vyXW3a+xvy+dV/Tfp/TE9+sdVit7v/Cyd51h7yI/KcgxHuHV8TJW2f6CSr0MSMTRfH58XTaN47E+jJDI2lHLmrkabjLDyJk7G94HxkOAGTPRDihIQTob3x7EOKjSNiUZZHztPLZ4+w9qRqn51UxxHO0DIUTZ2QXmeGptUOnjatRJyV53MVmsGTCp5ZF8GYwTPnGc5advtx3uW017WQbvzh3zN/Jb9xtzVCrM4MmmrJTzzb2zqJJ2hqBsx40qDEGVSNZ73K5I7aM2g+Vwu4OlPtjAVRPs5Z7Q8gRSPDmS1kBfdy/MbZmuDZSvbvogkJZ6z2jEffqKCJ/vxgFnPMesk7TTfoXJbymTj6n+mrk+Z6J51LzJIplREgw6lQJHdOkZ2nb3n8BnN+7zun7MnSveMUSgr7px42xWYErVDZJupjHBUfPnb8+SleorN1Oc6aKHGKKGf6e2A3nMFzOHubeSoQMZHXsRF7yNWa8Gbg/FLWX+Y7J61xIfUQ719MZM2fkhY5cFKb/pxw6uy7HGpy81Qo0pS8cCoSabE3TTTJEvYETvLEpokPxvbD4csP7xgJg5txvfjdOYsvtvCnf5+qjpp07iDb7skrJLKrBJxzkYn3cKM9NTX7vo3JU8RZvFlHaN/1Q6MWhkDzc/wAz3qKvWLpDPXgczfOwuzmz5U9B5yVpgd34vRopNRz5KlrOEiTPNOaeVlM/Li9vNR0IsW1DolnGBNIwRP6svTn7v65euohbcufvmnKnfrMNtFlR57KiylCOuMQTrTjbVBJcb2fDMOat8EzgEYOzzjUeMKa7ICwwgRQ0IQ3v+Bj4c9t5RLEwzm57/xPrSMtiC7357qDLJxtsSv1rO5Ug06hSMfC5AndQpcsiXja3iMRWBIneTIWNWsGUPCU3J8ecfY3UI/Xa7J7MItTJ6LzAZzd3i+kxa6ifSzZNebJeW4tdZgT9/PtGXwI+yazpHRnpp2wZuN5OMCgP0o8unN8pzFF8hz5frItW+1eaNbFTm/mWq+zSlrsY2BnitREc4aIkzx7FMq4DjG0Y0QRaWc36I9fF/9Ka0bG9s5MHWdqmk1sOP8AJyNRcSdwjiNf5epM4sTN/tiZU/M4wxBhKuekOw+kCZ6/d6HoYb9xMt3dv3FHptI8yECPpj//hHo/vheZaiiJpq42aNa8BUzeypfWrNfEvGs8S32JAw6kSY1no7nvT2ewnzQNE1p46knTwMSBdqwn95roUyK9/wBEn8ynRcTpS51RCFEd7uwJ0kdoXOnfWnsOgjEbT+L80fTrL9TUmOktII8yAAAAAElFTkSuQmCC\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_pm10_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_pm2_5_card.json b/application/src/main/data/json/system/widget_types/indoor_pm2_5_card.json index 946639a5c4..a2101f3d83 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm2_5_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm2_5_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm2_5_card", "name": "Indoor PM2.5 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD////g4OCAwyzv9+WQy0ag0mC/4ZWv2Xvz8/MhISGqqqrf8Mq2trbCwsL5+fnu7u73+/LQ6bCenp7Ozs6IxzlYWFjIyMiYzlPj4+Pa2trn5+fV1dW8vLywsLC43Yh0dHTH5aPX7L2srKykpKSQkJA9PT3P6LCn1m6CgoLn9NcvLy9LS0vn9NjY7L1mZmarq6sAoDYiAAAABXRSTlPvIL+vAC9A4IoAAAXySURBVHja7M+5EQAwCAMwE56Ojv1nzRqGszYQwh5qO7eAYXK9hsE7D5iHyhNwJVKKkFGEjSJsFGGjCBtF2CjCRhE2n/w6Wm0QBsMwfPQRa5tgS8U1aVZLHaIQItj7v7b9RmatYsZgZJa9J4kGIQ8hB/5TSITV9iPIbjOWcK01dyPHMHDFh2UKnv4OsmMsxqNCUFKjFA0AGmT/rhotK3gKDxkcm+gJorWqJcp+v43opgpGcHTJ1p2Yp2AQv4MgAIzojsIAuZASd5ooxyJYBX+BIH7HACksQSrLUchC9q9ruKwV1msJB/E7CCJlIyqC5PaK+i4dJBN7uEyVVyu6I2l8YuePaOZwkKrKFAiijbwK7iB3kj2iB0/hIGkEbBl1co4ZBJSDKCELdJB82Hpe8LVA0u1p8yXpHB4IaqE6iLZNWZY5sgzctsrQiqcwkCRm1CA5Y5ap4drXGllDsJamXRlaA+RS0MxTGIhjjCUJ1t0SZMMmkh3W3RLkxiaSGOtuCZKwZ8nLngjiieRV7wgSNpKs+D/kWwhuvyDhRyx2CQVJzyNJjHn7yZfvmPV2gOt4GQEO/XdZKAiiT3bsXcWRGIjCcHSEB6aoLVWxEjToFiwK5v2fbyX3eoe5OJigQYF+GlMuOfnA0KCXd8grvsYJI833DwUFmpPOh/5tJ8QMetSxNsLICadJoxNiBoBMda4ugHyW3J5BEldWYs92BA8g+vmE2hg2jjykcqTGjsa3jJkkoIlMyDwtiL32NFYcL4Lg9vh3veEZxMh6Ls2yIeAdYui5xjFqpsL3baVSH5DcoQHAecp57JyMlV4EOd/po19PIbHFnpGE6QOEIE7SHJv3d4gfQ/wPYZw/53kaaOyKBzpdBsHtdThe8F1ciLQ57TlF1IigAIrAD4hRp8OP0bqmAanjQMkeEO1EE2IdhSGHtpQ7GeM6yKD8fvuD7xJmdqmJOBIRgmcA2rgeCJULVOZ4sG9qbQ7thHgHRBbG6ODaYK1xQmycl7tpDIQf5MzYrXllKoofRCJl3/1uyKptyGptyGptyGptyGptyGptyGptyGptyGptyGptyGptyGptyGptyGptyGptyF/2zaDVcRCKwqtwvOrCjYLgTnTTUnj9/z9uJrm1xtcZp1OQJLycVao3eL/Ec5Vg96YTZG/6uSDi7oxom6wQteVt2f5N9mbsQBAXMEs2OWgA/0+iQZ1e5XmYQSAKRffamPERCPVOF0aAJEB2DIgDIJ2JHvB1CPoIJHdP4ErSy3C3MSAE6HJM8FLf0kcgV9Abz00MATGcMBOpYn5AVpC3vSsA/dopzO3ZprWHGuMRB3i+kkCsb6kCll5Osh4XFjMrtPAlsEwbBehHp51yAEDqSQq6jF5HiKcWZ6JEH6QexaMaKBFKhOdOqcAqJEIBZixIfiYkAJr6IMwNmRRhfd+lGMxHpwh8EWmpI9a5OQ5IQ0Esm54tC9EHeXhLtQtOAkQB+ZrB/HLBsXmaPMiICOShIPXvPW5JuQ/C8S/VQrYuCsC1zNo0gy4K4zxSnyLPfRL/BglAbEG+gEuNqPfUgmiuga5pGgmi8Jy6mvPpg3BpaEE0YPsg4zeNqdYVBwTzWw5ANre/guAFhDhgS5CMOlDAWvr9N2KAvDHIl1+NIzsgXY9o0LQtiKB1wsaxEoDkzAqkrUkR8A2Ih94WRNBrRfyz2WE4vFlHbOBAB5htQQhAkA/lLojXSns80rwCoLj8huCN77YgWOvSA2H5R5q22WsJIG4MQmvlCkJE30BCALzKRLxc20jzb/aIW2GnEqGJmE4Spb18RVmern35QsFm4Y3vot1/DlpAGt3LTmBmUIqtfkAQBXmb5xc7q+h4IIvXPX3fzh4PZBIarGhr4wFAnFL3qZVwWuvUYBwA5B2dICfIUXSC7E0nyN50gvxq706KAAZiIAaO9/Avv/DHGhqKS81ACERjCI0hNIbQGEJjCI0hNIbQGEJjCI0hNIbQGEJjCI0hNIbQGEJjCE0nd4TOGrCevvfZqQyYT7+pnNr9d1l1Ptzuw4oYi6aJAAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_pm2_5_card.png", "description": "Displays the latest indoor fine particulate matter (PM2.5) telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_pm2_5_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_pm2_5_card_with_background.json index 5cc3267d22..6286d15434 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm2_5_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm2_5_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm2_5_card_with_background", "name": "Indoor PM2.5 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm2_5_card_with_background.png", "description": "Displays the latest indoor fine particulate matter (PM2.5) telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:broom\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_pm2_5_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card.json index 18ee71d5bd..649ef534b9 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm2_5_chart_card", "name": "Indoor PM2.5 chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm2_5_chart_card.png", "description": "Displays a indoor fine particulate matter (PM2.5) data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card_with_background.json index 7694a42074..63770499be 100644 --- a/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_pm2_5_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_pm2_5_chart_card_with_background", "name": "Indoor PM2.5 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_pm2_5_chart_card_with_background.png", "description": "Displays a indoor fine particulate matter (PM2.5) data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAACN1BMVEX5+fn29vb09PTy8vL7+/vw8PDv7u5MSElKRkdgXF3o5OVIREVCPj9GQkNVUVJZVVZTT1BAPD1QTE1eWVpbV1hXU1SJhYY9OTqMiIk6NjeRjY40MDGGgoNmYmNkYGE4NDViXl9pZWZtaGlEQEFzb28/Ozxvamt3cnNxbG2Oi4t9eXl1cHE2MjPo5uZOSkt5dXano6R7d3d/e3y6treEgICsqKmTj5BFQUJSTk88ODlQS0u3s7SBfH3AvL20sLGWkpPu7e0vKyybl5jr6ekxLS6xra6Xk5SZlZbt7OydmZpoZGXEwMHCvr/Kxsefm5zHw8TSzs+hnZ7OysvQzM0sKCnW0tLY1daloaFrZ2jm4uPIxMWppabk4OGuqqvl5OXMyMm9ubqCfn/e29vi39/o6Ojg3t6BeXfi4uJwaGbr6+vc19htZmSEfHqQiIbr5+jW09Tt6uva1tdiWliVjYtaUlBmXl2clJJ2bmxrZGJeVlV+dnWjn6B4cW9yaml0bGuspKJ8dXN6cnBkXFrU0NG/urrd3d0pJSbg4OCpoZ/g3N3d2dlpYWBgWFevp6VcVFKZkpCNhoSLhIKknZugmZeIgH6Gfnyim5m6s7EnIyTKxMKxqqjEvbumn52Si4nb2tqXj41UTEuel5W1rqzAubcjHyBXUE7w7O3TzczIwcCzrKqKgoDV0M+8tbPZ1dNPSEZNRkRSSkjNx8W+t7W4srBKQ0G3sK5oYF/Z2NjPycfGv71WTk1HPz0fGxxe0jcdAADDaElEQVR42tSZQXLVMAyGJZlk4btwim66ZtcZVrBg2LzJObhBL9BNhwWsOB6yrFhyhF/y+vroVE4cRXYC/vgjuQU+jA3iYBz3LqgPe08BIACIG14IamX8HdrZpZs7HvfeYZ76Rwee0rdm7u3bP+3QHEBp4vVLp1yOcdtCA8RAY98aTwgPrrF3qcxqAdjQ/Dj8m2fuG3WoI9I4aiG26wU3VFccQm7BwqMjeZpK85ZY9oc28TKIeInkIp1emruxKPEcEIbEYTnherupzlGOmD97fZKhzQ5MGQX1dyScpQ30ToFgk2PLIoEnvlCrtyFq2dJrc6BPbo6lcjFHwz5oFB3ujDbNgzZN+1xNQIhS8SvUlWf7Ft9cnwgYA2N9ahfRqunSs4fYo1K3cQe+2hPSBy2bgxUneH0qy9IJ6nEbVeKozzZz3/CAPtX38gSDmb0cB2C3+uQW9GkTKFs0ZlM2+x6UoKvziuhta72hsrugT/TTVxA5ZEE0KRpXw2v51HDZjBxVe65cQaJuxGTE/r46bco15HqI+1NRD6dSgFK381Y/Ii4e8jgiCTB9dhL3FIPUfTMX5rRhDaZPbtdq7CXz0NUc9I7HGfVJCiUQwz7oKQR9Gl0PSYGKRXFilg0q8mtompLfQkWI+wI9bvGhnorCG5rnGPQJCsQD086CHqxNAPKDsa4pTZ1Tzq4hx5goEuE8M0+2BjN85Tt4LocZ32rq8/q0i0VC76Y7mmYxorFY5k27LUrgCxab6NNEKi5gESZOROQ+ll6MuvL/qk/DelyfvkTlqE9l4aqLiVUHPKwGWadn1XyNuCremnzOSIlo8jwprNv6wxbZiA3ZG8GoT998IOrTnhmoMYd7059/ZIUOXQliA4NnmUBDQMQ0pzmlKSFbXTHNVOlZ/ryUJx7eQ16sTzyrT2la30f6RPC68gzbbGr3ulWYYFWwTtUmo2tybDynSXgqUky6b79+z4naeX1GizlxrM/N/VifeahPyBbmHjxRIP4bWlCAUc7zN6x5sfItU+QlgD5pIRKlxDy/30+JUO7tpzXtg1kqPbiHPL5Lek19+uzYGkhnuS8XF2H1QAqzAuIoOyQvTvNKrAHgp1oEEatfYD4VW5anxMGUGk+x6vJ5RUnfxWnYxvqES/UZ86d6GbDfyjNPqLeKW0wXTgRIbgeHnacoPc/5flmY5+m0TBR4NpHK8bIffvBcGI/qEy/Pn+T1qSkTUdakSVK8Gsh1geUiYNgKHjYiIydowzqEKDE+SvfL6W65Oy3L54dlkkdVvyMEyvJ6olGir61PxmenIOQwQdsYERKiT28K2/OcDvNMEzH+5e7jic9l+frwVJ6FszzReO7BOUrzhvq0Gq51W5LjylNCtjDUdZtLlOZJ9JkIqxEbdmzQihB/5w+ffz4/Pv94/P3468+n559fTvWfA10lsv8QueWv2m+TP9eSBLL9qS4o1sKzE4ryVCuu8eRTkKq7+U0McXj6S5y57SgNhHHctrYXvEvfgYQbLjQaDSZNGk1a3SCLDYhWJYu46kVbrbgUIaUYpEQKy2IExBSfzm+mY1tsKh7jtxxmZim0P/7znWC5SiUn6gtve/Hq2H3ubG2vsBAqCGi6oNJbmZFMkoL6P/okTOngjIlUEaioQ0neImQaIMPlDZ7RAU+G8MTYbudYBoZhso4OgSCUzVdyGaEwL/hu3+yqmtac+Ut7IU5QPyRViZFe9+fiP0+U+jfxHe7h2ZLmBUiFsAQDkSb8YLClkabwmA3iUYwnd1PIZ/Gr2DxCjo/AblMQdWM+95burD8YqeposHLshZ6rcGyCQyrP/Srbj/If6jMy0rtDIBFRmoYRJhtphmx3vHkZGoMEI4RpApXlROk6j2e8TJPwDxNBvGUs5p7nLbebzabZ7pQ7d9rr5bwqChxLNnwo6PM/wzP9mtPXqIjaP4jvmR0LE3oMFQZ4CbxB7DxI3sMinthYRAutoDGLVxSB54VMJZ+tKKQW4lhF0Uuev3RWvfXMnZ05M63zxhq4jmfIusyxUeGJWiXB4Hy87fRzCeXv6RN98N/RZ7JjDDc60Cf+HY7E+0g4OzwxKzTAbpRlCc98TlEkXVAgZ0c82QmYKJYK0+123W9qbW02Xm60TqcPzwuZl3TEkw55MhzhSaSaQiXRLduLMU2fYP9An5hdWO7BM0ZMXCjSYLDViTfERgNYjjhONksUCkv5LJdTeLnKT3RJyCC/KUpGwRtPlz1TQ3Fo5rZOj+vdpuNfk3lFybMka8DyzF0nPaekOmj676VJyQkW6i/qc1fS37XlaVw9kgyatDRIcCJ+Ej8CyIgnSxIlNs/CgOMQzyzHQRF065owMcA7KhlRFI1S4ep46p8FPPv9WvnoiaU5flXmc5U8R2SC5XnzOml9JGskmklpEe2hl9LMTPyP+hN9gkUdDyzERA2O83pEnUiDQgUj3tscPEBsx3CJbNGIZVGoYjiOm1R4kc8ZJV3XZVkyJGnubXum2VdbNdW03jbXltpqlgxdgXQJH0UH70LFITJMepfp/F/WJ7E/9J/RH5xggmf4AxNSKEVFPBmEE/FESoU1MAIS5MkGuaYgC7xRWiyqkmwsFgt76vT6ptkaql1zdGI1Lcsy5yXgyQXOmMYW4wmW4Pkb9VKyl5muT7KU1Cfc9utzt2eMGCarIQAapFIkkQdDIkT2LRFlEUpkHJ/h8e6FujIjCLKky4bhbJdzY+7b06bZ28yaWkt13U3tcfkEtv1m68kZBfndMOFKz+l3JnFW+1j+sT6xJ/jp+h3sHH6K/FWMJ3kCqogfIhjwBAaEJybJcehRkGUxA80OXKbL8i0ZeI5Xq6k/HY/HWtPUurDZVWvQrx2f1NTWaLC2DUHh2IBnIHiKSvRD/tz265P6M32SEyWuk3SayDLFUIRnlBWSPnrgLdnAqHM0Mi5bQZaFfS6VrlV1jFSRdUkWIAwZZ+7AXJtav68NRm/fHDes7pOONiy3BgdPjsvdM09W8hyFpYm9CEkkwi+WRv2s39vxEay9+qTAfqjPvfGdyI7knXj0fZmOhuGA8MSBPYs8HuALNno+x/Owu3lFEKrgJguFQklaFMZb34OZ5617m01vZjqO23zbefLgcePBneFseHRQrtfvtFxbEoU8h0XOVSZ5SZzkK0SjqfqM+vdJqDGB7dUn2M4h6foMB9ERMZXGjbQ58TD2v1SeFLrySh7z5DiaRjMAKYqyKNwCjIuC5/vzhb9s9h37igcV0bo3XvXc2RJSpZODB48f33ukdnvDRvHw+EAdjC/DoXmOYSAoVaAp+qwKeSsb8kwQIYb72nt+Rt+vT4qKA/4pfUbRMsSecKBwS98yVNArJjzhFhRBcIM7svwtBWKPMe9tfd/fOv3ZZrPu9UYtEOXZqrdBNDftO69PVLVz8vrk9O2w+LB8UK613bFlQcPO97x5tWQYklGSpJIhGFeu+FIGnErkcFI3Ohklwe/VZ8QlXZ/Rt4Enu68KBwl9As0kTyrOk/mOJyna8Z2hKxI/AZ6eO14ul47TRLWP6w7f9tbr3tlm5m6csWuddt7Uagfl168hCjWK9fqTWnNst9u2bS9BwwswSKhKxrVqRoe1khCUCOBdfpEnFY12GSbYBsvp+iQIE2rcGST1SX5Bim3sZHzlOAZdXJAa4l/O4YEG0BwYw1X4THWxQpm6CSy347WmtlqODdmmO3jzuDVqHL2uN+6/LDY+frn79P7B2wfFh0ftrtWqWdrSn/tIoV5vZcMBtqFXry1Q3c/QQSM1aF/FfBCZhfab/jOKEmn63D2OcNmvTxKHyNnuPEU82bDUhBm6TMQTcQVjJygMVZ+vzD7wdDdnG80atkZjxxmfmdZpfTgsHt2pP3z5qvj43qu791+U39afQHxvj4ZvR5q9BJ5L3/M3vakN8pakarWKeAZ7YDLhmATPdJLJC6XSERFfggbpgosHf3QPAabqMxlAyZSmCVvUMCbqpGnME0boKZvDMUm5peu3ZBscp2tqY6cLkbvThfq82Wyqd9Tum/LDB62jLx8+HdWLh08Pj06GquW6a6118kYdbO25v51O7a05c5aFxULSJUiyFIhLOQjzuYrCI56JEBkZTYEefl2fVJznLoQkjYhnTHep+iRvnujgUDR5H5QYogHhCVNAC2ts9nY2m+FzGR06HfPpSuuqo9FsYw2PjustyDZPX985PTi9Uy4fNt48uP/y1cPDw8OHjeM7qtWeQdXZbFt9d2nbDkQtx5n1ZyvbW0BgwjwVCPK8AP1nacLCp4dpMZ089zjPvfokAorzjAJP1AtN1yfYPn0SeiFaJhiGH0gjCwYsg64JGZPPgjR5/lpJlPXFfOs4a7XTKL+2ulbtcfHwTc2cfXx//8XDw+Kb0+Lhi8cHxw++fHzx8Oj4Sa2taTPTcm20z+f+2oR57+xspg76lwqeBxE+owiiouhSqXrt8hW+ErWawfFgtui7DV1V/Br36DOpxmiSOif4d1t5qf6TWNzfBmGVLFCR0UF855iAJwSiCbCUSiiFh1juDt4eHDU6J6ed+vEDBLb48PPL959h5fPdd4/uHzbuvX/64sFxHQL8qNk0+7PpvFC4Nr8w7mkjs79pvh71z55Pba+giwKviPJ8Dq71xpUcpLikY49TX/Ij4E8Ul/GkPVR4aPG8OnopgUBmO0GaHB3XZDIhoOJOIub3iQyoOFIaj5mI51deruw3lTKORo3GVB9cHozxwQfjmzz5YNRomhCTJmq8uQ01KFFT7Dh2hmpnBoaZDAMz+kDZt4GwyRZkX0oBC/3nPB/glIp1108vs1x6C4ffen7n48cfT44dJwNbbzCoFzoFfzxDc5ockFlZo4xKnNLCwlRXM0kuNh023XRM0OfA00AFWgrOoqn3z4+OTr+5zLeDlaB/FmQ9hQ4myJet0IXj7NuLEIrZduPDw69hnYRmwoE4CAr/VRD/M8TH3XbE9LftfLQTOm8T1L14mtEBF3eDyfbFnRrWtE9yWEdPcgUrsUISt1qbtuj8qNezHTsXxVLKwycyFEXJFGtkRCaT6LK0NBV0TR6PXh5JgtAUInOZjnjpJN8JllnV05kU2+02an3WH+WTTCZ1VSwUMJEP2bEchw8/XDSOLOu0uIo4oAl+RDg1NaO3y7S/bd/G2koo2+a5QxrvAruNp2lX97BNpmtvdwHbpn8/no9/+fVjm0Xw3Ns7GgDPC0e7WMp6eFfXWOPZFcOZZBJ4jgROCYynr00lYdkUJDfFxNxMl6/7EwGG9yMRLdqddJLyR11G2EhdLaLRYrt1umd37K3xPP969UrWJcU+0ZCRacrm9ex0HlsSivvw3Bja3Uboz+N5t0DYZfXv0wuZqpmN+++v3W0jWiB6BeRgvG3H4PxicH3Y6vX4ctdg+XQyI7MuTQ8kaEZhhjEvlaC98HeJjix1tzssKgHK8EcTLj7Jlj1+fzZb4lmPv+ZJGiqViBb7uX5uNlkMHBaLgyxUZCQJws9XDLbdihP7Z5ti/45XP/Hozshyxyg3FzvImX69hdd9y/ydu/ZpPux2DRty1zTXJ9Z4mqZptZ7hDQNPm23QymNquXC5Ehk2UWZZZBxljlqT1uhqxKvI3rAujWJMRNDdEbdPVWW2VOL5OJ/wZEupShxRopbyVDKG3C1HJ/V6bhadTR6crP5xor5bMaImW/3tqqh4jNzBw/a83tRDbKeeW1x2ctHOMqG9LZnurF/fM5+K469i7K5qc2WEePwFT+LzmzHcig0BnBcPQyCPH162v78KZis8ZcQTFD1XRZ+qiCrXFDVK4eaMVHWH59xY0HWYZ1WYc5KPcvGlYDSK7MMnNE1zlRAokgE2nU35CyRR1bLBBQi/b88ce1ZzDECa3sdv12oksJkW7Iodbh37t1DZdnjzqXed3kRm17TxsG3EJp47NKeJ8gpPUz5Dbt+OiHCyIuIte47Q4QM0NA+vF41ZsAZfp4yAz6vTNEMriuKO0T4frc+9sSqnh8O6ex72IjEtdY4LdOMeQFdKpUqeikxl4sES7LPb5T3o6XkefX26dLX47pwU9d9++zV5GYg3a1rrCUK5boA1p007Skec/4EhmmsXL/Pi93/SRN08uScj3t4yh41rCmQN70qacHDgcIagkYPgsHVdBBsXV+mM7OakSMTtJkUmDFXnYpI3PBfGMYnxUQotarXUaCxx4QzCZtyTirsSiWDJSNRK0Vk/6q/FWb5UNkRVRlxFhf/hodMOV7BfPEF82/oVMVQI7vfXeJLPdC3h2fB6Zk96N4/8bhw0UwmWmWTuxdL8uz+F5zbhsD7ZLGD5i33iYaN7t9tBwfdaxf5sNqmnKyzLurmA5g27vbSqwj59XrcekaqCzqheWKcYcMloNSn2ZshxnCpX4q5yPBnQFFfCJ9f89X6jEI2XqYyrm/HRqiiXS/V+79xuwa/71rIa1T1xRvDcKCOB6BrPtZneetVm7cIIQ/jDZeJ5n32an5H5gMMOsHcLOGKUv8Jz062TV7SGE8t5Ah1sq1XM+YOFUlKe06IUE9FlMj4lIPtUjYlwuhQbVyO0DHhpjYqzzFxn6JsRbHjOdBOZbpkCP0/JbrXmz00anSjvQulqdH0M/pFEsN8+Pf7sSwLkj/ilQO7HTZe7Xr/guTrs2IRpe7ew3OK5ZSj347m77iZ905DJ7V08zbW5fceAVyQkgZNEsP19iBTO9pzOw97xAHhCxJnKZiShyenTkaC6Aj4kn7niY7xeLjIcjgVJkmCvmWiWTxpSczpmvHMjno5znFs0aJKjxKy/k65ks7yLhGBZFANU0hPtty8cjs/wezciKRyxoDp5HOFmH4/4YA8OMHRBGDKt8V773DHWf3XtRIEtNgbXuyMj5IBf8Dw4eByiDwyC0WWfEjwL6XSpG2si6Tx7U1V5mYaj6yJMj1nhWRWEGMGzU/K4kkJ1Oqa94STKI8CsdmkO4VbN+gseVzpddiUzrBwQRZSvtehkceFw2rfw3IykD56Agxzs4xp4YqIKjuvxFcW9TTP/bjoh7+hePHaS0f1WbZ5vkf1k3dcEb/3wo+saiaD5GOkxrT8ehx70oOOsp+JxPkmHuTB685uboa7owvSm2URjKVSr1Zub6XQqeYWl12ekc/6USEvCtBpjFDkQkYSwlgFRjxI/AKsOAMm5TxZ9PJJV4apx3XM6PrPAHr8GuwTwiGccHJDE/tiP6Dmf2LdYn9jH5qWvPiO6UawtFn919ueN0MTwr65dJzCJkl9XVWbHvHmlv3jb/grPM+DZInPLTiqddWVURg8zMWE8HkZoaTmaNpdjgWsOlwTh0TTGLas+JZmd+bOKL9acViVGEX0xiWMUthvQdDfN8pQoy7I2V8FLVTxRcPyNdn5w6viMSMqI1gRrH9ACSHSb2GZjxZ+vnzj48VvrZxZAbCbMR26rkt+B8x4D/fPrd6PsbkO/jeeajSeBnwQuEkifsBLy57h12WgUo6l+Q0PZvoqWCj0eL4ejplAdT4Xw8E1ufjOVmsPpTbWaTFRSnWBaVoTmqKnTSmw5jmko+tUKL7iNcjrBIhXJc5ViWU+2MfP4c+D5F6cXkEBZ0DJYz748s0KOa7GcQTJhsRMGHy8GoBLh08GXJMOvZJMEJ8TTO293N17+axF01/dNPM1IYOJp/u5NPt1HbY1GDwYKPI9DDbIKpWhBE5kwx6H3SbBc2KcLy+pwCCMcvaoDz9j4jRvgmUmiVue7FCUJoxgK++p4LPhUomvwVSWNTciqqMiaT6GSGI8UJ/4O8OxcDUJoahGqQS3bLdaDH61nDhz3HRfn5+Dw96zgTCxPkLUuRA8Q23FmjmJ/xxr/EZz3fxhb+WdnkmLeXg3Z4enf2olZAluCZ2hQqBcbk0IwlQ34CBEnhb2pChpJMQzrnCIPTW/08M1UePIFpKkla5R5XvYZmUhsJDG6NBwNl14aeFaHoyVqLMbNoOwMyHK55sm2F/0+8Cz5becQWgBOx9neid2K5GN1OgHoxakN6+jYfnEM1T3q+3UZBUbh2/0nzCj6FwD6S08Gnr9rqXfro52fw4F0eFYSsZwhJ96QlbBKg17uql/31yqpEqsOx+NmkzJclVo6K7ub1en0Ziw1qxHu1Wlk+OKbb1aXRobPaKqPpqvLZbOpI9jGlsNmxOtzczGdMpJ0zCd6vYyqJSud2aTRXkBi36n3BhfHIcJVh0IhAGm5CB22wGNd5rGd4dp2jqGVfQ9paUOUIApcWKwoBu6Uz3/e6O61OzOR/L5Zrn39Fs+dpL6Np8WCWHX6ndNxhPdw5jjptRoT8BZ8IhU0xOloPK4meKM8K/gpd7M5vXm2impeirww1YcvvvzyW0ujy8te2qdzo2FsPHWLaOKFN6dVNxDWma6rQjdFBX0qo2TKk+Jsck34qly/Z8NekOtLYGg7hSnuDXqYg7Yh02u1MBUdYLhkx5aHH1fN54HzGDbrsKDGf/TPoLkTY+8JAmsq+B48d4v7zenu7zA3GBFfX/d3+ySWIYJhUDa4zC8ahTTazITLpb346vSFl2mxHgVPpIWlmI97cww8h6PRdDoa3rwgxGQDo7qwHokg39/coJ1XvdzNCFWArnM0mnVFkCEcSRgYhhb6vesihkhQkYUGl+1i8fveYEXdnYO3HrQm+W96PaijWofnDiJ4Pj8mg+XHbQ/f+eTIiYQF7yfv6p+vv5u/zGaJHMzTDf+50mDvH6w96gmrBSU2GeUer/GsoUHsJssB4PnmS15fvw6KQwlLkhhe4TmaArzp+OZVQQqwta4aRvU+Ht0QPEWR0afAM8JxETpd8mtAvFwud9mkq5AbkD0LvVMbrDO/QNLrDex2hJhzWw+a3H7+aDD4/NLWOzy3IxqcHh1bCZ6HH07eP3d8e7aF578JqgmnidQ9y9w9aJ6ZVSdJ6mbHvNFqWK29h8XLUAsiJRCYNdZVSXa7yrNvvvTSawpV4dEyanBhTzIiSU2EStp9gyoUCZ1iM2rEjQOI+punp+PRCEBXmzEpmYzojJFOlVwJYuz8LN/qHcPuLmyt8/PLdj3XWGCqDMrahlFo+/tKup/v2b75/PNe78E3IVit8/QERf2ZJXT+wOZ0fHVApOhbeWDFkf6N9feLKxNPrF8ozlVwxgUpRDbsMdoTotbY2wM7d2m7bhcXoINLlWwpabDi6OblF19QZJ5M4wKy6uMzOkcQXTLu0bgZ4xgaI2Rl7mVIvTR9+oWb6Wg0GsdisQgnK+6wj8X82IWVLMdn7etWKIQdCnDuw+t2p0/mdXms697hw2K/kp4tekdHhy34u+3UYXeehICn1Q7XH5wjFO2v8TRbSlI6/8mKybz314qrXU9AZ7a54fzKcrA6gZsDzk0Zsu739p3O1YYXOPpi0Z/lcewv0CMZmugLS9MqEjTvkn3hZJoKZCgmrKuyAO4Y3bsXZVKpZlCaBn4OpekLL7384nTIzTUftA6joaahKaIyfLzgr6VTpDHCeO8IGT131cpHJ5fIP/1UulI/bECQi2dMBrDe0OF1/sGp03Fy4bTDPn/4xm5BTPj61hpxspugd+/8J0W+CfCX1o0QY011YhEo9/d/RHN08BUZ5rQOscG62ChAzkEk8bbrfDmpqG4OgdA9zxhUQJHBwrGU6GMCRhhUPRhRaOtcWQ8rK3RY0aaj6ujm1TeHVTedECVGrY71MGKpSHnSBT/vAdU0KaIWOiLynfZlMXgFyR2R4qZyh4vvOwXI7xuYzjudCKLnwPPiwm45OPiahPWvPgPVTGxgN8IBqntPtte/hqcp87wtxVbtG9hwEjbhUU8cfPYZ8MwvrvrY8VLylIL1WSN/fllMezTV7faGwzEhEECYpEF84kRT2YSoBgKy4tNkPp6uQG3DNZXAzSgmNKevVgVGSWtVRkNv2mQiY28gG+wEk3wa06NcsW375ughzHTRT3fg7I3Gdbvw/WE+Xyeq0u+vQ0DP6bA4CZ4nZ1a0Rdj5gF7JnCDcX3+Sv/6v1y29tcV/YK0HNdhCCPrB+uVXD46cID2vr/PQxtYSlXi0cJWbwEc9GBNBiihQBpgmVmb06ljUwGMS0RKkIDJ6H55wUJh36qIWiY2XwhD9E+fW3ONIGK3SuCkIAVen7vHwZZcntdpRk2sgbhYxTKrBIouL1mUul5vVg35E1En+/Jgoy/dOTp0oha1Q4mEvBDaSfIY4T5ZpZ+tUYD6Qt/d/rF2Vkokn/B3b18/2rNbPjt8/dJ5ckAqwOKlXWJfLH119IYDHE2Y0RqgOK2k/ZB4iM5/e+JSMwWa6zFyTu2xAX5Y9CdYtsiK0YLQbobY6RFkv6cJQkOZuVKRVyajlci7eU85UiIUWaiXwn40c5ku4WSvmwb3Mov5gNnjR60za34QQytd4fgvXOcPDtycXJ3ZY5wZPUq1gAcjth0f+Rzw3H+GG6iL5HNmdHFbzDUKEOIjya2A7vF7kSpUEz0PQlYLw0GA1VX/m1emIoRNlT1LRMWQPUAlWS/LJZED06hIkSwqoDzAeCh/3hiU3OD1vuDq8aYZjTUKWLDkmWSvzhWAlo8SxtbMQLLsSFU/XUBXZBXyhXr6cTCaLdhbWWpjkByHbg4c2kIZ2x7cYDIIzWe0sIWsPQoe77R05udfNcf+PIwCetXP9p/BcXa0eN1w4+bxxSqaZeK32FZ7Xl+1cquLiK8Azm4inCaMeee5FzIXCmUQtqenNsFcGnkqSd7lkZQ4RQ5j20T7CJWnxGgR3YV9kSdPj4atNRlq++mq1CgIPP+maRXlDjBcInq5E18WzMq0GXNmSn+DZnzTyl9laNoWMPwg9OPz8AYQje8Bz/8D6Jcntlm/XelGTDdlOPbsN4+5f3b92nvGH3ecWoFjmJmyycNhzgtsBi3wSOu/10Anm+/UChMe1UhoqBO+8ip7nhaGAapNh2LgvJgiQeAYC3ghDs+A7UbQzmB03pbmXDsgGC0mT7EoauKOrjFdRdGR9OVmmApzbF8i4+EQ5V/BEG1nYKJtMecpp/7uvD65nV/3+BB9h0FO/vEC3dOHAFAsvC9MXyxle3enR6YX1x8fOMCFZIbqu9+43p+1vlPgHgfWe4b7p7xtvX4tAVqQ4pjR7TsKH7zmOzyF2hQS2PbmaFeCXeHPlLoPEPgbp1qxWw25OTHoFQSBcpuJGW6T5MPrAhEhERSVxc68ookOlYyqVTHq9bhoVVCBAq5SRcJHQwIhUtxwv8/VoJTjLYkNDspytxUuFL94ftHJXs06HqHBTV6v8fuwkeFqtcHgLkYb/cHp8gle5R/A02fpbc9pMRMyFG5vD+tQE+XfN78/BvlF+mYzVLz0mmW5YrfAnu3PPAir32Hb4EFQZuB9I4vq568tiv1AxVJ+icl4xho5HqL465kAnV2mVFcPCeNmUYpDU+UC6SxG31IxFIhGfGvDGkLw8GlVxQSyacZX5uL9fVmDMLJssp4O1mj+bqKSj9dxVKZVO+a8ap8e2Vhtqe1RTi2Lu/cOjU2wJJXiC9LISDQnOTk7sdnzg6JCQRe+p3gl0t2iaV3fiAjn8Dm/3p/BcAWh+SgTKjWyB4Gm1kFxqsSN6np6fk5lRu73A27pCTMvV4xlCakLS7Y5UxxHhhrh9JJLpJhRCdMA60aP7KFkmzxA4t85hNK9CGEZRcxXNvqxU4rJR8U88XW9YVL1aN5gLliouyuWJQmbn90OIU8hdt75r5b/PReHujUnnncNvji6cF+A+wJGQcgnpyPLlZ5/ZIWduOVb7atceZpZ/u+sOsrdobdvn32P1TTzJSGuzk2PzXUpPkDE3TMARgnlanGQ5sDfzEni2i423321d1mc5T0ZU516VDtOqsAxzYOfGSy+TrvGaNKeTrjGIZglSG6wAE5kzbh1pXpMZLjxfuhF8k4lgyitiX1cwHtbDetVLFS7rfhZEfrzQmPQ7nULJ469//wHwzOcXxauryZV/cmj75hizefIRnwBM677FQTx/7xjbbZxnxDpXMoffwZPc3A2ud1P93y9XgaEprdq4+npn5j46D1iBA85OmE8yazi5aBQhz575U1nsfOuUMqIocnM0jDS0NrKscFDP0j4oQAOajxEV4a0Xnn5DV8u8JkIlFna73UBWC8gUZnFyrVZzGQbbTXhSn3pcKsb14EeocimrBShX2g8wrzqltGfWvsqBW1ojWiz2F58/+O709PQI7DEpQ8+PP9sDnJjbnXz0sLd3QMTLq3XHGjdr994Gtu20ZN7ejqu/j++2XQNPaDtNMFeHzU5XzLt/RE2H+HRm2SN4njkcs/7lh+9Ha5VKMNooeAJeUYF6gYn4AqKaTJTpkRT2YepLywky85See+m1lwUmHdREWHAYPX5AAy2SLLPka5dKQRflEz21dDpb7ipqLMYJY532eEQtA3k9GqN+p+bxTFp1DD6Oe5dYIOdhhIcPzs9tDz75/OGJ3Xl8aHPakd+feOLLk08Oj76Ec5nGcQ+eZg7Cf7dQmHCatb9544+7AbPUvFsvrSklrM3X05xZcCQKa6B5Ehpc96BOJJOIdh0btdAVlniVEzVIZlRXHDuJPGWNDutg58ZLKcJJws2zLz7dXFZjERiq5HUjG8ks7R5KxO0VABrHxLObYcFH8eiEMvR8qYPDL0NnG/Bgt0ivlaolK9nid/m8beDoFbF9JDhpFK/PH7SOBu+/M3v/AViT1vfF65YtdGyB8NxhP9tH3byeyd3qgX8bWBMD8zm3trb1k3dLyfvtc4dfWuOJx00yInhagCexUuB5chGyXbZA5X4Ivg7+Ho32rwrAM6IAT12spFO5SY0XacbNeZnpENym0Hz1xZdewCEm0b6q4NVjksRmQMsLUH/7FNZIAE/sNkY/wJYJ+al6q24lzJXj8bLmmfRzp4OsJ8NnP7A9vF7hOStkU/0J6JAe8Pzg+/oHwLN32Cii3D8PkY335JtZsfDNBCZE9+NpQmX2o1t4rq+3QP8jPH+Vj34xUoAJNcAvew1Q1n1NFC5n2Js5eLBodBaHxxdQI/eD0Y4r6all492AipRSg+CIDfAVIyDQRliQIFMEz0H0N02Bg3JhyPjC3FDQY03dzWoRr4ins5lEnHdlWIPivEZANcpRv0yB62ewv9Ng5QwCaA5as5K/sHhYShWL7Qb4kDyKi6v+O/2cbQDG6er7hz0wJ9EyX2nb8vkLJzpQq+UA1rmqmL6E7+OwDeK23W0b6J1stB0rzeS1FWP/IIxC7PnYNp6PmxZK1BfAE7Niy/kAtHy/0LadOG3fPVzUZ7NKGQL4sqH4jK4/ZSQTlJZwZWTJq3HYdACaQ8K0YzqNScCzWlWVOTcEtM1IhNI41KMU/jfiLoMCleyGDlc0XLWKEgCLQkNAigjAEpEtqZZKEC6mUv3+FfilWR7BBtLG3FXP9vCjTh+eXojmChXsZH64aCPGOu2fgQTdtEZff41++bcWwfDO9eaeeWI+4c49cr5rq3fj7No+IaA0hWebRQh5jBHs6OGJqdoeFL/HtP3Q/u0B6tEL0J7+ILI0FfAxinbVycZByyEfUe5YdTSFNJnRhy+/elMF7YEwGnFnEpwE4WIMEzpZY1iPGmMNlEkU7UU3pWoJQ2YNiPK8rObTqC40TSoA5VnWVfbwyWwhmw1mXaV+Ltf4ntDY/VkduxQfTorI+Nl0v55NleoIt++9/eH1gx9OsM97y+DuwdP0afOCLPNkO2eZ+N3ft/4KYdinOWE1fynwJKzNRrF+HLpcYPOAzXKAEh945oupGmwrINNzn68WT2YoGdoOVJ0MZIgaIiLXxGhz2dR14AmmU4bGQQjP3dWxokJEF0ZEjXCgnuaMzuk0yCiZEppusmgxk9EC8HcX4mgykUh2a8FgMJsK1r+fTBqNq1yjPyNU08M8NCSTSdQ/K2AXWQnx3N9ZfIjS1PGZKfTH+tP2iWWemH+/Oe4kcXOZcXaXn9/Cew3oE8iXdtJ0QkG7Z3+Q/7jw/U9fw/u/dlwc5RtxnqVUhUJl7sUJGnbKMArBRAByby1gQI0ogY9DKI3EgCdDT6fPxlQf9m+qkHxixdBzvvDKk7qPCVc5F6to2nAUfv6pKrZ6GRmwpjDMcjSaMUD4x1PRaK1UXKCJgITiClOkYjuXy7dzHX+hk8NMqcSzlVoqlfI32tcPH4ZOVtpfVKE7OJrgbdmUebFtaTg1Uf3dIv83w+mtVtksFNZqIPg7UVwSF3eeDz75/DunBfyD9Xhw3bgqZTHCCCiqGp5jhRkVTEea12iuOo3ouMtAT0tKeAgWwihEh6MbSSXSUIjoOSEWA9xPPv3UWxLn9c4ZlsyYhaXEwT59WjzOdsGFIOHFRYqP1zwVsMouT7DeKGIyUO+QthObkaEQDxbqBeyxT/PIYzBnT6nezs2+C62+cIjkge2aejevb7s5+XNbDGzOd1sq09q20DTvmBDfxfORDZ4//kzbtXilVcfxOp4GTuRNDPGVyh7N0ZY25bY2nVa2We1Rs9Vqzc0bE1gNuHAhLl7YWjaQhwKWk3gYtZGB88Ep/Of6/MbMNqLsnPp5dgTleubH7/0+Pt/P98uN6wO7Lw5dRwIKOEF93h2fuLQb+sAbd3++D1+KQaEY7fW5wbsR6ohwcWhqMC7dYCEdIFZKE2bUaC0BV8Ierwe9oaJBw5o4PzryQVdxva8AsgSvdPq8QByJVRAqcR+dmM1bsLkhEktaWA+kDmELz6OMSk0tozrKYrfYbCYzv5zdwCaNBxsguaYwu4TlLpBD2KbuzUyfu0BmFsgU8jagT8C6faduPa4Y43bitAXSNoGyHZCeRG/bfzyJ59YrttDGZPvANZIbn/98aIgsoQNhi0Lpm0m4gKvv/7q0vJbNLq9NZywpB8eGGB8WWHCuUCRuzBm0g4yRBpBgQJzOYLqbYj20FU0iYG4vECEjTHhTvb6uU2uKIE/qFXiQZkslAAuBHR3LW7CCIMD5kO6neJ/bMmuDddosGP2YBumKUmoWt0YCQ4rwmPNLswnMNKdStmSUEDNmWyaT7bkw+fVQpeLc0fmTfe7k/DW/UgtPfJC/5PUR4ElC++VbN4bQ7dj9iP8+NE4q5m9+fri0jORldX4qkXQkONbFuGNhGr4ReJbbhgdZzkyD2WThA0LUYLHFQ0OkuIKGsn2FokQFgqdmc1Nt0BRDBM+27uECQhU09phEMGOGNpqnkaPGgSckyxGMMSDBtNDm6CIkjEh6CZ4ZCPlmUFJU8AyHU1BSgObiI+HMwvFbFyau7RjPLXL0KYOsfbbtdKszVYXnttMkaRKpkS59c2acVG4jZ1CDTFy8MXlh4hLKzvFb58/98vNDIs9MYAphI0HHYwzmieAYV5BmRs1QcHvZTXXZhTvXapdTwk6tti3oZPyE/0xvGvrWg6FyMOChXbjj7SoJY9J0r1OA3gh36/RB8WiJ5qOI7RaE9qlpo5GjYZ2Li7BPGyiYaNxDo0dviabCNvD4kEfevz/31smwLZNYnffQcykL77Q53nnl9vuQLW6N7u7Y6mrzUbVBfrb6CfCsPHucxhM8d39287Pnfhy4fh1Uzji6snfR6ka5NHn+u3d//Q6ZaDY755iFa/PwPEghfyBYyGFiBjSIk2cVm7qQ1Wtkg3aKkqmHtW0hE2qlkN++smkoFuz2lSDGERg/KUjlQVamK5aNcJ9sAP4BSEag/Ia4MYkHCYfTiVIKbhEukk7CKuM0On3hRBJ7seAVLOEEljeNjZ1NoGc3v4CxRcCOEbyPssvnL1bcZ2Xl+P9yagO9vU1+60Fllhcb6Q6duQC3CVYMfhMLe8/c38iia5vA3GXKhjEuH7KhYhH3u9Fu8jF+exB1ZVG9uenlwM257ALhD98OatvWyZhHIUR0Icp6SG2DENa6PWBG1zVUENJmv5lDDlVi7OxchM8nTQGTxxGGodI05meisEcSyrFXzJZyeuNm3gJrXZyl4QoyUzO//vTa7Z6e1WUocjIpOo8Cdv7ed0sz9y5cr8C4Yzxr3+nbFlvxhVVXPW3SZAflU1DDTisr/m5dwLb4SbhN0lS4dP63JSgYYDGQb0XQbY97eRrjWUYzjyhtYpGiW3ObbRDNh8Av5VZUkh++1WpEdr9IvZLGYMKmTioWiXQhJ4uBY6pfVaaCTDrtKsW9Vnu/RKJ6AXJHC25ZvwlyCA+M000DTnJQH1nQovY4wZ7CYpOZMNqlMczUEtXP6munV5eRNjksSZSeYzP3spmem6Tq/BOej1H4D2wVP+IfPO0zW64DD/44pP8Ovg6c7Tg2zExc2kUKI6JzXZtG6m6xxeKLZKDNMR3Jcx7YkQdj7YzfnysatMjdN6HlXtlsb/nhTrdIUHLq2qTiIO53nVCgNqjtSERzUqlYYsU9XihY2ZjTSjUK5KoPDuNnRjBFZyW0H3gqzofBWAeWDzmwHxh/Rt7DmjyefXuOHt0TCLB0mJCwqEBPv/1pz/IaiVKOqZnU0Z7DkeN3d8F9/dk+nsiZ/tF0n/2H53973ePN50+MRwJMMHVY4EkklhMTE1fR9sKaPhQgU4vwbVAq+KYS+WiEMO9QevGYwxJLQ1ajH93NMiaQOlfsaaRI3dpuEcX67GUrInwZ/rPYt16kVPZQTlpIB535GAYVTZyZCwpk7S1E7uSjQS4VykwJWmY0PvOzs4kIjTZ0byQas8EH8MdSeXckiRSAN5lTs8jol5Z6jn88M3X//traMkpPRzI5NutYO39ooO7fOM//0s8Cz8fDz4/f/+UPPIfQnkEH6drQ1QkMWlz95dx3Z27BDMKWPKaqpxKghKMxUwBpEgeX2ChCWEf9aXSRWrKYQ+M9pDN0i+QmPsAEgrJirlODJmghXWhMh8RSIWWlM+EUY0XVagwKdR2euBupAsosz2YxyGAGxIvxOSyzBeXU2rXPjIQ95QjnD0zbEPLjcUsM2ebUA4jHbve8goT0159GsYd9GsS0JZOZXXv762v/Mhb9V3BW4vuuQ2C3KpGI+M5K9x2Dmt9cGoEc8PonpBn7/sPby9C4bWBnoo0u+S1xhiml+0Qig1rdqVe0qtuKdo9E1ycsFoPS7j7QyOm0vVwIMWR0LhAA69wv9DOIU0a3FaZLZLRgTGNo6JlC632ddqvPi9d4aa9xhcmEQa14PTHLjA2aPSMXycd56PSgH+193WHOR3k+nzdjxQPaBBvZhez89OzcHPRU0P+8Ofru7dX5h+NY67B9aiSj+OK/t866neI5gFdu4Yl/4OehWxq/OkIOVs9evfnT6VVs7Hu02dPm9gdjNHxcUafTdUOc3KBSaLSFnFMi62soFq0qzTqhldNWF9ZYlUr2HBJ2v1UqALZskKP9wDPAcmTMMBr1OFmMIwnLGPfGq7xuI5srJbC2wYieSGTKwvE0543kUSHw6JN2mT8O0wTPWD6PUR1seFhYIMsIFjOZxemFOeTzH14evbd0/urIE3jiowY0O0HpcS6704uAJ9J4ouPfiuw4qIaujt8YQmAn45PYH/DNudvTG9AQIV9y2HhTLm3keCN8pbBBoUwLRDLZe3cwgn2qo1WhlIBdYoykX8Q7QSLnkOpD+F0UFqgS6woGGGRHFNTeQey0Qw3Fo6o0d3WkVxiT2Y06NeQ6COuL8fCmPJ1y5vws2qFciOXDs3H6xfgJszGOHD8ezdiQrprpiG0Gpe/GfNbmWJizvPnWq5+Onn53EoqrnVpcjUBVFcXqalxTG8+t9zYhvnMI60Egs5lAQLp4CDqhu++fXkssrBE8kZjwnMuOtnvAbnfJ9R+ccokFDX3aYbBz/lalWCJBPYQcX+VyuZ0uF/L2lQLrX29spOxWBdXvkqgkEswrlSVG4GkyeSEU83BGu52BvB5xzZ4zOeNxbGyjaScf48CRut20B2tykg6wrMfejNBH30wl3bGEDTmp2ZxMTaOv/GB+DVRUuMmRWev58O3Ld78gUuUqOGobZ13VN7fNets+nwS9qvyq28YTlExlKJp0j0aGdn0BBoTIrMYnb505fxejVKeXpjNRx+z9h9jzYYuZQcGvpEP2NOtrrw8nQX8opAJhWk7p9Z1qlZL3ovMrEGLsyAkZWDC0qWMkcAxWZ4PovUGNrFHfTxXa1HI27mVXUDGhtGKdJlRIaHTmzcXNsgtOE8YXhbNlTnEesCIxAO+B+zTy7xxeGP1wMcz6pmy8GeX+7FxybmHs7KerqSh77KTD8WB5EiUdxroet5HI71ltTASLf/SdddUXPfX4L636GVy3vYWHrDzBZDk4z4s4EGZAQYDG5tQ0GJ0sXCfEhOS4+UJBUFgJtiqV+zyeUpHqVyhEnQ36/gaZRMnAQO0o3jsD7ahGQ7liUSk19FFWVmRAPa+WCeWnWLGkBVmBEWlVGWGd432wR3B8vDNdKAeBZwSJPTYT7O+FUMyI2IdclSOYNkcshz8+scf74mLYkhiL5FFHWUA+ZzcyjqaTXx6eyvYQOEeI2PIJSnkr3Nd2ntVOsrZNV57UsE+C5mNRCA6wvIH8CTkSZP9vv7uUBY5Lt5NJxwwEBegqLNL5FKmPhI26zgIlFYtVQafqjki+t0vbLRNIBH0SRaHsJ9FHO0hJ64PB3IpYLBVoCoBN092Go2mkjsW69r18sMPrdIFKAVY+LLxDmxixPgD/YOUhuUuWCNNy7B0zZ3dZjikYtsRY/TS/nzNGjjZf4eOg7m5/mOzlYbMxmgYd+9Gnx195dXWtZ3Li0AjuMbKs5V/H5rr/IBfF/f5ojcTIdThOgukAVDZkC//nd8dBci6CIiPrfRJTELU/gMI7D/bWbLNxzLpQoNerDS3t1iLqSpVSvQkJHVnx6So3UqoGnXZYIxJbWa6rUSYRNyLDpzpFQFOjETUq65X1e1tdEom4v1Am5BKL7N0NxS2PuQVQ+izr9TD+DkZff5DjsDO0qz1gIltyoCOh85EDzb2P2vfZ+WTkRNOVl/ZfacaSsdQ7Z8/2jF74/utP8MsMIJ/HnsttjQbO38USfKWGT6hxaidjyOfR0xjZNXStsuaEFEa7xycu3jxzc/LBjIMcoonBPNwGFFqgGs2oLW2OmK8gwBl8bz+bE/1wZ1BIbRbJmGvO6G1XdXdKRd3a4cFuyu99uVmnVSgRgYR9DQ1tbQaNRi1rbNBLAy5KIJTLKbsTa6+QkIJF8brjKITYVqVE4g/Ut+97QaSXBDgOfdAWFiw/HXMk+agDa91wsG59ZiF54PDZAy+1XtmTtOSjB06c7Dk9tOuTaxVxdd3uL6rwrGGqtaLSDvCsftkzZBsP8ETfbdej/wnUIJ/3fDr6Gyb9wNbaoO2meVt4NgESN+Mwx0CD9Iu8Pky7S7QanYCSUfsVMp0s2J6miiGWgd7GJR9uqBfrNW13dEcOGq8cUOY8nELVrx5u0wxr1aJGAUWVGQYzXwLR3i7su4At2pn2XL9c7NpPh5vE8s7OxviiiTnSIaMw080GQO77lS828+4w+dMebUrZ0Pk08yfHmvYcOXZgT/O+g7w7mvnw+DujlzEoP4LkmagZkLJU21oF2Lpasab6U22Lxqm2YeAJP/PctZGBCp5wnVik9n5Pz+17o6d/WwD1CKLM7UtiCxrsNBymIe4wFjRG5xzwHESUlmoaulob+kT+Uq5cDCElB57pYWG7Sq7W3DEc6TK9/Dzj8nFKsV7XrTFou1FB6fVlO1p4plJ/3979TKmDA54KhUCgl4s79jVFxHq1rO8Y8Dz4gUhuZcH92YOsQnyk+aCHjHsk3jyRSsVhoO43gGfXkaY9zS9CD5kPX371y9FzEIYOEDwPEd9VHXSAAD6eArQ6OaqOSH/1lUoOVYUnYBxAfUTOrgHIliZuXsauKkQfKC6zU3OYCQJfbnE45sLgwyBjMFJqrZe3BiXC4Ta1UKgTdnTslYpMHOKHpL8D85usQtbf2t8gFGo1ekWHUl5imZBO06bcLxELBJRU0mhQtLjNtl7PC+0NDUzL3g9OKVSdOq2hn9JLVYr6D5TvGfRWWLpAKFTur1cxzIqLVhiULfUKsaJrz9jxV482F9PG1Oorh5si3L6jR1oPzPW+fLD39Z7Ry+cwf0iQxLt/4lS14ismhc/VeO4kgyLfqr6i2j6fQ70JwyR4Xh8Z+Ormw4cY2yJnGbuiIbMOp/DhmHOkojGf70VTQaTmPNagtKHboG5sFPaDWZMIQLEzQalQcYo1KVQ6gVKA0n64TaA8pRQzkM/rZDJJq0Qi7++Xijs1KoXX03sQtVRfo0LRDpwEIuApVkmUcJ0tkmFdwVXyK+QUpehQ4PKQ36cQSdolKpB6vSfPjh3oxbqM5185PGaLuM1NR1qfP9F75Ujz4eOjb+N+x7vcDCAY7KoA+nTRiM9VeFZ87J8Aqqu6l6vqgoqlV6Nc4eef+52v6/BtnI7CgAS28YhnbMcZTpwdk9UkTtIll7Sl6b7m2tBy3JUl9rFX2a3KXlcBZRzzEBQhkJgC8cfxmQJuCuV3Vc6R25Pu6/P7vve99/vl2qv+JCIv8eB8jvdmv/kMMxff73yAzVsXnkHr6/uDi2/AYJSb6WwpQjcDjz1GPU6zlpDS9XT8gVeefCrxONS7YnV6PU5mUjpMklRvt2eQzYAZ+eITkfCklCWZwI4nVTvF8JxEGylWEIokMmqswzBGysxWk33WCvCCRX/xuIRlUpQiRuO3Pfnw4zzPk6xFB+KVbGKkKstyPz+9dfHihT3wUSav5YLB4Nrc3OydL6GkuxEGDnqK3qi176sfZaUBOP0EgIt/YP83ngPIDf5CjvvzXsv6cCQZYwwfncdE9/cYFfj8A4y4vPv+T+96e7e+fhPFi0h2u33q22LbfPixiBTgnJZtP5l9+DEY9a++/sRTdMt13aYiMKygO2TMIElS5DnlsbsI0ioqhEUSlKS0vR+KEXykHWPbqkqzqm53ejRgLUp9iWNpKYBS/3Eg3+SepyiAGk13OZEstmmWJgKSmcxkCma0m7wtNJW7ODU1oeVD46FcLdhYGx6dxRGaqzj75pfz19yHGvpIyB3DE+svlP/G0r/v3z7OPofx7S9f2B/z57G8gy3gzV177f3bs1+hifnTZzhR/l00FEbnnnkR3RkcCfCKI5iUHPjiO0emstmnE6/QMaMDazeRfvvBB15/Nq4bPbdTbKYs3rFJxRK6FEiGpJ94+8cfaVEhnJgtyTwt6LbrsmKaU4uKqluMauzu7rYRfS2aowWWjFK/faGYXVNiv334eamboChKphGaJE23mzJPFN5OxOOJwrM4XCiX0xrlmfGNyTcu3v3Wwlp9dBHr7Ombrl5ZR73secoDUXQUXf8Z9y+8lxOk0lEk/W/3I3ZQL3n3/9xP7H2+8PmlH97Fk/4rDj7BRo6fDvYuFrJ33+2N0z2HMKNbLPf8YxwnSbBBUjHbNvuVaq2UTSdKCRbvjWKTYUghxnjG3V1vFyKBdkBuWRwHwIhitJvmoEBd17IIwRZY1VOjumEYNAGyEjnSYmklIFGmpGQT7HePc8Vk0JSJphRQQFY8JycSiZG3sn1KotJ5LbS8tbE1Mzk3NnZh75G9yQ1UTKurSyvzS3jxxsB9jvcRHXxS/Sg7Hr0DmtVPrP91+994eveQbTw8MQCy8v77737+1dmlne8xv3rwzNePcs1sAQei3X13kWX0XV156jae4D8p0mrM1nVRCgcbSSpTKqUJFrFXbFqWpcZaKTThbr9wT4ZqOpahQn+SbEDuJqoSkivwFBDaMUw1GDFGUGFJIyw5jiNYlha5aCSitDMF9ruHimxlIhpIkfGIyeH38jqVyY8Ec9k+Kqt4PteoTw5Njg/dNDr2zIsv1s8988bn8zffcP+Xv66fwukX3sTA4W6kYwoHf07Ac4BqBgjHh9MP5pPqzb9Kd6B5xx233HA1jM/59dn1U/Pr2AT3DKZaL9796NPdzN4b94xUApzbu2QUszX89ziOtN3d/X2QOE8p6LXHBNJRi1xNU4q6mkKC7L768BNPvxKPRyKk1ZIrvNrpAFGyA1kgcESM5dgUI7huT+DFIklaDtnG8y5ypgyfirYCVLYvEy3eVDiBpgrBOCXJiNCHny5kRvKyWQqVJ8cK6akyNiaMDm1sXXzjtYPP6vWDsdGdnTN7i0sv34QtczjxcnBr3PGguxJrMCUeD9RjWgvLTw0n43mFh+ct1x7i+dKps7PzK2fXX/MOM7+AA/+ee7Jb2Hvk4tsVWXHdfYNI1+56RZKBZ29/d9e1WYJrEzasI8DGm8GcIgKwdiCekM0nb/853u9GiqzBF9p6bxcJkO3YumDxRIyWyUM8U8CTIAUG9hQr8IopkyQM1aaS7Su0Tii8yBJUKZcAnpwCPJOFakXqbk6dGR5Kx3Mz6+uLc+fWFrQGPrJio7xWHvpmeO3j0RXvCLGPbgWeg3B60XUkg3pwDuDpc/thKPsyyUdz8Bb+Oq4//8L7FmzjgZH88v3zi+dml5a2MeLy8bOZ7Nv3PPdkJT/y9cW3n5DgYwqCapa6kWWtTaudXYtm6EARAPV2myKputmpQhYXjgBhUyWb8W6XCoht0fr990v7u73e77//3rFiLsNgbImWCMa7cG38myzNkjyJ9xIUUopUFEWP0QwsANXRUyDzqmbylBlPlPKb1XzULFSX60M7o+O5fG1qfHx4djwXbByU35kazzUm1y6+dff7n5fLY+fm77/3r7MXB20PX9hfeRRHfx1NtX+TzoAGGNRXg3geHkmMdQ3wvPea6+9cPbs+ur60csr7xKdSJnHb148+7eEJvUQFdNVhiW6hG5kJtukWeASSiOIEr98hikWhE9nsRkjaYhglmik5BFQPiIhsspcuXdrfB54YcRCMnsDoUFOUSIsiMqitpxiWRRB6Pr8s8UWdVppF5FQmFTMYwqHBYoWK3KSiVKSSr1YqkUhhZHltY/jcxPhmcCoUnDw3HmpMl995ZGJmfHpt742Lb772w4vln86d/eiWK4+rcHz5F8BzcP0TwD5qx+PXlwQnxKenfL0Pb77jmluuug5O3SrGvk4tnV8fffHCx7l80rzrqUi0Wt1889OPHzTlni1KhXQ/Eh2viaD6Ns9H4oVIW4j1eoQYIHU8tSScJdz5LRpBOcroOvhcKXZ2gSh0UYdO2b1LqtBqtZpxSclXaNqJuS0HPMTVMnGFACdZyKgpgyjGGKmYQlSaXfATckA0avEjpWQymU2WNrdy+fLYZL0xPlM1pzYmZobrWjC8Mby2sBnCjOg7ey8+8+7c6Zdu8YLlxEHDAaD+CcJ/ZBB+wg/dwfV//ud1sOlQu+OQEMx6YmjppvtXVk5vLy3ufPjOG6FaRopGstlMKT+C7Zam7BoqLZvRJ+7OFwKETosSnMw41WaFFDKBo9oM2RZpoQcbCZFm2GrMsG0WkrPX6+3uMyxiUdc7PdvuoLxMBNqoOJ0/yylCVAImhYglof1dlbRSNK0zSpMImNFoNF4BNdFgQFnbLFVHcrmgNh7Mz5TX1urlqVo67I2MBCv52xoTMxPB3PQeGp8YdZi/6cbr/i7jTy7CB5cv/f9qlpy8TujQXebZSojOe+/FfqNrcc7mDS+tLN15fmXu+wt7bzS0iixRlSrKzFKmWqNko9MzmN+kjz+NmpQYo3/r9pscFYCT2eQ73nJEjgsQ+z3DjvGKe7j4wP7+vmu7PdkUWj37Tz2/67a4LAgejCRYSBx8ICIJBGooiFfL0BHlDqOiKg1QUaTgfq6aKMLF46Pj2ogWqtcnxoOb+cbE9MLccCOYL2SDwWgkkS3kqw2UStrU2traD9/PrVx932H7G+vo5oN/689BiHw8Twb0P93Rv/AEC2G37ks4XG/7/Mu3vnDrS9sr8/OLn+Gp0ULTWqa6Gf4a9UgFwi+TJCyXzCS6X9+T6HoCvClRDoGakCuyjp3i1V2hLUsKuR8jSZooqjG314PAdICnkVJVoi2Suuoxmko6uiOyguUQTZlrC7DxojJDcOyfdjOKpHaTZTnPIIlna5vxbHgkj6KTM/taUAsGp6Y0LRcKhRo7s6Nn8plsMhkMZhPddAmK9MzYmfLC9AHGb3bO3grX7u+j1f3i6PJjIB3lpONMM/iNV54cnH5WAJ6A8+ZbV8+fXpqdx1FSODxuZW7ugxcxvxbWlqeDKJO1SDyZD4bGayNS01AalcTIJsSMovBNRVEdioqAk9WY1WUvqW2K4sh9IQAaop2U29u1VT0GLrIth7UsmWMEkI8Dv1n3TBOQeiBBNZmYoZuyRXC4MOwWSYi8QpMmFZCldCkUyhZGauFqnpL62VowFK5pWi0cmlpo5JZWR+vpRDwLPEvJaLoyvjC8sz43XG6M7bz77rn1m278E08ktKOCEZn0BJQGrdB/Z88r/0oIJ9WjeAGe12E+HmNf57dXV1fPb59fXVqaGx364bOD9/c+nchlMvnQzIUP0xElPTGNsCBYQ+DjmXS6SRqqGC9lMl2JbFK03ukwNOXs91zDgAhi4F0CuRRqcyOGJSgEU+RbMdftxATD5QLQR01JcFmaYVga1bnrEgTLtES5Tep6io8EeLoYzjRFMYyJ2VwtHoFWCki1cA5EPj09g7S5sDGe21oOh6uZdC0YriXjME+1mfGGtnVqffbU9g8/rOAzf7wWkr8d/Wh84uV4fPoI+nAi/Z4YoMf53bsAnndgjA7HL5xf8vBcOo1jLXZ2PDwP9j69MJUpVUMTH36Y7jbjjUYjXGMtu0VHM+kE4fT0Yj9frSZMtig7ugE8JavXQ74Ew7DIqAhEQTV6HRt4phQiRYoxA/I/Zhm7XMBhSY4Seg7LMA5Neng6jpOKiRIPzwm/MZlHpVXhmqJW31rWarBh0lkqGg4Cz6npiYWxMxPLG9OhmYkanM9CMBSsFRLNZjOMR2lk5uxZPGbDw9v3X4+W3F+4DAxvYvnE4+M5AOvfpsbA7WMP/BF3xZeql91wK2qJU/Mr29sr62e/XDk1+8E33/+688P79Q8//OaH+tZUI9RopKOg8kSGa/bclNqSsqUKKaBQohKNaYkH5bMOI8RaNNNyyJSKTEfFTSqly027A1rXVbfn6c/djrfIqH5JF1CAi2SsZ+siD/+IRDX/+yWELgu9VCy2eUWWMoVmIG0q03OhcNxE/aRtaeFCBVlzs7pWnx0dri+XNzY2EKghrTw5HgqHw/Fiv6Bp3c368Nz5m9bX78Txv38dVY0JGN8L8k+K/QfqgQg8kl//k41OaCZhHeKJTfkrS/Ozp3Cq0ezi/Pz6zvefYRvaZ/Xy3t7YZHkhpAVHql2KFaPpQpNwOzrkZLTfb7NuKhDPahoaRQ4vigShq7BDGDBKhOJlKsBZltLGsJiB1mfMcLF6iFTbpuWYhye0u9UC98BYUjwf1djvYdTBsjBigm4zZUaTiaYSl5raRi2fiILJgjNovFWBZ3ikfGZ0aLK+Vq+fOVPfWFtemByemQ4Gw0kpWdGCBW3s3OLS6cX11ZdvuOYO/0OrjwbliULdSw1H0+sJeA6UCMeAv2x1aW7x7Ojw/MpXc+/+gHFEnNrhHY+wPKNpW8tTOWQmpsW1Vb6STDMt3e65tgDQ4PpStZGRRNyhOSqZBcdasDJjwM8gCBFOkyqZhGMQaCRVNovwQdspG+IS+ZIxgBxPQPWjy0QYMSsFzKFHGZ6wbBdd0Y4YyWcKUgD2XFHgAW0hTirRWk4LVsOIRi1YnwSaG6jfzw2VJ1F6nF0cOwMrVMNXMDhdXz91enZ0cX3p9P23gpAOg+5wC4u3EfGoOhqIRD+CTzRHBnOlbwkM4Pny6vzi6Ozi+vwcHvK1g2Ekzr0L6COAUTUwaYbidVtI2WQiHmFUR/BqalZsEgQp5dMRXkQRxMH7gWsB3R6zPS+TRm4kUgRMI9jIIkGZ8EcYR0i1dCrAWoztQkvRgB49ENrWgadtuNBVDsSn9xuDRkinswHoB5kTFTmRTvRN0wyOh2vV8MTE9PTUVnnyzPLG5NjwJNbw0NDY2MKEpkF4hjdB/NNrY6Nzs8ND2/e/cD0EE9Ygx/jr+Fsf42PLj0P/7UkS9rJbX15ZHJ4/vT47+v1nG+Mbw5MHjzzyzqcQRek02CgTL6qA0HUF5DlGhYA09mNONK4KpJyR2qDsToqkwPYdmmxbugF+R6BKFU7QdbKNblFRtJhdPOoti+70knHPIzVkibZ0laEJmtVboCG9tbvvuvCdipzacmg875GEwqFJJKEdkClF+qWEmZsZyefDC1vlcnliYuzMDKrNyXJ5aGxrZnpmAXGpIXSrlRFwfXW8Pre+sbH90bW33IJC+nDP+V+NzmP6aODi8OVk6T7w7rhU8vF86abV0yun7x99F93hC2+s1ddAQVq40jeTBawExbd390EmsNBB2tGAZwHrMpUS6GjIZKEvYxZBFa2Oa9GKgqYbdGUM9TtUp80rlFIsFm0DzzZMDwHWXApGs8Cg7OEQlUieUFVCC1HN4G9Ld3WhYxQJxD76dRQSZ78fQX0E9RuRS7VSZToE3BbW1jaGxpYXFsobU1NbWzO1eDo7jbgFcSbj1ZFEJjwxdur0uXMrd6LgA56H6+ge14Eow9VRlP1L/x2+BojcV0f/XsATldFNL788dHDwGir25fLCxFSoVulTcgHeQzoSCAQuwWYDXQhOk89GVRVFOSfD+IgvR4VLv4OG2hQhIIDpPxg7k+001isKp1lJVaWqoAoK0fetANP3CBQUBAEJ9V0ky2psL69oEEdjD604y3kCrwwy8iTjDDLxw+X71RlL6epeY4HQvfau859mn30OztCR3WHybeqhYT6ft5wRO9QmjHF74CeOiTA/EIoGwxWLaOGhuykV9Ljoxw0cBoRHmHmlTwOjJTXdTVmJThrpXCIVo1yYEuhjuUS5vlEs09asE48+rDQ2DiktRyu5gmHbICyNl30xJZt1xhY2uh8vjzd3r8UHJnChsP71j3g+Je3nssyHL+eecz0417k28kNm/xzP67Otq4+7/ZPFRY5NY1xMxfCH9li6Fshms+mU09Zx7O0N976E4zTRKbHDRkTSBzBpLrcgNL9Sq/PdL/6wGk9KLTyAP46whktTbbhVEzzdAzdW14ZR/jo0zaQN31jodLBDnTfmw4NP7aTmxqnoBj1QO/WRoxXXM6mI0263ctnFJQ6+EkmUDycLgSUOer9X3a53T0oxYtXEV4tYp90P48pSLZtujJGFnZ5fvby6+t0LzPMP7GQDzB/HWp7JEp4jOAcsWsN72u/fNpGe4Xl5Pds52J2dfoDwCtQWl9PRKYosVypbCyxVKsWMgihxMMwPP3nj7rbNKOhhW1SN7w3NppT/9FXgiX/dg4oLwy+prWR7z6+7AckLeefoSHFzOGDw0OQYa5RG4Ml/hfEtw4CWV/Xh0J+HcaKs91JbqYbUUSy5wze1eHQasQyXnYoi4FSgmVLFjfFC4OKwX6+fdzdOq3XwdMYmvkDQqvdLk0qNnIk0/6TU712/ZIfYK877H168ecDzWX/th1j+HE/+uXsOniKPfZYC3L2L5z/i+X63t7bTPWl40P5lE1nCeiwaUlxFTzG3uFAuJhSXJCP84iq4vQ6HQ6UFJwv7NAFh78u3Tx2TolLTBjDFn9yyUxn4m+6waiSKFJBhkitg9JOq67od0s0UNafhLOaiimG31Djug1PvUOOfBggbvKRNtDXEhdjGGbQ6diWRLkNu5bJL02igkikjEKldjMcrpX7pg6cWyoyydJgWxltrk3pVJEqn/XPKzf3Pl5tbv3v38sUbth798o4yp+P4OKn6gwN8fmx/REng+9gena9F71Kxp3iSf876VMMj31IZNqmYC4UiTltiKZFZquQSGcXm6BB9xNX2qjI0csEmsndVC3s5wN/2HNqe3+9m0INqva0bxjCvub1NaRrjJzTCetI9GLahkpB9oqzlydDhigYV8ktD19ttb1ySyaz2Bu243OaNRqvQQcfI2y3crxWJpYAT55mNZRYuUsWL8bZnkfBT6m+PL8pWMJDhMAUa61386vFur3ra5a+zu/WXq90DWJ5XLGG8XWM6h+fPnuD579mmx/r9Ec/vtdG8fXI9wXN/9/j8tLQyWmlkKxfZclCRWoq9APMYcvEQcxqWJavJtpAWYz8tme4G9aDlkskaRdVjqCJ9zOsa/U4/QQfKTcQsXTXs0MBSxz/8uqdrpKAE4kyqQ80pppZgk3S3JBO2krLptRmce9Vy75Ed0IWmLx92i4yeUsyycgmuHCSTbyGVE/Gofrg9KnU9lWikKbs6ujOUSTdI9D39dRLS860ZQiY+7Ic1oQcvX4kdUgSkO8rubisD8ecBz3u4bmF5BGkuiD9864frv/tPaLpel5R4hGilkk6nI1ZIwU1GUk7yv5Bi2fCfJmsUcJOwGBLoDRHVSAVDJQ369GXoNVS+5U7CSLi/7HG5WmZT9g7yYZtykaHpBuZDrQmNlMplYopEItXUTZJPh47Vu5NJvaB5TZNoFCbmh7nIR3XJ27ZZqaBylIhEyunYUTQaLWYXKpFUeVIaLTcai4uLlXIsqEKmaIadNlLDs5Qj5J9QnFT7a7OD69dv+XyPV29+j8QNA73F5aHx8TSi3LqDH1zof8fzx3fy8AOeO9XuarW3PSK3q8QyCcWezWBVsazNoShRp+ygOidm5Ak6DhsCJP3Tt2+S4dY6ujcc/votnLSpcEi6+mE5JX/5+m1vLzeNS642Ed81HddSsp/kAOkXnjdXzkQdtDLcqhrXCxJI6Fyq1NK8e1w0QDFSAhmXw+luS5anOE2Uo0dL5WkI0hoaNO2aFjfqgSXYj3Qwk0tFJRWeWi40JuPlhYQzlx0d/m739OSQT5u5+sv1/tVb4Pw9CltSIq7HzQm3Pc85N3pvpU/x/O5In4zFzr3xOZ67Z+fVfm/zryVueSB9gXAAqtxsu4KtQjZhuTqSWuhgnfC8WsEhd1xSeO9rO8n0gabFm5x46hrB1sVTUwdpFNQxFKZJZMGnSmnyzKHUIRzFgS00LWeglegyaflw0hGxc6csG4YqyUkcxNdhUmsmk5B8Ju0To6V2pgqOxamkExyTVOIolsgEo0fZQCwaS+WmViyjWE2VHy90yku5YiWlHNGp4+D7GvU+WxiZ9OBTz2k3ir8vIwKE+f+wnIlXH/D83ll/UobOFwDi+o/5/M7sptpdP/7H3+FuFiqe5UzI5qDEke0FabFitFqqJnVIDv1hnVrHHbc7NDQNfjIoN/yGf0hKOSAPSqI8TEr2PMQcveAwDrDdHnhJIJMDZygfNk1NMiwnBmZ02sOkm7tAbeB0uaaKYONtMtHtW16WOs140xxqpFKKggNmpEky7BmhZUhXpoCZiUaOcEROmoC2aQrPEu8Y3BZBjnLvplHkeNHi0sL2CTngFVv/XzE7c3uWGRH433h+lyn+v3jy+BTP483z3gwC7HTcqJS5zRiFywUbBLEOZw5mHW+eItNdEGHYHXdF0i7Yzj0ATpLgeJvtr3v4Ai3ecnCAB1/39sJ5QjiIIwBNanH/ntscimpJp1WXzXCDZL0Zx3pJBciMDMp7Kk6vqTjJyEzmRAxoEL6MxgDNcgQTdpyMze5M5Y6CHQcR0rIKBafFDzoj0xB/Pvu0tlCrNXx0lCg+XFKIxtJ2qbfWWz/e5zM8GZW7u+aNcA6VZ+ed3+bgfD7p8ZSn/8X8T4Ln5ib5J3nGyWS5kk0X09EIR8wGdUbApdNDayxPlPCbrYJM+NBskayTNqQfiEjY8YXmlz1YJa1pGNSJ4DlA+zEcDHGb1Khtc7jHGILwi7LNMNIZzjGOU+DpNR120C3A4kOLuhWnQ0Jhxv/apdi4dUepCLlF5ygLMeKkkRRNTSOyDN/kshU6dnur5aBTHeR2W0cXdOlWlj2NyVJasaRgw+ebbMPlnfd2375ieuZ7SHlMGbme4ck/8yn6PPPxwxe84zt6PDzF83wNTzO7KU22Vzy+URq9qm8hfeQysc9pxNGiQhnuCVkHcEjyIC+5jhS0nRGnZH4aDFWpaYoOmqHqpAO6X1xuN4mo6Hx8+7bnbws888R/OZh2SKJ1p3YMNT7EpZIsaHHLIDUSiJsY+zCpR6NUoULIlEgHoymlkx3bSN8WMnbQVoWKxDC9TicSUwGsohQcVigVDG2XRp7gYrd+spS2xzwV9AKNMVxz7+Pf/kRGj5h+PuV8XPDxeIxxrfOWx5fPt4rNATsf2cX143lfn11+fnvWq9P4Wh5ParkiJHc25dLC7qQTB2cDTyzNq/NFq5X36kZUsXTNaZdMOEtZMpNhEiCp2bTQK4OmSJ1MWGfMG0XI0OvHuLHXtqpECxKWb7DbIm56oZsANGkaEp42yaAXfAht47jTIuKTi5nivActR3HRbrNH0DMQtDgfasEWd1sWwm9M1EHZakWOECyf1CeNog9Ffa0cyTVqiXRxtEEqurb/z6vfvXrxBht9dHePYf4+tPMLefZ/wPMptk/7eDw8RfQnWwesHP94fFOldw1Fe+oLVC48ReTEjpZWiOFNjSGpYQchYRRtkp5XI9MjSZUkiJEmj8QpL6JFSDhDNsnE/Via7BbOQhKJPK/kBd+Uh0iWCpxVmu56291ydMxhW/P7sc5ks2WXOkdTlKKmWwQzTeL/Lsu6yuEIwvwLfj5Ig852G50QirgMO/FIa6udYhE17+Fpr7d6Wl/xNMihi556gwKV19bO9vmoj8u3L169+o3AEyhB79d8/bg09dYD/NhWukP7RzznyeMn8ejO9fLkEc+rv/DBXFdbx2vnVca4qqtjelsLORIWzMERi0ZcBlxI3m7ILrRdnDljqlAvyQVknkCjw8+b5I0qUliYI1Ui83c3NZSyGk6S89525/Mkl15Z583ktcCkIlYibWBmoS1KKRH6VWFwkrDsfFuMKKk4bnRlRkSBCqEfZw8iHjPsNqgSXetAP+F9SGJlK1Tz+Er12ZlogUzQ1y02JvWNxvKoTjtkfbb1cX/rI5/rgYU+1I3wy3Ny48fY8oDn87KSxyczCE8L1B/sk/7m9dvfvP7L1s5s82Ztt9fFjXoCGcmK6KZkgxqx0+/44o/Y3LIBXrJLSblkLkcILr1tml6zA5lMxSTa7KphSbJwjVIcEUge8wNZcd7hl1RETmZcZEASyBiscqB9xxXnv+pooo/HXSTxGFqcMEg5Baj5VsqmFhyK1bKCkia1bqWhWpJvyabakqD3ky3P8kapfnDdX8VCCUqL9OjqdXHO6IcgE3y/tsnxE0ceIB+Qeqwt56C5x3M+rj8f4Hpk+f9T45P+5vX1wdvfvuRkIBDZnZ33lxfGy5z3UEwlNwqUwRNWLVzQ26YWRqopF4xmW9Mc6IlU/6ewt6mBqipFQnkuHGC7jcU6M0iLw8DZikriVYDUC2TvcRnhN6fYJeuQU2E/BglMLjt3SKi9CfW3UjETH+oNg5ZsK8iOlqNFBqeEUimM0q5IoK01uSskAyEr6vvQ7a+ezc7Pe73exJfLLW7c9OsfNlb75+fnx+/RtR1Dlx9ssTbuN99d5wPPMVclPc055zXiz8P8Y1h/juf79wdvfy3w5AMlto6rfV9gMvZA3KTkpj24WAHPWyepoY8haUxiOEnSc4PTLg/hklUUDrrDNY2KUDQIY42Qe6Gs4vCGCfz2dIHX43HUCg6XzabDFovdS2SwFOl5f9ud1BwuxYI2sez41iTFPQlXEjz9fpr6OsG+1ZI6DCIHU8U0x9zJwW9qxPcCAznRVCjjK910+5vHPTHbMfHFYoHJWrc+Ga92e73zsyuB59UV3uyKj3kg7Ag0BZ73SdQzPB+f/48p4zs8n/TzuMDzN2/4QIlf8Xmhr19z6re2tn31D56lI8vQSBDTlHgRMnXIC78QenA+vQNxkV1CIfMScNFNtymRvJiWEZkmwbc49i3mEphbUxJch1MJ2R2xrKsVl0IF7FUTUzJ5fpjiUnhLw+b24nEh9QBQbcKQUJfjIdy2I5dkiledqeXtSs7mFLQpfxo7kR2RuaUgVB75tkvkm91+/XBjErjIVBqjldHotL+2ubneow1/jepl53gfaoTxBOL7bevjP1vjEwCffv/xy7m8f/4b6D8hsdHXXe8jYrrc2n9/Mq4fLl6kLAcB2Ygl0kcRWHaBJ8PWnPlb7mJAnc4FntDDIjWllhR4+gWepmrPTiYbtaWOKgpysn5CitOIlW0dTVZk3iMkdtwHivgkeIqSwR3GMjnnaoc8U+Ap41lUNKIIdWiEOsiCtospm0XZ7jIKHcsC0JaD55WN5YXJ4WSjK7QXk8lCLZZGwTYa1Vd7a8fr52vH76+v3+/uzPavKT0BlCmrOTzvaSce57LLeZt87k7ny86Hl+af/gQt7R9f/O7l/u6Ll++3Zju7x5v1D76FpZCt1WqbjiizMJx1KCERITrok2Vz8CXsFXDCJvnzolXnV6loQBOOmcL9k9/Iljavuv1GRUve6pOdkRRtUokGO0C6BV+HR0URAg+d1KiqNKR3Yp6LtLPV0sl8aRwPB5BaOq+QNUiJ8kUuAzFDO18WU4sCT1p9DH/FRMeztL5GECptj5ZzkCJLADpG5HS6eba1u7u++aurzZ33B9cvX/1RyFtZNfBdoCSYe9AVoYqvBPH0CNqjAvS/qBPn/eqjfSL//MML9HVbLy9nm2uzs/Xeh5VArRZFUIBmY1qLOonApqprTZJOpmNkNU+T+AvHnV/+4TeWCfg51hoUR1KnOSTwLG+sv+/drAR0E0lNOGwwC0u1qplkm16BJxkoeHIHaB/jDlWKTiKU6tK9soSErx2XHKx3aGOYkiRq2li6IuYcDMNlIDmFD+FfhYRXmmaQhWwcVqulk9M6nHiKCLUU8IxW0NevVuGVz9Y3f3cNsPvvP79+AT3CZPpcUoQbBTRgfbDU5zb5H5Sz8y/Pn3j0tL9/9+rNW4LR1Q5/ht7maWkxEC360sFg0Eu5gqbVdHckHJ5bQ6mgNTuROGwHUA4+eZv04TAy6m9sDRrOFPa35zcyi92d66vVkaNJdx45vZsfhJKjYvo2MMNEGgbhKfX5Bmdel6xQOC8zo6i0v0DLO754yYSomCRXR1ViNKFMZzSHIw+FFINxbpfUCTKakApFXPYEGlqa75PJaKPaRT3fUluhi0p5tMEepv7KSfWGU/95H13W2c7Wx79QCL79PcAB4XcD44kA9mlYeq67f7Zs9Uc8f3Fn3ug/X7168fovB+8vt1b7fSFYyxZTxQUhW7VRkjQlhyx3JPg0HTLNaN3Sv4C2R+xpm+CJld2WQKjlHREHPVC/26pso3lZr24YEsNyfnwqdQ8HX7jeMDaMm5S1MNGLnrwf65REUtQhqeVnTeYRiPusYtVlSCSqVEgYR6iYyIQiEadDqOwNWzHhDKYiiuEqVmhyY4zbyw0Cff2QifFguoJMtH++c/OhdNIDySu6t+uznf33BPrPL2GXn/NHD2XSD/TT92r932H4n0a5ie8MIby+fL//9qB33h0vLGUhbou1BilcYippfnfc5iIL1xG76vGgUhBTQro+IA6JycFbA6VP8ZW2sVcJOFXCdDPiITzU62sntlaHJUEEKhR2QhkiYjsOQ5WOFJIeeKv8p6EuO9qDaApaSRZjDPE7lThpU1M1KM+DLoOcX6kkwE+xCriOqN3pqUCDKJbDVlliQmFCj7ixEFzeXK0b8jR6VGks1Ord98SBlfWdnV0mjs/O4UOv+QT+S7ryYIZR3uE3H7h59Y5/euiBPv76TxDe2Ss/NfepND+5fPubF6/eXm7t7G7WSxuepUx0qeapJVZga07GUSf2qYSE3FjQnbLT3ik4ICiEoiEsa+29T0O/qcXbYEC+qTmkjo3JVTlSXpycrjYCrgL8cN5PZjUQ1iiU3Co1elxFNhtH/+kXGaibmjRd1MiKiD6WE7bKTa+T2yLbLaa77BbxULaUiMsFoIbM3bWljlA4IXZQAkuJWDCRXqpNVhZLHImG7yLQGE1O6iuT3dnaTZdG0tXZ/u/219bWNze3djZ3IZlB9JHW+E6NzMtpHkk5kHr4aL//sgyHd/GOBzz5SPoX795e7p7Neocbo4XKUYhplEBso3dSOj/JhWQHk5jU0mZeeDTmfB2oO4/IY4btjka/mFQfm4Jw4xeVUYu/d0uzBQNkgLWiXULOncfZDsQV9rYMu0xPXmtKqjdeyH/C55o8d2vZMtV8wSmbwZDfbWjDJHG9SQcepZkT8Rh7L+1OQ0hvDd1hFBz4T/B0OSOBpaMQjdhEeXt7Uj/fnJ0eehobG9v9amO0s7Oz2RPV0Wz/VwfH65RPu7PeGdPxr14AwAN0t58my7Nnc27/N57iXY/OFTyvL//w4tXf9ncI7P0S3uikD7NdL4/qi576RjpqUAeKI+6GKSIuU84wEMT6FBVCmNqQf72YWiHsT8K/4e4UBQ8WckjkONNMJUgvnTE3gSjvDTuN265z3tvpyG1YlKZOPkC6hAswk9B2BgoH4WypW73ulis0PXKhGNPjxDmdNhb/fXFFIlaEeY5KLVtOpzMhV6ZoKZMVdODVHm6murPWpfq86dZXuru98z7KVsZ/NtfW15AQAur+55cPtPF8yAGX749PtGH3ZOmTpHM+Wj18dKmwz7+QR1xvYZ7M6dIr6K7PZrv92riEkHqlGCO+681bPN0mZ9d9i6ddFOACT1EfIUUs2OiJACt40oicAqNuRlPBo6UpS0CEzhY8RUFkGQgXhfSh0JHaBDLK9DYsldwxKeRJD1pOrc07vPgWxDoGw0cGClwZboqGc6ejSs5IEE46yJYG8ETKksslprQ1LWVjMmJIrtft9nsfjynd19a6p+C5fr7a3zx7/3FXQLm2zjdmfMYH3fg7SAUUoPUotHvwqPPs0ZNZ7/lmyXe3KR7u8dzav7z808ezav98fX+9dHP2+dXlNbe4NFntBxjvOyoHpKbRoWWkdvTmII+HtFukM8kWORT8EkpOWOBYRybQe+GKBXVRiVkqiwHTCQhhWSU90IlbdJq8zG/JLZsr2SZ2y+bwkzsplDpx+5RpbyllyRLiRrgOHRbP6XRzUWsGaWvGgnRDOCgoQxH+ZUieUNwWQbOSLV8seDzFLKxSlWyT/H1tNpv1ztc3KZ2Pe7OdzXUUI+vrpyfAfbpd7/f7M5YNwN8xEvj7B6QEo/yQkc4Xljw8muX3Q36/IXnOwHnljvYHz4/vL/92sHPcpUD7uLa6fvb5dyju1lBb9cEzl5kWl4yC3cWIukRUwkMWoIP0OP13Gfo3TsOWIOMkYhHo8ybyWfYBeHLOQtxlT7EO1EaIcqiawFMQniYUR4s133DFKl1R06QTR9NjaqLPDdplNHhtAhPPmnYXbXjwVDn0jNCHXCTyuO5INBgSI5xH9DTKuVwZhdCCZ3EpcHp6ikGsnZ2tYYnMwPdEZJ9Rnmyu96u8sHpaqlf7pVWy1J2PV2+RirF5l9T+GZ7zseq7DHyeCH2Y8/5u4N+3OQr/eQ39sn5zWt/ZYaj47OxP715dbq71yIdXAxWEBKliDKlyIjU1hADJoUnMtGjI5cBR1xwt1UjnYOckiUmOvaFbT7qNo+4iK5XQlRAwpnT3KO1JPPPtOH4DXlRsWQM0TThFHmnWO6Pkt3oLmkCC00uSiXWEI/XDNKmsZUCJFyofhYppy0mRUV5KJPCaaU85J4CdppntmmyvrvY/+E5WGQWoEo/O16rVHkP8+2fHx8e38pfqOflLrytYqP392dbr139+Q2ZPYfRgcA/n/e56TiDPf5L89/befEJwH4+OZ1tnxME13ObmbGeH8/76b2cz7nL9JFBhVsMQy+HtSmQaS0WnWKOD0lkXPk1HEt8yBOcchPF1wNPl6SjRZVbGsHy0LhUkhkwpKvZbPL2QdjYb+hAxdCSAJBSZtxUoWwhk1M+3dwBgk0Ov2USI41AxeE2zW9Bc2RqF5FEoeJSiWxSg2EhfoA5C01SOZtCw0fiajBcvNk5KpdVDRpSwxfPe+gyz4Kp2oZbXjs/wAt3ebA3D3XkPl/YCIePjQoxH67uHCKDvrjmB/A/J6vybH/imOzy71dladfbx4HpzrbqOgb59cflPCK5e9XA7kA3Z9fweSwNQb0UDo3TCawoOMkLTghBB5mjYON6KFULujjQrCcVBXWMg1XChr4mmljzj1ZuITWSgn5IQwUdBNq9q7aFfxkUK/pNkn+anjENmDYuTJFPgnE+qbcr3lPXFT7GJiFyZNDxKy1I4KGkS+7FQ13h8uM3iYoC7GUvxJJAt5pY3GO5chA/x+aq9m/XjG7xlt0srhGrp42yzim5jV4x+7F+DJ3Jb5OD3+y7miObbZ2/e3GM150ofZ78fGf05qdNP7+pN8Dw8OT+/2Tn4uNWrQiFUq5ySrbNNmkkbK7Wy4pKTRAyRHE4XVpaXibnBxFEIvhPEkpzaJllNEL0oZA/tSv+nr3kvZzKihKKhSDGdqI1WVqaRZHs4+JREFK/c7bPSZVL0ZBNZ821iOiwo6G5lGsARog0zSWJZC3y+xPp62BTafsFU2iUpoUxqmkK6GGAotubbYJwjMFqm35FNLV3UKpkEeC7hU8U7Fle7673uaYlzDnHPX2Z98/h4NtuBwqvyuPVSXEiXwWi+qXlPMz06yPvHxwL90ZgfGnH3v81lXj+ZHHarvd3rrd3z7ocTbiiRkXoXYCfjiyJ4mrR2UWlK04XJ9jZT6rEsJI6dM24kiRxJWpDQ5M4C/Tj2BX36FnYnYk6kHYloNFuMLTE/fRSETGEWgXIHX2pQpBfoGNNsCg++ICeBhXZEWkLJYzNCqWiECt6EIy0IeYNqaOG9gaYbSsqQI8FMimBPUEcPdtE4ZCp2YWW8fNhfymQrS8hD0ddlc9FYIhWteQjq5/2T7T6MCKnnDSFpdsayq2OgPdtZ2+UjSVgQ/YAnvx7xnN/QwtKfe1SfuNN7fv7f4jkq7e7uXnEASqXt5crS0vJkl/Guw1NGKI5EV1bi5EKdd4LBqW+8XCOVVgzRGnfnGUQybKHMoiBLoY2TgmKH+CD97zg7ghkuEEcY/WSYG7mXBJoQHMJBOgyYDZhOMTHLUAeMiIsZ+oKNal2WlWBWgRBwucIme7EEaS9KXMaQLKtczGUylVqlUgt4uBZG49HKh5Gnll30McC9PM6mfYuRhC/jCKaYn/lQPVnp3tysX73f6q2eY6Tdzcuz6tkuXnXn5e+gKN+8efcw0c1vc7XPD6JZEeWf8CcsARMwiuvX3JM5USPnfXTI7pU/cbtKHyaLTMh4llGIrW6crG5vBMl39A7sO5IDCTqCBrdHCaJYVmhgQHG4VQbUc8uNhSM7pJrAM6mhaIojDGPvIsupaMyFlIJ0hycO8k5soxVacEOtji76Hu2hl+jkwt9KFLIhXVemlQgb7Wwur+lq+klukToC9VHCbi+mwTN7i+eiUPuPxr7lbfC8ENPwy6NxJbHcCKUbCUcoxmD3ZLW00j+v3lzv7/RWu8DZXRN4blF6nr3kev3ixbsXbIMnb2KF4PzM7JyM+3E4eS7jBE8BJndB4PnbeTyxz+2T9V1Yl5dv+yeBomLr5C6Y12YxB7O6CudTUdCnM6QRJgLH0LIvXJSLaZbLSWjwTFUJlWuH9fNGMZnHf7oZ+hAdeXQceWRgItuU8bAGkrkB+VLL5sBUb+M75DK0CG7Uz0VEorvB1iGEITIJBDJvOHqNPEJMJdMY4HvO0NQlbmMKBYMYMx55CEyBQKa4OD5cYZCcuTkP4xOHH8qVQDmTLtNE8mU9Kyf1w9JNlfhegi7bOcOPkbcw7sXA6sHb1++Y+Prz9VtUjUAyt3RgTrX8o7EKCB/O+61Vc5EKfN/dSv+9tDr7yGeRX171S7Uc3cdclqpsVUy7L4BmhOjiMuLkMCTbwWk0VU6T9CGGE2pavYDKtbxS6o0qqqkihvdTLtG5BIHwAOLoTnXPiCsOkfklh9HiuNPq1OKySrpEl16In+gcUfx3mGHUbQqKPrFyyURJ5kL0kKRAMHgJPAmCEXaZZMvgORoxWLpUWcSFstZ7suJZoL+xDMylD4wcVtLZiq+BLqOxLfDs9sHz5HC1v7uDJ+31+qgzd8/O/vb29Z9fYKKXf3737h3QPLjNeTzn2LpHDPntHluuBzwf7gWm2+1d/uX688uts9XDbLBpU1K50uoxsoZRpUz+HOOMQa4xzMYyNDQ2asuFxTotMHDD+UiqS1laOT70caxVLwkQ/DwdOZ1ttGSWJvxSgZUMXOGBSbZOHmvDYnXMFgOUHUnchCWROrk1xQ77n1qQqeKZUHAjIW1JYuxTz2SSCHAiolPAHsAy/CzRu07KVF89PKyu0vk7LNVq422ieW9WPxwxQwewOINJ6RTO8ZAJxfopadPp6sFZdx0l4dZHatL91+/eXV+xSeEVmB78E5ZZtD5AB7AeG+wANd/a5LUHCAXa3/H8+T3NJOIR+rqrA3Qp5JujVNCKohfyjbv0DsaBmkV9k0JGgNJ9mEcSawqTczjF8JDfj8WqGJsjdNjf6ZfKOYfU9g+wNi/vkYV+Po9YVA1LdrVpmijA9IIsFiQ6OO9NqiTYEWQhGtSdTiI7PcIYdc2KaqLzJ6OoB0Q5rkErBYNxbhraKZZfpGjMidPO6aEk6taZNBZD8PWVlQ0mOxmRHbGQZcG3Uqov+whVhyyzBc3Vbhe9SPXmbP20T97Chrbd3YPPf7s6OCBqCEAv/8RuHxHr77B6sNDnY4jAzXWP6m/Ez9xdj8kA9gnlujU7pm009ijTRHYpDTnPMHSJeW3LwmMFp2KISxSMaL0ot2VSclmm2xEmgWSuYEq3a+18cYGZbv9tR16VObl+NMyabtMGknK7S02HKuFBttG9EDPGQvwQb8kySZFJnPc1sF6Vsj4M9YQsWacUxWvwm+S01E5I3GZFSeTK2aynsdxgBeFGXbBzyJT64lo93IDB3p7UauC5crp+vL0yXtke+7prdXJQ8qWTw81ZD3B51lu/umJNyj49upevP7+kR/fu3Zs3ICpwYdWPOLyA+mTiA/Pl4WGSSeCJlvxu2EEsRr+3WvwnrdT9GQN8Y+adF0hCFhdTxeXRaIEkz2VNgxHLLqsYoverP0lUodvusuggC1YtDyTsP904Pdvc9NRQwjfjNJfYllZ2Jv0Dbxt36f1Cv0QP528nYjXsDZ+AEFcsBSN/N8BTZ7y244wqgN+R4a28SGJdIUezCXEStEOeRKdygaw3XQ5FYD+yS4Qi2q8VUQSJaePtk/45uSUz8N3zMc1OatHlUpcZ7tJJfbXfYICSWaBDFE3Hm5MTGPvjs17v6i+fX764YsH+lfiY1s9/+d0r0Uf+NZ+iIvLPe8hIpN48JJr3xPI9ZOI39vWzRPyXjxb6uGXtJ0yV7CNbmlDCkXQsepbHsRyjnJV0DTxREQr9EhHB/dVPlGZpRdKmBONQmEkv8MZV1fKVZsfHngunHXRsVlOTrIVIG/eadNkc4a9iVkaIv7kTIj0acsGagmcraoHnv9g6u+W01SsMZ6bTARWQZIQwJkJFioyESBDCgAkmpiUFAnawcRubxnUcknoyyUmaYx8m3Z3sK+hRj3oPvb0+S85OdzvV7GT7L4m9+L718673XauZg1qrLsz+7r7ZJ7Ha2a4oGW2t5x7sN9WaQm/FXfPXKms/tG340+GmN8Ocw2hobYazZet2hrzwiKm0kgaNrHK5syHVnxx8ed3l7D6xGswQWuEA9p6cHJdbZydfzk6x5xvGg/54/vWGY3rz9sP5q1+JSomFjkl9JE/iFp894kzKm9/s+cuf2/M987/4M/9tT7703qmQveeQpKGg95bT3qZdYCpsY6G4tSFlhwdXS8rD+xQ44J8ot7aqPuzFAelMlpO2P2jUXx9MqPccODAZER6AVDJJJZMxBsgRf/dYM6hL4ePR4N2iP4w85KHEmmxG56/Q0d6BftAo0gk6ms5THfq1/LZpctU1giC06D55G6Lthh+jMC2WqtVN7Hhtq7gZtovLw5cT6Qs/Ob6se04UMyC0t+qSPI9brw/4uSg897qXXPOj49bhCXyN04PDo6Oj31PCf/p4hlCdtaK/gnHE0KRHjzDQnYd8RnxCCUvMx3rv5WM/Z9Uxnw6bvnok87s51mJOPpI88GmBkruzujx8JyI6pKh0PMFzkPkMfSPfZI4qIxSkMwnTmMHRPniS1OLcToSFjkWXeRh7bgHXwAgQhJ59Uye8FPI/0Pbc1Yz9faakOh4zWoQv8tu/P3ysD4A9B6qQZvZz8BMNRTO55gUTWlghbLh5GnNCUzKb1FkDGkfkn34UhVaRysiubkKngT2H7Wg4n5xcXRyQrO+tigFf02ZCA/ZczrEnYwdmB6+PnkxwotTzV8iCCEUHh8fHT55//PHr+Ytr7AkT7hUPFBkMlDwY686e8ltiz/8VcSf+89UrIGmBUe/syZP4z89nHK8poCxqFKtb4hWGsL7wq2YN4GFU2mw2jp3JQkx6MMgz3YICx1SiUFjDhfTWfi6fymrDOFo7fgCmp0CEGQz6KIdpxJOtQ/xMy3yA/bzBcQYnFl7zrvDKOLOMwNoH/HQROMCEh0xjIG+seVX0MqpZhVbT16Tj0a9WvABAHtp0yapDpZHaqF3s1XGWgV/szefzbrdcoiIqWgjOb/lxuOuTBGG+mFNofqExdgAwcny4vHoCLkL2KQNOn5/iJn78IHNXiUsf3vyNxqdUkI9unn3DOjDQd9HWTyHnuwSZePQbmYf+PrFnMnyaLxT90d7hpczbAScKlxaKQ+xpO+bAi9qbIsVdWLEzD+ic03Vrbssh1exw2GgEFbWJpchqtJjOBlAGyb8i2hBUMEDyYk96dilZ09Hc1/kMvJ1smphDKUA+T6KJdXGSQWBmOIhNESjRG/IXj6lxzQKnXddk8IVZsDmxa4ckvU6yREZUZq5ep1Snao9i0Lleb8XEi6g4rvP2sove8EpGtpAn7bVWT444jRPOJ3T6g/nVa2h3DN89ugaZ/PyZmS0feG5u/nTz4es7BkyKR/zzO+I1pvmZPXm+2/O7QZmmwTz0n+zJ1X+fxCM6gZe9Thy4pJXVNkLqCvbU4XV16szqrTHWRlFEG0gfjbxSTpvi1ntt39YydsMo0NbUFzZZgG5C4LBtzi1W5eKLPXfUoMIfZkC3aju1XPZObmnQHdLRFebprkWdizifowpAyp3CmzZVK1byfE0ORR1usxY5dtoYt2lrNsLllJEBHXCuq2XALKbZFOjAcdb03zcbX7f2lqNuQlMUQH6ywrAY9fr09PmTKzjMpfLv90YtsqWjI6C7MyZ3fXwBgvfx6++vzz88+uPXP8LrePUKufz3JP0X3433E/0WC/Opbx+7MyPTH+7MyR+Uj93bYzRUaRMHNRRAhgfB2xY6NudrWPJrphIEQTWBNNgDpaoAwoVCLQLNQZtoOIGhQZF1RE/tqVoycK5q8xhqGo9LQqnbJocYgRvmLqThaAvrgRoo4SdTRiIuCkySKGjcyAyIT2hwNfpxOcaL5QZOVYOmpJiVntXAe8b4nlDQzVJr5rruhlIpcA2ww5rrMmw5BBFdXhyKxeSErrpfDhnewRYK7jkzr8bzL1e9W4AmkQnQs5P2Dj0ROagvXnx+cX7z6uYrbpTIhC8U1th3DDR56/uJTXzn3RuSY5Fp3dmVyJTYk9k7U4s4XlsoTZOjBWeAB4MOmWKW0Ss4NNBiMlA5f6UO0zBi8tTbi1bPq9UKCLujYcnCcZka4RkD6cL27KdpacLDzWuZ7VSzHUZGVridRv4PPyAGYXEPoCrC2HSa+v0hkLKp7eQcRcNjVH+NWJEmPUzyfFQBvjYMu1YisYRWZa83/Ga4jWUZ1VnA0cVXpzLKQvDtqtcJkR1ddPeOX3JGWsvLve6yXL+cnOy16lGL0rO7SqqACVUSQ5dP6IAQrI4h4WHYk1NmZJyzZ/SPN6+A7d8/+8V/nGVyUL+70p8qTt7Bnu9h6fIIQiUHlfs+7dGICWpOpVDAayFFoSiCVvNgu6+7FVOD+C1MLTgFA1rBw6FVLK/ozkAOHDGqy7HXXnE6uZ1ZG9xFEz2C0LkRZmaI5Jq+C6UTl6mpOFrA0Iqegq+YMnNbcBrMqAAoIuk9EDzc2a20+FZD9JymIg8SHRO2klGw1+3GwvNLJdodwboWVKuODVhiw53w14y6ctZKlSvSwNOQAYwmr58fP1mNR+OLcbk3umgh7OqhmqfqZOpd62oym3YPnr++ukIV8uSY2//iwzUV6MczPMWbD68Zuc4pJR99z3QxMZCEe07e96Lz2/m8y1G/r+VJvor3n95jqAXfpUNHlgdtKRwsLm6iSbcFhbBdum/CWU/pCDCHCFKu6HRftRgtI92bRlxfPekuO20NduEDsWdfRQaboTds6JyxDE6TojIHTrSu5VN0gFUlK4PnjWI1RY0FXEcOxcj6bdlT8dhQUB9UpaO6Jqj1sSX2dGLXcNxeLwgStpJBoiuK2YpS7TRyGle/shjCbcA11Lyw3t2j6TaflkfzEYAtF+myO2r3xkT4yXLFlDaYeIfP9xhu+/zs6Ah7frrhhH7++FIK0RdXx29ldR6tpafvniaGTC6zFPX/354/gSKJPdnMdY8smfnSUD4oebYwW6GKGfM7YBtIsvJ9zhsj6OCDUZqnm/EGttXhE06nPKWNragFJ2b0EeM5VVpCRPAsZSZnFMPqTXqdBZPcUkofHcHy9gNmfzNYcRsaI0EvLdATZziVKWi5tKY3TeQ2JE7GGpc9qGoP9ErFUVW+O9d33SgMfduujFbjHsCdCS66/SByeak1pWMxvEXrB1HDxzPM0c6MRq2lyKXrNDtnnfL8olUud+dWmVZyazmajrvgy5dErO4Bo9GOj5kaejnrlU9OuPgff2RwPdko1/7OUGJWHt79T5uD52dA0zer89tf7nl+6DNfUzOFiZTdfawqySzf30F+E2icMZB39qTOTjdDsefkNWXeDBJr3UKsoNoNEkKyqgJYOiSkXZD3vkrBA3l0h2k1kPFA38WeaQygA3JC0MUYeY3znMWe6cSeGbyCcOmgJuuwdujos8HDBHE1TcfBnoELGtJgzk15tZqh3NYEad1FOpfjUmw6ZBhqKog9n9x01GphvdacRkwJNfztdFMfL1fF4u20U14dHN/OSbguCUsXF2SKkEc4oyekqKNS8fj4y9H1KczGt4weefYze3L6+C2JSP9lyuStBBMRe3Ja398rlXgdK4SCXQhyQgbOFhS/mgUrQpHdh4NF/U76TfWHh5Upu7MV2OztsjdGLzkMsScTvhVg8Yh2z2NydZrsuim7dtC15UWqUBBIc0A/CXUb53V/J5c2+bhKC19aSFI0wTNhuYIChCqTcRBxpBQe8lHXI3h7Q1cLIkPCv6mvPcvyUMPnAREeO8ZOs6rj2WXFQrrGMIfihhp/QxMhbNMDXS69APzO8tZOHEab8vxyWo6jTbHXPd47WI7njMGjsvokI/wmDMTskrSKX+hes1UFwOknnPMb1olBOYTEp5/bUy45xn8mmROWvTdGHlH2F0wj30XZtg0cpFSDKlMYIGwiD2BGrESj3Yy5CBynDqzIaMO915ctXvLuVbFTKBCUFwvf95z0FvTiHZmdLIWN7Noh3FPe2GgN4Ir1B6TpionIHUAT7js1FIy6lFx5eLRk85r5ABFuLkVLoKAuHGQHtIh9hx1B/kJbBwoGJSN1sWd10VBSYKrbWv7+Az2NjpT8o2lGFutSQh/LRTQWKe5HS2QmRbLltaHF4TqcjtEkFovkJ3PiEdBoN7Hn9fO9g6slBdfq4lDA/Kvuy5enn5g98h0++h7U5SBySMVzfjf1s/fkBHcGff8MPsPR66vysMbNIcdmSlVzUQGlk1oRPYJZ6Kd0LunDtBMxn1KCO/nbyUvqj9vR5HhadivASBXqF/Dkh7LOgGi9zVnGBTLhQtH6zVrDzBNr8mqS1TSTjZFan8CU3frdDsNGeKDPqXbdhcaQauJklGBR9X18UHXdCDnoilAmKiLroF4KgpIFIqoLmx/m3g/CNk9G6qhuaeq5gRf5+K9iyRrG7Q2Y8hK8Ho3KbhyqwWoEfHbB5C40C7Ml2dId5YCjCggY1kf1EeBJd9K9PGaG049vH/352zgXzAbH6WdHkkCe7FEkD5B3bt4Bhcobf/4z8wQ468teO5LgC4BJOSMJ0wMi7zbFNx2fPDne40GNG02qSRMBvPH5ATrkoITU03PVftrkLFKk7/z2cRasE66cIEc6luknqmRNh2vT1HP7Taog2LNbHEvURrtwSqmk9ndxJvnKOrRZACQiEtRblWocUXAWlLi0gO3ZcG15yGzJhg2nspup6HKuuQ4/yEgc4ZVtmzDuYIVX3EZYW8dhHGK0cm8+ddyAF70fhuq6boGoADSPy3RDKPLxn9xvsv+RFLBTBgC8Pry9vLpdXk2Ozhjs944ZYzx3MwkSs/LrWzn09JvrxG0+QzbyDMNTzz+99wJaHwARAHufH8akIyalsyoHjW9ZRtAMcE5beqNT8mqR1QVlgAL0uhstmhUw0jhAsyDSJGiJjE/aIqFE08H4WZlVRb7kWRwrFXqOzE+W8ZbUR9vbA2biyJAlBmTpORrwKuTGtTGQNoepZwrYM4z7KgyH4bxmi4yUoQG4gQVlkkpEf5it6OJ34eyBq0L03YeFq/kVxfOo+QPESjjduFgfFRmpTD5rB4tKOzTtuOGSAYwOJrcciz0m214BnJBMXzLLqTNf3VolctSLLrnrcu/5nz58fvO3p7RAXz1NDqbkRj+lnO8p28XCksYnRzP53zOqpXsfPsKbmlzMxwIIZ8CGhPClpiQcS1lEjq3T8NiGZ+BU7XZRdLs0XeejcN3UIH5HrnQlMgVqUm4fF08kmbTeqfXJKAe8Mml2G6XA7hHOwlna2dXcrR18H+9gTxCSLbYqyBhl/PA6QMXZx5FqhZprSnXhdao0WUlHbSUODUMIO8D4v97VkZwgpXcVmXuZzB3d0u1GDChj0FIMcLZCJYnWUAjyqrH2IQcygiSSdk55dnk7XbZWS6sIvWluTZfdy3GvWIYOU6xfUAggB+tYyy6cx3/RCCG7f4oNBUn67kxxllLGi5Ex7Dd46akc0vfMp2Vo8uR2tVIKBB7ElALzckZsGKx6UrOoeMjHOc3gRx6WrnDghECGl7oitrD9dWYfzWC1kkcZSKUoR1rPbO8DnJDO9hVENg+cKrJ3bicPKZkdQbaRd5Aii55LuvbNvMBIbtxRtKT/rmqLhURz1Q2lArYdQITORlSGqvSckdwyu4hSIXZlyUWOdvTvtvJK3FkvbANxt4y35dVxwSRIhk3FjVMQq30fup8fUJMuKZ5m0/aQozH166PLSzzAaOa7pTq4adkajeP2dAXI/693NJTBSIg0jx5BcLyzZuI2v4X5Z5g5yeWl/yEB6d7vz15eM/et2xJ/RWXjuKY03MiqFVUjsy9IkWTqRuAQsmvx+HZy2bIgsfaGVTXvh6hWMlgmDeCeBvMk88EO/ZwJrMTfB51W+sN5m+i0lWVc/x/QHHFIgUKEjrNDAOyLawA9Hgi5qdnsK3hJb73o9Rr8ziWHxlBIMvyqktl/nNYoonaSP7VuaHk87y4KJkOjH6VW3cDU4kq24CHrUoUqZDocVPm5jHwaEbOy6YDpyzIAMtTLy+Wyy207vLxk0u3VHvrP2XzFLCrUlsVGBN3k8OzNu/N/gTlxNjFpcj7vws5TbPfNtMkvMSfWlNt/7/oajIUQf8m/XCVJcWp4MMHlFJv+uyKIhKgl7cbapuvgkXZe3LZBmGYWaxGiNkBdimNJscJ+Lgy7nyM29XMq8cmQz6Wl65sGvkjvij0JxzSP+HKYTH1kxaS4Ta6AolAfaSBLTZEcYE+nxzTVGgZlExhoQmFBmJcpwSmDop92PVhBEGooTCGPbeWqCoQg2Hmuasb2rhk0s2xQ1xlvYLuSFZgswdBNGHrszqCHsymWb29XLSrOSxrzUB26/Ic9L1aJPVf1UmLP8eH1h5uP59JQlkAv+2LI11nznNgTko440p/bk3ex59EJiNXLk72D2AftjHA5honbZIRNpQ2CQwteQ90egGtWaQox186qs80FveQ4cpTA4+Sp0JOyTF6gyM9JVk1ggU3D9u20fCItIL2bAkQSYeJvs+TzydgWhvwvwP138hn+lLtG30HFie8mJzAxwMKhY1RbV2WBUpMDZld8j39faRR0lYe5WMOySvaBkwZb4YXnXgM+M6aD+SPbpGR4YVxCBkgC5wFqup/1A7ItZxGGtosjLZJtIgY5HIMGecMSApHbFvAJNBM2/bU74wucAbyHFx++vvrbP27e3dz87R2UUUB57Cl0ccyZ3P/v6Pydde8dAwaCrxx/YUycS/89SIo9WAVBZLUdSmeEk0Kq5HzSb4O6FnWAz2gy9DqN9RqMR4MKTy8Y3BLQnSEhCFYHlD26Kn0OBAUkXo+13P275+G+mk1U81DD8xr40lYhnwNQMvazfIBKQBdYqSD2c5waYCyFsMkHcAbOoq8Tc0D1BLfWUt6wYFLjy44vlQgK2FCF40ThhZGBIhisMcArV2z8J7h1e3cHT2IvFCMIOCPSzpvNLyZH3dEmjkP6KHVr1aqXl0LXK5YgQBH8KZZOXn788PbNpzcMRX777hXnFHuSLHH/fzqe/I9fwsZP3rwHWf/o7PzN2fPShlRxWI68BcsEc80+xIHiQhbLhDH9mhio2TDSOhPPvLDElegwwbwtymkCRBZhQqNG6SMDVmCJDXalyqIvN4D9gZPkwendx3vCL9n+3e4uh/UBzVAIOhmawgoxrQk4gnQOMKqpF2yDvUeBC4+8uigYAhsykF0VLnTNd2zBlsNqRgEsGTYGGbyIrmYTDYMYf9GpYM9krGDa4IBEOkuU03btITOLDPoqaUO4fTbJfp3O3WRJwV+Hn1ePK7PLYolElKmdnYVrjaiYer2rw99//nT+4vwTNf3NjVgUczJjMLnd3/KnBAi9M6uczycyWYfdHaMSKGhxPPQxHGerCasqsh1vCEPAGtZcNBYcPDNwqQHhA3dgtXoVlUEzHENRXBFKMcl2M89GuXwinOGeDkCcHhIwMPVDlJrc+GyTeJ5FfZjVc7si5uLu2m4+Wa9Nv4PqlkBIM86PGp5LFYyq2HW4u3oeBAAX6VWUGs05FDngCcTKRGaSy3AV0nnXN4jtkZ1n2qj0qmhIcVnSasUgH2YjE+2otSLwrqzvrPc2nflyWWw0ODJLzqY/vyyDSrFQif4+LCkG2oNDTaTHjPYGOP/66OzFG1iOZFB/unlHe5kzit/8qSv6zZ4g1Cds7/j6p9U0arjllkWRYRtSJtlOBbYnf299EyXgBNC9xqmpwREOY8itxuAuR5VccweLSJKpVCHV9CFs4k8HyoCsCH682ijs3/+hUN2hIoWfnMvJxBu0yMIkpzhd1DSZAuZwM1CK9UkkFm6xBCzLq8huC5JKkTekM9hzgSx2QZRSdMaJQyHNyAAibGWqAADtomJAEa3qGWQ88CoI6Tmq0ibf+P1//nqLwdBemx8OWQO9xnnL9y/YoGMQ/wIY9iuLFStzeucjJkfPeri4tjUHLt37cvQSpiNQ6V5r7+gzfXvadx8+fvpw81Y2cP35jpz3zZrgIddnn05puZx/Xc060WJYDn25aHqWZu4AXIPZkNRtllsh9+HasTcH/nyN+sOpQgvNoj9W8/syAVgXx5Xd2SeFVVXwT3JZVnTcF8krpWKKN3ah3gEzcz3NrEwnyAIjI1Yk2hQEyrblcUjIKTOFJ08IXIuqhOw8UPoyjtCkiqdydFxV45XK0tZXtJTO0cV1GnyvgV8oSAYKCOM1TJlEZig76Pe29plCmjIDhxQiZvmP55i2xwUIL+b1CLjXi8Zs/GovUdFSvY/iUm885frB0wPgn92ScAuQf/oyYcP/48MpYx/Ysffy+b/+cfOIPJ6+6H+ee2ef357Sov74ZjWz4koMWs+pYGchIEMuTeC0q+1NGaoAR5auuM1PKtQRMN4CSBGLDR9q+Qcy2Q8jJrxN+kXSWStk9mm6PZSDmHUdJYfekECP/hX4gk9Kq3QrsWdOhDImEVxUDJUAKETXsCdP0HAMB2PS669yX+A3FLj9enPt9tU7XCVD91TFfLgMhT/lBpqGVyqQIGw6hg5tsupQOcnoUpYuGd4CQm9YWi/8StNA/BO1W9jTpiaJYZFtYuxJVX84iurT8YxDVAJJIfSODydXYPcn59cMoXz95NM5p/WaX0+OkcJJeBJiw3/s+eL87fnJKUwe9B09wMYoxn9qOLem0OYzaoXWEhPUJfmoUBVvYlrhhsTbFE5wVygKupJH5kKwMIQegxckFewTqRnNlOUTNDaTPWbQn2hsQP0kVMn+XIQeqpkcZoOYTTT0QowJ4F8BXCtXuBm+iyOlhdGoqjJkjdctqBhN9GDMrN7fkQGP+MKF51RM0yjkFb75zoY2NuOua4bi2w8QgCPUZ4MgDgEYplLBUbgeJKIaQFVmi0SFCdf8KMB3s5EVTVek+qXNcAhCSuZf7kTEprbXgfsOp/nk6zUZf6/3+svxFzCU1RhQeu8DqDPPz0rRex8/vf10TV//R2aNzxruwgNxTOyZ14kWNDgDvBVyN8Z7roOgsYkcR+xZ0FIy5m9X3L6dRxaHyKBA+s5JU9Oqkc/oKtdd2J0auRDhdhduN+gqkUM8M0NbUY5It4gSkrlUCmuOGsOAdMYs4C7jui2MJcTYNI6ihqLCNGO0Zapm87pyAfqktvch1xO61rThNOypkwwHlrUogPyvA9X07AyQVpbAly6kBYPiZQRLrWHPODAoIHYa7Q2yEIoVUie6kshtoEwURXsTAkYX6xuQ1DCutcctSsInR2+etyjzrQmaRdR40J+LFwef6DQ9A6bDnjjRxJ43b2W6zdmL82PRF/uVgrgvgzHHfdJlriElm5J0flP7DSI+g84BK7yFwu6nnR8QtT/ODipaf2vb1AVIpltECY4igQBSNSlnUhTnu4+F7YlOhPiDEyTRSab562YHUoqr6HbAitLA9jau4qyTsK7wwLdRXJW6i1fXBtKkLZgiO1Kp6jWVaM50sl3Djv2GkHyqFRrZpdGwzSguhfo9k93vLzQqr9RACiW0D56Xo/6Mi6Xa2sFNsAE0j5sh4KrQpj1OkWH1XCnup8Vli4y0E7ZplwRBxQPgnzMe4eWXq3poF4ZDau3ZnJSnQV/vE+XTs/cyi+hboXTv/B9//OO7T1x4dCSHS6uBwYyFId84tuGKuMzXFW9fMZtuEPq4VjJClK7kz1l0V1tgpgUT9hccsQFHh61FWn5/h6YQH8bmMpwNGISkCSm8bDoxbEqfvKwsVgtRRIBTNMd3HN9H+1YDScKetcAh8LgLLKNxHAn+pm3QNUnoJSlpI+uEGDY27OqGHziGCcTJ4XSLPeh3UYIsaTKZReun+OrAAafCno1mwSNxJ+A6gPs7aRxHwyUWpvkrF/BgFqGlVNsoR8BDkDCWRUEC/Ygwj/iGJTZMHJyVg4qw92EjSr54tXd9fgP2+R6sROD5u3h0isDh5sevb68hpe7N635N1ZwqeS87xyLSogAtYdtX1u01eVvcsAEn+GEJrACe/V/fp6iEjEgEwOuaMGf2gaOohnKMw2IaA0PAiUKyuoubzvBTQyQFUc1JJO2qgrfUCHgNJK5hOORuMZ6Ssj22IsIQgREyA18DckXTGSqkTK5DW2bizAnaydaPZmATzqy61Yl9DhLGiKoumbPnpnR8vIlzLteLniYDWrXGHKI4e31cld6Ysd7KXVg6MRPc3FwA53s1DnN17W8sOiLU9GhI4k2nDAiNiIjDWh+1JlZUHtErtzDM8hZ95scPj/7yDJAJe0rphD1JPW/eff3x7VvK+KODZTn2FC4Q4cJx2yEP3sugUbv2PX7GTdt3uVsAohBkOGNb8O0Ak+lnFhYLxJlC85JmKGhPKo2RwZ7Qu4rihf0nArxRb1lwdYlaQFbVoJYUll7UaHQ4DOxm4DjEbljqtGmoRaJ718hIpXHHb/uPt5Jx6yrdNypb2q4p6l/hToU0i4AeRObVjqjgAJ491QB84AcBtt+4BHbXTSmdOsJZqNRpRHlw9XOWB/5F4owgioZTo6abQeCSmwKfiel7m5DvCtqJF7ZZk14UeyLN7d72xMuWe7I9gJmtAo0SlB69EvCJeQJfb95Snf6JBXIwfUbtaG1TiQxSUCk3IQGuvV6E/sIBnBRaTSmsVhyqHlZKEM25gXLHZV2RzQQfaCHUm7vEMcmgNEEkshQvmN9UNNWtVRy/Ux6v6hbaVge8PQzJVtYBYS5K1pVZGxzX0B32UMJwXFnXg3CZpJ1YmAJA/t3jQj/DFAcgaqGGk3fJvF/XrgYNXveYl79e4k5V0N74keLgEkVCBi5a0SXV2hoshswWKoapbWbda4tcjmwBST1mTxkQnv1AM6yQRK3hU38iuBtb7RL5o8jtHdf1N6PLQ8t3POns4wM21uWSdtrxc4j0ctUfvXsq9mQ3w+nZR8QO6JifQKCql1hQ2AefL/U6xD06xFJvroOwt5pNl9PQA4xQ9QLZHVtM8n2KSl0EV2aNlF/27GR3hJvEbdYIZyrUBi/CrgY8GXpk4CjyzQyhfEDniqxOFPlRzMOmPZqPvfpwyJXtCKZmcfIqDvhSXzZVqWsvn2GPp0yFEN5TpkChFNTS/TWJVZLzux7nc9RrRMOI9+qlgt2okaiQ21aBCEDJtE5MmVmsR7VUlvu+vZU39STVDUyTPDsie6cO9WLPERx/XPataetqM4xrJNa1SAh+s+5B2SpUgSzH2Lsjrvb28OgluptHgobgQYlHJ89RZ3/+8OLzNbAya69G5cDhnppKb9wpXSwhBXJwOm5jOO7O50wUgT7EDWPmfw7asq5Sg+j0j1SVQk4b6MkkSi7jLl4ukxI6lNEpEqGQNcUwykf07EvDzRApN8EDyQM8GZ62CLDGy4tZb7Mp4+tpnhctgzhIwoiaDGiU+fN5psHIQCc441x+BW6d72X6aHzWgcuDEJ5QMWrE+IqYBL1gA/eJA2Ucj4ECUdfGHZLVoYVrhZwBw98swCS3CV5SzimN4nSuKMyQwZ6xD1mvthkdfmm3YweXFrTxxQH2HBVNgwx/xTmzeDoXKOtfsCZEmvXAIthzgrYROjl6bYR5qHk6Uqub7H7dgMtRN/TGvR4uvT5tTZA+T0qdRrsT+XyrVZwb5CycFVMlQWwNV6EVTjEt8ykHWSpQoGJwqqBhu2FbXo4xEqFL7BnHXsycNDn8FGWkH2jxEntetMZSOAfruDPtkVpCLIMOAVJiINrJpRUNQpNGXsYlVkmS2iHNEW+jaCF7XHB7CypHtkp6DLcc1SuAVGQo2SyvJr0C4TsLFBaEjCbf/cOu/uvfPaANyDfv1ljZbUVFkm8TWjTllVNrt7k2kX9xOLmMqqDk0tBTalZ51Pb7amC1JgelTZ8A4HZ6re7Jc7BRovx7qeHvXXbh6v/+48cXEGsPIUh0KIIhHLmgVsIAtoS2Wi4z1ohpEkfHB3WLsiIkFhJHlAJ4Mv+vadTgsi5TTz+Ai5jFl+qZ1N3UkbzOpoiAl3I1mY8vL69aqxKeMWITNoydco+1lMTNWR3aMa6tdTHueR6C69Ca9qp4xoKeL+BF0HeIs1bovpBZ5PMJvcQ0w5AuSbCxTaGCNsKNQF9li2ktvdteqVIVUKCwz9JkQo5GnmCaNFncqGpkdn+bVXfQgasUDZxPyqKi2BNckNRXoyQMY/ywH4y7h11PIVZI7WXXEIj7Aby29mqyVx7CEFKcIdNHT57/9YbxGSDKPPfq08kegoc3v6LxccJwiPoQPVxa90vj+awctWFT3LY4n8wLYwDXwQTgoDwdhpyimkKIVojUGlNXJAZTKeURbeWTPJnz0OCL2OvXZmT0HJ361Wy6YqyP5HXF0fR2Pl21ZlNLAmmvvJTPXEzGIhZMMp8REIxbk7QNxF43HF/RSCQEdKEAYJA/kY69clU8gKlVnN4I/JA18Im3bwzrIBlF+Eya3czZfCkQATkcgGnQ4GIFzu92SEvv/0DQVRXXZ1Ira92qUd0PFrVp0XOpoSouJKTGOmrPyjrF3r5RKRalrGLEIx0ZtzPvjur7abjRnd58xXygm3eUSKhCsGd5Ntlj++abP0KCvmZsOh5CbepGu3zRuh13iOjsD8WHLvcOJ2hJJxfj4uwW2cedszeYqK9J8TmQzXoZgjHFoHh5ybCHQzSrNbvd6c3gtK1arCREfzWe0uqCOLSarVpMFi6zrH3Favz5rDcXSlZRhiqJeMPi1UB/n8dbF0DUUI7LK0X641NMuSBFjdC1txjszxkrlkiYNiJHgxYSbUgVRnU4lzpjooA7VZLivspxMlBMROyevC+Tye//IEAA8+vrMw9aSdQhU7QXVugCWEf0emJIFGFnWk+IQXaNIXRWm9dmkG5WSEfHxY5uEgLr49Xtp0//+ivkHJpHPPdGc+i6Z+CfT44+vnhx9Ho5KoDT1opjKPzIIMmQ9p7cLqctcHy0zlfQpljlZMVkpQV5kilzVZJq1AdZUDVCh8arHmGR3ohleexw3MyR9k8TLEz+zi5TIK6uJq35LT3w3gy28CEIznSERy2xBRYphwfyaRU7m6G/VjSPthyiRzPPXCEN67WL7HsPCxVvtPIqQtPjk7BBaCNEZKDsIwAZ4l+eLhRm5clQvKCAkG+fJJMWQGaw6bHzUvYNsCYwR1GsmpsysdufT3uhT6d/wTtxBwvYAFUbGBG7j4FSXNzzcjzyqxybtNceFZmkRF7VLq/QNn3+/OIfjzAn3pN+8XQFuHd9+unH67OPnxn/1L3wPTrhyPFxxr1ysY4k6uJ2fvnlNccYDV+rvLrE6ddMdFawELKcmoFk2Oz02WqStQ80CLBAznGM3+UiRhAybycczhXWhCPc6kqPFpIQsl9UV6tDsWbrAonjiEyiVw88wnPgdCw/7sTIGRoAlTQ3BaivOZgxikiUXKMSFHthg/6GIqumyLl8H44yx7vDEZ0xZcDM7289FpYuedZ92SvA28zkqbo5UY/LTjbOqwYcrVSqVW1d7AwbghE6FNl+vKiYBaqaRrvYTvbkOX57iMePF4PEnj18Vsd1F36Jaung9PTHm8SeSf993Dp7+eXl72Hkn5+fIs45mJQt5n9Ol5whHCdHu9ultyoE1LNTCdDEkWJRNkPJmPR/93QmTWn1WRjPDmwUCJNILghXZEy8gIADICUdoRlk0DA0NAp2U1a5oVyzRJpKPoErVvkObPLh+neu3X3rfRM1Ex7+/zM853nO8e4eyQBpeujUlfuyeePMaaeSkh1FpaJSHhVFmt5J8PRFA5TLNMcMRaM9eoNZF52FyNMzo2a1WEa+yqifbCSMSCfknabVoItqjG9OSZJwUHqT7XvD8i9f6ohzinQFZBUgBBJNTOPyBSNR3v+iEq9mPOk9Rrno+38ZwP4F2r6sZjPuAhj+kC1iyM9NkbgKK4BBcV4fO5h5yQEc6cBCG58LAtzvJNDH4rIz8MIbx+95mvmQDXtyLGUcBDCcyrtw1bpvMz7j//bsjBlj1X359avXRX53R+O4HA3HKGNg7o+KRVY43NCiriQK40VDEGrUILFIiMr7RGb0nehresx+A3UL6J6Q6ARDiRAd46WSpJTFxIhhpx3OI1uSmUkEX2icWcg4XlrfiU6fC9PH3tWqHoymKc7nlIUsuDEVLWYIEhje0hfUpJWtgqqrNTs+UQ4q28trgQD/VAwXQYWEi/F4FiWYM4lRCEv9/jegPLD252tYU9+Pzt4PLbuY8vfvfRYU8OIHkakqnSeTNMf8IUZmqQOfw2RhNI8NoQPzIqzOmo9kzfjVZoklI6lywHDInnuV7jNqwmR475IMuZR5vJNwRCySzuen/phuEw1Rkd+1X+6YFERYx56VQv1mVK7wXeYmo34xURiVCnWO1rivgODCGZEhX0z+sNLWcDDgSyYsg9fRcQhAj4mRo0JX7bBeODNmUVUTylljiHC2kJu8ZUacS7GnfDBK4EYzmU6zAqiRTmoR2n1uTfWhOoDKEfGDDgbA2Sikgv6atK3xcKSSXkr9cpF0h02S0xCw1JTSKstqrqrwk0cEsn1GO1v9J0ie9WGEBuPvA/vuOyOHfx8d/mavvykQcYXODEAR0qeyh/IDfAqsEjN54JnEPsOR4ZJGlaN28sVkC8cDyewO64d2TYNgykWNk9cgd1p2PJ3bu5//wJ6CL2HPu/vNz+enzeZp9rM3p/RkVyjzI2B6ynoUpLJl4hHnszkiecQyWUjevAQSECeZkgHUh7/10np2hGF3GQgYCIV5NCXKCcwQubFcYoGqAidZaNB3Yabc3RVZaLGDsIWrnigtRjiUBegD5SgDYVwpKp0kYbYmGs2gAHcq6MGURMbhJ7ek58nXaLwqUb0pmMeXBSl7ygjfm4qyaFYp0fMOG/6HbbSHuya/4bc8PxAEsN+foeTvDhs70s+M4XxR40QwTrRGlQUnB8gMXBK80k7Bx0yjC5NBDZwgVdHt6Q2lahZ2NlwGArV0MZ1SVbYwO9Qs8ef1J5wcBHI05ul3PM2eV7o9X5hqdY89hXnuioo9629XpehpgW8Xqcmo33eTHmoOaBdm3Z6MXYJPd0RKYTTRYTxiJIjKPaSCdHkgA7BylCA+GvUTEnRuxJ5I/Ya3nHFdClTnixndnh2EzVHy0ijT1PJegXjoXYMZKHH8MLM+B0xBjwx2xJ6Co+goStqdBAnSZDG8BoW74qFgxJ5V7hRrkGy0BK7f2QR4ZjeJOVlp/fULHRoO6L/t1t0LmtiRpCdO/1OEPGCksuIfMzpqO5wTaJQnCCKPTGrNsMfEV8O5BsSm1XZMgNqhgTePbNgrXTa72LP+uoKSI9aET/vr12YDn+TpCeDu1xyMqUDUzZImTepCjoTKOCnoaVMRTLro2jk/kD0RsC9EqcG6IvAJxld41TNZ93Zuhb3uqlYofm5yQ9L/EcVXS2ZTEM7IcusS4cmXSDybLHKdwGXFf1bJBIDFOGsuymWvA1iCgE0hGJbJQEhdayFutQp+CPcYvDngJIWgaAenSRMxofQXY1OPmwyLdNbFSaPBKbIy6zEtf0T7f35f/2ArIx8dmn784T6B+gmP+sJ5CR0QsM6bjkUsEJ4d9niNCGBCqc8gCkvg6NDiFMomOYCSl+k6QdvZsbHoigg6JuxOi2+Q7dy3Z2tIeCLlxJ6cz6fN+nk9YxBoj859q9FpFqPUNKcFBt3gRBPjsQLJH2xRC0/DZuMBABL7d2kO20BvZPw2IKfTgXbDDLMlGfMU+x2WiXMe3ziVzDlk2H4ORTVIzLAh/HSGIlFYjnKFOjnYFf6Tld4AISTk0Ww+FhD/yAnVxJ4xmQWGjUOU06qa1IhHIRXkGjBOCYbcURBPKlV0nFOlGKWo9WQTxSRh20FIYbYe8CFjNw44ltfX/6Y5w34r1PeH9AsuoJAciGgUoBsqZorSwSpr0v0CENKZMRzsWWpxM8IJLG4y+gMeNzErksQLGIruNBIjHxJpA/YsJ7rdtZAaOZ1IQD8N7/45+ykzc3q9l3ar++vutl8VMnnlKjfvMnntiqR+4GVMvhbnW0V0LVM8oXAR32U4kgB3rCxkgyT6VpCZWEpMiRnHGZnGN2kMKWaZGkci34BZTm70htzqw9BsMWEmZ3+xWFSyIseQSTUx0km844DAo3IqwzKBNiC5kOTPQD8shQ0MgAzco3S42qQa9rBmgrMZpXZw0+jlTlXpbitTlKJ7jq94zR1EpsQjNq1gUGK+3H3yT4YUHdPAlTU4ewbegkBcSrBdUr8zO6a7sAVTbjTUNuFcWQORRDOsOuKKFVaCp9zxKKqP8w1HRW2On55gjEDAY/D88wN48gy+02y93ry8dMFA62j1gPjdxVEGJW79jSlbFWKr9CAIdmx3YUiazEqxGWm6Ua2DU0BjwMiCLsB0UhIjYrlMkuFuv3EmoevKQUTGX2+JUnWCXd8muVN+5sviY5vAX/Q73PRlmNZOK4d6IAL4jC2DjKAdBPwYMETZzrhKDcAT2gzgpCtdLuvzaSvINNP4T0VUnmzYLuHlk0HmP5ps8CMPaVHL4HsZi63bk4D0ZU9GDjIyy/CV9PSLZccVFhKxjX7Kpc9ppMXl/2wnyYzTYBU1pCMQapZiGnHSylLbGPSRaHxAy/SSbnAi19s+w2nU57pgT4bcvzClYLb++fTS6w5BRKq4dgKKyIzA8DKcH0XmxSVDdovwW6gsjMIuYP0wvHjmpshiJ5Zs2Kg7qXfdfYSoiGoaLYQg9cfbW2L6sPCG74DJN2y9YUimxuI6OaCn+E+hsTaz2JNWWBokVI27Y6Fwkky9FhPDulwhggUiYpS2jKYV72n2qogNouQawYiMVcSeMRlsQ/WuAIRVPP1MyG+QQff07NjSv3/NXvUvX36/X79jT9YEfvabKDj39zTHD5l1rwZL+XOmDxqgrUDItdkRiB6p405RCwVV0KVL7guj+xSOlBX3VtNwMckgil0zbv2m0F5iz+f1w7f1+uHhE+OEGcnS225WTwSmFjUMwGQUHQTxOUfRPmb/Mmq4iievAdlcAj6ZpNvAvtMLsmWsSb15coKNz1UgeFYL90dXY8of+v51eJA6M2UIctXAhJPCIzEKkgV8U+zZAmI5TfAAjGhCHghHuN2haYzAlAzL+cR/pPNCo4KQEqFkpjeUzNMGQf6OwIiUU7BjimzCpafcjAIZkMyXlWIlHlJlZQAjhVns4DPI6uof79fH138OP//7/c/17jGrCBj1fijrHb4YrGFWfSIOkuQJ1Z7JGA4ad3g9nrLRxDdsGSjR3BVHKp80U7JoWjyZUqlSoVR6xq27Dfd9vdp8g2qP/6w//vOfP1/nve2KpGnVIt0uy+y3NGl8DntSFo3HnQ50iHSS9sU5rWEmKWFHu+3ixGLaO0HBwIM9rRwVV7GIope08ob73hq25WEO/JDBm3Uqr9O3u/rpmPEpBHqZyXlz05ggVyVfKoVlzXtEpd+tppJhhdaiPoGFZD0FlBvA/9MTi8MPSZEDcCo1HdhXZH4EAj+pV5hITm2bLY2K02iWzp4P8aSURfu2oPmAkp1Z+Uff/1zsXf/7zzsMnO/05L5+f0e2RurEW3Z+ZnZIp+qzzN2LhU+cpMGVxMVntPyOULTSOHUT/lJmMGiK0mCY4ERV7S1NHts/Z9/+PttsGOnCg14Gp/n6c73+xz9ms02XyynjmyuVSmPYuu3dvY37JVA1ivBKMYwHlb1kZ9jzDGInryMCWmukOUL79xK00wMDcIyup1WYyPnrtZmD0NJ9KN3oGxwyaslTTM3E0QIVfI4oRXB3cdAI5OlpOESuDC0Z9mU5C+Msrugr6MOKRokuyTt5Clu6NdKtaLRYxnl6couoFi83yewyqAtLLNp/67uYWOitpPE/ol84sGmWQ7CbExYLsf6fIdhMy7UlL/4tdx3nJaRqAFwLvEHZnQW513gkIxRMXiVbIdH10x0AmFOYq8+C9APDeUq65nGq3bInfUromWHPp3l7DdtW8qUuQ6h7xCOGkjxtgJgeqbJz4LuUh48v9wWKzrIwIugkJfkLachAtTTqEzCwZ8jhxJ4WP91cW5iKmhITO4kCXbfn8m4p9mwNYVDdXd3oc64nOez51i4wMOUUGUSlmE1TAUzTQDZQ+wai1VYpd+FS+cSeJJxhV1KNawIgwVgmVGnSNQSUQ5EZPe1Hk0EkLzeTcZVbVMJ7d9xa0O+tuqSD7WA9oyFu2TeQPbG/+51tTcfHoCMnYVYGc+VJRGWrmvWSsj2CAIKrZvEbzuwO0msv/Q2vN+R17iASR1npg3t6dnFiBTXxQY0olwnchReaw6u//H3VW/7Xnu028zGXq+129jQnY3p8fbq/bzOjBQe4bLcfuafVctSlAXorqVQ+LPU63KRY0HzCG0sYOqGZ46BDZ/cRbCkzEwnWYTL9gLGwsrqtuxzyscza7nW7jcIbQZ17z1forlCEsoc0BSA/VUBsXFx0WMMKqBk9iLScyJhgxPyz0mAZDNC7DJyhMD51mgTQxl8r7qYbzgFpkzvRlCF2o2UOVVyMbgUNL8WHOQ2/vzMPy7gLXMfCkAMi0x9qeOpPDir7Fw/QTYsyx3ZOWRSOIMyVYMsSFqNlQFsfUodKpyzvkmnSACU0QwJT/A3j2ktNvOHt/dPz3f1y+4AMRK+QxJ7t2/nTfM4aQEanQ/2+FwsXOGBLBikzy73IwSb4KlPquzg+1MSIpYHXbGAO1cUhER+aOtgycBDsIZmHcIM9bwlCdP6WjD2hjSL2vNdrhUkDVyCrCrCq7Hhslknjpym4gW6K3BTfAZhICmIDHTEZGeIitaSZI+QRwlHYHVOT+ZQgdThRleDvFl4MsJISTVSJhdVFYaTwOkBDERHnB174Y0w0c/KqWT5wCKz0A1v+eMee37+aTChNZP+FwwEz38rvqnllzA7SFLwDOEhcVW3nPpHl0o2ll+11OJGRemMa7/eUNtBQZghvV/Me9aXEItEmfroXvffLr/b9C09ved97QdOwvG3PT6/mDDHj23alAcHo38e4aUEHUnVAWsKQEZ4qFMR9I6gnjaR4UqTnIG8EmkbjrkuahFEb9693dw2mlQOE4KcZgsA8+Mdb8k+p6IHqqpxAkVFJIZRWsEUkHC0303EAOI14JGOnKUagO/Dv+yOg6Nlsmhlh8DWDoHfZaLrIIIBOx+VJlOFAlEvN7DRIn0KMLR4iuWPZs9HI9geQmnz589309ZpVTdfk9PtnTjMJvqxb9tsBipwi2LfBPfNqZr4lSIVo1ExMjWHKgT+maLGSsnNyFMnTWY6DcdMmyvVeZtvefM7RfKBCel7r9pxLvfn0tO39BAEVWPm1DVOkdd8rvPW6pOKFSdkDXAGG6UmJ3hQ+EfFIeJwy4PdA7okUiCr1TZGW0A23WNZkLJfL4SOd/Xavu0RyO3xs6T4A5i6ntzHJ6ZjTAqgAKgaq1VIqT39jikXjSXxjLCg3CozOXVHIj9RU1MUpDsaAVD0kmTGOqDtJXxKfm0VHlKX/uihykN1gfjC78uKLYZj5RCjnFdrNDlzzi+9/flxcEOqZNn79FTHkJaXJIfJPYs+JjsfjSIGT41Ycmh/QHhR0lz2XcK5ogOJFHHY0i7LfH7i+ssjcPP1cb3qsnOYhA5Ubj157tXper1Yr4tHP5f0tYoYeirlW4753O2SzFR/X+6RLgrz13cogwOOkqwEzVuRZu0eUZjW++WSMmIXebCw9JiojGLq94SPHfcn8Rq5+i4058nDe9Yk9N54SCGiVNAK9ZJGJ8qnUFFYD7JBkKprWpDvDWKVk2FXMx/Cn02xaXAEIUt+NESHATCtKKptN8S4CtihTD0m9osWVdIg0VVWY/0sP1mf1BaxOJYxvZwIsO6r+vF9/hppGLn9gktmiEHOOfxxSzcsMGC/SBWbHkIudo/nBiLaDE7M0hQmSHrqw6aATtWoAiCKyE053qAH/8fy86T1zzUXx9VeJRvQ36XWu13NWpf/l7/98ve0+zZev97lJC81co7184XR1pcauLEjSs57ggFvBODWhT+4aULIeIfj0cU7y6CWqI0FMG1ILoYTqvZJ2tufz+WrGu0K6dNeqc1AbRHho6Kcd+kgyVRh0DYt6osEwjCwheNA2CvO2Yd68kgJgAoaRAUVM15PHg1wIM8bCeR1WmuaFgcgbUkRsTbGfwvjMbIlrlVLIx8ukle2E42cy7+6zHejrH1A72TiAaFynmB0fGSClw1FHw3fisJ7Lgnka8Ef7QoeK+Rn8aqedRP7mpvMKLUBV/fYQxD/qlhwyDma0rZ+lcn9mgij4PHjIv7Anny1Zi0AJ+uu2N+u2f7WvTlu3hKS7NiVo76UAPl/uM2wLNotKNYQeHnse7NrEnlwInwtcKMUJyVCxN8gxMWiDRaJ1qDyv8/nsn0LgR3RCPivbNOqURfVJgrM8/rAncBakqaCQljhX6CqCQJxpVzqNPYGrPEnCFYaMSjcY6RpSQFhFeVia1IB8AGRQbWJPlyb7UTjMopcoVWqA7Cah8e0za5j5MixlOPyjA8vfDWeMjpFOB0p9wyX9y312+pss2N/AOGPIwQeKwm3wGnePEZTVPpilU7p1A5jw/CO4odIbKXVvs37gYH7YE67iX//18O3TZrNdfevd8WvP7OnavJI4zXNyQDul8ekTBuVhLRNAaCKloRQGOua5RGEdtqDm89PIyRNloxAmQUIE0eRGU1U26kR5eCc4bEqGR4FFhgLbATmd5kSOSjAqZjlyIl8kyCiUOOWqPuLPxXGkEncRxAU4SOMJkqm8MIZQDUjJnk/B2CqWAKMisMqCwSYelNaYFhb+346WVXdSpLO8L0eHA/UAGRneEjT535zP/aPv3+l77aLyJnE2XprtX97Z/gfwbBCB0KU97pfgGoTmrYTMJ8e7DliVorH0ICJzAdPKCm/SvHGuO6f+ma3lfIrEEzGi3i/+sOf9Fns+iD1fdXtyYROwSl5e6cljzzeG5o77UBnpx+j2NCA4jTuN0humlI4SrMYZbIQ9c2JPcKRGi/qd+85DzXkr9mzl5JHR+nqRmeiXP+xJmziL/aIIz1ntHVf4mBeOPbnNEtg5LUQgdxQHysC1IPbk83y2lE+qEaqqeLBS9UQlBJHFuJJ2sSf9f3h2lDM1disxuWfP+GHPf1No0lKzMcRAXzFvPHce/AAlZWswnnIAFhL0EZo4i/mqK+iwwirx8QlvuCecTLkId1TUrESHVMNKzxmXG0MC1En+qevfie+r9b+ecQTEpNns6dfT6p+9t1wCqK1V57+34V0XhQhzNRZVJR3xCq0GqQeO0+xzmO32uCZYBEvbmDKQu5GaX0SPQ9zl3Xz+upm1SdHqrUcO57DV0hFRNkA0EpkJuEimieuE41qEG1Ytw5SCbAaCRIXp4iZjNJd4Vvc0muu4U3TXKe0lrYLmSUaMBwjTbPJ5Ch7ozUja3JUgUF584NCKAzRMKhJPJmiTSYIPW4MpankKdxrxTMs9A8hFDIYABaD5BKo1SdMuwuWIarUT0JzE+7grU/VMU1oSKC8gUppiMOaJRaYuvF/HM8q1Hp+I7Vx3ER8/zHo9Ar3ouz4BLK1Bm57FnmtAO+z5SpucNgUHDCPcPsrJKuQWpWJ6GvIaeUTML5mFg90dHE5KafIY7JTLsLmNXU4EM12jJ8nXPWM2G9jztoWVCVQCiug5wI2QbxCg6OtgcH9FJQpOGA/q2Z1cLOwpx4IeMovsuM4KLEeJWaT9tMKFmoM0IK1Gx9F8DPSU9yWCjgERXCTpdegca3bOM/rmDLQWSJPxQte/r0ngyZjgiEFkkN2UzCw2im6KVqYNagPdTGAQCzrqpJsCQWIgadIAexY98RhXwBXVF/uOWRtDjrnCnjyknxTqTzPRdX5arz/s+bBa4UEldfrHqzQn7rAngBsrmXJXFEkZjzgyNNtWp+FMwiav2OHQuJB0JjujcpHTfNW/epPpeq32ExLSLTH9nr10yy7TYh7JP0UEVce9YlMOap+R5wkafTEhHkFkkINaLgYjwB6iAHBxkalKcKyEqSqhp1gqR+JpbBnF1FgYdgi8PFdSEZ/mDmqoMEJwZZw+zX/ptAxqn2UYF5KSz4cIlRg1YrUeH7KR7YItjUQjGUpwhIKHFTd7l3YHQdVPLbl7BpNNZavO3knaDe7flFEYaftAa2aiMmu0uCiVowzUYl3r/XLGbf+GGgF9LAbtMnxAn2/zzEMuugYREXvOyEc3wJWiWXwrEOZvCcdgG2O8XJJ4BA2IrBcdrF1EXfCKKU5AI/qdeoN9TQ3uNfa8B1jqzsFAqFxv572hACI6sCyw5+QNFwuEz8uqlrIe4ZCTDdGiFl8ZRpNDLJH4qpflhHQSIszpUogICJs5ytgZH0GdWRaM9yOXov8eLXmtA6FROowyeQQhoxEa2PE+2ZFs77ZYzi6uaR9D/QXrYMYOj+xXBQEBmhcWlMPMUAqvLjoKDDRXsyOdV4YJQmquMrTBP9A8TV4zWFZONiMjN/4Y3SDp/Orp6e8MtaI+ovAUJ7DaPGBYDirC+dl2eStIMC2JOu2fcYa08qbMIQDONSKtZuwpk/lFIBvLV6ojGKQo8cjXBfUYtpb3rcfl3S2gCmP22HXLYuTbAppSKqbbhuy5b1xhT5IBmsYesRYP1kzx5KfwuqZYmDwoyWZSReMTciiuABqLaIqlB/T6YrGslCulJl8FpplmOaYwUlwluykciwTg2Ft2dll4QxuG2a0XZjaA8th3IIqgNhVZr1lWNMhArAM2/jv0PqIPTZ3TAhEF+lMZEXco3wQYz4GB9fNRKctcl46Iu5oY8RVQkOWwPvunGJP1uphtvX3AltLh/ETaiUU5mDzS5lxtSAN67d5mCOZLgTgRWB3XWI2mB14/Ks7PZr8+FcVmqYFHLODqysnMYb1HPegU6vcS0CUe9T6eW74GN0QIppMc930ke5YI75AYpEGJb4x6qAl4cClubEso1ae3e/ghi3OuNkF3+FBfy8OfkVPN+yD5KPBpOjZNkRumsgGHOnAKZd+rHh+Q2O0yp4Ru2x4LqmScxo4VYj+u30jYNvKTrwYb3wxmEglyzj109XTZps6UXgjpCux9cqpHvj4UON8gnmf5LK+/gR/rbZFtPWDR9eobJiX2cLEfyJf4RLeneE7uPEAzJn3tbmatBrga/zMdqEWXs+meQt5lOcKxpSZydNRmqub2kHPyu4gzd/c9XC5R7LRAKJKCCHxlSx+lNx9iT4YSScpEDiA7IDihY+xZ+rCnks9mMZBce0Xh8sbgJGG4IoARBCpWfDG435WSekjPJRg67dEZRJJscV6p62NA5UkPw6x8MFCt6A33D8DBdg+OUIZD9GfuCMREr+XoTI7lGfNiDMCOovo6An8LaLxXFMsLJFsuXfzWlGwOez6yhgMnRBd67FIGoTiVhSeHPYm2GO9Bt+dqQ1n0gPU22/Uz9qTzseKE6vYVF7qW2D9vb57xnEMdayMRhTpTjNHDCUJUYsad0FFo7snkCyhIY4pIbnb3bggK16gTwOsMJJkzO3u+XXH7WxLUKTNBnW5P9dHG/cZkBOFOhnFy5oCLcPIcDfL5dJ60PIkHpdkmSEezSrQpjkfwbRcLYPkiJT/9LNJ/nSeOK6viMZJh2Jr0J5nAHuHN5oPDQ9mwziBDqxXfSRT/cWY6lg0k1HVMkyCWO+3nZnKjINU5FnOnxfNMFTjEJdZ/JIROmFnU8fiIYqo4PE1DL1OiRTVv51q/ZpSZnD2OIP+Lv4TQgB1nEt9nYs8Hsedaf2aYk+i/lhwcezIHnw4SOVcMiXMQOg+9LBDl8yMb9oySPvRvdHvOCT18UG9hO8k3AadfxZ6PNInl4Vfq2FNQZLGnmHOBs8eeuEgY4eUpmodKmr0HMhpRkSSKE9ysMo5CVCHV0oL/PWXsORqVsaeI08tQdCu8HRpjYYiP57JOwee0Ug8fHJAf7Z/JhnU67GLP3bPPonYWex7vMW7I4bfCRwSmprZVEBrzN4LFLJpANInRIsELzXQKj8N6phMtMR4cZg+OmvqtfXfaevmwJ0fxf/bkc/lE4rs85EvYVM+X1pDDlvOX1Wy5fJ0D3NExl2/HEwMQHwQHoPGMYYALAlM6qVSYTtaQZ9klg+8+vfYk21xSsIOjQobqbmmYkpO2bppXyMWH0n+/yvUT9dNOh7M3Ski+zunEaYoHi+JEJTQJ0s+wiUSJxmw/US0RhoQs3k9k+hyfRccjV72ClIETm2KinQ/8yBwvk8Y7LWRIxBkUAAaGwpxA+jj+Sr8IXgNoEYOM0KEx/InTHEz6d8ihrXwz52a98+e1fzalXVkZc6G4uO19DiohOUMP+gpKHGlatupKn06AM7eUmVREs/YGuwlaxzymbw8EJt2eEoU+7LmWJPTnE+cT2JmB4tiTWAO0xMDAII0dv12KXh4rvGCN4fnA8VRRJEldsOr5BjwKw3axp45LY09k92zBlFS/ACLSgFoHZbzPdiBpEotl3JgQmwrKTrWJf6QRQKDHvGVY96Wq0OuLRAgenX5P160q1qekVpRsFk2d6kW3CIzmUbGnmSY66j0rUg5aF1YYgAeQGiQJ3YeMSEw/RgeKBu0SEU8SnYAVFr2sEEfmAfRs1KYiduX405KCF0jgZFcZy5UKiwUkK5gT7swNsGYPEIlos5qvKINwpMxk+xuHlJ8lvgu9jjoUr7rdYFjJl4bL7esrVnkUElcDplw5H4FyKcSFYyPdAVTqWpS9DgwoFNSfXKg+XPZWm5fXVxBUDIpguTenQJLEiWP5Rg7QgicCG6Q/anZwTmTKRG5CdDovoUh4XUWxZwUiEl/J405Hi9KCNDWxgGqdoH05gnXLMQVWSovNyakUoanlNZplfmQIA9lawe0hs6wFoFmQG7GoHvTY5EVQvOuKmI5g1B+y2ZoZLjbzOMMpBjn2Qp6V3+q0Ytgkt4H3iHMKoMiNGN2QLgopoaTT0vnVZk/6Q6sVwMSW09dbPssjOJNcc+yJfSWb57PVVtC7zZYR+Pfbebd1272Hrik+r19Jq+iNLw2QBGwwoZl0mi9J2gONrkW3SJ/nPt/Ol70tz7wNigzOrwN1Euylfm+BgHI+eZl06MfNfqZarJZINZWP8xmtgI6gLdcHnmY5goRcNB+w7jFjpTgaS7HSob+OD2MWpWhWxTmQz6f4zDsAwRswLg4lzAnZ5bkVYBG5LJv/IDJdBvYuvh7Hamy0lDye5sIZZHW3+5jYj/wcjMfmEAwfJXocd8x7la72xzyyZhpAAntyTRC8wHNLjOkBb9fbOQF9I2X69lkP9ZhR59t84+Hj1Uai1RZzYnHSmls84WnjpV2/a8NOGPcZr2YOx5xWBvs5fYzpoIBgaYssBh42AKMKBWmW9NqPJEibzZwu1faVcvOR08nZna/m93xAss/OAqElZxKeJvZsNimEUFlTHtFQYxJfCntmMbDUyxVqIE5fow6jscRuYunsJ8qEoXRKZ3d7ZIscOAmclyQdMir4gV8mGtWgGLIH3UzI/Hq8Gw5z/50qpeVFZOfo4JoJbRR4NiNmHQRoxpmEUGDYlQnEajwQQAYUnyaBsXUpSu50fMNLpqRjar2nSD13wyfz7nL1ML/n4M2woRxEEiYsuHrmkn/CncojuZL4A37h5ZU28d2SYnvYfgQPOQUzqrpDlku2ktnAtZHDhHx4z4VQtustvUwnwrc5n0twP46n3ITX3qM+sghzCj4vMFND6EvcnypOkJSyTIoJyBLlflEdx3RPKhef+AQAJ5OFS/wgmSDBvtopVbkNC2Bl0U2SUiH+i3nc0vQHt4CUp7niIRk94HXKYitrTDXus08MwiH7PSkxkeFjPmZkGoXBxs3/fH7CvB0Z/bpjpzaxo0GmEhjERaALyF2tNKX3TfgkC8SKuaqUn3xW787ncmgeMCaA8uwjlZd+HNDdR71JxOewcnaXYs+N7PO/a9/Kmgvxn0I2LLlqToOfqR8CetuDYbEn+Cjb2OSis+KuwAGcb/5nz95GtycF5iP2BE2WjRmFiW7PzKiCGGmx6BejHgAGgel0QEORYOSWh0So4hFTNuHlEvKa/EKFN0GEIRWhMXPj2cuD1DPLn4sV0SXXvAhataDzXOzJCEKrwx3ZkyV2RuY6CiBmg1JL+53AZARxwssyqH3vO/YE1UHfYQ/JWgjjiX8ALqglFx3cOOGyw43P1QuS7p0udKUPBwh79vCcxPdn4vxqQ7zh4mNAhNtiT92ifIaF8a9c+w1/gLqGjIfgLPacZGIR2cTpt51AVKyFo1nWIsjWPloaGArQmS7+fCM1gkS9HhFpuQHaJ4UVHID4PuQnUnlwgP4V+g6ypapoHaCBcNhob5aEAi1xQMGQILbsfyMIUSCBgKJryOQSfIWIz4klhkHRob2yyLOvCzJmOdvvgNiF0GGFBoC/XsRK5zh5DKSPLLrAnAZjYGBD3XG9v/v9mgfSkvRnj6mYRCpJl1bWpcMH83pitbjGvN4y2dkYgTAp2k39FBfK+rkJaEavB6FbSkmgeWkTf9TrgifLTEvuu/5IrP+vPWdiz+120+2+Yk+SIcqbUVLm6gAPAnzaiOxZpmxTyYo9MShJEj5yvtlgT6kYthLhNySj2BMo9I78dEjzXQihBdlpL/ZcVHU9LNFHUYgxJVofEuvFntSY1WZJck9anzTcCeqjK+xJLALjLVZcwMxKlFAFwyLvqSyK2UWHVV0RfzKNcAbQZkd2CFqcqN9MZ0SjfZnitufznWBPJhJjT9obX4+PxJ4sW2Q0OCONMT4COuOlz6XBrhkleO9G2FMKT1ZW0ZWlLZt5Y617d04Z/cQl36zoZ8ihFJvqswIB7siXeAStI5/6CFKcUCHbrShx7oF+J5Mx45rVHaMR1616yfCSHukwam7yCKZm3V5NAKPkHZDefo8/iFXB64CSBaDDnjL+ibpVMi9GvqBqGI1Qv4pSgQNYpB5BngTU9JHWc/YwmShkRc6Nnq+zyGWwO5AI0Esrw9fYiQIBFL8wypQrMoDKzQafRBEhOZzxIr17iHkRtNdWlq6y5vLCgEz54DtYyOG7cMDe36+Z3UwNegEX7FJfVCvjiXfidlr1cBcYURRifCQsQZhYbxMZCtZuTIZDQS/19fG9OTd+/TBpbOU2UqrL1cac+iP2fJhtth/21J//2hOVFz1j2c40jiqDHfpwgK0OoLo4uEWS1niGorxxjz2HeMo5gH+PHzdy6/GgnFfp4+MuWkQsbAreXBdPrDfieL0iPCrriAdUCXYtiDhO6p5iNioXHX2XLGErkcaPExzVRQJvNppkAJZdIsnOR7n2OAx0J1k3NArwL7C9NJ6YHlMa5iuyZyt6MxzlJbDYrmxXFLbnNfZkhLU8+xf6auB95kmYTJASHWYcqehWfDWcTpUb0QHxZpNKY1l/g7H6BvmIbwbcjJba+qHemmMmyde51FtKy7X0N/8D39DS9X6+Bg0AAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_pm2_5_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json index 5b4e7fac62..1c38efef77 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_co2_chart_card", "name": "Indoor simple CO2 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAAAAAAD19fUAAAD9/f36+vpdXV3k5OTy8vLu7u7U1NSKiori4uL///8/pxohISFXsjbj4+OHyHDx8fF0dHQ8PDzHx8fP6cZYWFjn9ONvvVMvLy+f04yenp6CgoLz+vGsrKyQkJDV1dXb79RjuEW33qlmZmZLrChKSkq6urrn9OKTzn6rq6vD5Lir2Jp7wmGyHTrBAAAADXRSTlMAH8cQ8eMsj7mrczuPx27hgQAABNFJREFUeNrsz8kRgCAQADDk8qT/dh078Ak7SQdJAAAAAAAAv5VteeVr9KeOxdXzLmlrI4DW0zVC2FMeIRxRIllkMiKzedmto9WGYRgKw09wEEKyERgbxxfGgb7/881eOja2QQuDoYJ/aA+BXOQjJGRDvLUh3toQb22ItzbEW89DspZzbb1WDi2MlSl+KRLjH3seYqkoZaAk7WtDOEIQ4NUglRg4EiKdc0kiNTSKwAWRnBnxBFoFYj69QFTr+++zkgBwvC9V8Me1LggHs8SVBN0mt4fuBGJ8co+KzzR8XToAcFCsTKFhTpFUQTeh21Q0H5DBcUHYQsPqG0QoAzKGYGWKse6IwfQkiTRsUPUBKZpF9SZZI65yEuA0yTQ3UlwkxmpBgsUYG2LSjkZ5HogPyD22KriSVKQFm9tbCwEoKTJ/vLWOxJIbJKXb/FMW9QWRWhn3zkBkDPC1TCsF3iGiRIOXDkALRMXJw/5rLNeK4GfCP8/8e/sT5YXbEG9tiLc2xFsb4q0N8daGeGtD/iE5erDCeCLXkJxoqBEdeJxnSCXjOdwp42GOIRwGrnoSPMox5I09s1tSFAbC6BN05wcyARQQAXFFnfd/u22TRmfXZYMFVXLhuUkzmYvvkE475ezEflCa0FwrFjkYGEgSCLFiERHDQC4UBFiviPsyk4nCvbU2EVUcDjtXxRt4kBgIsDKR/WZzNP71mwM8yPl4xlmZiDEKoBBVpGKOPrW33iwSVUaYWD0m7hmIQhA5wCu99V4RZURSxcKov+J+5XkEzNTeel2kTGEpfP+oTcI3RJxHj86wrdrtnpRCIqdGaiCsdPiHq0REvZDLJnZLJSLvZaL/jAGz26uvRBBmB8w0EY2YuezoyXzdkYosYT7+H8SEEoVfYhhHHQWxyZU6G8HXappIiyyyxSx1UC3xu4RTh1tYgJxPAgpR0Nvm7hllf++qShiqJoqUEhsvovEbmAtiTUuPcrgvJZTWlkOdWgs30ntd1na0D5MjMIUgjHplSuRTRXrU2otkj/e/xY4Pq+RnuUVEeXW+Wt/q2h1cn7n60tGiy5ErUjyS/eK3PZGomCpyQpmySEMJs6xNXVjJB5OyCGJzi2xpj+uOtiQtGdWSFqq3o1dkLmERiS2wSIcOmd5F7A+RK0l3mDmR2m31ANL9do+uKRts4AkeVgHmi2xdNG6trq9ripz9U4SXctjLaCER7X/N8jE+wVckwGyREyVlkYGewz6L8AygPf7RNJFIFBBgvgh1Q9u2GcrWAsNhn0U48bDXBkUCf3UsKXLCOxocnOp5arHI6yey38QQYL5IqR0SpW7h6lO3FNYl5mg/RfQfd6QJiLBH6GNjvgjDd4Tn0ImsyLDDb1drGES27tlPrYvz7SeInAMei4twWtl0PtTV1W648hY9I48GxIZqmYZFzuIYQYDlRaCVt4z2UWfOg09EInYXn7fnvZBIJZKFPVgkSF2nP+qSK74jbs/nLW0KYSoRQ5DlRMKwiMOLTKKa9QGyIpE8hxmsSGQ+y4ucrIWB2tbwPlb2vdZH5COyQj4ia+MjsjY+ImvjI/K7nTuoARgEAiB4hQTaEvzbxQJPuMw4WAN7GiGnKfHOFEr0mcIfLccE6Yk6vvu3VL3VPKMwAAAAAACAPQv8h/dr54xixAAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_simple_co2_chart_card.png", "description": "Displays historical indoor CO2 level values as a simplified chart. Optionally may display the corresponding latest indoor CO2 level value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json index 97e51b9c66..cf001b50b3 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_co2_chart_card_with_background", "name": "Indoor simple CO2 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_co2_chart_card_with_background.png", "description": "Displays historical indoor CO2 level values as a simplified chart with background. Optionally may display the corresponding latest indoor CO2 level value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_co2_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json index 86d70e2a9c..619e306658 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_humidity_chart_card", "name": "Indoor simple humidity chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAflBMVEUAAADg4ODf39/g4ODg4OD////g4OAhISE/pxrj4+PHx8fx8fE8PDyQkJCsrKwvLy+HyHBYWFhXsjbn9ON0dHSrq6uenp633qnV1dWCgoJmZma6urpKSkrz+vHn9OJ7wmFLrChvvVOf04yf043b79TP6caTzn5juEXD5Lir2JpwKyMUAAAABXRSTlMA7yC/r1EOHTEAAAR2SURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh/79bZiKQxEYfhqsajKiYCGmOz3f87ZOgxK202Ghg6Rzk/Eou4+yIVOyGhNyGhNyGhNyGj9AsjDflO+hMjL4ZK6fecEt6QcZKWYktG5NkQseZU4AlAqbuUi/yBRkSJ61oa8+C59AvEC4837eC/GV0C8wXtYKcaLluD3xf406gPZeKR3CD2EKrTR2ldkhFIQQwwUoXeW0TDBU9CoC0RoUwiF8QI5OiEJlRlb2CHKinpA4CwQ435adYFsXBBzJvMJUdV0gfhdAMf95QnoCUlBuKJRH0ghbc6BrLer9TnEXCEmFBo06gNZGHJeKqk3SFiQPkIMHdwJQWRBsy4Qpa1hy7S4QRIZP0Lg9qX8XRLQTjerDUHh0Yp7Rr5YnlMN6FMbgo2krfhWm93QrBcEEME3c87g/5tfvxMydhMyWhMyWhMyWhMyWhPyIxnvFpfy0yGyBNKStP7RkBTCpgaQ1XIxz4U4Rjnnl3kqRLngbOXyVMgfdu1uR1UYCsPw0Ze1SgulLVB1i4CoM3P/N7gdQRj/cWe2wYTnxMhR3yxao6iUPJ1P8J4hEaX4SSrzniFK4VRK0TuGdAPpGSXfIUT+iQJ5ZyBAQOH4Q4Shb4lAI6MUF4yWowkRWZKEAc7NtA5nIkhIzdqOJXBtJCMJkQsirYiUOMvT7RWhaJFFmSEjcUWixf8McdscgwilQwnIVOkZflJdmQwVEZkUVwltfiNkyxxjb82NGN9WFTN/YQilZ12RQC+kFD0pJG7JKDkJE/JfQmy79t1JSMy7reUc2LrhJ6rQc3QCmmOokFTQ9kZGE5FKgmdD1se1Fxy7b3mT9wF49oC1uG+p0Jn3IxFKSQz2R9FyHkVZokkfXhWp6KmQFduyCal4jU4XsmaHu2aUoiP0UqKxIIFnpIb21Dw4vlf7N2J4iGVvm5CSPXpV6bDjzxXHuC85WXDaHl2BoQxD3NkbwYIoEQND1vyBNoQ5Lmz1lePAs/1gi8o63CUoubhHFsmSdPo7XyWXw0JWJbs2ZMUNeywpijr37B9u9RlOiNQoZUKJXyHlsJCCaxxDClu7Tc28/tFpYzyglniBRyGeLZqQTsUlOjG7TVEVDjcMea77ipDVPsF7X3LlN30bu/6jsl5xWdjS3Tt7H3hFiOfOGrnLz0OsxY432PION4Tj+AvHJj4o2cafiNk2dxP3J5pDxcDtIzikOV6pD7nU7ZHtYZtvynbV7fpjzrG5MZHA0Kies7chiJlLy2zdMWTnAM/FZ8Eel+ScdIbHXh+C2jJz5XCiZuYal0JNocRL9SEPOZfjXH7lGgJFRuBpY/s1XhhSAQYacUimdYjBRhyySCSGG3HIU6aQKeRdTCFjM4WMzRQyNlPI2Ewhf9u5jwIAQBgIgqHlg3+/GEAAZcbBCbg9jSGnySjjCRntsi/r3uzvRJCi9rxdaTUAAAAAAAB+swByyaNbfaMtTAAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_simple_humidity_chart_card.png", "description": "Displays historical indoor humidity values as a simplified chart. Optionally may display the corresponding latest indoor humidity value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json index 0d597209ea..925f39e98e 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_humidity_chart_card_with_background", "name": "Indoor simple humidity chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_humidity_chart_card_with_background.png", "description": "Displays historical indoor humidity values as a simplified chart with background. Optionally may display the corresponding latest indoor humidity value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_humidity_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json index b4208754ab..af607b8be8 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_illuminance_chart_card", "name": "Indoor simple illuminance chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAApVBMVEUAAADg4ODf39/g4ODg4OD////g4ODzaQAhISHj4+NYWFg8PDx0dHSsrKzHx8eQkJDx8fH5tID+7N/0fCD3oWAvLy/+9u+6urr7x5+CgoJKSkrw8PDV1dX0chBlZWX2jkD2j0AWFhb3l0/82r+enp6dnZ3948/0cxChoaH6vZAICAj4q3AlJSX3oV9DQ0Pf39/Q0ND4qm/1hTD7z6+goKCSkpJCQkJ25ZykAAAABXRSTlMA7yC/r1EOHTEAAASuSURBVHja7M85AcAgEAAwjm9mx7/PVgYciYMUAAAAAACA59QW83a9/o/Y43oraulrJLBbmSOFyBKZIocROc3Hbt2stg4DYRhefWFGo7+NMLKMwZCCMSHt4pxz/5d2lLgUipUsHbnVi2E0ePVgG9wgtdUgtdUgtdUgtfULILHDkSpDEoDrn3WuDQ4gA6WxbTzj9ZUh17jevBh8ZugJpIZnV4acXIqX65withBrgc7my5oB1nDehnzdNuQ9o9iw6TzgjWHc1iJ0FwhwmYimvyhAtMJtqNALqV6Ch7h1s3BBi4IlUUEBEhSd0VEv4rFpH8g8UW5KTyB5BA2m7g4Z4ekMZ9ER20x6IxhiaIFoeDLYtANkXjq9Qj7G5RkkC5jMHaIBchi0yAoxhCjIeeqVIodNO0DSe3J3yJLS+xbSP4aI9vYbxLOnaK1lFNrj1UqX7Jhi6RuJgVnKEJ8t7guShx8VVM/evQyC00TTiBKEhUJfhmQFKbKfkNsmDBYi9ToIwrI4lGOPR3kubFxk7AU5zTOO1EPIxz+FI/UL/n4PVoPUVoPUVoPUVoPUVoPUVpUQZv8DIFYFIhLNx4Z4RSEa8zYSuSNDWMj59TSSOzBE0/B1jtQdFvKfHbPrVRQGwvDV5G2hfLVSkYga/MrJybnY3f//3xapdOthGzHmEEh4EuOMV/M4dKYasZOTBXk6V5EgJIeYnWYqwln0zWumIoJxemxJNBsRvo5TO3pzQY8EwUxE4oA1dLsvYdve4Y+nJ7KN4/6QCs9xLFjIzYMk6DthMDGRNMkZY7ngj2e7TO9bUESngJWc+qrrHxLRl6O2yYdSAz1KFkTx2nz3ll2XcZE3lklKfcqcvytyBFbUkMFgkmsT1ZIMGTB0HEXm8cpLskTuTOLcd2cJ+Zsi6l77ZydiYnVoXvo1kdhem9Zs7ZQ48PYltm1XT0HI8mDDXxTJuibUWMkbmkgCGdEFyF4TEbkNy8CzNLxwwZr6GwlWimQTmCE3XERCVUbkgMyeCUC3n+wdkVaRdPvmIRQ2PLPECYbBo10QiDM3SRIalYEiCoUyIhUKulPjt6m/ckQOqHQbSvKwdreBaMtIN6yk1/Gp+EWypuS7CLCq1f7DaUUBaKcjFTKSwC/ysQvJIWEsDxnbpERvqJTDROQV8i4iYVDaFZGdiGmQ/ILS/qugeMyjjTin9BZpOkykRkadSK0yecmAzCeiFa5AQT4itqUfxS9SQJERsRxQ+UToaAacB89lfAwR2SgURVFhX1z+uUE6Io/jtwKKgT8yLGOIFLBkpKW2Iiuo3tQyb6g0efCs5jFELquWCmr1pyv+C7B7pH7YI+3EqvDpOZVilIb494g9I0ezza+3RAOf7SeFK7KHukVH+g/b0rv3xhUxvbgqQMm2chOTI1K0Xgp76pOwMCYPo4tQpgDspY2rlXZEpEJtGvfRb8eTtTeKiIuUuhc/JR3Wjsn/Gx+HT9oxE5Hn7ZiJyO5pO2Yi8oxFZBGZC4vI1FhEpsYiMjUWkamxiPxt584JAIZhAAbazjN3L3+epZE6dwxEQKcRcpoduVrYMRqsg9Z6ZlQ2mAe9WRE199/lqAAAAAAAALjNB+/brAXegFpbAAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_simple_illuminance_chart_card.png", "description": "Displays historical indoor illuminance values as a simplified chart. Optionally may display the corresponding latest indoor illuminance value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json index f47216fe1e..6b982539cb 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_illuminance_chart_card_with_background", "name": "Indoor simple illuminance chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_illuminance_chart_card_with_background.png", "description": "Displays historical indoor illuminance values as a simplified chart with background. Optionally may display the corresponding latest indoor illuminance value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_illuminance_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card.json index c5848dfabe..b1754d229c 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_pm10_chart_card", "name": "Indoor simple PM10 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAilBMVEUAAADf39/g4ODf39/f39/g4OD////k5OT/pgDg4OAhISH/9N9YWFj/sSD/6b//3Z+QkJD/vEB0dHT/0oDy8vL/qxD/+u8vLy//x2A9PT3Hx8fV1dWrq6s8PDyCgoL/2JCsrKyenp7/zXD/78+6urqdnZ1mZmb/wlBKSkr/tzD/x1//+e//46/29vaFHg9VAAAABnRSTlMAIL9AEN/GQiaNAAAEpUlEQVR42uzPwQ2AIBAAsBMQc3/WYP/1TJzAJ5B2gwYAAAAAAMB/7dpc+xq15LO5vGvElbNvb2SNMvoBZonsR0iRxYisRuRlvw5WJISBKIruXsGjFqEoCNEoCirz/184tt0wNrSzTZzJhUC2B0Koqq0Gqa0Gqa0Gqa0Gqa1/AskZrxYzG3tgsh57Zg6gmwF4UBMU71dIjj1eBYawcYFRHwJSEOJxt2HaUvkt8xLifnYgEIAqLEUHLD4gnSrgzBB2KNo1xGWlHo4zZFOYxhmII+UJeyI4oWDXkF6ZJFBxhoRgnGEaFNPQ3QOykofkDaJqGTB1dmrTPSAeD8n6BsGRKdQoZ8gC30/BriFYuZf8M2Sh4gcC1T6w/P/7GQLjnpxpCUfjBv/KWJIAsA2ADIwZxbuAIJCGO3UFgeTyz6XNWneuQWqrQWqrQWqrQWqrQWqrQWqrdoj7X4B4iGQa5e4QSdzWdWOSe0MkDYegH5LfGvLNntk2JwoDAfg+LXsJCQRM8A2taItv///33SYxp3biFTrDFWd8ZkrCJu3sI7vGqRuWgGPONk8tsk/DLE2fWSS5PoecTZ5Y5I0t6Bpq6/lEJotL/h/1NThLn05kaU8Op1IVADe19WQiC7bfLesqsbnPAW5qa/Qik7d8k0AgrScAST37SFkBN8zSsYssKkbk4EnY0g3Ffm9DkdrqKZIJTwMebqdf0woTiUqFWnGIklT1nPIOlVOwBKLM2epbIiV6puARdvolHA/RqG6OqCDKymeeVl7L11N8Y243rCpWFUl3kRaVtPDg1UlkjVkkerJ/BcU/T+93NvdDAo9NqnRPFnlRs7yziMLy7jUV+oGI2crrjcCLOJdbILbSeJVS4Tre6Sz3Yz0jhV1VwGPmRfqRT1wHsTTpKHLA9f2dCCIZIhDlZdCIgkLORrr6QaS0KcozTUPjvJQQJcTYhffYRc1mFdsn0In3arbrJkLZNKrNQsUIiIvQVSuBF5GjqywKuZigJY0UMtzY18LE6+X6vVJRLKErSb3vJHJCz8G4dyzkcRGOqIwV8CLCJUsKPtbSBk1XiQcpNT5qke/STeSAzVke0XXKka5xEZrbXpBeRPot7pfCUmurrUFEvX7QIoOKEMa3vLYpCfNApKT1IGKFz3cinIapaxt+PpsHp8N8aJGQNOcCG2lLo5X8s8gUxVXkRDdRkUC8Rf6bCP0Eys8ize0TyXDaW2SWDiwyRXHJ1pyVQ6NWWZCL9ohC2VckZ8uBRc5ozxEuQhr3PdIAGGFFTtptaK0IJ/eeIvn3W73HyY72KSCPifgldCcMCjeXFC97iASPwUVORySEhJiIQNRtaBWaN1bkgLyPSPAYvtmNlByucG7+itCSMZyHT1XmjLjlqO52unU/xCnIY3iROEHkRm8NRIsCttkWuhI8RiRyQFGWyhZTT1bkMSYRLtB//OgtsoGfFuFZBjfI9TozMAZ+/xrVv4NeIi+R0fESGRsvkbHxEhkbL5Gx8aedO7gBEIaBIGhsEcl/2qD/9mgBiQdJNNPBFXBryGwMmU1HbpAOGuPKqP7/1vnZ3UdEnetnqbJ2CoUBAAAAAAC88gDG/flsHc1jFAAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_simple_pm10_chart_card.png", "description": "Displays historical indoor fine and coarse particulate matter (PM10) values as a simplified chart. Optionally may display the corresponding latest indoor PM10 value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card_with_background.json index e51c84156e..443a92732e 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_pm10_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_pm10_chart_card_with_background", "name": "Indoor simple PM10 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_pm10_chart_card_with_background.png", "description": "Displays historical indoor fine and coarse particulate matter (PM10) values as a simplified chart with background. Optionally may display the corresponding latest indoor PM10 value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 200) {\\n\\tvalue = 200;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":150,\"color\":\"#F89E0D\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_pm10_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card.json index 97312fcefa..6f33c3e945 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_pm2_5_chart_card", "name": "Indoor simple PM2.5 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAflBMVEUAAADf39/g4ODf39/f39/g4OD////k5OSAwyzg4OAhISHv9+WQy0Z0dHSQkJA8PDzP6a/f8MpYWFjy8vLA4ZWv2Xug0mD3+/OIxzkvLy+enp6srKzHx8fV1dWCgoJKSkrn9NjH5aO6urq43Yio1m5mZmaYzlPX7L25ubmQyka17GyFAAAABnRSTlMAIL9AEN/GQiaNAAAEqElEQVR42uzPuQ2AMBAAsMtD0NUp2H9TxAaUSWRv4AAAAAAAAPivl831+LSa9+byahEln7G9mS3qHAeYNXIcIUUWI7IakZfduletGIbBMLx9gg9kgTTZzg8EAr3/K2ycdjgH2iFLcFq/YDAIDc+m3hqQ3hqQ3hqQ3hqQ3vonkFrx3aaqywxUnXGkGpDFVXCW2hTXuhNS84zvElPauUHpACZSYGtdc6CVvV9IxKsDiQDcoZYD0EzZOKO9Fidc7SZISKE3xxtkd6jnAuSFgqPKwJFQNQUudQtkdpokOl4hKSkL1JOj2nRCxBJa87qU7LjWHZBCnpI3iLtWQD04HT9Kc+jrTuBSd0Ain5LyBsGZOlwpDRLriq/mDag9QlDYJPEz5IOOBlnzNk2CMmFiETdc6h4IlEfySjOcLTtirfgwEWsVWAKS0QUXuwWCRCqe1G8QSBU8qX9yaz2oAemtAemtAemtAemtAemtAemt3iERfwESKZO2yNMhYtxL2WnybIjYl2A2i0dDPtk3tx1HYRiAvhkrDpdQIKH0AtNO2f3/H1yPgcxFYaesxA6Veh5Ca6LKR7FDWql7FYFwUPuHFjnnMJLnjywSva9DonYPLNKoI4CvrccT2R3H/F9T8KT5w4k0tVKpqNQxML62HkzkqM6/mrSO3nI/AONra/MiuybZRzCRpzt5gLzmKgYI1NZyEbLwPzjWikn8TtXIJT6fJRSorWUitnCIuiRvpfUFvueqQ/amQlcRBInq9MB5T5UTqwiCHNTpX0RIswar3Ka8+H0J30J4C0bdpcQKgpyGzPN6XJAYZjjJqkWnWtVxdLdIic4AFIgdCAXeJdJhFlpdQwD4+69P7706+EPJrEmdn9kiiVOV3CvisPQXhlC7GRHbGvBoJBDItMC0xo6FWmEX7vQxp52cD1/qGOY5xPlrspMOUnl0l4gtSzMkNjTGDTs9iWSI4xoBI63EIZlupH4QOW2OUsb3hg+gSusCQrxMe+wxVWmtzhHcxb5OXxZsv4SYDRWjISQio6s0jiKlTOeQxDTfcsghSxbghjZcL77rmzhuFpzwzwtEStRj51NIREwry/NGES3JssIQuwKQ49HgzRiHMy2y+nd2ybUffAoIicjrVkpKRMwwBXm6v3XFCuCCiK6baZH1RTrOaMhc27AIDw68CAv3n0RIYhWP1Pd25ulwWF2kHz2IO94YwzVi6KtIib/fRSxqCIp4gi2ytkg77bcZeoqvIpePK5JhuVgkzdcWIT1l0FeCQ1dlowgFe6RCs1QkUc3KIqSlMTyfe+QCYDUij07yvL6JEGpYKJKoBFYWuSE6LbQBEeQF4nHYELS8NhwvlomIx9oiGidMQESz5tW3CroLT2N3WiQiHquLkMf6iPUi1hhriaZTle0RW8Lq00y57y8BYvZYXSSMFwEPdSA9oqHNWliAeGxI5Ia6KCoppmWc2GNLIqTRHz+Wiezhp0Uoy+ADpuuybfxD9sd/RXmKPEU2zlNkazxFtsZTZGs8RbbGn3bumAYAEAaAYKBhqAL8OwUJjKW5c/AGXkg1QqrJPsudyAYlO8fdUq3/t1QzOo3CAAAAAAAAnhxh9Pec6lVI3gAAAABJRU5ErkJggg==", + "image": "/api/images/system/indoor_simple_pm2_5_chart_card.png", "description": "Displays historical indoor fine particulate matter (PM2.5) values as a simplified chart. Optionally may display the corresponding latest indoor PM2.5 value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card_with_background.json index 5be8e6c4aa..d0043f6043 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_pm2_5_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_pm2_5_chart_card_with_background", "name": "Indoor simple PM2.5 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_pm2_5_chart_card_with_background.png", "description": "Displays historical indoor fine particulate matter (PM2.5) values as a simplified chart with background. Optionally may display the corresponding latest indoor PM2.5 value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 150) {\\n\\tvalue = 150;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":35,\"color\":\"#7CC322\"},{\"from\":35,\"to\":75,\"color\":\"#F89E0D\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_pm2_5_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:broom\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json index 890db4f9db..225624bcb1 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_temperature_chart_card", "name": "Indoor simple temperature chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAh1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHHx8fj4+Px8fGQkJA9PT10dHSsrKxYWFgvLy8+Ys7I0vE8PDyRpePk6fjV1dVaedW6urqsvOqenp51j9yCgoLy9PtKSkqrq6tmZmafsec/Ys4wV8tLS0uDmt9ohNhMbtLW3vQxV8rW3fWDm+D/9RHFAAAABXRSTlMA7yC/r1EOHTEAAASnSURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh979rIiNwxEYXh14FSVrmAwRhi3F/P+rxi5e5huj8cQCHHUQf9GRWn1LQwGdUhrdUhrdUhrdUhrdUhrdUhrnUJ0jninTiEpDC8Sc/cmNNspxN8W9wIJYWEIN/x24hVXdg6ZksNrjndRnBQQlah1BEy2o1YXgI4isFhHK5zMBFCByTgBEgVnXQ/RvAzeQF+PJTFB6BMDsObEgpC5qk8rZVy4jJGA84jMC1xOw4xn10HC8gMkJSA70GHihEIIRzjaRIXzCINidMBHgFDxBVEob/fVs4sglslwhHifUg5ghFAQN4hCKS6n5ImQAJTV528QQJjSBwW7roAE1uQIWUVEv0HGCqHU7pBIsfQDJIqI4dlFEG6FA2T2irKHRITBhAVS7hCXVX34vB9tfUAszzCHXZdAMmvzAWIrOewhnrlst8wPiA7MS4INjLaNDwimgfwXH3shmRXHbL8Uqtpjb/hM7et4Lvdz7SIIbmFWnLSHoIk2yJ+krpFXif//7/fd6pDW6pDW6pDW6pDW6pDW6pC/lpXV+xTk3SG/2LG35VRhKADDV2uyEkhIEMJBoNbiqXu///PtoBjKFqhDvJAZvpk62OFi/SWhylYhF0KaV7boEIGSQmMX4W7BIT760GIfmCw2JDEdlhfx14RsYgDQcSeHm/yU5tCq9qc0PeUaXkJG8APFrXtIFX+RsKkhnRSuYmL8hat9Ta7C/WsuyK7fpTy3kGqfEqMJuXy1zMQFNDQJK30ml3tTfb6e/IoSEfUHp+i7hZjJ2pBOQYiGxqaZOSc5mNcmoDLhJui7ghmokNI+dmIPc0vlOYakcd4P0XZlXcipydoAQEhIbNNjmMZo8vAriUpKbOdnPGJg2TSXkI02P/2QPSG5zQy/yLndPxquTPYZpvgKEXn/IZjH1baZVuAhY2yrlC21SkzcNvtDSNi9q4q6Pla3uBRudFEUMM47oAxoJpCz3pQU7v/8DDkwsxdx9tKQ3F6Q/rY5wlNEeztK1AGs4Me6oUEwPHCifpYw55DQLiJremOM3H0yDOxQPIInJBEKCgYtOSJykbmEmDcFzA8R3ciSe3BzUAyewYRC5Fyhkn7gf0bIA292SEHIZX4IQwF39H5c4g6e5GWlEOV9/J1ELti8ED18TyqeDAmQgeUjD2iylejDXFQglrNCCrvVe47dgqu01jCGy94YH2gcMnDAxHZOiK7tYU9uTunO/oYR2f+LiNGMgas5Ibn9y/dVNSEbe81OMOIzAnfuIfbeO7y2Qt1uIpJPfMdw5R5iL8igyiSGcZ4fa0JSGMZ45IGDF4akdgE90CFppRUMolwxcOUeYg/G6Di8ZuxhkFdilMCEd3qupTd/qvGPvL4Hw94vZBTlKBmMWkoIkxhRmLCQkK1SPkxaSMin8GDaQkJ+s4asIUuxhrybNeTdrCHvZg15N2vIv3bu3AiAEAaCoHhOzuWfL0HgCOjOYP2tqcaQajLad4WMUeTcvuef90SQos88XRs9AAAAAAAAXrMA+iCoTuC9Gd4AAAAASUVORK5CYII=", + "image": "/api/images/system/indoor_simple_temperature_chart_card.png", "description": "Displays historical indoor temperature values as a simplified chart. Optionally may display the corresponding latest indoor temperature value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json index b9be76ffda..7a8cff7e70 100644 --- a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_simple_temperature_chart_card_with_background", "name": "Indoor simple temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_simple_temperature_chart_card_with_background.png", "description": "Displays historical indoor temperature values as a simplified chart with background. Optionally may display the corresponding latest indoor temperature value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEULDw/19PYOExKvqq8IDAuyrbPy8fO5s7kXGhe1sLbT1uAQFxfO0dysp6zQ09+/usCzsrocHhoTFRO8t723t8HEvMDu7/Pt7e/k5eqtq7TDuruwr7fJv8LAtrnLwsbQw8DKztpxZmG0tL67u8TSxsS3tb3e3+TAvsRuYVxua2zh4ui0qaQUHR7p6ezWzc08PDmKeWrp7PGnoKOZlJe5rqq1qqmppKg4OTW8srS2rK6fjn5bV1THyte5r7HY4OuNgn5+cWscIyTMu7SvpqnUysmEenfNzNOTh4B0ambFwMbIt68qLi6nnJVBQT7Bwsx3bmuWioWKfXmUgm6kl5VpZmVFRUKuo56NfW9kYF96YE/R0Na/tbOBbFvd5e7Es6gnKCWRgXW9sq6vpaJgW1mPjI6ZhXNVU1FpWlHPxsqHdmXOwLqbinp0Xk7Z0NHExtGakI7HxMqlqLKjlo+EgYTKyM9oXlnl6e/Y1917bWaGcF+/raFiVk8zNDLb3OJPT0xKSkejkoHU1NsyOj2ljnqmjG88QkWbjoapnZufmZuWjIupmYt2cXKbgmd4aWGUkJSllYZ7fYGihmqAZVMkIx6elJCjnJ6JiIyOh4Z6d3hmU0WgnqRMUFZhTT+2pZuBdnIrNDaEdm6Te2lCRku/qpqqoZnO2OeNdGSXnqihi3ZbUUkxLCWfkYnDuLaBho6ae2M4NCzT3Oq8vcm1nIjKvbmko6uamJ+Vh3lYRjmunZCOeV+rtMCmrrmdpK1wdHpwWEitkXKRl5+6o5FPV153ZVe/xdS5wM+vloDIsKCUdF3h6fFkcntgaXHDy9qKj5jI0+Pa09WyoJSyusggKzCNb1hbYGZSSkKsjn1YXF7V2uRMQDO+zuO3l3dES1PDooFPYW1qeYZ7iqEuQlBwgJK5yN3YuZ3NrIw/VWSWpLrDpI9GMymAkq1Xa34XRmOoutPgw7Cww91bd5wNIjJqh6zf2NmersmDmrwYM0dIa5FfakEwWH50d1J8TjWUWTcaMh2hZkWzeEp8e7rRAABOOklEQVR42oSX7WtSURzHL95iDpG0hxe2HrAaTZQEH2cy7M7E2N3QNTPBmLktoyfGksEqcbGwVlII23JlzbIoVougFfWiQdS7IopY+Cboda/7B/r+zvFmVtTHc849M2N+P+d37rkTvN7B2GC2x52QVq9gCAI1BfYDuqDSqDDHRaNWqzUavCNJCT0mv6NqxKJM1JlqetLv9w90T09f9PkCgZCxbfTMmfkzjRz+yeho2xvi8oEDl9+0tfkZk71zF0W/x+P0O10ev0f0++1+oGW4hlwYRZcorlyp9JXUOSK9AZpW5jMUaUUjQiAfiQ0SsZg3a81MrRZyb7++zWUk5kClQQimQ0UocbkkNqp4+hV/uljNRlmjUqv1U3LGbe3Z93l09HBj+MNsINoICk6cunfv9t5jO5/c6e/sPLpt2+7dndNOp+jxiK6LPrtfZOltWi2TwyTUXIhgJY0NBn6ZNDc3rxS1rn0CX+ZfTQg2v8s/Yy/OmmKDKBDgHR/vkSVkgwLmDpd/IPyBistIyLLb3bNv/vPP5VYm1Kgry4/4p04duXf70LlLL26e7u/ctm3Hjg8fvn//vmPb5s2LC0mz088RtcCvxQWINkwQ2i5yC3yg92wiQHKA6OL1Z/ahdAEBS+M91owsobxZrN9MQMWAzQUbzK+9GMjHvABGUlkI4XvmvyoaffDyWT0/f2YeUBE0BB9tO3z88PE3b9ja793Jwu/eceL7iQ/fd5zYvW1x8/qFeHt7RwfaSo9d9IgMLaCBZeUNueliJwUumws/YqS37FcK+bwplqqw4A3fDuFZV2hYTptNUQFEEb965opvNhTDjgHe8X2ZhL5u7zeT1LmLv6kASvG/IRD99qFDZ19Q1Xd2offfTC4uJp3RAb+no6OjudnW1AAVczMVNr3qQAbDxqvhyrOhq+m8qZrNjucyCTV+dULJKTRSuz80ilHlvrxeJt4xFS4uQwsVwIMd1dQu2viuISWDqXFrRlLjf6LXESTlLov8q9V6/VQiIWcy2GDuhF49fwYGTt1G9I83+zuPdnae7uq6eel8cL/xzI35bw8ePJiamtLrM/vyQ+JKLe3hpqbWNU1rwCq8iJoNRQOKgJWEy34V9R7xprCRE5JaVpaHbmgCIdVS/1yaX5bJkpjIgUqplJvATHbLlUou4+7pGc8KKCqbzQ4ZNmxC5gIm8M3wNZrwbbQzV9Js0+Am4sVBI9dkSKT+E86FKaQHbjR0Iuv1plLe1K2PC4s3zXdf7Ay8uXbm+bfHjx8kplh6vVqv1vyKVDENGXS6tYzWtWvJQmurTlfzoHVdf3YlbYpUq9mcLElqjcBYLU/pE7gZf7bW1hf8VKHiU40ky+WJXKlUyWFcfl3KgYlMGfew8SzdBnyzg3Nzc4FAr6+3V2AH0Qw7gji1G20TGuDLBCNDabqxxujk3WeVJYtGhQySJLuB4kFRARckb7StzfvZKuvVq9V1LPw0bsSiseSq6ZEtQAdadSNIXzAtV7F22O687PT6hIxjCHfiee9omxG0obUZR3/dm4JFKueQv5yrVCql16XKRLlstSJ4ajBmjJhCLLYvGA6Hg8Fg767JSArv4K2gzyfw2kNXVMAEVPCKrQMfq7Y3u55dLeRjVQKiywmNoHfXyTxWVMADdRADqXG3DAOE4uAPFYxyaenda3x52vEqjVpKwLB132d4RfQ9e1h0hGetzuiXL1+wU/CYQwrKPT3ZbLZajUUioXw9OEUP04QN3IQPKmIpZqIYDBYFkdUguu2nCi6D0aT4QMWuaSVwbXlqf0RLtrxcrVbc+LrobMgwxuGBiwAxhWUskKSpg6qqI9OPeioxKl3U7qhxD3txKDpGBePlsbGxy+DAqVu9B3uNqVQKB0aIkvciOQPhACIXYaAYLoY5F9FqYB4M2CJe7A1feHh4+qTATmAtuqv2QEYD56cLZkD39LoOF1QwQCWvbbn+7FGhCgMKbIqqoNvKIK8JpiLCMZlMS8ulXPmTxWJBdNYkK+5X2VTMuCe0BxiRvg7lp8RG49jYrl1jl8du7Q+ePNkddfZ3JZNdi0c3d3YlHdGHvsBcaMgUCcADlUAQGkAYIPAwOoZhDGCa6Ovr7rtwIXohejPa7TF5oa0vGjWbBwQKjt4s8iuBaTP2a2sdGGg16AwtUAAH1Nhk69atr+o1QT3DVfxFxDuI4Iy03F8qyRpGBoGx+gwjgqPtQXgs+61b+w8Gz598YU72OxyO/qMbFhYWF/pPD/Q9PHnyPBHGcgMk6e3ND8UiJKLI1txH6TmUnLhARAcGzGaz0+lwoBGnox2mwWLRd2HAiX8QEN1AKrTNOkYTlv/qMwNL37q2FR2ztQCDDpdGtr6yuq1oeKFxsshPJrgIUmEiuInZQuGp4en9V4/K5YmJiUoJJgCy7z8YPn++L2p2xOPxxQ2LXY74QpfD3N3X/TCMf2CrG6YXhUWnkRqWH1kC9tgeHzGMzxV908PD9snJvr7JGRIABQQkwAKJSAIHGkqqnVQUL5gJQbxuaGnBUTbCKl9Lxa9racGdHBNOKzrHwPNjRuPISyRa6uEm+MiUpGIE96CIyJtQFdxE4T3j1TNw3R7uTi6sj3dt2r15cb3D6Rno7pueRp5iYBZfEQI4w3/APgWKVBSBuQB2GMA2o+KamZycIfDINGCzDeBPQL/Z7CcVyY6OJIi305BMmlflvcViGlUBR8LT61qDATZGdLoWaoDroBeHTwwj998XlpbeLr/GIV2WLDi40CSoUMqCrg0qYEJRkV8iCsRTUeTPysRMjUkbOiIAux0qZvNQMTxdnLbb7YhNwbH6IIDngF27QrsoMzUCDvgV0HRyxgYNvz5GO4HHg4d5jyPZ3h6Pt8cxJONQMZimqnA4OjwCnjyW0u9RtJRWgaSM3H/1/lFhCc8lXyo8uSD//me4xpKx4qS3crgUqIgoW6NuYpYogHTaoGvGbxJF2HgKIVBSBwnIiX1o1oTP4w/5uXwoROcowfPya4gzNhbaNRcAt+Zwq7g4fbL7QrT7PFnAM3RNgt/j9EAD0d6O1r5x40KcWEg61+XZBqEPOH+QZS6vTQRxHK9KlaihAZPKJk2tzxgUxV0NEY0P1BoJtopGxOJBXaqnaoyPk4qCmCIsOZgHW1DopRd7KN1cjIXQm4oXqejNf8Xv9zcziY/Pzsy2Cm3mM7/fvNonbOhbXXhBKUtfsGGYffHtJP7F7N4IRGzANm71hpMv1N5lZXl55cvnanXlPNmvY0MyZdJ4UI0xIRrK8/PzVnQnwoxzlKXOWZAS7pIBds1rXpYOqy6fkFY6zXXi7IXpN5cQ1BPoEYY2PrTl/ZaJbDy+GE9mD9+8cjMDeIQFONeTnJiYYDxMwAShivdQcbXRcF/toYu+Pu7iiljTzqOvvJ5QFzUceny7t1B4wY6v/FheXn4xs/xjhZuJL2kkfbne8DyvKSqKqN24OKIs7O4GxThVUMS8kNgexfQTYTZymoIRAQuXJccu+nCql/NvG8cbdy/Zp3I3Dh/KJeOLi0Nkx+k7Q7EJju4p+2YG0wBmg1dvMs1yxanZco9BDxSsUCpyEg5QAQVJ4T2AiubVhuvahw7nDh3u09M7PvQGdr1YKMzO/EBSzKx8WQLodfpy+nWzDDLlxvS0Ow28u85dx0Fe18pFiCjCBW0YFZq0FBUUjIi68HVbCotwNKq3KAmWhKY/0R+yuM9pVavofjKb5X1VhvCygjCv5A1hEkNMKSd4Xa5U/Iw+tcr+2ewSVGYkswQK4nGUONv37ycODTSv1qECtqACyZd+e3H60v0zKzOYDgszT7Fnfc2Pjshhv6Xxpj23kak2ph2h4lTUBJ1pFIl4KKKSW0aDtmxUUIOLtWPb2NgCZSgb8JHQRhShBHrgV6tOy8ZZQHrLXisTxgK6Crr55GSowja7ZUANepPIgEiCLAslxEQG4wIqLjMqIAJzxansYnxiXeiVx2GbrxaKZ8SB6xFHU8HTcO2y69SIzG7qU7lFw3kFVRgJkh3pcaPCpQiqoAtgVmb6kIRh4TvUDxV+y5fesqDnpprgN7kkgcGoqPl2+K/7u1D3IKVEEBUSsThBWByECkYF7kugwlPIUu99rb+bbbie4zkG/Jfr1kGZuDU7g0dGR7n3aOEZTeCBDrxupRV5ihhHTCgT/LkdEqWKhYXtC9E/bOzUTmRrHwpBBXYdYeXCICqMB/O9uGBU+MgPEcCGlRgTJI4SQ0wAI+Ngaildd+u1mxIVHU0LBavnzAosuXXCMMFQgga7UcP05ARhIKOk48+hiGegSMTIVVrIIxpUcozDhAoKz2mBue1TU3RBG2BB69BE4QMLTFAtt/wgzB5bJup7LUAjSQAy4Uwl3Cz7tg0F8hgV+ky9LrkJFsQEFNAEy6KoqEpUwAT2FXPCRzZ1NbMhOVAwG2RyEDp0585pPKN34rlzFYwTVkBLByCPKa1n5ClMdG3gjEgL4gIiGBRn8JOhAgPt+x8XHkwZGdtRJDZQoAOFIFmgwvcDdt2SoTfdNi1fvSyxK2uadeYHTo+a3uXCJgaEKvAAhvCwhYxcqpxGf2uy8ej72MOzOdcODQ8Nn963b3golszCLpChCYf9na6P3Vc/Cjwgq3lg958CqFAUWS+z/2KDq0cvKFwHAx0EpbFRUQEZSgcfIapBspTm5/0AKrjSosNavooHkwT4AsjcWbGadRsq0HfaoJCeCokIpgQqPUACYLt4UKs4pVSUelglvzjTCvSqBSyDqIi6gcVtOKuIiEahYlLL4EtShfvEcQIVkNKdNB2qCFuRqdGpo1qGThQTIILIsOpUgUDnvpQx0UN9o6+AOUxUEWq6mMfZf95DGgkkOQAFKHwkIqSggngWKlyP0ybog4G2PMLHl7P8vLQStrr0i4tgpxdY5pQi51bgT05SBqv4oIozZ97m87KCmI2myo9KLQgnItEHo6NHp47SBhlTTowYmPjwod0udb4ifihefr8hpFs2wCRKuBapuhi8ECRouhfGAwOxWDImiIBhBD1e4mIxl6q/dhkVoqLdQ6sI8MbvRyUJVmCtCaJUEdkmRUQgzYNJ4SmKYfxiWVSo87mJCZjwMW6bto+NXhsZGRkdGdm4cePz58/Xr3+O5/GTJ0927dr1ZP36n8eOXb/+ab1SQROyHzUWBC6SvbDop4pE1QsjPzYp5C0qiM4GhgZM0AaLqEBUaBWHsIK0/6SnwohgNigVVhDtlBI7se7xgYrtJOD1NpHoIM/yuFXiMeTWEfwTOTJZdpgdNobt3INrq/5lLas8ZHBw8MDgSKcDFfzVqGKCUAJf65QIMSEq7HVlD2lEBQNsKAMOUMw8yYYWxINEBkmeM1HBjXdn7mO7/QGouJid7WA0NPAQQVWNqIio2xxCFalU+AigDlTYYL2azz+cxHJSKPCPAvu57apzP2YlMNVsS01tHvxHg/lCGTnw6dGnAxvnOqVAPMCEcSEVj76O53cClpBNZYcqBgQdDzGDSDAMC3iJinv1JuJVJ8ivpS+/IELbgIo5mmgzMHtTJL+wStGWtS1KVHKkwBhUGBlsyNbx/MOn/MMrRPCkChVua97BhYiFHwUZYw9Grz1//ASdNwWYyFh74MCBT4Mjc3Ml5odgMSn+ZB0fQhtrUKgCxw0IMMSUiXN4RECMvdcx0bORfOA2/5grPrShYhtEJOBCVDBBiUyRcmYSG0qFbAJQoYJYt4wLyQS0T3dDxeT3Z8WCMVE87y0Vbp8/X01ElwZSkRLjaWFsapC9/z8+tArfggpuwhNKRATdN2gPKKQfKgbKDpxQhSEGGefoAUUYNqnRZctwnCo8z8ZMgQT5TbbZxrRVhXG8aCwWlaLA7R3IZCAt3tnNSzcUxy5MpKMyO6dTsUvVbWQuRkuRclnc0LAEYZIhxgELKBBMJXObFgVdGJiJr+WlOoNSCWoiX+TDwgf95hf/zzn3tsX9e8+9F+P68uv/ec45zzmdmKgHCohZg6PIvoxHNgeBprGoz+/bkJcPBiw0cMAUrg28pBt3Brlib+O5c0DBSdAQtPNs9eM/H59Ks9Vs+ds9mzdql5rq84XYxzcmRojuCqCgV0VLBMAZxGV6wGQqKakwN7TDFWa8JeYIm5kMYQYJoOAeIBQaiKN0MGU5O892AgUbYgHF5B960kS1crkVKEhxFAXUZ6BtyO/LBgUmGzTqcrvcNzU2NgJFojc2le8tPPfzz68jPggFjcwdXdX3nSucKnDVHP3BPZvhtoviWJoxFhXrJKtAcevISDZQcMU4JC7M8H4TIBgKW2+7CVnT5bKBAt4bDEGiNMk/fCwscH8Uov9498Ysj6OBodi5k1AgQNC4JkemWyfr2dBBmxJolX8ohsJGDTBcLr/fb2okFqQEFOWbzv187megoPCgEfk4UBwvnMpwA4UfKERRrM/TXbGeB3KFoAqpk7orEJlxAvwSh2GiAx+jyNbbbUJ8wAo2F/EgDv6NG8FCF316BoCLw/nU4+jC1LOIFbkMV69e/nPi6gQTWEy3jtdnwwITaXy+CBb5fEXItGF0LC0DxIkDye0mFDWNNY0kgsFxbBoAinOEYuv96D5ohjLeNXhfYyNQ7I+hGEtEkXgnEIrcMRrjw5HcFECh+0BnQn9ypwBFhQsokpM1LxAMQuF3uTQMBEKzQoLuvuvOFqCAK0qoygUUE39ehSYYj/oFBAg3JkjQBIk1Wg1Ju8nWl8chgDrlCUKRvJ9WLZmIBcGoGiqvOg4UyJpkCrgCKH7ClpOpDN/ixh/8M/k+O1yRLfAegxqx4A9Km4Bx69gI+vKCAkIB53MU6emJnsDBkwW+0ApXbRH+dsXkJ8ceJQDr9DATZljazZ0eB0ubyBSYmY5qKEbRAGSWUGRTbmAkgID6C0Yj2zZWkE8Q0Nz0UkARKEAlmmgwb7AwOQwUp48f5yi2ggSG4+MN1Vuf3ApX9G/8ITCT4RNFqT5NYG7QefAHbgUWIH2TcAWhgHimiLd1og06JYQC8UFvCo0UCBy9XlsAYYseHUioWTsDtR0YCjvailAWNbhHr14c/YYekPubKYYij4sz4CjSC0z5t2WAgcsNudz89QLpVJdnC9ucBbR3aGjTYbDgwytaz38NuQJdKlzR74IrrvpEa9PIZUmSMNSGmrgwCvc4MSP5hqasfVdGaEo/3jfO5dDuqKKGRgep01FXhwWj3pKysk7UFfhKSqzqhGJkL62eNDCVVWoaGOjoGMCUGZNnUxc2KFL9FX8YMCG6iFlRqTPX04Jxz0WkTTa2yqMHiS4saLMLkCvIIzT4ToOoXnEjrUxwZ+g5o7xy6HQjoeBJk6asCJDWR++HK5YXF5dnrn5DFeTLuU68tjYrpT6agpFWnupvw/QcK9NdZ6Ep7KpKFK2AUGEIZ5xiemIfVgbYAjJaJRddB+LCHxyEhoNQdNxYyVd3SYZSn3u+1InhH4Fojl4cvHidephqa/tqeb0TB9N4+3h3O1ud47s+GrnK91Uea3zhBaDgJDDqajh5y64TJ6by3MPY9EIoZqdm6nO12WnivDQvm00KJ+vHqYrGaHRAe3HQYy8aqTxRtFz21BttJeNX8F7n53HCeb4H4u8e9yiqdjqobsQqJij9FY+NXZmfH5m8rayQ71pAMzidvnk4gmaJKSmpuX/+1NXQxYVliwbCoJHowfg008UnaGQUfIkT+B7pvfFFK2KBAyj2HSvE/sz7dRJHqtlK2nNTeb79dXtqZ666TckF85dlo64kli0guiJthoW5IhRYTzH1QmUx7dOuu5nY5TNct7/1kBD2hrVDERJlIdntRqNFk7WZ/sOtSyvh1Bt7q7BdganK4HE651E9wJQ5FShuvXjSMc6ruw6qRLZr6u5Gq9hpF+2qLEKSKNll8VZVtVaWky82XYei8Tg2zHAUj/JFxVsWM3zLFx52zl51Uw9y2ZKkffp1szNtDlI8XtTueKId+wHO1HFRUniD6fwb58/jnKA3Dr51wcggeEmKooS8Soim+0tLoeDaioL3SwKGqBWNUFiVtXDwplMDiBUy1tCQwePxjKDKS/XNybHJkYWTfTEVoazOHuyKZaqddrtFlkWJPbEqWyOqaK0cKAcKZoxCJkJRzlCwjhTTkl0GgLj981+H89xHsh72zE6M2tGDbLDEP3/iGIu5ohQosHhKrfsJXa+8cuYVJtzyk67zF9781KjqrmA0wl7Fy1AowWtriqRa5yCjMbikWKQQOcQbuhZOST5TWcbyC+xmaHF6PM4WJPBmazMSek8rq+cVk+gmVmTH+qNJR0GCK5RUVZUIKo8R5gyw0FxxeKseHzfc8OHtN68+8/Z4vu901hYP5iAiR7HeFPF6BQKkuK+YrYTj3NbW3cb1xB482vbsaYvrUtueS3v2vPIpUIRjKJQEFCsMhdVuzZ37mqEIG62KESwk5Vo4WODYtxtRxwLO0DI85d+VDRBWK3Vu88Mo5Ok71Xh9n05UODMlcxQSSbTa1WgqXLGPWFCQQBzFAFyBC3MFUOx4/YZ3VlffWf31q7F837GsLc7ZNKC4zhX/G20W92GtpYJUjG0iFUVFOD/11FNtEC6H6EDDg6lt45svJukovAQBFNahEKXI3AqhWFGMUhxFejftVtp9qu4M9mJ5WmcC9+Y1WSERLK4Mb+Brl6TsWHGAAUnXUFglqr3JajCoqs1llXzHA1hoQ4wB7HwDkka2OZJQ3AwUq+9+0TsCFJkvO2fz2MAbKDgCfaTFbwQVn0AtLe67sRjFGGzur4jrUEybD23WRPeH2u669GKS6tVEaRMZR5XpBEle2W5HdqDUKYp2iyQhPoBiJZxibu899VjvGfZshqbZKU9rRjN5grLhlWVex+VTU318C4EHQ2EHCoSSJMlqahQoEGoD1EuX67vKCoeAopBQgARQLA5v3frh6urn33/QkB/YmwUUaTTaHKu3cAbrbGGUBfpG1bnbaGmM7LizhAslBagCjbQNjWszPZ46eulFI31sBAb+dTgec4JR60boNZgsDIXRohAKW3dv3anHnti8eRuhuHiladrJSUAjy9p0FLuyMILiBVMzLxcyFOg0IMBQxdyoKBEK+KIcQn/E0oWG4vD9PFcMtw7X1Hy8+u4zL/XkB6oytzBXSEBhj1c1cXBZ8GGg8Ne39VF8JmuGpDl0CQ4OhZ+o2rITUKDthx7+8S5CIYSp45C9egnEiIM4CIKdoyASRqDARQmuhKMuoKg7BRR4FkNTl8czT5lCQ9HPp18EAzs1iYOOwmwGCjiPk4ArchFS1t06C6CgDWZA8TwLkMMnULR57TWQGO6vuefDd794sms0UINcsZDhw3h7nFAkhgiakITwCIXQE86N9YEEOdKkr4bTlhkIGNgZf4APhN1l2w5t+fFFoxBWBQQJQKp6xKFpKESBoYEIBV2CwRUh6u8+BRR7QAIomiGeKWIo8nUYBIIeJNzbMK6wWGS7ZG2Gh2RxDvSsu3czFIxFFfZYnoYrGIodJ+CKYQh7yxfu6fp1U/XUaGA62clQtDRdIRSaL+I47LJXAQsdRXrirOsBNJJ+q+vgQaAgV4Rl6khD6DxiccGShaKoqigKqhI1WqIRySJhXAEUS2tyip9ccaZtO3apcRQxU9jFkWmqzmRwGICQb9YEKoRCsMgingwsgEIEilPojNhof6icbbHVAmQToQCGZQy1h48c7ujpem1watTZbwqgXuFrbgIK5tn/VfNEChBCUUwo9Hk5nXJywGO9cvgFMLYDhQBXqGH8a3QioVRJIaaR4MpKKIIepFkUZTUUMRoja5JRxLiCUFxTIoFubHyr62b7Fw0YTkAgsR4FCSTAwoaKIWNhdmnjCoCIWiVVmlMRLXWPUYiABFBUMRhDZc+XI2UcHmydXl7ubx3GDqbFs509r1dPuUv7b/T7Z0d9GNcBRWKVQkchy2yYOEelG6Ag8aWuHBKIEIIcfsaJszi4mVBQlwEHKBitBiNKECSCQWVlLRT5Z02JSpKgBiNJQKEYxSBIEApvhALE4WjbthO7tAws8nVT2MVJoND3xMAHZhJgcBQmQmEHOw2FXVStZxgLbJEjFgiRY6eHdpcNAMWOwWHsY4IrTh4ZvgfFVKCAK4r9/oVRrJo65+tFboZEGUX2vYY4ChNHEVv9hDPi4jywyYxssXnLJaAIA4U3jHBQQsFo2AtTeL1rhEJ3RTApKbLiTVIV7oo1JeLrpn1ERdtAAii4JCKhoeDK0CiQcJMOFDdxFDSjkRgK/HGGsyAUtA+7iqEor4IrqpenwWIYv0BZ3N/Q2XfkxIw70FGy0bUwWuoM+OYngeI64WsNhmCLXOaK9LhyzOnYFmDGTgkcUBZvgIHHA0BxpyBQnoCpvOEgKMASoSCGWAgQNgexJL4Ic0VkyUso6trb2w7Szj0dhajliskFhoKdCAMayUVc/HCFjCEWmOH/VpU5ZCMrdt8+9lgMBakSKE4jV1SDBKH4aXixo2F8bKF61l06PeayzY6WBgLOTkJhXG8MJHoFHwGfhKEwxUAkswROKEi0OA4OXGxD6uaXL90JR8AIXhkZw4uaIMQHFIIFkuUEFHaRuSKyoqQG4Aps4tp2ICtHCxA0PUB+1wKEaJApdBEKuAIelOA2xIeq5NotRitNHR9jvQhQsFwxABQIEI4CWbN6eUdH53j97HOEos+VsUAojgIFgWAwhNgAS4oCBVjwAGEAtP4c0njk0BYBnLg1WPLc/sOPd8qKAh8ISTJAIP3gYCIaIGPXum4oSWQoopEloGg/1Q4U2MR4IR4g+K5JMVfQxawxQIPS/SaRehApxSI221U1motBrAgUGgvNFqcHyoCikLkCpkCAwBWdjg37H73HV9rfZ8sHCpcrvRYoBIEONI2F0WJFrgtBc2PjQMEhAIOmLLScLDPfPaOzOJDDUNyF0ABEOUlGkFAmTkBhEahewWRBPytJWg8SjgYcQNFdfICeyRAjoaGYxbhCDxHND47XnqvucpkLAjeJyPB2S6rV3iyJanSObNRGttBCpJyxGKDOVEPBWCwfPgsUw69TDzJuMy+4S20bXbWTErkXEDgKLhkRAvFckWaOc8A1Ew+csYGGC0T41rsDD2xvQg8ieuEoI1CE0FnygSaem7nCgqqArNIkPTIXtYhR3oOseFOAAgFSQSiyDHxuRQrQje8yZuwteVZrNNqcwlF03oFfEu+qzSxwAgVGLdYUi0WUVDEyR6+AcgKxQIcad8W+vY2EYmG5nyJksP/w2VrH5ZOD94z6+h3mdEKR+TKhsLC5AS4yZ2EUJEVhJZcIQwEScVukcxI4EkQ0kCtK/n7vLsFLAQKawUgQqYJShySDjkJdRVREREdyCUUzUOg9SKoTrmAocoDC50Z5MYDipjPgudXjYRXOJoygmsGCZ80OtsV5V3uB80ZVtMgqikCC3QoUEaRZaxtY8E4EiTOGAsXCHSen+yEESH/N2bNP3r5r1/AG33RneubCN6UtLX/3TEpGQQtlGUBwIG1KIAEUYQ0FR6ApU79mxUDwKLnwQMkP791lkcMRBIjsDS5FIqHIytLSylIogs506Z9rSoookiuSknLnMMTSO1PKFXX4zUEF29lqoN0S+dDB795/5NmHXsWvUi4c2LaRD7wCfj86j/N3sB9oLhR4WICo0RSkiBSgiFJZDAUEZAuMOZ9mKMoZimMUIIPL/ZQtBgf79++4HT9D3XX7Vnd/T0H2orvUbMuYp7SpFzaFwJWL83l21oOgL9VdwUjAFzqK611BvriAXe5Nm4FCRbIQjF6MMZeWImsAAq2tAAVzhSxH4YZoRExStR4EBS5fe113N6GADDNdMzNjGF8/+/77f/31/nePZD345pefvNlsheCOpvwC23urv35oMNw7ZWsyIaHIakrULohR1RuR8Bmai57i2YK7AiSOMRSNGFf0AwV+QDF4ZMcd0M3PPXd732JPRvbC16UZR6kHAQPGQpV9sws1+ytrmzEdUyBvoit0Y2Tiqm+joYYTzuQMQrHtbotMM3TViKEm3AFXkNjA+59roaiYMPlTVTYHQW0vylGU5OSAKTYrXp7ow3zj2e+YHrnw2Y9ffnueULQE/OnubNMDH/z77ypsMZXsKgn4FDWFin/NCCFFVJFsD8EWvD99mlDwAKkqbCw8Xg0SCI/Bk/0nGIqbP36nc39PHrkie8vfjnopSXOFKvyxcOyjX377Ml+QEO80OAKKbKAgR6DpSDLTXU4CoG0nYkyyoAMH/wYK1QsEYQGjqogkRtcoQBAoEQXpQkWHoPWlDIXuiqh73IFt2tuRioHiP7LOBq6pKgzji6xWkDnKNCmTTFFHjnJEoSazAHEDFRRkEBskEI0U5whBQhiwiA/HBikEayJLGAgU5kCT8RXoD7IQBCLE0kQgzH5lHyZgPedcRl8P904oA+5/z/uec9577lsKdAIbORIYFCGhrs21yToxUYzDfUtOZB0qmZwYsGWxRdyXt+SuWbTIy58+jAahXhD0RJg/UMjzVZZkkZPjDhSxsfb7hJ39GD/SESASK4gNW+zIfd9hCaYXL7zy5i4mbUKo31XZtwb39clSHl2xAihwzAaKOUuIIaYVo7hHEeeAkU5Btk6AhBc+6E472OJYEFCgVgGIWJsCxbOYSszoWYhWsGj5H6/MYPrVh1+/+tUjq/JRS36RjkqsB2w81hxAuejMNIqE5OZaddjzd89d+ObKmMU+D94jlk3UTUxwBHvcBQLH70d+adrllwH5QaTeGobKosivUkUjxBIgGyKJKy4UYTl2Udl9UWI1/dD6y22fffbZ57P965ubm0v3vPD0TTKJR960e87PL7OyKw6ugCXw5s7effcjS3A7/CHcBxXHLX0GcwOf+Te/fHPFfGqLv/dUUS1YcJP/yl1Y1NLZ5tc/fofIpZMWiEnLuNuAxIYTIY77ICBB0+aHT61ahWL+i2Tv3gLWp3ZNTTtQzyUcShEgOlmU+h3/lx8+cfBAmccSh9MXTvjt1WqRLLqL8DDkpZGRK6v8QACXzygsjKCAKzwtrsDdMbgCKJA0W8hgmi60ghAiA88xKNR9tbW1zbW16kzdCytIkXAekeUP/OJvLRUrHOyWNxyYb/lX+FuKqkP3KN7ywF6aPQ2LF86IeuMmf+W9z5LK7qPPvoQUwUC4l7iOkH6GmVd88cW983784aN5b39BvuMXWKTPXpyRgbr6Whp0LLsHUmywge7FM4yOy3kS4+Z3wha++NyJMg9MOueUPbhqUwV5LJyNuzr6kZGO5X4UA70XwaBgkoU0gOYKigJdCoxCPFnUf4Q8FZ5O4gMoiu9uawMKm0ygaG/va+9TZ/rfxEVSDGQxSKj8vXJ45tFnLMKqAGX2OLEH7jKLlzzWtgjxu9LDQ0G2DRAWN0NfmfcsIuRVrMkwd2LsAG8QYWSZ/9IKBsW93/2wYt7Sl+ZBcMWrXwEFnmN4YcHjEFA8YHMQDyE2dzU3wxULEpa5rY7IennucwV77MRPPVWFjc562vZglhVQCEbKOi+AAlRJJPfjIkJm8qYbdYX7B/YUhUCYXkS6I3QDBQuuGFt2HiSAohYUyJGaqtbdnAcW8x3icLlYEqaIVxAyYEE9PZ9SWIGyWQru1mD24xHz8H1eNG/jwMuTG598+ziw1rup+MeCYh4QA9aib6/Y4D+CR8h6BpnzR1wzRfHhXUDx6r3zacX7iy++e+slhxMZKKw/MZds3WMtUfjsxK55gzq5K1ndVbp+4z73LYeytj540N7eRzzH7kTDBSHT7IZFUFh/++2lC/c855fv6uoqU6nAgksCRCQnkywSH0Cx1/2DZWjfYRSwJXgaX6JUCgRwBZ5Raz1/Hq5gUGhS+/CR2qe7Of/G0nkxBw+ecLj5ylznA+8tJGioDRpIdKVjCBImxdfVDSQmCoUSjqNAsh/TQCrUwo43h7wdlFpOlJrcXts8NDjY2LhN4i4Xrb1vzWybz5F2UM79+tWXMII8ipED84pn78W8gqJA2vTKeA/l5AV06x5r906geM8gUmeWJteGhKx/Ep5Y51ywvLMhK8aj7NOmjvErLdP9PyDH8fHxi990XFa68NwCpDIVUHARIKL8XarNW7bQAAEKd3v0cTGyZ3rf0C4n7DEpUBAWi7r6+jTlqQDR19d1c/6fb6x8cs9zXMyV+AaDcwyMgOoxlH5xvOPcjqpvruzYK0GbkKSRkV+wNej8Y+n0tv80jy9T4kIZFPiG7UODjVBauQxvlOyh2bNtbBRvAhmp3pKcREIG5zNvzYO+QjnjK0XGexgy5tLNOaxcbLE+KCrva09tl+m4CRtXrd6elZWx6jG706fafoB+6VjzaVEFB1dDWAguXbqm7LbG83aOLt7LAkybK3F/BiiIKxgUOfZwhT0auxitWRZZb5NURAdO5FMUdimfd/XVkgApLweKuGeuhiToKg3+eH6JazCEvU7jgQSA8qBiye6dHh4PJ7KptiI3KHwWz1FiM4gYIiwUq1YBxbQtwKKRqtxVBhQOuB0+u0ivF3YLut2Qp+uJDP46fmjQsQWP4/LxXbzyPXft8sMjt1jps4oWP/JUrqi8vFGTmrPjAJ4P6t+6dUfW/Xanz/3c9v0PX89fevCCEG+prcSFvLuCcTI4WkPg4hIcYFIhVdBcQScWxBT2GxAgaPRjcQUQ2rdGa4aGh/lA8am97GxMFzgwQoA8mpCgM8hFIiwww0QifwUFkYILVebaYctg2WlvNoSsy+lsarpy5cpjeh9m0YRlY5z4wQeBYpoEjsa0tLTGtFQSvq5eIDFbyTSHSAT6afURpTL4fMNLSo5C8Ufj4+NZyn53z8rMdsRZX7BTwOr9Wzu3vluQsQfPpvxRNt42smLpYismOiRC0h9s/HK34BILJKC8yBzpZoKCPEhOUczkCrJZkW3ptWMMOJo2ODR89cYb59vseirGeiJ7jcbC6NajCDHdzXsTdF1INoagF/j+crlBARJxyH5isTJXgWQp3sNhUFjZSuZgy5N4iRD7dHx2etClI3FGaDI44KAn8UYyJQEU2CSRTlp8wNM5UcEQmm6h81JUVFQ803oLFPBKdfIkS69cnS/KbMc4f9ZcWDFrlkvD9k3Y1zmnquV62bUr3y99oIVeDiwhIdMDEh7jLEqCxfGOPexJTAFXVG5mUOQwKHqxzyRRAIiAIQwPTx0cAoqrN54+L50cGzObux2p0M5EoIzh6gwiUaXohbVckbxSFIOlDx0sFMqCmDgPRcx+ti0hQSoFLdj/5TFH+Mj5j33oPnEIKILUFAOOcmRiiiIZ8UFdsShdglZEmO0aw8N9fUsgevVRMAGotEabzYXFUCERqxssZIOpGOlPBps5tnmcPQUZBXt2HOjvvn76WlnZA3a4HuaZbFtJRH/RxW4Ba3wWUEDW3ftzpP5kuvVPFMs2fOAWa/SGK/K8eWywsMdvOMSguOGlnZycDGyCsDWooQHPMhc5cLtEmXKVaC0/LDPZVa54Oy4FALDTDijgipjltghP4gr8WRCjEH8qxM7BjwkKyoK6Ar5gcFAlI0Agr9k2i4BCKKmQWFtJwksoCScclAaFARqBgdHROCGWrUB5ZH+8ZnR0NFsbzTtrZhX0u28HiiP6P05fPz+yRknCA7LFMuRC1fKLSkfWZRIftL+Q97It/gaKQmVBYQ8UH2ALq4SH/jPW3i5strQ8rXEQLAiKMxN37oiqsLOF6DTRuTh+faa8UiVyDjOoXV1FHm+neKA2ACUCBUrj+XlsQoEu6PIOengs7iZNRKYjZDpAUsPBYgYFQyKZovCWECFW4ykJxAQDgiGhhSgHisLFCk/cR9iXnimVHo33jYqy743ctBpNn/TK33dfPzUyx9JlzSoPIcK20l92nNXtiMGBouDtc6PxgUuxoEDRZpPROxaJMzZiw6bt7Nht4eWNBMUwscXViYm72zqwzec09p5RGFXzQuvV6kpPUZihPpmgiBMrYhwewo0gZZZDCjbxPTFmS+ODWIOTF3G3D1wBW+ycsQWfQZHKOAOHKyMvkFjDoyjyWKxeCwkKYgZFK1BMs2CFLLNlKyM2r7f3rpEkKo9sXeUhVuCmx5xPWn5vuv7pyEGmwRgOWzaLnWgtAAqBI40YDtp81RipKSgKFG/25sAVe923bHfbJTJAYWGvbQgIT0vTAEXj8FWo7t3zbR1kc9xuAgMv5+bxM0HCE2OIGkFuWCkWK7weIreNlct9UrBTzKsOg4ft9NQd8wueJLfJbiZCMBEnARIePuMIKhnOGJtFnxMUeWBhxcojJBg5EQ4MCag1sHU6QHp789iSiCz3zX7+zs6v0+GabCW1eeTKt03flI0shyOmO5GxObYca3RzICjwz6wd9bypKSVSHko3QEG2yqnkojB0KVngjImXv8GA5fy6SKDQaIaGBhkUA03n2y40nWtiogMwqlZwgcBkcqXyX4DBI8YBJF50TlzuQ2bbPgeQJpCpAII50GGsogARwrCAK9SpqbJvOvaUp+rW6uozM9VqwjS50mcR9hwl5hFJUIhrnYkN02HKIipYS2yBdAERFByYHckZ3quo4WHTo4NCHEc2ZZ1qKlu58vGm/mlPYDgdmzAXs5VA0S1A6s+TTHn36qeUACHP1HXpsEUhdAF0HOcxZ26YgUGxJfZotUaTPTSkGSQohs1Npz7tPAdXQE0kQjp3d6ldZVKZzCQX5Yu8xGLEx9z7sFfZ2aVTTAJEoUBo0EEEAhWIjXHVR2GxBVAky65fv+aaekzB5+qI/A1rfXzWfI4FTzqHsmAjQqZR9MRH5UbFH3aCLRhTgAOD4p+NIjEoCMVMLe/t01XnYlbObcqdaT5YMXlHU3yHx9LP6lYqLxcVHNpxaB2soOOGEvFJNx1wgMi00R8CCi7XfV/82ers6uEhzTB0ddB47lRTA1CQzHnifbDoz8pUy0xSk8rf+Z18w0IPjKJeD699EUsb3gVwwdef8Co44PBvRTh4zaBITk6VXrve4Jr6BFBwdWE6tHl6aNGaz4GiTWDFyduaceh5a5YEGKgb4m/duo0PLVAwmnEFfcsZEpAQy+ClZNorfkAhFj9U1ZTOoLAdm5icnJj48451yywB9o64Y22q4zsDAFFQED/UmbriGERQwBTUFW774nvOaqZRDF09u7rs1Ln0IxdbOhukjX/2JTiXrU7icwkKeZhBXuk/FySAgpsPkrx+D5DYabdYKMmDG6iQM3ASl2Qt/hiTD4JirruuJuKbjiqV6xOKtVxwwGF4iCHRJti/6vWFD7/wupLFCj5aEnw4+PbALaopl1u3T1JXzKBwjzUm8SpIqzbaOFWoSMEcDXeIUL3EY582n1WxSMbMG6grrhvDR/WGghzPSpFIRC4UJCCQOBZEPyEkCIygMICA0HnLzRis7UGuIEMIhtOz5gOnGqyIBibv3NGM+vXvd3HWyUwykwqpV24IfcIrJn/zYTd/wPQuOvXIU6dG2oo4GE4tICCQgDjPz1k85xExyZvixxI7rnS2PKXAmmLugqC1/vLK/Ec+a4POn+9uyCo4uCrj/awsgTH/UMbCqFsDU0m3bke13poCCYsnIKBAhiPbAA35aK6Hp9+2+cRcGR+/1FCV29lJensIJSRRgUVNrzEHPbs8N6vo2pzACOM6UxJAEOrvP40iiKDwJygoLbfiHi1sMdRIUQyWLw/bWIplQPWdSaA4q13GEwqdDTKTySR1lyJ5JosORGyzz8c344btdxSQIrG+ooJOKhgOLKYehsm4cXS0uTQhZOPjcSk7hB0j317aaQOP4I1c8zE6Fo3g8UA8oHnKUcJGr0IJ+hYJsIJ6+CG3wtvbphAet0y3bt/+BwgcLL4zhcEIiT9fpXLHlLF3oKbCFobAlLE3dq9UVYn2ZKrNVCqIsEAqoCxI/xy+5z6kzWMEBRHNFNQX0uKeQG1P4yBQgEV1WmnCmdHBPyGgaM+WbmmNanXONEkDnA7HLnPyNQX3xrrY8vldlZhtfYDdfduz9mzL4xA/0JkFExwQUNg6NTePAkcXUFRc/Hr80k5xytNvpqQs2vmg+/aIohZsfO9o2i0QcDDB15/rFzZYOQp2vBfrzd4/NZWkJ+lCG/gvFiw+ZcEISAx+KtKGr7JSrXaV1rBiVTIVNA3B0yLCQk5ZcEECKEJVvGXcUGIIolBSFOeHESABxVqzVjuoGRwcHhqq1lZXV2uq79yZnJis1g5UlPiG97rs56pNUqfWSGMk+CMU2N7G6PjMet9kLn/t3AczDrLJZVOxGQx4YVaqw6Optam14YoYv+KkXy+3fOxx/M+hlBQPn5cPbd/P413EpD63zFFAWlrqc484CvXWgiSlkOcocLwFGv1wRTCTJyy5gma3MAsKf5Ec7s+EyGAfYBuLAVqtzlSTr1UqV+pkkwmsCAuSFrH4J+LLebxNfIoBQgZFIy4+KBsizYGFFAWSRVqh2RyInz4xMdHTfuOqsSY6trbX5TX8TM8ckBjAJVpxajAzrO9Su+WYXLuSTbr1q9GulV4+AgNQLBzIl4WasT+LNcFZW+KjN1xTXj71WfDkgRSPjzuPkB5merQc3bb8nJUQfx0Doz7d+oh1Ijt9v9B6ypqtVE5N6W9FRvkG4/ex2IKFOrX7Ok/ieECpRwpA1RIXTYof4QEDOa5qqkyLKCTItVItR7bARdOsyRW51HivAwgqlGAoYbisVxtYHNhDUTTWYQlIDu3oDaKr4ZGRw73eERg5pNFGI4dkAklNomSW1Tp+V1dt+9H49jMhITVjebakBkZjo7e2PS07W0OKEu3tQ6Ojw2euQmcgf72+w6dncodN2eWfeN5Fid3dPxFdvibAChgohHrHIsfVHPT9RLma9OPM3Tpw+/bJkzMBYo5mHXaLCpDJYXU+kraIYJCZIJkMaT3KaJpG8X8gVPX1XZhc8cnF10C7ZlCILGJQNGqwCikeqAMMc0/fKNFQLUpZo0PZFUJRpSkqssKKFgLy6iIjB3oj20stt2WS8/Lwrs6iKNjs3sFBpmT3D5WnpaallkuVyrL770x2jP/222tS1COiTEknmr69cq0bSdORZYWusWyBtZCtn7JiCa2T+sv6m94NRLaYIQGxuHR+xGCo3Gz6h2ThUUZXoECEwAj/JiLPrCcoRPUzcjU55eRw+VRwBYGBe0byXq252HxWo9EM9gwURrvtkvZUp2mwPCspHHDhGd1j170XlCwLMLIJBw7LqqK1tcSWJQkfxXt948b69fU1TNWGw8woxspLTv5f8do6w9YjSnfV5IT+J+8kbJzdvjz34vaE402XfxIIgAI1WULEGq2W0X6agxrNtqRttwMDcVCZo1G4MCNtonRimHGDFArAGQ75BhtlZF2DcIAwr4cAhhEBAVtAXbBGlwGnjhE3gYvX5tLh4Xq53KwtBIrqs2QVgiAZhamHzyA6hgcHNdU9Wu1ez8rk8JJe1IHo3IZdw6tgc3iHZbXNMilmXq5Y+IAFDroeq+P6Bgf3/I9F8IB/bn/RgaCz5u6fJHnIKOjiu2PlTYfLP11uIQxIsz8rQEnvFCyP2J8kBJDerb6FgTCFlmQJkIBY9fVyNcUAUQwBAYSFr69vuG+rUWYCDEgGucooEQrEkkwJDBomVJRDQkJIyEaLErraZVHx2QgPMtkcBgdoUNPXVztKdBWqTc0+WmhlaZhfM1Bs3Bef3brpsEpXuv7MYbYtBxjyQImsyOr4JSers7Nx/Esni7ncLt2xx0vTEn8rwiPwLvv27tu+pSD3p0u7G6ytHEmhCasmDCSdF5RZq57f5SZJ2iByuqWloikTJApZuEoGgwkc/pYv5NTai7fmb/2Xh8UdM+YAC5Dgh4SEhALD+uPHj78BPUm0PiShtLS0uXZodGhQ0xNdWFccHVxS3ZOt0aRln4yus7ViBCCcmgFjgG9wcaE5u/bMXhofTB3NFiiCTgLFP6WZRnFsY8iTT68/887mPQVZF4oiVhsjYjddvHh3gSOyhDVIUBRsfUsLzx0PgGzZnO9pvl1IZMbHQN0AmmuzLBimQTg5OZETLPB5dG+4b7hF9FMLEIbHDBAGB2UBGCAREhJE2reDxXHC4mn8HwyIVkJPv7F+Y0K9yuSJPb/G4viSEm1wj6aupiaP4qjD21TXU43wNdcijpZxkCWmWzxiWdAaepKOH1QacuDUZJ8s5D++fv3TK/Gd8VOZl2Nr0cE/w5E1XZ1HmAjYvCPCloveh9DKNN9vXesycuMKMOo44I8gZEmpAiwgoqJwOkHk8+heX9gDECC8Mn9CFnfMAAERCgMoqDHAArY4tvEYjAEUFhYrKYs3LUKX/y9XvsHHdobm9jTy9p7VmoHAXBxcHhw+Ssfb0TGOLcWQJ0H4sON1PTDCv5VdXa0tVKN8k9mFXyAhBByIFV9ZuPbltU/05+b2K2EMeILtyBZuE3YX6ZPe3eWXL3JjuvDHAkhvTQ2vRiL5q65zj2mrDMN4gzPWtakONVEisxoTNWuAKLhNS0bVFbETGYyhQCwyEXEVyGQRhKjDMaYOL5SpKA66GZEyaRy6DaYoUNgCLGZFVCLhMpW6UpJSaRviPz7v+/XsUC9Pz6UYDDm/Pe/7Xc/3KdgNEgdJCaQSRpFDD8+ZQxKzAIzXZBYkpA5mwbbgGBFBEg4RmQXBkGlAYSjdx99AXfRbTq6/gQOzsHXAvNQWtCtotKEI8UEs6ILggCuIYWPL9omJiebiYgu69tEQt2UWnCzclHxD+TU3YYY25mnce/cVhw8+bap75ajCdHTdrtezyvYUZqU2Q0gSuGIsIr9KAQT4iEeX1ZPQU8IoEmALyIYzksV96EIEDFlkDJEuIJmF7At2BpMQLBgBDjrDXOJOoi2A5tu5c11dh/bvtzU2N7924l0UQg4z1cDsza/+8Qc9e0/POPrjbO+eeOmlVzN7dnckNplQbOCAqA/KsXFy15EY9GjsM6KZX5HLulKVXYdOOFOr4c2mjKwbb7zSQj3/fbgwkD5CwUK1BMI1bAucJYMd5Ir/EWwicktJW1VlwW5CARZAcewYsUhEOZL3yHHkC2EMJkGKY8mmEBe+4Z6DnI58DiJc1H3a1WWZcCgR8UqkVPsl+ynlow1cgcOy1GgD8YscpyszcswgsY5FdyRb89bkzZhZfi2/1kKr4SQ/jtqFqdZqMJlN9XsSX7zq/ZZTqPpSFZhgoIolOEATdhPEixbxSiR1/xAWY4WmpuZIwblgcG5pqRaHTlenirp1927KoGwLIiFyJ9sCMGRbRLIQNIQfvmf9+UgXdE6IitiodWJCQ7SS+jhKMhstg1VFZEIOWx7WsmX2WBLtICBLoHgQi81u2c5vfz58ZMumD2rj37vpw2hUs2oqt5aVJR9ugZiDhYeGFFJIVJm8oZWFyll3r/vMbRh+6u39Alfu/lhcXnZDi0NDi8vugMfvv9YTuu6it2LBWzE/VzE3l+ZSNSBiwCKcLSQYzIJRRMCQUOBcLWYR14PgICEnWKhwZUVbL9EA9mTn7qqeHqkURaAUUc747LMuy3EKkEgU2zfd/eb7b9FSmkm0WvHBa86PZh+tM6Aa90JMzHoMwx0kQ0jZAl8ZBYVFldnr93oHfO70RYzyfoHlLJxDGKcdc+qdwAEeF5yiiwwrfpRe6DVeOJNL1972YHBmSULBESKFCIlRyPkiwhcMBAcrDiQ4QmznLrN4Ak8vWJgnf+myAsXpIlS8bYyiiFmABBJnT19iNkhEsLCfjL3naSzQmtXE02Ka7j0vujsw+Hv0nQpjZ2H5QSYBCW+0KKpYSBSGoNe74PN7Asu9Z4bO0BInpUNao1pNC7xp1Bqhtasua/fRBIb0+bn5WlVlkRwhQAEWDEP2BaOIrGCE3cEOEamUXCGhQN9wI7mCT/O6Pocjes2pAhuVHNw2hXjUnNpmhyyJ90eAIBQF915dUUETdehPrb8B/eh3v/XBMwbTOoP5o2vrOzeUH0SioAYiDlzgCnQBs/J1c17vSggs3MvLQ05Iqw1cGCrVaCG8ui/pZ3xwlQ7N2PzcD0tRKUWrIgRiWzALRiHHyC0SCxwMQxanzrhz4+MSDEbBDVbsMIN/0TXNL9m4+OTyVGJBank09cAz1oi0ad/+ftnhezdftT5X2A2zUtB//tWbV5anGfdd17QHKE5BkzghsoUChRLRyC9RLcx6Z9yhXmDAugVsBXUgsKjHaJsWX9kJa/ncB0to9Zq1ajXZYn46cUnVViRYiAiRbSGxkKrgHCI4wopgkRsHFA/9EwXDuISq6ETDxgkTGEAiWYTFKG6tTs2xyq6AzG0v8+ZVKSltBTRSlRxzAxi8KOZxNW1gFAxBcMA3oBCqUk2HvBfdIa2aHly9lnyA4NCr1WNa55geRIw4IY3mIfyGtlSrIbsARXB6SZUTRkERwiwiMidVAFEFl2yxGgUd5A6pXLl9HCggRhENFNyvO2lHiBcntLx86Fuh/ZIQIMMnhp9YV/3qsUvEgk6RKwbtqHNx7akaG61UAgnWI8jA7PYHr36wPmnbhvJ7hCMoOliMYjB/sHhC513xLoR8eq0ey72Q+A5LwBZAoVcbgYGjpVTDFIiYllAsLakKRLVLoOgHCTlzsi3AQsoXRIJZROpZImKMAwphi3PkimhyBVB0KKkro7/Zjq6OVRoGhV+G+4/151vRdJiMcAVQWAZJFgvumGhN+55hr6uGxyqPZCUlbUsqzyIMzQJE2BWWlngz1nRf8nKu0PLT48Bz6vkODCJv0iA939SIEJxwDX6YX5gNqk6Khsl9IkJkWzAIwUJCIWwhaNDt2dufFWKD3CKhgFCCCCkn4Q979d6O7DCK/eKGCVag0d9/omfXXaIEkVk4Guz5PKckP784IQdq4w3+BouV1eicJxSFn36aD1R9XISAisIubbO25Pev7Jz1a52leGDSWn1AwxlDj6DhYAjnTSEqSNTQykyvV0fN1pNAwbboZ1swCcHiAbYFJFjI+QIX/PDs+tvBg4hgEXsiIaEAABXt36SsVsIgmBG08d1fJA3/cqIfrf7hfvyZY7Y7d+D5mQEOUrQ9HyhIJXheTAVqS21qSCB1VDVsYhQ7OUvy/KNDmbZP87GlATBgbwNDMBRaOT87iynfeoFCrVkGD7DAU5MiQUB0V69dWQl5dZmZzEJC0X8MEihkFpw5BQpZ6/kiFrkja3SzK1jsClWrIUpXcwov1uii18TftR9dmzi+PVQ9DLEpoOGujRuBgSWxsMMVBIKMEd71sTLczEyJ5QCpHxRJUhLPQNS11k3VzV30hXw+RqEmabRq1KegL/C8UCQCcSXXhFZWVgQKrlu8ceKEIBFZ5SRFongIdsDtlvX48JKHzCLmMgq0PqLgiDnM26p1KKPIFpOmcBHaY7UW4UbpgjLGtz2WFFGMCskoQIKE+Wi0EyBQkHJiN2/YlpT2+iWUHX3Mg4W5WHNT09Ojo3XeUMjn8XnU6ylhUq6kwPgVFhnSOkljzl+dv0JjLHzH1Ykffe3uVSjexj+THCFnpbSJIyJxSgIF/IebIeAgxWBUzjEpYFio12WuVmcwKNbYL1mVazq2vcsVCZs5uhjdNlySssYHP1HKLFicKyA0K3GsVsnJmERC8QL2g6PDjj84eQot02nigEvrwoVZ39cBt3CFhusM6RoqKJxa55BzTJaGBFYUQ5DfvewzZJKA4rVXmYRkC7nCyYrMFmSJ28EBJIQIRR5vWtfIzugDCkMrBrVck/H2J/6atDYndFFte9CqbD5kE1VSlu2J5gw8VIQclYwi4TIImUeqQPG+HX+KtY6lAIYBfKZds26Pp9fdq5EChOoOGi1+cHKBqpYThRQayBS4etBAYxRwBU20RoBAYVewLeQIIcm24OgACez8ISRQ2K32cYECSdM1Pa/DVWewdu3varF09fRY7CqrBR0WVdzvjyvUUrwD+wweffmjj56hjTrNYVfg8eU+uRx8xJcDMRi2S0p72kGyQ4KJgjCMQiaPxxOYdQ9p0kWtAhCQOKlm4cQz/580+9R+n39FZbMxC0bBLNgVMMVZmcRzcrJgGLhybHTHdIsXoNIw/f54xsPb4nfh/wEMS7TKZVqYx7xkl86lsv5yrrqjb9KMIJhs4TozFH4a5aPoXog/OoWFMnhzmh3K6B0N9qoEmcSqXtuCzlgMWgEF9jJxSLKjmxcgRkZwuNwfLkNcsRQBQh+qVjkjHn4fPvIPGrXetRQMGoACJIgF5XTZFXIl69+JEyDIETFC4YWV8259qMlU9mxc3KuEwlDbujBda3BRvzUaIpQLDOjsDE8PQ10UxR8ueB0AJLKf+WkUi/N9Dg3ooj6otCNLsJgEK4G+ZJTFJm/4ZHPaW9liR5ONGwURxQhpmgKk/trFxQtjeHo1i1HkIi4YRaQkHBqg8AZDfrMNYlcIFIIFDfSRRFkqfCGhIGcwCZ6aEt62A9q8Z2e8Iw8NEhtQ6DC7YmbkKApSPK5SJEYMh4CDIKFSEROVgfan3Pjoyz/t+OYdcBg1GFwG3SuVjoQCiC7UqZ9TQCdpT1ksZm8kp93zDBYdhwCEcSgoZS4sjI60utuXgUKvTtdCFB96WMMIFEP/iAkJhoZRpAd9gYBZkKDZk6sC5KyUK8BCQnELoyAM7AlgyOPdr2JBg1AkwqrPgMROZM4+c10rRi5cBlS7MTNAbKZMLVQWT5kCildcLhdGzbFeyChInP/ufB2cMlpjFijo8VNTafogz42geSLbMmKTCjdsuuPwrvt/uh8iHrSZh4LiYwbGaPV4gGJRr67gAMFDslCCDOGJI1Fo6L8AEv3WF94Vn/8yitcECkGCC5CzIPHvZHE7w8DbvbwtHL+cCBzwRpL9kiMFLdRbUAO3tNahTxZ7GoKESsQDpCQMkvD9ZSJRy9O73qHpbj8YsNvq5wNAUQIOcEXOnQVbMDkkq3BP5x7StgOxmwsTY9O+pB2UsAj9Liz9OAEpZqARyBUIBNBToc81httiqHMyC61TIiGQaEjMg8pb7U1oxa2Ye/6Bol+YAsli+KwwhZwrmAKliue684hCEoauszBBYTOt3FKY+vvEwThj9/O5b4/31da11vKDq2AIFrqh5L2LVTTOY2BTzE3NT4/OwBPt7Z8DRev5WmtDTYkY5yopaYOwGmMGUGShh/gAAiT5mrR73/ngHVrDEkB27N17fwehYFe4Zs/4fP6A3kgbmTjT9TjUaic1Rp3kAtkNfDAMLnB7V1Z8IXNPj4RCSpsQp83M3Y+sDpDV8QESNPWpvolmNDVl7UQ35KbNndV2LPW6yZibOG4hFAYDPbNEgprttGE7pU7s4goK6G6G5uenF2Yuznra2z2jQFV3Xmdt4ABJQO6sQiuscktqzoEm8eZfWUxy0qbr0q7gjXF4SU+se4f1Nme+YVeMLs16UN30U45AhEjRge/aUn54lkxCCL/yNRq0AdkVPzKKHy35OSUdxSknTx/bnUIoZFewLRjFc8cT+W1E2myVZrthW7W7C+uzzdnXV3yYbjQWjVviMXvGpZRJwBLRNBCsWmOmHY9VLpfgABAjADHrgWbJR7Wja6wIEEIRFhJGgUCBcQOgiL0h7WqxUdLT2KSQl2VVhE0xHfSFCIW6wkg5E1JrhfSlooGOk2/ydR+jCC4FfeyKTAkFTNHX0iJK/omO4rbOj6VRslVCeDxFkVGWunUrze7KyMBGhIfrm8w1puxrbjLmZjU2Mgodb1svhQcFBaSwmilIdC6AmAKI6YWLRIJRtAJFXZ3K/DDnCipBcaV5dRlYMjCLUJTF5CUCxVVf3ouVNGkl3zJewpdQkAaCPj8CxK9Wl+tLL/fZXMBdqoercYor3SQy2valpRWPvQosbKsCZJi7kblHuWMC2nvk9U+e6n7gEaj7Fqp1U3hswLhOxva2ykrabI+t0ZT1ujne5Xoh3ZhsaRzvi6qto/BQRsumYBIGldVE0851LkPrHIFAcACFkI7nn0chbabkcK6gIhQzrFI7OzGMtA0quyHvKXTvXSP2F+GNI7GyapMCJEhTQXcg5A/4NZoKoOC0SRmTG2ZqSNCQJJCQtO3BpZDfXoV2fybKUgnFsR/7msNDksW8XXx1B16S2puSmohsiWHuPBDpTsRk0a0pR7CFLW0/uJ3721JNta7W0QrjhtOnu/rsNTqFQrwWI1CQKVhWO9cs5uYwsXN+YSRMwoPzIkhAFCBtTAEVCp5SmAEUiA8JBZb6vgPi196vvpqIcBVrdHSgdtqDpBmYVaMw1TuhIScgjJUyiv+UyBxqd9Dr8zlEFwix+FGgAAvIQpJ2zWci1Uc6dx5/CK7o7n4AU3+7854qPLAlBW/zU+8jbUxdgw2dW42nn/z++zcsk4Z1CA+arY58yc10pU7IsYurFq2UJwZGLwIFswCJBZ1AYW5woNwoKGjbSiAYBSdNzIsCijygEEqjM41eQFGMjE4PDMxPuUaoDeJ2Dw3dgS6KcOe/GuNBpfpIFPyTlEPxWfT7Az5HI1iQL4q4NOX3mH+0sPqKLQxibzGt24sT3YxHyh57f+dTiJS4OEBBD+/txwu3YHPnFKxaiiJDp8s4AF80PmGn3KgSb/YTDbwMHnbF5K2MwgASaE4uzMwwDJwzC3M6yiI6E1CwKVJRiiJRdGaUCRJ4KfbmWEJRUY6DVAGHwCKKgfl56h2JmpkNQMt62QRahAiFiX4oQunO9HRGBUr4rTP+5eUZh+WJfBEjbAtGcbafRoKBIqzL+1ljn+8jNTxP+P4dW5LQ4y+GjutvbQCKrSaQ0O1NM9b3NfbB68iZCgg4aKIeUKgEir2iwkmuQKoAC6ZBLKbxOChla4Bi+3agOFmANISK5h56lX5n/eGkeoHijmsroHK6gAU+fwNqbCWPuqBqqAAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_simple_temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_card.json b/application/src/main/data/json/system/widget_types/indoor_temperature_card.json index 0d51910d42..9eba34771c 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_card", "name": "Indoor temperature card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_temperature_card.png", "description": "Displays the latest indoor temperature telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json index 5096ab3f6d..ff79ca8719 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_card_with_background", "name": "Indoor temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_temperature_card_with_background.png", "description": "Displays the latest indoor temperature telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json index adeafa4762..b9ed5f0cc6 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_chart_card", "name": "Indoor temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_temperature_chart_card.png", "description": "Displays a indoor temperature data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json index 133099b900..3183e23518 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_chart_card_with_background", "name": "Indoor temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_temperature_chart_card_with_background.png", "description": "Displays a indoor temperature data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json index 0adf101ae9..e4c8c59c51 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_progress_bar", "name": "Indoor temperature progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEXg4ODf39/g4OAAAADg4ODf39/////g4OD19fUjTMchISHj4+OsrKw9PT10dHSQkJDHx8fj6Pjx8fEvLy9YWFienp7v7++BgYG6urry9Ps/Ys51j9w+Ys6GhobV1dWXl5esvOpaedU8PDxLbdEwV8upqanI0vG5ubn39/fLy8vk6fiRpeODm+BKSkrj6fja3/Fng9jU1NTDw8O6x+6fsOdXdtKrq6tmZmbNeyDTAAAABnRSTlPvIL8Ar7DvmsykAAAEFElEQVR42uzPwREAQAQDwDiGv4f+S702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in/1y13EchqFod4tLvSBZUCoVbly5nfn/P1tSNoJdON5iCjuDmQOEERmG4EmAxH43zkWS2xF8B85FAnccvoiLGadcJ5JFEr2IfHmbiYLLMJFThH5zqqEJgFglBgdpGsYHbpmRWrPDEiVWy0IV5OjZHlbTSuz2qG2blWBcLyKenqwAS9FDsBCBib6QE4DAUhjGs+aRZaUX8aRvWkvQkkO0Icgri81SrhcJjJBSMsgEIatlKmLlVUuOnxmfeghcU8+cM9pmKvhbZF76NmvWWbhBhEVDY8dIPUfY93RseujAg3EsbWRZGI4idX/jSIHLRYQb7pVIYtBkEHaRx0rlKDK25+AukdkZci5SnZJs6dGekE5FyjbrDhEUiiV4JRL4gTBW7PvSDzb8I7IA7SkyWQsyBleLVPrqJn8U8S6yCHop0QX2TSRpd/UM5hAeqKPrKbKMWeWebwRxJstyFAlaTgC6vV6xiSBq0jhZWWMO5ByeIviw3qt+fo+IvPzjzoKNLFnjIZE80v/Puv3qd+I7XU7+igA94Y34ATdW34xfkT/sz6EKwDAQwFB3cHKyTA3Gqf3/941SUdfaUPJEfGgcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGEZj/SRq8piDYjrZ6M7s6pAmg5Ut+becDIz34drEYIQ1EY3h08S5dpskhIkEHFEWbm/V+tkJFSLUy5ljDXmm+j25/rDSYxW39aiQ4avQohw/BB4jtPemj0KmRogW1IVDqQ35Z9G9KRA1QShsxki6flaQxUkIX0pMXTGJ0B+kA6FTOShdivgZiA0QPOGtyShvUXhfRkwCIOroV3eTgB7ycKseQNi8l3wDzn1yveTxLSOzqsBAstJCGe9P8i5MdAYHOI0fA/LAjxpMXaPRkA9mDL7sgWa8aNBt3Bjt88kK0pMqU7FMghe6lZkHPd2Q+ihmhTQ7SpIdrUEG1qiDY1RJsThPSBe8VrU4w8JHK/R1PMRRzCv2jKEYcE7hebYuQTmSL3epTbkcuJT62DqSHa1JDP9u4lhUEgCMLwmEcpGCIELN00vRrQpd7/cBGyD0xW5aR/mAN8NEwvW62AqPUFsg8+Q6XdAbo7yyE0wlXGRTMg71i9HLKNwKwykrwaYEQ3lUPWrANZMw144ninhtBZByQPeZweMAJTOYRTh3GDQgvZfr6ezcshmG1wqEQDenPrf4BgWSAW/3uzn6uAqBUQtQKiVkDUCohaAVErIGoFRK2AqBUQtSqCJFRRmy4VnJ4GXvfUpAqOT/NgXJtbe/bSpbm+AQFDJgMgD9a7AAAAAElFTkSuQmCC", + "image": "/api/images/system/indoor_temperature_progress_bar.png", "description": "Displays indoor temperature reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json index 2fc35d9e0b..fada452dc0 100644 --- a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "indoor_temperature_progress_bar_with_background", "name": "Indoor temperature progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/indoor_temperature_progress_bar_with_background.png", "description": "Displays indoor temperature reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":40,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":40,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/indoor_temperature_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/knob_control.json b/application/src/main/data/json/system/widget_types/knob_control.json index 00443240ae..03545fc635 100644 --- a/application/src/main/data/json/system/widget_types/knob_control.json +++ b/application/src/main/data/json/system/widget_types/knob_control.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.knob_control", "name": "Knob Control", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.knob_control.png", "description": "Sends the command to the device each time the user changes the value. Uses 'setValue' and 'getValue' RPC calls by default. The name of the RPC calls is configurable in advanced settings.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/label_widget.json b/application/src/main/data/json/system/widget_types/label_widget.json index c4f0375b06..6a01b658dc 100644 --- a/application/src/main/data/json/system/widget_types/label_widget.json +++ b/application/src/main/data/json/system/widget_types/label_widget.json @@ -2,7 +2,7 @@ "fqn": "cards.label_widget", "name": "Label widget", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.label_widget.png", "description": "Displays attributes or the latest telemetry values as an overlay on the configured image. The position of the values is configurable using appearance settings.", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-label-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"var\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"backgroundImageUrl\":\"data:image/svg+xml;base64,PHN2ZyBpZD0ic3ZnMiIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTAwIiB3aWR0aD0iMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogPGcgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtOTUyLjM2KSI+CiAgPHJlY3QgaWQ9InJlY3Q0Njg0IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBoZWlnaHQ9Ijk5LjAxIiB3aWR0aD0iOTkuMDEiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB5PSI5NTIuODYiIHg9Ii40OTUwNSIgc3Ryb2tlLXdpZHRoPSIuOTkwMTAiIGZpbGw9IiNlZWUiLz4KICA8dGV4dCBpZD0idGV4dDQ2ODYiIHN0eWxlPSJ3b3JkLXNwYWNpbmc6MHB4O2xldHRlci1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7dGV4dC1hbGlnbjpjZW50ZXIiIGZvbnQtd2VpZ2h0PSJib2xkIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LXNpemU9IjEwcHgiIGxpbmUtaGVpZ2h0PSIxMjUlIiB5PSI5NzAuNzI4MDkiIHg9IjQ5LjM5NjQ3NyIgZm9udC1mYW1pbHk9IlJvYm90byIgZmlsbD0iIzY2NjY2NiI+PHRzcGFuIGlkPSJ0c3BhbjQ2OTAiIHg9IjUwLjY0NjQ3NyIgeT0iOTcwLjcyODA5Ij5JbWFnZSBiYWNrZ3JvdW5kIDwvdHNwYW4+PHRzcGFuIGlkPSJ0c3BhbjQ2OTIiIHg9IjQ5LjM5NjQ3NyIgeT0iOTgzLjIyODA5Ij5pcyBub3QgY29uZmlndXJlZDwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IGlkPSJyZWN0NDY5NCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgaGVpZ2h0PSIxOS4zNiIgd2lkdGg9IjY5LjM2IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgeT0iOTkyLjY4IiB4PSIxNS4zMiIgc3Ryb2tlLXdpZHRoPSIuNjM5ODYiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+Cg==\",\"labels\":[{\"pattern\":\"Value: ${#0:2} units.\",\"x\":20,\"y\":47,\"font\":{\"color\":\"#515151\",\"family\":\"Roboto\",\"size\":6,\"style\":\"normal\",\"weight\":\"500\"}}]},\"title\":\"Label widget\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"var\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"backgroundImageUrl\":\"/api/images/system/cards.label_widget#background_image.svg\",\"labels\":[{\"pattern\":\"Value: ${#0:2} units.\",\"x\":20,\"y\":47,\"font\":{\"color\":\"#515151\",\"family\":\"Roboto\",\"size\":6,\"style\":\"normal\",\"weight\":\"500\"}}]},\"title\":\"Label widget\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/lcd_bar_gauge.json b/application/src/main/data/json/system/widget_types/lcd_bar_gauge.json index b2c8caa4c3..ace9a5de11 100644 --- a/application/src/main/data/json/system/widget_types/lcd_bar_gauge.json +++ b/application/src/main/data/json/system/widget_types/lcd_bar_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.lcd_bar_gauge", "name": "LCD bar gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.lcd_bar_gauge.png", "description": "Preconfigured gauge to display any value reading as a bar. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/lcd_gauge.json b/application/src/main/data/json/system/widget_types/lcd_gauge.json index bfe7a64a5f..e2d795b8e3 100644 --- a/application/src/main/data/json/system/widget_types/lcd_gauge.json +++ b/application/src/main/data/json/system/widget_types/lcd_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.lcd_gauge", "name": "LCD gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.lcd_gauge.png", "description": "Preconfigured gauge to display any value reading as an arc. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_card.json b/application/src/main/data/json/system/widget_types/leaf_wetness_card.json index 8d860b4f1b..e78d5a71ab 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_card.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_card.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_card", "name": "Leaf wetness card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/leaf_wetness_card.png", "description": "Displays the latest leaf wetness telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json index a063829404..a39b26357e 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_card_with_background", "name": "Leaf wetness card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEUjMwMAAACGl22Ek2wzTwUTHAErOwAtPgApNgMZIAHLzsPFxsLKzMLHxsfIycLNz8PO0sNDad3P1MPN0cPW28zW3M7R0sLS18fU2sfV28rU2snLzMTY3dDQ1Mbn7Nnu8+DR18IYFhfO0cXKysPc4dPo7dza4NHR1cTT2sPT1MLq8NnY3s7d4tUbGRnq793j6s3s8d/s8tnR1ccWHwDl7M4VExTJyMfs89Xa4M/o7tbl7sUZHwPt89wiMALT1sPV3MPZ4MPT18nw9dzNz8Xa3tPl6tkaIgIrPQIuQAPs8dwMEgDf5Nfl69XX3sMRFgElMwLp8NHh6Mrk7MoVGgLn7s0nNwLj68PV2MXl69Hb38vn7sgbJQGMkns3Tgbe58cnOwHn7tTb4sPo7tjX28fn7tDMzMI0SgMvRQLw9eDt89Dq8c3W3sjh5c/q8ckQEQDi5tTZ3Mne5NTc5cTd4tHu9NkmMAcdKAHU0sXg6MNHZgdWeNs6VwMeLQFkdkdObgMIDQC0tqySnHtoe0ze4s2ZpoCAgnknNQgrOQgiKwOIioMzRQnW2c/Ly8mRk4gtOw/x9uOhr3szQBLa4MdfckNgfA9XdAXR0sxgeDxYcTA9Ug8fIwZrhx7U1s/RzsSoq59RYy5mgBdceAfNz8tRayVbbz1EWxiutp+fopWWmo1LYx9BXwS/wraFhIQ4Sw/d4smhr42Ginq7xcojKwpwg1Rsf1BylBXh5tqotJRWZjt0i1AxMS46RRqqt4J2ilpngzdIWyhiggllfUJ8jWFvh0lqg0NATCRqjAuQptJzkDB9lFCOoWeKnF91jkQpMg65vq6BmFspKAd9mySxwIIlJSKFpUieuGKDm9Wcrc6otcpKUChqh9efsnCXqG7l6N6ImnBlbVBeei+ClGdnaWM8PThdZgbDx7m0w5yPq1VGR0JcXlcxMRPP0MdTXQFefdmsu9HN1rN6mz1XehdQWjfY4t13kNTIzbu0yW9RVE3BzqRydG5xc211eVtyfWXM4YMjALXpAAAACnRSTlMgALcgv7+/sK+vucF9fAAALQJJREFUeNp8lD3L1EAUhVdQ0J/hD7AKVuG2mWDx3iJMFZd0m85uAuKgCDoTFhwctDGNNuIHBCTVQkCr2AUEq61Su+U2Flp4Zlx9UcGz2U0mm0nuM+fcrC6sLvabunJ29I72SyWNE3Za+pynHRNpTdQ4aRZHjq1UShmjjXN+3Hk3DI0ahsFYS92spqkp27bdGzUaVmyc5P0761jSaK2VeX77+aci0VxRkxQp1HVDlxZBN+7dK9LiDLsbN86CboQvjsO3Oxy6LM2yLE2SFNcnWVZ2eHSrVNvgJM5eAcbKic1mXVk7PvGympyVTPrDYgyRZwbKuEwtsdaKJmMsGzKQsx5yxho1HVU7m6Esp7llp0gTty2TlZJpsixryZoNSyk2t/fd2VmpdYnaQ1Xd3LZlggGqxgadQPAbx1Fn6vAJHIBJk7RI0qQsy2Gem9ZY1aVZEjSsVpfxxNyjsroWed4LFhVv69pqI7YshdF6JD1wLTXscVhaeGLJWzGO8NDPZZnBFIfFKZuGGpKo2Vu17Jh1VQtJbpSWR2ePQry8vU9RYlj8IlSVDsqglp8kt051B6gTzUmphSVQvBJOZgFkKJsZIF2XRpJLqwmuG2Jvc4Bs+56c5XzTCyKWzGy4qqQeZtJ+f1yO0Q6FaNlK+nGcJq/UrNTQKssWMVNYYzLwxJBWXG3WksJqMHY7ls83d4/FjbNQdwGl3WCd6dI4jC78Yok8waCos/bwKUP1HYKFQAaQBqFqVACJiYO5q/d5ZXMkxsicndhK8l7K7bOeldbT0XC+3lSEaeXu4fcPOoAQmscZ7wmGHJx3zh3mGWtLbTkuHl0yNLAVk0gIYa13uWBmWeFW9frpvkgPQxGUIfvd0KK86Mm5BwECYCcM9E3RHoYs6BxEa8AgmBlmgyMpVm82dS4QrQ8mxHp00jEj1dpYJGkh0lXFbQgOybySpBQTk9bOAN16uOLcPAxf/RB6r2xK7LD1a6EUtQCg43Fmy5wLyVW+vfNx3x3m9AzhSg6HLBQWc16EQJ3rnCJakqqf4Upia2XgQGENbGlCQpMwf3Wtf7sRleTFkSR93AnpnSYXmpqE1JogrRuDZq3rvFVuZlFL24xflskae/w2oumbcoAUagcE9ojXtHhFBGp4A5dZSlI4FpsXL5Mkhiu0aUg8QLIyCZacAP4BuXHWIFxlFy0BSAOSFhynl1Z0ZXX12ps7Qsg6r9hi0RE0K2na7w0rqnOJGQFQ6W3VY6hmLAZL53SjAmTofD+6oRtKtIozqsX7BAZm8zTptp1GsnnOtEySApa1Vf726b4MDhTh9ZVCwME4KMbp9Ar+k6T4BBIINQfsqAiSRIFudf36tT4fzXZdExtZ91IiAzyOZJi36y01827xTI1cv3yGjO2ocTuPVLG0EhQ2R7xCn8wQvIi+oEtAKVXjQE0Qt1I6IvN9sZV4c3tMgwEJUwmANBSHITBOiijnnsSuyeZDV0aOLoBk4ClbdOWJBCBXr1793Pe5Xa+t/3bzT92//wC/r17fvPk6jE5nMYj/3cQn6tHr1/dvPoLOZ747v0e89vcI24MHjx/dfPeXHj7E9h+9wx3/nrOMrNE2yFoEgX5QXsesCQNRHMCdkyMnzRhu6GXOEnBykoD0C3Sy+STFpThUV7ciZKhCoUOlCBUdnDp2yuQUinSpX6LvXWIvuVPP/MmgMRF+vvfuTDC62W5vsx9qnQupvKPU+r88iiiN8IV3CBHBT/b7iFZvdJuMMW55vlOJbYjj+H7pFoLJHnvtUkVa10EcJ0vOXUVyLsiQjghcEcSrUDw4xyMd0rxinNaHgEQyRF6/oCIw7XA0wAGWp9n9N0IUycUoCDCEREZAVAdAUNJ0c4ktISZKWU2KZGDI160GOPBInwcAAclxihkIEF0CQoiKBgiEKs1lm6I5IPO8IggJAtFcrfcByyUnfnEzRJcQcat2pVuS1KEcgdwVyxbsI5+/aYqY1pBJSW0I5ACxFIn+XYWEA9o/51DP6A6EdAvIw2a93u1WaTAMmaAYIHUkREZpLhyTK86FpO6U6BXBTbWxmCbJMsu2q5cwDE9JhMMs0SiklKoEIIwpEtsYrSLzXhuGpIsVAcZ02V+Mk7dOp4MUV0jcyxVEpyg10TGqxBaMiwbed/xKa4l/WwAZxfFsM170+x+TCVKYXITNbQVbRS5RLSWHr1CkhKEEJ14qzBCQVCDQVuLB8Y81+3dxGgzjAN45hv5QQdBN53d1cxDBdnMQpwpu+hfY4XB4CwZNJYM4KRInSSCI1EneDjcVN5eAti5CwkEy6HAIIZ38Pm/e9o1tahrxe5frHeld++F53rxv3mvduzcYzL+/OH7z/hlCki4kivB3h6lTxmiIZKjX1ZB9koMhZgkyIgelNZg8x73f2wcTbw0hiUxtT21HUww1IxKEsr+7mkvKf0wNdoLM58uPx1ihD3wFUVdhBWlEQQoIDikBRAacagmuXV2SNIJc2YJgYS8hp9+PH0zezagirwlCksv1koBXUfwsV+eLipiKsq+7itWKqWtSM5nsjBFIisvv7Pm7l4PJbL70isEOCAJJXUVSUQHhLLONjUQ7Apvv9qCaGVGTjgFJ895CRUZ0A4xPQPrYBZotl3N/zZAUdJeSnJkuvlIWi59naiE2wxveQDSFM7vq6qUkZ/9RYhhUEXU/cgrJZL48nj+mCZEcyEay+HLU0/mxA4EkF3GOUiT04AmW2HgBPwmMyDJ44pp+IlLuxiy2g8SORYS1dyZim54jErdzLhciPVGSwyhliBojNNhPT58/wQiZzx6TAo4iUrL4phGUowpIFPo2s81YeDnz+IrJHuLMC5gwbGZwFnlxEjgs4pzFfsRcMxNOTucjNws7NvO8MMKQl5JGJVGQm/gkyDvsAGGDYDLB6hcfawm+uQrGVtAM25Aw4zzOTM5deGRrUYTli5CnCZycWyzgOKcOzlaciwgQHnDDYvbJyeezzSUKMqLd5yFBsBV0B5uJg8G424VDN9f0qLeTioowSmJaYZyUIFGWRokVW0bCKLwE8RglNZ2YCR8VRTd+7jaVlCHYBsZdCWZ2SLCt2QcEU63Oj95BkDAykIDlJi9B7FB4dsxcIw3lzyUIPSCBF/CIBa5ruCLDSzeQqJJcKgZ7sSd/u3UNjFvYPhuMz1I2ji+9OkhoI+gd28+sIEy9qATBCJGH6bHUW8UARC4EbToS4Tix47GcpyzIQ88VabGsx2rVPFRCU+wlqghlOARE7iXe6vcBkUGDUaa9OkgkKHiMw4QbfhzmsWU6AhBKFuFIqTY47aHXwhUXTlseaShWgTzh0An8upobIblysKSAPJUQWv2OIEFnDe6PYdD5VQmhLaC9MevT1tmaUpRE16QeglkKFRkiEoKCUGf1H4wV4Zw8SiP915GGIP+LYuroubGphGZ23I3gS4saC7nXH58rpa3njsU3/f3lmnVkEwiyVZQGkraSoCLYjIdDQmRN+uOOCk3pi81kPi2N+m84ZRyaJhAlaV6Tu0+fvoJjiCUKFJJyBxB9S7hYO9pfe39C9ks6m9zA1WK9Nbcr2V+UBt3VXkMw0odDCXmEepDkrlHKT9VL0z+mxU+VO3j6zVNoQlWh2wF6ep1EpVyTK+3DZpO7D+niO4KkRf8mlBRA9L3CmZ7M9JxuLPpRQbRFduJlBO/+OuXChevXL54vct08KW43ZadpzxUCcG2pqgmeU1sS5O4HQORl6zel9hLaRBSFAThrDW1po7VqU6mP1BRaK4EmtD6Cb0hFrZJkUY2ppoLBRAuCuonEqCNc8bFqF9eNzoyOz507V+LKIStf+9koIojZ+58zN16Dj+qP1qlBmK//PXPjTAJHdl2/jic5gLT8bD5wA+0t28nnLoaoK5dwfEUvG0Ib3SWDg2VKNhuf5cRNuTwZiXR2OK6+2rm2Q2/sndpPEEXR91Pb/2lDIUj97FlaWvM7A7vwOGwXPRUkiKbQaJxvb2/ZTt76DIUxXNqOPQcVbPSS2xtGEudeLlfL2eJ0vKtUKsWDFZktN7x0l7SDnUHHo+ak9dTdtq3NqdT4IYHrtuGL43ltQcdhit4aF1heeJUgeNbDlQTwKBQ5tOlsK2TReZw4fdU538WM/o5+joH3rBEpLJEM2tLqlaKCk3dlsWKWhLSsHUEhbVm1LWE6QrgNwxIeT47h9PYatqjRnRbDNmTQMuyadAxhSCX5j0F5Wq+jEaokUMDnHgozgDwNtuQd/e/jXcuE+Aw1zN2G071sWaPDEw3X6u6Ix0U4nEq5Zga/cGiXpZOqmNXGgClumdYWaTVMaxrpEc5yRyTbar2fPq12PClW1JzVhkRpbm0xS1Qp/hOUhSDzdXoEzzOye2aGClEQnVffgovetEw6AgZPc09Pj/AwDqZdEe0lT1qzp8XafLgJSeStzdLDd1XblIDIW2hHmlmKaGRda7D9YSiZDBrSsrfVvG2iAkiwhsWlS4EEt1cWkNTG6vV5XLYAucyPnxG9tHR+2tSfdXXQtak7GVoyGKcId9VA1m6cFJ2Ot9Z0Tosd+UTKkRkTkGpVVCuVlGkOiGHXPmzKx6b1eGCgWi0Wi3ajuF6kG0Y8vtIToYpIisoKo+IKp2IE/UCiS/mrpK02ubOOMaFGXt58fZUom34H+dx0vGlDF6QIDcZnT1NKlm3bDc+SsmtWSlnaULGG8rmsZVuVnDBtJ0GH5rBpm/bhL7a7VdrWqmGkaHVkSi7+tlQ6PSgxR6E2IUTlkzSE82PLUbfvFpbUJifn0clOQJ5/fX/lEH2SR22ILXvXs7cfPp8//+HVYlxlfygw0yk/4XA+v3ZoaGgDZ080n/MjcolELpMZVtmvQsexTCaVSqQoJQSaWSwo4YXojton3Nn7VfI3Sm3v3rE6JIC8eH7n5bXdeFp+Ee8qMM7KooOe+/tRBimA2EEJI0Dko1HF6PMhCR8iczg4xhCdpiMHJSXV1EQs6c7GB0Ow9PZjMPQ239m5UCmAcCXYRx7cu/fo2rVHL55buHGCEKVlaySGKoMUaxmhHXug4AASZUiCgqNYbBjJqDAmFosdw+t5hCQqfjFkQStE0aU0JW1/hEByFRJAHlwoFK4V7j1/wrdOWII0n5OTgssAAwpOni60KT6fqIJQGHKMTjSK4BASroCiJE1IFJKcz0g0LbPVbLmHKLTC9PJa2g8KJH+AIGNX6/NjDJmaKkxduBSJdMOCewA+hZdUL5URX+evqTDmgcIQBKVQI30aktunICTZB0kMDN0PIPQ6AgcgmQxBwuEEU4rVbBYUDAs+Y6AkCy2vp5NUCV2DA+d8yIUHNzYjkQj+HfYLGJRipVKAAccGZAiVJAhCP1kUoiGjuX379uXgoIwCFcvQeTMEqgNU0DG99jKUFH8LSLFYfZwlCs8KSoFELa+lLPkTZBJj8rEeuDBVmJvjRlZRIFF3U/wltYYVYCgHjTU6yYdpbWnHiRN9feMjBNEONKIKyJEDEFWJSobDraCbEhy3EFBCmBUaFVCURD0B/g1kbJI6QSWBmZnC1BwqKSgIB2/Ge6BAGeoqpR19LImiFDgAaToIgrOndTUy4jsO0kQAAgY7FATRFwDEP2SHkvCoQKKfnP5Jgn3EX1x4r4VMATLj3w6KRLDA0tPlLI83GBhwMJqQPg5Jonnt4IwDQhlByHHwYOwASRCGDHNiGRxTmLFf5zAcExMTJ2+Vb2XL5ek0JKBoCT03BeXXYYcEmvkAVhXn2g/IMjCyejAQBeFCEGwZGGxkDyCaoUOQYwpCEnSgHADEYEI3zDisc+bo1gmELXhvuSzdrST+zPcjKEVdvTTkFPogyVhg6tHcI2Dm5i75jO5lYFSLmjGkIChEO1SUY5wYrQ5eWQgkCBdCWzsctMb2+13Q+avAAcgWzsTE9HQ6nd4cWep3oiU8860QSFAIIPfv38OwzzEEw4E6mJGi8VZREDUgxBgZIcb4uGZER0dHQWDQKBwInT6HIQf2M4T6AITDPTRDEGYM0O+BNEs6tYQotKOglBYIJOQYC9y9fecFUaYuNhmzzEC0gyHKAQYyrhQE2aMcDFEOltDy4hykFljCoT8ZgiIAQHzIBAgqYKQ3oxPsaj99ggWS41yKhrBkDJDvbNmxa1NRFAbw9xeodIiKoC6CcVCcRAkZBIeIiKg4BO0gCBoQFTooooN0N6hQ6xuiqIuDCAoqRiPqkLwnxJZkEDM0UCxIoU6ho98554un775+pSR0yo/vnntvXl+/vnO/NXvz3Oz05i1bZcb16LOIgTnPQnQ6FKK7VTAd8p4OyHTg0YUEkOuTkHgcwrhjp6SMrJUgcsCpBBRCjgoEklPR8OPwTWv2HCBXhXFN2pAWspETg/cphI6Ld+9i3z1MiZREiDJEUnPJmevXJyFhL9iy4HgZQLKOnQIpFgDwTkSyUR4peSOkRF/eDG/NPpcZ4YarDpfwum5XEfQhuy77uIuYpIS/HNbgVGRUdBoSgRw6AwgkhMjBoYXc0yWlYSF0TODXKqGElVgp+rSIEEqiLzNvnj1vIW+hAIMQSIyjDi6sEgqRE69i6wqNKAUSOC4igEyZRGbFJMjJKiEIZ36fQjgaNuVkmEOys1xEIEEUwv9nK2UDKAJhjkfvZ2betRqNZ8kKFhVCCCJXREjUsZe3qfNwAAIFCAw6QS5q8GZqigMDCCf+dBUShSCcFJ8QdfiqooOnGiAmcQjC9bUBM3L0qEmih0+fNlqN7mi0AoOFCEQk6kAfNiFwhBB8fmUQIhbF6JQgtVoNEgzJJCEadwRDTgdT/C8hBJJCARRbX94IrvEvnj/rLfX7DtlOhxzlfIN5MAmCA0Tn3CWMQxDOyiVAkMtV2X8nPRmHryqHbELwUpiAwynisL8I5cK2DORGOlrttZMMZBchDBB+psMBiCdgUAIEKZdcInGGOwhxByAWOijRW1eBkQX2yiE3v/fn4l7/10AhdLjEHUbBsWFbL2IaZ7gjD8FGjM1LZsMY7shDyAgkbEQhRUkBOXtqLIn6o/bnz3EcD36vHRFSiJCX/6CShK71BPaiAqam0Z2Y5yDiDh/1dSFZySaHiGX6w4/jhIz6n26naac+WM0ycK4rhNcSfKetqMQgpjm8AxsWsoMMjzsOwGGL67RSIFFIMCIMIblKnCIQl0wv//zwyCBpN0k6aZKOl9bae6LP+x6JUHjR5UkOg5nWdXghClEJbl22uORcv+ebryXXCN7wk5ukkIGUy9PLy4s//zxSyKCbJt1OOwsZX7As5yUisSujS6QLOtxgyTsQWV/cvnTsUUpesnbUNfrBKVEIYo5yfRlZlFaib3E60+4lzSYgVxRCxzGVECIPPtAIHXbmlQTCxSUUMqbwIyHjEh0WG3peuGSNkZI71oMZseFmXFI0yCJaiZLB+85Sp95s7ua3c3UwPFH2WCO6svZzoH3ks5tVrhIuKygYSBBMCy7EnBRKAghjjSA5iDWyqIkwHWnSrHfS3+oIIxDOiG7GaEEYlPAqnznRcVukxBshg6lWAdHtGNcW/3JISCixRiYCCG11czx58iTqdiBJ00+/VuRjrwPx850Qd1AiwQ7m9yxzsJPLtmVlJcj4TsxWKCFEEhYSUhTCPgBZSL/Wk26S9lZtOpyA8JkDQgcgJTSiu1VF9jGWIiGOkhOgZGe96hDNITgQpbgkB+EuNZGDeCONh5/a0dfhQnspbc4vreyi5AghFgGQol/TS1g/JaRiD38g8ZQsCgElK3GIIhBKSAklbvFKkKwE2+/C93Z7bm4uGqbf//bq8/15g3gnfrwzFaPsR+g4qBIe+bRAQ4lXcgKRG/CYIg5KGFI48UEnhVDikGYcP3jw4HH8N/5HyZ3EuhRHcRzv2jwPzyOmmIdESrAoEhaCBREPC4mhKxLTQnRhw0aQNNJrg6TtWiRdPCuLrtpnSMRY+ogdC9EYXkQiEt9z/v+/07+a+mu1j0f045zzv7f33kq9fXnubv7RI/a1Qg0cRxA+oSI4iEB4EgdZtJk4yuc4W5GYA8jERr3eKEs9DGISKEiU0ikxCGmDZG4nZ4rFQhFLavAB25CXd/L33rgi2INBUBCT8CCSAwJB4iivxsZ5JhAEPkfq/penmmSX3Ig+IAmTYpLOkpDgAJJPSkCuIknlb1OQOx+efPjKmhXKITeFWHQiwrNBZPPiKJ9/hcibdksz/HpuX1QRq4wuxVB8UTqbyxIcmXypVEyKZ5LkTCrPrlb+/pO3gwuMwLOUJ2bEMUj4efmvkBa/0qzoNVP1HTtE0tMTKCbRI6ehKO0lMYkFR1/+9OnSGZIkqQdP3j56lH+QzzPs0QEgAsUZ3Lky3b6HLFNIkPCNlv5zW+qMPIJD7lAd54ffyy4jkhyQHWvX8juMIRAkUHRSTDLmj5IMjr58kiTF5GMpKaQG8/mX+ZeDgy+/8uo3kRjjCIQTTJyT8cGkDj1p439HXRybOeZFZJnGoQbNTr7ZEkiFL6bugNIQkTBCfp35TJAY5NQvjL51ealGSW6pe7fzg/nBwcF7bu/XzlDu5sGym/DgfhHTjDUzYOg5Wh/pmvdaHjuUTZxjIt+sAHFfAOnJIeNZCHsDJJr5TskpjRbmFBAc6x6JoXC1Wi2lKMZT7hx8OGo5cvLILznKj+U8LT/afpqJOAv3pkzBIgsnEf8M2Qn72Q6D7DVIJJkfJN5B/Fd9GrYjA/3kYX8Kwpcv379wOGjuXE4Ru+z5Tc62x4TLlzvN1vcyxwcE4OMVCjkSILIklHfubNFYE3EQYfCjQ7INiYeMN8h1YhJaq1Colniv3s9b3acv73x7/emFfsZqApk6taenh4vhpkyZcjDKMUmsu3nTmaDkBLJVp8lFCXJWYXf60M4cFRCIXAe2c+dJaSze93pJ2LKYRClaE4HEjtHyoJCD624ntFUBSTH1eKnPpSuScDmiZH57Jmf6CLY4KtMajSWto0evXbs2b7clneYBjSwFjZ07KwLSn+XS6SCB8ScJFGqiExIc2Ww2SHTVKhSrpJYKjlnny+XyO81sF/8JKJ9xEjyTp5A+nTWNYuBUBFKn9cn71pUjFj3fSQ1caKm0DMrENEESKGaJKXJEfv6k+aEeWR8kCwVypsTSW6vWqinPWLr0xkWXadPkQleX2eOJHeODwyVCkydbnTJBNIWub0uuZTPlNNe8JFdOp3OQ6bpOia1fOin73cwT71AI1xA6SYZhTwoFlq1qAUiQ3FjlM00CBQfBYQFDVcg4H48hz02haf2cpoBpNeVCo9XL0w1tLCDuPFx6hxzm7qSEovSR2KGU0ZMEUiwkxSLDDsQxqMjIkYFyUSn+Ut6AMAmMEFO5psoNDTVzTvKOntO0WZYTagMTg4PIAxBiFIn1l5wZtb4CoZ/XBbIwI8tvsVCltdpmBIjEykKHRZBhRCU6NyZxkOcCqM+U1BVS72OY3AhZXch2yM/wpOUHCZCoLCa5efmYQnw5gMAgc7Jj5gORcvRfrQFxCoMQo0ggxBJiEucgC8eNq4zg5Ix87SQZd1YTi9WFPKduVzgedK1SKS8nsSTEQTiKJxBzYCAK0d5i77dQHPjABjGGWNot5rATeTxg+UPmN3VKdCGAcpA4CpHGen7zZqXp1gQkJFh2+GzfsR2FYxzTesAgo7IxhNbi7WGRzfvDFAi9GySi+ICBIRLLHykztST0WYZQF86cK0UjmxB59KnTbOG8dbiMgLsYUFANz4jLMVwh4zJ+2JFcBQJilkFiSqTJeoiiHEUlYWYszx2EqISqhA3pRb6x6qBudIaGclK3s5qb3F0uyw3CsYMy5RlhjBaFOaLWSkp0l0IkSAzSaTEMAo1JLGDgRBAY8iASRl8wOVkF+pqUZXgmM5L9s+Yxi752d5NkFrKHaAyd8mxwOAgVKXHjzW4KhRsSg/yBM2eOq0tM0fDkSREkBItAeG3SWOwWyHdloZDfV96woW/yKW6TJ2dOLWQzrltxTkuDGD0aBdfSKQMMQ8ItQOZTkSLlKJR4zx627NZaf4izTJsTKpONJ6bhPgXgKc8UImPPq4UBRSyZkRSkkZkvnfV8PJEvKmGXaHS8yVIECnWE+BUY1YjRY+Q9e8LOVrU4UKwCsWH/C0MfrCzWZ35ktAbPwlqmS1IlrM9aEs0Qk8GvKUT+lEKm+Yz4d7JZPruSVZluEBfcLiWJHtkKMxJB/l2YwKEu0SdnKm5sVJULGxqL7JtUON9fkeqNIAqxObZJlsjr9YBplCY7gr/NLzWQtCALeKtbglEEAkED5D8zKkyMakDotYfaTTmVPM+FzjKIfDlCGktfiFRPzvhLQw63RVVuJNJgwaHR8ocPFWlBBHImKfbXrg6kfD06IcM779wMgwWN1Eb+rmHDc24PfmiIpai9IHJBiVujRw3x2Rp1N6USvPIcf8AUFquNWmwmcRB5GjcfB+8QT59JPrL8KqSbiqjHLGhcRkyzj5W52vj9fCDUA4f8/Y0KDKK91xzSwnlHnKjP2i8Lx+AWx0yG7axCzsj2sKvWMk14GgWHv8oVpvLeHO9HTm7LiukOYper04guz+LGssQTYxYgMGbOpBycEebYL+NeZEp+QlYC+TfAENx+RjeY/Cdt4UOkzcaUnqlkisRJpnPtrko8pYEab2OUJcyHITqiEnFQDhxA2KwnOu60VncVse7CordVNNnFi7xFvsIRi4ut1sWDGCYslkwQy4YNQMjsMV7iMMOfP68w8N0FCRBXjvXkUZUViw0ikFlsRP4LYoUwhUYY5fKVK9eucRSGV88FyIePcfWzHF1aTFl6kLjjGWOkKiRYNF1Kho3XesBQSI3xkM7qfkasEtxRBAaKC729/qgYnHlzj285fnw1RelBEij2f8cY5d8WWk5nSCEUBIe/ovNRrdbfPzAwwLD7CQHy7/GwivAYKa6JYuM8IpDFhynIki23bm1xEgIFCxK1+MLEmL96wgLAnok4gOAAgoOaIAHSTUWCpaMWGzfOm8uhSpEwGnSYQm4dPwkESaAQRyFh9gPG8lsJN4WM8xAYQKr9ZODhwMB/QkzQORi9KECI4+TceauBTJworeUgUhKNUkhnj4H5L4vrLBwGobVqSB4+VEgXw24MENpRTrHEMebOEwiS3t5eSrJlC5DDE6ZOkIS6bAgWJEbR/AsTOquttfprMETSVWsZwzoKxBI+zbfkOA6BzOvtXdyrYdylIIenOohvMcLkE5GI5a+UGGOd5SUnHqFwSTHnXe2iBIYiCArNXA9BosHD3ONQyMSJSsGiTRZNi6Nw/4+qsPgaRCvCKfZ+2quLimAIs6EMKuFqESAwJBslvb0T5bUfJlN6gBAvUc2UIIHCWQOl2MAYKKLY4rtOIEQgIqnVaK3/XH5todJy/GDcjlWjCsIojvsM4qLIFhJkI9hZWSrY+RiWqcTKxl6wkLALtmnT26Ww8gHEF/EN/J8z39wzzN2LHqPcJUHml2++mcmswlAHEDQCVTmUBsHBgIkhoKomrsgjtX0kTDASSiTOJsTNboogJQHyP4qaVXaY4dDpZRCjJA9wcO1gietTEPP6EnbJIUyJpM0zIMkEeVaQ61dZtX4D+fehcV5uD70zjFAOU4DsdwwZyMMqiSUwmqNXxf/NriUUMndLcxTEy9a1IohufgWxQpB/MlDUzvcBCb/McBZAfxBkRy8QQUgcBdEnLwNBUolklUBQcAn2i4v4nz+4xf7ee8SQbUYWKjcEEj1o75gYiSaXJY8fxyGIbC0FmSXjknwGYokdQIS44U1dICUBss1IZxB2BzrCO3lJDom2RIfld8fk4pvPihuHICQOIJIUZ6rJCsLy20pyVZDjkQuhGyKId5LNm0bPqWLo1MFuzTglIZ0UiT75nN2deOGKA4grYokdgdx3JBna/iykStIhXJkKcjoaguRsRVCEgcPRdk00tygJiaOKgaEgHvxYjw5xntTMSvryZcpaUj9WVUlE4V6L+N+iuD+UNaTPqcZ4X46nchhCJoYNcUgyVoPE8SQFQbBIypDJNUF6Sd5Jcn0nhW5SPt2DcB6SowhjZal9q4po7P6+H3CURIKUgr3chNlB7ACSnKnI5HAGSJVEEi+/NziceyjWkBxF2jqFoEcDxxHIh4HRjiXa/mYGhhRkloRhSBjJqiRc7V9dXfNGDwX5yG9NLSWQlKM6XBEmJXCDt1cHE4gOvTX6XWViTJDX1e5dUY40+pQO0S2KS3JF7o43JxRQ1pCUozOKkpo4fkpf7JUSjA4UcrwmTRIHj5Fkdw9jiiFjSd4B4TLIEh3jA8mSa0ettxsSlaYYu/22Y/mRHQivlpJsQyKZg8OQRXJHdyCpHinI6oTLdIqjEfyxMOzYKXFsTCsglrThJ08KEska4lNkXrkkkvB3fVV/nP6c6JGsWvPWwU/dQ+ZamFGOkswOkvbwbHLGfcSOyrmS+Nl/xgGkSQgQJJ/+HL38piJVDRisnwc6JJkY+xZNq5QkjAlSh10QkVxWxo2dDxxdIkESmCCSGHIrysfTsSDe2XOq8gi1V0yOnA33PZlbzsjgyY4sVzMkDidTazMwiCSmfP2G4/aWHXHokS854zJkZo33ivT54iALxN0eSJ1LnKkio4TeH/f1/4dcEDm6hKlFTZRharXWeKMeZ9QvW0l6hgl1wMmLgjxXGoQvwL9ro18gjyZJZWNfX0Muxmpc5K1wIsitEgj5bIZKwEJlyL5D0hiKN3uVrJokEH1V3ZEicRjyALEklBdQ/vJxx65NRVEcx/M/xLVDpbRC2yWTW8mk4F+QIbg1Q0an8FAIvC0IxUWcC8HG4Q0ODyVTNhUy6JgmUkSpkzg4ufR7zj33nrz3aH+FNrkZej6cc1+TW5Id4pL7pNmD8CPOVJKQHEi9Iy9phigIkP0ACWGWlHHoECQ6UlUIr7kShNAOYg6DdLckUDRBskONUKKlreGD4nSNR4LDIEQhMGYvGK/zBNl9awocR+LQkkFoVMCS7gZtFBVTvwfTQzuR821hjvQKt0sc0hWYHUHEaNmaWK+seXB4gGShIxepI3xWLYT1ei2OPXM4Qh0KUYn+74PD6rrkGcu9obzuSJI4YyaJPt/ztvE7JkmEOHG6mv7OuEOTZ4TxurCO7H78fvkHRXSEypPDYxUfhjPEey7RJ4ss4wASj61hALF7HvURbVFlxkIoXtKRWxVII/koy/pZhkQhx9eLs5VBZK72645JkljNQ1KHcJ0a9nqvgPilVxwOad7y3VKzwOiEwyKVGKORcaZ5fa6j9e3359X88l9qyJ4dszmE2C6xkoch2xApy5YjhNY4hMiygmPEFCS0RiyiiY7tJ/m3QgZ9acnow6cWY/Wf9yqcjZcJgsRjXag0hItqA+KrQGhZkHhC/R651vlBFw4kJEkOkByQOx3t94N+P5tls9Hf1vGPxfzr6st4kz8JjqMoccckSPjdqeSTkzRaLEpYZVkhWjSlS5kJopuoFpM4hNh8YWg4mpA3T09PBzPZ763rzXw+L64Wm3yKowHBAWQyMUgq+UGC2KIcYjlEC5fRqjjsKkHijThdFUcNEi9Vbb6q+fn88aMByRiv1oK3gOfT/GpTjDfFcjnVlMV0WU7fLcuC5EVZlrqqd/V7nsvqL3ngpq3zZ5EaCMP4qqAfLemsUklIl3yGY43gcCCkEJcUM8EixWSECGGLBMygk5A/wmYNBGSvECVkm2zprqBc6RP/NOLLTebN5O54f/O8T8LB7e78asYKVv8sL7Gs47BMOHn19Xb7Zv4+v5lv5xkDy9t5foPfdztv31z/jaf/zk+fYiCQ/jdSz3I8Tdd0x16vV/tBqafX4/H4tHZd4rpRHuY41GNO6kiIMgxF6OJKmpLIL+MwzKOoLPM8ynM2FbSSDfV94pdhRP0oDL+FiJIzEkUVbWi7fZPF/U3PCvn5xdSf+ml3Pk9T0XLOWCb6gsdCvL4SsQjDYNnYIDZ127m6spPAMRPPC0rdcSzH8TxPwwVP97zESzQIoem6hky3LMuGUVYztn9bk7quM9f18RVGbkoyRVBsCQzfj3xCSEUqFvmo3o/I9ZiWbpqm7dTSCvPT7fZLQyvVUhouwRijVSdxsWre3b6jxY+bfiq6PuaHjhU3N11BSRtzPomYspiN/ZOr1wHp1nCtaQe2aSe64yUi8JIksW1dS8Cg607i6B5mFL6IgLFALDiW5mjOAvJm9EmdZoT4KBkwJM3AA4jc93OogQtuBAowRW7kki+f94xJKTPselurY9f1RVFUVUWrlkaUVqSpaSuvX7S8OR3OF3469QUtThOXfcH6Q9+0FY9rnFHGY/7ufHkCCPyld3ltOvYSSZlAEU8gNW2PcVN/DxILmmiGgeoXMBw1Czl+wsC8Qr+ObpjVCgyIDBRIsPFoIWSQyMfuY0ISuS5lPi12u4JRSlA6q2olcX4+nEDWNS1tGzU0X+Z3BR0+zh8YLhygTNt0bX+eKsZQOi14USBrYxHH8fXny+Vytbbt33qgdNNMAtMMRGDawizh57W5CJBYiwKIZYY79I1hQQ143dYsZ7Xdjn5I0hokiGypnaDBUT4ScOURyeo6cv1MYTlNK59O+E+DKVNKvphfDE1dpxLvD/MBfdQ1suuGATUfDrupP7x7x+npxw/g0aqYaMvY8IFRLuKJo6WA0cTruL9ACrO0zcBG99uYQQMYDNsJzEBPdHOtQQHD8ixPMzQIY+i68DRkIIDVTd3QVtfXtZulWaayKPez1P1FAPf6gIqYG4VlXl83fkbU8Sg5ycbUbZtzp8ajHObb2xdtUx8zImVVgQBN1vdt39L+5tQ1h8OZc9oUlKmIFZQ2jBcHxo8vwjiOeHyJWc9NPAOuzMQWIgi03IMUMK4Z23ZQGpaTePbadnRLNwzN8xZ/GF5iwBUWABYOHbEYXzNWd8da1XD3cVx2HKL8wkAK30AGF2McaJZWqm4mTttONipLpRrHYT9//Hxo5Jf9B7wes2ibpi8QjayaFiK1FUgKPlHK2r0MaRULjILz3RkI8AYUuVyEQOUiicEhlvIDc720l+PEMiwfeugpSIDN32xQPwp/ttRvPAQR9FnMj2/10HcPVveOKlO4Z43bpclysoSC2+F5GhGApEqxihCJ21OmUnXYD8g6CYH2pwN6akDIL5/7VlVy6JqmxY0CTmAtdDmfOasaOp13bNhLk7exX8eXlzvGxcQUDfjLK/EaEkCXIMdYo79Mx3Fs2GS9dh4/0vX38EXg6bHAh+Aamm0Zhgd3PH/rgc72NAf9B77NanXn3l1X1dBDjfuRljlB4SolAEGbpSrLjkdwwScpKMYjnp9QYP9BymHfncBx08MY8nA6y2GAp6Vs8DJm1lYQIgynHY9ZxRm8Xex6IRgyzvkUyonzCw/M10KI2Fzuu5iAETqmEHapo5/wvNYfW56jbz7pYFs7z8uNtsixsTQPkqD8xS4Oemtzf3XnJ/BWjWBWBRhPAAAAAElFTkSuQmCC", + "image": "/api/images/system/leaf_wetness_card_with_background.png", "description": "Displays the latest leaf wetness telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/leaf_wetness_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json index c11a75bda7..5a93ea9e8d 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_chart_card", "name": "Leaf wetness chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/leaf_wetness_chart_card.png", "description": "Displays a leaf wetness data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json index 99159a03cf..bf3413633f 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_chart_card_with_background", "name": "Leaf wetness chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/leaf_wetness_chart_card_with_background.png", "description": "Displays a leaf wetness data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/leaf_wetness_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json index 2f8460c7cc..d9794a2eb5 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_progress_bar", "name": "Leaf wetness progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD////19fXg4OAhISFLcN3j4+M9PT2srKxYWFh0dHTx8fGQkJDo7fsvLy/Hx8e6urqCgoKenp7v7++7yfKGhob09v2Opup4k+WXl5fS2/fV1dX39/dhguG5ubmpqanH0vVsiuPLy8tmZmZKSkre5PewwPClt+6aruzCwsJWed/c3Nx+fn6Dnejm5ubU1NSxsbH6cLmjAAAABXRSTlPvIL+vAC9A4IoAAAQySURBVHja7M/BEQBABAPAOIynp/47vTbCZDtYhD3Udm4Bw+R6DYN3HjAPlSfgSqQUIaMIG0XYKMJGETaKsFGEjSKf3TJYdRyGoehKcLFk2cixt4Fskv//wpHShkzn8TpvFQKvFxor1ln4oNb0bvmI3C2/XiQlulfeiCxSvtXIQKNb5Y0II33XUqzyZiSj0n9zD5GMmd6EQT/J9SKpquz10rsQlcrogyJjxOvsnerA3J1z2lAbSS1DpQS1aJ9ibV2HY1RGbFwvMhkY7C8bmJEpMcD5OZpCE/RRCOBkmaM9fIcNyDtkrkbeNy/dmrEx9HKRwi4x0I8TN38cjgMLKYwo/A6OGBRMpWQOihdl8yI+DStNwWTMV4vs5yfjx63bIX+JzOjEG1pDjfPt3CESjLr2FoUgZiQl7u0FOVFJ5WqRikeIhgF4ESHLDc36QDu4LyKGPZVmBrJ4qzulia4WGVglQoI1UX0VUVMm3VYLYQ1s+ioikXn/tTNGDFZW8OUTacj+LHGqxR+vIgJTJ2w9uX9FMtq+X1R8cWioQx3tOpFePYkyVKp1Gtik4lWkwO2KxebBRVHbKdLAQxQzsUnr0JhsmxjpOpE9jZICyOn53UbfRU6qPK+gkxNATxFaGLDh/Rx9x6sBJnSJyGtKKs/1p1ysZ1I6+8fGmc/f+I/IH/bnkApgGAigGBoYrIH5lzlUejjt+3EQWRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RzRhZ2+ObIuvdDphMke+WyM9+HaxaCEJRGB6tYA2diW7kCDpII+j9X+5ysrhwB96a7ciPHqAf3aWJrHbnoF4vpJAznqIXspB4jF7IxhXOPGBb/RciXIVktGhUJ/VCIg8FXz6L4pHphfiYg5sruToAQRA2GIFOLaTLtyUJHrPAJ+h0ISSRHoCLaVmsh1IXQkwLganFiNp/fCckeT8fJ5UFjbehKt1bnRBL1mNGLHYmm2izhUadELeSxblCRoNdNLYi6RyTS6ffhF2psMv30ah/sRKSlACcXNyiznnvhgAuhD/vrfXs9Y47+5OMEG1GiDYjRJsRos0I0WaEaPOCECNs8jwpcj8k8ySTIp/bIfw1aXI7RHjKkyL3V8RkNqJpRj4v/mo9zAjRZoT8tHfHqg0DMQCGz0l+Z2s9HBEaBAaDt8Mm9vs/W2uo14KznOLoh9v1cYNGeSsg3voHUjrLVK4vAyBmJvtAhyGigk1UrdVVgaEwGpP2MstxyPKAXP1LZIOo0M6UFYbxOGQc3EC+2F7OAfECUYGZ8iJE5pbHQs12iE0sxmSgz+MQsnZG1XbIU20TrF2XeQFC3+Ml+Rvoszf7exUQbwXEWwHxVkC8FRBvBcRbAfFWQLwVEG8FxFsngiRO0T1dTnB6Gr6vqUknOD4tv4xbc72/e+nS3H4AH4urRIckSugAAAAASUVORK5CYII=", + "image": "/api/images/system/leaf_wetness_progress_bar.png", "description": "Displays leaf wetness reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json index b341d8163e..9af5a1230a 100644 --- a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "leaf_wetness_progress_bar_with_background", "name": "Leaf wetness progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/leaf_wetness_progress_bar_with_background.png", "description": "Displays leaf wetness reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/leaf_wetness_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/led_indicator.json b/application/src/main/data/json/system/widget_types/led_indicator.json index 3a8ceef5b4..262757fbe5 100644 --- a/application/src/main/data/json/system/widget_types/led_indicator.json +++ b/application/src/main/data/json/system/widget_types/led_indicator.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.led_indicator", "name": "Led indicator", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.led_indicator.png", "description": "Visualize the state of the device. Fetches the value from the device from the attribute or using RPC.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/markdown_html_card.json b/application/src/main/data/json/system/widget_types/markdown_html_card.json index cdf5a6fd76..03c8fa74df 100644 --- a/application/src/main/data/json/system/widget_types/markdown_html_card.json +++ b/application/src/main/data/json/system/widget_types/markdown_html_card.json @@ -2,7 +2,7 @@ "fqn": "cards.markdown_card", "name": "Markdown/HTML Card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.markdown_card.png", "description": "Renders markdown/HTML using the configurable pattern or function with applied attributes or time-series values.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/markers_placement___google_maps.json b/application/src/main/data/json/system/widget_types/markers_placement___google_maps.json index 65e4261d5f..625afa95ce 100644 --- a/application/src/main/data/json/system/widget_types/markers_placement___google_maps.json +++ b/application/src/main/data/json/system/widget_types/markers_placement___google_maps.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.markers_placement_google_maps", "name": "Markers Placement - Google Maps", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.markers_placement_google_maps.png", "description": "Allows configuring the location of the selected entities on Google Maps. By default, store the location using 'latitude' and 'longitude' server-side attributes.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/markers_placement___image_map.json b/application/src/main/data/json/system/widget_types/markers_placement___image_map.json index 68889552af..4ba97dd546 100644 --- a/application/src/main/data/json/system/widget_types/markers_placement___image_map.json +++ b/application/src/main/data/json/system/widget_types/markers_placement___image_map.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.markers_placement_image_map", "name": "Markers Placement - Image Map", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.markers_placement_image_map.png", "description": "Allows configuring the location of the selected entities on the Image map. By default, store the location using 'xPos' and 'yPos' server-side attributes with values of 0.0 to 1.0.", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 0.2;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || 0.3;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"}]},{\"type\":\"function\",\"name\":\"Second point\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 0.6;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || 0.7;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"showLabel\":true,\"label\":\"${entityName}\",\"tooltipPattern\":\"${entityName}

    X Pos: ${xPos:2}
    Y Pos: ${yPos:2}

    Delete\",\"markerImageSize\":34,\"useColorFunction\":false,\"markerImages\":[],\"useMarkerImageFunction\":false,\"color\":\"#fe7569\",\"mapImageUrl\":\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTEzNC41MTgzIgogICBoZWlnaHQ9Ijc2Mi43ODI0MSIKICAgaWQ9InN2ZzIiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC41IHIxMDA0MCIKICAgc29kaXBvZGk6ZG9jbmFtZT0id2ljaGl0YW1hcC1ub2xpYi5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIwLjM1IgogICAgIGlua3NjYXBlOmN4PSI4OS45MDc4NTciCiAgICAgaW5rc2NhcGU6Y3k9IjQ1My43ODI0MSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjEzNjYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzIxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTQiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpvYmplY3QtcGF0aHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1nbG9iYWw9ImZhbHNlIgogICAgIHNob3dndWlkZXM9InRydWUiCiAgICAgaW5rc2NhcGU6Z3VpZGUtYmJveD0idHJ1ZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjcuMDcxNDI4LC0zMDcuOTAyOTkpIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDM3ODciCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzY0ZTU5O3N0cm9rZS13aWR0aDoyLjk5OTk5OTc2O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJtIDkwNi4wMzMxNSw3MDYuMTMzNjcgMy40MjkyLDE3Ljc5NTUyIE0gMjguNTcxNDI4LDc2NS4wNTA2NyBjIDE1MC40MzUyMDIsNi44MzM0MiAxNDYuMzkyMzIyLC0yNi4zMzQxNSAxNjYuNDM0NTQyLC0yOS4zMjAwOSAzNi4xNDM3NSwtNS4zODQ3NiAxMTQuMjg2NzYsLTYuNTI1NCAxNDguMzI1MDgsLTguNjIzNTQgNDMuMzc4MDgsLTIuNjczODUgMTQxLjc2MjIxLC0xMS4yMzA5OSAxODguODU1NzgsLTE5LjgzNDE4IDM5LjgxMTM4LC03LjI3Mjg0IDIyMS4zNjk5MSwtMC44NjIzNSAzMTkuMDcxNDEsLTAuODYyMzUgNzAuODI3MzUsMCAxNDYuOTE4NjcsLTEuNzI0NyAyMTguMTc1ODYsLTEuNzI0NyAtMzEuNjE5NywwIDExNy44NTUyLC0yLjU4NzA3IDg2LjIzNTUsLTIuNTg3MDcgbSAtMjUuMDkwNywtNjguMTI2MDYgYyAtNTIuNzk5NiwzNC43ODQ4NCAtNjUuODk1MSw1MS43NDg2NSAtOTUuNjM5LDgxLjQ5MjU4IC0yNC45MzEzLDI0LjkzMTI3IC0xNDAuMzk2NTMsLTE5LjEzOTIgLTE3OC45Mzg3MSwzNi42NTAwNyAtMTIuMjgxNCwxNy43NzcxNSAtNDcuMDAyNTcsNDYuNTQ2NTMgLTY1LjEwNzgzLDU5LjA3MTMzIC0yMC4xMDUsMTMuOTA4MTggLTU2LjAzNjcyLDQ0Ljk1NjY0IC02Ny43Njg4NSw3My4wNzgyNyAtNC44MDE0NywxMS41MDkwMiAtMTMuMzgwNDYsMzUuOTkyOTggLTIzLjQ0OTQ5LDQ2LjA2MjAxIC0xMC40OTY5OSwxMC40OTY5OSAtMzguMzc3MzMsNi4zODU2OSAtNDQuMDIzNDUsMTcuNjQ3NjQgLTE5LjAwNTAyLDM3LjkwODEyIC0yNS40NjUzLDEwMC45MjM1MiAtNjcuNjE3ODksMTAyLjA1MTAyIG0gMTkuMjgxNTEsLTYyNC4wMTQ2NCBjIDM0LjY1OTM0LC0xLjg3MzgyIDg0LjAyNzMzLDcuMzkxMzEgMTA5LjkwMDcxLC00LjI4NTQ1IDEzLjI4MTcyLC01Ljk5NDA4IDQxLjQwNzIxLC0yLjQ2MTM1IDY2LjgyODY2LC0yLjMyMDQ2IDM1LjMyMjM4LDAuMTk1NzggNjQuMzgyNDksMC42MzQ3NyAxMDEuOTE2Nyw1LjAyMzIgMjUuMDMwMzYsMi45MjY1IDQ0LjY2MjczLDM0LjI4NzIyIDU4LjUyNjk4LDUwLjY0MzkgMTcuMDk4NzgsMjAuMTcyNjggNjIuNzYzODYsLTEuNzE0NjcgNjYuMzA1NjYsMzIuMTM0MzMgNS4xMDI3LDQ4Ljc2NTg3IC02LjMyODQsNzguNjM3MjUgNi4xNDExLDk3LjM0MTUgMTkuOTY5MiwyOS45NTM3OSA1MC40ODY0LDE3Ljg1NTc5IDQ0LjYxOTMsODMuOTcxMTkgTSA1ODkuMTAyMjcsMzA5LjcyNzE1IGMgNC42NDM0NiwyMy43MjkyMyAxNS4wNjkwNCw3Mi43NzU3NSAxOS4wNjEyOCwxMzAuNjQyODggMC44NzIwNiwxMi42NDA0OCA1LjQ0NzE4LDI0Ljk5MjUzIDQuMjIyMzEsNDUuMjc3NTcgLTIuNTE3MjEsNDEuNjg3NSAtMTUuNzE3MDYsNDMuNjc3MjcgLTE1LjA5MTIyLDYwLjM2NDg2IDEuNDMxOTUsMzguMTgyMjQgMzAuNjEzNjEsOTMuODM3MTkgMzAuNjEzNjEsMTM5LjcwMTU0IDAsMjQuMTgwOCAtMi42Njk2NCwxMTUuMzkwNDUgNy4zMzAwMSwxMzUuMzg5NzYgMC4xNTkxMSwwLjMxODIxIDEwLjA2NDc2LDM1Ljg4MzMyIDEwLjc3OTQ1LDQ5LjE1NDI0IDAuOTQzNzgsMTcuNTI0NjkgLTI0LjQ3OCwzOS40NzAwOCAtMjguMDI2NTUsNDYuNTY3MTYgLTUuNDc3NywxMC45NTUzOSAtMzYuOTczMjQsMTAuODgxOTcgLTQwLjA5OTUsMjQuMTQ1OTUgLTMuODY4ODQsMTYuNDE0NTEgLTMuODY2Myw0My43OTczNSA0LjA0NjQ3LDU5LjQ0MTI5IG0gOTcuMzM3MzQsLTY5MS4wMDk0MSBjIC01LjAxMzMyLDM1LjUxNTk1IC00My42NTkwMSwxMS4zMTY1MiAtNTguNTM4NjEsMjMuNzgxMzEgLTIxLjMzMDE5LDE3Ljg2ODUyIC02Mi40OTk2NCwzMS40MzIxMiAtNzAuMTI0MzcsMzUuMzY3MDggLTM1LjA4NzYzLDE4LjEwNzkzIC0xMTAuNDcyMTUsLTE1LjE0MTk2IC0xMjUuNjE0MSw0LjI2ODQzIC0xNS45NTA2MywyMC40NDcwMyAtMC4wNzM1LDYxLjQ2NjQ4IC05LjE0NjY2LDg0LjE0OTI0IC02LjAzNTcsMTUuMDg5MjYgLTE4Ljg3NjcsMjMuMDE3MzQgLTI3LjQzOTk3LDMyLjkyNzk4IC0xOS43NDgyOSwyMi44NTU1NSAtNjkuOTc0MjgsNjkuODI0MTkgLTg0Ljc1OTA0LDEwMC4wMDM0NiAtNy40OTc0MSwxNS4zMDQwNCAtMy4yODQyNiw0NC40MjA0MSAtMy40NzA1Myw2My4zNDI4NCAtMC4xMjc5MywxMi45OTQxNCAtMC44MTAxNSwyMy4xMDM4NSAyLjQwMzQzLDI4LjI3NjE4IDQuOTYxNTgsNy45ODU4MSAyMy43MjA1LDI4LjExMjA3IDI0LjIzODY1LDUwLjYxMTQ5IDAuMjk0MTEsMTIuNzcxNDYgMC4wMTMzLDc4LjU5MTAxIDMuMDQ4ODgsODcuNjU1NDkgMi4zMTI1Niw2LjkwNTQ2IDQuMjIwMDQsMjYuNTY0OTcgMTAuMjEzNzcsMzYuNTg2NjIgMTEuMzU0MDEsMTguOTg0MTUgNC4zODczNyw0MC4xNTY2MiAyNy44OTczLDUzLjUwNzk1IDE5LjA1MDEyLDEwLjgxODU5IDQ2Ljg3NzgxLDEyLjIxODYyIDgxLjkyNjE4LDE0LjQ2MDU0IDMzLjcwMzQ1LDIuMTU1ODkgNjEuNTEyMTcsLTEuNDMwMzUgNzYuOTIwNzcsNi4xNDExIDExLjU4NTA4LDUuNjkyNjYgOC41ODE1MSwxNy45MzM0NCAxNC4yOTU0MSwyOS4zNjEyMyA1LjY0MDQyLDExLjI4MDg1IDMxLjUwMjYzLDExLjE1NjI3IDQxLjgwNDA5LDQzLjQ1NDg3IDcuNjA1OSwyMy44NDcxIDMuMDg1OTMsNDQuMTU2OSA2LjcwNzU1LDY1Ljg4NjYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2Nzc3NzY2Njc3Nzc3NzY2Nzc3Nzc3NjY3Nzc3Njc3NzY2Nzc3Nzc3Nzc3Nzc3Nzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDMuMjc3ODgxLDUxNy45NDY3OSBjIDAsMCAyMzAuODQ4Mjg5LC0zLjYzODA1IDI1MC4wMDg2MzksLTMuNjU4NjcgNy40ODIyMiwtMC4wMDggOC42MTk1NCw1LjE1MTk0IDE0LjAyMDksMTEuNDU4NjkgMjQuNTk2MDgsMjguNzE4OTMgOTMuOTA5NjYsMTEyLjkzNTg1IDkzLjkwOTY2LDExMi45MzU4NSIKICAgICAgIGlkPSJwYXRoMzc4OSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDM1Ljk2MDU1NSw1NzcuNzA0OTQgYyAwLDAgMTY1LjUyNDU2NSwtMS42ODQ1NCAyNDguNzc5NTY1LC0xLjY4NDU0IDQuOTQ3NDksMCA3LjcyOTkzLC0yLjg4MzMgMTAuNTM3NzEsLTUuNzI5NzcgOS42NjEwNywtOS43OTQxNiAyNS42MzE5OSwtMjguNTg5OTUgMjUuNjMxOTksLTI4LjU4OTk1IgogICAgICAgaWQ9InBhdGgzNzkxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiMzMzMzNjY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gMzguMzk5NjYzLDY0MS43MzE1NSA0MzEuNzA1OTMsNjM3LjQ2MzExIgogICAgICAgaWQ9InBhdGgzNzk1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOiMzMzMzNjY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gMzkuMDA5NDQyLDcwNC41Mzg1OSA1MjMuMTcyNTMsNjk3LjgzMTA0IgogICAgICAgaWQ9InBhdGgzNzk3IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzAzLjk1NzYyLDY4Mi41ODY2MSAxNDYuNzk1NDIsMS44MjkzMyBjIDEwLjUzNDAzLDAuMTMxMjcgMTQuMzQzNzQsLTIuNjM3MzkgMjUuNDg3MTUsLTYuMzcyOCAxMC40MTIxMiwtMy40OTAyNyAzMS40MjQxNSwtMi42OTg5NiA0MS4zODUzOCwtMi43NzM4NSBsIDQwNS41NjA3OSwtMy4wNDg5IgogICAgICAgaWQ9InBhdGgzNzk5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzODA0IgogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDQyNi4yMTc5NCwzMTQuODkwOTggYyAyLjA2NzU0LDkuMDUyNzMgMS44NDE3Nyw1MS43Mjc3NyA2LjUwNzk0LDc0LjgzNDY2IDEuNjc0NzUsOC4yOTMzNiA4LjY3NTA4LDE0LjA2NTk4IDEwLjA1NTQxLDE0Ljg1ODYyIDQuOTAxNDcsMi44MTQ2MyAxMC44MTQ3OSw4LjE0OTgyIDEzLjA0NTc5LDE2LjA4ODMxIDYuNzU3NzksMjQuMDQ1OTEgMC44Nzk3Miw2OC40NTIxMiAwLjg3OTcyLDExMC42ODkzIDAsNi4wOTc4MiAxLjY2MDEsMzAuMTQ2NiAtMi4xNTU4OCwzMy45NjI1OSAtMi41NDA4NSwyLjU0MDgzIC0wLjI4MTYzLDEyLjk5MDY5IC0zLjQzNjc1LDE2LjE0Mzc3IGwgLTkuODQ5NDQsOS44NDMxMSBjIC0xMC4zNjcxNSwxMC4zNjA0NyAtMTEuNTkwMTcsNi41MjYxNCAtMTcuNzM4NDgsMTguODIyNzYgLTMuNTY3NzIsNy4xMzU0MyA1LjQwMjM1LDIwLjY3MjEgNy4zNTQzMiwyNC41NzYwMiAxLjkzMjE0LDMuODY0MyAtMS44NDIxNiw0Ljc3NzczIC0xLjc5MjM1LDcuNDQ2MjYgMC4yNTI4NiwxMy41NDQ4MyAyLjI5NzUsMzczLjkyNzEyIDIuMjk3NSwzNzMuOTI3MTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDM2NS4yNDAyMiw1MTkuNzc2MTIgNC4xMTU5OSw1MDIuMTUxNTgiCiAgICAgICBpZD0icGF0aDM4MDYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAxMTYuNTMxNjUsNTA0LjE4Njk5IDMuODgwNTksMzEwLjk2NDM2IgogICAgICAgaWQ9InBhdGgzODMxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDM4ODkiCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzE3LjY3NzYsNTc2LjQ4NTM5IDEzMC4xODc0MiwxLjUyNDQ0IGMgNC41MTA3OSwzLjI0MTY5IDIwLjM0NDcxLDcuOTY4NTMgMjcuNzQ0ODYsNC4yNjg0NCAzLjE1NTQ2LC0xLjU3NzcyIDkuNDE5LC01LjM4ODE3IDE0LjAyNDg5LC0zLjk2MzU1IDQuMjY2OTgsMS4zMTk4MSA2LjAxNjg5LDMuMTE2MzIgMTAuMzY2MjEsMy4wNDg4OSAxMC4zMDQwMywtMC4xNTk3NSAyMC4yMTE3LDAuMzg3NDEgMzAuNDg4ODYsMC4zMDQ4OSAxNzcuODkwOCwtMS40MjgyNyAzNTYuNTkwMzUsLTIuMTMyNDcgNTM0Ljc3NDU2LC0zLjA0ODg4IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2Nzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDc1LjMwNTAxLDU4Mi44ODgwNSBjIC0zLjQ0NDE4LDExLjM1MDY2IC0yLjEwMzQzLDEyLjQzMzczIDMuNjU4NjUsMjEuMDM3MzEgMy43OTQ0NSw1LjY2NTY0IDUwLjg2MjYxLDEzLjAzODQ1IDQxLjQ2NDg1LDI3LjEzNTA5IC0xMC41MzY5NywxNS44MDU0NyAtMjIuODk3NDUsLTUuNDc3NzIgLTMzLjg0MjYzLC0xLjgyOTMzIC01LjQ1MjM2LDEuODE3NDUgLTcuMzQ5MDEsNS40NTYzMSAtMy42NTg2Niw5LjE0NjY1IDIuODA2ODMsMi44MDY4NCA0LjA0OCwxLjgwMzk2IDYuNTIwMzQsNS4xMDA0MSIKICAgICAgIGlkPSJwYXRoMzkxMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDMyLjAxMDgyLDYzNi44NTMzMyBjIDguMzE4OTksMTMuMTEwMTYgMTguODQ2MjEsMTQuNjM0NjUgMzUuNjcxOTYsMTQuNjM0NjUgMi45Mzg2NSwwIDcuODY5OTgsLTAuOTMzNzEgMTAuNjcxMTEsMCAxMS4zNTkxNywzLjc4NjM5IDI3LjE5Mzk4LDEwLjI3NTc3IDM2LjIwMTkzLDIxLjEyOTQ4IDguMjgwMDIsOS45NzY2MSAxMC4yNTI3OCwyMy44ODMwOCA3LjcwMjAyLDM3LjEwNDI0IC02LjE2OTg5LDMxLjk3OTk4IC0xNi43MTQzMSw1Ni45ODg1MyAtMTkuMDQzNTUsODYuNTY5MDUgLTEuMzQ3OTgsMTcuMTE4OCA0LjUwOTU3LDIyLjUzNTIyIDExLjA3MTQzLDMzLjkyODU3IDEwLjY3MDIzLDE4LjUyNjcyIDguNzI0NTMsMTQuMTk5NTUgOC41NzE0MywzNC4yODU3MiAtMC4xMzk2MywxOC4zMTk0NCAwLDYwLjI2Mzg1IDAsODAuNzE0MjkiCiAgICAgICBpZD0icGF0aDM5MTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDUyOC41MDgwNiw2NTguOTU3NzYgYyAtMTAuNjgxMjMsMC45MDQ1NCAtNy4xMDgwNCwtNS42MDI1NSAtMTAuODIzNTQsLTguMDc5NTYgLTQuNzg0NTQsLTMuMTg5NjkgLTEyLjIyNzA0LC0xLjI1MTA0IC0xNi43Njg4OCwtNS43OTI4OCAtMC42NjYxMiwtMC42NjYxMiAtOC44MDk2OSwtNC4xMDg3NyAtMTAuMTc0NDcsLTIuNzQzOTkgLTguMzY0NTksOC4zNjQ1OSAtMy4wNDg4OCwyMC41NTE4OCAtMy4wNDg4OCwzMy41Mzc3NCBsIDMuMDIyLDMzOS42OTc0MyIKICAgICAgIGlkPSJwYXRoMzkxNCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzc3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA1MTcuOTg5NDEsNjUxLjAzMDY1IGMgLTAuMjIxNzEsLTIuNzAxODQgMS45MDM0NiwtNS41NjIxMyAzLjM1Mzc3LC03LjAxMjQ1IDEuNzk5NDMsLTEuNzk5NDIgNi45MjI5NCwxLjAwNDE5IDguODQxNzgsLTAuOTE0NjYgMC4yODc2NSwtMC4yODc2NiAwLjg0MzI5LC0xMS4xNjQxIDAuMjI4NjYsLTEzLjU2NzUzIC0yLjA2NDgzLC04LjA3NDE2IC0yLjA1ODAxLC0yOC42NTY1OCAtMi4wNTgwMSwtMzguNzIwODYgbCAwLC03My4xNzMyNiIKICAgICAgIGlkPSJwYXRoMzkxNiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNTI4LjY2MDUsNjc1LjQyMTczIC0wLjQ1NzMzLC0zMS41NTU5NiIKICAgICAgIGlkPSJwYXRoMzk3NCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDc2Ni4zMTYyNSw1NzkuNjQ0MzEgMC40MzExOCwxMy43OTc2OCBjIDMuMTM2NDMsNC42NjkxNSAzLjAxODI0LDkuNjAwNjggMy4wMTgyNCwxNi4zODQ3NSBsIDAsMTU3LjM3OTgxIgogICAgICAgaWQ9InBhdGgzOTgyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMTEyMi45MDAxLDc2NS45MTMwMyBjIC0yMDIuMzA2NjksNC42OTA1IC00MDMuNzQ0MDUsLTEuMTEzODEgLTYwNS45NTQ1NCwzLjM1MzkgLTEwLjg2MzYyLDAuMjQwMDIgLTMuMzYxNDcsLTguNTg2MyAtMjguNTM2OCwtOC41ODYzIgogICAgICAgaWQ9InBhdGgzOTg0IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA4NjAuMDA4MDUsNzM3LjA2NjUxIGMgMCwwIC05Ny40NDc1LDAuODU4MDYgLTE0Ny41Njg5MiwwLjg1ODA2IC01LjI2ODYxLDAgLTQuNTE1NDYsLTguMzI5ODYgLTcuMzAwODksLTguMzI5ODYgLTMuOTc0MzUsMCAtOC42MjkyNSwwLjAyMDEgLTEwLjUwOTQ4LDAuMDM1OSAtMi4zMzQ3NywwLjAxOTcgLTEuODEwOTQsOC4zNjU5NyAtNC4xNDU4LDguMzY2OTIgLTQ2LjE2ODk5LDAuMDE4OCAtMTY3LjQwNzY3LC0xLjMwNzk5IC0xNzUuMDUyNjMsLTEuMzA3OTkgLTQuNDI5NTUsMCAtOC41NzYyNywtNi40Mzk3MiAtMTMuMTMxOTgsLTYuNDM5NzIgLTEuMzYxMTUsMCAtNi4yMzg3MywwIC0xNC4zOTQ2NywwIgogICAgICAgaWQ9InBhdGgzOTg2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc3Nzc2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJNIDY3NS4wMDcwMyw4MzEuMTc0MDIgNjc0LjM5NzI1LDMwOS40MDI5OSIKICAgICAgIGlkPSJwYXRoMzk4OCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDc5OS40MDE1NywzMTMuMDYxNjUgMS4yMTk1NSw0OTUuODY2NTMiCiAgICAgICBpZD0icGF0aDM5OTAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSA3MzYuNTk0NTIsMzEyLjQ1MTg4IC0xLjIxOTU1LDcxNi40ODgyMiIKICAgICAgIGlkPSJwYXRoMzk5MiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDUzMC4wMzA5NCw2NDMuNDU4NTkgMzkyLjM3MTU5LC0zLjAxODI1IgogICAgICAgaWQ9InBhdGg0MDQ4IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gODU5LjQ1MDYsMzE0LjkwMTI4IDEuMjkzNTQsNTA3Ljk4MDU4IgogICAgICAgaWQ9InBhdGg0MDUwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjAuOTk5OTk5OTRweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gOTIxLjU0MDE3LDMxMC41ODk0OSAxLjcyNDcxLDUzMS43NTIyNyIKICAgICAgIGlkPSJwYXRoNDA1MiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDczNi4yODk2Myw0NTMuMzEwNCAxODUuNjc3MTUsLTAuMzA0ODkiCiAgICAgICBpZD0icGF0aDQxODciCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAxMDYwLjgxMDUsNTE0Ljk2NzY3IGMgMCwwIC0zNjMuMjgxMjYsLTUuNjI2MTggLTU0NC42NTA0MiwyLjUyMTc4IC00LjE3Nzc2LDAuMTg3NjkgLTEyLjUwMDQ0LDEuMDY3MTEgLTEyLjUwMDQ0LDEuMDY3MTEgLTEuNTcwOTUsMC4xMzQxIC0yLjAwMDkzLC0yLjMyNDk1IC0yLjU5MTU1LC0zLjUwNjIzIC0wLjA5NjcsLTAuMTkzNDMgLTcuMDYwODEsLTEuOTMzNCAtNy42MjIyMSwtMS4zNzE5OSAtMi44OTMxNCwyLjg5MzE0IC03LjYzMTY3LDQuMjQ4NjkgLTEyLjE5NTU1LDQuMTE2IEwgMzY5LjIwMTcsNTE0LjUzNjUiCiAgICAgICBpZD0icGF0aDQyNjEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAzOTkuODE1MzEsNDc5LjYxMTEyIDExLjY0MTgsNS42MDUzIGMgMi45ODQxMiwxLjQzNjc5IDYuNTI4NzgsLTAuNDc3MTIgOS45MTcwOCwtMC40MzExOCBsIDEyNy4xOTczOSwxLjcyNDcxIgogICAgICAgaWQ9InBhdGg0MjYzIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gNTE5LjI1MTUxLDUxNy4xMjM1NyA1MTguODIwMzIsMzA4LjQzMzYyIgogICAgICAgaWQ9InBhdGg0MjY1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gNDMyLjkyNTQ5LDM4OS43MTQ5OCBjIDExLjA0NDk2LDAgMzUuNTMzMDcsMC42MTkyNyA0Mi41Nzk3OCwtMS4wMDM5NyA4LjQwNTIyLC0xLjkzNjE4IDcuMDY2LC02Ljk1Mzc4IDE0LjE5NzEyLC02Ljk1Mzc4IDcuODA5NSwwIDYuNTQyOTEsOC4wNjIzNyAyMC4xNDE3LDguMDYyMzcgMTMuOTkwNjgsMCA0NC45NzY4OSwwLjM3ODg2IDYzLjkzOTkyLDAuMzc4ODYgMTIuMDgzOTUsMCA4Mi4wMDI2NiwwLjMwNDg5IDkzLjYwMDgxLDAuMzA0ODkgOC43NjA0NywwIDEzLjE1OTcsLTIuMjg4MjcgMjEuMzQyMTksLTcuMDEyNDMgNy4xOTUxNSwtNC4xNTQxMyAyLjA1NDU5LC05LjQ5MTM3IDIwLjQyNzU0LC04Ljg0MTc3IDIzLjE0NTQsMC44MTgzMyAxMi42NDMzNCwxNC4wMjQ4NyAzMi4zMTgxOSwxNC4wMjQ4NyAyNS4zNTk1NCwwIDEzMC45OTkwMiwwIDE1MC45MTk4NSwwIDE0LjMzMjQ0LDAgLTQuMTE5MTEsLTEzLjExMDIxIDI5LjI2OTMsLTEzLjQxNTEiCiAgICAgICBpZD0icGF0aDQyNjkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3Nzc3NzYyIgLz4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjU4OC42Nzk1NyIKICAgICAgIHk9IjczNS44MDQ2MyIKICAgICAgIGlkPSJ0ZXh0NDMxMCIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMiIKICAgICAgICAgeD0iNTg4LjY3OTU3IgogICAgICAgICB5PSI3MzUuODA0NjMiPkxpbmNvbG48L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjY4Ni4zOTg1IgogICAgICAgeT0iNzY1LjYyODQyIgogICAgICAgaWQ9InRleHQ0MzEwLTciCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNiIKICAgICAgICAgeD0iNjg2LjM5ODUiCiAgICAgICAgIHk9Ijc2NS42Mjg0MiI+SGFycnk8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjcwOS44NzE4MyIKICAgICAgIHk9Ii04MDIuMzc3MzgiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMi02LTgiCiAgICAgICAgIHg9IjcwOS44NzE4MyIKICAgICAgICAgeT0iLTgwMi4zNzczOCI+V29vZGxhd248L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjU2Mi4xMTkyNiIKICAgICAgIHk9Ii03NzEuOTY4MTQiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xLTkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtOC0yIgogICAgICAgICB4PSI1NjIuMTE5MjYiCiAgICAgICAgIHk9Ii03NzEuOTY4MTQiPkVkZ2Vtb29yPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTguMzA0ODciCiAgICAgICB5PSItNzM4LjM2NjQ2IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTciCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtOC0yLTkiCiAgICAgICAgIHg9IjU5OC4zMDQ4NyIKICAgICAgICAgeT0iLTczOC4zNjY0NiI+T2xpdmVyPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTIuMTIyODYiCiAgICAgICB5PSItNjc3LjIwMzk4IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTctNSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNi04LTItOS00IgogICAgICAgICB4PSI1OTIuMTIyODYiCiAgICAgICAgIHk9Ii02NzcuMjAzOTgiPkhpbGxzaWRlPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1OTcuMzI3MDkiCiAgICAgICB5PSItODYyLjYxNDA3IgogICAgICAgaWQ9InRleHQ0MzEwLTctMS05LTctNS0zIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDMxMi02LTgtMi05LTQtMSIKICAgICAgICAgeD0iNTk3LjMyNzA5IgogICAgICAgICB5PSItODYyLjYxNDA3Ij5Sb2NrPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1ODcuMzcwMTgiCiAgICAgICB5PSItOTI2LjEzNjYiCiAgICAgICBpZD0idGV4dDQzMTAtNy0xLTktNy01LTMtMiIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQzMTItNi04LTItOS00LTEtMyIKICAgICAgICAgeD0iNTg3LjM3MDE4IgogICAgICAgICB5PSItOTI2LjEzNjYiPldlYmI8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9Ijg3MS4xNjEwMSIKICAgICAgIHk9IjYzNy41NzUyIgogICAgICAgaWQ9InRleHQ0NDY1IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NDY3IgogICAgICAgICB4PSI4NzEuMTYxMDEiCiAgICAgICAgIHk9IjYzNy41NzUyIj5DZW50cmFsPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI4NzMuODMyMjgiCiAgICAgICB5PSI1NzcuMDMyNDciCiAgICAgICBpZD0idGV4dDQ0NjUtMyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDQ2Ny00IgogICAgICAgICB4PSI4NzMuODMyMjgiCiAgICAgICAgIHk9IjU3Ny4wMzI0NyI+MTN0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgaWQ9InRleHQ0NDkwIgogICAgICAgeT0iNTEwLjI2MTgxIgogICAgICAgeD0iODc1Ljk2NjQ5IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICB5PSI1MTAuMjYxODEiCiAgICAgICAgIHg9Ijg3NS45NjY0OSIKICAgICAgICAgaWQ9InRzcGFuNDQ5MiIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+MjFzdDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iODgxLjMxNjU5IgogICAgICAgeT0iNDUwLjE5ODc2IgogICAgICAgaWQ9InRleHQ0NDk0IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NDk2IgogICAgICAgICB4PSI4ODEuMzE2NTkiCiAgICAgICAgIHk9IjQ1MC4xOTg3NiI+Mjl0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNjE1Ljc5MjQ4IgogICAgICAgeT0iMzg3Ljc0NzE2IgogICAgICAgaWQ9InRleHQ0NDY1LTMtMSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDQ2Ny00LTEiCiAgICAgICAgIHg9IjYxNS43OTI0OCIKICAgICAgICAgeT0iMzg3Ljc0NzE2Ij4zN3RoPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ1MTkiCiAgICAgICB5PSI0ODEuNjUyODYiCiAgICAgICB4PSI0ODQuNjkwMzciCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9IjQ4MS42NTI4NiIKICAgICAgICAgeD0iNDg0LjY5MDM3IgogICAgICAgICBpZD0idHNwYW40NTIxIgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj4yNXRoPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1NjMuMDQ2NzUiCiAgICAgICB5PSI1MTMuMzYxMzMiCiAgICAgICBpZD0idGV4dDQ1MjMiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1MjUiCiAgICAgICAgIHg9IjU2My4wNDY3NSIKICAgICAgICAgeT0iNTEzLjM2MTMzIj4yMXN0PC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ1MjciCiAgICAgICB5PSI1NzcuODk0ODQiCiAgICAgICB4PSI1NjUuOTcxNSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNTc3Ljg5NDg0IgogICAgICAgICB4PSI1NjUuOTcxNSIKICAgICAgICAgaWQ9InRzcGFuNDUyOSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+MTN0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDUzMSIKICAgICAgIHk9Ii00NjAuNzMzMTIiCiAgICAgICB4PSI0MzMuNTgwNzUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii00NjAuNzMzMTIiCiAgICAgICAgIHg9IjQzMy41ODA3NSIKICAgICAgICAgaWQ9InRzcGFuNDUzMyIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+QW1pZG9uPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI0MDUuNTMwOTgiCiAgICAgICB5PSItNTIzLjU0MDE2IgogICAgICAgaWQ9InRleHQ0NTM1IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDUzNyIKICAgICAgICAgeD0iNDA1LjUzMDk4IgogICAgICAgICB5PSItNTIzLjU0MDE2Ij5BcmthbnNhczwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDUzOSIKICAgICAgIHk9Ii0zNzIuNTg1OTQiCiAgICAgICB4PSI3NDUuNDg0NjIiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii0zNzIuNTg1OTQiCiAgICAgICAgIHg9Ijc0NS40ODQ2MiIKICAgICAgICAgaWQ9InRzcGFuNDU0MSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+V2VzdDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNTk2LjcyODMzIgogICAgICAgeT0iLTUzMS4yNTkyOCIKICAgICAgIGlkPSJ0ZXh0NDU0MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NDUiCiAgICAgICAgIHg9IjU5Ni43MjgzMyIKICAgICAgICAgeT0iLTUzMS4yNTkyOCI+V2FjbzwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU1NSIKICAgICAgIHk9Ii0xMjIuNTAyOTUiCiAgICAgICB4PSI1OTUuNDM0ODEiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9Ii0xMjIuNTAyOTUiCiAgICAgICAgIHg9IjU5NS40MzQ4MSIKICAgICAgICAgaWQ9InRzcGFuNDU1NyIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+TWF6aWU8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjY5NS43NzI5NSIKICAgICAgIHk9IjE2Mi4wNjg3NyIKICAgICAgIGlkPSJ0ZXh0NDU1OSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxMDY3OCwwLjcwNzEwNjc4LC0wLjcwNzEwNjc4LDAuNzA3MTA2NzgsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NjEiCiAgICAgICAgIHg9IjY5NS43NzI5NSIKICAgICAgICAgeT0iMTYyLjA2ODc3Ij5ab288L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjI0MC41ODk5NyIKICAgICAgIHk9IjU3NC40NDU0MyIKICAgICAgIGlkPSJ0ZXh0NDU2MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDU2NSIKICAgICAgICAgeD0iMjQwLjU4OTk3IgogICAgICAgICB5PSI1NzQuNDQ1NDMiPjEzdGg8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU2NyIKICAgICAgIHk9IjUxMS42MzY2MyIKICAgICAgIHg9IjIwNi4wMzE3NSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNTExLjYzNjYzIgogICAgICAgICB4PSIyMDYuMDMxNzUiCiAgICAgICAgIGlkPSJ0c3BhbjQ1NjkiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPjIxc3Q8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjYyMC40NDMxMiIKICAgICAgIHk9Ii01MDYuNjgyMTkiCiAgICAgICBpZD0idGV4dDQ1NzEiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40NTczIgogICAgICAgICB4PSI2MjAuNDQzMTIiCiAgICAgICAgIHk9Ii01MDYuNjgyMTkiPk5pbXM8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDU4MyIKICAgICAgIHk9IjY5OC44NDAwOSIKICAgICAgIHg9IjM3MC4yMTY4NiIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNjk4Ljg0MDA5IgogICAgICAgICB4PSIzNzAuMjE2ODYiCiAgICAgICAgIGlkPSJ0c3BhbjQ1ODUiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1hcGxlPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSIzODQuMDg0MiIKICAgICAgIHk9IjY4MC44NTEzOCIKICAgICAgIGlkPSJ0ZXh0NDU5OSIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDYwMSIKICAgICAgICAgeD0iMzg0LjA4NDIiCiAgICAgICAgIHk9IjY4MC44NTEzOCI+RG91Z2xhczwvdHNwYW4+PC90ZXh0PgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0ibSAzNjcuOTA4MTcsMTAwOS45NTk2IDI2My4wMTgzMywwIgogICAgICAgaWQ9InBhdGg0NjA1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDx0ZXh0CiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ2MDciCiAgICAgICB5PSItNDMzLjEzNzc2IgogICAgICAgeD0iNzM2LjI2NzQ2IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICB5PSItNDMzLjEzNzc2IgogICAgICAgICB4PSI3MzYuMjY3NDYiCiAgICAgICAgIGlkPSJ0c3BhbjQ2MDkiCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1lcmlkaWFuPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ5NzkiCiAgICAgICB5PSI2NDAuMjA1MjYiCiAgICAgICB4PSI1NzIuODMyMTUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHk9IjY0MC4yMDUyNiIKICAgICAgICAgeD0iNTcyLjgzMjE1IgogICAgICAgICBpZD0idHNwYW40OTgxIgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIj5DZW50cmFsPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI1NzUuMDg5NjYiCiAgICAgICB5PSI2NzAuOTAzNSIKICAgICAgIGlkPSJ0ZXh0NDk4MyIKICAgICAgIHNvZGlwb2RpOmxpbmVzcGFjaW5nPSIxMjUlIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDk4NSIKICAgICAgICAgeD0iNTc1LjA4OTY2IgogICAgICAgICB5PSI2NzAuOTAzNSI+RG91Z2xhczwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNDk5LjQ4OTYyIgogICAgICAgeT0iMTAwOC42MDY5IgogICAgICAgaWQ9InRleHQ1MDQ3IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDQ5IgogICAgICAgICB4PSI0OTkuNDg5NjIiCiAgICAgICAgIHk9IjEwMDguNjA2OSI+NDd0aDwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iMjE2LjY0NTQzIgogICAgICAgeT0iNzI1Ljk4Mjk3IgogICAgICAgaWQ9InRleHQ1MDUxIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDUzIgogICAgICAgICB4PSIyMTYuNjQ1NDMiCiAgICAgICAgIHk9IjcyNS45ODI5NyI+S2VsbG9nZzwvdHNwYW4+PC90ZXh0PgogICAgPGZsb3dSb290CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgaWQ9ImZsb3dSb290NTA1NSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MThweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyODcuMzYyMTgpIj48Zmxvd1JlZ2lvbgogICAgICAgICBpZD0iZmxvd1JlZ2lvbjUwNTciPjxyZWN0CiAgICAgICAgICAgaWQ9InJlY3Q1MDU5IgogICAgICAgICAgIHdpZHRoPSIzNDMuNTcxNDQiCiAgICAgICAgICAgaGVpZ2h0PSIxMDMuNTcxNDMiCiAgICAgICAgICAgeD0iMTkuMjg1NzE1IgogICAgICAgICAgIHk9IjE3LjE0Mjg1NyIKICAgICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIgLz48L2Zsb3dSZWdpb24+PGZsb3dQYXJhCiAgICAgICAgIGlkPSJmbG93UGFyYTUwNjEiPjwvZmxvd1BhcmE+PC9mbG93Um9vdD4gICAgPHRleHQKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAsMSwtMSwwLDAsMCkiCiAgICAgICBzb2RpcG9kaTpsaW5lc3BhY2luZz0iMTI1JSIKICAgICAgIGlkPSJ0ZXh0NDYwNy03IgogICAgICAgeT0iLTUwOC4xODk3MyIKICAgICAgIHg9Ijc3NC44NzU2MSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iLTUwOC4xODk3MyIKICAgICAgICAgeD0iNzc0Ljg3NTYxIgogICAgICAgICBpZD0idHNwYW40NjA5LTciCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiPk1jQ2xlYW48L3RzcGFuPjwvdGV4dD4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMzMzNjY7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Im0gMzY0LjE1OTk5LDY1OC40Mjg5MSAyOTkuNTEwMjMsLTEuMDEwMTYgYyA2LjQ5ODcyLC0wLjAyMTkgNi45NzcxOSw5LjI1NDEyIDE2LjU5NjMxLDkuMzkyNDcgMTIuMDU0MjcsMC4xNzMzOSAyOS4xMTA4MywtMC41MzU3MiA1NC4xMTQzNywtMC4zMDExIgogICAgICAgaWQ9InBhdGg1NDQwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMjg3LjM2MjE4KSIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzYyIgLz4KICAgIDx0ZXh0CiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZTo5LjY1ODM3NzY1cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpWZXJkYW5hOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VmVyZGFuYSIKICAgICAgIHg9IjM3My45OTMwNCIKICAgICAgIHk9Ijk0NC4zNTc1NCIKICAgICAgIGlkPSJ0ZXh0NTA0Ny05IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW41MDQ5LTMiCiAgICAgICAgIHg9IjM3My45OTMwNCIKICAgICAgICAgeT0iOTQ0LjM1NzU0Ij5NYWNBcnRodXI8L3RzcGFuPjwvdGV4dD4KICAgIDx0ZXh0CiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICBpZD0idGV4dDQ2MDctNy0xIgogICAgICAgeT0iLTQ5MC4yNDU5NyIKICAgICAgIHg9Ijc4MC44NDYwNyIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iLTQ5MC4yNDU5NyIKICAgICAgICAgeD0iNzgwLjg0NjA3IgogICAgICAgICBpZD0idHNwYW40NjA5LTctOSIKICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSI+U2VuZWNhPC90c3Bhbj48L3RleHQ+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzMzMzY2O3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJtIDM2Ny42OTU1Myw1MzcuMjEwNiAxNDEuMjgzMDMsLTEuMDEwMTUgYyA2LjQ4OTk5LC0wLjA0NjQgMTIuNzgxMTQsNy4yMzU0NSAxOS4xOTI5LDcuMzIzNiA1NS45MjM2MiwwLjc2ODkgMTU4LjY4OTk3LC0wLjE3MzMzIDIzNi41MTQwMiwtMS4wMTAxNSA3LjgzOTU2LC0wLjA4NDMgMjIuNjMxNDcsLTE5Ljg1MzU1IDMwLjMwNDU3LC0yMC40NTU1OSAyMi4yNjU4OSwtMS4zNTE4MSA0NS4xNzk0NSwtMC41MDUwNyA2Ny42ODAyMiwtMC41MDUwNyAxNi4xNDczMSwtMC42MzI0MSAzLjYxMDE2LDIwLjcwODEzIDI2Ljc2OTA0LDIwLjcwODEzIGwgMjQzLjQ0Njc5LC0xLjAxMDE2IgogICAgICAgaWQ9InBhdGg1NDk2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMjg3LjM2MjE4KSIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzY2NjY2MiIC8+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6OS42NTgzNzc2NXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VmVyZGFuYTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlZlcmRhbmEiCiAgICAgICB4PSI2ODUuMjA4MTMiCiAgICAgICB5PSI4MjcuNTMwODIiCiAgICAgICBpZD0idGV4dDQzMTAtNy04IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW40MzEyLTYtNiIKICAgICAgICAgeD0iNjg1LjIwODEzIgogICAgICAgICB5PSI4MjcuNTMwODIiPlBhd25lZTwvdHNwYW4+PC90ZXh0PgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMzMzM2NjtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgZD0iTSA1NTQuMjg1NzIsNzIxLjQyODU3IDU1MCw1NDMuMjE0MjkgNTQ3LjE0Mjg2LDEwMi41IDU0Ni43ODU3MiwyMy4yMTQyODUiCiAgICAgICBpZD0icGF0aDU1MTkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwyODcuMzYyMTgpIiAvPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjkuNjU4Mzc3NjVweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIgogICAgICAgeD0iNTI5LjYyNTMxIgogICAgICAgeT0iLTU1MC44NDc3OCIKICAgICAgIGlkPSJ0ZXh0NDU0My01IgogICAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwwLDApIj48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNDU0NS0wIgogICAgICAgICB4PSI1MjkuNjI1MzEiCiAgICAgICAgIHk9Ii01NTAuODQ3NzgiPkJyb2Fkd2F5PC90c3Bhbj48L3RleHQ+CiAgPC9nPgo8L3N2Zz4K\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"showTooltip\":true,\"autocloseTooltip\":true,\"showTooltipAction\":\"click\",\"defaultCenterPosition\":\"0,0\",\"provider\":\"image-map\",\"fitMapBounds\":true,\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"polygonKeyName\":\"coordinates\",\"polygonOpacity\":0.5,\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"mapProvider\":\"HERE.normalDay\",\"draggableMarker\":true,\"editablePolygon\":true,\"mapPageSize\":16384,\"showPolygon\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${coordinates|ts:7}

    Delete\"},\"title\":\"Markers Placement - Image Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"tooltipAction\":[{\"name\":\"delete\",\"icon\":\"more_horiz\",\"type\":\"custom\",\"customFunction\":\"var entityDatasource = widgetContext.map.map.datasources.filter(\\n function(entity) {\\n return entity.entityId === entityId.id;\\n });\\n\\nwidgetContext.map.setMarkerLocation(entityDatasource[0], null, null).subscribe(() => widgetContext.updateAliases());\",\"id\":\"c39f512a-21c6-6b06-3aa1-715262c6553d\"},{\"name\":\"delete_polygon\",\"icon\":\"more_horiz\",\"type\":\"custom\",\"customFunction\":\"var entityDatasource = widgetContext.map.map.datasources.filter(\\n function(entity) {\\n return entity.entityId === entityId.id\\n });\\n\\nwidgetContext.map.savePolygonLocation(entityDatasource[0], null).subscribe(() => widgetContext.updateAliases());\",\"id\":\"94bf5ffd-b526-c6c3-ae3b-ab42191217d9\"}]},\"showTitleIcon\":false,\"titleIcon\":\"more_horiz\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"displayTimewindow\":true}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 0.2;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || 0.3;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"}]},{\"type\":\"function\",\"name\":\"Second point\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"xPos\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 0.6;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"yPos\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || 0.7;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"showLabel\":true,\"label\":\"${entityName}\",\"tooltipPattern\":\"${entityName}

    X Pos: ${xPos:2}
    Y Pos: ${yPos:2}

    Delete\",\"markerImageSize\":34,\"useColorFunction\":false,\"markerImages\":[],\"useMarkerImageFunction\":false,\"color\":\"#fe7569\",\"mapImageUrl\":\"/api/images/system/input_widgets.markers_placement_image_map#map_image.svg\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"showTooltip\":true,\"autocloseTooltip\":true,\"showTooltipAction\":\"click\",\"defaultCenterPosition\":\"0,0\",\"provider\":\"image-map\",\"fitMapBounds\":true,\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"polygonKeyName\":\"coordinates\",\"polygonOpacity\":0.5,\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"mapProvider\":\"HERE.normalDay\",\"draggableMarker\":true,\"editablePolygon\":true,\"mapPageSize\":16384,\"showPolygon\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${coordinates|ts:7}

    Delete\"},\"title\":\"Markers Placement - Image Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"tooltipAction\":[{\"name\":\"delete\",\"icon\":\"more_horiz\",\"type\":\"custom\",\"customFunction\":\"var entityDatasource = widgetContext.map.map.datasources.filter(\\n function(entity) {\\n return entity.entityId === entityId.id;\\n });\\n\\nwidgetContext.map.setMarkerLocation(entityDatasource[0], null, null).subscribe(() => widgetContext.updateAliases());\",\"id\":\"c39f512a-21c6-6b06-3aa1-715262c6553d\"},{\"name\":\"delete_polygon\",\"icon\":\"more_horiz\",\"type\":\"custom\",\"customFunction\":\"var entityDatasource = widgetContext.map.map.datasources.filter(\\n function(entity) {\\n return entity.entityId === entityId.id\\n });\\n\\nwidgetContext.map.savePolygonLocation(entityDatasource[0], null).subscribe(() => widgetContext.updateAliases());\",\"id\":\"94bf5ffd-b526-c6c3-ae3b-ab42191217d9\"}]},\"showTitleIcon\":false,\"titleIcon\":\"more_horiz\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"displayTimewindow\":true}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/markers_placement___openstreetmap.json b/application/src/main/data/json/system/widget_types/markers_placement___openstreetmap.json index 15069ec8e2..a67c9359ab 100644 --- a/application/src/main/data/json/system/widget_types/markers_placement___openstreetmap.json +++ b/application/src/main/data/json/system/widget_types/markers_placement___openstreetmap.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.markers_placement_openstreetmap", "name": "Markers Placement - OpenStreetMap", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.markers_placement_openstreetmap.png", "description": "Allows configuring the location of the selected entities on OpenStreetMap. By default, store the location using 'latitude' and 'longitude' server-side attributes.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/mini_gauge.json b/application/src/main/data/json/system/widget_types/mini_gauge.json index 2789102c6c..bf881ab33f 100644 --- a/application/src/main/data/json/system/widget_types/mini_gauge.json +++ b/application/src/main/data/json/system/widget_types/mini_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.mini_gauge_justgage", "name": "Mini gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.mini_gauge_justgage.png", "description": "Preconfigured gauge to display any value reading as a circle. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/navigation_card.json b/application/src/main/data/json/system/widget_types/navigation_card.json index ab3811c47c..9bf49d4054 100644 --- a/application/src/main/data/json/system/widget_types/navigation_card.json +++ b/application/src/main/data/json/system/widget_types/navigation_card.json @@ -2,7 +2,7 @@ "fqn": "navigation_widgets.navigation_card", "name": "Navigation card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/navigation_widgets.navigation_card.png", "description": "Displays the link to the platform page as a button. The link is configured as the relative path in the appearance settings of the widget.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/navigation_cards.json b/application/src/main/data/json/system/widget_types/navigation_cards.json index 52be3671b8..5dc5a9b157 100644 --- a/application/src/main/data/json/system/widget_types/navigation_cards.json +++ b/application/src/main/data/json/system/widget_types/navigation_cards.json @@ -2,7 +2,7 @@ "fqn": "navigation_widgets.navigation_cards", "name": "Navigation cards", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/navigation_widgets.navigation_cards.png", "description": "Displays multiple links to the platform page as separate buttons. The link is configured as the relative path in the appearance settings of the widget.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/neon_gauge.json b/application/src/main/data/json/system/widget_types/neon_gauge.json index 4f595392b6..e6ed18e496 100644 --- a/application/src/main/data/json/system/widget_types/neon_gauge.json +++ b/application/src/main/data/json/system/widget_types/neon_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.neon_gauge_justgage", "name": "Neon gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.neon_gauge_justgage.png", "description": "Preconfigured gauge to display any value reading as an arc. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/noise_level_card.json b/application/src/main/data/json/system/widget_types/noise_level_card.json index d91fcf6632..23fcf01089 100644 --- a/application/src/main/data/json/system/widget_types/noise_level_card.json +++ b/application/src/main/data/json/system/widget_types/noise_level_card.json @@ -2,7 +2,7 @@ "fqn": "noise_level_card", "name": "Noise level card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/noise_level_card.png", "description": "Displays the latest noise level telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json b/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json index 3dee42dc6a..611e6be1cc 100644 --- a/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "noise_level_card_with_background", "name": "Noise level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/noise_level_card_with_background.png", "description": "Displays the latest noise level telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEVBTl4ZGiA/S1kXFxtHSls8R1ZEUWNBVGhIVGVHWGoRFBlLTl86S11JYHY/RlA9T2MgHSJLXG5OV2kkKDFFRkk3PkpGW3FDRlYeISg4RFNeW2gmIylQYHIzNUByYGc7Qk4sLDVHU14yQFAeJS4rNkMvO0lidXxIRVNIT1Y3OkVpfodfU2BCQUJfZ2h0g4dWVmVPUmNOVVhPSlhaa29pUlpPUFItMjxzbXRqe390bGRTW2zx6dxlbW9XanlDS1QsJi5QZXZ1eXNRRFEjLThqaWY2RlhIS07k2sY/OkdpdnVCQE9oWWNlYmA9QUhZZHVfcHN4iI82MDhBV21aTFdzfnxVUF7bzrVRaoBYYWTl1bjXw55YX29wWF5wY1t7dHtpbnpgWFdgYnBTW116c2sOEBPOw6pMZXxUZGthaXhxZm5JPkt+j5JYUlAnMT5PXmbAtqKLipGAiYVzeoVoZnPWya6yrZp8Z21MWWB+fIN/g3tPTEtfeIZshI+po4ygmYSbjXRxTE67spqUmY8XHie0qY5+X2NpXVY9ND/dyqdoYGuOk5hucWxlS1POvqDLupmBcXSKinxbXV2susBacny2nXizo4RbRExdboCJeniTg3Y8Oz1wdH2MnJ3JsIS/pn11UlXXvpOolXSChI2/r4yWin+fqq7Ds5WrnX5WVlfo4NBpRUeenI3u4Mfj0K2gsrqCkpqhkH2Wl51NRkQ0KzLx5tGboJnYuoWJk4yDgHPNxrWQkYZ5WFyMfWx/TExodIOqsrOmp5ibkIyJgICwo5XNto728Obc1MCPhoaUp7GVoKa8p4iBVVbBoW6Eemm0saWqmYiLoau0l2qoq6OXhGnFvaikjGnt27q8qZdkVk2GmaR2RESXk36gn6Omm5XKqnaJa2ziyZp6aVtdOz5VcohLOUO6t6ySe17r06WcqKOCcmBxjJmKXV2zxMv69/NhgJBaTUfSzb1vPTl5lZ/UsnWhhFfmx4qHb1TAwLOEQTx1X0m2kFiPUE3Rp1pDMDhaLizjvW7E+fmmAACIKElEQVR42hyUMYvDNhiG87/0A75/IJB2zV6U8XoYMmiR6ZAMHWwUXBxEJeggDN4KZ2k40pZrU2UoDe5w9VKDwXWPHoFUrcEG+/uG9+Hxqw2dpgl5pAB5hRCapvu9QGKavEd2nJydNEoL0U/piloDRj14Z7E3aDIxmqH1iBKCxhWh1iBnVogPEb0jwZRobGEdkUOk1w5plL6RgiDEjOMEQqEtkJoUlbC8m4Ego6EhkXMla5CL7V5fM32VWF3PDdcYI446St+KsniyESiED2g0EM41waHjYWPEojCaIkBCwsFPLiYm7UczaTfaKUW2yroEY72fBj0RbQyZiLeWiATq08gjZOIY2/SU0UPrUvpI2v+GYxzTWzMY4RdjCh5HMq63QlelI5QthgwGTxhnEizLc7G7HbAsJA6IaA8KIFTclJoD+qsmULkhw5UmRurmssWzCR251HYgW/qWadFuUEB6CiGBwONBEEX/RyMWpQu892QyFDxYahGkkXfOGz0lZJd0Ep+WPbGT824yaWgGR7spOlutOtY6joa4tq3T9tiuZEErxQflEPTWkYo4xG2Jh9JK0QsgyOcHqfmZmOrwVv28++dNVIHiXkr+JoX6RYqaaNzldR1qErR8ZgOXstNczoLMUjUb83nnwiAX44IShRMIjYObprXxIyIumZjS0LnJD8vKWRsMumlnyQStiejmzu2DxIYop9qAdev8uOp1jF6b1jiDpqQpYQ+UUFEiU0xI9mvLolN3JGR1AFQL8SlrCwfangUngcunqxYKEOhLUQQIAQDPoDk+FvO5BQjoA/NW7CTPWccsUGoyKnDRVJsU3jkn7AORJUGBVoX0t9I4QlB/vkc9JRIzDZYkSpLcpNsJEg0X1kchUrnGEcE4rhGB80BhJD4agcAb3iQdDhMV0ehBggHd3oC5Md7zhvF5iLcxx7gbqC2VNRbLM666kuC6LLr9X4Xi0OVtsa8YPp2OT7hjWlznZOTjgm3goQti7ra8E3iQOzY0G9+fy/J2lhr8FA3RPGofvfPo/z9ocmLUirbRkoSBYkRmAuvTqo7TJHZTIbiO5mHsaLUwkrokl9jRGLKYxFhEgZ21xUXUquRloVozDsuNPQrdDWp2+tQHSSH2h0u5raUoXn7umgttGN0N84+pRrsfLOk4CEwM4DCXPxSMGZC4GbLfypAJ5qAJM5/hWordprAIZu8hiWP6v/gGmzXJAp+6i4QGNKWGEDSePRLU93dqVH8rUcOtct4hS7gFR/sRLI6FGt4dE2YwI0mTlMAtgiIUR0mtvgEMt3KHDaBl6dP6x3GGUTMmCbXHq64LjjmEomlZ1+9/CPxw7YqZP23lz1KV3UsgnCRV+91X8LJdmpl1tONPJMnq8i5sK7sZhJ4QmvTYoh5j9fpYa8ZjXHstVkqJ9aJ8/HcOOa+GiJyfvE7KkJu0UYLQhjjj4Y4dSme0RqPSxmjmCTKQuqdWh8FUq/Dg7QcZaJ/kh5ISGsuKAB7YIOncERwwChdifsnO+ZuEnu0UExwwpy/4uZS/4B+PJSNN803DWLB6ri1j3DA8c+jqjnQ7vuvqsNuMfGgR5lMKmaCQt5CeI7NeITrE1qwAA7KPVA51t5+3VI64rn3fEJDgFz15VovENqro3FDrYVgceOCmfftrIai7x7+YFusPp7oNF05HvJ4tlyQaLeB1q2mZyVY93dSuHVgnKK1z+eOpmZ+brHp6ec4qfcxxIecZoNhlXcgr/sX2i9Dtf+D0hIfQHaTILnKuRHf5KdsA0nYPiLUBk+ICGrWfqbYRrfEG3mpDx8E4C+DuYBahhnb8rIxGfm21UI++UmhCVKrxoSy2psXZ2i6ncahAORTrIB4wMiNGHqm17FzkPc66CMOZDf0StqbPbXWh+Djsc/b9t3lFPp47WTBZvz4fBVx/ORbbb/ZC5qdnxeUXfz1lDbds29Agr1TSawMHhi8X2WU5z+oNLphCIJA9LxTppbQtpKguOu8IeINj2Y8VIuS1xBqhCUrtNRVKjQrozSNnjSM2Bo88KVo+3DhyxtEWP+KoTgPo++dChzGKt+X0Kw9kPbMWLqf9PWv6QRZfzN0FZ4GJvIKrVT+rvXyl5enAG8XC89/fDnbPA78+s9Pl+dJ9kdes6U4lwyJkWffesY93ubsU7y+X5uudZJtrRWCfkdfgV4I8opDajv+63Q/LQGixkFQSTyzSyBHar9SOrZnAxHSCxUFYa0hPUvxQ5KPlRHmzruemmnEd3XDX6suzQXBWb0+lABPPF6WDbhXWrbEdvkujSQrDskvK98XxmHH5+lxkDIcjPm0LfMib16r4/dbAW5/L5yMRx1OT54enb1925MpC3X5Xf3xcXgMuOv5+LDYByodZsHc7wZtshr5c6Q0FN5GhdQ5UdTt/6qIfqHDceCtwu29Ma2rtzt1kLQ1e1rf+LLmkbni0t0qa4c5vQuS7kPwlfJbpQIgQS+mK27bn80G9h3v//nqr8uKnTCWCer97+nMv/zhQQoL68XjE238prIPWaI0wgOP5WmVPPfkNBhxoeyhznhb00IOKYShetKHoIQdFMdXaXctSdn1jCHSDxlIxill3t7CN+B6MDbRU2GyXd1ma2quXcWCe//MzqydVqVwZFaGtEXCAQq5wLhVqSsq2Cnm0MMsN4avajcPcOZEIAXTOpGGdF3TDGN5osGOi76n9sVS7dYwmjd9JYHTv0UmyNu9nuknrpjfa014Aa1o20Kix49iwfVP3Z/uOelu++cgfKXJDo/26tGe+ZMa0xQWUEsPYkUuWhA0NA99jEJRomYEKxw/Fkp1kx5shi0giL6fvrhdVy1QyBEh9huYHTETtafn11YeysONoSb6w8YG1JRjiwzx3WuaAqJgOYd8qGJxl2RHNdgjRSHMCnZrUdTB44NjMTic9yMxgnwX7gAqyt27ASL2XJGDHu/vB0hRllTMwW8dxN1pbgqEOJwQdQwcew6BAU/cMK89WOgDB8WTZpEdVELiMjTGHGYazCRElJQTi5s3FMgCn6mD4L5ocgjTp3fLl4kVw+4U7QKAQVi4GoKKLpeswMWw3LlDigtXyUI7Yx9DhHcxqi7avns6SIWN7Keydw1+NOUolaUIjz5slyuCyoQPr11qrd6o8801akrsYypNBbMPTG5ibNf66rh2wVjRvWJwTPFgxPdbum1PY9chxZZddZyiZJVTvQnG49F6W93sxF3iWZuiqCzdSikKaqchyEyDpq3PNULXPc/Ul1HoR2IhDIXnPa9gR3PmWXFlofJtCRDAQxlOD3XChLScMkRMHheHwOe/PKmTa9Wkv+idjEGdDU0FzP5GHOUX2MW2azLkfrSfDomey2qdoam3ok9Haz8ymKRPTit9O9tRhFOg5phwklOd5tZ4h2qfsbE8nip39k1JTmQBdkTKTlajAPSQMTHZkkZKc2dpE5PqQP+LjV7eAmYjR9OGwqVZoabiW8LCtFOfZvr2IDHnqiNpCIdEDL+YOh0Os5ThnN4tpgdkq0hAIhbA/80IKACh5dUfFBFA61fmKXvLK8bQzJ1kwmZwyWz8OP39PG2YQwME18Y6hd9DfD9u+HKaoS5Bn6kiU1m8nq90GTaOCLh7SwRvLyTo+cF+SBNloJ9NduXRj5DjU4lYnME6q4WBW7S1FGSNoLKcsHrL08Hxx9eJKz5iEOmE/evhBQZtftJ4RXSwopMLsLy7mt3LIiaYYtmIP8JOD+Cpx8PRsEDfoE5oV+zABqQAVB076e9rRnfXEr1XNGGzc1U3cBdK9WRsmI+1WR53WV3oMa3lkU5Jn72AYS15VdgCZjBlbQ1+nZiVJPkI1ZaQNvFGTrbzfqgmNxVT/cWxKeYU5IF5Zoia1N/NPyyWJBGXRznnBAp8bsmzhz19uCO9WsfLR38/989+X+BNNI6IYMaw7rm6dS+VG7FF0GGrQt0+EJ3IlneGhPwPIRzJlSAxTp14YSKeMWgeOcYqDTNJ35evpDUz8Uj1mjGk4cOdRFKesY2CrAQsrUga1CvxATzoEbdkN7LqbJXtc2OMIuGPMeUNXIJLi6c+9Tnjk3ODeMNZJ5fQhgHNRsWBopRoWedxHS/uFsXlyOXaviRKO3Rt+KkDj5aH4BJNIHEfcNH1i2UsSEuyKCw6buAALjogtCB8fp2cbNdXeUkcZybSZNR59MkJUmvRut4P64LT9SgETSYfZiRoFwJTW0JF9OoVBbVQUMGzdkDUd0LUcw6DS7A72+lvCkQU6N70+CLJjCV2iqSpBIk60c0tepKbCG4JQ5aJVsYr80Fav1/IBWhfM1ccpe1nd/YLxy81NTn761/p6PC205dX7q1V1l+aCIM7ZiDggjDTnl/x6E1/eLEKhYqrf2+JWfFLPqPQwCxRPtwiBfeNLWdNM1mQVBae9D2wrnhhOqQDGb4xjVteyKcVG+arpOynxh+e1n8BmJi9DTzEhOcQ6Z7ksOEyhqRqUWDN4ATiOMIvjes26KrG5ZN5zjxcXVXvgNTidnz+q/WLZBdqcFf68KFL+dvzeXX7yQQbU9fk4/A272nZ6e4sePv+QahfF5e1mzBdPL3fLVmMwlvm4xdjeXBJRqfoir87kGdA6hoJVPMhBj2T/VZV07I383TFo7P8voNTH1yxLdbMZMdA9SvTbbsZkujpeKozlpqrBjMgw706WhxA4+iJcQIfvAndbbPuEKxDVUvLFH2nrIvb5g9+mYwjnzFAxkiRVLJz/ys9/vbZf2ijnviJ3Ir99duLrh4d/cPVRfncxdd9ri3FeFYTfvFyyTh6FMBSVd6wQjnElIP4dEttV+qhostaetSiE4jRKqnQNrbrEgXeKBgSIzez+rfS6zj/5zYCRrJOkMqstSorTYZBCyqDCpLT0xNZVxHK1wCpvJzqJd+pI37f1XkdJtwu43AaHlr14RTlhDhy2C+wW4Gb+7t23MGXnW3kzfmTc39PH3I2+2t5W4/YRcdubj/7ZsOJvvPBecxdk/IHd4o1ydcGxRHjmf77dFgeOj0RevtKq1bwfo/Zn8Sm/Y4vpGc6vopDSi1SJOK6/j1m5S+IyNtOyNBiYZf/bTPNW9UmKraxMdcvSQ2VpqKeygYCqGS/W1JoKAt8eBpdXOdF+NM+ReT6ec9stV/DvMEbVxy7nnDubXcmEyfHK+BlB4ztBjVZDlr76sX0UrhdTHvPgafEJ/w8HHjZXVx/z/Pz8o/f8+LNPH7Z3L8LU2RTfv7vcfLQtvjnHOb4hziVLNtGcLNg2IgsM8qftGfX/to8YX1c21N6xa2tj4ww5zkja04ohUbQ3AtSp9A1d2jc7yDTAfzURLOvAWbmVLqeEFlcq1rSFiCpmQTOXjrazlz+rqk7AfLE1LizX/o8B82txnArj8HwIP4NXKoiIBr0pDA7CgIJDcQvVwZILmYFQaMSKSUgIZdjSbnZJoJEmNCSbKHGdKLRNS6HppE4l5M8mbcxIbHfnorUDwhZbp1hGNHfn8hzO+/6e532rmrj0jPoCNynVeA5ODAMEFbyahvsqfl5nJvO4aC7MctyLIu2fVBO16EoTQRGc3WThMEZ1XEJ0aU7iKNr5MYIH7BiWMBOKBlTH7UVbYzJZGcggQPbIWVInDZMr2PyASZSqZaczLXz7qy3QoMgJ3CxZWdm7tJjcf7PZNfwhZ1U5mWzwLYSTYZBlGGH4M6TAhbXRnFTvPUI4ON7ire/wAocraYQywE6cEvDG+y28U+i4oAtncaze2Ra2QRPVEvX11Pv9PsIo1wgOsakukrqPcedFrXSTymuKoCg5AJYhBVPR1EevxM4IQWPLM9VImySpjLtk4nrwvD/t4xGi7kG0bO40PIJajbMYsWQGn8FKpUGvozPbssFkQL6zMy2u+n11aB/cswXB39GtDD3MnFVa/3Hcr8MnMs/DDNQIzKrvr4buJI+oMEPgjMhVTDGjoFrhySXwFI/zMWWYecooLB933A+zROHCmCP5ecfEKOVBtwsX4zBwBFSAVAcYlU8BBC0qN+++6Jad0k/stRGzzZFkwA5Wk0gHN5P/wUbzvglp7DZRGmyIeAlnXA9bf1+JYJjBcfCdtW021tVJ4sBp0P7+j5YPpYe+2LgbbxT5wA792bBKg7QQjkNxQ6czuPicH2asVoMGv7uHWx2SQtqXHIiweVi51yQMooka61Q73p0ZBJPHbxETpPu/ZU6MahTUt4SjdlN/ZeVMjvW0+Yg8hNCy9e9PPR1Fs6dZ4Cqo4bUxrS3gGok0wQmuRI5uwvB0avQMV03MBhlNb9ISjHuE26UsaM+O+VYYy7JXpbkhT1szUBmuITuT8L0w83ezIW9lGr4f+mczccinW0/sNPek0RC5UOAFI8TGW5QvPBraimEwfLX66z05SZshPvf6ADvJPlqSljFhp0qQmySqTkJEt9OV8fkcQdRz1ECMFaw2X94nmqmeRKDuV0bWuTGevflNPkacF8XsdTnuXu2/goCDa7VUGrHXqG54GtUdaNB0ZA5qUWTC0qMRAcvaFvF6e+6liYFzs1JIwBkdVBt3SWdbiQZzjYwwprkCN7w323HVX1v233zIcNwm9BORGpKZzAEdVZJAsN3ELPCVhbs6ueyTsFyAQdDd3qyeN5CZ8UsXCVCVRmOGUOF2gLrdD7Rue1Kv43DdJTykLHHoxVZaMi72Ljt9WA9+f0iVggFWevC6NFCvcgAgQb2rEuBJKNtLxfNP2NoX12Sz6fW0rjqdAoEwHWCmKXjmQNruzd0CJyXJIGgoqmmml+ijQNsCtN4NraE/2/mWv6H9Hb/bcfSQD/3Cd51MSxSUW1+hZzjMwzBnyY0Q8S27X8EQVfdnR3B7q4NxUmQoZ18aiNVM4fVu/YOXUJVSc6qLb7uP4Gg+Jzowhbn3z63zd4NDFAjivhprx+wNnL8Z3OgmqnV7bAkFnBt0UGNLqsleY7pswuZ06iGa13vsefh8MuW930mzh007Y2avkgYLCfshshEllyWZpI2tWeeAdhi5sDqzeZwOK9+t7xhrttm4lsXt/mEsESdDUrR8gcYxg0E3w0XIIPTwwE2GPzGzKIhtzHLaEwBop5Sxs9QVSkfOqlAGqcOGIRbb+aWq5S2TMrbzZvvwtaMsVMzB4/ob1LuU6hblF8a7gHY1uNCLV71xdj/buyoSF7msdHvtHb/oQqpBstLIxAe1KQBLiDrCB545fTYYOHtzb+yHshn5nqxUGYYGu5OzO3p49pwO7Ts78ZjNsLLZ2f9xVvrvnVyxGmk6FJSEOisGwZ/vxAZJ8fZBghhwSRSVhUoUi8rjVqapQp0q/dTo4GMM7YJFNP/q430DTB21T9QgXyQCt3hkdPXib81pm2n+tvqyrbEVHSu+kbo5rFMAeXiqO01AexCbL0r70rGjlXsVxaqp8UgfmG9hkDId9CYm1I1Ydc5ONNd0a5C5F+FOdDeMok4yNjJnT8SEhLzAhP7OV3bKZuEnDsBUaWuzs8azkB7TAj0MOcsnx444Hi9E2jIumVCpJkq7nINkUXWbadidbInukUATMawdBW1qRX2ccDDQEWr+Q/HDX/ruD4f1X+qTSXO1JIyTR5vXHmP1Yvnhw09yqZQJUJ8edlPZI09AnOLCAbYITIxOe9LnD4DeA+0aa5col2VRyHSlmpbk8VRja8lJcwfzvQiqeoxWWUcKAzHYQm7xrtfIZGg6nSyTwef2ptGaWLMMt/CFhchrmLCA+dDiEdEWQNxH70KTNgxMjwvif0YQbEmVboqW87ToivFXsNzGz/Nq+23CKqbUfHtcPnG3jzv6y3m4eULl0KcPXXWV+7rcPJKk9nSeClK5dhn459o6fkOT9qnSw/HVoHx8c7y/D9zopVzqIhdcjGtfwOXA+ST3TJJi/SLeuh4im5Vwmjxqbw6vWiAe4XjEMxZZsLR0FWLQBUML2q0g+ixuMUiClw2XoYUNxpGLxe3GDy1GUegwxGKHif9pG2SGZ+OxqvzZd+VtXcnJq3XcJuHmq+0wD1JEmyi2Tyjkg6VLnBaLR3U9/0Fn+fGWgKh6Pd9bSk0Y+OVVvSylym8cfpZ77+gon/u2rB+aeum908EFykqnV8CINQ/NLBCbz5bsdYmlJBOVpm5O1YCBNCC0pjQle3uDS8iFobTAp5l15QDiTIamfUgRoyrXEplNi+fXIc/5C362U2Sarja4Ch0yY5RuVK0JD2XEubiVcdRFbIycLRGYQly4EhBEvr8kqDy2TxFFAFbh/FH59tVz4imRiv/Kz1fB+2pQp4JtXt9/v40HJ/riL3T+be7+X4f5N1zgfhY4ZX/6NgsQTvnKBLK5Y+er3oMrR/pEv3JqgAYZwThmXRcxVKmmSM+ki9r1eDT19rxcb2qamBe5IIMpqpxRJvfu0p3L4Q4Nb8fJE5xNKGBi2h6Pq5u1cLsI/6fI/F8bJ+M4vr/An+5vGHKshVGHDVQhEA4ChU4IUsQcZUGGtFwvYJ0ZJqGhBrnimmoLjXbV2NxaLLo4qcnFwPrlcHelaU2z0ErtRoWGRH8YztKj4g9GeP6A58Pzeb/eL3jsTLF2pdm2tlqZwvL/4lRtg3HVJsXgP7daZKP8vAVTi4ZLwGWa/JQcALhe9ztIvsUQMFcDn6nehHhSjqfwgN8Tq19hquloxH44jECcM2QhenaYH4JilvUlAGhrAogKxWIKg6IgwGbMC3Z4fYH12jwKaOyMHs2wZFsbi9cpvrvx5KjYLfaO3rvS0sPxLEmP/74yhyvxyqgUq5VqsW/9K1Qq/cJSKFSXxso97tEF2qxZxQLVepruMSc2VSMpj+qfnFTSzCjjtKZHT5JqyiIcdYB9OEUY4jbkgMxUBnUcbJ0Xm88+lUcORICnDhNnmG5jv4VcfvDHXrzZUjAkhobOAve2tO8hoL4D8VmOGYv3AdQrTxYsTZlsiRVLBMQzKZZlpOGiNSyV1G5HG86HMz7Z3uiOvzpKSmOaLlqF1FOh3U3Xqqm3PpkVxsWlcNXv93/80VzpQiVt9ftG7avi1Xtko18rFMhCpubqVu1NGhyRdFOlGcrEtBGRSTY4Dce3m+lviUcg+TlMVjn5RQpfoAqCvx4INGvcIw6BT4lUK04gzefhUfkXMIsw/q2symzmwTzzMEaEsewdarYFAfoum+jg6Ih5CIV5EQVm11hnOtRK4kxCCWA+RC+kzvRixg46Q779fKPtidKQNtuLy5FkZZ6eZDjjnYxgCWbquF/MWKZSWEvGScESq0sv+MvVap0xLVNbTTPaMFMRaDfTqFoU3qU01XEymsMsRvjiRdMBuFAjxRFEteaLyOehoqqWM60yTGSztyH8VG75g2gW2QxEFlw5gDyCZA1gojvhKH4Z3UN4joO4/CGQrZe+315pFLuVUGI61u3EbubtmxtNm2E5faZdDlcpkWq1eaxtlSiNn214cLro9VuLJJWq0bOVpPbSFZPMZPqiWTFWw6M3x0a199SuVIrrOW0ZlX+Wdq2wLhTesTSLXNVGukKpOpPOZKbM8JyacikFR1rOPvGWkoo7H97CWZmT9XoE22w1A37nFxkvg3687Je380r58fli5BtwWQ5mYLH5UgKpfwDv7KF4eBuC7v2gHGIfBAA2puhYGHy1llUngGZCbG3Bi9NGYyDev+BFkZ9rLju+vv6tNM+1N5KS1E7OnngNJBbfOqnWCidFoy/UaoZR/MeovmWYac1D8NJYer961WVFMGsfF6bFY1ekMvRJekpmavwgxQ/kKVJchDwTV4kXKdFPtMqfBR8jHtHgyESNM6aKBCKB3XsB+FzN+ppyYLMFNdUwHgmrxF1wAsaJkI+Apzv4ni/+2WsHh9jn2M1euAlCdUADQtBhWLzvrd4Aw0Q0BqLA0MxNMLHEd0V0aM9mXDvX5lsLfmNwnBxLhb9S1R/TSXOW8SrHbheStqhcClL12Oh7r+CFpzfuL+3JqifMK8ZfprJe15acYa1olZ6Sqr2oAAo5Mpsv1g4xJQEVntN5kcNTUw5OPSGJ8iUgv/jOj8jZB0gjHG4AwezowMf8QcR9sEwQ+C3ivxOXA/6dfehO4A4AReZmOEYw4Fb+TMcSYQ6OsQCmXKDhvWxuXppLrH6dy3W1Enmh4Rd8qeSpDJ+Tclh7YzjsLp5Uu4N0b0CP3xR4WR2mJZr/pGIbUmXZtbyCKQjebtmW0bcF4yidsg2y2qPptb6yII13zUxD5k+qqj2QEYZuyI6vtSS5Wevy5FC//VA+8EX8Pnj3V0bRQvAzpBzJ//JZ6o9o+TED+zHE2dsnTqNE1JcHd+d5PNAE84kmsZPAD6M7ibP7nXtgIp/4XMG25yUAZXfQHMQ2UMAFOmxpxpeGfA4ruRKA5VwC43l0Q7yeJRdD6UveLrW06yvt4fgoJUhdyrDGP9q9IpUR1qZou12St5dL1l2ZgLRcSzWaF4q11bCXMr04TmlXaTmK85yinBGuMKqu4ogcck7hIywOIwyj+IN4IP4gEjjYPlcC+F1HJsP4vrxJRL/e9UdJ2dmHnwfEeCi0czcYCgK8RzVVwd5A88ANdi/x7hkG1DFXTNzMgTCaLykdFm2LE2yAjl2XR6Xvp21RGnU67Y1iKT2cs+kkNesWDVO7rBxzTb1XweieLRpGYfl0ZQmGcEw137rqW5bgHdJerU17KFhKSpioraZOk0UmCZIaJFMZiiw3ZHAUbTIN7nE+/nzpwKGDrI8MeEM9YKYRBrojbzKBX17eDZ5GOPAATG1GfKE8sYf49kK4moX9+XA4PArWQ7HDPAftsOwDApol8sAWcIM2wFzsAkpg9wEAEsWLmATkMO0h5m1a+6f3AeujDQnQvl9o3cF7Xd04HpMKBVhH0szu94tfHVk2bYsuLSwLttWdo6t/DOubtbaiq5ZparZpu7ZUlOYUv4ZBz4g5MnMpc06cegwH8SlzKge3o6d3kfgUZ4LxEMyN6hzsl/flyHbAhwe3NsshQpf/CA2wEN6ET8OPQtFmNpqQlXv+7XpUCbrUqwkwenYIxc7ysTzo4gRUciEgMUf5Ei7yscm8g73aeeVt/mLClfSLRmcy3/iy7Y45rGsOyOY6rX7wwuqNG4ViZXzEPNJd79pg0TSNFXV8YlwV5nWu8M9qvl4pS6uwovnmPIPoGZpT3GGt5teJU0YGGIYLxjgiC0/jsi+IbIJqKFWG5TLoC4rZiA8uh0LB27Kf8IMM7MmkP7sLPcsGfYE87PNlffEPw4/i2+HwHlvfOstih3VfPpEAEzC7d3N2eOPps4iyWIwNA6/elxQMa6O/ldCpiHVE/Wb+/p8bnju7Aj1pYNJUJ8fvtWcL2pJbBVGde6QSVE4QLDdr0diEM12Nl+xCobh219o3f1mqrtC/M3Z4rp7TJqc0uKkAgiNfq+zo8q9M2bkzvfu4XGYOIsHtU4SYKsH4Pr4XD97CZtC3vRvEI8/uEtGsjvPEXtAPI4HQLhR74K/H1K1t6c5Z/gtfPRbp5nMJ4hCdUPeh3FmsFDs8QwFWvFZiE7TTdhvsu5Aiot9w6Jx4mIu9/R9F1hbaPhlH9yT4Iih5Eq8vccYkEGL4J5CJgRAMRlMxYFAzY/JQJaEuinZN66pFAy7qGuulrfWy2Wmw4LpIaanFrVWYtzrdFKOu/KmXsapYHTLpg+JnKYXQl+/wO+f8Ts4392n/829GD+8//vbDb5YbD3/w8Ojz/ZXPKuXOB288uvTJC8+/cPjWcP/Dv6ThJy8wANxsdiwxnWF+8GieN5v7Wi/f6HZ3Ge64iBd3Okyhu/U31ijiDucXU1zbyim9qOh3uWKNyxJy2LDIpOpYtphTZI4jMZp1aCVpxlhNdGi15mIcJmb4wQ1hnQ+ShsIHAJP54DRzv20MbK+8yAftPZ+SfFPzenXTfm8wqO+N6/X9xjg/7g1MZm5UmT55cPyIpY27Sx+8Vfnm6/q4e/bZ66Y/a/781jGjnRXqnx1P1jskW+x4s3i9vdkfnp2tHx4+vDs5zh9muNEhZzU7eac33D3JWNyw1lILYmNX5jqANRkskVEB2RClyCZwUcUduKgmYPxgk/5WdBz/1LjHl6EAHJ0iKLPAc3RAUIpBnZMk9WVc43m/zhUZfsqjZsbjddvUJxwoa8yybmvvMXFn8Dbgl8mcDXpvD5v1uUcmzbf7B/3KnZx+flTPNx/dff6ZgwFTH42GviK1mn+Be6sZlz9+/utHJ8eTyveadvx/Qpue/Vk8q8xWVg7POs4KeP8qfjDkHmi3/+52gUIsTqxlrDbdwMXWL5hTTKZpWSHbfLtbkgn+qlOsDYxBNAxMFDGVcTCMDXMJUaDAg4yhts9jvF/VMd32I562w3gZ2wh5TfO65QGYiqeVPUbTGFsrx+fNujeomOV6X9N6c98cN79+qNGrPFJeN4/6LW/aPJQaH+SPv18+fOHND195IT/JZ74ElexKXpGGzx9nnj+czLw4jofebPZoUwKpbzIE+eytTqutSO1KjRMl0ZHbCcdqGBYOy23Rtywyo2QcxTpNkm1cxJOpk0DGSbyrwrJsiJjoN4xVmdUFm7QYO1j2TYCLEBlMsgnU1ilb8nHbQz1/Oou1srSmXxF5Ewlk6Nhb1UITzKbc82LgcnOVt8vvjUA7un7+67dGLzz8wdfFh189rhzu91bWB5zK8wM9//j/YU5bHFbWteHZ+J/xsDIcvnr8x/MHxW7zrNGb9DpFLi7iGrD1Ya3ttNrtrr9VPFG3EiSZycrtq7lczQozKsmSQso4JbccOQnTvMWxmGMRFpGGCDEQlZjnKKoa8YbLUzoVokKVsnmWtznU90Le1jg74iVd156yQy02uTGzttzUJhxjSrG315xcoZXn9prn198beYPDytFQKuQ/aPl7q5VeN7Gx8mqTa+6u74PXqkPG6x5//8L61z2+Ele+Pj7urk/GsVb0YqeocK26Njxa2W0/WzT5TLGS4BxlU7QkLOhmTt5ppxVeTIjpEiYaJx00SX8h53JdEbMEXDVgf8sgJVY1MEIVjfBllCBRloJ5FoeYTkbjw3C6EVL60t7UlWzgYBIP9BGV1zSPUcpXaJ6kAeppvYP6shfXx2Nm7sm1fn9/75tv9iutyjd/9w9au+C665UPHn6g3/zkiUmDZ4aHA7751lvaIY9N/mrO9lu93p/HX3d6PbOSz48fLTxqegXeU3iarfEc32mZGVosKVbLEdsHCAknZNKa91WklTQDMSTlX8irMYjoEsaq5EfGy5gYyRQNYbTKpQiRx6CQsqlchhdcVZRQirLPuYIdFHhJ8qdB2Y4j1IvsGECzzTGoOTWv4k2n2vlyee2wfAxKwHJ5Z/Deuet733T2+p0Be5SvL7e842K7likOTfOJ4V9f7gbm8G3nz32Q8GZnZx5z3Iv1vFcce0W99b02OWuA9f89d2i1/UmCBal/l26wCm3hIBUjSIGG4UyM34GnSJIjydCgiTTJi2IaDwk5FXC+KJI0mTRWMl2qKvhqINFhlWCpSMD0ARXwLrA0N0BdF51GjLbXlQZSRzMjLVoD5JBmJj/raUzZXou9eO69m38ot0are+d7r/ljpvLX86u9/vbD34ya66319e7qo/KyxpmYeMh18wrp+fWZxjZ4tf1Cnu2O2fbKcMspckMs4KWat5PZcXBHl7ki7BcM8hccTog/09yDZKMkJ3yZlfGwjcHsvPoFphAZIylvmYqcNMRAoR2KtIOIwDmIpQoKlWFdIhAEFBJs5pzL25EZSONln3EjKdKmYxs4m1TWmcFk7zwg2vQR85F4PDPNufLe6N9H+o3PP48rB6DZLYNKfO3o5KjhWEydNVfwzsriSu+NFyTty8YT660V0xy+BST1/cyrdIoj2Jes1pnWyeS/j53aSZeTM70GXli1kD1OrmENuISckrjDIjkLx0tykqTZVHY1S2cVCyF4mXqZwAhg26RqSRSPUQpLOCoECbhAUVAo+WFwGwVRQXDOrtrA1lAbZXQp0CRvWvU0dyCZINpEscfoWn3NXIz35o7GjyzVf/35703t/icb5Yd3V09MIKliobfeKKw3DhpnTJ1WMFF6/i9P0Y7Pzjh9Ek//ZLCJmVS9Y3M6kdQMM+OtQ98xuUKrqWAOXht2t7ASoNnHNP57ls/AFi0aqkiekkbCuDIrq4IhnhKYYgj/G0Eg3kPyaSe+gSDDTKQSHG0EPE+5rkvoJoW6iy6Khh7nAiNzbca17fuZXlnnGNubavYVpp3RykwVjY49fW7vvcUN7b1HPlYqR43BTn9pNDr6apAxB4XNrd9qKwrepnL5zrDiE1fnuhq8Nfue8+5STYmr/3CYN0Vs6LWa3LHCOCIoXBoJqyYVUi3RwRGFFB3xY1+ORSS0EAmRSQPOOrQI+4l5AROTpMIGFD4PUYSAYTQmCBSOhsYy/zKEGZROuD5FEK6N6mPOVT1bN/hYt3V9yjCSjnq6O2XCNQmszenUm76nx3sz09Mfmqtoe9+MBt+t8YPtK85vbK8xj+SD1Xb/28RuPoMj908m6ytOz7SU2fOvZ2qHHdEces31ceglQ50ujvm3NV51GOdRucaeZdm2I3EWLsK0T+OwQ8tXZ1U5rSzQaeT3JJkUE2SKPKXn6SQtJFKwKN8AJkWzhDpPQWCtEgxPVK82JJniA2keFTZcnwXeZlNxBIHhTKXqojs1XRfMJPbsWNcil5EG43PT2Z49NWeR+djcD49c/1p5p98Dt4Sfj0agG9ysLT35waONz636Nz0AxLpng1WUsqV+m3xZM6a+mFrxbZInz3aLfKHLHT7KzxRND7qK77O7m4migiWsA9nnRBmncVmpGQ5cgpFf1HQidSMQDa4ma2CrJJMqDRNkgpAx4kGDV2H0RuBXoR6wEoS5VMRRLEdgEibYEOqjbljd8BftjgDCv76Iglym654e6/x1gHS6GXpdT/fAzpn79Mnr/31yp7Ox9vkH/dFBYfNo4+Fvzr/fe/Sos2luwMXOyqS+uNKQDvlMpq6fi8cxzdN8c9hN0kpjgVGT51bMpIjJisi9XIBLnMJh4LQZ0cr8KKbA0XN0mvxFzfE4RwLjKrCwgiFX/540FtKqSmVJDIZRUg2FGzc4ETN8whBtFcUiO01R1EXovEDpfOD6mB1BIRRVI922Udebup5ETYGl2VFkM0BGAMojIePqc0+tPQkSTb9fNpbLR43WaP1r5uiE29/ZVmJ/q7vS7Tx4XCTIYoZaZa2wfmuu1ZQ0LprN/KnGcGw37viDVr5VsRxHUpR20S/UMrAJwxjc+tYCMVLBydMbk6J8NZzKqggcyASclGk5JbJ4ElJhAkgJSQsYJM8bcqhiSSHEDMUIQ8ithq4Oo4aLunFkR6EAXFlHb3tXiiPetYONtSgyY37AaNH0kamtS5HkeXPlf797rHL+ioE5Wtrw9lo7zxVXD8zjR61trVd/mP4isYp/wTV7lcqkOWzsMmc8IUspViNPioeMWdEuxjzWUlgcfhCTxmpPkdlEDa8VCcUpgeN+kTv9AgMbMUHmSmIKAasxWyrJORhLwykynRaI+QXyHsIgKZZqC8QtqSpBsHJICFAy8F2Vwtx5iQBHv8WO9AgsTcGObR6agnmE+prUBwiucHl3TY8Yhp+W4/t/mjv/67mbFr3FyvnBzsHZFa3h3spBY7Fcyi4W9ppcZqWxVKwcsNaDnbHTdmASD3oFf2wm9S1Vjclcd6jJmI8kETzx8qrfEmGczMCKqdA5eivH4gsIApKYyMs5GpYTRoZMlEgEWciSckpGAiidTKspVcB4LkmoqkChlK5WDYiAsCqF8hEETSkdoiACNcNwOXSrvAtoJuhMwINJ3Ywynvuu7cbu8BzIBlNoqttzr/1Q7jN7P292+p8za6P+J98+d9B55LlW94km8oVVT5HdpU14OefjP5YW7Pw6c1l6KLHa8HuG0eKJCEsKxyyKRdYDks/QJdnH2lwmy+Kkn1OwGi4nWBykmRL4o1QqYQvZNEuraYLEXNm+DFZEUqZUV6JKhnsLAbyApFCF2IAwkw1dg9AhYAbqba7No7cFKIQGkBdDkW1Xq0D1rjRl+IweAL2glMdoXn1ans71//zuh8feK3dnO+PR0s5J+YvR5zuJyuDj7dWaU8FyBfaDfXxY2GIO6ht4m2f4iUSLskcGkkzqZc8IMF5kfBL2N0SMzjAtBU5YNOj3EhaukIBY4sVb76dpbiFlZBG2pKZ+IdWSkBRog8jAgGChSt9yNcVeTQmYykKCYFBhWnSh0IbdKIpc4epIMlyjGqFM5IJRVYFHe1Pbjaoo6oX+zdPIA/lsigpT4NWXRnOLlbePXvv3h29nD5qV4Xv12mp/5yR/VLM26c9Bq/0RsiBmT+GTwgH5uzZeDjBZ9zkFe98xki3R5g2vlWEtEsNIlTinISychUsizvOyU5PpHAK+L5XUxIPZU/rGLAnDMKAZOb8wb1LGrbhrXDhPEpgoyGmCCmQDiigCSgoQegMEXICAjCpEVCEUBWoJAuo2DUVtwXarLiq5gckDpFRVny67BjT9ySzHAKDtzi1998PR/s54sfng6vUfbz+1u3JzYmn5l7Uug+9Yic1ivU8ntsxeeyZldjPYSh+8gSxIHIPMzGmskmNMUpXv6XsSkpSnSwlcV7Y5B8MXFYS7R4ThVfJ3GugMz4LwXCpZAAnw5xtZkby4xN5gsETJeIlSUymCqi7Y0AI1T6FEqBiEi1ahNGVUDTugKKLq3oaiVdYQAl4X0GroodXqu1MqMrxp4KI2oJkHoSClvjj15j4/+/M97fajH15eHZSPjrZBe9zd3rYWR/3CR9zax6cO7YiJ55BT5J7NEow5STXP3DtQMFKEc0UmZBsPvsy+XDY5DEMUTVnjeIwl4Y/9t3OWhSAYXqLhVDqBIzSmZi+CA9gQaVV+OYXhioHoKSNFG5ABh0kqSF27QFVvvRyF7rmBolgIotDqRWwaug0VoDEaUa7kCpRQBUwT7oEYyXShqnBtNbJ1yHVjPQ6ZiAfks+fOH3X+Xbti8OTq0ttrm9v18vbB/gdHJ4XExvbmvtM2Jf9c4mPuI+z3057XqT0I4LAMpkpDLtjCFyQSyyp8idSXOVpWciU4h/8u0pllya8hcC5nIVkSyS1YyR9/IcVvs4hCI/MiSZBGKqXmAKOAhWGoTBjw1UmSoy6CLsLRpEoozA0uIUhJYn5quPOC7rpCaFTBsMDnFsiNwA+kovoVuhRCIUXZemSEoI62z0X23GPnP3/si/4PTx9s330we3J179vnntvcSOwkLH7xnW+Rd9456LQT7eWPuEzm9EbnR9oqBW3sIyzJFYc3xr7i81KW67DqmAOGUO74DsMmyFXEz4n0gw/iv+NZNlciaST5BZmST2+9I4ckU3ApR16Skl02Z2CIkbwVuYEgDPYaCvOJa3VKmL8lDXCBOVBRlQqhi4DqqyDogO0ZupKtV1ENoIhsCYUgsEX1yAvBsytFUyq25/5d/Om9S48GLy7t7veZp2r9jw9GjVFx8NK3vfzpF5vKtvVObuEjBUYOTDUJUn7nMtpJwjeWbv1Fdrh7Lr03C1vn4GwRETVyiQUZU07QJRph77kev2+RVvw2cgFpWLn/KLLe0HTKOC6StaieKM5ismkXdZ2303W569zwDhfraG2nt1okbHnTIE82xCns3O6oCFboBksPct0NBpIgBYqLH0Uj129vpkQl603WImoEy4bR3kQvip4EueOOg+fL8/n3/T66PkiJrKeYkEe04AP9hJ5S2DjmUyJ8pGjEIR1wKmIk+BQJOU+rZJEv8qRgGEWSZLYWjmozPEUvkAZOQvLQUCIMsjZOziAGfUQjyEqeX6uRkP8/r1h+Sd4++ThX3T89PNk/lg7MRmm/c/rZR+ubaaJXOAtXwpve+idd0d/yrH8m7iTkxU144LX5cyA1EMPrm9OTIzN/zxRht1z07jDwDNnrWNFnM4nVioatinogoA982mAQgU1nn82U1VQ4rGKhqUQosRRuISE8Bc/TgsgOouA8zGpFHInziOCA+gx7tAWKJ2mhOE8L3BYnGDXSY0Bthjwh/6gJRQQ/qm1BvznCefgZvfZdDD+y7L7h/P299NXZq83bnXbvVnN++1bvrFKvvtV69wexUOp+0lkXC98SvoO+qr0rY+WBcvOpHITRvq++8ilbYHUiTEyvEoGcfwWDM/HF6cWdcCuBzXpYMxhksLkyNiBUrxq8ZAldCSYwPehPpNhwmNCRsFr0CKF4Ik55cJSEFIJunxAQSoiTNQMibQsZPdoyOJqCSJtcWSCLEE0G/NE8TNgGz/NbJA0EKNVrn754tEYXtyyO5YtvfoneTn+W2bsovbuXqzRPu29VC5W21i11V5lud7r6xReeNDxQCN6ktcpquCZGIjteL0bIr5gt3WP6d2BSzhUqkN7QYYh0Lrrq74uqP9MIE6v6gU9TRZWAeSyzKGNB7WU2QVDYdLBIshF2KE4i/ogvhU+RXiHlA6OQPTwCLWbUOKKe4900fL9AUzwdrxmGQArkKCzhu6JhHB0Zxdp3MKLV+PnaClKDVsRvzSCW09Oj7cJxvrTXTF9cfL1dKt36rVQ4f19Mf/r6u91C+u2Od91/s3jw2g2mETdw1B1srPumWf3y1CM752dnZwPZQlGNSmwCMmU+lwsz09HG6vQk9onZ6mmYnoF/r05M6QrjGx/oZSyMSy8plKpwCU8knFASAQSPpxSar9GjETqxkDFgMIM5BioVeUSRvAJTjEFCtq+RwhF9dIQYwtEWgkMrFWIIrJUXKJKcEZCj78i17ywfy7sbG9HSxUdn0q2LWydXjtKt3GdX1YPVTKn969XqTa/dlsTVt3qi1tnfCZe7GoYzi7+FB+om7MZgd+zdXFFFePrinfV7/aY46/Vg2o5sig5smmHVQRRuinozUFW1nEipIT0WgUHgAdnXepnyJEZi1ADovjhO0SiKF0keTUUQxY3jCySlCLgh0PjTAnQdHgpCDYFmSQqwURPIbI2kigi95QYrAcTYomG0RmorPGL59/aHzNjZxXed7MlbzFXuk4n6VbJTqh5oYumTbqmu3WDn2kGP+Gy/q5pEkFAJYnExM3ng88ex+bhnUsfmA57ppB86aiIaNnVpujGbXc6sE411YsYfxjID0SRUNcGGvdrLrQGr6gn15VpwRGFTVAKn7vEkFHoJoSBhAI9wtEAbiBCnFBLAK4JQa28jHCIYCXKexMGCscYLJH9E2mFhtSJC1Y6MP2priMMlbJG1FXLF8pM8fXq8V/1gP9f8KX1y8Nb5B58x3ULhuiMdnHjrvepNafrTK0IupPyYqcuf7hQ1aOhYfBIrBqLFgYfVc05PMjwQk+OeGQlmr9zM7KIYHmBePSMOii150V/0a2yAIAYpXfSnsmgo1YqFlIRvgLsICg4F+COfgQ4lSB+ucLih0HjAgJGMpwUKx92jvP1/lYYlIEYNFgohByBDas+RLpxGYJyDcg3b0ZWaQB2RR5b9Nz/UTh0XY9WNi/PS7YN06ap0Fr6oVwudUummX0gXiG73RoWzml5RHIgFYuYT3Tu4Z6DrL1/6FvuezcAkQRwS4ZwnIG3Kfu9MdnZ2xhuIze5K/lhgExPFXE8fvEzogyeX/eoc6gvrlwEWS+EJnfIEUy1MJWkrhtOobUhRHkGnZPcWwEmfgI+SgOfgRsWRLcgX18KoYbcbcah5JLCOQg7RhhuHJdLwNW6jKQeyxj9lGWsenu6fnuVuNU9+Sf90K30C9axb6nzWqF90Re2mPSOnV+vTkkZUWHHzIKj0dLXXwAaYlPS3ZotrWnElQkz7RcyfjAU8EqEHCF9gPaf5/ZgEB7QeTfWOjUlB55iiZi4vywNUTpQHI1QZVVWUlo0IivMKFVcQEInLpOER7DhARjl7XOBHKRsloAZnFwTEDV1zDU5qhAVAuZGI4DI4BIEzW1gsjm8h84AHCF9ELO+YJ58eHt5ufvCjdPHWh53qz41Krn1eOWtsioVqod89WOw1vAeVT/oNQjvwlcPmjhjY29k5wPK9mRHvdIaNvqoH8tm8t6APFiOvaLpqvrmBrY4lA6cT0sDpkHSf5o/MElpcfXngDw30OBsicFXVaVbwJu5GFQcOjCA1TqZSSwjUX5KiKJIeFXiINcSA4MIFnkRokCJ5YdQNFQ4xRiOw0YkbvO25P2ggW3gOzAs4I1CIpXT6VLo0cf5L5vTig8lst9GsRuvt2xel261Sr5088NfbcBCg9w80XdNuIm3/i6bUJyL5ORjpw0XZ55kJmGGPHp5daf2UYbBtP3MagAJGLKoDwit7CFMzTeblMKs+IGUI9uUldly/TKm+8QRouRKcuqSkngCucRcOAjiikPgI6Uq40ccEKo6gowBZECCwkIWF4qPQY+A9aQdumDetwE2iAllDHr2XAzzFR9AjUkCKwOL8tJDe+2nvrPnT7beijbeWc53qWada7X+Qq9Q3O1feg369FGiI0ieLr4hiLxRkbz7ts8FZVsWWzDSGqbNY3zEvmTImfT7n0RaTEuMw5wKxpOr0aYSHUNkMq6n5ViQEr1mJaOH6ZWhqzhdEB6lwhAsNPRlLpHBsIWLHEZg4rVyE5EGNp10w8Qt4HAq0DcQFu1sQhFEUFfg1GBBGScH9uB2xu1wkz9FrOLJWgRij0LjFGf3RGf2u7ViuT56cNaKN9lvN6+vGReOq0+k4rq+1kn+v7V/vL851vZP9l7HZxKBcfBe78fX1VDww+R775vdsLJBN+GbM92fmCa8n4Cek2I73wxV4UinNZzwDvwzlvPtAf2mA+ccisdCdosyx4zIa1F/yuHQ8Al6yRu7lYSkjgkVBhgCwc4Lb4HGegqjjFJQncQTY4SOIM1TgbFtFN82v0QDgSnwFMuxOF44/iadgVbRlrtLMnO9Ws82TycLpdrNZ/6tZSqcLp95qSzzrl6qFXu6mq1Yg0roZjDCnB5qjIsX6hHcOSxzmW+Fk2E9g0xjDzG/4JUbKZHYlk8gvi9lMsi/qITGrE3KMkbVQXiQu2cQ4gb+cl7kWOv4QSwh0WRFINPQwhYKpVIQyFMTPQ0UWOOF/GcZd8bsfQx4HPDRSu4II9wNE+P+WRx7l7G4O53hoTYDGDTeN4OBe/CXL+Ztvhqrbzrc2zubFk2Z6o3TSgHONq9JB52TVe9M4ERve+UY30kivR4jVxnq/b2KfOhxaovBzJcVeqg7H7vf5l7aXA4Qnu8x8F8FMAqLKS4TUvuPweNDHNEyTEsTcXMxU1cxSqM+yNWVkkCqPJ8bRIMDvHAiR56i7YAEP4gBYBDDssuMK6QajOIqjLsRFIXbaBXjeZgfQcKyjBgBFt7AFUNyG4AKUaBygVsGN0HRRsJz9uXHK/Ftwli4WiepeNFeq7m8UzjvXb522691q/eoAek3/+rOmnGYJdkA0tFzn8obtxzxRwu+H9u/NMjPeN83tsZlYAJs1kxlnsubPM5LJ9PVFhzMvTyxppt5XsX4/WE4QZTbVKqfklxOvBR8YSoQiCltzTxksGEJpfgmkXHZ+FBcUiC8ejApWWJNteGFUwKEgo/SwFZD/79CwYAOAFniXCzFsQxxfUyicc1Gcw5I5X+7snd0qVH86K5W+++CkXihUmtd18bTXazeSvUK37637b+XrmShBmKtayMdi6mRWdoSgcr1Zw5YDWCaizzKBSG5b8s478yZBOOcYkVFVczaQ9CwGW5puyvlWVo05kg7npS8k6Xdrlygbx5ceSIWM8gh+ObQE8YKjD7p5Q3FxLvfjAMobDlyCG+VrOOoW8HutnAvAIAAEK4rAtzzvsgkugCg8beO44ecBxT2JI5bC7Y39i5+bncp7F+lC77p6vV/tntfPS51GoXPdqHu7GbHQIULXveW6mml5B/2Wc1XG9KJ8mszn5j9cUSOyGc1m9pZX5lgimTTnJ8xo0pt16v3B9nEsv7wXy/dlTG7FRhyYOkL0RxwxGX8qEtHHUmifCunjD4K7XQ5OuBtPWZ/FEWiivgUh8uyoFQWIG+oxLAFwbsONCsBOwR0RoDBTwGajScGmANddOB9Hwd13wgbuKc5y8eFpOv3Rv8nS9eR+Z6NdLXnr9Uq7dH193eucM/X6ddvf8Gb6Wn3QzN2wq9jN4o5KbMy31rd2W/llbDm/zFQmZpwE8aKpMWNMGCY1ybOxvbH7u+zPSayuDnItWdMw75CUkS9fitVaU45YKzRyz1L5yZEhasqdtce3ZAvnstxBKY8r9AKwAQtqF0K4G7e5BOC2212As94BhsFTFoFHXHaA2G1WMGy10lbLS7j1ric55EXeCqmDWL76cKP5YTRXODvJ1E9+KpVOmje386WTHzvVg0yvXxWrhW6vfZITCbVqdov+V1uv7s7pkx1svFs23xNXHJMVRsoeH8Zmom9uH2Y2Jg+lw23/xly0Utk7dixvBLITG9iuxpSXJAlzhFpTxNxSK+gfGVBsohx6UUZTUyA0QsVRIUVD+FsfvAMoBp3i4dofpS0CJQDwsACsrlHA212o7eGHKQhApGh9AsFxl/1OcA+ASmizoDxqOwKWVyrz+7+kr6+Yj87hWOak0ql30vXOrevr24USU+lcyCUze9PZrDS8q6HLrufm5RGpl3HKyeROLMyEs97j/HJy4kvp0LkdW3HKGMscZ5JE9vPk9pu7y1IgeWiGM5dY9iUzJjNLxazjGTnFZtWx1hKBjqdS4zjOWGUWfTEFl8UNAXbYNYrabQqMLBBd9/Du+wXu/6UiOMrdhVg5zs0Bzobe8ZTr3nvt91Lw+VPc3XdwQymXTbn7IdSSPs6dz6UL1b2LZuksDedM3epVp9RpNzvX1wfdi0y7enPCtr3JerTqECvr3syAORjri30x6nRO7E38/lP+Q9Ppn4nNLO8xzP6xc5WZyxxmM6aTycT2nGMqw25nB6GsuDSG6c7QYCn/gKoQYw+0puYd4+xUWXnQcfdQaEl5QuGUu9EhAxYEbYYCqNvt4h4GAkm5+HuedVldLsF6L0Qeb7MOA1S4A7HxuOV5dNjlitPDKGXF7wCAtCzfeubsYq9Sbebqm9oG5MpbhVK9dHGroXWuutV0tcpUe6u5thht3BBYN5oUc3lzQDiTy9mYmZ3rzhGXzDKRdM61Mi0mEGW+PIw6N/ayv88lmTzjfPNPZiPv3N1VN7IxTS8vmVPjrbmp40jmPvZuqRx8ir9UXnoCV4bQ8Xssd4MUGIJ9F6dA8RK4OOQOCYxhcIcdQOIryKN2wQbXznE8h0ABsHB3Apyyw6sFt44P47iixCz//tL4NJ3pOC8O9k+7HzEnubcqF9cf5d7vdcYKpbNCrlGv9xoH3pPMfI8p5KIrEqxiNUARZTk6n89Lztntzw+XP//e+fn2NjN3yIhOZnuCmegn8+bc9vJgVcrHWhKhrl5K2fFk+bKczbJ3LuWXnhwZWMovrdxz35PjQ2zKusThITs+zAW5KQu486U7cJd1CNjhfowDBMqAFUUtLhKkKADsFosLoA9bbJzVYrnTdrdNuRMdAih6F/fQC09a/skd5naXm6Xbt6uls73K+413M+n6dff6unNBtJvtg173pt1eH2ubFafcCNyomD/WGGQI+cOJvc9bx3+axwwmvZJkvtzezjonwuaEBMtivjzezSdXJMY58V7SzO5OTCyxGy3Z+V4Nk5dy2ZGUND52jyOrPDn+1FNT8+ydd5aHgEsGNiuHPgcJfY/w/B0cB4YtVs5usdpQ1702iwu913b/MC64Hr7XYr0L4Hacs/HW+y33cpa7bHfcYxGGeHDHfxSZYYj6dBjHf4xtTuYpru6Gw2YGdXdZp8liJJ1cUVBnSVRS4JpZUK4ilsLOuP+LEazQhJHBeeHBQBLCwGMv/gSNKecblUEcverEkK5eRJPCXglS9AtB0L3Zs+/zfL+f5zfwr/yvKTZ/nl+xXZg2Xa25HHaXzdH18qbfr08mbXPyZ38yzQw7n85FVppq8pOHV1JBUPm2UmGl0/dnutDmB0+KlfbMWtgzx1Y+LxcKYqcqZAq8IrVrFiOKmdqdg2Lli3aB+fKd1yuVD09LxQ8D+dxeKc5QaBhBQCIHwF6WBEgeJfNpkIYlIfDZR0JQnW3ozA/swybbhmKEUCQNDS4APIgfj/hzz+JhHN+L+pFAHEmDf8z3z7l+byzfrZrLq3l/2v1kcvey3+ya8/7v1Uq32RenUpev3/B/vHtHfn/w/gtP2GyVbRc67BtPdIzMnwVJ5SUnY6l8WXj4Sb5msWvVVoVaWdXaUunhMn8H4meKaQnlh7J8nmWydyqlPwvFw3jqMJZgyKMWUST2KDKBb1HEiR+cpD/cjj7oP3nR6/eF/Nv3EccUHBUfwGC4PLDnR0MAjWDMHoZ4ER8sDkHSBBLAiCjAwCOg+gurjYez+XDc1eRPxGXnDsyaZb/74/SjZbN/UNeW006sv/z1cvD3+/zgoP3TxRvlly4KjKs/fKk6tRhTMyT1SYmDNz8TDU0osaxl2bYllgqupWm2WGNttq1yJWgX7XA4LuVOd9k4JX3Yeu21bBzNpfw5MnFEMPsvbsf9KEJsn6Qhb2IAqoIgaPRFDCFA5DnUH0H86XvTGMAwJI8cIwjyoh9LewCOgwDp9+HevfhbQSBZo+bHhjwpXs+Hy6/qptyv9835cCjCyRn2h/In/XbnQBzD4R+XpcHnbP2FzDO1mw775MXsnC0UOAHeI8daAqsqhc2i/EysoDoFtqxza7u4iJ1p0PcKSuGgyA5aRTYvBAvZX8tFarDHHMWzrex2MJd43esJhv2HBDjZexYhjjB0/9h/EkniEYRG/B4/DBb/MRYNPYvjfigAAgLPAhRmD7wK7j3xRkAoiCeOfcj+hwjQR3NtcD18Y9qfy8OxbNan43rzprz88fc7zZvmG/KoLJtT/qb88B3zpnz5902v0S69MHVY/tFCG86OIKnWyhJsy2gbDqs5juvojiNoTru9Ud50ChVDcvOSwgmFU9I+GtSy7VKGSbbj4Xbyj0Yyy5zuZYnDUOox31GYIh/wAARESQQk70OC/sSzET+O4xSJRVBPGm5vED29x/704wAALODFEA+OIj6C8CM0TiI+HE+DK27+o3k1lJs/SsPm/GoyHza7025/fjO5WF5OxWWzXJ+I/VczvCV/0KnXFUPmpcaCq7Wy3JuN2fh5pfYMX9XYtmI9LHQkW3E0h1dch61YC5YzHEVo10RBY2JSKa7VpFI1n82z8eJR653K0VvZYjJ7GH2XDCfye1E0kjvZD2YfiEe8SJrGwijtjwD/HpqOvhjZfhaJICCU2/FgCAK9mUinkSCGYUF/APYZRSAR4CO8QdAzlYVe7cLwH57PhyPoYxfNqdy8O4KMeWE26903J5eT9kty56JagttA++D1otA6EC1OsU0+K2kVgeW0gjHTlBdmM7vN6gpfVmpl1skYbKaWYeH22cqL1B+MwxZ/rYi1jPBlvtZKlZniCcO8ckhQJSx+sge2CM8r6QQeieIYkyLp0D7wU5DIIvfh2z4fvUv4aAwP0TjmT0OHDgMaexlFPJ4E8HrAXpj0+X0BIpEG/yrSfNztmL3mV+fL/tXI7I+G02b996cqy+55dcz3358sJ1Xpbr1drLxZLApv3mp1jm1zvFM9t63qqseqantljCVtpmmGxqmLnrpar0eKUtMUtrIQOEcoi1KhUKgdng6YNiSFTPDX1od/hktkqxUnTk6pRCobxfFwLkERkUjARwLsMfT+Ch1CcoAIpZEoTWP7aYzaSSNICAc+H0IhpAcDLyNIIPCyH+x+GN2hPTsvb/mB03llem72uqOhMDGX4/rwKRkKY5qX15P+vCx3+9M6y5tPdP8om6OrQvGgXCtfZe7IEkQBVlRhWfx6Pbaregb2mmZpurSxFNhdqsYqEruxRLZS0RqcxFt6qqKJuT8qqUE732KyrxHt3dOj2CvZQ0zcIykCUHQeR/fI3W0sBQg6ncTSkTSWjNJRBOYnjiEkeBaByzJ4GRB7SDQQAYBA4N8EEiXJaBTxosEgmFbE7/Svz8UJHBtj/vuU68jLodkfLuvLZXV6UJ9OpfJkIsOAvGyX6z/d6u3GWGPdO5kW1+k0LFFS9Sq7kKAorCNkFJj/qt1Qyo7tWIzKV1xFzG1gcPJCoaIIxVqrcnrYquXzR7VSJeetUMSvWwwWxygCP6T8KQzkS7s44t/BgigIxDGv/9kEHUKpPZAANAJ9APs/UgjUiwewFJreQUjodgF/IJsEHjwQBfrwc1NvZq6lLjz5g/F/9+1ysz9d9vvX1yN5+ZbcHPOdG10plavVgiQu7sg9/bpQ5crSSG2oTpWdla3bleXYa9WtKDPLzjgKb9nGQUbSlYcFAWIbp/F2sSjmDgYZtgXdOjiolfKl7K8ZJl4sMkQ49UrpvcOEByeiXg+BhtNJit4JHRERP42F4GSjFHIfQUYIEAgdk2jAB3weGP87XqgQ8Iaj+A4B0xPa9C5NA0UW34DVDO/Wl3NYwjMi3GjK5vV1f9mcLuvX0+txV3+Dv6xe33mpfMCLb/5b5Rfjc4a9HY/OFU07qzhrQ5QsS1DsmasbLqvZC42frXuWwQmC0nkoawslUSlYlZzCV0gnHpdir1BtdEBUvORR9MPDo2LC6yVIP4ISIE6TCbKIoduwhch0mo5gSeq59AN+QOx7UiE/BlAE8yH3gmcDAXwLJRPA4/EgNHwOxBbmgcUt2Obo6lyGhzF3zcmoM72qva8okimP+zflfndaveyavDw265aUUZTqOGPWhfaVUxOZajVmGDZfURVBVTnNWLszJdZwHPZc3UAK0N2Ks3GtVQamadFlftUabZFjY9lKsqKQlXJpwByGs6lsIh+uJIL5+J53K+9ntnMggIajYBuLwlnfAhH0OACw0HOoDwbKNoYCAAcfpwO0ByU9HhBAKD+5lQx4ERz3bm1HwdXPmfGPTRbiZVOew6SpNy/qv8+vh+fmOX8zVa6upHPzb64z56dSXSxn2h31a0FlL1cLy5Zq4kozvrLdlV7rCcqCXduOxs20luWwtr3ewB2AMyo1xb4VjHLRYbMlrXiQPS3zeYaPH8a4bIvckYKpo6M8SHno05M8hadxMkoh4RQ8pvVg23GGQOl0CK758BggQkLp4CeCoh7c4wcogScS1FGCQACVfocIehAvkK1mRu6Mm/1x9259MoTd1enXp/2XpvJc5oef6HJtVJVGpqlexnpVTqj3CtUOz/c0XdcsY20t4FBobNGSDLdhK4JrC3pv5WizxYJfrF1efHjBtUsSRIBM8Rs2VjKKXDimFZlGNlyKl5hiPEu1fqUgOqfice8JRnjwFNhJBmBwhAmE3t3eQn1UEj2OUxhG+0I0dO0EStN4wAt1wQNIyouSOwRBUaHPEADJodEZqvIfvNn8Ci4A8/lyOmwu4dfdESuzF8M/pvWXmpPqULtsd+TvFf6PdkbRrtQem1Ftw7LPeWOhGauZOjOcteOsN8pGTWqbjc2qPW6lseq6Ym/KrF7T+ZiiFxT99LWZkSll+Vg43mJ2CsQgTBJMZZ8Khin0f3I+otFtCCmkj4hSz0X9JxSMERKhKDIYpDEoB4DTTlMQcQDYfw2kAL6LwiI8Wy97gluQBW7NC9X88YXr7hzGyyedfqffnZfNrjj8iP+x/FLmpY4sC3JHrMtVRZHrak/8tlNT2apuCGINPnxWdxa8o0mvsJru2K67Uc8XWs3ZqLrubuAVtiRmpIqw0DhR4CSWGyiLViHeupN4GBdazHvFMBXIHu62QJ7IYqQ3QNK7/iDAkgTwB5LEzvb2/1QJg58m30NpBJpWCPWgOI3HCRR5J4EA7y5UyQuIFwmAozSYTO/qXXlQn3f74vCiPpVl7tKsviCPzN8Ns1v/4VxUq3o11q7qncyo8aYoV/WGOI7ZOmcokrEQjIK9aqgq9LGVzc82643qcjM7IxqctjmrLXhNYC3FzWS4Al8uFMWwOGjFU4VC9rXTcLvYCh4eHlEgTFEQsIKY15t6GQsmYrvvBUCYppHgcRQjIIzdl0Q9u9Cn/XQkFSCSCIFiOJok0SDlDfppnPaC6E7AiyZBZtLt6JdQie6chRvmcN4cTpfyzVCe9/vD5qU8Vqqyfq6P+JwpyIostQ1e0Gwpw80kTrUys1dWi3XGdTTXXQiC4caEzabnbNb2uudaTuxpl2UHglXJ6NlZxUhJDJt/qFAIlph4ZUAxL72Wj6Op10px+jXqBOSDeCoVOAKId/sYiuND8SzEGTKRAAGAhujc0ygZIqFMUCicpP0UTsN6dpJhfCtAoTh0tGNwbZrD0fSied18u7tc8v1mR55OutKFLJYnclPqNMtVuT7m3mhAbIZsLDSUgsoZt5owUjVh9u9mYa8g969fma1vbXuzdiTW4WCEKnp14yrsBnYfazgGWyss9EHiLCiUBiUtOyilskexAZOo5bIMReQT+cQrWW8cQak8iVH0cxRGpCIPhDEShdTyIMmQOIq+B2cCTaI4iJAJAvh2d3KYBwUvk2QQugEZOH4HJ8G4/H7drH46uVoOleFFp9ld1geTLjyfNZXf5arQLd6My5edDjvnx7wkCJ3MeBXTObX6tL1w7YVk2D3bcVeSvtZ0A+qxsVdrK25bbCOmuLaVMVyB1dyMFHPdWoapVWo19jRhpXhKSsWkHJOP5vNbrWCwtJPKtlLHAAT/P59JAAzZT7z8LEicoehnkUAKMluEBA/g7x3jCYJGgwESTXjIZCCeTESJrd3n0PcA8CVQwC+/F+bm92z/uml1zfJ8/D7Lvc11hvxTFzwPgdl8/9Jk628yZ0J31BGt+rm4qAm3PUdhCzPRNTK3qi2oVm3mroSNu545tuXMFu5GcIVVT8jc6i5XYl1W0kuLVyzmVNF2YgWeGZS8g18HTDGWP3yaSYW9R94HjgJHYeClDkMPYOT9XoTAILsw7+EwW6Ihmn4OYhkNp2J3N3FMADKAomEPQuIYpAB6C/eSkFPxHQCa3b+6/fobN0txol/eTLqD/u9ny6Z5MWnWxaZ885JkXuZ0bVxV6tUO26udVQvcG46uzARFdax/Wdea2a4jqYa21s56msRai9lq7cxirrPRFIffWA3bUhqM1CuIqV5GYJjXsovCr8U/S79SA6ZCMtktcJoKE6e+FhkPw8b34Dgd9j/gJ/dBgga433MP/RsEtGMag5XgKBZAMTSHEd73nk4kt449O0GcoKlgAAviT/vBojf96GD4y2V93uyNf1T4at2sL+vFOX/5Qoevce+L8kI+54WXRsaKvf3ZqInqlW0ZK5c1Vqq6kOwzQWvYnOOo65WjzrjZbc/dOI6hZWy7pzbWhl1ZNaSGltvEWCafJBknW4Zjw5+myqV89s9oNoUWjvL5YPSd1xBv0BsikO08geKBo/0HIr5dxLONQEdGUTguO55j8CI05hzydBLdPaaCBEl4vLtJDA1iJEniW8EdIPbHt/O7YpOdKFWxM+/+/mbpBh40VZXlFTeZfmfWL/mXVPlMldmy0u7ZGnfb61XOdVvlGuzKna0c9s3NzLVnkJpdzd7YCxX+MDaOrdpWbL2RFEV3imK5J1VzNbZWiRXj72WKKn94mGeylUP45jmVBS0KS+HZo2g85cWj28nncvvMb9vAt40/jeDJ3c+e+wyNkPskTeLHT0cABrZywThJkLiXhsiMPke+Q+54UTxJEWAucKY8lEfy8OMDonrTnHS6XbEvTu52TPEVWerAyIspZvX9X87+VRdn4teOpbchimmcMzLYr9bnhmv0Fj17ZQiz3syCvuwajYXdUN2N5dRcCGtxB4bMfxRcXWjrZBiONe1ash+bY43Nabtubsac6BJjbLWc/fjpgZhobU9OUGhtjcKxzZzMFmrVXRRlhs7AUCEVNygUBpKLjTnEi7EJ3thDb4pXtghCzIU4EbqrwWHDz9Kb9qof7/s+P+/TLzEyFmNrpzKZ0opFEqYaPJn6M5bCmupKiiRzEt4KMyU/9jqJwe0lZBySCmLjxDQuQieNwLIQY4RBYcQEhkCFhqFoEJ1OYUAl/P4gilI+IuXn8RkKsbb2f+0MPtjqDgr7X63/sF2Amdn6T4Ot08rCvrlbTx7Y9dgHjd8PGDNv/yzHlD8cU7gye5YrCArZO2tYcM/snPxBmicn+YuGOWwPh73RZn7zogy/YWyZb/echhzL12KmoNaaRbMZzJV2TrXCSjGXujEzduORVi49wS5NRLBIJIBCIvTSqN8z65O8GEc9QYsUnHE/7CtkHMcwlJcoqDCBl/NB8QObLeBHVB/MQ1To3lhk+3D3p736B+tbSudObOv8q3/uVb7qV4q/t/cPDw87+foWrM7PHdLZrNWF7YJdd846I4Zs5gvHjbYNToZmYzQs/3EsXLR7o/v3L+rV47OTzYuTdgzWhtzMm9um0Ey1TUWGoqClVVvN2mI5WUG54mmSL6VXTv/MkTOloh9PlcYnIhEiMI0lFv2RcAg1cGNSGocMI0kiIYqS6PfMGzjqkSSJ8KTECZ4icD+KU35CgloU4TAWQeovrX/RX610Vhf2u+vr68Vi7SDTfbxQT3Zi9+7EmN8L24f3fin/Ulh3lI5Vi32T0axech3uMazY8cW2cL9XG/bavROyIQzPhjkIZUX7/sVm276474zszdjQrJWho46dyG3FKuXhmMRYmCNo2r+nnzCtVokNnHrv5oJ304GIfxpPcRPNaSrswbDxqbAn4OP9cUmkCQzClx6iUI9HohSKhwzjv/1IQNEpFsUIgKp3fbD1MAlFtj5YvXen8MJgZ2/v/IPu/p2PtH5tb6ue+XuncFhv/74uD0DuMkmawuZh094VZHtQLjRsM09uyqYgHI/si2FDsIQhdMxM3rmEN6V7KizKzmhTMI+Hx0L+YlN28nBJs0kK+aRcJXfStaK6EiS5UnMlRzycQvlFjuQJEcpFLhwIhNlQAGWZ8HxIleZ4HiM8aNgQKZQXEV7EdFdUJCIFeIySIIRxODwENu3DUBynZyaRn+t7P3140P/0lfJq5q9Mf/9edz3z1Wqm3u30D+vrb8rlzG/rFVl2yvW00sk0Gk6pbjpO1SkLQqwDlD/a+WbOaPeG9tWQHF6c3LegvzFH93tndvuiVs6fbNaKxT8abnXzpMLEVKvMkG9vB6vFTzQtooRJeCCWpGfgvGAs4UeCY0EFW/GExjD44VUfEgoQcJ/pI8Kq18OjKK1OoQHMR+mYBNAnPAFJRYkIB/zQdxocDkOEm8mDwd7n/f3V/f7Wbueb/k8L9wYb56f7L3Uyh50D+V7dSe4dxLbyg83N7WTjm21baG8Ofxk2Yooy5oyqriXYybOzUeP44gzOvcnA/rovOGzDIhnbCqROmHarfVzbZKo9lGkwpvz9saaSxXRkRVspBE9bRZAmSiTOjvkQnEMmIjgGPGPqozBxxiUkROVEqDtpCWUNVIIraAwAIHJTHCR8AqM4XJIwSeUxlwcUhYoE4nT2i79+3j08rJ/CYPbHnd2tf6B5OejWDw8GQr+z1ayTz9vMvZhytd1pWJUrWZNlO23F2LI1vBo5ozPbsS1ozhpnwx6jbJK2CYT7yRPm4kJoXPQUO++INSbFtJU2U4P7zVgsqZEUIms5nNWYlUBy/PVWCW5WX/eN3w5yQW9wNjXnm0ZFTpJwJDTD8wiCERJFwHLQomhgkt/DopIIuYildEUXIVCDCELxKHSaOPJpvbawUNq/0V/fewumMf98tdOvDPYLW/3Y4IdvvnsnBhGuWucVoaHVLbeUd838N43a6Jcrp10fjZRGzLmC2NWwZWE0ZNpN22yP2nCALoYno7J8TIKhIDSA5f5RUOxeudn0c2pD5naaEYvEcuk6jqfxsYiv1aLxu5FHlIDfX0rNz6RC6BwGyQUl5rGQRGEsRehHoicr+alpntdFgiJUDIE06UMDqEhR0qsEZFSUIpDDe7v/7K3/Pljvdhe3CoPVwuCrHy2Iyq3kgbJTv9QKOW07uVNQBOdn6x0zVj9kGtuO0C7bgm72vhEwxTZtyPYN4ULICyd272ZDhrB8f8SNHMtye6YJIwLGEo6T+WO9yRRrG1UYeOBpDpe5poeM5Ba1lfHWWArK+tss04r6vUjoxaCOzaFRatoTTUTDqeh1WJj5hIEdhTE9i/Iqj0O2AdSrKOB1CQccRmEUQP0Ej6yWPqiwg/0P7gxuwGxpALPa9Y29V15+6Z3By2T3x0q/sLMD1/7tXSEJF+y8YKHGVR5UNaa8oQrm1fDkl6EibJ4MZWCbpm43lKuGqcTaACqdzfsnkPodxjJPkiuCmhYYpR1TI9USo5LNGS2YThdzd4NoaSXATaghjz8cwqDo97we8kUx2p/yeqm4CBJoNgrngXYxEJKyFLoEwiIl+iUJjRAiq1q4BCDfjKEcIZE8Uvl5/875wTfrg/oLMzt1+NCh9Ol+qXrY6XeT+wMtWBVesJImS4C3Mk909KYlDzs/Oz8rsHnO6nkmZ1lme/OYBcPR8YkgwLfdNJm21ZRPzFHeFM6AIDSbxwoJLNDjXFxgmiCCLuWrePm0xJXSaISrIjwTbS1SHriQeD3sAWEuinvnEVp6gI7yYhSWQDIUUSLiEu5KEmw3ESgiJUmU+iqlojqFcvCsqETxhEQj+7sv1xcKfXht5qsuTGYy/a1/+r83F/iNxT4zUz+sJVuZm8cWDP+dbdL6pW3DxjJlE6i5CMlDVFM1SwHQPssEbqd6PXsoX1y0BXzI220m1tDbbq1pwuhZPtOqZD5/u2TKTZIUxhiqlVMJoLGzT7CvfxLgJil0HhrkoA8PTCRCiegthPKg8wmKn6a4BG7QRlCSDF0URZQHEMdEwKv6MqGjvI7/32uU7odfo0hm96O9dxa6u517Cxl4e3p/vz54fKHUr+ysdyoH77+b/rhcqSg7yqVZe+cq6VhmzLba5eLJH227bbvu8bZpkbWcss1ftU27qbwlCFeCalqXDdM6sUzBPAOW1UjlAVmwSCgaNEVpuTOKVtUWV1ioMdHgI/jd25i/tEgHwlNzHm/o1q15uNvnCHR8GZufDdH0Mv2QRCgoHBIvJVGUzlwaOk5kFeAHGJwWkeJQA+g6Rrgi0q28dtr/+rnijdxCR9v/aKG4Wtr7ix1sfF59fEMpNdcLDhOzMPZ7l3UEEnAy8JEOaTlpciRD5je1hp0c5Rug2iCthmW1TFauQrXZ7glsSuYURlEUX1to4LbFsKasGzx/miHV4LSKV/8kVzzUyuJKmnmVHOdWHlnz+5FrqYdxH03r86H4t5gHUEY8PD3JXwJxWTQkEBUJV5piKfHa/x0nAoh0up/XCVWCoAZhG/mleLir7ZZPV8sZcr27c7C1sJU5L5bOn8rUXzAPusnyH1qxOvw5U9y+ybJ2zXK2fx41LJAvWs5VA7V8izmOVUHsrUa+pzSH+WFjk5eHCrCEhtWGJq6RvGDyjADPVYgtOdXNVF5OkwxaKlXTUzm8FZkF4wl2wn9Ln351NjQZ9s7PRWejHt+tz+il+FwoHkTpLJXVCYmXeNHQdd0IGctZguBdoEP2AbDPgKi4hEvw6OUkUnw509n/65nnPjg4KJA3O9+QlQ9O+8Xq7ied07/fDSCXk1aV0JXqI8UOc+ky1VosFyQBW275mg5gGMXqOcOLkZlXGqoCed+NCVSeiSyNrhxLAKIQUCjQVgSZvIppE+wm5gniEZSd0XRcLG4EF338GOFvrdAJFQ1q09N/6tGlKQ/k/McSNBGfDr2IxONxWozHsxKdXZb4aUKNGjogCGAEqNT/pBnFKF3SUV2UDAk5Qna3KjdWn+v+s/r3y3r6mY3Tryp3bjJkpXb5VITvqObCuptsFOSvk19S1kmdEC8RJ3+D/EMZneUFRl0scaSqsjY4Bu0LUxfIE5SyKEY443krxljOSh6itZlSUvxxHmXUJ5pnEqmpGJtjyeqY+G8KfR9h0fFwidcSXi89Na8SY+PIiwhBqdc9CRrxXaNnQ1keqv6o+zAw6Ojck5QhobwhEvqkYUgUbDbKpbKiAUSCMwCSudH9ubs6OPj7/N7Le/1M9xNq4TDX7b9cOM8wG8nYDRHNqemc3LHyReXPvL1ZnxEVBEuVLU75QygxTYZswz1Z3ozkOEfJabETgbeBC6AmMDXbctkYoGiNk3uIbMLMjyu5O+okT6QZ0tcK38XCi9eRqUUUYcfT9NqrvltREZVS127rtN9H0ZJLJ0K+8QT8sZQeFY2wcZ2X0OuhkCJGgQsdQArAFwJRcdIAlwZJIKv7dzILLwxefqZzWvn6zlvVjW733db7uEq22INWxpKVSgYmecQzjsLnYkFWAIwDXL1cJWUrb6tkgOk5ZAvXFdsCwuKxpfDWyEwJm+Zxg0uBGMPYlHDMlHVxia/6VRLGQmq1GDJFyHG30+nFuwQ0xdIsMheOsgFufswX8j48PTu3ND/njaKhtRAvJeI6F40u07okxqd9buJI0pfFKKrzIcnIujo8peuKdBAWCRwhB5nz7k8vvIHeeX9/7++F885H6uDfQSW3uz6oZJppL+G/csL41ih3mxspst08urJNdvgNGXRibdzsCQyDW6zgKDLghyCvQgYyBaVnyZISUtuuJ0lCQPO7NqgJiyR2rDKqNZvCuaCm6ek3UDHwKkOnU2NoDlsLh2FMvjapz6OPEf4QPT0/fj0RF5cfyx5lr+vTjy2HsstAP9JfpNxsdpnKxo8A0A3XPcoCQwSErvOuLiGdm6sHT2GZ3YP9g9ZrN+ATOlKPsxrZ3cBTbzxtQGiuf6KRJcJQGoCNZZidKy/ORvwkobCfAHIxKB9DZGM0uc2jNWuc4VmH9DfUCA9swTbB0Eo5QzNnsWOEoE+zDKfKKqsBAk2RLpEbY3RsJe79MOFRA+zc3Xm/Z2llPO69hhDGtbU1/dokmqWz4kNxOr78kDiXNSQxBGiI0bATDVoHl2I0KioonyUoUSSAKwEDeaG/n+m+8OVrwe7qHbV4czFT6R74H5/587vmC89+3rQCNE5w6gEoMfqz4AkLZ22saWmlphorMAqPWhZjQfmr+q1etdmbgsOed1AIcXjeYkid59VpzBIwqpknVJ6f4KRbUe+Uzk7gsyyYfX0t6J9FbgW9rbVbj94e94anCO+LvhfVLJJYWntVDz12jX7ggQQajWeXjhKilxbp6+iRlNWzWV0BUR3ocQkTgYrpyzwAEnAvLxF4SfG5wZ0PF1+G/2v7+7mN82e+/uS1yuqz+nNauZJ2/NmdAwvbdizkEVlhOxyzyNiMy5iOiVtQb5p3m/6xnKlo6UdIPkVYqTGVBwqjERT2yG1DxkxLMYGXNMMRq2laKcYkiuVTTKBA2htZNGaQa000jHpTtLSyhsyicfpW2DNLvyglxCgVoo9CR3NilI7S4tpcwji6dp3WrxsE0PloQpSAVwKAdikd6lAUZWBxAEchlZvPPb108/Gt7X6mv9r9my0+tzjjKz1jFsil8Sl84ZtXCDCeCyJJ9yZZykg12yFN60oJ5LRH/mwocgfkXQtOAmndVuVgc2jbVdtKRSyZOVFlxvZNqqamQRlQViie0Vlo2b3sODGzEmC9Y+PqLW1u3ufT1nyecChEhGnR452bm5ydQ2ZfnBORuJh9YD5Lz8UN+nriOi/eChli9lrcWNazYty4zE67xvLRUVRxjewRBemUcpHTO+e7mRs3Uu+nC5/8XdnvvvXU+cHkDfrx8cB79zY2fGhKVfioQo6hE75FwG68nvIyvJpy0CYLAF7Eq6f+9F1WMJmYgjqw5FXF76s2UM8T3kjzf0vN6cBSADoJmiiGwegSxVI5GQe4PzLhD7lzCKoTxFh8OuHV1255pzyJxNwanUgkouPGg9k4HPTQtbgoeikDjslyQlwOu6/G9SNqmackI254eXB5KU2L0LBlxWw0+x8H5xPaPhnG8SRN82dt1vwxadokNm3SxSxqYpxxhHUJDZXasc60lggVpVKyWW0PDvyJ20EoEsRdZLCCCoIn8aBojuLOHr16dTv9Dh68D3znGFuOefp9vp/n+xbeBzp494PN/pv79hsv1TY/Hb3J+/8K5M9/UuHl7R+Q86r1dBJijntrnc+Ovgnl6v3ehwt//ApK2VD3x/MRRtaZ8W83e/Z0djQhn10k6Lh7dOWX3KP63sI6Zw3FLZUA0Oruu/XF2P9ccV3M2ts+JMdnMis37jpsUe96kKJOyEg3oz4McNyrtarKeg1s3arxupTFbjvoS14cK3yWxzRQpf8AJHlAXUCz2AURJ87v7+8XjX4G/fHnt3/8WX9x/ynY1nn6w4vgXia+f2Ic/fEP0TWH0w8qrdsbt35kvAv12JLx4HxBLP6WU/bV7rCentXPrJkc/viZTaF4yf+eOjpiz/0vXLee2QPrO3vgGkcohDLdSfsGdW9MuYpe4TVk0TQGbs+o6hPPG6tCbdFmWtjXz5RrmOEV9ba4rYtKIHFLL4LVaMAHW6oX57DpmuqDDtwUq4pk3KuL4CGv9qv5Io/BeAWHgzi+h8Alqdff2/z55zezF/a/efGj6f7FX/X2mx+VyWv7/YPkh8WLqDFu3H5UGt9UrRdbsjCpOkfgwGKPE+cf+wgNx2M2dfauxp/N2JFzgy0G6O9v71HP7bm9kdV1pujVeAChNlutlhz2xlzIlqk0ktngbcfdqFBFO45Isq9HWbGn8cstQuspS7haNXOTq22pHCFKXM6Z3jJT53Sg5IW+CtD88CBK/X754UF5yI5jQAoQEfL/PXNw+cFPf/z17eokfHq9I5N/Xl6cssxFa/hn92yzGUDl6u3qbNAY3NtVV3Zuv6hPWJKlhJJ9O5l062O3bl1N91jw0tY5uZeEVvNqjJHdZwnf2hs73aM913bG9SuQECZXLolgJdNm60dlpwcNTGQcekhGVqNiXAQN2WuI7aARbZuepil9nosUmBNVqa9KgUpLSqPxEMdFPu4r/UW8OA6CIOvf3wcgxzSMfpY99Pv5AnrjCTi4XOy89eLT8PJ693qnzVy+MSsjNtlMGH3mf/Xu+V9ja+rvOJMHq+v7zK7bZcY3huv7vhCGw+FRXUgdIWHPxq71djeZ1CdjIewuZvUWhSKTXun+vDs0bGdRQ1GjvugaqqVsG1OlwtxAeqmNcCAKQ1JWKzLLZS2w14amZFhm0jqoI6MNNfOkPgyyvwLqkVQ1yEAHBgqdudLzam484uw4b5Syh0WQA8/sfgRWdux8dfHlwV/ywaZyeXl+EJ7Mfups5BF5NkyEsEfizAeWTN2WOvLZasLMzj/yOyTBHB3VHZn1ZfvoyL5635HrhixPLINNj75gWcJmjXHlSrjdW1SIuiI7R4bjV0mbtBb3z9djAjn3fLWhjvlaEUE9meeXD2uT5jVd4YvaWuW8tRh5XF/lOE3lYg2OzUBVAqBH/hBLXHyvcuXcUwIVnDSD51X64QF8D6jk0OrgjY8+2D+5Pj1FLn+Wb18anCjX8nVv+M/i7CvO/NudPhx1mTJzsyixiU8Ylu9Pv5Ctt6cM5exNx5Mh4yc2RTqVW3aTkGOCBcLIP1qWv0Ann02GpdrE2OvssWN2w6LTgTEUeJdozASMqPTKzVDpF4ntVk07NItc+T72egqvi1x5zUVeqwDrtLbU8yhSY0n0uEIcSGoj4zMVjJ1BULh/bC0gU9ZfZGhfCgIzgzon1/snL19DLxgXp8MzsK/jMjw5g+SzO+b+/vai9M2wiPrUpUFR8m2X6Q8msj1p2mmKzuopVN9YX3w/IYVwyoKAb/94xHSZs+6iPmR4a8KyruFgpYwdOA5ijVu1GoZ0HchgHd7s6QinO8U2jxzXylBt2V8uIy2KzeVSVxRNBMMmMmlTVzjeE2kuVvu5BAJAHtAFwOGB+nUu5Z6U5YUcQOz++SBWAjA5Y9Bmpy8+d3755N13zn5+WT549a9d+6+X28zTnabrDMsb3HV53nh34cpHC/k2kUkqwVNStseTjeA7GztMmKn7jj3dS5gzIpyU6r7b6ZZs48rojsiZTYIRyeCQTB1bpe2xiwSupbR9ZIYNWCWreUhUqvWiAezFJaXNaW2+vb3Vhj1d9XSujxRoxYM1M1YlHe7zsCTBUg4EiGk1o2M+i+lMyaR8kMfZQxAHOSACdPnin9cvVJ57r3l9gV2Eq1VvRWLI6pgsP8luRwPoVL75tUd2RiQefrMRPtorOeHAFnyKYt3SZHrH+PZmQyKkMJwKwl3SGc+qyehsQBIsltbB8LxC/647iypaNJzSoDjpYhDE1lBwf/EZpUpto8eSV/WIJcJzHlf0lnobQCxaS948ys35FrzW1qKqmHEhK8BSAF5eGgSmN4iDLKODbBCr2WOUUVU1z82sUe1Dty+fXLx58dObu7VGc/N0JxRWh4O3/t3svvGnDSVvYR2sjA/+kS9QlmXtLkWMnbqxqU+EZ88Jajq0NqhlpXd3H89C19qz0PTdqWMtnsXCkPTHWMlIIcYYs/UpejNGkFHVLQKkLZTBM5ZXUhq1qoIvS7wpMutcWQLs6uoajlq6tJxzormE+QiWlFyaS/M44NQIbm+taVrNC3QQF+BBDjR6kB49k6txlmcZeIJeAItK9lfME2T4yS87OLV6ukvu7vbaFTAJPnI2u1X71b+fS8nh9P78vJTKLk4kVJdKiaRjj+spZaWJj7IoNq07CQpgBt5+NHVS4mp837bGztsL0hlTfqMOdcs2zhzyTG0yRJWK3iZUssi9FPWLZW5c+LrdbhiRZxThbNnSamudk7YKHidGHKeqpkjDoifRquQVPAmORdqjB0oBfkwCsZoHqgT4HAf3iz7IZi+Cm5CvsCe7hwdvFQ+In5dNBh+twOVaX8CQXoXpjzBhdzFFy8KIYRcXSe8WIaeWZVcJ8s410op1NLb8xB9NJjIoB93Y1hmxjSbCIcGOWj15qMtEBQf6jUtuA0eaKGZUFzUbqvEV5V7jtgdxWzcIXo8K/LKtRl7Da681WlRMdcszVY1r06J6rHIip8I0p3qGRCv9uJDDsaLFQRzHXp5X80ce5KAkqPnCG/sfvb7bfKOzX+ucJNfT6qr1z+3l5NPVCHvmxsCdjn2DY8j778o/lIi02v1b3pxdUFRC+XZyJ6QdPLkjx88yrkDJhnznX3UdR/YRihVCZ3Izq5Ym1v0YJw8nUJs0av0xUkMIaNvrE/elw14ZUyBaNzm6vdVwOfX5rS1V9ERxGUS0uvQ4yVty4Bd4IlNEWlPhGFAg4GgRBDSJ7gfALXEMngLAAHCYzhXo5YMn+zvb/MFbMvLXBbUkm90h3y6XiWYHe7XTK5flW1xASlR5OA6TIRQydxtZHlGl4Z09DIWSP5tWQ1kWhOSLpDMbg/94SLDMkHEIC8OrA/SYqrCtCoS2xxYzYFjELx0iKITLldhEzBstqHE17ljldXPeV6KlqHs9TVH4tb7U1EauiJG4Nac5cS7SMegnSQxgCWhDw3QsgS5TgSCSGj9COzbpBwn648WdJ6vD544ZBFwm8m+ZD06R1f7mcqfSa781Ync71+XWu7cuWcYoXH6ZkEmhjNvWr9+klDAcYiGZbmSHdShBkAU5rWzQyZ1d6WDTAYaSlQQbUXVnGI9KdjauFTG95HiR3jS9V/zGoUZAbV7x+KgVqbWCp3K65vVUHaRlHSQADuZFToc5Ty0ox4rEwctM1IJCJgZ0AKToZ0EMyuHBc/4AhFGDnM7zHFxaeXL70unOziFYPfbKqlI+LeMh04RqzdUpybAUX26sihRRqY4w1mF81METIWUYakTaLEVNZyOGIf0NO0tku0RO2SF6UWGqdtM9KocoYThoaC+siQE1KxhGWqXKqtHykfpDkxjwbcVTIrORt0VdiTy9Gq1bKhepXENtg8Girum1ptG5CM/XBUVUaJqGYRXoAuqU8qDAAZnUQMpBTQBldE4rahZAzAsHT3eelp97S26fNDpvGKft7d5td7d+t0ovIQarQFaD2gj/sNhGdm0hSfDp9PzoKTWbzGb+jCARn9yQGIOFrCyzFNMjZbxOjvcgEhf8KkUykKAwNciBiiTSb9awqYn4PASVOK/omQ3PXPLc0okHS5HbMre9iNN1GNQDa2CutNfrOQ16SSwEIlcAhxouCNScUwPVBPLEHg0X4jymA8BkFWS2LKBp6OeTVQ2stpqBVUON1mmPWXWeNE57m7BSg8iwwkynvRTDyPI0EYipi2EMlQiYDbyejgSQMjudEpXKWEImlCNPJ2AodSwhRSBGxoo+wZI4TjSIheU0x42SyzmOUkRZ2Tz0nueUQ11r6hrWrsKq7hnmUjXXEg+L2jrS2luKqImFSIIBn2ngeFAAV6BpDujRp+l5QEuFPABBWqWVnAZeyjMAaCWDDqDV6qTz3GvXxfdeXjX/oaDOcJcpV6rVYhF32gxO4hXqlq2RTuqT2AZPZGIzSoXpHVWcMEk4TQGLOyEllM5QFvhoyiQdKq1XZXsos/ghgU4Wjk0WcYZo1mqHqIGRbWhCOqRZvW+3+g/qIQqGo74UM3WpKATgMQdMs+RakS56W/Ov1UJhvjUXRU4CysABF2giEEEEkki0FGcxDKiQ048MyE1akqDizvYT4+Xr98BC1cPme+1mE3qPNDqgGcjNsFXEnIq7MypXCap141AAAoRAnpNkCcc7yVAgU4piKColRzJDhZvB3V2SjiotskqEJJLiZEY2ILJfSVtEC6OKUFWBqiTL65jZLkdqTylxJc8r8kue13hvzmsRN9fnXARmyhwuRPCjVCLnPQY0TRQ1ml4WYDUqxAV1/piggy1QkFSQJPWx62jwLEEMdPo6elo+3d2R765X03+J2nPNHv4C0oN6eK9cK4JOgRYG5XcoEAPSU2KKprMkSUImJRlf6FjsFIRNOU0EvJLIaalDbCBcYCHKKTEGhDt2pYxCjAtBENHrWljrsHXIV8x+hNRUXYPaLV7rLUVPWXpebbm9nIucCExTgDVAY00D9tkqFEQwNwGSaWD8R5bBecCBzCneA3yBkgDHwE8Aqsok6K0DZue5l6nd08Pne9eNFSQju6GxYXDDTyCE2Z6xlaLw+HmTabmC4+mIIXGqhSWp4IOpmQ5TiGDDGRUmrDt02TRhRhUZYyYJAVWIAYtXeMo+9JVyg0VdXRjxnlX0Shg3aDS8ZVlZc4uG5nGaB04A3nLNgeHiacAuUVQoAPsXaG1pwlsFGIbFIALvC6/nMRAAACIGBdEgpdF54X+m0YoZwBl08qTZO3zlyUvN1ZvTPv/cMCy+xTSaZBHtETJTISuAqQIOFc0ekchYmjLUnZAwdUoO78iyAIBM3gkhlA7r4SxMSUhIRxSGypCNlzujsgOBJTckEioJLxAGkk/aOo+YURnhj7ttrlbiuhK/BOF/qXhAkqXGidpcBOyKYGWLnnvr+VzTAMlEEWgF/orA8ABrYiQBkgUFBaaVYBCIKqgvFuE4yKH9D540ydPTncOX2++58mZbl6+LTy/Il5toEQ/LRqfjV3CyJNyF5CiUoclFMnTKbgKMIgCCVTs+dUfdpUISUqMhlOCJUQI0GE1Bz3XLQkuo+rKD1qBeGykWy5NG16n1oGIYD7Q25BXpasSBKbqltyQVjpaaXuBERVzOtUJhi464LVUzYXhdoNcikEL1JFGCYeASUIgEq5JIA+c/9lsQZKDZAJkD6GBFvIB0totPwYrI8KLychmidrBWhcSVFgNcgycUUcKxkTANERwiRvhodAes4rPk3QWBp8nQT2Xbp1JsiAkQAU4DRFoRKJztpYiBEQReJpU+Rg62/+vh6lqcJ8LoJN1kkuzMTtOY2YxtaTuZ0Vb8WsUgi7tbCCMqrOKoVPBOSipCeltQ73LhtXgh+Df8SXvvb/BEwe67STrdi5ye55znPPPSMsNjyUrNluq9tFnHeT/u/e3W1Sqb9MEuKOpqeaxwaoOmD9qm/OupAprJ7gmEzQEMnacYJhWiGQJNNs+mAf5ro0J/mVbTCXD+1az/Il88//Bwunm4xKfvotCdPvSPbkVWcbhLmHz/4SQSyXLK4Fff3YsD9amQafTdH93VjB/y2f6w8DCzWdftc3r4Dmtsxt89qG4Wfye5DwXnRN3CRMTr1xEvb81V+V6Y7nJi++toRWpdz6svbYGRv27mdpJVSJbwsmxnggHFNWQN5pgnbJ5NgyN84DgJYAhwgWAaFE/BJMAFoieqD1b9NA3I5qPH8Nu7/PzW4vvtyXwY0zeEOKlZx6iKz6ITmrHTw8NB0K7jV1+RK+gi6fh3h7STPE78LH8HLsa6zvsZfPrVlOSzxfj5KUY1n13He3xyLNEr14oyvXrl3U+W0Wa13S1fadtGH11T3NRNYIovWzjX+pNpXazath6KOgNHQIIXj3VwRKTBew+qijnQTAMIKAi+nABaMKacAOSM886v5Mu7Et/Gkb+9+eONX3SU+O/T/bfJLckT/wjD9e86vo8R+Lt76R2h0M6BI5yRbt8d/uhknh868cI5FwuZJ2mS7zfX4eHKiWsZwhj5zbWabVgyC/GhMkUYq0wYh5HSQ12U5XJZrW07rGqE479UjyG5R9xEBAiCos+GogIQTATDJGuGHg0lKIL1EwhY11WGMsPKdIzSxXoyD55GksjH4ddf45vGbx7fjy+Lyz75Tkfn3MV7ofOUMZL6v6n0OmKw5c/zF8bTTlCZ7OXeH/aLF3+QyGvpQ/f5ISIc1OTu8NksCWn6+ru5YJ7kt49c5CT6JN8mKyYj5yRjmMPKP9dLdP26NLqdGvhX1QzY/J9bxJix39fFBAqv6mAyukEGFgKwNZ9kR3BTzSGvDIvj8ggQtIz1Ru4ebx5O+y8WP7hwE7+x2eSnTep/Ji9U0uR+Q5hHWLzCmyx/yGOfejjVD+9ADgdIxi3RK/nLHzMeppK/+5CkPEkRqDlbUO1DQmZCIACUyVL5W0YSFTG2TEyRmOXrtbo1xbIsXFH3Va2LeqkymG8NMy6OwbwewTR1fTxOhmwXTKbr8b6BOKjgZkC7fPpyjWY5RszjejKd/FUBKLmcP2Dny8cnu32f7mK2vfZORQ9hTIS80JngnXsRHOmF38Kj+MOBr6inn8/8vkOTOSxs+tIdXmacoiNRj4x2SGPJBU3ogsQLEXaK36LgVBKRKJRRpENbxiYqNsVKN3anh/Z2BQubGEyWDRp/OaDjVFOsVDVUU+DGMZ5Vza9g5QhO/ioC6B9R+ojgCR/AcfIE+aPvTL8km5+/vyu3D5+qN1P+RRjd9MotVJ6cfYimeDqkUtBntpGSu07kXNg9LGshKRDtr6Xn9wu+F9LBkeEI1y8aeBJBc0ecYJItmBROrlwak5CaZEuiK6uvCq0bqkpbNk27XBZmMLpetwWKqiiAZYI3GkP/9BgEUHxfAViBasM6Km2Ap2VBdYTgYdCTajkGnSlsrgI08tHjKQl3+01I7v74PYw2PsxtnCYpOYskj2Pl9J7sOcU/6eUipTH5XSdI/at9t6eWcrZ/lxzyHNKJ6cLjD6hmMhb0j+gKES2NFaEqIcSsiAHlzMRmXX6CSBZYECJMU2LIjIK+D0x7HIJqhJThvpdDYCsTTLIMhOABpcDVCuDAzycoqTkuR1+DKwQgCwTNp+StTx+jsrw8ns67KHKbmz9yrV0MvZ9JSplPHpjw1F8JLsdkwxeSs4Py+zAHcYs/Fpz7Lj4c8u56kdxTn5cLyToRcZ8yThn8ohRXafkcslyZ8hbb4ti1bEJnVGHKYFWgtsTE1KaAvS2RLNH42zXm/mIAI0ONWoPS4VvHCVLyBFcIA8cMpD2BCIAALcf5PKvA2nwyJQ/b7Sn9/nf54SkPv1jkFxbf9M+5Znuy+J0/dtdS+Nz+crhKor2knLNUdh0Q+egec1pH5cFDIZJzqjq2h9t52cXv3jPQQ2kcMeCxkVprx1RTulAzZU2/UoUY2kq1P86XxVAU2AmDtTVVVrWI/gOaCNhAjWUoqaHBs0k2qTOcqioACFgAvGxsOBkw4Nl6JAkSIt+entXjm2G4DTfXLvl94V97Zf+Gp0Rr7aVW1jPirr0XHc+VCOEHEEonFyNRsOL9uy+3i5njkucClB1Yrl88b+hefeNGMNKTq3A5W1IZh3nZK9XSolTxSqsqGkxTDC3SijlC63U7HPtsjjRTBNkRpltV8F44MR5ZlQ1QyvTLsaQgoAIo0FeyDCgy8DNmzvmYzVbnP+mHm83mDf1+GW1s/7ABLamTptTJnnYzT687KYVUDEHs53QBdcREWim7F0w0QsZWLl5yfVCykyQ6eMpFFxOvy7SksfTMgh0R5hFJjNlEoKURZtXU7Wel6q0xv9rC2KCtC9RX1taTNitqyH84ot+giw5BgTYzz+AE8wFcNP/yglkANpY9TSeTORgBK3jg78j3d7sP7Jez5/Na2Y/j/pRYtlNOie1SKE0Qrzax1zGVqWec6Y4tRRrBCoRhhMtc8pJq4RVuOKFh55lYJtRHnlPhQq8ozVmqcjiX0pG2NAKApVmZ0mpTV407AlWAnq8NenqZIS+jv6zR+FFeCF5YRHHhxkcjAFEVOKrQTEc8FZZQZSN9AVD9O6CRD76I3jo/P65mmATOarZvzwvUQ7tyZQcbiDj074W3FIIR99SkVyLutOr4Qrik7w4aAaDLsfd8/6Wgmqo8j0XqXciJjIjmkesZ0yrWKix9qk1oqxVG/Ko1LRnCYm4aM7G6HQNM0A9DcWyLAQpvJgjM2CfHaoWXjv8qHDxk6Jk1HGHsMmPiBCj43wQ/x/FI/ny8RMvH6IOLuSwJW4vT3dLuTuLsjeOeKu2/SiFxJp08KCMoLYX06btyZCmXdAxqiuUwPKmgMQnYaRpHjjFrlfvOCcfhyCoMNTG2XK6Etsq2y35dYpvJFArtf9ePAxiKyBRBC1IwfNUgJMj6eiQEWhmGYYJdJyBqAlTUqPqx1AJgAq4xo6Fj4oRsdvniO/KlLr/Pz2S7X23i+Jw/ygSlZZ3uBcmXmqHxaJIzHrkXPuNOcpTWYZaKA4+5IvuZfoGzxf6Q2pzkhse3hDOUYl+kwmon0lvfw9KilepjrWsopb1t9KBtq7FbPOihgQ9gysRNZxmQoZpGFMfjaFVFBi/DsZkfM7w8Pz5VmJ6RLMcJFIhgFUdEA4AEMx/cmT/f39xdLo8r9Zy47xXR5EITpnkqJAtzx1A3wnaO8Y5xjhOVhM86yihjHqCuXsiB13vDO9Jzq0uWstg5ivtP4MM6pbYl7XJBGQlLpVtX3+5WZW3qpWlD29dtBfkjV45FNmmHPmshjWk9ANLYJvuswBmosn9J+v8IKwMO0ILjFDaAhQmY2Z5/w1cI7VR0Sj++Yb+zDTvbxvUrKNiYiK/2qdNCdJrCin2vISGPGcwpLp3oukOUak00MHP7WQwMVHiW99q5PAYpWiyFIYpEunCtbVXC7E61Ndk0th+Q/HVvg2xXV73CxtikP4IdlBVIQWWNxownQY2aA4YqmI/j2SiWEU+FRVyPB9gFrnAm29XNKvoY9Nzk4pmcys/T8ibdRbsYw4ig77eWSVaSCHELwsj/wK0bwTihOU/DZOSK4Tf3PLeLBaGM99FBuE0kmQ17EWMjUWMEs86wCA5mzNBb29RF5QJrTYtW01YFWr1BqGwxLsOzGvT4KfpONrIA/UMruFsQUQ+ovmqegSigRBGuA+CYwtfQZHDOJuTyxWabXLbRt+Ud/f5RbUPKojCmJL6Rij4wmWtKsekXaSrb1mq0f36wvqPGdJ2AnkX3ktp0YFC/jRzVsXfWMuXKVn7iyNIw0ZZOa4Wx3hZW2BYBU49bMoVZ7ww6JxLyus6GNhv6foLtMqSAepoNFXDBt4C7ABSQBATIy2BlOtoZHBmHkSeUHOwBuKCZ8tvL++QcbpT5s9Tb++dowYwKxVakCxFpR1uiBOtFBL/qDqHG9UEi7otcIPZTzoxjVnZegK/cJNRKnQpnfAuNWGZ7SMcoYDDOtm3otba9bk3vChQdVv4VPabL3YAgA1MemnHhmNV1MBicC8Tk8fkEngxy8AM0eDaSNsUahA9EaKvAM4E1h8/F91vy2Gy+XW0el1E8bgtvtXYa2d+UztmbEEw53pZa0pTpK86pM4k+vEglLOVpRKhwchEJCF3lbWpMSa3QThlHWR+xltpeWapXn9nSrnuj4RLoM5VtC2AZS2wwMKqmnpisGlBfx/kQHNFMx3Kq8YtwBgYgF1Qd6CiQ0eAN/4kfjwxIYMxARDaXfHsXXk7Cbs0q0ahvotmlCEtjdE9CLyBpU3Aiu0VkvdSi0R5CodLWVDbGCqxRu6qhiFRA+KztzSgrZumMGUP6mrRaFcr1Ddbt4HozGGtbcwMBYX9pqMbZzB4DhLNsjhCGqgMi7P+BCrgu6EL3n47ETGEMY3vEMYOBHVGAoAYon8b2gyvy+Nf6srTb1XppXymZe02eQ63yhzCdQTtO9EoyykmK2qCsNYUWkiorxxr7w6Hz0No6Ijj0RQE6DTXviRXC6xBcZKlqNcetr9q6Lca0jOvaovJcAT503/cQf428iRmm+rXGIxs9YApmMpxHraAbQkCgBDEAGP7tlON0hsv/Osx05A3FhgMJfyrfsveP5vysnrV9NCKyKrdQQqucHRQVFhAi5wUXYgGVqJ5psBJJuiwop4JaRkrvBDpszb0xtbYVq2vPqDZeBwyMMKM1ZXHo3FAzbWsd6KC1TdridgcwY9oAnaY2WTGa1nIYewngBM0RyWuoQBM0P1IAXYxoUHk4AR2OY/0BCYjBa/8A0BlcOJ3RbpMAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"dB\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/noise_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"dB\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/noise_level_chart_card.json b/application/src/main/data/json/system/widget_types/noise_level_chart_card.json index 0a91cd3f9f..a8eefbbbf2 100644 --- a/application/src/main/data/json/system/widget_types/noise_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/noise_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "noise_level_chart_card", "name": "Noise level chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/noise_level_chart_card.png", "description": "Displays a noise level data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json index c573028288..7fae96a8da 100644 --- a/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "noise_level_chart_card_with_background", "name": "Noise level chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/noise_level_chart_card_with_background.png", "description": "Displays a noise level data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/noise_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/openstreet_map.json b/application/src/main/data/json/system/widget_types/openstreet_map.json index 35cb9246d2..c8c7772ba5 100644 --- a/application/src/main/data/json/system/widget_types/openstreet_map.json +++ b/application/src/main/data/json/system/widget_types/openstreet_map.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.openstreetmap", "name": "OpenStreet Map", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEXx7uip0t7////18/Cq0t708fDyyUzw7Oa92bHy8e5vz5fw7efx7+7y7+rx7uzz8+/9/fz08e3z8Oz8+/rBrLzx7OoAAAD5+PXPv8r6+fjOvsnVyNHv6ub39vTYzNPt6eW/2rPSw83t7OnRwcz39fLx7+rq5eLp4+Hr6uev1N/28/Hs5+Tn4N/Lusbo5+TaztTd09fL38DGtcPu6url5OPf1djJt8TY19Tu6+Xl3t7W4umslKrXytHa5efI3ePh2doXFxbh4N+52N7h7Nioj6bp4+Xf7tWcnbbm3uLb0dfMy8fEscCbmpjMu8htbW3g19nTxc/s5ujg2Nzf3drVxs7Crr6AgH/U1NGTkpD08/Lb2tikiqODhIJYWFcuLi6wr61ycnD01su+qbqOjYxISUji7fHR4efr7uPO3uLk3N3R0M17enmvma7g6Oiy1uDd1NrGxcG6vrOtrKmmpaLY6NC0nrGioaBOT07i2ty6preVdpSJi4pkZWQNDQ3r8/Xp7ODl7d3z0cR0dXRoaWjc0NSnssbCwb/E3Lm4uLdcXVxTU1I1NTP2+Pbb6+/j29+3orSihp/W6O3c6NXEs8K1tbGXlpWLaoqIh4YmJiXc3dqousyzsrB8fXxhYWDy5N3Hztbz3NOnw9L0wLAeHx7S0c/1zL28u7mpqKbm6um+2uKozdvVztbNzcu5s8SZepeegpw+Pz3y6eLG2NypyNbV5Muju8u5wrSen5ycgJuRcZHt9Oq/vrx3eHfm6+W0vsv1x7eehZ/IxsWepLvr7u7C3ub2sp+afpnQ197S4sfN4cOrrMH07uvDvszj6OHAxbz1rJblv0/k29ugr8OppaXU2+KTnJ7JxdGzqLywobb1uaadpKbVtVC5ydKCYIGCzqF+c05tR2y80LKB0KJtln68o1RNRTLy8eHIrVqIe1Sy5cjQvMimsrXMpKt91KH1pY6mk1ZYUkLRzMjoxLvxz2hvZkq0mEXHtJ+ol5LAso7UuGetmFi0nleznVd4V/r5AAAo9UlEQVR42rSXa2vTUBjHTzSgw7C80IH3S0VtUIuXQSUlkdVpvcx5H5udOnWJQZco4r0l6uamGwatlw3mNO6F2qxWoXOoMN20xYoUhNHaWeYn8JXfwCftujaus8PLD5q2aUjOL//nOTlFE66HQp4QjkuswnGswuL2gB0foXvA4Xjfg/1Cj8MB+35D4yfsr+lub2xsbG/v7MLyQoWuT0DXFVmW2TlzOE4cEu9LvBx4CyYZOt+DSrdB471jIM/ZP4HI39PV3dnZ3t6u23R35VG5jtSEqLrcruJ3vc3umgYYeX15sxrAjSqZkXeBxvtOLA+fDEf8vRDY5NEJoUQs6q5vqm9qqi8m9raocrUgCGdVO/6rSk/XsAZI5b3yJ8Mh/ygdkBlbh0qKuN3lTU1tBIhE5WZd5DtEYlTRc+jqcQCNWH7SlfU/dPR0cgSOXDGmvDfMhZs6CMLakpBrwoLQkqktQ9sD0OX5GVqAWAkDKA37H0A4o7JBZ2Niwt2b4J72EoSpudJirejo+B6g8NF0j89D0pit5xBCAsyEIo79J/RoGoH0rIajgMDYB3o6PVyAgNoqtpi9QwHwyEHPbz0olhbNKMmKrUuRjmAXWczA/9IBEGunkvCKSOiYvF6NwnPRCH2OjQHOT0Fpzm1diFLw4rgjoai/U8IRlY0AJmZ8DKDfsVH0xGJ6SgzKMHP6MjSCgI0FPIZT7wpHYZoHvmWseB6aS9O34wZRBngw4XN7YA5HjskiVkwk4JpohGW7Z0M4GdgxPTw8i7Msy7E0E1IidNpLlkOwi9Y0mo7S0h+IhCgNqiwIJkzO0urOWVix4NSXhkB2L0RGcowFlyTJ4xlkmaDAKtwFmmGYOk8KTZZZjhsK0cAXP80D48sF8Z4UctXdQkIsJnSCoZy9nutx3ZOIncQwMxph4RWDhkmwS/ivHknv5/2rSKI0wtGvowzgUbxRIeyROX9c5AA6TPu/gE0UXuMSUZSAAgusgBQ0gcJRK2xNZktwdH0NpDsEpwwjC9OfP/f1PXqIksw6tBhlYdbsAD7aA0TObyVnfbP5tl9gGH9dnTPo/XDhwytZHRyMcBGOsfU7W6O06uz30zQ1PpHm/UPy/dp6AjhQWVFmKampvEcQXg03kl4E46wgaFmnpi8XPejrO7js60QY3dJD04wdYk+SZaFJAgIKnaZpW0jfjVm+VT65X/XGS4NfSvnwazkyGGH8fs4/GImAiJ+PttJ0nqlPknSRt0rLNVmuPcxYqgvftb27VnGvur4EnBASDQuuLsfwEtiuVvfG1CCbOgdb0vegSGfS4hlgsnj5NpTFm6SG2SRIhjTAY8dzm+08ucnn89l85teyHI8H6+I0/QxEGDEe4fpVVW2V+3lwA5HMgI3gFKXp92WKWUPdSoPCK2cDDFFrLWs7sbnygPVJeROIANld35murEDM9b2joYrTKVqyZElRiqMlc2aQS+YhA2JS5A18EiQ826PwvM1mu0EuBBHnerIORMJeZ4RWB+VVg6JoC3OlX1S/Kl8AkWfDPSIxesBSCjuGm0yG7EGkXGGVfWGx6qzlHYhUW8xmc8OuwlSJs5leH56z8IDLFRBqybt7uXD5UhBZPK9o7cm2ebX7Dsx4UlPzBGUxJSWiMQjgKX0swyK7ncSOjTfJ03oiBWTp9k2tQW/panLLbdmvi0Q5Z1xtTYrE47SWvgUZjkyevHIdMjCkfAcRNxOs2kcQZyoqKs1PKw+XmRYhIDuUgWERSnW5rsUSVRVrObXF+vJJ072yXe6ywh/uO0t3ua3WhhOGXrcHTgVARfSadC+E0oGs2nwRkTvJTTd8x30kuee5bW5BED74dpLFdT7vgmDQ6VT7eYUejPM0reFGD2DdZODqrUkog1dRFFZggwVV+tRrssDGYiEKM7/bjb0uCa7DHR17qyp2gUjJMfgLcHhz89PCve4TRdceW601bYYbtwG4aDbDuidpkTFZc+nSkQIyjYnMQQE9DMN41yAjLyYnmf/xIhqBU36yYnY/SYVxHH/2tIZnB/DRAxyPcdIIkMKXLBLZyii2XszsPaNZSFJYrs3M1UU5IF2QuLaoFq50DXpbs82K2WaZ66JN1qy1bqp1031X/QX9zgHkRehtfTblyJFz9nl+39/vAY7D/qpBOrmATg4mch1KoxHH17O0yJev46a39gPmY4Gh2osHzUalcXSjXNnao7x7xmy+fR+l8W4Wcc9L0KkjHfJ4AVook1umg3tLE1BSKoFcp0MaSHlmK9C2Wb8/BlLuyqIU8fTpq02vvjx/jQrTJCRry6NktLqedjXeeWu/1W5uHZKahkxVamWncUzpaK9Stj54fSCzRTbP403cri+UPukFPOgv8Mz6E2WIw0Ga9DW6mg4amBvoF3Q9e7wFRBI0da2nabm9+H5L7YjdTnc69MpDMLXUt+B3AC5TVZFTEcDmRgJ0LEanYwfQf6ERL8pLJT0/65uabkiZXvQLtikUn+ZFNq2nARlF2QGpMgdLTVZPJrM1H+36EPon3LOVBTzSs2t9U9OrG78qiGSpQqFYXduV2l8NTpkO0QJI+FHecc5rXFlSAyK54aLnV9Xvn0X/gCe/Rn3II8ncfbuaju/98QQVgN7QoADWSiTrVyQqcs8JvQgqCXT0+5RGVUNDxYYdDTtWZY8tL0oR8vtt6K+gPd5QX31RGn+8Mj2wcjlFI6cT5aVq3TWFwOpGiURiEL9RGPQpE2NFVEHUG2NCY3e1paEBFl9ddTR7ALvTf4Tc6C9o7KvPrYTfLfR8pT8eaiwQn4UijdNzc9AcIvtPSBIYpiNOpeZj9/mNFKDTlVLUE6pCDx6SbqOlbBUSNiCjog6hrIn73/L0By2Wez/QmNPXiBZlg3pJEqcPUVRn9305BYCMgOlSj16pPqSXW2BB5ILJqqNH69QoP6WLVpai37KI4f0LNWZj6A+4gzIxzM3VqtVCe5SlLSI+OEPRrQZR4Mzhg1KquaWjdnSoR/mio6PFYj58u1ncTCv05etQPmQsazIRTvarQAlLyp9p61tYDg2vTYnyK1EhxiQoA9HDuF+hqEtI3JmJOCVi1SjUTVEQqdt329rO1F4YQIdeXt+rH2XNA5abzXKoiMiHfRaUB2Y8fL49vJH9TXPEpwYmF4q4O69zqev04MJ1vZc28UUED3WdQrE0WYwZZ2quUbLzYq+7Tra1HTaN3kfoQKDafO6ca8Biab2MUtTlK0kpUS1muI1WIuMJZhZBgeChBJVyBHMlMo5hCGFliBomRBSpHx7WkuFQUVGsmHDe2WKMOUIYTLTMYhUmJYWaBJZ9TDx44hsbmwGP6v2K8kZR415GB1HoNiVwDkRaqA4zQp2B6uZRPQKM9wdS/7luF51HhFNxbAnTRhjDOWsrt5IZD1oPsCvJ9XD4PMPzly+Fw3c5d/Hh/g6XINI3fvBC/9D0VGyk91w3V8z2tuGA42X/YdZgVUVP8igvzsTKO+84xc/fTghWg2K1EZ7zzUhQJrr20d7eZipw5nWnlOpuRujWgUvo+Y0Hl1BPj8NFCwMHRvySXSgPpD3YA6vPclEDDgxgTZTCjsv47sQw6RzFi1UBDNUiEy3EEBVF3kXn7AcnSMx0/dvz6CR38B0+G5bi7rOYVzF4EcrHE2eyF3z3EhnyVdco9lcLHmMoB5v/dO+3kOH6SajL3goo4TjY9Jw1o723HBbLduSx2TxoydK8M4sxj6raOXL/Isfx/cyNM5yMNOOhcb6U6ecgLzKsKtb0M37oEVGkfcrP9U+Pt/iZmOsyc34Sn+3ltIc6GKxijXljNTbzRJLkFBKw7P/+XTF4xxeBVOXgqRfxUiI+lIVl+3a3DchfERnLcQx70YVvRCcA/mIPj1ZyOFy7CJGgFEQQVk2NBJmitEjRcNDs6LBh7+1RLIg4WO3IAI9V/J6a8rLBnYN1looTg8tWr0YCEh+MpCQPRZENMK++RyIwbxcSS4jEKJHPWQsyWFYesgmgijK0kJW1ASIrYVT8rfOYYIxbHJyO2LHLrJWRfntSRGMlGRWpJNbp5iFOG3rgSIkcusBiFVMi0VcvB5aUA2JzRCIz98ZSHoZTD+G5tcLcpcegWfIQzxApLc1SXVtes1/08MJxzY6yteqcZPFWEybNVmy3Sgl3HZvCDGlz4deXCQm4cFIET0wyVLJHgsXD40HCRc3spGmYCCIPpFtHWhnQxotS99wpfklLV2g00/XxeGMyWKc0CMHYVSQjXlikT8jVm3soA3VZ+doaUcQtXNlYVbakAmXBbgxGrRMGjjt0xHWkjSGXwhAwljyPBod4LikyZQhaXYcTIucmjlj3bhyZDgZd76bcIPL87Brl3laGa7fOT61k9o0ajSYWj8caJYKK+iF4rAOP1FvYwtGyUb7POSXbINTYBni8YAJU76pD2WgJIZgHI4gWK5NxmCFaYR+BBxnBDGLwcKWXMLCTxMVoYTs3N3k6BK01UtmHiYlgbQm8spTBuVNLqIDbTf/k1UxCmwijOP74hmGM48RZYjMz2RyzSZqYGNtYsRBFBWMsiTV1xYpVkKhQd1slqCDuWHFBQZDiehFFEHdREUUREY8ePHgRFBT0oFffJGkS25ombfR3mTLNYX553/t/bybDsLNuMWxWMIUeJ1taUn4rDMqJnIh774CFl0wwmAUoAnkRYCEQhT66NLsfQBTzjV96cHOQg82O6ONHrfw4Kp9aHz/evn1qEw6QK0+dOriMLeTGX4dFDH8dxoljYoi1xlrQJZZmBibcnlyL9L7N5bLgKnTIyZOA7MbwLRLuAh3WG23WEoGAH4YgNyueWrn2xK3JW9/Mu1+4FTwBCzcug4qxqiZTfBogDofVE9O0NJTSxFFiU1Zk4arnNwHx2SxNkKMlJ/Jn96sJFsAfTGqaFmIdzUkYgpd40bdPncv11v21tyYfOIDVOIC3UVVRj4N7xAMFmGnBL1+0wurouWenKOGV3iF+fz0gLltneILbjQ9v3BCWBwyKKiIHIhrSqF9bIMBAefZgOc6dO+iFEhioFg/O7XL/1vCHUinQUW/Uj6MoytCwZ+vL+2n0iPgpm2uOMU9QTkN/QiridwBjtQKCIl4YymSMJC2lYUT44yZTMwsDkesBuR6jaRTp2DnbMLZ7+vLjTz70jLOZrm+Y0LVt9jGjca4sswNLjECRfYEElIWTSBaJg2poOgEl4HbeFh30Y7IfgO4wUaJIUbNpY482dtv09Ovgts7O6bHuFzHn7E4jYsGSDIE3UL5JGIXMPJzJ7FhGJKicR4/elIrsw2cMfhhcJIEi2zooUaBau2mqp3vs8cBrF3p07uw8HmhtPTnOiDTIchMMhWopt+IX4Ph7pqHhzIyZxAWVsufEiROziqlqwTavh8FxWgCong4KV1ak20D19EzY2bhKOI4i05tbdY77maSqtmgsDEWXKaxHwrTgtP610lHI4TMEOXOYSJXV4hHArD271xZr6iy2+UDssheo4IY5Ri9WZAp1nN6/wdPbq4ssj+kezhcak4hEIo0wNCmTiqNec2NzC85ixdi3M4AQkmkgSEOGEKiACf2/OQfGroX9ewrIFlagLDdehCkqfv0kRXU9gN7ebW1zjcnpptZW+frOKMNYIpHKojGhOXUDv7fLEg5EcA7XN5wo5ETqCJI9wDDwhk1t+6AMduwSUTAaqTwCB+d7zUV8OKc5WiJQIYXSs9PqZVl2as4U1ELkXdzU1gXlcCTzmx2XBXQunLehDwsMnmR0uiIwDJj6kCwn07UQCWJceaE8jpQ8INEeM3+QTkZg+IxMpFHGMmObtziGXg32gbvE5VIPj1P2/gcR9tOnficSzlCyLQxenEpSDFRAWusfSntLRXTR/yDyqZ9I1OlMNnoAAHfzYKVzwL4OVQt6oMi380WReBP8B5EB1XA252819KG9chwJWS32ivhNKHjEAP67CN6pYTHy4NBeFQ5Myjyc75svrxFta/7fIp5ocyPTL9KrIq32JYPgKywtU3cHC5XiBWDjDhvFDV+EjaY0jOwRwah9NaRW5TysjUm5ufIFyt3Tn+PZcBulCxiqFAlpWrAeRojcJyJc2JvPKzkBlWPArNxptsXiKBMMtLTSXW2BcYbqRILJKAsjpbC0uMcXGMQvq16oAio4+0Xc1hPp7Ok0d3dY5m4IB09qNFeNCJvywohhVRb6eJ/NK1mur0rEeO+GOd5B++Jh85NOmt5w7NixJ7TYJ8J//vr1Mz+YSDBaaPRpUAsRKIr0okhKlh1Vicy9122Oh32+cHzBDZoedwNFjhdFPo9GPvcX8dpjWqDvfslRk6xnSkT2PseH+E5ZZqsScdyzmONx2neXOTYbRa4fi22zF5fWV13kK4r8oeF02qdZg2qoCRxpexBqQsn3f/PtBcabwlavBgPEx5mbps++YaJNcUysyIblbWOKzT46yx8iCacW8uTmEVWWcbaoDSVJKwpvmX2pd1AVHIDZZXBb02NoUaTzcGVEEqkuK+RgPR4WakXUUrwm4f2FVCpVfaK7DQZaRxBF0WgURTf8XSSN6fJPsMoh6EO48CMlp2BYcBwUKSOiqvCPiKr2wp74/LXVb2JhePw/EU7IwvV76yKoqumCCFhMVkBE6h+JpGsggg9hERuZKAlQxOWaq1r7RHywz1TfhH/xY5XCD2wuroYinhqI8O1rVqxYsYTsmOmCAiK/UdkHxYpAoxqJqAumHuYhhzLTaKuhCFsTESMvSRKffXeCJz79jQsXL9URyQ0g8fiP86tAUAixeTsJkfQzvNlMFl3hfbUTgWS6FiI2UeSURQvJoi1H7pAr7Rd38VPx/YmlAnC2Q+fOHvn+WuBPXzx7ULJNXU8mrt98sX0ZuZjJLFFqKWKHCmDKi0wkCL9iMVmxY5Iy8axEFm0n9AxCOODougfSzMxrsvohr6y5Sq4dJq11T8m6i4R/eIXYoHoYZkQVSQyeVyLn1kXqEJroIosVV8PFMUQ6qhydgR66CBH5hz/5OpvgmzmDXFpBFrZLVqVOkhZdGY7H1M2blw0m4uiAinA6AOGQUg96yhjawPHtz/SCSDkRN794R/tm3ocikBMB8/xfR/Eg4uUvXkEa2hWLUqcMU+SOJJ0qFRH6UqtCEW2BWzTQBQwGEQDoYz3dMSPNt08wTaHprMg1xYb9rqzfRVAEtQ1L6wgnLTrFZxSRmpAhWRHegyLKsEUUci6TE8mcI0QEndZkCCqB/l3LmcY0VkVx/OTdPPHZ9rWviAUKrV2gTSltbVltFYhtUqAUStkEBATiAigIsqpRwaCIASIDSAbUKIqJymhiIiOuH9yNSzQmxn2Lxpi4G7cPnkdboFCgrfGXmTedxwzc/z3n3HvufefdpJCC5Co2+Al7O/tsVfkYoVr0Wjog5PYXUmSTXorqf5pKuYGSXMzQF59jkqTfIKQahiSS5o6gEFHiOSkXN/dTsphTFXQtNdXa8kVAyBctJ4NPSKrkaRAN5WfTttlTc7202+mcoQOJNTD0S70+3yYKKa2Q443hLhTSW57Y3NIy7fNJvMUP9zK075y66RtOStJlzdP3NyfKdoX48ou9iRAlUoJw0m1FlP5+1BFUghVd3LYQI0QnpIcuXSw129kZZypNz9pstSiE852uLbfP2HxUYsUgTVfgHEFJXHMafqKYmcXyPImNaUfXSpSkMMxzEr6ej0O3w1+QSCXKaSpqi6BXohCGoxkc5amVL8/a4cu67W9SkAfRgYvnuUWbq2mm2umjy10224aLFtGlp2trnW73mMNRNcpUjKJRNmiD3Uo3mRXyWWH5IMM8n4RCbLRezby1f4OqqjRDBFHCkIZ60tgsIoiEavlkV8gn05Rk+8XfaIVY6blBuqrJZR3F1rpttk0bzdDZm0Tbk9o753DMa+i5UppWDDKGnhn6JYViPpndyPPZTvtSnpQwQl6IFsIQVFXGECCk4BKTfwj81y0QisJI34V/+ibg3z6LDmetcAx3MgbpvLN9vJDZeRoZnffRTfPzVrnjlI+2C2m6dtBssNO0U6Fo6rW95PO5Ts+k++RMkr4AhYT3v041EsO0KyULyk7Qta2tPX1QiDHZAdHS5LK9hEJKafO8i1Y4nVaWzuDo2VNOZx4Gx8bzGOtuVJba3j6If/S+NFZLC+U06xq023tKGb1ef0BIrio8PJUPP/roGzo4DCJ8bBn6vGtrT6aHu1YLJbHE8MjFTfMDsA8HXRt2vA0/S0FKHw5DI0SbkpJCSTDU1QeFKFRZQTNsF7Y1Pvro+/73HzUeahLD+DLkL62tDTVST+8N9qcpX3IpRE2gdTzBhvKtYhn6KFKoXdLpF/cJuVKVBojp5XuWcwSA5lACgPxQm4jo7mUoeXptzdNI5RTvmOQLLBp0jwjgf8QgoSRbbdPF5xRPt01ihv+AFsJ57f2SEpPgWZ57nn320YcB0b0hh0Mgt/mhYNnbfYJIsKz3k6COu4ZwQvxfSaeo21paPv3qwzM+/OrTlpbbcK2yX8g2zwZpDI7Jb6QdOnAZoIjwaCnqyeIvUconXxYP8SnK/wjqSPTe9cMZIX64y5tIpe8T8qhRmZkFAlPJyy+/p4cA1fOZcCjLqgyRFBc+hKJK2u4655y72kr42vf/EwOVOPz122fs8vbXw/uru1+bgQhYj8iZ/DU7ldp8ti3By8WlCfA/gpWg3q/PCOdrLyURhQn56AI4yIj10UNtYlFACCKToBQZUdbIs+B/AovJn6JuuwvtEcbb9+9bED76PlwYSYpqVAcRKdJE2HXNUmkqBfD/cOetEkkLxsc+fmiRUHtN8j7AQ1dHaoPVmhBZR1Wk+1iBIC+AmCgwRrc1fO211FZLqPm//LKjpGWSMkCAtNL33w8ciRLJJGcr4SACjSbyolyXnKyAWDBq+AIdXRSCL6faPg02/veVS9r+DH7+tG1nCJbLjcBz/hURuib3bB0gSgfWho0odYJQqZji0AqT5FsgWtIysTgnF/9LeVY0Y+/0V4G2/3F/84Md9/8W+MtX06HJS6FJC71v+kwEZzk7CxCHIrCpN1JRkcm3QJV1WNs0yRaIlmSkEhCzEY4lkSr+MOBXd23hELlWHBDyYTEl4dsp33014KqI4S7PNmcqz1YExVrkRgsf1YVwGLeoohyDRQZAcwRD7hZBNPtngaZ/00KlfCShpoMmwT0PlDFvBuQIi4AyOTtbXhQW6HAURbsGObpxRAs1oUzZ6AgzScYhFnk7aAM+cbzjhoB93i6mEs+bn5fDHiEPQSQSdMo9IfdgK4BGMDQkbniB8IgRTszwc7woIGRX56wRkMq8cEOEkhytAczJIYd07DGJSCxmIki5g2oJxsiPq3dQd6x+vRMjd9x62zV3wg5XQRSYTrSVcdqE7mai1xMiZMlepIBYKiGEfXD7OhpuB4OBcMSgZbVusCTv7ljuCMkQ+9f8ejEnEu0P9us/Dc6CPxY/VhzKVT6doC6/5pozz9vjWNH4dXrr0ytabd3T3czJErLe5m1bI/4J7zoxPXl9FyGAyHcHLacdkKYeQM4eK9++lfvS89lapOp56yiYzcIgbIIypIQR142Pj5eJw0ATGaiT02cE+fA39KsA0yeo/Gs+P3fnJXn1hZdFI0TW/+6SUOvteFrf4SG395nqGtASZdcvd5Ut4wfeIcw7hcSCU025ubmWpiYAeF41+NIceuZnTnjnJYdWm213uxZh8sEyobAec1W1sM7TBwVdXQnGbIt6/MnlrTaxWG3SM2Lx2iQrFr/QKpCKqBQctsIIBsyb5yK33rgbIceTIVt/l2fgaf11DWznGt1cx+Z3T031da0/GRSiVBWG5rrNjz9DFjcLoEeBfFwEhZ85AOx2rWHR7XK1o5CVLuFUM3QvqNs6TkB9Q4NXqFb4x1vVk9eJxes5J3PE1w0M5IvVtw3dvsykUBPoW/v4dYJ6CmXwSgQ750hEIYUMvNs/tfLuu93ijgZ2mCUddY1Tff0TXUgdEQffpw+lnJubbre7cHOzQLC4LcQCuZ8pUcjzWtfHLpcL/11hW53wkgGhv9u/9IIJQDc5LBQmmcY9ePiJ2FOfk9MsXBmoF6NxSjrLxITqKj6QNN7wCPXEuQFC8a6/Sh1FsA/050xN1fc3kAUPWSKkdank+r6+8YAQKWyTF0ohT23ydVGbToAxBbKoBOPHfNCc0tp4IaXQUMcLeUEo6NYvPVKQ3716fSfGi3q8tWNlUt2JQh7LZx/0qoXr3d2dfjGm8VPf7hPybSe+4BXkWogBaVeXXp1E/H2kr5HkEKLPIX1bL6yZGk92PBLa9LNCkHZeiHYzGWB0rF2hOA2QMMYH/PNaZtHlKkyF/K2264SX5AtN3YynTJk/PrnVqcfAH//JXzcgHkIhHWLkEtMlW+pOpRjDPef+MJPgJFJGXRsScjlER+P6wBoASVermeAEglxMdmBEEG4RKGh3ZWQYy3njNH28YQckm5/77VoCY6deGoPV8fFJ4ZReWNIt62r2+Fe8w8MmoVDbUMAK2sTovHVCcf6S16NuHh5ezWf4ObH71/AIGaZSgjJuvQmiZD090RP5IIUMEGXALkU1xx2KwEtOq3ZBmhoNsH1iUGIimJiMEj+erpXBe6iYEQfx+xkxm29ixSIAjkq/65s9Or65YTlkkFcKIFoGhCgkujKL6J5MiEAYzu7JQbliXknogmDuAIiMum16j5DpumCEnHdTbI/Z8mE/nCEJezCcrOQ0+G8UXXn4sv2S3Xj/9K47KOmr55776kUxP/hEpCLohhC0oPnplZOydC0n2rvqKoIYoQmhpbvumes4fCNFiM4VcqwyKgXiRSwuaezcsYdpqqO1sftBGY+WhJpi0USZybshAE6lIgFNuFDimaYRAGxBJFKoB4M7EG/ftcTvoMSJiHgnvJ2Q5WkbLxETMjBlMplum5KVnZjwyDpWV0NBUhmlECFJZwAYcrK7YYkmu2iUMDkAIj6/FB3cE/oxkAMPSygO4oX1bJW0dsLQ9Q11XkJIsxeF+G9nB5qV9c0Ny8tPhjb3ISpcra3AMCK6cSKHIHRjPkv0gLCgHBhSEoOhq48QCINQKY/xYfItHsCghbjRe7uYrk7gT03j08X8bhNyiXbAA4XNJ5eXh/3Akxll3Vmrp3V1jWFIRxlN0CALZWUL/q3rC+F6HZQNPblqKFlaX+8wcBCGDN+y+/uMf4qXqdfvhrhhx/tNJ1DIegnhUbehjpzbZShEcF3X8vLtukC4q4wQDcMPtnZ4GIbtLqEZMWlsKCsbaG2dKCnxYHzk3zZM1hf86mGT+ECYbBX/VbxFSZ67F+KGGfD2j09B/e3blRZEPOTpH7hkWdY/AFDmeeTJB3fXu9Hw2EpHxyRvkT4+QIbQIredbJ3Qaoc8kwsLfZ0lT3powyU5ZH+cpuC++TolkV76AMSNWL20lM9PJ1v8RURI2ZBHnS575BFATvRBkAJFJkTBar2JZRgpaVztYlBI920vrDzSOqHOuc7j8ZR4Ov0n+w2GOhMN+3BQiISDu/Fl8DixOPZNVRzZRkYgHKM5Kvs2X+dtZIEjj7R1r5aQAW/bCeGJtomJDpYsDU8NGRonDYacEinsIw+PN0jBu5e+eDPExy3lGogOwTVl/oTjhSAZge6ox3GLwd+kqw6viDzXRwwmAyEGKMjSvZNrKbWMFIAgTWm8JdRJj39wX5zhnmfNgii5BunLFxwjhM3YraXgIEPMjx8LDKGxbEaO4CIGr6k71Mi32U0cHojTJOUWiJY3r+HpgtiQignCJ7pwpfyWkSKLQq4o3OuwcqTGuGPrx/EUqDionM+CaKlHGQjEigg3yIIhnbXzmDn8MLbS1Ozs0pHMYKk/xJ4wplWkQtQUBEwC8VN5VOpZaJYrKnUC0evcA5cKYsmra8urdA5rKcSgpJ6X0meCeMlyAHKUFrOZ46QAMcwmgnl5UfLZVmsmxEb+NdeUQdzkwdEkGTKLXsdKfe7Smx+P+mkMxEdm34MQN1Y4hrmNjXIOQSVhCTqhCY1wDMdIUSgi4skAcFSzCMSDXFHwPwmxnC6d8dm4AHs7zyUkIYQkDJubtdliFXJ56KmE+X8S0mSmhTabrmKuB4XY7c7BW0ZnUcao0+ks6GHIldlEbp8brL6YjJ6qrSIz1YSc7XaPzs1Z2SSIh3dSIT6KFHAkL7kIa3MNjjKMneMW0/I2mwxzt0D5bJV8TLqRlTSnMOfZbFgOtmgwzNaSvGwyg2V5VpttMU7fKqiA+FAojxEiJDRDxnxCZlFaOshduWn1jdXAKULcG1x7aWY57bTZbKfo0naDYTRPuOi21TqTmmyoLU6LGB0QF7lKOJqxaoIs+mzMBjeYzOnmfO6xXLALyZyba7c7aQZbrWmia9sNZNHGnna57KnsnM020xSnEEWcQlLT4Gja5TYU0uOSb+RyPS7OMcoljanAOW9bdHO1TiwqtPscG4O0vN2gstN0U7J70ceikQZr440RR7S5CYRRIYBjaOrxoZLTp0c5TsFx1dUc164T2Z092a9z7tNCmq529tTaaKbn+UEs/Wx/vimVZXs3Z+McfhFFdG+iEcKELxmi2QwjNDGZuAP43HJ6l6TBUrwUJrEBkiBOEizHW4OjyUg1oXHmyggeQ2CJwoYIwJ29vZhySYNw996XyVVaN2laBBlSGqnOnrfytZJQyuLJwBkQP4LDhy2+SxHCA1KyTXp6uhSK5EqImrCJ6u67bwbLLYAt50Ep7opeXhVA6GXb/yNnmtHUztBmlWp+hJBZQuSzGlo6aFclK3OV/815E14PdD1aheGCzzsKayrT4D+RDYdhrxqcTTRnq1SniW6TXNljrwSctHoUXIwJfyHs494P4CA6FZZm/RdyjYeOoMxge2JTj8s1RjKbyKlFhmkfcbtPV8coROA40NURV47KqlSUHD9pjgSITDJpT754Q+OaOUXsabZFzDZ6erG6XyiNdYg3wy5HrBx1qXL4LxTmQmSqSQ89slnhqh0kG5nVi2aGmetVtNuJCGLjSk3lQed6TgAH0CTDf8GYVwQRYYmLVDc1DTpdmDPpFmcYprfHbp8lEKtraTQH+urx+x6I0BJVEfwHkvMqHJZCJRyAIGfPAdgI8RECDJLkYhkGYiEzV1E9o9GYD3z/++AglvjLR5UWvrNGVCo8kGvkQGk6Ic48EgQwFEVSFCOK7Q13+QjLuhQa1TsJ+wL+0ghRIh+JV0dNYEjRWYyZiipL2j4l24u4YGxnpWp0sdkiNdtqTZX7WB6fRVXzTlrYyc4RxuAseSXEh2Xv+cFmVU1lZni/SRnpjgEKVckW/HL0MW5FXPgEkzAsYsvVqCxBz9HxXXaz4GCQyI0QBwW55vCB2FKDLlaDPyQyaZWq1NTju0y047V4kanr9VpZuoFBMTqNRlWJ90dUVqsGIm0U5SoS4tqZskT0iFsUusNdMQtd8Ri0raHhmxfiuW6pbkuGpCPoptY8tJM5l68R/WCfSRLM6Lyxo5QrDmlTpkUOh+IwHivkdr6BgpMePgVIb8AHXVNa2SPv6gPBxhYMLAyUQSqa5LlL982HeQqIHYEZdRyGWVGYddiXSuEY0h/jtQqGFh7Tc8DwQi5JZ04MrfK93ZrF6oa0KQNQka2ES996fHdWrsjLVl0ZV4plSThqkVKVrIKIFB57lqd6OguQrobH1gwgbGj2jjfKtPr+8f6LL25rVmcI3mVlA/BddiXc/dauSVTYrfFRA8eSAZFIPS4e2ccAaWhbeMxvEBkWGhoZmey2pZXxd4UXd+SwGbA2sF4GluzsF1988bndHDzemVCZd7wMJrIQ5XGuNZWfCXD9uqszh4Csf4HFSJ+S9Y33r11Xz6KQgGFRyOOPP7DjAlhBHh+lFXAMYkiMZJK0iuP6TvvC6rC3oGN1ZSJHBAb/IzhgybauX+o4ccLb0c/CrhA0rSAg4763vr/y5vvuizDXSznRMQtcy3EGSQQqUXxQivHY85lwOazPAoER618AgCMcXmg1GyDYG+98h0L2ppA/6zIff/zeAzMLRwgdrovkc9KMPVOf5RgZ4kTqXxwjVydGn1AkAAAAAElFTkSuQmCC", + "image": "/api/images/system/maps_v2.openstreetmap.png", "description": "Displays the location of the entities on OpenStreetMap. Allows to choose among existing tile providers or configure own server. Some providers require additional licenses. Highly customizable via custom markers, marker tooltips, and widget actions. ", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"openstreet-map\",\"mapProvider\":\"OpenStreetMap.Mapnik\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"OpenStreet Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.05427416942713381,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.680594833308841,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.9430343126300238,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.1784452363910778,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.05012157428742059,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.6742359401617628,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.773875863339494,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.405822538899673,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"openstreet-map\",\"mapProvider\":\"OpenStreetMap.Mapnik\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"/api/images/system/maps_v2.openstreetmap#marker_image_1.png\",\"/api/images/system/maps_v2.openstreetmap#marker_image_2.png\",\"/api/images/system/maps_v2.openstreetmap#marker_image_3.png\",\"/api/images/system/maps_v2.openstreetmap#marker_image_4.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"OpenStreet Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/persistent_rpc_table.json b/application/src/main/data/json/system/widget_types/persistent_rpc_table.json index 1b7f9aa965..600a973aff 100644 --- a/application/src/main/data/json/system/widget_types/persistent_rpc_table.json +++ b/application/src/main/data/json/system/widget_types/persistent_rpc_table.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.persistent_table", "name": "Persistent RPC table", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.persistent_table.png", "description": "Displays Persistent RPC requests based on entity alias and optional filter with the ability of pagination. It also allows to resend or delete selected RPC requests.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/photo_camera_input.json b/application/src/main/data/json/system/widget_types/photo_camera_input.json index 901d992009..83799577e9 100644 --- a/application/src/main/data/json/system/widget_types/photo_camera_input.json +++ b/application/src/main/data/json/system/widget_types/photo_camera_input.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.web_camera_input", "name": "Photo camera input", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.web_camera_input.png", "description": "A simple form to take web camera images or upload photos. The taken picture is stored in a configurable format converted to Base64 data as the target entity's server-side attribute or telemetry value. ", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pie___chart_js.json b/application/src/main/data/json/system/widget_types/pie___chart_js.json index f54c4f9702..d66d6d30fc 100644 --- a/application/src/main/data/json/system/widget_types/pie___chart_js.json +++ b/application/src/main/data/json/system/widget_types/pie___chart_js.json @@ -2,7 +2,7 @@ "fqn": "charts.pie_chart_js", "name": "Pie - Chart.js", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAZTElEQVR42u2deXwUVbbH/e+tM/Pe5/Oe82beNjo6znvjvFFnRkFxF1f2RREQWQQEEZFNFDUCOjAoCKjsq+xG1hBCWAJkJSEJCQGyJyQkZN+7urq7lvt+1RU61dWd0Emqqm911/2cPzq9pdP1zT3nnnvO795BrGENHcYd1ldgDQss3YYoiDcr+NQkLvqQc/sGx5eL2Q9n2aePt49/lRk1gBn0jNeTk+4kKb8iab8jGX1JzkCS9xYp/YxUriMNsYQtJUSwvs4wBovjhGtXXAf2OZZF2KeNs738hO3Zh7swr9ee/5uuLOFnJP1PJG8iqVxLWtOIwFpghfrgef7yJefWdex7k20v9euapJ6DpbL4f5AmtpKFpPFMWEEW+mCJba3ciShHxAfwaN2CSRuwvCazfyJXhpHq3YRrssAyLU92O3fmBPvJHNuL/XrMk8ZgdUxj/0hyBpPaH0J4DgtBsISyUuemb5khz/aeJ73A8ljSz0nBdNKWaYFFdQjFnY6xz5igIU+6g+WxrKdJbSQRXRZYNA2Xkzt53P7mCD2QMggs2S7cI6UtQsI/mhwsp9MVuZsZ/oJ+SBkKlmwp/00qVhPBboEVlEhKwFqPeX2Q3kgFAaz22esucnMzEXkLLAOjqUvp9kmvG4NU0MCSLeMR0nTeAkv/JEJDvWPZZ7bnHjGSqmCCJdnfkrwJxFVrgaUTUyJ39AAz+FmDkaIALDkx8QtStRXfggWWxhMVu3B2UJCiBSzZsOftvGmBpc1AdkrbbKeJwZKnLqTsLbB6NRwOVLAEFynqwJIN1RMCY4HVI/dXU4WKKBqoohEsacHYh7AlFljdTChcSApWnG4asOStxsaTFlgB79Ac+sHWvw89VNELllQo8fek4jsLrNvnFFw7NlGFFO1gyVY0l7YcPU1guZxsxPxuXW/7lDH2ccP9PsQMec6x8i+OpREd9wx73rlulVRRM3pQqIEFuzaWquIIasByONC/EOBlZka+BESE4kLpdcsi/D6Hi4mSZsD6uvaXDHxKrLop5Ofy2RmoKWVee0W6//m+zIgXQwQsKcs1mJ6tazrAcrDsvBkBUoVnYgdanuE6A4ud+w68qhIs9qNZuEeqTu7fR2xscKxahjudG9YIuVdCByxYdn/C2yywblE1a0rgXol9f6pr/0601rj2bPcP1suPCxU3hMI8L7A+nYceL0xRuC1WVznXfs2MGUxYO/v+2yEFlsTWCzRUdAUbLI7DXNKzgLozsFz7vseUhhyYlysc+bLIMPCPgFJ6dMoYZDTwY+jEWEq7/AoRHGEMlig4Pl/Y45WaX7DsU8aiRhkNgzINHrCkh2ZM4M7EcvFxQNmx+EOxuZEZ2j80wZJi+dHBbZ0NJljONct7kwLwA1b/PgjPxdpqhOq+YHXE/oOeERvq5PIbrAMCyZmZDyxY8QfhCJaUBe1dbskXLOf61e57PsOmNUwui5A2sF941OuFRyL5zIv2qW9g16i9dGLm5BAEC4Zu7LACi8/OtL3wmOZgiS3Nfn8dInelQ8RyAZ0XfGYanxzPDHyaO3Uc81xogoW8fJD2fIIAltjUiOxl77Phfmasb1cg/+kx6XcxNtzoSKI+31coKoDsh0RhVaVzw2rccHy5RLS1hSZYcpmNJFUSHjOWkH8NSQHNwfKlQRVjIQcmlBbLvdHwhnziOUycXPRhoSg/ZMGCpf/Z+Bqb4AXvrN0+a6rBYEl2q+Me+Qg8Kj2npZmdMy2UwYLlTwmrdIPo2rsjmLvL/ftA/koV2ocmWLC6A6EJVp29flHKkjp7ndotFubZXnmKwoqGUAMLxVuOG6EGlkjEiOTFAw4Nee3Y6MTKJB+3yLJzpltgGZGRN6rPxyCwTpSeBFWyDTw0dEvONk7g1W4xco8Flu5WtSN0wGpgG1+NGu0BS7Y55+bXMDVqt1h+3Tb4GQssHS35F8b0vhoB1vKLK1RUyQbaEioS/RRmBVxCY4HVE8sdHwpgZdde9kuVxy1uyN7kElxqt9jrDR8LrK6sOd7cYAmiMP30zC7Akm3W2Tk3bVXq194otw3pb4GlT+vYw3rXPugLVuz1k7elSraRUa+fv+Hzb+RyOT6db4Gli1XvMitYTt45/sRbAYIl28r01Q5eXaEGtb6QAiv+J+TKSHJ9CSmaRzL7eVVQQY/U16CEKwXdvyTF8yVZ79R7NdLfulvXQlMdwYosONAtqmR7N25WRVuF2i1WVtj0l+0zAqzkfydtWV7vVrGm/SHmmr8EIC+JeCf+C2Gvk7YMKTaClDc02WQF+ZT/7NWH0bMhUS+wMPGMOf5mD8CCjYgaFVd+zo9bXLTA9GBV73TDtJok/iu5+EB7KhwnDMhTSOpvOyz7RSmZWX+kvf0Gt3HUCspgnDWkYIa7ju9D6eSLXmpS6tbVoxdYh4uO9owqpVtkefVczSecNTdYrgapGl32brDy5dIb5k/utEYv61npNlwnYm1MUbjNlkntqam/kbpxsp6jthJQF7A4gXszZlIvwYJhRVneWq52DjXV9tcGmBWspH+TJh5VHhyTk9pj/lIqdIH+u2dq4VulJ99YITlHlME0xEg/9j7SQsQmcqYBC46s91TJNuzoyKNFx3zI5RxLFpp+VZj5qDR7MXmSg1M9hNAeAwqRHU/uR2r2kbqDkltEmO+qk3LoFFc96ALW7HPztAJLthXpX7NcMN2i9mAhikc8LjrJpSd8jtz5Z4kbKPdh/ehnzruTOKskfSxok6b8lx8oe3B2gSnAym3I05Yq2aaeeqe0RV1iK9bV2kcPMh9YWOW1pkvxuMSHz6OF70m/pTSik6hoPWk6K6kpO9xBgrOaXHqqt59HhzNXtAdrVcY3eoAlu8WY0hPq38fzjuWLzQRWwk9JU5z0Pshj+W1/gJwaFmsIs/x4z35S7JV2v/QO9cekpWXNHikN0cuPVDiTdrCwjkMOXSewZPviwjKbSy1PwKcl6yqppRlY4EaOacq+6FQ0BgNHB/g9+tCWTa4vdq8NS0nxgvaaY6651zWAd2qed9AYrNNlZ3SlSraJsZPzGvLVbrGh3j52KO1gVax25+TqSPmXHVbykcIrZUguEikuP2V6LxHmqjTh4Ta8IVJcCMKg0Y2Ma++9s9aCuRqD9XFShAFgwYYeGXm0+JivW3SuXEo1WC0X/M3zpbf0PF6UfkQnYBdutN0nPtauy43EWPbzWkggDaEXrFZn6+DDw40BS7YlF/7S6mxT7/9kZdj6Pxr6m9DwqkjWe3KtvY/8+BZKwQq8lkFDm3Bi8rWGXLVbbG3R9rCdEKxu8DXkyegEC004xoMFG3Jk+KHCI6KqTUAQeik6EnZgSQI19IGFKtARR0cFBSzZFqd8AV+sDroyL2riFsMCLGTXtFMx1QysrNrsIFIl2/gTk67WX/Nxi60QzbLACmxtkUIdWNuu7Ag6WDCsHiLzD/hxixvXWGDd3q5/Th1YaOeiASzZFiZ+2sg2qVeL13IC6aYPa7CynqELLFQhDzkygh6wYCgzvFSTpXaLba32qWMtsDpPOvxM2henB6ycuitUUSXboMPD9uTuQ6eQN1yic9sGC6xOTdodpwasAwWHKASrK7eYd7VbAl1hBFblOorA+ip9JbVgwcYeH3+pVu0WCcPY351ogeVzEuIkisAKpCs1uIaW642XN/sqkTgDOxMqjMBCZwclYKHCHblvysGSbUH8wnq2Xu0WC3JtrzxpgdVRv6pFk7QGYKEN0BRUyTY6etzFap/4FLqVs9+2wGo3NALRABauk4nAkt0i0rm86CPQtX+nBZZkDbFUgIW6KHOBJdu88wtq7WqlKKGkyDbg6XAH6+YWKsDakrPdjGDJupUJFT66ldIZd9PDGiy5+SzoYKE3y6RgKVaLnNotHtwfvmDlT6UCLMPKkfWz98/NrWaq1W7xRpnt1gka4QVWziAqwII+jNnBcrvFMUmVyT6boE72o/fDDiz00NIA1qTYqd2v+Rzx+YWlu3P3brq81bdtesaZ9+Cevr+6a1HK5wMPD1VmCjbnbN1+5Xt06eiEF5RIsKGudotHIsMLrIt/oAIsXO9u1h2MK24uUb6DUpoGSt2iKCq3t+W6CbQrQmW5sKkI96CvUBYdQfUVtmu0ZWtm3OzKtptd/cEhD1bKr6gACw3K3bpyp8vi3DAdgWrytNPvymdVQIYUD70RMx7ppRZnyztnZo46Nja9Gk12ZG3Wejz0WfISlO9hHYeahSZH03dZ63Dn1ivb8xsLNJ+33LqVCeELFmqUaQBL6a0CMVSmo0DeswuEgk9yqzH/o8RPiCRWc1Z+CK4QP6KtHrfhOjGTye1lNUwtfOjE2ClovF6QsFA/t+irWykN1O+iWRRVAGhKhpTjleHk0uPkwq87mv5CYVfHhGBhKsLE4/nxVNlpvAmKW3B78slpmJYKGguRBZAnJE/R87iYCXbOjiejRAclVlgxIOOPH3WN6BHt3Wit6MZ3AVVPKC+0JJOGaKlNHgkhibxhkqILRPpk5TRTlPtRAdahoT2+crPOzsXshYsHByffsz9fipTh4HDkDtwibnjEIFD9DGVlrN3gFpelLW92tLwe/Ybeq8W/pn2lYVMU4RolrVGQV/sjqfhWEquF4AzIQ00BIpvzf0dHK+xPTDljKaN4xONITs49/4HnThADKSx4PflUgeiS477d1ZjwcIwKXBWYRljmgVJzmxn3vnpLUdcBHTaokrakkvoo94T3uSRpBJ3IS09KEx48lEEz1k+pAKtn7YSYhwqaCuH4wIdyRQY3h/vBHHhCGyreH1kJ1WtBGw68wJPlzT4UiM6LX6A5VXC+qtTDyjTnq4fsC8461mc6owq5tJt8YaNQw4iMi/DGHKoFVwvVNQiHeFxt0Ryp0bTd1WrUbg89SxrAAgQ9kPRAHyJeixhcef/e3P24c3Xmt55oDD+WtZapTndCTD311HS8Q2pVGpaWUKZEGkJbqoZHvYrFqfLP3HPVddfati7s7rVt/Xbaxh9jP09y7MhxnSrlMqv50mahkRUdHA7pMIQ8HMBku0Iaz0i6WTdWSdLwODkHMjXpD5Hk/whYAv4uKsDC6qy7PQ7ykYV78/arHkISC/fvurZH/nHa6RnEWyIQ01hJc+muXOkJ2ISR979XZ35jczFadmEcGlZp80plxV3n7lnf1jVYgdgTu5jJMezSFMfeq64TJRJ5ZS1ik0N08kaRJwd5IK96d0eQB/IuPugO8txgQdiNBrDkFFTghgwWXoXQGycMeExe+k05NQ0ZBBiYW5+9EXMVnolTnDyv/TgxAndiwsNteMOUmxeQPoUYCTKuGoKFHKzyD7xUzf/vRg2ouq09tLXt9cP2j887NmS6oou41Eq+qFGok1ytaJSrZaRVrS2bCrAikhd167JhBvJ9E0w/8qNIZV1vaa9gRIYdGzuqVadMlbxz3MA2ELd80kcJn2hF1YnrXmVuZS3Cn7fZDKAqEHvQTd4n8Y5v0p2H8rkLlVKQV2cX25wiJxCqhgZgKaNvDSulxsVMDMSrQq9Bw4p7TJzKPw3h0dO7GUqouq3dt77tlf3MO7Hs12nOfddc58v4q3VCRavY6pRcrWg6sLArHALVDVKmI3W5UvSB5cjwg3azUBWI/X5z24DIjiDvXBl/rV7wBHkibWBFl8SEAFWzz81X9kwjlH47hg0lqgKxR7YzWNVevMlTARa2is1O1fiYt1Qpq0UJjnCjymMplXSAZa72L7+p2jaXl5DpxkuusKUKVsuIVICFTQ/PSs10hpRVNVPj5dmLuF+vC1+q/m+zjZYYy9TVydjkVv4h2KX57Ya2cJ6uhh6wUwQW5aIgnVl8RaLyr0BO6MEttnCmCjYvzkERWEeKokxH1Z7cvco/AXvJj+9kwpwq2O6rLorAKm4uNhdVqzLWKD+/nSNwARZVsNx6gSKwkAFC+5RZqPowYaGyXwPbcJOPsxZSsPs32bTalNRM3BZVnaagasqp6aq+Z9RXWUjJNuaoZmeAaQYWKhTop2pU9FgUzis/9pp0p8WTx1amOqkDCwfa0J6yOjKs3l0N0bHmKODutnhSWEY1Tx1Y8C/BPfLktoYKQeUHTq7gf7PegqnD/rjNpmHVl5aHNOHsU2qpSqvyUvHLbxD+EPYpK5XNPcPSVd3gGWfK4+ikCi38ys9ZZRMf/d6iSm3HizhKwTL+IMxADCXO3h9SfGGflQhVG6ICfDOUgtWDMmW9DU36yto91O++cdRKhPqxt0+w2pKgMVhny8/TQ9XMuFnKdlPwNeeMlQj1b2hWoxosNNiMiKJibYhDmvBhlJ/trylWyqrT9aDmvRgag0WkdtNvgk4V6sMgdaT8VHuvuiyAOrPFiQ7NMdAeLBo2pMtby72Wq2g3XWcB1KmhmccEYGGg4y+IVKGRVflhcmqF322ykgudGhoVKW3/8h3Q7AsWVcdLTig/STlN7aZ0GqZz04CFQ7b005/twjZd3qJqN312j5Wy6srw/eikGaELWMRbr9YY+wJakoqUlYMnIw5aKavb2F6N6kWNAwviad1VU+5du+k8Vbvp9FgrZXUb67PDxnLEZGBhHCw06DxfSHOr2k2XJBpRu4d+npkn2VUXnRHxjs62iXDxVH36D221QUALSTWIaYVGebvRYDl5FxQ79KYKCmnYo1T+3i1ZRqSssI19vdlrjlQmYCF7NOsUe76cRyHKD7kuZe3vjVYBC1UIxbQ4xL47JLagvGX8CgNiJ7oK1OgIFrmlpK1ru2mVzesMHGxNGJOyinbXAnyb7vyfjW399zKVbZKE1ZO7GJkem0t0/2tJH0kJ1oRjdjyAplB8SMgPQQoLdy5NdmbV8AaDBalLXS+9vmAh7plxRsdeVpXUVnqVce2mQArikZ5ft/2y5FZkHRGA9WMeB4YmRrMqsKbGsJjbZHFACAzBZaPnDLpqow4bus4YGMnorWp0h87vT7LrLutE1dkb57wy/k0CwpdgxSuoR8VneHm/V6Q1LsquAuuR7dJkFpnr2nDJiRkOzz9bxkfmGrrdhGpsTfRkggwWxtLU5Xq3mzbYxaeCoZA2JYZFSAcpUdHtFlWP+oIl97AfLeBiiqUpDSJp+OQG/z98eM5hwEU3AixoskP/WEOqVqSvUr4/2k2HBandFLo0jDucQjLWN8HhFyyl/Abar1HJgynk4e02Y0JDQIyPGiJguaP4WK2o+iBe3W46JdgKaYjZ8+oFBE+DIpnAwdqZ44IDHfCDFPjjaRAPMiCjC+VSY664QWAhJ66J/uzkU9NU7aYLzwWn3fSBLTZMOZ4fITiLD7Mi1RkgWHCImGif2cMk3eBPl3K/32zDJUcaQtfPPP6YnRg17jDsN+EUiV624Y+KHqNqN/0uI2i1e/Bi2DW6/1bdBBpffSnvDCysCiH+CQla3MY2+V+SpVfNj3Og6ly/D/ynbbZaRgxBsDBwvlLv2k3rle92tDCY7aabsqT8QkYVj1wUwnZMPwi2VM0/nYE19qi9oEG4b0P7cjK2hEMvA3SOURel30rwdCln5LU2FCyMrzN6qN1d1FysfB/oZN4XVIW0e9e34UQdOXKXCKvmh/xoDzx493z4wT8y1bb28H/0Eb1irIh4h8EX2miwcAxOD+T/cAKF8k0QKSvjmyAaRCX7fm/rZSHhPe43uVe3tuyX9jMsR0IcLCJJnNV065zBHwsOKl+O/+/HrHbT7uQXcLiG8Vc5CGARt4J3gIcM4uxn5QtxtsdL+63avW60oaZW8kG5xMEBCyOqOPq2VH2c9Jmq3RRRi4ULJYUxlIKFseHypi6owgH3vGC1m/bcliQ5gnhxgwkWah+WpX3pv900+k3UoCqf/FWq1W7aDZt9mhVEEqZgub0bF5G82F+7abPyacjxWKx0S4iBD/Ypc0EGS05ALEhYqATLc16hPFBYco+lkNYdHVEHH/SrSgFYMlsfJ0XIVGXWZCkfstpNu0uVJ2drgSUNdENAAulYSbTyTpSHo57EwiVAe+s4S8NcRRdYUrwleqWHcTojasktXAI/qoQX6bmYNIHl7RzJq4eslFWghn4ykbIrSClYM09ZKatA98KDmAU1H1iJN/g/WmIeAZRYBWvHxqxgYdxsE30LUSzzmKem2QKrB0tFIrd0Wqaq2sPXYudovnR0gyWPY0VcEBsGKXR/BteChixYGPV2EdsUFlUo7pDLTS2wtBzoY3kgXM8pwVIGDdOieS6WmcAi7gN257o7PMMHKVQ/o3e5ySGa60qZDCx5QJslTE7axdIvs5o34zUyJVjEXfd3II/rG7rF75CiOFzACaJJr49pwZKHSyAH8zlZlSpkDP8t2y67nLypr4zJwfLgBakqCE2FwCy1I8fl4EPgmoQEWPJAqwVU9tDzacbQHh8bWoTmdXyhDJZnFDUJixIcpjhA9cEtNuTQc+uF0LsKIQiWPND7C3GzGbEsdGZp4wmypZBcO1nCuYRQ/fpDFyzPQKkuNoWgihb05CqSnJBSxlpP27NMLbCCPFBgmV0jrM1wojDcMA1cFOyjYhEiR/jVghg+X3Y4gaUcWMxfrhWwloSiFYpzNOQMJEGTGLlytKwheOKF8PyCwxUs38kM4tgomkPSFSdNoH58UjSLmQY6ETg/AusACKzBk3oM4sfP72NeO2yHvPYHZx1opoVWEV5ew4jWl2mBZQ0LLGuYbfw/UfikHjIsMFkAAAAASUVORK5CYII=", + "image": "/api/images/system/charts.pie_chart_js.png", "description": "Displays the latest values of the attributes or time series data for multiple entities in a pie chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pie___flot.json b/application/src/main/data/json/system/widget_types/pie___flot.json index a50993639e..7f317d8428 100644 --- a/application/src/main/data/json/system/widget_types/pie___flot.json +++ b/application/src/main/data/json/system/widget_types/pie___flot.json @@ -2,7 +2,7 @@ "fqn": "charts.pie", "name": "Pie - Flot", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.pie.png", "description": "Displays the latest values of the attributes or time series data for multiple entities in a pie chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pm10_card.json b/application/src/main/data/json/system/widget_types/pm10_card.json index 0d15c4b323..8b963f1e51 100644 --- a/application/src/main/data/json/system/widget_types/pm10_card.json +++ b/application/src/main/data/json/system/widget_types/pm10_card.json @@ -2,7 +2,7 @@ "fqn": "pm10_card", "name": "PM10 card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm10_card.png", "description": "Displays the latest fine and coarse particulate matter (PM10) telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pm10_card_with_background.json b/application/src/main/data/json/system/widget_types/pm10_card_with_background.json index 8b677898c8..d8d9d66e5e 100644 --- a/application/src/main/data/json/system/widget_types/pm10_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pm10_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pm10_card_with_background", "name": "PM10 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm10_card_with_background.png", "description": "Displays the latest fine and coarse particulate matter (PM10) telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM10 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pm10_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor PM10 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pm10_chart_card.json b/application/src/main/data/json/system/widget_types/pm10_chart_card.json index 6d3692826c..4f8143513b 100644 --- a/application/src/main/data/json/system/widget_types/pm10_chart_card.json +++ b/application/src/main/data/json/system/widget_types/pm10_chart_card.json @@ -2,7 +2,7 @@ "fqn": "pm10_chart_card", "name": "PM10 chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm10_chart_card.png", "description": "Displays a fine and coarse particulate matter (PM10) data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json index 54cb32eac4..bee874ae88 100644 --- a/application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pm10_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pm10_chart_card_with_background", "name": "PM10 chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEVOTU0AAABfXV9iYGAnJycrKyvz8/NZWV/09PNZSUP49vb7+vrz8/L39vb29fX8/Pzy8vH09PP5+fn4+Pfw8O/t7Ozx8fH19PT9/f3v7+/q6ekoKCjr6+vu7e7My8vn5+fl5OTg3+Do6Oje3t/m5ebj4uLk4+Pi4eH4ng3Nzczv7u3Pzs7u7ezl4+Ln5eTg3drr6ejS0M7U0M7R0NDPz8/n5OLh4N/a2dnRzs3p5+be3d3U09PFxcUvLy/i3tvZ2Nfd3N3Y19bk4d/c29vW1dPb19TIyMmko6Pj4N7b2trn5ubEw8Pq6Ofk4uHc2dbT0tDt6+rS0tLV0c++vb28u7zY1tTAwMDe2tfV1NLy8O/V09Hg3t6wsLDW1tfW1dWura6ioqLd29nX0c4fHx/MzM60tLTg4OHa1NHp5uWNjY4sLCzg3tzX09CqqarV1NTQ0NKVlZWKiovKysuysrGsq6yfn5/Y1NHY0s+3trU7OzuAgIDY2Nimpaba1tO4t7iop6i6urrf29l5eXg4ODidnZ2SkpLHx8dzc3OFhYSDgoJnZ24zKymQkI/i39zRz896enrCwsK9u7mZmJmJiYh3dnZycnFqanEvKza/v7/4y4LY1dOxrqyGhod+fX27uLf4tEebmppvb3U1NTXEwsCXl5dwcHA/QD/CwL55eYBUVVTl4N7HxcNtbW1ra2tzc3lkZGpqaWhYWFg2LS3i4OHJx8VHMi3Kycd2dn1kY2I6MDJNODHExMeAgIUxMjE7MiyuqajQzcrHw8K3tLJgX2ZOS0tFRkZCNztFPzXm4eDMych1dnWzq6irp6b5wGVfXl1QUVBRPjcrLyr647/62KH11J18fHxAOC/4qSr17+b779326tf137q1r7COjJZNRj763rCgn6aHh474pBzt6+yzs7WRkZr3xHJJQENdWVgyLzr69Ov35sr12aymnpxZUVT66c7KxcOYl6L1vWP4rzn4oxv50pL3v2P5u1fj4d72zo75x3X3uVT3qSoNVLLHAAAAC3RSTlMgALXv77cg77+/rxlLpU0AACwFSURBVHjabJTPa9NgGMfnr4PgwYMbuOp+uNkydnQoaAsDIUVzGi29mJkeFiGFzGRJoYshLW1TUwi0Nq0UTEadXVSmOKHoYO4wcQcnbKfeJlSY4GWg/4HfNG4y9Nskb/uSPu/zeb/P8/Yc6zmd5fe/LDx6/pwkY5FIjCzHYrFILJIRKYgWKYmW0vEKz/MVXmMNoWiyrF2ryrKly7LMJiVJokVV3dtT6/UyubZGzM3MzM3NTIxP3D8izBJraxmaVn79+v7t24unj5++ePH+fXUru7WVXVoq2SZvhNNKPB4PKxLH0Q1B41m5atsrO5tOLpQIhdZx5TYdX2JxMeTz+RIh/F73QYlTwOg5sZ1t7u8uPN/Y2Fh+FiNJslwGiJpKMYxIQxJAlIYG8Zpg6rJdNJqCjME0BYs1GhzeYVKqmsrEyh7GBEBAguSnpv6CYBIg0T1a6bgkL96XHlaz2dJW7WHWbmfbRUGr5DmKptMQLVFSnC0Kpp2tyqtObn5+HiyL675559Nmzvnk+DwBxhtP9vQcX1mRG/sfHz3b2CCXl5eDZCFYJsmIyqQYkREpUaQ5jgOIwRusYRbtUtvSmiwrFHVdZ41KkgMEo2YyGYD84QAIhpnxfx0hYtHo3h7d6YDkg5xtI89qrVoq2bpgCkJDEd1g7sYwDJVuCoZRLGWLr+GIk8vN5xzH2dn55OQ2PzmJIyDQqZ4f26u6W1nPfv5cbrUKheAAQQYBgli0iAsR00qyaQisZsCPbNUWeJ6t8IZhmgYfFjNuIUYi9Xo9hsICAYSMsf1dUyag7oBJOBIFiLoncZ1fXz/Ytm4W5aJty7bOaprBJulMNJphKIrBKNJ5wdBY3TK3tl++3HEWc5tvt1eXVnYWkT04joLAkpXVFX3/yYJbWq1Wa5koBINkMBhhKDQHbpHi4uF4HkWF3pDldnXLZps829T4SiWpKDSTKcPDWL2MvwEEBOAorBUIojBHzIxPuFgzHgg4yntqhOLQc8nv7DfLYllLBkZbN7RmA4UlZqIZFIIK3Igo5S3L4DWrWNt+++b121zI2YHmF9dz6JB/QHw9xWrV3N/9uPBsufXu87tWASQkGYwybnO4hZXOV/LJhmFaum7iIZeKWqNRqfD5eJgWRUaNxvB6uRxE6vgjBmw8HrC2ACgPBBjdTl+LqZSU7KTTnYr2XZDbdimbrdVqJVOrIJxEcWgNSeIoGJLi0kl4LrC6/fDVUru6vZhwNudzISiRAMC/IIpls/Hd3dTzYLBFEO8IgkA6JByREJaSlGSlmc/z+aQhGBbaRLCEShxnWEOiqZSKA0HFOYfGIlwfy64zJOQiBWHJAEgAMgfBDhwhlNLpdJROk/32VbCrSyuva69fVS2jEk6nOZpSkrA4RVGZWFThcLzxertoofQs69VbB20eCvkSOXiynviPI3Q4maZ3Pz7amPTfvj3oaXTUPzwyMnnz2rXpuzem8JmdvoYvUzemZ6dmp6fd6QeTI8OuAgH/6NDQ0Cge/q6GIPcxOHip39WF/v5L3ZBD/suXh2/euouTDHSuBgaIYJAYuzI7fevmzcmRrob9Q3686H4bmZyeGhsbH/g8MD42hmNCFbk0DmZFSafDcVeo+VXfIUgKVjILkfpoX9/ZQ/WdO3+xt7cfOXhco3gis0vdzLrq7b148Twu6FxX5w/lTSHama68gH0IiZgX+gdHhy4HAvfuBS67AvjoYH9/b68bD7cXEQOEBLA+NiBw1d3WW9jUKxPjY6AaGzhU/BBEpWk1Wo/N9p09AnIOiyKOBwIBo8vRhcDtrektfO78H44/XAcgHskBxwEInAnAyi4JrHM5utviydsId/RAsLo/MHznOsoD5eCCeByHyh6A/GazDnbSiKIwAL/AaCSZIRkDMiJKAtZgICEgCSUQDaihRGNIGQeb2ZGUmCYujBvTaY2raurGRV9gFl3xDGzrK/U/c+7cyy39o6yGufPNOedeXBe7xNlzLonoFUnxffAXSWKHxUnLpfWYnKSArBnsAIQeLZUFJJ+PmlJz2Ih2tzRdTW+y52xv1tvt6p1HDr0eyE85I2BIiIyEqLBDEJRDl7ABkZAFB90yS7MiIOTIEkPeQ92rkC6g8PQAe872qN2FA41VKSK65ErOCBQ40XLCgbW5IpZsLemIirEIWLJEldBiyMbiXskQBCXJx451duhDVoiqBwgVZGez3m1eTslRKZfxKS0aBIdy4/g1hhgaBBIZdmBNtaiSMEIbcZW4HHJ4d3jOHfSrcJgi6r67VupDaf2khoLkR+1qixzFSnkwwOYJC1M0yCtBLs4cfn9R1IyoyE7mzsEF+JeUmBE5EomEhHBfaQ6xTxMjS71KXwZVBQWBAwUplQjybjb61Gxh0KkeB57nTckCyj+Q44vnBg7zXHIB4jgEIcnnIJj/3ioHj2D8CW3z/MlNrrm38xfWmCQRr5TnAgyKhMjxwIOxg8MMdiRFyEOXM4RKcnJS6wHyvtv0pnh6HGStO6/T6QwHZdREh+BEfsDvicyCw534T7Zt0drfgkFj/jjwJ1vWdBKY4zC4WjNu3erE4aXFVsMMdqwiEhJruVEByTEjEzPSKIcWlqC3qLlQk0zudDaqo7lQiells9nyOsPhsE8l0SHPxw36scoQbqy57/vnWBy5CSzr8W3gv92nr8MAa4ZHRtVPGHNXQEybHfg299UqQxRD7Lti6wAFH2Lk0osOulzR7UKhsGtBUus5p7NNULrVZrXbrbaGH5H/tVbjED8VvmTJIfasW0DGAjL59TW4OfDHoR1cBVhJQMKjeFOlwIEIx8oKQQwFUQWBhBGSYbNBTzwxoKC7envY5+hwr1O6rYN+v1/+UVyCPBxuFCsbG1laGctjAF6ufT80I0gakO/31tT3JuPwPMCKDEmErnzdUT0MhCEriIKYCxCm8GmE6AxaW+01iJCkSjVIHLHVzUbt1rDf39+vLEP+UmY2q01EURx/gcmQQFBy0XRsYso4KkpiqknEiMWg9St2HLS2VfEDqQh+E4kUQeimoIILxbUbt7p26QO48Al8Ef/nnnNznJkI+k+aSVJ67/zu+by3sEer2aoaj0V+VQwekT9AleuvqEqt3Vx9s349fl60IKWjH+pHqw4EGOBggWMC4jGHgogkizOGBFZGasw9e39R5jotqgdznfm1y8vnD06xSDWMmsNmaFzGfHDzZ/HBOw7jCkBwI+XVm6tLeD7HlATyaX39od6nply8gsNZREHAgRjJZHHNc3mph+3c++uCOTApZ/XdV08dX7jcHb7OxwiqDEBaDCL6/J29387F80Gy6ND2eolXXDlEYhD9dQUCCEhExPFnH8Nj0gg5ErsIiBP5S2MmIM0proWaT08CUQVusUlpCg8cPs+KW2W3Uo4/Y50WQzgghoAkUSnHdjwwKINkSLio7BWTzpBrHV/onifPyoJ0m1GzGUXGy2UOmafoKQZkK4XMKoQWAHKXSYRIF8sgeBBGjgMMkIxYUhJPUKRAcsO5q48YOf96WosybIUI9tBMEHgQnshTlURkkAJI1BXYEqISNyhZDkDYINe+ki2tHDoeg2iogMSBNHb1x6td3pYIyeAH9M2BIEYUxEreyio5v3FXC+ICPAOigU4YAFFJC1BkKQeTeHlNAbGuZWMEEpBvBNKMquRbCqJLkvJ+EeyBOLAkKuVwcQ7lOfYCRDEkzGlA4oCyFtFiBN9ikHbnlG1WbEm0ZhnQEcQ6WQSRPmSLaBpRp9m52wWxn5JGhWI0KmIQV9F3JwARGlyVI5UCt/vTXUtI7FAKQq3K8YWF5fNCMkhnrXCWOBTEec3s7ea1nT6J0upEVV+l3/WMBLojWemnt5AMItlDQYDCjpqX89E9tEs+sn93+17nBkgufVxGeU+DYNsFjsiCWAd2E9iXpFFqmMTvz8+PgjiuVDdDs5Ikwf2h7/fjJIkTv/EyroyT3nh8v4ZjvUbJm/nwci7YWDxVLgdPw8YoGQePT5ZZwuEoBKP0p59O50AKR6+yf9+cBTl37NICgRwmksGXL1tbW1QQQ6otoXEW0XJBl5fkVrFf63ZrhVGhltRWzG18jmGhWpfemJEfbA5r9rteo98seSc+tOuPdm17jFt4UjHjcCNYpHHxgNIcEDB8zKEkOQ7ZL+44c/rQ2a/tzo0b4Pj4bBkch8kiL76AhEEo+Mm1itnyBvUa/tjEBQsSF4KkFhjcMt4WAIcLQPCtAzEnmp43M7fUWpwpLhFIufs22KgvFlWZbO5ibSqI1FTe9s7eZQ62x0XiCEmDLZJ1ragKzRRZaY7tO1d6sR/GIwYpjza7hjA2w0JBQMI4NhZkpdObBQgssrRWX9ogMzwpz28sEoiXFVOo1LlSmVcwdpgzzq/mgcF+FbI0Ruwe5dFsNuFKQrEqpJT9LAmNM092tz61L3SDq5RDKeQoTI5S5tqdDsJ8DZ0W+vjIcShI1CKQkwAhTQg4wecx8hIMWtTM+Yl2IlkQnkeSdz5AFMNSwBi02+UKgq07l0MpiGqRiAzCIELBKMrwTyByGxMC6kDSIHmrOAbF0BEEA+eM7V04MD2FzTodQAACEghpUSBb2UMYBCCMgVvizP4/HOpWV6jZlEyrwp3lQXJKb6rkoJiOS1EBYYouU4QKcYs0OEqyMRJF2LQbWSOQ/AcGlGoVmUHktpC6ncloOoc7SEEFPN24g0NGOchqZQ5+heTFe5IEO74zmUTyd5Ad+tbgp8EcYg5IariIN1F8sJFnYYIUiDsoJo6g3aH/y1BfpQ6VlsbIb8btPETGMI4DuP+ZbexrVta5WIvBmnUf47bZlpFZktuSc7ZJyQ6tW0SOKCUrVs7CH2yNzJarJGcJuaP8oRzlD1fJH76/53l+85vHM4OvY995Md6P3/O8zzGvHmhbBMnuCJb7fPG96rCcfvJ8uOfqFPQo3IaCYPjg7jGDHQJRR1wRV/JnRf5oVyXkYIZdDxfSAVMUVK0wez3KZ/t9q6fCU+GVe/hYzvN5Vf3L/UXtfPGCQYD0GL4IkOHDO2BmglmJSBxHrqZlS0w3Vw61rh2GjYY9e0Kh0B41kLuS+VIRlXZpR+ZIgWsPdopP9Q0LrPdWeuu9yoDnVQWK+s8t8k1tV164rcu2vEWt57Vc1GJj50WBeNAs6LiL8FdrceC3IE5BdDnIQZvXI+OAhCZTymhuZSCYUlHsigSx94BN7nZ55GABO7zyor1V7aZ66+MrAanyygniBSoVZFvhtil1eRtbzsOMbGPnef6KIDUu6elKIgoKH8t4YkN4EKRVrernalsRW6Q1NdGokihHOpkQtVU/bG4ACNcBSP8qr8q/MhPSvzJeVLlXVaTNojmzCdJiY8fK/lWAQMJlkMlbLkcmAxCrHMVYC44cp1JfX19bW7MgWkbTEu0wXcZaWPXDDTo+d06AGTbE7/foW6ArfuCbn04FunpeUUGBr5WvVV5ht54tO7fs3CLg71pxMT4DEB45OM5yyaqI4zCbDCVdxo6cA8S0adPGj1+3TiCU4GBKEPWxFlbxuXAAYgkQfMFBjvhUeCRE/F2rKmcg/hl+K+aC3fBpw9CQnqoctDSvGD167rRpo0dGIhFIamsSC8oACYqDKGoaHw4zJE6Q9rYD4YN8Lz/fZVB41qquYoaOAGghKPtvdlPiV4LUc91eAcyt1GdtdaNHjx45MlJdPR0SgRBjT6gMx7iPhWAhSFhvB+mKtLEZfLVKAojAfPxLPOVlB3oGHFZj4oJkiz5rLaF4VjJwFmYlyKBqBBKBoAjBUFl0AV4QhqqyNrzcbNABMqdOKuIJhEtilcHLOsfCqF4AyD8nVbz1IxEHGhYc9LE6zXRJUVpaumkTQZYkEpCE1JASranBC6KESLIWjuUEwSMZcTyU0UYcJm59KMIQB0MKrE0F7geWQ2I7/OToFcCnIZ2wDoyVQrEJDJJMVxLUJEqXjnrUJJYs0ZTByIZj4fABumvNodTVMcS98twQXI5xILp/OCXgDYbWAsGfdCBol+oDqiG0MJ8Qi8VKY5QRJEEv0TeuqEoCDiXRbeteo5k0QkEUhghDJL6/FoQlFJuhfj1dAfVNhSFywyowH08VYkU7acyE3ZQJEybsHgEJGhdRxi+phYUikMEa8v69QFRFhOFlOhyIWWYj7LAZfM12uB6mJNaAzgWZuHQAQTiQUEkMZR0FGnJI27qXOrZmzXuC1FEGtcrRjjxxCMM4BJLRsUWQp6Kv3DrHFXEaFrYYCKIlY1iiLCRBoFkiEGpcV1PHjm1RFVGOilZOB7ErJAa5Pm5aohBG3p/hswJx6zFkKVrWrTEc07ikz2N0ZAocWnK1cXn4fRoydmwry8GVsF32VZmLcRSEzBKrHogMpZmOARYEAUQkkeksQUUM5J7a1QKkrqICkFEMceJKxCEVkWKAwRaRc5yK2I4BcEzKdKDbj0BM60K0hEvCEDVppLFn0ChA/tPhDgXMYISE6bkgqmGxg8rR+5aCnDlzZswZU5CYQNISC3LF7P1ip6WiYlSXAjMd+ZuEHcwwNUEYYkf9GfqOw9wFkX6uILoWRCEHQWKmv4tknUAGX32S0pDFXUAZVeS3p7o8UbRuxsYhFL6gHB3cHXw4GQXBAJLuH4BQFwFDQ3abarDEYFAThuD2SxVpBKTb4iI80VksEMx2TaQcAnHDDr5GcbgRiOwf0UCoC5IuiXIIRMKDioaUaQgKEiYInkwtKenkZ0ZmHAdD3Aji35DWtiNADlREU1ASC4JpCmtYoiA8RVnLC6sSPF0ISAuuhhX3hsVFkDFaHSmFiITh6R8cgWgHF4QkoKjbr3bwMAIHoiwjpCJqijIYUStEtWWqny8EhBlORVghI4D6Lif58NnHx59ePtMMDXn25tGbj1JX45B+rqdYkBCFLJBw24JDSwxEY8BQs+EazOrJIZDiEvW8Z0tLIAwXkmvsftHwtTvl+wuux8cGdeLpozTF6h+agccajIQsLEE0hCXMIAcKUpsgh16zH0BU00JXL2bIvyriOvjgMRgmj7XjU/rM/Yw3Si/FNAMOQCChmJsXbl0yICoJ/cxjSUQVJEqQIEGWG0gxdfaibtkgWStCl55lwHjRHWn4/u4Xff3oozNP6czPH/TlW75ArIkJpRcaFygi0fdhbYEECNKYepg1PEFUSbCJjXk8QfAscZeSYoK4YYglceJDqBUdpN94kFoXnflOZ/AezyF5+4HfyHKgFnDoqgS0Rjcv5NatP6YpDoRKYpoWIGhayF+blkhE4VPfxPGM/vV9Kl9x3TQmPcWZ/PzmzZs/pJLghN4+Mkt8OBjCCeA1JPr+RZRJaGLcvPQKq5p3VdS6V28+LA+bPlKMdOpqQzypByXniJ0+fNHQ0PBYH97HdeMOqC6/OeXDW9VL8Euqo2sHd3QS9KQoC0H4VqyGRyzeIxEeGEMhOFYfpy5CEE25lzIfT5eop4k7CkQo2oG4Djs8i/EoPyDAH36ELw/BQL507/4lnwsiEEQj6IU8VtqXb8SQ3KqfGY2WTdgdwxhy9sbC69XVl25cHb/u3i7eEAqFriavXGlsDIebFXdTz+HaEJk+uhJHYSdfN6l86iufNQT95ym9k9yyAFESzeDABYhVkz23b9++CAgmjtGzx65Xr7q0+vT4+s079i0rM7nb9ORJKkUQ/VR0HpqzBRGG5XCv3Z5qfrhPAHQNgjzXEDrFFWmth3RI3KRLoikE6VC5+fjxgRNiZw+dLS0F5OSpC8c61G8/t2PfgjSkqSmZbAw366YeKC7Maw4H/lKWOA4pRk7Fo/v3f9DYcbA54kK4bfE2mMQct9EQTQEEQ8rZfef3HRk4MDb/8CFAzm66tDVyadeS2n379+8zrevug9cPmpKpxmbq8W6CkCI7hBXC4N8iL+hnXDDylnqGC4EkcxihqujH4eFABKIlZl5/58SpFZcGzqKmFYsBsuLStVP31tVv3pzYvwBREDiaNKSzhgABStqRuTtq9YiMG4I1QQNE5enn7BApiTzmJ2nFI4txDOlDkNGnFl6+CIjKBdy1Tt7YjrvW7VebjyYMBA0reTMVJkihgSDOrFci1eDwS87nhw8f3n+q7lYuhCWyX+xK2sgMUhUEmXb+YgkgQwlSWo3h0OwJ1dYm9I7Q1SSSAqQr/lcN4uOmlRsily2xT1Ane/4WNbEhdEPGG+v3ZAnCEnn6XCDoIWBgL6J4EkNKaVAZrwMJ7dBHF5TdTSabkjvR2VENhjgVcYrxr3Cb+mxBGtBx6J1FwhAEDAYRRAb3ARoCx0ByDFUOhmBlBQhKEiVIU+POtr9pufMQGcM4DuDz/ztYNG7jJmcxcuyumGxtFm2OEeM2EYMi5zgiQ4iciWmyNK4k5Ur2D7No7KRcsdbYKYpyhxzJ8Yfv7znm553XO+PId1lCu/Pxe37P87zvvO/rAIIhPGhyMVA5OwdCK+Fd+csjXhBFRawQDkEgAQT1IIeCwDGxcG4hLjiDQ0Doszo/T5DbmH7jlUGHukFSV4R7nRUyGQT/S86j+/fv35F/9UgK3qotCoLffc6qyJeUckSe1igJQ6hBNKSLGFhDFWMwORgyQ0BuA4IeacUQ09zL2w8uhkZYJbSzinBrU7ejVw5wiejLPmpcL12vrib9qmnD9850+nWq5nVBwfsvGlKQgczWEDmwhpf27i/ewqJ6RAVk9c7r7zC0Ro+WkNq4CZK1e+dymBRWC37z8rFeQIh0X/cK2bCNR7fQVz2A3X69A68jkabpGuf315EPr7+la9JPtUMfwYuCQKILUli4qPvgK76oryJ6xTug4vykVdHozj5Vl5ctmychWNvjtSYIOxDLoLKDGJRP4sAq8hWNTS2CwCb+5DGBqEUEJP20fjrS8GnKecBZ974gUlNXk8p0CRwMQUVw0Hu2X7+Z56cv6u4tLZnWO+qdPzg6+HLFgKiv9ETVtXnzCCK3KFYIL9naYaNQEvw09EquEzFUs+jcwD9UkFcEqXvv1BDu+MyspVpEdzo6ZFJX3/qS0t7XfVFvdPDwikvRpdPIAAlBUBIsJQzhemiJyZE3d1EMUZY7hsoD+ScfI9LRGEfCB+p/i3yI1KQlxAkIO9TIasGQLmfFjDV9bXnJrkWLfdFo6Zhz3nOHLi33R0erYItCm634FkcreTdBPcvO1zKq8ubBo7t3H73M/pM7L6UD5ahL1eGc0ZeaCObeOmdByplKOc0OVyv0epl2UEHklaW+UlwDceVKtBy/lCz1+0Hwj/aXjy7vXRWvTSaTg1o6XApiMMPi+MfoFfZpfSTy9FtKXyQgPrGjOZ2GAAQFIYfq9Om4L9QnL+YY7fOJC1P88/wyuGqoCud+z8QZUp/r8Z8cCJ++1skUhDe/A3+GzEWH9AeEgncQiYGQYzxCkmgyLs/Gu3CQ5moFSH5HA3z8hYOXQoaoipgWdRpYmeVQryEoiITAQJFv7ZKjpERIog+T4lAXEBQEEN6YM4PCDPGJAlAzoxm5zB+5HAwxvfFIDLMDLaJOAqPXCTIMEDhKQEDAEBA4pASQ2ni85SCHdLSQECmwMJgCBee368EFMVcE4Xv8hAMFURA9aeHZAqJH/H56/X6achFAdEWStbVxvPnmcElIUwUBAT9UTAhmcMwVye+wQvSxYWsXObgg3Ox054uvZDydThHzLQKIHw5/ETV7bS1KcjGGiog7+RvaHF5w2GFOvj43O0xXjmc7WmgHILIi9NgKcQsPptremYwu9xeNLyqCw7OtqrqysrL66FFUhBztURH6pvYKZjRDsuqS38EFMVVEO3rQfyc7REU0RFwUT//5IGzDxaa4WhMQBIxt26qeVRPkqkM4FMTMsHcAgg+tsWcg7JAxXxPENyU/oRs/B+p6yA1KJwHRV/eTAwwBwaSlHIBAUr33BSDiWRsNc0NYocIQW0q2gyXcIdLRQw4LvX8nB8IVwdgStxoThT6VFxHEIy5tvl5ZXV25Ze9ehyjIQDPEyFkPc2wg2Qf/FgckPLBQEFEPtTnhgypRkaEEKVESBAURkG19AVlzplJBWkgII/INKyvEXqIcLNEji29g1QUZ0QYOBempIZAAMkxLRGgRwYe4QbRv98VHw+LxbY4WgIgeYYkdBPl9CBdExTK09LX03RRkoIRoCZodEg3BWkLrxniKWgxxJyIyPxyL0ePpHO1l6kNAiNYej9G+uNgYWuwx3O5R9g6G2EusDiuEW6SNloCiIGiSDqJJUBJIVHz4HdWnL0Hw9rR4qB5DDASQ9m5jnzG5fbHhbr7PKJYMQyJsHYhtQex7XbdINw1pw4MLDq6IgJBERULKCULX/QaDsHBFDJXWbsNtdO60jyAgIfbVYIlth1gY3CL8NBcx+1olgKBJZEWoJFO8Kj7h8Mg7Q0U9BrVUEJzXUunmRh2GdEZF6hcb44Ri5riVthClzOVgRtPsVkc0hCUEUd1eOhYQLCSqJN7BGjJ+1ZIl8ub8VVAgdF6rBcKQ1ugRNwaX22N4it0NKOOgYIeJoSB5lxBe1OFA2CEhcp/UXkC4Tza2DLRM7Jk2XEpU4ACk3LMeELpbIQhF8Eylw6WP2e1nqw52I4u3KLb14DeDm1puFFG9jh5RJYGkTEqEZkXs/JRJ+0/HoLk3X1DwkyQCsrz7T7ddbDnj6OGygYDByU3J0ejagZgdgKhelxBdElCUZXPQ3Um0e/G0/YmWsQuLh+F0o5iJpxCkO0MGXdwSx+5XJBck75xl3x/M4P4wOTTELJk9u6xsc3Bcz5GdxJqIFC44HYjtHj49s6bIOYtmrYvh0NFkrQNfidL4j+rBDCvEOu+ywwLBdxYQHlyg4F1dOALH2tKzds5CgoBSvCARSCwYrtZ5v7qJbE0Mzzk9+jBJkOY5Iaqh7Vp9/XxAcjoA2Xdk4eHSffv6mx2IcABCaSUkCEm2Bg72IggkoPSTlMITe2KBC0vQ+qgJ7X77AkJPbA0nkw5UlyHMsEbWILsg7QKBje0sDvPAGnY8cOTC8auhQKgj32vIDhMEEjxjZ+DBwMGyXvLhaFhNZvVTFmCmXkC7LKdjrfGg9PZUJZM4QqyudqixyhBMQuyw9In0MGRjoksoNJwZ1om3zcJBx/uLkdXm6gU+wLUUhCTrN23aLBLYXFaGZ3EpyVmWoCyiXXbIB23RMTtFQZDGDcjA1bApiYbgQxWkqIExJ7DCZXsstS8UGqc7pH9ooYY0YQdDNoRPnjx5irK1jCGdAJmlIR2Ignbpjp4XK3z0IYUgTUQAER/2DkWgH3xUtXEj4duFQh1+vcEadnzQwjZ83fWYwBindlDMBRkVXC+6ZAS2jwhXhCQKAkoHSIbIvb1vim/58zcJCUGAaSQBoNhHtTdBVIoCsj9QlDmWcSVH1TDTlHU46OWK0CLSGhCd8Ek41PoOh4KokswiiCqKloDirbj5PPHs2TNAJiBNChrlAOiHtHRrjZOS+N6uTK6e1M9pWh4OeVpQ1BSKlM0Mxxbh9SBtZfC6bt2SL40iJ1Zc+IbXhs8rYsPx8sQLXIkFfOVK7+TJ9BBApAgZlQmOcXEvdZHct1SgIomEghQUAPIXmT+oXabNXXsCc+RCSBXRo8p87w7SNrSdJy391DyRUYElmLZkSRBdkYx7lm4UVRKgiVLxhvLsmYMYfwbhY5DQnIwDWRMKFWbOYrWXowrJenoA2kRB4BAQJQmvQ21NEllDOCCBRWhIgvqRRFLWPn/+/PTpWwmHeobeX1TEmB9qJxWqPQr3BA+qDlmEuYqXdD7fgNwLdzZDWgvIpnAHhqjnBwoIUXRoPAIiRqIsytAxN2/ePH36+fEfld1riExhGAfwQSFjBuu+MW4ZWbfcycgtt0TWZSTr1rZlaDEuZdCaXHaYyG1HcstkJ2Rmh9LaotxSSHzyjaL4qHz00f9533Pm75zXmeXfnNV+cn77PO+5zLm8PlH8F4RHvIl6v+vq/JFEZgEYC9BVYNBBCHL3fQlShRGnHQ21s/Ro4zCTkgiFURQpiRUpSvR+W1vb+wcliP//HbEEGcqBzL2bODw8Xtu2VBxk0IHM276bh4zWZqv62DXtoESXROKUDKNELNH8/WJbGyDW811+77GARB5Yqedh4girIK4rwRdmz0ZXOerhvqizZftGDWFFCsfo4DCBxKgJugsQZlkuXyi2vX/vk6cmFIQrbmZWTCeVSNQPEweSSZBBB/oqzjvgTYd6h9DZV2FdENuxH43lBUHoKDUXIZlcLo9jAZ/10IQfDr3PK5vB9YnZ+iBxRO2y8jfcGQ7edBI+dlYcCCCqsU7gJxlw/CmxETZEJISkMplMPn/fZ93K6+exYCmVoT76X4el4UHtgwYUJMOCkEEIj0tMSJ9FtTWAaAfy4X1fA6Id7C0QILEhkCzSkEhT6u3bVK7gCxKiHZREB0T1v67LIcNSsxM3a0d4O8AI0mFAINm9fdGm0l77xDE0lpbQQQglCCBWSeotCCaaOJrKEGIrWJMBgCjWZnwdRIhkWn0iY/SVsx6EGEOkD5Kv/SP7+xLCxtISD0jNPhty9qwbAoOztxoBsUMHQwdS3sEruAjfmcKX7RHCAQIHSyIGQlTAGDas8SMgTU05n/WMnV8YbC7FSQ5NtsOghAw6zIL0IwQOE+IYIGQQAoQ4bAkWQCB5m/mztf68rKZ+GRowGAwZlFgOY9NLiSeEnUUHYkLgsBkSjJGjTamcA8IzWTC0xpF2HOa3WOYIIQQMj9YixJTY5WAapbNSeVdFNIb7k/brYUmMxqKCDkDosIYIIdz8loM4FLoiTW8zmULKAVEMDvn264GYfVXOwZFOhwkRicXgZosON6QplXFWpETApyykghBXY3n3lfcIIQThEeMQsyJyEK+iTy1lAQQlSaXyAsEqEMItl1PjUQ9CvDdYZLgcZme5N1vc/BKC08RpIxC9BY7INgv7dkBEEnBDmDIQc4Tw0J0ML8ffhzpChycEEkQgy46K5OhZN2SEaisNCTgV4Uq/pJelWNC395AhLoh5xMtyOCHeQwQQl4QQLYGCWfYWvZXJNPnUswiERLEEhgIxNBBIQhIIwBOsHOj3V84L+4dX+UdG/BVDxgKyem/Fpk1Q9BzWO9BvQ59gMFzJelDyzw4DAgorYkv0CKFDDhpTmRwGuygI6SFHV8kRSVn61OEKz9BDPer6bJ5b54/OTYbnRiIjNzaMjSxo6A7IuSkC6Xtu9KJBB+bUBEcfWiMS7+HBqSA8HC4IxrsXRCSEILkUITpR9FV1dbJHKFIJlIbI5d2Bdf6N4apIaOPgPRV7W1ePAqRvQysgPRftXKPez3qg/6FqlqN9B+JgGGcjrnNEnos4zxCbsPnN5XNuCFa+T7RHsgfWX0HChwJ1A5P+aBCXeUdGquYqSAW+rOi9Gid2gCydPmjN0EYFqZ5Hh1IQAgcZRkGoMCCUcIfoOkNMmRDsDBtDowPVuAh6KFTdYwSO3oPRUGjgZlwZrYyEhlehtSr2jO27bArGyM6evXcO692737nRY4KjG2uC4ejo/mXqUQZCBSHOQRJ2Qyg5l88rCSFKAor5fQlaq5S/70AaR0f7lz+TshV0AMJ6eDicJyT6WgklGpLNZluyuYJ7sBsOSZAOQuhAKrkjLOsgw8Ph2mjRwVMRK4QgOVdr9fgbhAoem3js0A0GHSwHGTrtOrgbMSsyVyCXLuULTgg+BsRhcTkQJ8N0sBxkuAe60VcmRAoiDERTLAcgLYDcL2oIj37LHvJ6OfiSKbOriHA5CHEyOD5EwYKocpQgSoHoimSdEKGUKYfHE/vm4ZWxsaJDK7w2vHTw6ISN5ZDYDkAuIem0gvAw3iwIGYyrHsZ7hz3KQQQdxv7jPx2ACIOQChbEVCBOhung8CjbVQbD28EtlpaAoSHsLMnuS2kpiYbwpN2ElO8raSyOjvbbyqmggxAyCOE1K4nDEU0Xi+lL2XTRV/rjVnhunfinx8d+Bax1iZxrww5X98QMDXOM6pXQ/z2uzWCRLJVMxwXDjTpq0jBJ9WRkl4o1/+OiPZJFKo2PEZkDE7OuJr+kEZTk5Uuf64U4/EvLmqsbD2WF9bPA6q0l8rCpPGqKJwjUfWyTJ+p3vuIJepk99d7zZbdu3b59e/VqfFafP5+8cQNz1cqknHV7kRpMRSqT9dYfOYIPcviwzAl8/Ph+LMdvNl9obm7efQL5/v0zEot/jcUxEfHJa0/sYFLhRy0tclRSSKeL4kBRAAnq8BWmKvhdW/pLBeRlq8j6qrF4TmX5r1+AzAFE3UQxxXoLr8VYBoY4Ll9eLQ5RNCDiqANDAgWiDIsXY9LM/TpgYE5VQWAC3xO7LcjXePwiIKcAgQF5dEcc2UwqAwgGh4K8LBbtiigKd9Toeaw+Ptog9ydUyeX9lXiaa/y4M1uReVeuyJ24eKNoaIxAHj78aZXjstTjvASQG1Ag4qhBJRAgVAQhyxbNEEizcpw+HY/HgIh9/Yo5a6+dOoh7Ok5qCD5ISwtmds0V7gtE16P40ldlvyHLentLL9QAAKujUAF5dFbeqCa3S04d92vHjhVr1SNC6oUeYxDUo7X1YSvqcQsBAtEIzZBS1H3b664FPoBsOW5VAwo01W6UI34ay4lYPB6H4skpzLx7EIsQpBjyswUSnEwVCEFrdf3j/MH+8+s3LG3bNnX+mTPr1m1dp96RKA8HLVyxVr3BcuKMZypoKBju3QPh+XOUolSIAwew3Lhx4EXdp0+famqu6mIIor5+cSlCuHDTqgUYcMQAwHIxdvHaRZnLF22FfDx63YY8QtBa+TzGSAEQUIqgdPR1ruK3nmip7mgosajxve31kgliuCIPBOEBRpRg0rOJ2vAGsUa3LoTuJ6z7iwNY9r7Ye/UFEFevPn0KgiBUHVCJ/RjZ6CdZQABE95QwpA5QXLt28qLMRyz3CokDEwmf1WMcH0kWiALGCAIHhkgnn69D5276Wx0MErl6JZ0lFdk2c9v8CWBcEcIqEFCFGShE6FkrBK1vHv78iSJAIM10+/b582CgEDBIriIwIO8W/1j8TgG2YMOE8XwBXXQclWhuVjMmY3yr7RT6KXYaiLiM7lMSVEMM+CHft4sh1fIoK8HK30fQUpIHD7p09HX4DVg1KPXAgaf2AAAAAElFTkSuQmCC", + "image": "/api/images/system/pm10_chart_card_with_background.png", "description": "Displays a fine and coarse particulate matter (PM10) data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pm10_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pm2_5_card.json b/application/src/main/data/json/system/widget_types/pm2_5_card.json index 0f30162aa2..9677807fc1 100644 --- a/application/src/main/data/json/system/widget_types/pm2_5_card.json +++ b/application/src/main/data/json/system/widget_types/pm2_5_card.json @@ -2,7 +2,7 @@ "fqn": "pm2_5_card", "name": "PM2.5 card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OCAwyzv9+XP6a+rq6uQy0bf8Mrz8/MhISGIxzmg0mDl5eW2trbCwsL5+fnu7u6/4ZWQykb3+/Kenp7Ozs6v2XtYWFjIyMja2trH5aO43YjV1dW8vLywsLB0dHSYzlOkpKSQkJDX7L09PT2o1m7n9NfA4Zbn9NiCgoKw2XsvLy9LS0vH5aJmZmbBLSFrAAAABnRSTlPvIL8Ar7DvmsykAAAF7ElEQVR42uzX0U6DMBiGYabmGwzWzs5MxbUKBoNERcju/9r82yljM+uBJk2dfU/oaJb0SdcwovPJWTT9611MzqNJtMKfjxHjguEEWtHPCidRdCqQaYB4VoD4VoD4VoD4VoD4VoD4VoD4VoD4VoD41i8gTAjBzJVhuDDFhmkK1txD5sW6mN1iv4pTUiDlPQC6yO29ejStYMk5JLmMddnsECKEaiTS7Xp7rocKLWfQyY3ZMUuuIUkWf/ZwAAHQcr0VLVBySRAaKMMiWA17ziHv8VDyDVJ1BKk7hkpWcnu7ganreGezOIe8xbuKfYiUPa8JUnaPaFJpIDlfwtTWZe3VGXkYQW72IXWdKxBEtPKRMwNJSbaLPlhyDCniUfsQUAaiuKygIeWw9LJinkGuR47FEQgarjREdH2apiXyHKzbqJZmLDmGzEeQS4xqG5iWjUDeE2xDQ12OTQuUktPIkkNIMr8FkO0gM3ibBfKmn4Ov4y0p4G/HIcnia/HPWWx6h8dpiP05+EKm4inL1nP43HFI5v+5+GeQ9fD/6uexFY4mALg87K+gnp+yAoctD755j2/dXcG0EiPA1RS63BXEvIYsPtgxYxW7YSCKdtdsJkyh0QzEChZIAnVp8v//lpGcTdjHa7Z4rAodjBnfkYtjFRbze1a30QOU4WiYNwWfPCodF/9Nh4gZ9KoeG8M5ZL5nfIuYzY1THdFrRJwfb5h8m3/1pyKZKilTJLvOOPdgXGdtBPNWhFRK3OhgfwoYSAaayBTxbkHqtWePKL1E5PGU8vOpiLH1UJoFw4n/IoYeavJSAxeaaeVS30VCh47ld5eCZ4d4pK8VmSfg729PRVJLPSAL8QcRhhySR9linCLRi/RPhHAvJ+/O1blEoPOrRfDLT12PUGHWdmgPOaEmzO9ZBNFFjDtf0Uvrml2kekPZ3kW0Mw8R6ygEubTl0Nnoa8ZBQkRHbiIHiwgjEgBtVC+clQpURnlRbGptFO0WiQeQSAiAh7XBWqOM1CgsN6A7GZ/gMKNjzUmjKD4Bi5Q9Mt0iq7JFVmOLrMYWWY0tshpbZDW2yGpskdXYIquxRVZji6zGFlmNLbIaW2Q1tshqbJE/7NtBi+sgFIbhnbzKEY4rR3BhNoGSthTm//+3y41JW2/vBDqLYCHfSkYLPsajmUJ7ywHpLQfEnpy3v/ukTZvd/rwjxAcAwi8oHvzPvUUBcXtBIkv0/dW7IZtKDQp+H4gFpPiiIMm8l6TkjRWSMRmrDPtAIqit6/f22jk4m+1Yxe0DmWCaGwLRbOf8z5EQkMfTmTtr4/5kh6yEtBsk11k1EAdf606nzvCigJwzuPuu/K4jvtLcOdrlF0O3BSygl52KfYAwNxROW5AbNXqHOFg35bj0XbU2ZD2dvXLZqdgVLrVWxGxAIjCWkuEOGQnrCEIpI7URhXlNTs7PDzrsdPwWYAwKet2CCHW3uzvELg0PddXD0kg6b9eMOuth2u1CZI56swF5lIqskAFss/kK6NN2vQoAavd6IgrUOt6ARBhNCxGmx4jmM7HWnR2CjDHtVOwnICZjB1D7MyRDaCEe3AZk95fG8en4HTYhuYXcUNMRJAF+LfqvTcjUQoTcE8QCdp06DUQf06zMBnIC3xMksd6DNxgbCKk5tdaJa4VMiOkJYgKIXS7G3EKGv9DpcY+M9WKcIRZyXxAPyC1mfTm1YIqDAtjlDzINgQpxcO4L8vSPlTMNpEYA+zROFFx98e0MYmwWQKI1LUQzEKyI1B43ggYr4OqL75LrOuIkUudfRKa9ITXJJtOmrq5Nr79BAU6mwLO7l29Ral4hTcrjlLbGRffc90mQK+KMSU7/t/8/CVLWykdeN9UnQUwRfvz+q2PINcbvlxflIefizWt6hryTA3JAPiUHpLcckN5yQP60dwdHAMIwEAPPCcQ/nvRfKm0Ij7YDVSAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2gMoTGExhAaQ2g6OSN01oD19DnPncqA+fSbyq6r/y6r9gfAuD/lBavpgwAAAABJRU5ErkJggg==", + "image": "/api/images/system/pm2_5_card.png", "description": "Displays the latest fine particulate matter (PM2.5) telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pm2_5_card_with_background.json b/application/src/main/data/json/system/widget_types/pm2_5_card_with_background.json index f7b55c7aaa..71e247f317 100644 --- a/application/src/main/data/json/system/widget_types/pm2_5_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pm2_5_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pm2_5_card_with_background", "name": "PM2.5 card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm2_5_card_with_background.png", "description": "Displays the latest fine particulate matter (PM2.5) telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"bubble_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pm2_5_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5 card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"µg/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pm2_5_chart_card.json b/application/src/main/data/json/system/widget_types/pm2_5_chart_card.json index 8b549b24ed..d8631c512e 100644 --- a/application/src/main/data/json/system/widget_types/pm2_5_chart_card.json +++ b/application/src/main/data/json/system/widget_types/pm2_5_chart_card.json @@ -2,7 +2,7 @@ "fqn": "pm2_5_chart_card", "name": "PM2.5 chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm2_5_chart_card.png", "description": "Displays a fine particulate matter (PM2.5) data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/pm2_5_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pm2_5_chart_card_with_background.json index bddaa13a6d..002c7a705f 100644 --- a/application/src/main/data/json/system/widget_types/pm2_5_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pm2_5_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pm2_5_chart_card_with_background", "name": "PM2.5 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pm2_5_chart_card_with_background.png", "description": "Displays a fine particulate matter (PM2.5) data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAAA51BMVEXq6uzn5+jk5Obh4ePs7O4VFhre3uAaHB8dHiIYGR0SExcwMTQzNDctLjEgISQ2NzoiJCcQEBS2t7klJik7PD8nKSwqKy6cnZ9FR0qTlJavsLKrrK6Wl5lYWVw+P0KQkZOZmpyztLZVVlmgoaNCREdLTU84Oj1bXF++v8CKi42NjpB0dni6u71SVFajpKZ/gIKHiIpOT1Jpam1ISkxeX2Kmp6lAQURQUVRmZ2qEhYh4enx7fX9sbXBjZWdvcHNhYmVyc3aBg4Woqavb3N3BwsTW19jKy83ExcfOztDHyMrT1NXY2drQ0dMLGze+AAB2zElEQVR42sTb71ZSQRQFcMy1eoC+IIplGYtKwa5iUIrYP83q/Z+nvfeZ43G4DVzAVucSQa0+9GufOXMHam3/n3ryiLWNeprqK+sX6ntWP3/+/v3jx83d3d1tqm9eb7yOWc9UL3d3d/f29r6cn58PDw/b7QNUt9vtdDov3qHevn3/+eTik+ro6Jp1dYm6urpqPd3e7OIjfiwm9IcQ/OJL/7EOpjidMjCF+JNPKnHe3OWY0hSoPJ+Rs+7Zdk9yvnghzo8nJxdHVrBEwVOim+ezoShjxIfgcrqC6HZz0ExTkl7BeUNOZ4xgRjrhaZio5JnFk5ryBCfiiWR+kmZwnp5ePkY+G5RbBtp2IG7a7PRcpOnNHpy5JC+WMN1zzzzJ2fZmFyc9FU95HsETD1iiJpPTR8knrvCtSyqdSTOecs3t9TXFqTYXp/jyck5B2pNL6opwvjTPXfOMbg9OdbtWzyM8DPQqaU4nk9aG4dRjcUilKc5NBMugavZYMxXGKOO8EWdkMsekJzFJSU0V43nI8njCUuE0TvNkwzvndDqbwnPDeho/F8MZ3f7IotIUp2taFlO5aaQzH+b6OXpdnPI00C9DciKf7YPgVDrN09MJT3LORqPZdJP10zX1ulj5GPcfa2NuZZrBaesk6ZhFVYjezHkS0T3nOI1S+US3D4f0FCco6WmcF6K8FicH0USc/dFsg3zmrf60jKkrRJuYlS/9bgwib3YEk5wxxbErclD/xTydUWn1jHD6dB+C0zy5dt57glPhlOclCprghGd/1NpsrutFGTPTtJ+Wk241+l15UpPpFOXcMglSgLLiVyOduWYWT5WGu3Gq2zWJgjONomt0OkqY8uy3Noln4XXsj+bD2USzYT7TXPdwpq7mVt20DPTOObNh5JmMcKIyTXqi3enpnG+N88QWT+0+r9MkmgkTtb+/WT5jq1Tudfg17/athvmMuU5OH0GWQukI1DzvUDknRcMzNvHwjHZXOt0TnPCMWURMNDxXTnk65/6j5LOombX5QlEPpSew8NCVcarXiSZOQFnfQlSgwlRqo+4ZQzOVY+4ynai0W/J4WrMnzyt1O1ZO49x/pVpn/xmZ9DclzoinrlVGkZWA4xGeNomgCU67L3dNQxGoPNP9es5pktJUMZwoWqps78nhLk9t45lOxRPFbF6d0pOTHcE0zcH4X+Qzdp3SbCAYVM5ZnPRy9aVTK6e1OcXAYyT0PIZnnH6kNk9PsX4GJ/5MWjn9zl3pFCc1rdl9GHGww1OcDOfAPTe6L4qgljed0feLVet69pRXxPOe05tZna7JTFB5fnNPaR/HeI+OzydRCic40e/uKc73791TnPScMJ/uCcvxgJ4bVcNNZ0GzOMUXVMQzDSK1uXSc8/yLBfSNc7LcMvP0xdMtQ9NPPgFq8cw5r66YThXbndkc93r0XCOZ8XLRZF861LdKrouLnlo6yWkzyFhi38iAytMpHVMVku75MJmmmbbyKLU7m9044em37JeT06niaYtnddYbD6rV81kgDMssm6vsMxsW48lwJs400Z2TFACVJ6t2zhmexxHPiKYs78OJhw2jlE6U3WOi0fGYTWfodls6q141rs7WyqdQ9WigqXd1TRGGadPinzHOCKdTSgQa7lmDtIRGq0ezp2xaMN2T5dNInNrLc9fJVkc6ocnFU4NoXPV61dnr1fPZ8PijYT5X99wyT3FqCFHDNVHheTwXS385fxQfh/FD9bl2nu1Dj6e1u8JpnH48N0qcA6ybFTh7ZzuvW2uM9jKqDLeXnslt5ZpiWq3djVPhdErlSyhaP7WlR5Eyan4BzTh9C8+Cpjy1lyfnhSrdY05snzSzWQTNnmm+XjOf5TGkp+j4pZbBuKKncdpJulOqxBmeWbNHQDNPG0OBKU8WPe0QBJSY7OTUXNeBEgue5Dxj7Xx4/mHFfPJp+T6pMNTDdANPNsDXXz+5TwKnYypcpmnj3TxVRph1/jP3NM400qX40FObebvNhKVtlGApz5k0walWP+uZ5/N18umwRdA4nitQrqkZnr9/IJ7Pdh0Tax7Lmp2c8JQXTV01Km/3PfMcpkiGpjjZ7fZppm07QYlwkhOPvuY6q2K703PVeC7P58IzD1VYruVp7f7t+CU0PVmsoWY7m73k6fnMOf3wox0VnGj3jydMph0eM5oa6xZPTKKeSpyox1w/I5sl1jWC2dLFR+55656kCM9zatoBU3jySXvRWD7F6fGUJ+e5GHNPzPaTC1Ji1ylNhbOPUrOPq6S5A0+unytms7x+5lOoSNlEU371as17cuUTpjVqtnby1pwX7TLP43nPL/G1BauHnhxGF5+uefiR7tYVTtMc3E92jHaBrjrfXbWAaZqFdbNpq7fyYLovnnJPrJ/A8Lvsg/AEJxnFqYp2D055Zt9SOvByzG5aPT/5UJ8omZxC5ORkH9vSScvXrJ3WqvEs5XPRXWZYLvcM1PrLVvLEfL+5vX2jgPoZZfeAnh5PSUYVPGMYhSdLL3Usr63nkX2swWgymNwkochZwbKqKnhyFn1ARje/f+f+qLZL2i5vO5uslQpluuKlidLT90vwPDTNDjwx2p2TZhHP3FMlz3nOrhxl6cMInJ9sqGsEMZf4aX+/b+lEwZQbeTQ71tBe61HiGdmsB1SGTVq9VX/nmPV8csAzn+fy7HTC86UZRgojn3FWl+09nTM8u+7JYYTFk8smEKGIGimg0KzGvco8UVpBz6rW6rl8uuooWoIZOfRw8iq9soB+B+gtB/wQEt0uPh3vtuH5YLi7pqW1nk47k3dPHnywEicqeVq3z0b6SIOLJtdP3hVV8LRhpNnO2nm9A89VbouK36nJDo5XuhmK9DlYPZXZKz9f+nF7jHgO/bsw3cOhPAUa+3X3tHM713RQ8xy6pxS9Otorfb6g56jPQ4/k2UdMB4MKD1hCk0VNvmyaz/IJiDd7IaDNOj0b5rpK+YzjZPM85IkF7glfhKfHk5YOOp9O9/RvgehfxRyD8504ry8niCd2mgBFRtX0eDd+NUA2WfeeuOscNMlnUNZBg3PZoVxRMgJYzGf8ijwRUGyZ7o530e4H+s7wi05bnrvuSS4v73eTfLj73PN4uufBA051O/dKM54Y6wO3fZRGUcXFE5T0lCZBcaDcb5DPgmVwxiRqrhk+Es3D6Bce8WoO9PsPeCqe0AxPA2RFOoNT5Z4+3sVJz3o81e2T0T7CCVFa9rWQUrOnYDonXHuD/f6sQT5DsxzP0s1lmTMo882mkxYuP6GXJ9r9wL5ZhHEUnjITqL/xZp/39Bss88Sjk3EynpeIJz1haO0OWDZ/xW6XpwrtDs/RbIN8hqV+Ku04S5AhGoL+tFg0ed4+2xsynvzwkfk8PE/TyMnyfN5zZt+Rd8+uPAlKWnY7P+JgPLHbRHsPBlw/UfgZ+dSdpjjV9JKtuJNqNf2akp7LJ8hSXWUO5SNI1Wp0oej58+abPJmj9/DkfskPlhJd5NPK+z33FKc8lU735E7+gvHs919VvWrA4pBHNGGKFZTB7FlVVYWnQX82m7Y2+TzzSVCW9kmLZ5BrlnNZL/P89Zueh/iyATnfYwE9gKf2nw845Zdrzv8Xjth8mqffaKZ4nk4wzIE1lic0K3kOMI3Q4WDkjCfpmKvndNIkn4WDTxDyKjV7o7vL4Gx+yRPj/c3LL1g+8ff+/PHj23cd3R8lT0cTZ93TNP2ojvF0Tnk6J+M5mSGK9DJPcHLjRFcaogCriGIz1R/Rc93KPnjTc73ZS9m0K96WgpkH1H8Jnl+/32D7yXbHDeHJyWd4dg95OJ88IRmeYen9Hp6J09ZPlb5OZ5yI57SPQZQQOeNRfNOrRIiCNovxlOey4R5P5S/VlLZJDU6OSuF04jq1jkR+IZ5od6yeOJ3E57gf4dmmp+7fnVOegRnlnO6JkueBPBlP5xzZ3j0VSG3zqQXAzpjQ8bIF52i2dj7zbVJdtI7517lTXCsjoPV8ot11d3Te7qAvL47wbczP6Pc2A2qeMYzqlCxpGic8DZSSeEZxGMETd0b4PBiAvo+nHt/yzh1xRBFXhV+H52w6Xb5+llZPD2fjg7n6jU9+1aALU4rLp013fhcGnkfX8Oy6p8MVPH3xjNXTPQGpgGr1ZDz/sHamS20dQRTGSSp/gouqRIlYhMRiAZIwWoCgfSHGxtjv/zw55/Q0w/Uw6ELSGFlZHJe/nF6mu+cKwRPETkUOOHmIZzLCS8DJNhNYwhQ9jWcJE8v8rKicPjeeKzZhacS017xAf/r1H8tGTMS9CUdlqxZ5qgQVRO3VEqj9eGoRJ3i6PGvBLLlroilvBzFgsnkRC1EY2EGw6oQGnoio8H2l98FGyT3khGdUaPnMXiw2C5qE+Zti2EyVCp7fUMzD3Q9q4jnvTEatWs15Gj/uxwZL5EmYRXcXS5nLk7l9pitFGg7LAE0hFJAX4Ltv0/cgTwh0QZ5rLZuKXiw9n1VnehjKyTNr5InsLnfnbmZvPJ93uszvnMjdRp7CmfI0nPh6lmc4aUqe7CKTJgfEMGsjK5qyMmIfVDxhBKqIAJ7r5JnVp32VOrGn+kxJFo+c9ia8K6BWtfTwme5Onu0R/uDLLg7wO+B5bdM456lv55ksJxrO53lq72vAC5lh94tMCZBGJS4UPsVTlSggG881yszDzDSVEpzRueO7JyCL7x1hAWIxIognwicnHeC54jU140l3j/k9cXfCFE63uIIsoHwp8hwOMSXWpZhZuAJ3KtNqCL1dByYVTxSteK7vLGWnG2keKtfsdECJPlOusESeCp/nu2SB+XgXezBdnjfVYRJPq9jdkqrzlix33dvFU+Y8OTTSHh1YzvUoi4GM7k9bwOyykQ6gICqeip/DdfrMZ6L8KuLzzfdi+Cw6coFjJPycz0ueCp/HF+TJ+nPSswESgZo+3dWjPd2uuY03jFyfblZ8iidsGa8Qi6dsZmCZ3ClQ+TsTvNWf6+4OZyrPjKOXmGBGbcZmcer3/iYB/469ELj7HlkYT5bzbfIEUMVPkYtA/b3X8Dzny9vF083AerUEoIDpBpHC+RlG+T0YhhURte+sIUKelG5Wn94HyV01yHY9U4Jpwe540oiZZiSaU1cvRNl9V6U4ukv098mq12rXSAQ8XYZkGKt3/RS28fD6eCPmKcxqzWfudoN4LBPPzpI8+T00nvR38PQ+U/+RZ8lngqQ9pbLq3EiyenGIkTlc5molLit+gTxJ44A8x8sOzu+99g7KUfDcC1dm7CRvM2ECFU7fEJVdFHn6hg2vcnQN5wRGtCTqS96QKOp8aNPUyeH7pQVQEd3IyjPD1lCmLaWMOuNcPWozkSdfk3iZmtXylOf5LtAofPa6EM+4C4E20HCrXtCThc15ysf9fEmKCU8331jyK9mESRNQboQFotAo5MmDPMslduYRQI9oOEu9Vp/8yhyM8nO3pN4suHTC711enUxG92wtQWY8vre4rBV4qqccQPksSRRt7Bloxs1b42lftNBIVusz2ApGoiHdm0aVjpTe94849BDQGzuG5uabsaBPcJZuHxvGpKMUkRZl6j8y5rs2mMN9+l3uzm4dT5tz+Xur3WurZjqmKdMLJwE/qd6PlbXMiqvyvrFEfwdDghzRqFZL9y5R4YTdfCROWrOvDA+gmfrzRXl6NiozK0q7l2ITKTrK9eZzI+zZ7KqRwe4S5Kn4CVtpihQIKdNTk6ZV3WcP6H7k6e7u+4ngCVnyZYS3+MvIcxq2k+1GcbPPKx380dQc5GV9Phs746Ln+mQkaoX3kV0SKtdB9dJT8tzFIK6qUVyXp6Mx4xy+Ry1UTQemNWWmPTLTGqNwhn9SJeKI090dNI3nSNYjS8DFd1cB1HkuaOp8YiEEG97cooXDB5cvHT+juyfmc2HjmRdoMevkw2U+emoMdw5v559f0XM+BVBWNZblCVR5hZkJGYt0NZi/9QVk/jVMzh9N/z17DAM5mrVgwDmyAKrteR075e03NyiUtut18eT8valO0wvxM1PIJ5k911CKCk19PRaapU21ErfAUHsCFBcZetwlnLLu5ml7ybZdwwa/4HlNnHgjnvgVAafzFNBI029ugeAjzfi8JQk06JNHI15/veESLXDKgPRSQ7uN8neMCo9ELJXYYQnN8ppM05FORqiBrqs1ODu9nRliTpwosWeDMUIoNMZEz8QkRAfcW4azh57HY/j0VM9/LyZ3A9qSNJ8+vyo4vLIRcEKIDJ31SgXiDKvJTR2TMvrMRM/8gwDKFEn+c5Tnq3han047ybWGtos6UzWAltwxwnrRsLPqtYlDwyQG2Bb0Kj1athFOsqRZbHV5slMneUZx+sP/pE+Pn5rQYbXukrdj6ieVOn+q1OHx4tnfyPQ9S+vz+Uzk5l79djd384MmcKLwbDMJjzHgAdA5V+COms2jGRpNvRWiKClWbdVBcyWtI8Lw3nG6v0eeip5uhlPVUyHBQ56cIvW3P9RhlUqFP5Enq1CeO/P6zFTyqTzXlEnG9P+Q57d7w1lttHQ/dTmYsX0+5ZT85sP20XDZHXWR7FesRI0539UsNjaE02CGe0vO0+UpnnJ20NwJPEfGs6POHXGyAwJXh52AZ4VGf6chH2WHRrl5ZpKPsqfMH3a83ohSZkPNr2qDVHdQwSCnK2gybNLbLysfwHOCsc9y3AVFtDEl1TYxCqd4mjhvizwL0ZMeL56OcxTy0ZxxZUaciJzieQKeejWel+JZetwes3uu7Mzr0+VZpvWRP2nen+1x+6DRo/d1bP7IJi5x1rfqR0P8Tdy7Wk5GbbBAUxj5Ce9qAaenelX35FlQp/4diVPfMXoSp/s7fifU8Mzqf0uedeIE0DrLejj8TX8jN3HPb9cULTt6S07sb9ZnuKR99+XwgkFxNUZiUDCboRDk7OFoe+u3zQ+nTE5I92rfqcfeQYkPjkSlCyDacJJRnxGngiv5WXK37G48FT0jTqmzjnwe/Jw0t05OwJNVPVrLrs/yAs2nIrcEpr++TqCFO7DoIkOeVTWUpmhBLqfG82qIhNuv//Xn5uXM5j3LMXiCAhslOjLJdlRCGc3dgNMOoM5TOBkuWSAQqHAGnks6+2CBcTsSu+Ug2RZg4tt5NptJ/Mwl+Jemb2kXJJHnW0Kmad8XvBE9L2pt3F/BwvDVdCl9Xs2mTO43lT/+rBwNoCHkDMRPphCenMYrBlBwafh4iTDFU+r0vpLxDA/8k7vbi6KneM5h+H0pT1ab8nN6/CaB4i0CAI/x2+X0+WKLLrECzGRR4d3reGq72/blP+1WG/Di4dXHj1eckxGfnugxuNn6a6s/4F/QNcETODvgORk5T+I0eYYRktOM3i5NAl88H/EI789ggT9w77sJniw4T0CyQmkSqMomS0k/1p+xkbw+eL7LiDOZYb7NEDPjgxR5Y/P89gDTovn+x+2PM0RJrdW1ONqd9re2LoedSU9bhnB3lKbU71I821bgH1ufyfeWYmInTi81W8g+ESlzkXeT5wN6e3Nbt9wrwLh5Yjw3NwX0xHgW9Zm/TVhGnxuRqGsyyjL+KC9PncfI8tsdr28dHkOeyxn+UPvDwXwMUg2UQkA8aNb7w26vxRoJ3snWZUfDyS78nT7bagCnaNI8GVW1mGzpKnzoAc9CkefIe8k23TxFbhfPOnluMRFtAehvAAqPd30+M2/PNkLWyzPKNDr5G43XtvB725OrvqMpv3eA1D446m83T2fLzmhH3Q0sKE+utrdnE8HlrJeSIgQ2nICWfdFweW5X5o9Bj6HTcfZWJLjybp2JU6mdOHFrRjxZKm0RpV42yRPGGhTyLJzf1x0zXz62b2S6x6XVmW7R/QNx3oVPNjg7PG53x9Or/vbNbDEcr2pAQpHV2uPT/v4Y403d7aLLh+eYC+cKfFo7vokjntdP9xiE0ysjylFAZd34JEXwZG5vWhMEhvgpXwdO8aTP/4228v5GIs9n1fkKeaajorcZjuvf/lH/WLddDq9r6H8sUK8MxyiEGsf+jIp25+pq3jrAwaeqaRoxdGA8eFJj8nZOP2ju7c5T8nzsI1HYNjQKhyLhlLPT25tNw6lSHukIvk7bJFCkJ9RL4JnIMzuCK+LMyjMzd3t1Ef/zN36cyXf0O0XittpDO2kfV06XXeyDVB93YUfzxRRqhRtrGWE0IUvj2QUWtkQ1lpc94jwo8KSzU9ji2aWoFTglc+6FzXBmkDxRzKN6R37nl3g60JP6NvqfiT4ZPcvIs8RJMxJ8BcpfYna/4yPQcWkLkY+wWmgnDU8vF1245Q70pgkGhkjd4aLTpj9f8NCoG6wdKpRkugiePBjd7mqtNvBUHjpQbjdv99IIvwY1F2E6TjsWzTAf5q4S/b1C195U6BRMGdTJ6Hnz8TTRZ06eafhMKeak+WpT+LwDzvvfr21H4WJnNB/yKR491ObV20NefdeUotWZznsH5HsMtXF+PAVOYME3gSKwurdTn6Zq6ZLfxtNwkid/pfKZNZR8xnF1yj15c/ctmXC+f/9+k/Kku9fBE0ugG2lyLx8+aXl5vkWg0qcMPB9QJWGN7hZ7CbtVzDbGI/zhcUq83j0/411YKqyBoDpuXFCuVRVPACEk5KnOnQdPLdhpziycBCp9etMDDBUmZP7xB4yd5MlFOntilR2MANB9/Td8nVTYDelzn6FE9LRSPn8zM9+Lf4tAf+EXefJR6PeHuGBw9ul8r4ZCqM2hEDLK4dkXpHvy477iuLOq7okn5DlCcpfDQqCOU8Ez8jSczjOqk9rsyJSFzALOU+BEJqQ8zZDY378HTfAEVOQievsR922S4Pncfk1ZfaYNkPIM/csVjTMm5kV86Pnnz2fXDWTpW9zdOOOjFlA/feJlLq7Pg1r7QuP1A63G2ZKMTeQN5+2eryzb44WsHSqiwhlbnPyW6fGzMG2DQJ16SN0HzDaQiohUzv6XiBLpyd+Gk/tg6+WZ3ZpNndyb8a+avJFhqk8ejzgw+nqPR4WcHyNo7p3zEw/4jP57Vvfi0u5BhLVrHsiR3dusGW31qMsDOOdywPm4EgrqNvuwllPscLJy981ES0Fh0Ru2sEco6uCuwxETO3iCJnhKnfUP2rCz+4bFo3sZoDJxzOzOJvHzLfrUNXfWTOgs7VYPrg/PwBG1/f1nfFLH199vrdocMQzgWZV+F8kMZ/iWlhssF7k6iV2DdoKMHw7l6ZxriWF1Vmuzspnh5CrIth6qZnUSYBpNBM86KnnSTO/HGdRiW+m5xcQIMlfCi2pplOnf8J487QHOvXf+5f7h7tudPt/o4f7T4cVOgNHDVh2m6w22RtSex0mTk3hNjS14Gk6/XChdCqimmcAJG8vNmc99sZtAB5KnbsTZZXfUn+QpZzdvV/PzEs6+mNE2soP3/GFTREtVnu/W0szoEz9L/vo//PDl8PDs6/c7oIVewZOPZjhoWdjr8jQJzfVWfLTP7GqonfexNhuAk3fitVYbc7t9UgxfWiOY8/SNBaMpoOTJGYBqTxiAWsG0afokUA47IE/wVIjYWNf1zNfxeE2DJyxq9D/pUwqFoXD6+unL/R0O83pQEPz969lutTWZgOCEPLUFi/fLxeJofzGYsi/KOYdyEXnClIuCPEUzrC4EnL6hFLfndB2TySjwRL1EfcLdFTxheCXPOs6ZulxsPF2Zz82N0pPmuxflGYftZdWZ6jOdeGBO/Pn7t19/fnzyJ3AeNyYYE7H1oeFbr9clTt75PZ1N0aJn96kam0paXAwfvhNjp+P0j4fiUEozPr9kZMtKcHhdNOxLniehkCdM/ECphMzO4FnQp0CWykVxCpE+0StQKJ3W8/r8xRXKxPTPw4Ph/Dk8WBGnpV5nLFUpVI4m7ClN95uXNxQo5hxtG2Y6zxA7iZNhVzxb7MCHXOTezvm6f7gJ0zXMrxphd1byfMoz4PxoYv5Rn2mCN5gFfb58Mkr2ud+mz19gUaRogf5L25kwpHFFUdiumgJqIyJaQUNAIgRZA8hOapN0+f+/p985b0ZqJyO0aZ+ixHTL6Xl3PffOz/xnucXJVUcPhqLhnts+JX1RFT4YP4olLa6e8MQGSFmjFdVhsjAmp9gZSZMgpwc5dB7LcsH7eP1KRQOuy2jFvIc5EIUEehrP6LIXzU7TU0rweYKf26ryBjMlM9pdzLnhZZKfPjHYxhM4dTTH9YYUXFJa+pB4c3wH1ztkM73xoI4IczCeNdcynhGeHLU34t38xlGnwwmlZx0bT112R0fxvBtYBopyShUCelXm/xIoEceHy244jf5e3M5Mevc0b/Rc4Llrw+jbVP8eHwO7qSsrW7Le5s51ZGWWszBOrXumfrw2dOqXELYT2u1BWsOHdaAO462feexcxng+bpUXnKOwDARGxpwDT9Mztp2PFc+yHXsIPGM8tzj38D1Gcws9/XU7PUEtjZ8bLHWMp/pHP4cNgA9UQa2aEZ7NeaVLAXepP4xEdgSesLWH9bxvKAEKWvqwPdHLF2L9TCeGM/btku6EQMn7K0gdo+EXwIzxxHpWTU4lRC6JRHEnNZAYzxB/pmmWUoeMIGeqwNPnn/NzQ8u/4hvR8xeOAvlP+KHrRufqmvCdvH1W7w+LreVYf5jFQksamugcuP3tDjQkOYLHxvN1vMXCLp2k/hHWe9WO7d6dYxJqRrtsxM4wWcgxnCO59qxLnUScQfjZd6Ak8g6MJqeXVv+ElontqAqWtom54+/P0zNhPwOQG1Zu0k75dA77fSUPIeq8PXv3+hxfVOpnpbEZK4+RpBZQaCMvFMqrRWyPZNms2UncGYVIjciIQlehqjaHHwYXa+dqscPW8DugCk/glGcXmmpkSvGpZmZkFxQJOD/VfoaEYmlLJSRVgcz5cn76nX/qby7b/aYnFFJXegU5183J7ev31x0ac9VsIVPrYTa5qqogwzHjyuy2dLSSfYYHxViXHKynpQ3C07DyVedeq1fAkw20ghMVvOD0WfpllY2LIDh0ST0pNFnuaeBD4B9n+3sJej4nV0p4o8TWuS0EBaQEPxPOKEbYZWV5IRadE5O/u1LH7P78jkZnc1zLnhzml4jsNASsGp1DHqJSMqOGG+5CU57daLoQLzQB98ohaCywMUGDtFN6hX7sjHzqvC1ZAyZyUoWXUr4Kmh4yrMRwBsPw1H6m7JxNBEt+JVvEX8LPb5+eR8oG8/kr1YyfyByvFX13Lu/eXVOTr5dzJ7lKc9KbL9zJXDsIXTSVLhGpe7mAdZ6bx2PreN2fcfUPgsOPVy3VKXqoUgSMOmFFEMUQR/F4IoWbYaVizU4rREoynpGh5extoSeQPpmBS/PuSXLuzs/YDX0OT6ohDyTfr/HpV1i7+/PXP727mqx6FdLo4gLpYm9FymkNseY8VAdpGE4vo3eoFCuUBKL8vN+BMGeDp4Kvim57xXBGWRJfWo6TFCip51bz6ba6nigOLLYzih9hnOSn4UztEn9+OZXOP/fvAcbk+WsCD55vXr58RzR5Du0a9Il/OltLUlcd9sfrdXOlNF6VounE9/62IbjOlLmLnaKnZ2HMRV12s/PScEbjhb7uPa42vj04bLJLDszU3j+FSRyT02By0b3LDnrGmVEc96fs/wTG56Zi4m/J3Wh+v1PV+K903IRJCTy577+RsL8DFGByJ/3uttkbq0FWn9y2nb7LAQFKNCJ364a7hbPGkxM5I/NTxtXsdMcj2umrzAjfPgJAGUxO/AgzR51K1IETLGM8IafxjDJ3X3gnpgn/nr78CzhT1CD/jp8xioljIB+XhVCg+8jgoEBRr/LuqtkLiWGP7nrYXIdrkWmVtEZlTY9t+/iJ+I9PwxeA/m52BgtqODGeOCPBZJB8zaUGsXxBYIqccvwq1IfddfFG5brvu8npubkNP3exnnZHCTXIhqe70/NvQG6g3WxnCVJahLR//PrKe+Y99na5no9DcjjxM90kp7m6NTfbU7jpaS6L6fR5RxAa5oZht0WznlCAnNHAUSdeMA+eIOQNycIqDA6Trwe5wrDvlD56BIqRdE20FC9okV+S9wLPjQFNjhHvzM9/7t9jDD/r3eN/gXtIv/zKyKaUXw2miTqLwcxa79XULXMR9B47qqb7/eMYh+p0fIqfxEt2QdHSWS0e0F8Tb/CeAqfoabqBZkCqFsa1si4mZfPFkfMge6kwScznqBb9NFrIJrhT5o9SHhqR2EX35CPQczs3Az8T3IyxjQ2nwIxWJTMVp2WK2kPbwKN734yP5N2INh2F4piEmYXdwGkpsneMCE/oyTGeQjb4I28KUZEKOEuin/FU5diyGmIkV+aAs1U3B70AMHZH8vCCMn5CSgD7c/49ba3n07z9i9w7J4WfsSOKMwgEtWHZ51nD2WFzpqYupAIFndn0frJQiYkeh3B6LMvrU+7dvifCU/J4TyRtFnh7iAmPDp4ON0EzTtVzBbpuhUy+VlmO3aXTjbY7sq/qVqIwNXDT2yvT+KmTnDRKunZ/JDbWbOUnx18SuD7ZxRBZcO/yfvv+Uv7mvr3oKRFCuViBKwwZziZTsB2PSY3scJiKeRw8wHo+CmbjXjt4msZ4IrFzhXgu4Cl6Cs1asQycOcA8PTkt5ICzPnc9EDxLdkjenow4UZYhWIkoJgDkvZieu+fuKezcmaDGLYWfT7rvOny1eB6FiMtrzTHFJOpzc3ZwjorlYmkx8RjnmNRICnCXlTxP6Fg+yovU0DQfFQHEV18ye9JMFeTCZs+RXkWKHcBZAE5OLlOulcYL5/eEVKAZQtCi3f3IaJqgMNuKxs/w8/mmplH8PDt3JGcqP/c+i+f3frjEwx1SRFLKXn1M2Xg+GBENDm/Ko3mTKxvKnu2OfY0XUweBfFwFccLu0F146idqFeuyEyZYe2yrqNNVSwM4TwscUsxyd6DZhyZE1mwcp8gh41TcpPafj6v6om7f9fkdRrdS2MnHv6AnZzs/454WB4K+uaNWR1NiUJdUuD4a5ovlzE1/sJi2wXiOh5pKYAN+RJ/xI06sqA94BnoKz/hte03a6tr+uF4R2bi3FTn2m0xBx56o2q0roSWDwsBQFtHxPgY9cGJkavrViphb5L6n0fObL+dnOj31LZ2fX23w/Nkq+j/e3F3himYzZYOYun4+X83mivXZpK0JmkFvtWqDFL6HCx8Jwf2sA+F5FfC0UEmLcOK2JiVP4MR8MGkglw3LwNPGk6OwszqqjxcTGn7Y61KIoXSoLzmLD07IhpyjByVU93Zqw228UZKe/wM/o2d02HgKT1aCvb27ms7RKtRJs7vzEuKso0J+sJqu24tStVaBRDCPIN0Pnoi8eqh6xpW6sBpE/PRQjS57z3DO5m6v4+BxNHGHnUN1rluazyZCHsy7QxXmLVgcgpwKpRXfc7knfuBVN+W9RKcjTbGU3tPcmZ8pMCa9e2w97Yx+1lTCy7urRX3Qw4jhiXv1bjFfyFaaTBYyLcMfm54mxlPSpMt4CgZDao46t2xw4tamC57cYG+kU2qwdN6jaJzI0+MwQhQVojw7Q0wicr1VpcoElhs8HdeHay6LGjKAvS2b0Hewnrurvz6L49PI3nhGU3GGM+D54dXZ7bgkPFuVAX3IUi2b7feAc71qlautXpNUEz5SQlK1U7ieC1mmtTYzHA4+xdGgCJkJTo6KK760OKVo3DXv8tywBjtVqm4u+Etq5aNoEo5GHPBRAPUuVZAVmN4iQmQgfu7YhUv2jHZZ/PPtTvxMOCP7IT+IS+ePh5+u13WMGa5jOV71evVavlpvKuKZ96uVpR+QcKa1Io8abl38MHawGTCCnoIT/+Kako9rVdGSecIl8DSgYmdFUhMbBgbshzeaLAzTxPF+oJrKy4GY+WgsaS91/CBF7bmX5Gf0+aX83OBpOHFDDpV+V6eYcH5SwZoNlhi8yWxR6TPE2YRms1at1GPW0AOvDTkkNzLUQLIixIIloRng1OavKcfKxoAolSXvRdUXl0FgmkhYa9XnmOWJMqhStwqcAMoxnlXvBwJVwS8ggdrnKT9TXNGO/NzOzvQ086n59AgsB2qqV8ws7LvGrNKq92ad23WnvRjX8EFAK+bUe9Mr7rVGZ+5548zHM1zgybFgiSP5tx37VM07RZ62n9CTaCdae87tNeE0X1SldkQgD4+5ExSVsz668oGejkSNPcfznDr5JD+T9Ix9e6pz5812IXeM5BZ6hlRTcApLXuInirrzSW/ZW7XlYqarSrUvLYMbur2p00wKH52GbWVDTARfwxm1iUGS5N8y+RBNei2qb7vyRKeRvABJGEFPlZS47spHieNdVD6K5wpNz3CqnoTnN/07fArP7fxMd+7+SEczGXem85OfBTg5AU4EyRzh+fDqjKZmu3FG3Y6JI4Y4iZj6FeUuUtc0Qlvo+kxRkpPL62jeVWWPCE9PwImcGoMZB5lOgLPmUjyQYg9tPQGn2sXx9dyUr6n5bsR8vIxBHOUAp9FMwTNRRt4pN+L7P+dn8pcbelroDYx/BEB51hH7p0mQLn96iW5+sirVWl0u4LDSm8C6xhUQXl7xeu2mENZS6k8QtcZGeHLTY+XCROycBzU3oZLdutx0jZfICSjyPPmq7KcLeX37G93np3j6skNZ29UY7RT7mV74TOqVtqtAYvi22097vei+M6etaQThyeMlWED97oJJpLvGbNzvzmtkg8U5JSWtVAPKc0CEnWGk6ByiSr907UdJ3toZRX1MzkwVEFJ+Dm2TCM5ubeSSvHDLFnJZ/FHFFU3vXxGgPrzjhGcVD2Gttd86tp/Cc2vo+dxDy7ZW6Tbgft5+puNpBRh4+r6jU3x7wUjCrx/eXs9IiEqDci5brqxuLzmMwLtJLGPJBbdowfAqHLV8lpduvCfgCCY5XoPFXcZwhkwRghZ129V8y50WMkflvhx+t18eyo0/xbMoeiruN5aq7OXitRdP8Uz37rwSxvO/52cUlYGnknbj6UNLDpEIgzKfLjrLwXBYquXyN6NZ59xL6W61QwVn5J6l6h2GU8KFIK4JuVG0ha7ntq756RnsvuIeoLQ9BCGEsienOUXzHupAC0LOZBcV8FT6bpGIr3ruVIUo4b+57zsU5p8zn3z9V/x8/r47awdJ33kuPIBq/OjhetbrH9VamdN8sTRhw4WuNqZxzRzxFd+hoeCjVnwFnG4auR5ieirHRJJo2THmc1kBL+eNmsR2emN5Z+Hk+FSlJZtTfrem3EcBpgloVOXTzcvTEwCVIpRc1I5sLwXOhHdPped29TFnJ34a0Pi+OzUCSTkl7bsAT+YO37fnvepRq3pQ7hIocYu58Q1vTmlI3bSWltttoivffPjr1DPaS2U8S+SrYRBmRJFdxXWLO1VFBiPhCUIWg1ilpNWU/TL4AacQjT0P3MwZTwBVsu9UFDxTndGX0/NRDL8bPzmPeOo4ZuKKA+kn8fOBsdjzxWqORTvNVepKi9a31wzKht3JtxOax2KnZJ2CWXCGAlOwn+2p6p0+1iK3YCcxrFxSzc4lE1xLCNqVpFOSw1sRzcer6oAVJjoCMJgcvoqeQMnJJvgZSz6T1jPp3VMRfaoC2Uvy81k8HTDFMT3M5LL/+vGtJ4jOGOuol7v5k9Z8Dp7N1f3V/WQiad2UXhDr6qS9AbgOpRFyJMFptYNTTcGp6STH8URCalf4qVthEttDw7rVsTOXON5NkGIUKRkxQXcjn+VzfCx6ZkNBSmdvyzJ04NyybzatyrmVn9vx9DYW0NTKZBXcX1+37xfc0ewQOOer1bLXns7oxHF9m1OyeWXnnp5pnN+2kSkbTJwT9OUZPBJ1S9zYU5guBbcmghUSycVXqW5yactD6xEd0g/7WFY5JcEbAncdOEojGSOrI1MLkJ6G95e99PmYZOoOejui+ZcvSfuZjubf8CTZxHbCTZ4dBSigc99ednvdYX0JsRaD1lL5+5JLOQeoiWpr3Hj1MO+ZnmuESrKGuKGnVi3z16gQEmeZsFNwevatWuaKW0BnsScnL+PZkrQBmG0cnVYK1EwBZh4eHhwcHhMLYHN5cXKcvZRsM3WT704zmk8GMXfmp+HkRG3Nb3758MkLWX46w8OsxlOizHuW2UxGlXm9VVouq/0WvKr1meYfNGlgSCRC6CRI21LRe7IQbNuC04urp3RHegBKiUMV5CBK9BCCFyvJYmowG+i49kHQ3S2qeKcTwemI8/j48AA4hWeB46jJfuypP0qfjkkVhKTzMzah/4Sf8RCsy8mf3jBS/AE4tTthvgTP2/WiNGmWBi0wGHTLfaUzfJb7vanKmlr4ianUJlXoqZaRq/F4fWAUO+WSegs3NCMNkmVJLi0BaberN+p4eAYbNCmIlrM6j7Yz64jqgCN6gmd0TvQu93f7mZzVfDZxFwLbJ99256cBDdES8efHl0Twb366vJ3NJrPlDMZ1prPebXPZqgFoLZ8npi4jxM7363SPoOS6jZsXLX3vnWUSdqozrDlu0KSWOYefYUdApE2ohCvPW4Hb8s3XhgBL7VpFxaQxoKYnaJqc+/uBoOHYMeGa9p4vzBvOVElIekE+UTxO8jKdog6VyN/fvHz49eN70OF5pauxOm6dyXxCAy7fBYIbB9HEORTSF/yWNN/3DRdEMKGA6UOS2WGJ4LgHnKwXU14ULelWXNnvxqo59zf5MioSZeKTqIZwcO0ZnZigoIlq5BAsfUA1BhSi+tIn73vSGaV3NZ+N5/39byKbbaDG5XmHSm8uXr29aEzXE6SI+GYEiutZfTKbV7OtwaiqBjn0HHYH46as5vqqc0+7w3G8x+BsSGltCE4cO+aA7qiUD4QDqBPl07HApqeFCZG4G19OoKS9t+rBkZqDYiCodQ5w80U4gaDy8ToK7bEET/iZTDVT+enPZ+lp7P4pP+N+nJJNrvr7i/Me0rn726YG0aeNab0+q7dOqzRvc4788sPuWLo6Ndij5qYLdh3CJZGUlKmD4EGF4SY6EkrEXmYxaCmZDNe6ZSWnL7dHNAnkKS0hODY7T04K2ejorp8cH+y/+O67F9/xMj1D0ARLwRN3BJ6pjeKw1iJ9TnOLdtbsTNjPnW6883fwRB/XpMnRXLfH+I75urGAN/3hYZHq58n+wUkO0zmYNi4ljr06I1cXnpYmiZbaQqeVa1PFnZpAnpNqasgT4pG2g52dTjd+5KNdUd7LQPTXLVv9mxxuRuG6CYojgp37L14A5QvjeagDpMROvu678TOZvG8XIf9jfm7igEhsw6M63jByVO+3Fu32XE+0Xl2t65TJMsfHR/qjfbcPO2ulVSPaO3nmmU1132Bks+3DII0EsxwUjkzLohsjL5IQDi6qrOkRA6iqF6bY1WIu+xyJbaV4k4N7BVlPfQrbY5lOEPULdj66eaxoqDSl8DORayZyo+1zMUmp7HY8/TaoklX0vGuPivXpdDaCR/Xpfa+fPzo9+eHg5KCQPd0/uWGFf1Pjh8hqKM95SKuhKWxWrmluWJ/r9SSCszdgdwP1kJGsJTHSEOw8hIkZHVoVcqMaUbnYrSxhZ6V/lCscHp8KSo6oyZFbj82n3vPFPsm5/BN/tK0Ukkjctw4Y/RN++h+5wdOrGH758PGu3arNWJhKyWw0azdL5aPTFy9+/PG7F7mbk+NMuUu/41IDr1esTG0olu+0LedY0CbSOJKUR6vezOPHYyYGCDwtMcSAFsPS43gzvxZ+heZln9s+G/OAALIggJI7UowElL7ZXPUffvgOOKMjNKGn4NTZS9tKmUg1U54LlY7r7vw0ngbU7yOV989/fLg4X0wuz9bjVnVYWUwWpWHuux9/+PHHH/czR4c54CTePEOaeE7g2SHd9D4R7jdQ0iRaScjl1VRjZeweF65w0bWKpkK908aynPdlDgsXwBN6yheVBKcZx+84RAqhEXgC5w+yngYTOE+iE4L6JD/TZ90DlDvy01juys9oAMHvI/9uPBnk+unt+6tJnR2/PSSD+UPQ5BzkTg6z5dLknk2+0PNW17q5mEQrJv2VAL5N2jmea/aXCMlV+Yq6mC1CoZoaF66/KRe3L+EcKVbit+tS19gXgSUghthdiB0fmJ6c/U2KdBIX7jh7T8azt9jP3RfKx9jtTk/+NXsb+RLh0u+okolAPyJdapf6+NxZb5Dd/05w/nBw/OK7Qrmnfgf76DqU7CbI6pmjWUlbD0Uxl00C/OkMECGm8QQlOZ6aZPLs9gsVDvA6xkUHPN3WrKilWSbU9JHZ3MejH+gvKRhPjs1n5NxjJBWGJviZSs+93TrEO+eWPo82NgTxIBonnJSVfvkNA8pWMONZRcW+nHUzB0KTz/2D45PyeN2QH2o0CVGJ18eLHgPG0QLPleTKWFLFPXUA9cSWGpg16h/ei6oAPQNcuBWBxc0mfrwpjqygj8oeJqQQ3D90NHQCths8gVoJPKAHeuoXezuYz2RE/1/RU3zc4KkrEo0c/eE9ddSRP3z6eHG9LuXzLVSz+cLhj+Hss8i0u2hcqiC37pH0NCmHzKY9iYkFJxxFv4BPmrBFqLQMom6vnGyVPFxkiUzuJGSO4MBxW60qrMtOLl3k9P0GzhPbUW7+dzqGEzANJ0dwuvkR+ffta5Z2HMt+IgZJATFlMNtlEGloHSuxQuDjR+beP314ePXutt5HylYZDQv8cfzHy/SH5dpCi6xu24sKEwP2RRwtA5nyVpvS2ySqkyUrb+DvDMl9n0UAarMPGeDQbSf7ia7sqTPG40LWMZQqxyboKWjK+yh1wP8rcY/ZGbw6IBpPIRnmazb+PWC6jZ87+fdvd6dnTNAw6+42MYYTZnIeWPWpzQyvzihpDErj+ShzXO4fHRayN916rV9Z61Ht03m3Wy+NV+v2bdvV4vHKOyulVCI3GpfqGqbhtncl/qiO0NRUj47cGgah4+CYhStvCxIlxIoPfhc4wfPFoXIkkfXQwTxoytwYTRB0C49jp5bZ4Jmk52eeI7G1SOePBIrbwyT/XbHMRhcdPNmSzvZUlAxsrThnOLNTP6q1p8N8jTGZeq07WGtBYrOEjGlGik+JDifvyS6E9kALO6e9cUkieemaNX1BoYMvFPr0gB+cEeFluMWH3Gz+P6EiPypjCzimo/P0g5PIdjqAD6bTaBaiyrxNge+77We6DCweft3JJX37L/i5KeL7F0SdoGk4H7jub9++fPlW+8AuWChwzSjsojQ9a+dH9f6IVQrdBaupue0obBdtjQ7ifqZjKkgeRJwsVn5MwqAnoSfdTNfhK+FxUECmLDKAATlfvBCexxniJfOTl+GUY5fpDE35DZ667FiAsD7Z9ATO4JYS9jPdvW8Zct+Zn0/mN6N/XrjvoPmJXb4+QPpW56XXoV68e3/xE9f+7HrRHw8YVekPB6vOuQvMs2YHRRhwtqe9ucubzGQQf06489bHzxZEoYShWgUSlNneVAMUho0s0mYUC3jDMaYIP7jchpOMM6rTRcmmLjv4hbTeJdHoOD9KaW2mmM9n7/ru/Nz7G6AccVNgolR6g07pgxQ22E+2+b8E05+E5x2FpHar3hxUpWldgif8JIzvXGoWcdKjLqdCkruYqwXvANuj3TPvnxkE4YL9DXDaTpKWOybnC1ffBWorG1xJ4nCzgZmY/yk9T3M6Zqf5yWdkQPe2mM+UtuYX2s+noHsNgzQ1frIEALK/286dj7cRnK9Z3PsOFs76i2lFD8upjKdSKtAchp235Jg90m5yIj+/fBJWUILkQllmT2egXmWti5YTHKyGMwsPlDFiQJWpl4e0kAj0lRuRqrvd5jA+/NLBlegpxwMvhSXHQHIM8V6Cns9KPo3mF/AzESnFGfsvn/Dn2EoO5hJMuerCk19xWIauqTeW0C4WjWmRxLDG1nl2YGjfr7rDImBrWV9Mdc/pFVvqOSPAH1ekrcHr17tgqdtuPLMWx9nJHBo59dKGtQFlpWGcg55EsbrehOJSVABxj3hz0x3NC0udvZTkfRN8PtnEkHLnv/3H/v1vuH/zh++33fkrLaq4ANi3D2+1TvEdvwybqS4puF+dzcqUMpYT1T0bCjTxOzOSpyVN+Sa6+JX2zocHyElNh3enSjeuuC7HWirJQLjPobPmuJOLfQwsWXVOBkWMQc7HQbqcv6F0sdNwgqcdu8kJ2sAJX3WM55aBo13XLJmfRim5xSK9BPJYUfoGCfIr2kUfYelbJq3DVu63uuvvdbyw37sWzs5npVG51ryVvnPt1Z0U8krzhVbyLYAQyTKH+Elaz5lXrQzqnntjCUhVpbl4U4CZJTeuC5ytVlR2YsFFBI2sIl7fEHL0LarPGU9jGvx6WLgYXH247wk00yvzz+XuhnXnCrLob0Tl2dmA/vr6jhXz0PTlK4F4Icsptvo98iXvENHqz1WlOL9XW3gtyRwL1hYMHFKXC6ESZTvp7VSXB9HpQr12ekXwrlzUd94IT0efys+FEHrYKuKb0RDWBkFSsIzK3iNANx1N0dZlPB0hbyGYpxTpd6SWktNVIXz5cn46QBKgHDb6fni4uGwwaX3xUlH8S1b9cOUxoSKod3TDT56IcC1Mp4PlVGIFreWmAoIGp1ZnIp6WJGTszQBYT+kSmET140osobmhFi88zaQsyfuJ4XR5HdtZoaNv5QeWFKOgvOfY7pxjbkbIHtsM6LoLzDBCE8lHYn6C5lNMY1nIBsmEe/8ifvq3PKdpSL9hgIOFFpdneJ1XDxztC7l7H+P53qu+7qTnPtModgOXjmdXhr4az1eTuaaAxwN1fahy0laWQKTpMaPmuKQGURcvhL5LTaKg8FCkJDj3XXQv5G6qpKHZU6WUh4UMAAE5+WZcSgp4xs0NG1YH85Fq3pOGWScIMT93oueWXNOfKfRMI6gqIF998wmRkhf8MHLgshLwvvvplRIkEfM1OGtxGtXOOzZVvdbC+QaSZBpvyzpCzi5B/IDbPtGy+DH0JPOUPoxYlEnB6MFaVWu9hjKQCuZzTtt1e40nVoAFg2LgSeamfKOYE8Ma4Rm7Iof+oahErLoZoPH8h81n0n4m0TQ9n5WAxQ3NRIf42fM4CceTicEPbwQzP35A4y2JovMi0JRz4p4DZDCfr+WatFD1XjLvGbe5SpNzoZUXk9Wc0VYGrFWY11mJtcg+wuhGje/iZ9zgMKJu9pI85mDd/osfvjvAlOZVnD89JDsK1aQDqb9sOn1kbkNqKmGOwDQ9H/WfSdXnEw3tbn0jQ5rMg7aLa1QD0dpuwHtQWvTHL5qPIU3itsNN0ISa51dn7KwxMWVM358hXFyrwFmSxx6Ntd271+NVL5GwM8Tqbhy+nXU+g1YQzPYrJXl50UrG0VmPOkNmnv34Dz/8+OLEXTmM62FU6QweHdA37Q3IKSyjA5xBGmrG/it+8j0JZvTanaBxKE+58w8I+SakmcjlXa57sFfCdtpugqe3Jb6+E5zsp8UX4XLGNbLHcmvRdNutrlr8AIUSgZKaSNIpuRDSHZYZpgvppp+S60xdVz4KiFRJAk3oSUlZrqXAz0NhHgTN4Uih6NAqPKE8EJNzE8mT9Xd+3n6m60LSCcprR8kXr81bAwpBqSepEvJBu31BV9WQi7AQNSyuw3y+5sq7LkLHSM+akHEsE5r3PfyyrJAiIXgf9AQuRTvyzDkgl+pKIYsVrz4t6X+AApw8gmRlldDzUEHod270mZ4494JrdYbTrTbjGZyR0BxaxWwsgZATTXCCbJKfn9Ukp6Wau/Mz6aQ2AvxvvPQPDLnx0ne7KAKehExyRpdaSMedZ+JN/gjj2Z4oKeL+ljOHB7lhtaKJ//kcz9OyaIHJYNQ1hKNSIBMjDfVzrT8coRYFEI9eHrl1STZOkLQvOH94cQycHH5gdmIHlGwWXEsOhtN/s2eVsMQG01c/72UD+Lrn7Geqbunf8jNuvsVHPU2Ot4DRHX6g+0ZVRFdfD4kkdSeZ96OioCU0JZwC3Gs6cKylBb2+MFF8k63jd+pj8htpaaSMWyJTqkPUwbJVzUPG6Glk5D8AIJmN3jh7P1UJFHrquusfZR1d4dD6JDfcj1WGD5JEwallLHRfwNOieh/wjBWNu/Fzy5NjduTn3/d7BimyW3B8pwcHPz/hioCTbOgnvBEfF3hzh0thW7cW1lx2Zlz0vOOVzEmmfFPWGj/5I1nIEekluSd89EKv6g0zW15G46XnQCBhtzqYHnlRKnQqkYJUJ4rSZQWzx9J7hVCTG15wK9hFJUt0lGYp7LQj0rE/Coian9smNpNtze383F4LMaDxFht2WnDN36qspDAJv/4Kbvp5Ebh1rZIXniz99caKWWV4IiiG3S7tdC8DGPT8pLcWHknKhRL2Uh13TXVrnc8IVWJfVk+CpaqXV/jJb1zRcLnV5RNkgIM2ymESFzzqtvFOXl0ycB3nrILWgPLjJ3imLFZLWM8vs59/r3huxAvgiQFFvUC9LnooLjmmUnbwfB8SIz/OVdtAmM9sUnRvHR2c4Im7enrUGLhard68OxroUs8hJ2gigahoM3fNIvg+TXV4xavr5YmuzwuTvHuc+0HNidZTPzk+EDnx+iYl8X4QgBS08sYLGWCkiboZf3cJxXjKuW+xnjutrQpo7lifA8aNeIETBEu/vuGEoPOO+IhQE+9jBy+prOcxqcQvijfFYubgoHA0HM2mSLhbxSpq2FklM8z3SwMQnrMLGKdeQxXeBU9JkRWAKqUsgis6RKIih5luAnNEUCAtHIEVWTvYOhOSY7fdDL025A7mpu96WNsSeBk/65Cz9+w6ht0GNgMZEwpaPtIqyJYvGEzvqxKkvvEq19kZvUdG07iGnsZWI5pAee5+Znf/O0LBw1y1xCRXD9yGfbTu43m+nM3URlTk5zwOnriI4TYUxkf9krdYOFrEl1Auvjk9PlVJhJc8EoegXd78GMZjTH1CMmShrJQj7gvbhRtO1tA7XPJTOONnR3IiPBNam8/uoN2Rn1spGiyHHVEY2uJhUfqChFZFZQ72k6D9qoHV/EnvzrTbWxRl1cqkkuHu8YdoNdeTcUsrPEbjUqnXKo6G/Wpryb0vg2G1OCJ6QrfQx7eHJ7tCSSUzRyfuWAIRSJmLVhurTFwgZ3JgpLCUF5lmaA0JS4Hp4yQzuCKQVLGJE/WOwXO3bUvbp7d4bRMoxn+732nCiIfH+Bl7Wh0ATb+PqvQQlMUWl3qm+8VL8Lw+92wW+786En4tq0dYwDohUR/CeaZAquMSgu2BNqkXKxVt5a9U80PupUJNUM9QlAPRfAZ2Cjfpt2CmjkpHx2AiRy5q6hUamadqCqs6hyMSgHATnwQ9I5ljwZV52wKOiLyXUlxKmM8Y1y/y70+WiXzN6i9JlTSkKb3SJ6aJf6UiAqQUQ8g2Lzvnr8ODszsIE28ZcfdOv9teOcMcAUBKBT4Kau0Rb7patY3+WIOuA0J32znQlOMg2FR0RKGDDxXeOTKbBzqE8b77x4bTlNVvue9WyGEc9E8RnGFPCC+1TaR3Cp2RWNOAld17jp6JZ75yvoSfm+5wlGiCKEPu6hM/cOgREyy9eZCfJ5Z/dQcl2T5J3+h+0r5i67RqSsxej7OF/qDXLTIMyPy69XDDfq2MRpT00lNaGoIZZm9wQTgN0SlbcNnSotnQk7RcAV46wnQ5VO+ihD7A6a6QVqoOHXFGw4YuRnNETv8qNI5zQSq697m5uNQnb31x/LkBNH5m/i+a5HAM794mj38Ob/TkN/HST9+4X8w67P/08yTocaJYWlaKWrqtvJLQqKrn6XT15A3ghLd6qkFmWEPwSbKNEc2eWgtnpxLUH+Dp1q9rw5EIFDz101i0IJMo/PI4MaVDRwG7nGufZqaQlXs3ytaQmJ9bZGBboyWTMYWfKYD638U37wFjJpvyHBgqufRzDXTJOdcdbCbnstOcUQGZoptZSUjXk9MpF0dLVeZQciuM7yuSrzORJWvp6YLRoDQ8UsQIlRyYhydmKt0Ows/9UGsvgIPLR/oQli4hAz4nelI+oavx9NUuuFcc+XO9jGgu4Jmwnyl7p3X8Znd+pmK62T9rieLvLigJTz8TV+cueq6B5wfBs9FGpQCO86UnN2bad9gfzTWgbVHIuE6H06sWKjW4pIIcu1BHZSL+/pDyhrrrOjQ6FDUNIaxyHh8gBUyraYLChkNaLyI6X0eK4mmlPBh6Bk709HhXuO0B3VxIpJL288nI5i78/PY5fqax1BGo19P97AcgfICgVEC0Zcm5pS45r06bcSLe0MpkE5U3AaDlRJzUI8rEmassMlgumgA6l+arrmcYMUpAmJ4rlzO5YWlZy2PnXIUjtjzJ5Ms3ak7kBGJU0uRgNUEzLiCrrGS3HfCUv+sX4bQduUtMLi0JTB2T85QjQDf2MyVaStjPL+WnkY/rnjgjj2p++gigF8rZ38eLvYTn+VRbfL0OVVs7V8BJbt7TE5/r+Zs+65HIgbR1rTewJnGpBVVF65IK/HGLg15piN/IqIcxzBeOCypdlO1LYgWNS+7RGGE8RQicgCeDS8iadzlpqFgzeCCVlfTPieQhdm/h8AZ+7tAqNo5b7SdnB37ubQjq6PMbQfoLvv3jW6kYVH2/oiLvXT+X7XlzzZni2tV/Y4gDR1StA+DIBYnhaN6qVksLkXY8WEpHxy5gbUNkI1V3OR5Bq2wYRC5nyFBvuJ2Wfdp+gqaxC8pZDxUpmHdG5F4deWle991jNZYtRGUl6OlQPrLKhtLQ7iV8Ox+Jh+nuMnFkkHYZJ4y+xRce9/4nbWei20gRRVF2O2l3bPCCAcVA8AJEFhhbjoGBBAFi/f/v4Zxb3UTBcsYgUbNlhgwol1f1tvvuIzH69XfGD3g+bRgRd75nDP8ZYiCHFdr9qMsjrPDww2d0jZid6TFmuKMPPIOE8N1Xi97yGrI8Y5q7eyfbs1oDBLZ31JtLCB7Vj3pCrtSric913cOSFV2NddH23rTM9C4T7QOwvydgbTKCZTYg5TQqa/Jx2utebDT8upfrA70sPWqt8en7ebIa0iCfTlz0QTjMHaAK9CmlTnlK0Ly+RHyOHcW38N+/e/HdzfqAMzpgqvTUv1orduo64T3y81+tprP1C6IoOsS73Vc6+6j4UanHHwmnD+egxryWqKmFPjuoQbCk7MNE8hBq02wDEYMqjJeCaArKteEA/gjPlqw9BaVG9MpyfU4bzDd4vv5y4f7WPP+7fRrCPwLbqiiqLI9vpxP3C5mRa+IoHOvP1VcwWQ/pEIrHyoG3F98yUPTw1fV8v7leYZ17uHO7u80KT/VgS+7+QMMdV6UwnXoBi5mXc293DZuLC7HYOYTxJZyd5JO4riTq+HvHtzL4ku6cjonxTSaS4DCyWrf0SHoJ23VlnPDvmnrJOId88yVDm5zn46Rz7DMVz8Zp+WuTeQkoydGnMJVk1lFLZo0MQ9fo2DCq8eUXn337DSZ3T3x59x1D19SOHIU5rK9fYJbLen//PU2P7TrqLN/j9G8zj3Cf/TnqLwDADKMca0cR9PFqj/v7/qBjmg5aAqxpGi8N/aQwkTsZ0QzVm1LVbk2yYAkgUv9t6/jq71hr+KgfYrx0Srf/ladovjTrFLbTPOS2V+IpoBaPZO9d0he+3T3t4Pnhe9TjBZQO+y1EQ8R96F1eEw6BEzOFYPYCVtK8X01pXY5qS+qMJFBXPjx8fy+lm/qdz+s64tsLZw/kfxkyVZbqcExc+Trz/xkbjuQCVx+4LRg11WUzpOUiw4dgyXembES/oYUZFHhSjcrJ747ssyF+nmufRwZ5iikfLB+nmpIzJFT6jTbcTzh2euvpaCjJ/65ryJDvfvhmtV1BpclBoBfH5M0Gt/WcIAiYxn591Zbmm1wbCMjTXrVkaHCzxx+huFx2ZzYuqRpihJMJRWKZ88Gu69EbDUohUwI4R3R4cLONwbEQ8iNZ4E1QkMJJ++ORjCOi+PdzlPvP8e8vKcuL51O5LP172kY8oe+/Y7cNJ8QsO2KzWuHq8IMWiu4UlnaH/1nRUwdbYF1BTMDgavyHzqWiNLKKmjTBPOEmteTpdL1wB2GzA07FWa1rzH3lsayLKpXkEON4Gu9tQlqoycae9YjWFMzRKSeS3zzD1vJyzfMRsD8yGZvJsGP75PuJ9P15ifnnJ+CCZ+uE5IB5yhJy5VIlg3zCmjI4dh/xbsLV3kHreLhFqeZhdyc6K1PKg8/izXSNJS5riunU5Ec399s9d5uPlvM7Zuiq/pQR9w0aDCkipyKfNnkd9uzFZbdbA22Prlsmsxy5ozavu7Z3nIbncEz4Gs3rxVxHhFMX/vJJgMkJnjm5/7HZY/s8waQ9b6KYH88aaDHPbJBomx1/RM/3V3IjXs6PTNvtFlFPgsZ5OLDumfIH8gw8gm52x8vM5tc3oxnJetXpr6cz+m6H7IuY1tV2rkUuLDvR0ZS/ITyjonIex5yi0lVvwgM6tjRvRaRrym7dTme9lB3qU1DISGUrR9FK9+83wgGl5AysMdOmXVf8k/b5sqV7BdJzRoqft9CE8K+9kqmtn3+0FqJ64q9En9DryNzpvOGJgJOZduhzX94s7r4f7eRw72aTerGiqLmvYMss1qPZd4dRt9bX3DBnQKi5XlT9RbaZuEM8ep5CaIFoaBxe6eOJa+R29wf+3LmUS0OkiRv3GSD6lDrS30+XvcjTjQnlgXOzwJjDcCwF41T2PPZLWuq8bq3wQot9npCnPCnkfb595pq3F14HxL/6RzRnBdJoPvSa30pJ/gOK8fgkIlAnD5TtH32/264RZljtr6p7uImb/rBv73w4P9xMriZzXO/NblsTI04RjOenutq7anSLmen4CZWSuOOGLFvWV1f96mp8wR1NNwPKZ7ce9Zw6sKfEWW7nuB14tFc9KAtT3uH5cljxcTO75WUfFBD5nYuSIhoqpKU4+spz5nnOkqM3XmqfiZBa8+SYGIEjoAIrwTyjhRTmGekIQ1mW55e3P3z+mbKemxFyYN+7VGd+MRxNN989bObVfDPbf7eaEaMvN2vUKW6s96C5do+BTiGEgeuMK+vu5hk+ZdHL+EBVaz+G9hcGmDr05bAz2e8reJ+DSWTUKrUUq8Gbb3eXiyn/Ssw+pb+eP2WMxjsdFknwbQUXU7ALutrnc+79/A2GIvYsoO1M9uvW5VFGJmfHEcmqI5SX7PmOLumD93lD38MhfcE8wW7aXz58++X3yHax7qjuu45odz2qoy43X+6nuHTUakzUN8ioEHZGknskoXB+s3ZSU6ISBRBsM1dy0r0Y270kc5/wpxnZHlaCAuKzLX+xHnLTeXpx7+u1eoPq1sqAIoEotIY6UPqtKCkLKJFG0z86LZ96vJPnGNHjBQgnrvyj1J8yDNK8oX06SQyisruhfskMycJMRLrdDHG42e3BZP39i2vqGH6NyznJ0A7znO4J4SFwz3ozNwhL9ISfxDfLnzOwsJCnYBVumZw9o8RdfPjFxXDQsI1xSOBCQGraVCVvrIA1c117SlF4d1dBE3aOerOSa9bJKkvzOMUtZmvF06JAUs/GPk/LpzaQtkie5d/b+tGRhSaYF08ODXdCJd5OOnHvwKSlFJJaHdRuCktK8Nstut2R7rgFhZpm3eerJD5aOlMNVJuvqHmMJv31dyTsLHeTsrSgAy/3HceM6fCVUgXNS+cse9d4Bno8g6+dTpKbsQCPi7hSw7QzBY3YBSPdqSrp5Zt9HaBb5rNlgEZhfZF5JtvGj3ieoNqcOSVzyj79+FhYPgyGNPyVV1I3QKbnB8wg/GTKaXFeVk1Zk4mJOoV5vT483LKDy6I69eB+emeI/Wzk2czqmpoxVND79Q4y2NQgh0LSdrHUG4EjVLk64ZJJESCGlVQPbBXxmzdxS6bxjZaKPZBWv2o544YzNaNtThfKsSGsWsU0gyaZrDZbAlNOAMXPn8yPxPFMwbrjIucjXbbFs82MEs4LqbVkO+9AyYH75XQHvsi657cK9work4O3B8T8DovZfFQT03BzgeRi2MNqSCy1HJBkZmsFnAv+qIchTxfzmvCHVu+I9N59RQAPVCl6diaVGVK3o9CKRx5dRmcSj04qa/u+LJFsGTksn/3Pd1OQS3nZA55hjvtn4TG0gdOxfT71RWcIgp2YPvjHZwFkTnD00jflZGyUdc9AKYXOYAlpv4xnUJz7xvVYtxARyS9BRDrHgJB8PCBm5Nch2zHvEK+QU/PdvXJ+CV2AvroCMkIgPEZKQ45n6cEzzWo0hA8HyFCQkyhaEhHacfocEyrWyK31fBrLau1I3ghm2ccVtPntKD25hhuSX8+zz3M3GJ4SsCmkbg3S6Y0/f+fxFE8GERxFwETNjtTuNJy3MP/iwZ2srhtFYmG9wBYU5wMKtKQIxC8i0UWZXY0abzSUG7SPpxV2VuO4xldpZSC/iKAn1C1dki3izGZd2niDjCytzjntwmwwTZKK7JXv722/LfVAFEVUApb4lFtumWlOmSCw2qOrKn+UuAlsXxZ/FjBPR0zn8JGFsy0naZCqWfz5M7dePfRfkLTI0JZ15CwycLvJLYoVxkwPh9zjMNXravxmaO6cN/01b9+V82xTPmlB36zPrR33qiCkCs5ysd4v9ymH1FdR+UlpUy6yhaaiNCu8UbGJNCotUMeQY3xwdJYKXwkgoIKininsE1dUJBFtVL8bImh1jn2ev8HwNL87/kgT5cLD+sKl//qzDDBWb5UBbS88HCXnYKjNf8tY5pe8nl8rVXF9F6k5/BFagGBxdRERuyAKAqRHlJR16VPwJBxqhoK5tmDTx4VNgLN7yafzShSBsc4AW1Ks6jJIYp38w4y810vXPspSsp1Ju9452sUG48/yPVi6Uc6AWWrfuZxmE4XY/kv79Jxvn0/Z8m38aeT5GwX531Dv5rr/RBgvgcFNb9Dn0KOioamCJ9OE2OiDGl+7DV/IrIY43MWWBuPgGmw75olzR4wIjkCc5zGQjuvIf9nnqKwed2OAY+tLAXZCm9O2RsSVEi81ojW+h6XQXEY01fXPvKLkUTil1GUO96HiN9otadhJrg1h7Dg/KmPUR/Z5loWeRlMf326K8s47HkPwiShQRjQzi+1ewqzEVVyBNYb5WbFE+Qo363nPoHto9NgJmAF03K8GI/rCswl+BE9tzNNLTLOsgQetpkm4nGWWqCvPU54Nl90svitqKcWJqK+p1IZmDiG8kn7IYCF4u6K8kFAeV/jo7/24WdT1/9nnsZdP+q42HVUljhuNONFYkuRppa6sgUNFGhwPtIN4P79Xe5Jmxu5626uXXqpxFzjbczHpT7q92xV4krtEZwph0Lnuwly9pmg0vLgQOU8n08Pea3AnArDDHlmrVoOhpTg0k50DfFMJiuzHRZHedXNcdan3/ODwcRnV9vtZ/r3kR+fbZ2D8x1K4dpiDH7BBIHt60T9GIiTsxNBsQJQSfUJ6pJRc1owACJuz+ZVm22pNpZiFGjI5Gzy5q+SNNDH2XxxIBwleIk5B1D/DDQuDNJF+DNEGnOHRBBC83sy7hrsQDli3CfYHXQ2Uo7HaLo4ayyBDc15pI3u5DaXe70krvhW38bzyLLnulXPJdcc7Np/yEz0Zfc3eLcogXPbfICZGj+Fj3BFACmfZNK5sDVb5nau0pdDsEFS53vZ7s/UONsNw0OCJB6m9q8vrHx5gKhNxV1x6n4R+GWAPGbsXnQVjV3Cl0yFPhk9TZ1a3rpMaV+EsD1MwnRQOqNYqrqWrrM/RFqWSZdKm70nEaXbVilamv3mOfz/XQE+vKOU4dODGLf27t9zpmHf8pRAUP9FCMxpDRG+K9AKd320mBSF7rRZ7CJ3MZ9XAUqKm7riH2fR6N1/dvljv8cEGgBYpk0xjeXh7sGqawg4RW1TqDWly4pYuyvtLNWlZQ7eDl9QLFS9BVNqXtpaEO42lTNcUlw6e+v+8uiDOsTJdGsmvnOAqPuZHZ9LrTusC+Vfbja+ZfE39WFUlp9+YM1IPKPEnO13diJ0brzo3FWRIxhs3lGGqW5pIG76WaNQSz3crqFqpce4OtD4Wm1k9yTB2zEsoOqZRmW9rCV6YZZex9tTjCWaZJ55DxwsJEYlr8oBuI2kBrP4bQFPDK0PF4dXljqeqJPI+Jc10TZH+Ptc+Pf82QXq6Hd/Y08EtK3QRo2TW1RFs4k5+8tlk4tXJgzglQyfq8pC7srDAlY57dozOa7LwhDydQXeIKOjUUH96uNZ4pzUFqCrcLgNKXblmOuB7bZ34iuCTv9oZ9KQsW0auFpuRs5nAC/CdDo/mpRJrNak+L0GpORniFjIEh4Ren26sLwG/MPLA0SOeL38//fYk6zzfPtvPic2XsTFr81bpFAzh4NM/Z7RIIX7jJVcWue2xEZF/IHAmblYxaW4QqKud9QfuJ+i8WaOYPncVGRKo9ysXT9zU4xneHNAKnt72Qby2c8KYm9q2RJz13Wq+JGrqbe/6XeCzHgB8vKhgEqb3kIzBKLbtD/nkhjiBl8/CKS+BPktrbqdBLs63z3PN8wSepfbZVph08L9pnpklzIrC99yPG5KiUH6odRLSP7iYfF1KEXO3js76M8L6IYUQbuZl1RvXFOoXdOoITav+lgiV3g/BkXBybOKGGjvOVfRPkwDcW6oaM2mYoDTNc+HHIDVsXRegh0DfaqZi2mYIFEXL9Kd3XRhz33NaZI/t87i+9ATU/2CfwulJepR4nmBJ+myp0GGQbHMNoO2q9h+yZJjO0UGmUr+PHWYWVSvdT7oTem+j7kU1m1GYvF7sVjO/Vnru89p8vhYepUBs9aSSIpdOkHgl+jczi591Byi50STtXHXgw6h5WgG81AgyLcMp72gygEo8aedHbsBTmu4hlgltylTH9imkx/Z5poUe7zrwFBqDTKkkR7CRbRnhiqL0hwjd19x0V4uLp+sJleRXY+Uehs39eg81FndkyWfajFzbKRteeQuH9fx+Xo/6NDjpplVYTn80BgIu7MSWEPMJrnsjJMBir+g3A8OAVNOqSCiz1Oi53T4EABl5e8lgeKKQaltNMPEczf2PG/7H9/u9KbBg1M0ij7PiT3E8z0KFsiV0tz1NT6l6esRTVUqLSjLm32fPMzWlzLs6b0QSD5quE2dMeJEVb5tZsxyP+y6XfaNw74I+bwpuy5vVbMJGpNFkbrLuEMHk4u2Li8sOpaL+dloN6wgEYK/Lvc8rFxMzvARfA3vdCHhyoh3OwThDtS3smvI2kiT0yOOV18g4vE9mKlOP8tQ5g1Pv5ytP6SHHWJ7A9gmece0FThaTMqZZJonpv8NgyGS2mZE7xb3lroH60hUcP7B2dMVyazieC0at0adh+aAufrEf2QkeSf6YL2t5CXKVoCHPVvdTIk9SGfy0cgsd0iENtK58+xL7TEb7nlccA42fpzh9kSeTb3h9rTOlJxdaiGhbG+XvDmwFYJylggBuZgM5hXCfG59z2j5FNKfFUmT/jX22jDrgJExq8Sx10N9/87pbCdEj6c6zm4xa3deoVFn/CBeLFuIewFTknmKe861jVRNGN/AJM5CaLLeru9Ged229uRsNruIlrA1bgyNWJ+NJtmNZrmN3eFBcPmAlENVnCYw4xkV3c/X9B+DeUBm71kSof1pejqiY2DX/ESN/Tjh2cYJH9nk8u9na6dn2GWgDZwsoeLp6PIDGXF0CGWFPPfyHpYxsG06RSXWoXhQe/Bbg0hfru6lonkLjdpTR8wmuvNtfoTDpI9DD5RLKjyYmkXxZACSk2BWhQCB7c1ARgofQ1bI3g4DRlUknBo1jb8HFQAPoQJVVHxjfzfSJkgbl7RTLlE3aNT6WpU/Y59P9pWeKzj9le9ocVjTAG2+IZJcja559RL3vgmmG6X13K2EacFHrRaTXvexuarbsCN3DzsXN3bLig3XphA8Mi5aHFxsKHzd7eDh03igdcZv9yrS3oaVQW5teby6/YxxAaHzf9jr1zuAHmjqdbLMATwAuT6KkxalN9sipCWeZ5qbnnODI5Mk/SdRUqvwn3s+n5KXHD857Pz1m67//8Tp/RxodWaZSVe0C8t8tLgFnmdtSKICaPAc8leO2A2dPQZvc01Kzzb1YcbP7MxrvdDGb9uRwuluTwVtYuhws+/QqhqXs1klvrabyKT2pQ+wUn1wE6byZwiGofmKJVSc12AKujimkO3vKVbvSOHl9mfTihBPe5fiS5qJ7snfmpH0+1Un/1/b56lt/UIX/9WcdkJzuX2TWeCTU/eo4XJSAsv7eSSNuOnrxP2Qac7dSBUTt3bkCE/0RjhVZlTV0kD2N4XVVCydV4tnumoiTq46pvj2YTwjCOyFzCk0nTFtpnlFa4R2MoyKzAqxk3eLrsRZgYm9IT30E5kiMLZAWBHOjtdhkB+VJ9gjlk3PxTPx5RAg7+/3EOpEGkDn354/EnAVOdx2YtyfZTE3J3D27mvHp0LuZycI6y65Rtr+qAXQ3Ioq3S+szSr5Z9WwVzciOJjbjF7yek655uTBWVXwuH2mg4Oks23IokHV0PasAD0QA07x3YutRmVJPbu3OvElT4zufnfkZ4RRZrLQ1cz/lEcYW12fz93LTzxH+fKSIeIDzZ3rAqJ2j7vej5U4+5PcylT5t9ALgesr2jEC3ewhvqcOnVRTlaDregOrmVhUWeEJ1CKDapx28Wc96UmgIK7e7m5naPkAmRN1c16DkjysT7r4mNsms+pLQ4Cri8fr4smdLk8vtzgvAGyF2YKPpCTEtft+TlJgawZHid5rziGcD6DPvp+d4Ofmzwt7tcpMfDYeQmkWNztXt2XNQavGWPUuY5Bw21gmehEi3FOJvcUM+njbfDDbvXHW/Bkjk0iyG4BokiYwWo9qiJsXP2QKhm47eOepyl0kXRcJoHRhNNn32LNlNsk9GH5KEns9pfY4Q6aR4F/yllIw8WPQMbogeb1T+n/ZbPEt/4PIpmp7n/PtR/fOlI/BtTvRXY2eiHWURRGGVo5NhlowOGUQ0siUgAhKVoMejEdTg8v7v4/fd7srv7zAhrYYQxOWmumu7devvRxY2FaBsXFmw1VytegbNotY8f8VB8Zz9mmc0N84U9oNAd2oaxKYie18R83vJUVjlhDRzn0mZtQDOjuXDpcwOEBMS9HZ/e+QSNaV9XZc3f5MSc8JFEQSBYZle2keTVKQK5tSI3Z8I6yTStkeZMZ5j2PmHF5w5BeYO+9whz7DbQIdTorOserT0bjNDe3Ry2IEt8bR6zImqEu12/2D4ErL8t/Dg3Sqq36HSKX9AqvFT0CV7z27mE1ZDney72c33a+mjmDIlfsTiBmYjmADip3DoMleI2R0kVMqSx1721QZruUmMW1cklGWbSzvxNomJ1ehjRk7RaTCf1sE6x8cH4NL8aFxeupqBJv1hwMCRN5/Kpp+WCbgSl/cgRBe+F7WQyErT0VAtDTasAd8DVvCYFT1w5zUryQmdJAvDv354MsM6iYDiivHKvnxk3jTm12REcI8xU891y3AHUCBkH/eB11hl0ktO7KpQzGf5dgAnH+PJ5czbNLbyaUE+z4Rg7sCz4s+rFJTfwbCrj3p2FpUVnmWfnCee3HXSdndxQEik184BUMQllZPUAUEEdMCNGUNJ8G61t4J7miBUqcjTNXeT+FycDJxsUE7T/oDXSQa6As+4Gi4x1JEFpecWZk5ilzk9BersHf/kdDw17gB6YMxJFMGbK8NbNC1b1bnwR9PR2ebX8WErpH93z6NuvUrybxJfBlFOx/Nul/mTiazErNwa4UQr3kXNL1kraM7uLnZo3bTbmR8mWQwRmISI1rs8eEpvdiSEC5e7v7+KGK/VIPCk0rmBCKK9OaGlloIJ6FQf40BMzWUGTA7gFJ7BJoWlYBSXlDW68V4G82ZSA5D1oxEVZ3KxaGpkn2Dph932uTtiEs+w6P7Gm/9+riCy5SPN0k/inuQfRzLA51M8BTRwEnTeE093FHFY+MZGgyYqKQfT0gdVODuNK7tHljdWUQnjOifgmYDZfP87Zg70Sfyhf7fKlkHiKXgru9J8t9asqQ7wNHwry6lUx9Bq5uqVWdtiWibpKcMsrf/63Prnjg7nzv7mTvv0t13DtSN6Lo9G7Z8KjzjgeZt8/bU/UZofBQsINQjNKnTM9CURPKw12hpP2wLX2ounwMR8OZWBQPXYMkS7ZmDgAyp6+Xx6A0eFdWpkEy3R4MmcqNfeoOfp62NmYh4jK0Qbr1ZYBVOATVj3oefN5T84r9V9f4AvJD2xzhJjlB9yyZaz0XzcpdsmxJPiEaHSJy8QjX6knjRgEr03/45htpURz+Qhy1q4g6DSL24jVz1a587jKYPt5UP4a6EIhcLKDZe1babS5Hkjxh2HXLFm4NwcQNcAPAKliUklx+7bYg2UicbhhsZCC84OZT42n+T3our0E8dhT9QsUNnBtzQleXscIOtncV0CW0tSshvlvcvpS1e1zwRKH5lcvrl9H8yeGLmTW1arHYzF87Y/3jbVfO2N/4lFT4y/oRSgcTrQisN5+f0Ppkhu3JgtnKQCUGaCUgjG4MDHekjsko9eS1m2a8g1D+YZnbbVC5atVrSE3kGvmFB0vkphntOu++gtbJd4r5fq/PbIA5P0abVlk67xxS7ttly7Mswg2sLYXfPFWyX6KxHs3v/jHFbS3ZssMVANVXn+N4Xns5v3+Rp+CPP8rOGJIOUr+XOm7JaTnmZa/QgOmzrH7g6XpU2cgj/gHscBgwScrwWvopMv9nWnk3C89igtr29sVKiYrX0Q2p+2ifbwZE4bcu/Lo8euC8h6EoNsE01fS0tmLixToKd5dLD8oNeXeYFn0XAFN8Mj+q+t+ffx8zmWE3jHuXb+SRM7fo0lGhflvpd93kQ5XgttRWROf0F/pRRv3O6qPPmVqvk9dbE9hzrnvNHfpu2l4/VMYG4tjVfN7ptXeHPjgGx+zd9oyKm49ISvuvZ0j5vreJDMm3WPxQOCWJQ1VgjF+xBG/WR144jUgfLWpxCWqGaLpkCrRt/aRE3l0tNf0ui1Xck+/fAuB2/a/v5vbB5FkpeNJhaQCOENl3w/g6cXXm+fn0BSut/wxLm7kh08CZCOOLgjpBOlp4a5ZTwtM6aTjbocQvgy2GekuOF4+8CB7MroU19LCVM4odPtNemuFaQQIq3BAZWhJsCvL09IC5RlObx3z/H6RPGmrMsYdjN5Uv0EUanhVRduYD7sfD+v1n8vX9Tkqf58xL2+/ehPWccyvir8dO7tReD0p+RGFJEphsCbtTX8M/Zp+VhZadKjE9scx4k6Mb+scxwyEnrlVt/AaGn5DE91YMfI2yYpYe/AIHKJl/eBmEq0Y0hB+yabAutcaM8ot3FipjG/NwQSkiXk0foNtZysbfenAriRy/hU5nzrnbSZ4tDFImS3i/+5PXR4KcNOPJWj++MN05e3P2HYIOLSCqy0nSZ69KwwsxySjqYcEAJQoqVvv2AA83tLH8RJhJ1UdNT0g7C+79ivrqdDEE1eLG0WjmDXlllJjNeo8LoMbXzID0nqddLrGcoND9agIeHJcF74RDXpUsw0kaZ6twCyIUud+o9bMLOk1MOGlNOYrKyZlzqy/crfReuuKYCXYCVBgPZ5lT1nBelOE3Xi7c3dF4wIY6DiSSlJQTqOcN5XGTWIyp2F2S212524SCCjmAZxAQ6dWWYkPbFS+N0b38lJVSDy8OsKVtlzvWc6iC+yg95+7XrCaryCKWdjNMw2jMqp1z0B+P7iNQj7DY6zX0tU2N/wOwWeavQcLUE0GqMtIPG2J6T2nrzlPd3n8AXFMXKWaRzvej/H9ukZm+m2d//nzd3XAIVu9At3GP0udiZGCTsjIc8auBSX0AQKnqApnqaZZ9ZDzhSQf4mWvBIBwRO30kvEvIWZFlK/fA1iU+aHKtkONRHXs0wQRRBIvyIFeKSWXp7MZHZTYeqEsAssAhIWiwc7lVZGtcrM9Hp0qR0sOow0uo6945mAN/+UMuxUp2zM2c1KsrprfnMcMXkuTd4tyT+5ff/W8+ePkVP5jKsew/SAqvRj9fj7psJn4Ena7kayjqeAnrnC9Qv9O4FTWpuzZYXdfdELtklrzE5OlSLyvyTL0yVFrWAX6YlU5taKVj6YqSvvrNG0Is2W46SzDBwbqtPHGdTOsFhL3hN/us1Ls64UgNMDrf5flSyzuvH8DEy386MRmh3QGOVlOkxGn4/AM13fW681Q6BM+UNc+40PljcTKkFecIBYmnxaGw95P8H1np0Osk5kZpnPIPyup1PTlKVJXJ7rJtMocWQ4dIuN7SINhLhUNTBuOBWiQ3wH5BvxbI9gD5Zagc6rHjKTu/lmXuxlTCwP6jw9gXDwevrp8TcOMVd68J1IW2sQd7yfI06Y553v5wfgCdUDr/3VHaN1FxUJp0c88Uh9n8l9CfIRWMrGp4fG8SeGSXx4Cp5K2DDvdrxZxiF7pml1J2883pd8ZOwSdy/lYJXYcm8T9R/qTMFTnKATz8mJtN3JkK17CpQo2BEV2QfVhLW/bp0ka1z22GZV4YNlebH2mnfxoCSini39urfuhS3LvCSLpxDy4pYkucfsftIKi8zd8Ox7I2AnyvwSz5/sF/lgKqPAWg0r8gAqz5PCPPcUt1K5yyT7hzLBRhczcXduGKIozrzY+gkd6UOCUE2ZLoiT1wsT9laMj6V3JApQj5Q7NF0OWR5HyBCCTQZEThXwNj8N6vV7Gpx5FUIBuxhEKHEr8Rydt6Dpudy/m7xjn/dvuWMU1Xi9D4mlcHYHz4lToggiE4TrbqvdUULLnPtzKvGerGd3HBohaWkyvcEdUwCSaYo4E/4f9UUEmiBHdOgAzZRi0pI/xdNOpT04AF1dLzzLNMfZJXAeHj08e3q4sNaZHZGpbSQA2lx0N8qDeQY8OREJigBWDFU8r40eUM/4uo/7xju2mtrTfPMCogfEYoy0LdcR0BQ/s7cscIKnQfwrWxw/RCYpu17y+KfnhbFmodCxIjNZy169HhBpPI81OVAaOfzE8evJAWzEchZBgM/BU5r8kqjesDW/ezCvMk9DTWRXjoAzZi0Nqk8YZFLO57SDmZCeM3xX0rdPna7kFQH0rfreb7PSy2mLVpfO796R9f7Nl3pyAAyewtmVlSTXONwO9Tiz2N+rnZI9EMfmHEc2iE6zAycb3DL5440FJB/GaRyFa+8phpqkY4ykmhkwdCOMbc5E7LE80/DF6fxDc377n+ZYZWp8rOMU7ML0PLMex1lGkXLgOtbtpfCSdBc2FOaL85k00ykdj3lG9GmvUlLuxrrLQG10fHLTMOirz73qnoIzzWHVkGV2szhTFgiip1HizxqHQ+75iSJqyFpkulexuc4hUPlj6YtfhrqMMuyEbNsACjzI2/XMwRtYkg15pnDErpvzUw/1Sw3pOv35LIdNf2TOmIEFFakP2cVj4894NFDmXJSfw7BtAsDRr1W2NoOJu/YjbNdELiUpW5j/6+5NnM1N86C0NziC+TpPp6QviUrSkF99jWSilx0VcvWNwTN+Hdfk2GlWDVv3dK2OPEGljfDjuu9utNgjd9/BbDua+TKZ4gpjqtynJdsa3l6vp7SnYCgFDKaWQU47VU1MYC53114Ld18sh8bdRVQvAV+FOx8pHeh3vvkZMt7W996+7mMO01ssVHP+7Zx43s157hstOH013cDRlhQGUZ9QNhPSKLI1DJ5ORGuf7md3J1uW2zWZXomsCvZE27Ctg5Aws8FVefWTROfRFM/pZDbpJaDKUHkNlh9PDjBQb/aoO1nGiv1SVXF0fbaOOjX/6lBsFlEP8gZwhgdX0zTdYhBJvUDri9wyt3615fLv0E+u7GjEWty2Tgie54yxu068Yvm7RapxmZ79ora/yOmi5y69vocrz0JhLBJ/7qfeMQ+mmXlTHgIR5xAgdiXtNfEmeFouip22eYBGZZ9NDVWDaYFG8y3D2uIZMxvZp2eqepVrjwA9pD11VrOYYiGnxCtfvfr8aMqbSQ9FWUrLMoPG+cbL07y0xDRi2W0ZaL2dyFa8wOMYdqKtAqDJLB0e/LztzSy6ksHSj9AXKIJkbxYeSSCz8ClvkK9Qra2+IZe2fynafhnzl35kvxg8ZRW3N1Ncl+kTd5zElA6bRtqoX4VnTxbr43UQFDU+BX3py8kdpCJ35nGyyn72AmfkF7tuXVzRfp16P69dShIpTHclmx/8zV2nRvysCcjzQ644cGKOLs3MbHvwhK6kkhqRJzfe65LVi6oTA1ytD8MAOJEnb9vFu2R+issLNaWxE3WTslkrr6ZZ/IeA+58CZwqhXHdqFUPAU2ETXxhSHX9d2I3JD5o6gx4wcJovddKswNaSbU4+JFTNXpScjfY5RrOS+J32ubVan/3YnyWEB02VAfzEIhJw8l4SPEV41p+aZSZWOvMBfWmSeSSQTE/YGxZJDvApT87xKyWdnTxElSBLFGG6WkdquGCWE/POxZBWWuuY2iKZpxrc3UqZZi7wUB/Ri2OI5gszyRPhdbe4IkBeLyTzU9/Qmkly7pjjFQqHpOxzOwQt89wCNWfEwbl2Th3ZLlx67PHwwfNz/iRR0liVrvmqEeSheKrAYbsI7oKLRnjd9fPHJVXY+EKxTKvGydszC+B8cNz6EhOdaDydeQRAELimsxGee0kBNhhzAtOROxKWUcPYYyNuH/WmtmY/8BXvtu/vafPcF7wRwZTA0pb5mFHtsM9xzDTm0G+vgr+GFD+3HBi1ziAIrDY1fDxfZ4jDsTfbRdomxSTpXs5omW5igr7+gAoVRM8jnuH/+6mB6Ka9ncY/GcrUXJIOCYxeJw/herpZfVyoycpJS25pq5mLP/yKcMrJGRMaIu8vYBaee35e8ZJ5ZdjJK0t/Tb7Kb3wUriIcZFDsdAL2+Y712oXqyD7H1REJiiF/qFLjMxrycTt9cftjq8cU6FCRl/d1zygjm1ZFMIT/xVynGXVJgsAS2VsoBhAf4HYhPA42U21vmz6GnxgMgNouWh+uuvHpogLgGjDBJppLdd+16RZUFfa0ntVRbkDHllMbNSAT/iKNJClty/Rx8VZpOSeoWi5yhXhSY59jNAvQ4cqPdX8L1nGuSWxktJ5d2H17UWZcA629TAjyqH7BrKE5TLh5VBpbueVCGkUO8cymy8jrZg2jP8Zqsu5JPDXLfiYpCwGq7Q06knviFnbNyr8PPNsW4tTwQaV8leZYFdGMKa36HGxjjRfpuKKA0ivJLn2ER8NHt4uYnLlez+j5B9DLux7BddSaK9MsEtiT+3geqslufxJGEIxzz+dA26cyfTpVj9avM7ShTNUNM7amtsOffc191HQ9UYlv1XVg4hTFxnctTgQAMkik554t2uKNlW2zVeJS2DdLDEeQKs6/KLyVR7KKlV+uW96QzSlMqwprioFZhul7zxg6auyzvlih9Y9GBjq8nzuDpv9vkPzgn79Y9faYNzK1ujvB8FbPhzhtwsgpwrNsK7EUjztSUTO+8VTiV18wWiuFapmYoEZ3XzxBMVcx3BvxjMlJQJwEA6ndvgGbuQY9bbQGu5z9TRTM3oTLh4tuShIldCzTL01u0O7BwGkU4JTyvUIV0GELiUBaCTQ1xarXgerOkkiBOgA6MlHCeUpLz5+T/WQbYU7wdMpVSJMa0d+gGP80WiDuuj4K4avHG7VeI95dQCNI3D5LVhS78x0UwawXLnphYyBqe6bwptyMYfF/ptsSGi2OH8schVTzHuKnQhj/noQIb1cOSpdV8WzWR6pmaczU+Upro49a8xWWmngGy90GGhjf6uMbxtZCUlp6jNB5jrVOjdO5TPZr5RMbRvTeMrXBy+OeDdUeu+6pRZ159tJLsPE06eccH0/xzCUPMjV2DiIBN8NX/g1YCR8UDpT6oFyyvO/mZcYjwfWW9piJ8c7ZKvQTcKo57FhubDOEx0VenoRevQ/XuJ8TT346CZ7xSG/fAP9B0Nwe7xrueraNn9++8/irL83UUzi2ctzxlIHM4SMfqIOEo+RiRxTnAlwnA4Bn44S4fj0FJZO/DEzXgGRIbaJSwWMQ8m6upuIZvqfILeWU+Ps2c3BvfrtaRhwZeeNcPtHq/PB0YaFF088UlwtOrXDN8rjKqPdkBlQ8w1vq5LqlyVL+M3PfyyEVmDtGD7dGOjPergbQE+jwj9EBsfJhVSRXXDxDQuaEivwKPD99YFcDmQDVp0Qzlgl+eM2+Cvww4qcNT+1Nd9H+Wi2DYD1rzYL4leAZ/myqIU5yLS0GE+HvxajzDRjql8mpxrVQy6laZi+iAug+RQW95ekisRao9eW6pqGaorfErwfP2pIY+9zeYbzl4Lfss7upj9TzfIJ5shH383ijlgk1JxQGnZKJMpHpcTirxT5sKCDyL7zaBplNgPw0jY8IP0aUKq1g/Yio5UwMQHUf5ZdBT1Na4sqd5gpiuc50QPj9uCN+PTHAdJQMZQOKIetwqgUcQ85zubAAKoF3Lw+utppFqL6xrUkcHlhO9ib4pY7nVhDaUvj/q7NspfKWPVU7xzyf63nUT8IJpSzXlP2QSuQYeyI4S270lNIrMl/cdqW2IpC2jlK5qRHAptipa9rsFVNggCHSM56eACX8ZKMEQac78es6T6L/B+oymmgg5+0s1FomL+trXV+rI+deQ67vy9A9Wq77Ei5NUCyTjPpf7hFMb4FHPAPo5XNdZZ9jO7Wr+fvdz6I4p+NJ4zKj7PHuydgF1EZ7xrBpctgVJlwi27Q6FwO1rtAr8XNPYqWDeOfG1CwkKhzMCY+4Nc6mjifYIuoPgBBkyCt49pJwtYsk4WLPxTMbmWhHe+Jwt9eggvh+0S8UguJ/BvHAwS1N/wWVwCH7iByIWgAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"µg/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pm2_5_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/polar_area.json b/application/src/main/data/json/system/widget_types/polar_area.json index 4cc516321c..57d25dbda0 100644 --- a/application/src/main/data/json/system/widget_types/polar_area.json +++ b/application/src/main/data/json/system/widget_types/polar_area.json @@ -2,7 +2,7 @@ "fqn": "charts.polar_area_chart_js", "name": "Polar Area", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.polar_area_chart_js.png", "description": "Displays the latest values of the attributes or time series data for multiple entities in a polar area chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pressure_card.json b/application/src/main/data/json/system/widget_types/pressure_card.json index 8f6523e435..df5cb35b7b 100644 --- a/application/src/main/data/json/system/widget_types/pressure_card.json +++ b/application/src/main/data/json/system/widget_types/pressure_card.json @@ -2,7 +2,7 @@ "fqn": "pressure_card", "name": "Pressure card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_card.png", "description": "Displays the latest pressure telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pressure_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_card_with_background.json index b25d02d356..47ec7e659d 100644 --- a/application/src/main/data/json/system/widget_types/pressure_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pressure_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pressure_card_with_background", "name": "Pressure card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_card_with_background.png", "description": "Displays the latest pressure telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEW6xdOZrMG2w9Gdr8SXqr+OpLi4xNK1ws+ktMaSp7yyv8+vvcywvs6QpbqbrcKKoLant8q/ydOissTBy9W0wdCTqL6fsMaVqsCVqb67x9Wyv8yissfDzNe+x9apuMrFztiMoramtsi9x9Ktu8t1kKSwvcqqucy0wM6Bm7B4kqebrsOktMiIn7OatcNsh5uAma6QprygscOesMGrusqtvM5tiJ0/VmbI0dqXq8F5lah7laqEnLCGnbJyjqN3kaVxjKCbrb85T2GRpr1phZqMork2SlyOo7uQqLl9l6u+ydeVqLwjN0dviqCcuMWXs8MuRFaHnrU1SFmtvMmYq71YdoiRrL4lOkpdeIyeusejtcNKY3aFn7Rvi50mPE+mtsWdr7+Hora7xtCWsL9mgJTL09yKpLdphZcqP1Bge4ygssGWscFBWWlWb4OassFOZneruseMp7pWcoWKorTO1d2Tr8BLZnk8UWPByti4w9E5TF8eMkFifY+iu8iot8cyRVaAn7FefZAuQVFkgJKNpbZHXm9zjqBifZJng5VgeYhEXXBEXGwrQVQhNEWoucaDnbJ8nK5CWW2nwMvBxsCUqr0xSFt5mKtgeY9lhZhcdYqvxc+rwc1ykaNedoZbc4JRbH61ytKUrbwbLz5ce45Ua4BOanxSanmmvcl8mK1sjJ9ZcoY0TF7ByslZeIuOqbxjgpUpPEyetcNogpg+UmZ0k6Zvj6G9xL+Sq7pggJJGYXRLY3IXLDuDo7RXb36FpbdSb4E/Vmp2lqhpiZyBmKyxyNGTssKat8e3v7uIqLrFzcysxM+Pr8ChuMaCmKS+x8ZQZnuar7zIzMW5w8F1jZq4zNWMq706UmWFnKl9laSFn7F6k6BJX3TFycK1v75piJl6j5xjfIvS2OC8z9ehvcrK2uCNpLGKoKy/0dnL0Muxu7h/lJ7R2NWUrL/O1NDCzc9vhZLQ3uSSqLURKDZyiZbF1t3C09vK0dBpgI6Jm6SZrbimtLecq7DX3dmqub+TpKuvv8Xa5esgl2lAAABYIElEQVR42kSYzW6rZhCGP+MIu4Bc/3yxTWywMDogmU0qkOJ1FEXiMipl38VZ4E0vqffUO+gt9HkH0s5x/HOI7Xl4Z94Z4g7PFgfF/bY/rYnidDo16y7xVbFsTnrRFGs7kFddlw6De8TLZk20Zb0IsmFInUvT1IVhqMd+6LNst+l358vl7evnz59fX19vbzyb4uvtcj6fd+c+DYPALwLnHk4fEASBC9Nht0vDLH2k5/PlPDg+kYN9H4bBwvso8gHPfNJVa+WUV1XOfZlEUVIC89f7OzDGMoeBY6f9/tRUkfdV0zS82Atn3Sj/vKuC4XI5h/F6XVVVGQWPh8vSTLfMkVtIVn2fuetmNwhmYvji0bAIsejfOcvCIAQlc+NpcKFg+l3v0t0wXN6G82AnKAg4Km4feLsPoq6q1g0oXdKRcNvB0ubucHh+J54Pd1hg4PST/7ypushHedOAMp+POMvlel3GbZSdz72PW52NeuGCRcaXDkNG8IWLIMyynvOJNrBcBGEM36JIowuBNNCHnATHLTBVQNG5SF121u/wPRxAERgI9LAnyANMWalOvO+qLu+SJErWDTCieX1XjREqqOWJxyrxPq4oMsEIZ7tdbhtgytiRuY/jJEKFx2IRZsOY2tBfwwVFwxOrjJ1yljB/czMSWIgJZuidM0mpTxLmg6i0jHCPIL18vaEddcj/w8OPUZg4qBB1HYpUZeejDjTPf5fAUGD3wwgzv92QpmikQbHOoyDpCliA4Xba0jvUZhxFbsjSUB9BJbsgVNb65t0uy/huqm5nKU3K/Pzb4ic3uAAZWfj9Ic3orh4enRODyQYAxKgi64H0Xj0FrOpRuvC1IqmszDphRD7lLWHUrYGRNq/U2Ww2Ew0o1BS9lXjBSBYBceDUAJN4pHDqwWjhSIbE+56i2InFuUUtZQaDoWcM5h9YFKaMgUwwhMGgS11LAZd+w9AyKjHvqeSQFhRPqt5Bl4kkVzo+iBLeRriocu9mZeqa+/0+u5E5ClirJ1G1XoJh5WcOUFRtHKmQnDSvH2IZzmOj7zY7EdQ1htBDQ4iGMvtGIej9szrfqmxiIQ2xQOOR+sw7oZEfiiUigkwFyS+FC5kBuuRqbFJUXxNhmupjwsShicSRBUCDOIJpCkwtTqpmrDIRYn9l2ZW5X/gFBV5H/mGtS+KIcj5vpAzl8sB4XKYXsmeOqGlAmVigsNhxuEcV5Rly+pNIOLh+Nnl7qgoTTO36kRg2pPGRTJmQKydql8BgeEPkPsEgDOZwAEfSYANIGVfFfmqZk1o/Fo9AanV/NMIo781mx+28AcY9UCZV15CrYEwcOAhjoR77bNOLXO2vh6D2vvZqGnxyAHLgIXMiSXAZCAeIVWiR8BCGKVFgyFXJ8REGHBeiDBzATAqp0pBGDrDu8kYwoGiUApJXbUSLM57K5OEsQhNBKESfPULBwKIwGGYjOFNMhkxwWL3hCApW51cwvQpwsPssgCShyELY1KQOcWBhWhaNRZ7nHZ4MjMREGYMxHIMapUEZboJZTlOGF4CUxTJP9IFlGUfy5+vjEW52tDJ3pMwshO4KG4CSTQOIp4KZHMxYlJmFnnJyPLHQE2ea9NxfBgdLHEc+dKo9EkZpx3fHNPISFKyMMBgb1IRzn68GMyJ97zRMTQCozaWaRmS2Miznp5wijlsqPCDTHUWV7d6AkAAXPdlcUQmdrIyug0m0m+zLaggYG+gKGy/yWiKwASpLsJ5JF1Ecxx2pytpSH6QWATDqGCy3qkDprMzGz7IyM5LP91c9ez4ekIZY0TpLNjNhmV03eeKL+baIo7htay0x50umQX+xVtDqRVxAwa4mBTQOubcSFK95nEMCZQ4TLqaUEzWHD4MRxkqP9k9iDKcD0mFUGkJWaNrJzMuafIKRMARzyLvXT7XM6ycswLB23md4GgGNgo4BZntCE88CWpR1mceBkybW/QwSQiB/8yCOKXQ4lT6Wojg2eiWWmqKyMVknMV0MDd0htVSX1zA00xJMaWc+UF9hbkxNWqZjs1SdiSXSYSDNEePOfQiD/idEQxypNX5wAlRBFna15Xa/L6IIkyuSCJiwV7+4zbhHQmEwmJZ1xRSjB6CBmCzGwvI1MJB46VJW2niVFAetyjL9CkHepGucqkuD4T+RxoQpgIEmAtUUS5JSMDAcoPn8FM/UOWLSRgDLEnVuq9V8WSZNkRcxJ9O2M+fUDLZBMtsV2lZg2ahbUMFYUhatkHBowS2wJmGqE5jYN0zy4ilYwdg+4G16+GSEwQVMKiSw8W9VRkePrDJm7TJE5D6QhtS1a35ScgQs0NgMXQmm2c9n6MRits7/XOYtVsAic72OI1ETUdJoIR5h3OIFl/v2XUvb86N1RZX1gkfVI4pKKV8z+uJkEcAuGJzLf8PEnSIm4TCQRfQYgFiKpoBFzs34ByaVMHFMz9AupgwYaCMPOB6O2nGe7ofZnlPQNrenp9nqxPVL2/I5y2VeUy/wbMQCCiF1WFyA2Tx+/CBZdYBQanR4sYlhDuwnx609KFC0wDCO6ZgBr7PLOkSwRd/6oyJpdY1Hg3Qga2AU1v7G7DRj+Hg6zx2PONnxYDDigkZ7NMLMVrPVXgh5Q5mt9lsWu7bADH7La41GxglbJDAqMj3wSjOnZgy91F4mUddkHvOafBP0AAEGntojoTLLocF6WdZwP24cU2UGYtH+JTZTpr8MYQSeeMSSGKZgXAI6s+9+O2pltn7hTjBT4wAgC2iKP4v96omNmv1sOz9haaUWKWdOZt0iF7Bas5ZZvJB74kndHKkl2wpjEo2VlmAMJUKhLtfJ50nK1YtKEwi0wA6SbspaVaefUKPUd8mIaJ+CgOFo5Dav3Hx+f//leAdEMAj0CwIJhvSJ+XzLCn26Pa2enuZcd9qljVJj/7OLYv2MMF/TthI+6jZHiVEUvMfWKE4/CPEYsIwPPkZtPs02sNQsi2Q70vTrhpKmN/jdceNML7oq4J2YMzCERz+EUWeOY/g2nx2fj3cQCJpG9wQ0rGmrJ6mzXDdzau7pxtj5bQ5e0bZxHV61+XPTnV0VX3ay5Yzq+iPP2w7klpkg5wGHJdUAFdauVmxxuQazIy2WGKYJeOoTORXzmhVxNC1Thl3SYKBVkYGnxkyBMXWyKzCzu7rkWQTAyNIIdZAV2g0hSKXZ32YCU/yGo5VJzSUl4x6SzUZGQK2ddzzVhH/5syjAyXNjOZ3EQ9IG838kQZCUrQ5o1QMm9DE5lgXWm/PG01w1nlcI5dUeZo943CSMLkFlZeozsew2qeOcy8DeIRAEjx/cJI3cDBZaBTfcnuZY2mwGzzZv27yUYV030mLz+5XuufCC7dmp7cu8oDYr0pQuOsW8zFFANBOQHCzoqtGYaDHt8ElJ5vYWaozpZn9gqWQBtj6LBZjJ4rxteJJr0ETbab+Yr1azw/H4bIIwc+z+49fPT6szYOa6UFszbSg0gqrLS8rs5WFrF7qwC+iqN+D11TFgHos4Xy4lB1WvnWjaVVUcU40RMmiWCbGgmdVZCFu+RpJGcpKY7YeaQ9F/fzALF4Jhzn4vy7DYqNXfpgRzu9M1v8Dx8QEHAcwHw4eVRlsmMDkzl09/Oh6fVhTyn+0f7Ytt5Zr2oLz8+PFDkzIMhPiI2iV/ytmCIIxxV91qzsnFzMcSwZTVv0SawW7jVBSGY3LT2qR2yp2mNilYNRZEyswidpHGiy4sVFUiq6pZjSolLGAxq0iwYDZ+BNjwgrwBr8D3n+tqDmU6hTK9n/9z/nPONbXcIdjZ2c9fX9WAgG3/CekfAaM8MzlNmysCGFWMdZiRhbVV/ftf3AzPihxtE0ksFgs+NBeAyEATV0oz+wGd2xXuOvZVfXe6oJOwumhMWZ+B8/z9GlXOPoF4xhP33jdTdBVQ+BxX5Y86jLFwPFK/lNWVjJoo9gXbSklGQs5/kEWdPcogqFgkjxoprdTQrMMQWoHekGSU7X/AXDf8AVn+T74dWRZPwDyo5SRUjdW/VgFgimRZZDHjN252sVp/+u5btDhjV0aZuaoo3Jtxh8X3K4FlgBxtpCGdwAh5pnIpzebkcuQZ1yuX+jGZQJaEbVaVWRsMcmhYAhdBlpk0KCMPNUMFxhMsYS4v0scRBhrzgKSIMDPReEFHrkh+KrKbqpyvVnW9Zgv4RLVMPq3IsjW/YzAAafKFPWKdaxMecyRTHIfDWn+pH8ZVpeeiPV49Y3J2cRnSy64lgYnkZmZdNgppbICb0Fd2BQqOZRgfNDtgGq+4Jt2ipZR5IoI2j4lz2dTWTGyS89A4EzpsG9POn0/1mu3rfPU9yU/fe16dr9aIdQ7N+k53b/7mGmlAcY7RyHY8q4+6tKuiONYHd0BhKJC3vYUfFFgkDCk+2kYY7ML0AA5sinNZADRffUPoSos0uwGFc0YUXG5pJppQNtBETAAkA9OZi2Bxu21SZNNqGAZ6Dfm1np/KoeKr5+cVXCuqh59YXhKxjtZ1LicwRqtmYMgtoajSiZKDXYQDXpQ8sqCLptxMqfmZZYQRt740f8NCSWpUITTyTirEJq07Usjl6W948sJgAs0/LmviWAONHjAOrg8XNY2nczK3r1f1cMC4hhp1AouEIolMTVI3t3XPjTBKLwMxo1MzEoypQxFp2YAdVQI8t0JCsazi7zUA0ITZQZ9WaghfM1bpPp6YMLZWsZe6RZIXjyAI5gUo8gxLyzMOzta8EYoZHNhZ65k09McBE9/4ZqgJ6oYUs40LafSIaGBJYvnvNtMwCFQjyXTMO8274Zn/WF9KS03shRWZhKPzW6nrPQ48MChex6E1icbdMBu7DYYTbAVtKJh8mSTLVIL88vL3y1OSLACabbfF5to3vgFmx3ckOSMntgBhVWr6KmPfNB/9SXM/Vsb6pQuUsgQGiwwjeE7WBJhXVaYKtdIfbJVUQCMDiCzLMvv2GFaaaXiNRUqpZrStEUy6X9KqubR5I1HC66sJOaFE22TayLbBz55eXhau+CnBq1U3G3mEKZNst5gCLtVmSMNQO5yG+Loh6w44rFJY0sxLWh11cb1x4xVWYWlDmCgyG0IwbPJg8De/6HaPGaYDpsAvpAuTzM/cSsNDqevOPLRatkR+2vo1yVQxLFLADDxFGjaOyFnTR8VCNZOkRdTdUjdpkYlGBpsn23Sbb2Jg2uaGWqLyD3THA35wqucS5mrFNlNWGoECzOc3WYRoZNkEMCpw+jscITTKBBjpiGrUCwvZe+44NehTNoLBQmyfW3251juVN+wg6CJ//mri4wOp0mgKQBgSa5YC8zBLk3TrFnKBBH9u1AMjMg0Y7+lrGdIoKP9hKOvvlWXh7kibMCzlW38d5ePCJzuTHCaPubVaT3hRx4sjCw4pmMjq31IQXb5gXuG5/6lrQZ6UaMbZlJpZcytgd4+wCOa7CQcqKx9gEmhmKTCL2WybbG+TpxdESh007bSVn/E90bTjs9QyHD+ctF3VMgNu1Bmo0YVyIv0yzUgE0siebOYm7M/pZL3mZ68oukEyGIctgxmz0rGjfTHRBqhb/vC6Bv0Eo4XuXDDQUPrMu9ylTgY70dQeF1WT4AKUyizP3CO63P9tMKxpWdPKvZfohEAUQXvtvYqpvPj+bpCbzYnnA10pru50WaCtLyxH9iqrU2A0DOmUXx5lKhoNfiQNtgyLhv9pp4ZH9XNmW1ts07H3tBSkxkxRl9QMMFiZpBHNV6KaVPGHOG6AmW7kihy8c8s0IQm2D/eLp3tgip0jrxp6AKEfht8Wyr0b9ZvT/Hkg3WRtJNwQw3JJZhuMhlejIXWIosusoRH561Cg+UIwGszJQfsZEe+HpRUCsML9+f6bb+WS9rZOO7Ng7H4EVwgs799Y6QBjAy6xAUOnVFMk7Zri6f5lcX//9JAyomVo47RsZuozyTZhOGgVzeF0ODS+GljZMGm5gt580jMytzOYh3FxXYa7OPTX70Zp8ETBcLOvgYETqMFm15cyOWA49BXlQoox8k20irKJszXUwICnLqMY7yEmYvGYqyWa2rsrurZpSYdk9vS3jTazdEtn4R+RbW3UkdRytWTpIDu22lxufIyhVU3bQnXCaMhs2izKPBBhhbUXWorAMr5zpO5kFzeotIkgQbOcLLvUBdO8Vsw1IGvPB4ZBk84GPCxYp1YqhkxYwhXk5EMzxsaeOoXdZE1PKqhomDiJ29mMSpE208gWNPIwhUbgrm/bI46IINVbYJoBL+AUJWnWLdMAIxy0kT4JH4IRjUnjyUtKJSIxrMPwqICJ75j4ralAQ0KhC8GdAb7/AzkATNgB6C7hOkVXdxNSDKtq0GIjt5FH+dYtszaeFuni3eIeaW5v0yX/krMGS8PEyTNomG+Ovds3guFQMoRKI/QdLB4YW17HwejRwpxaZ85d3gVpcIGpUwI7YGTitpSV+DI40IAzviS4utB9DwGMNk1jCf/fhFjYNAk57xQWo2lkW73/UMV9cjt7ZzAzlU3rfavvQjaZHjy73c4djy5CGfLsJCLWUB4cDkXeZksTJgCF6gkSoYzVxtRmAnDQG7/PpXpOLgsRmLMzaKh3KYEQxBVNTLtpuH+m/UOi+jeWEaaBR8WXG0x7VBkD0+xnYCxUNFSNa33b6sq2J7cxXQDdbrlz/Ud/06h9hogZp0ulnB71Tw+KAKNfFaBQGlibI80CjnkYq67rnGxBer0t5/Y+Zq5pQq4W7tLDcFEry2DRC8Zx/B9haF5W//awlEyMJ38NMdNj2yccOHl6Jxp2suZ4zNRvspBp6dIkclLM22hTnmomIypanSujl2/HPRwMPgsGPTV6K8KVqYBCH1VjNRLrP7qWRRlg8G7WDYLbTrGEkjkXzBuT5Q9CLL+iDEEtZHJFPfjW83y9arklofb7ZPb7uwUesGv1sGH1BlOk2JmDNupbTdVoKVc+xU3byOvRpaBkForPSFuCZTUBhVYTElux0VABh4JfBcOET5GEho8W2pc1KZXWMFeCYWOWK0MCj17bTXiR1GcEWeZwxaj96DlX23/80Bw/+ubYdoWbvSPVChGDig4oUiyVZn1fFH12PNr5P4hmAIavzClkZoFlMX4OHiCfdpGskCCtrF47I+GeKczWXOXwYlubEecHRhZpLAZzwcBsGzO2LCdTMPSQZjwe/S1lrGhAkAVgXfHh4HucdHZL7eBnZDTnJs+W2ySdpbv9vt+7/fHY94LBZNkJDtDG+BpNKxEM/kHoVoH4XDcdwuGGrEeaPTJ6jlEQ3v4Au2W7MBaJgUOa3/N7K6Bzwdg7eqWZXkO8R6NJlHWwCIaG1QlG6bWTex1Ryfeuj5LFLRVS7CkpVGj7PfMMVbQHhkAsCFU3Q2UOwFluWhJnm2o3eg1T57WDMqRJ3oRunKlmbJwONLEFG1FtHXKoKJM7aPjqkt+BV+viGWF416iqAYVgPgMGXTLR5Fi/BnVkidz/RJq/biJXFMZBMMnMbi6OR8GeOMoKO0piOSPBDCmQmGIKKyhTWZ4KITE0Ligir6jSULmGZh4iVV5i2xTb7jukySPk951rtGfXmMX2+v74zr977q2IBaTZkgSSMk4UM0N8AuwSqytj0bNaLMjBY4iQtAHAYLjZMApYvydZCcZoHF6WsHsFxtrWOwBsp6OKozz9arrZxqEr+2wbwsvPJNIUU17u2ME8d29806xHlOGUDBzlHvKlwPLGuq9oEFv52JZVXDpgrEMrSxJzXVfOJTxt8rqShy3XS/aa63C9X/MYW7OHus7P4ApK1bE4wbA1T2aM9waEjAakzOUEEYojiy/kY5wI4bHqY95QZQzmJ8ae0ymfJJGvl2qkebRdGdMmazQRBBbNxCi+jDVKyaRflGvnFa8P6+U+rh0WVd0+whC4sPQbvC2L6wq3A2ctYWAJr9fhcrmMe+aqBiNdjsXqszJ2jsVen+Dv42PXaMnAAMtkfiSpxPjTN29Yuzo3TDxyO9V+ycI5BtPU090MHUcIRnpYF2CZnpQGilmZh4fD4VGN1nTtAoOBg2+g8NelnHAZN0Q/MOEyFtFe4UKKxnokM8qMWKQLwniY35wDBne13dkdB1lsl8NfACABZL1XGGUA8hm/+WsZJMoB5GYb/3f8nVa7S2fXxb7QSRHR45Uho3T5HbxjmtkpNtCg2e6fn5khsyVeE0NRQMWPSGFNWZcNv3BJhvgoX4sVJ9s8X65Bwq4PhG1P+4QTjFgsr23uHdHYlShES4z49Ck/haGEpcIIBlVk2oABY2XGn4qyg9GOzMeLYNCEwR07XDsQYNPZ+fdSqg9miZrgGaHTYjPqRJkv92whD9PDfp/VVeVGLpogT50TRg1hEudNHzSqkTIyIZ9ZymBdB8L1elC5IIBgJSChrPxwUQkMYeC5CKfvpgzDmMqEWObtBKMUbCeiYGHajV2ddEGYc2B0SCdjm+ajKLIM0O232jPzjATdJpd5vLS43m4BWm/zWjSBWrWKaGnqertWQSlhEcy7wyHMu6iUYaToHxgOZt1JMNHk2rNgcHEfJLpUmexKmV9+4EYve8fQWGxkpQ/+AYKmMCj8CuMPq7+x6wVWXzgpA8bTfIlcso6/AKipaKRagizaFAOD9E3dluFhD1deVmU1wlxVsv6qatbPh8Pz83oJDAoSLhmprpfJ3eI1c+dplsAeeBRL0UoCbkgvqUMU7fRQhtJBVQ+/s5DBST/D7KfEUigWy8caxjCTV+RziYUQwU43QGybZqcCUQJMYg8T5xaLSPWw6ub0mU1FtOaH/Vp1tDGYgNDH6jJ+fHx+fPzxmcYn36LL2mBy2tOmyQTzLo8CBYr5lmAKPXGRbugCc6Fz69gHS2ihxqs86qmxIExo9xEt9tWOWbTcoAqTGLtvpO0nCCLRl1BmMmxVYfjQpCmAB6ZI8V93qx2rx6G2hElSV6N0FAFjMX94fAbmcb9sSGxrAmg7oMfL423Dl8PHH98e4r6Dxux+5KHOCDtCRXNmpSw2tfTsnHzkPfkY+UA0qIQcrP86DunJDMQHvsKei3nAoMzvN+Zmr2dOEgydomHUtpctkSJNAorjRDTUxCopnRuNiHhEKpOIfefI1XhVjBOS6PCy/XKr3LZFurwZKP4bgqGM94+P03AwIzVj6BkYTMo4ziV3cqlenrFL0GDTNgDqzwCURlLGzgZJCgem6oBc/fzm6kutWZeOxcJpOSiWzbBOh6GazGCwlugXhGjkaVT7xAWtdS74HNWE+E8NRn3z0oo9fdhSnRqvZXwH/Y/1bWS4JV+luXYj9cuwCMa42OT1Muangsi07fC9lKB4XYcrYlKYkOGup291fdrSlQT4XZcoRHNzc9OBBTfzFyTPdVFF2kxgiDQ6WkwWASaYBKVanMThW5SWpBmUdfRyNh8XxMzHBqWW3tgnbDNLaaUUKdlSU1ETXtA3JSOkuA+w19iBa3JJ5HeBYRjUT/zRjWB6HGFw28DvzNSQ6bLv9CuFxJUafrssrdkmMEQNwXODFBgUeB668KnDjpi/kypaRItgJIvahOxGXTEf57W6qXHAXTE/s9xca6VoQB7LT8/YCrCB7qvbQsqK94CtDgxBoIR+lj4o/qUR2R/LVKUTfMFGPH2/VaZJuxATFMCsmcS9fXOly0QSRhGDMAbDJLbz7fn3eBtE3xsGj4ocRQlxAspiwsKZx7SqnfVitEvnxe4l0PYfpDQtKqpNjb8hzkeeSiSMeAIlQUJ2PtWQTwnNG4t0Zwoyg1GzCUwATCLPusi76hA0WkhQxlf+72CBSZK80wHPfkpxv1LMiAVneh0rU2FuuOuGwYVRQvmQdZ74DU+BMy9zTm+mdCfcRwWWjnBCNyRbp0VKp4xpF/Oxqa3zLFXyG7gIPH7YwRMNaQuUSlA2VcjbO1RAk6Yog2PNBtism0iXodjugKBhtiOou+wVZkpGvnrDH+kCjLYv/mKuYsazoJKFkEA8jNk90rA8uMg9fmG745wlnIG3Uz5KizNXtUrMH2skilik+6+Wm6EV6jrHqgk9N6kqejhDwE+RXSwYjjZyAAw1rrZdhqRUCPmjG4wxIzDKzMaju1O6cOeF0YVpmacRC39+Z6iBNp3PMJvN5okjDGtXtISd8s5ZMb+dz4t0txvtigIaV5G9a9GgBEvEqops0LT6Mfs3SxcXNEmQypS+9F/io9rXKISA6YKjyag/uvXRL1VICYIx+0U8goGF8BeMnVp4Gu9hMClsUEZ5gKedp4cVdgYOC5Th6Sve09XxdnxbIAvhUiBL0NYuIhTwssRYVFCJG9D8j/EheUQTlYNIavDfCOZBXA9emaivQ3poLqMhViUJOqnG0ODMNAHE4Xyl8VOY1+AXDHbOKTlJABxLA5jxiEVf7WwejscjDa3UGd2PXoIRMKtNery9vR2vRi+7HStBptQ5vfUvCwJEGirVaUeASv4t8P4ZyByDmQdkJeSsc4bLdApA0TBW90msmPFpaIcbHFh3E2ymeqMpvFCo/pxfWRP5J4uVNBySwyIeWDxNB9MXDWa1Es1x9URNeG+5Da3STTFGmVu5mVYy/pBGI62X7OaXbLoEgRAV2AFCOUxIjr1C8DA3aYQtGqJfRaYX0tm/085Nwvhbul1dKwmzS8VQorldSBdOP2YXwXRDTsZivTIkNLmaDxuDMVeTUicYtCB43r8nwbTRBph0dTs+jsEZF/Njms4/zINILqRkwFKdVmxapfgTIFINs6BoJwxvz7wcikL7Hp5F7R/XU24w/RoO+q2OtYgbG29dcMw8GOpgoeoDc63WUjRyslN3f2OmESaqiAsgTK3AuUWSYAgYWJQDNqL5++/o3l75dEQaaOYfbj+5gLB5YfVa2U6hIQ9bECGf0jkGTUqewNnAihJTjhRm0pgPpoY17Pe0fwSm1ycnMwzS1qlL9DM6TyaCYSeVcZ2N2QW7QsH87Jt7aDAh+EpjMBY2sOjUXDlayiCLRzFt3j9tVmmBImbkAByqrqmf1g4sguisCKIhz1ixapGccQ4HIcHjbkfgTBQoUmZe+EpjFQcn4+rKP9O3PxziXldHNH2NzjjYkM0urU4lM6Y1UgaWqa58sFc5wXxhMN7OZT4HcKwhPllng1M9rMCQ6XGDLEgz/mv811/j27Qd3LGBrNOj+ZFzLZ0jhcTR35Ab5rBY0sMvPwmGwDAWeZZSABDuN2j0uexxCvTPdLrMuihDVtbgUTvDmQ46J2qqkkGsI1u87DDV3WgPc8L5XCt9crbyiYdZy2bKQIM0RmPyrEhjx2O6W+kJ7Vi3t+QwzbFwFr/bLRiku7pLDmO5R2BQBgWOBQn95eVFCUSgKSjYkXz8EqnW4H89FOkP/ufiTFadiIIw7BCHxlmcBccW06JpB4J2x06ECN2KiiguJEGMMQEFUcSFIKIY1JVx0bjyAeLGRVBcS57Cd/Al/P6qxKnuTetNLnK+/DWdOh03bzy1WueNdtRrJBWdb5S8BQE+p0mGZTJunFzyFBIl5j8sMkvLi0rDjzrXkJcBo6J5lSsYbnqzx4+J5BXnB7QzOq49cY52Jq4qPPYFwWgd6ZkmuvEDd8RivUItuk2u813E6PHRcYOi69KwF88DshbzrB26S2rtweUVoXBrAbrAsjUwOTkjYSuto17bWy47cMDDH46nVmks4h3JewB/+GeNFD+Igja6KKtVebC4Ih6PJRh1oiyX6qRm3YbxpCiqcYNEQOizJW7EcYMuwWnAwddgIYyRgeiHxTVjI1FW7BiJrv/iGVqWByd0kzSbTEIHN1OMKenRhJwRDDFD+F9bu3KJfxTYCyb59x8YKBDD/2o1p9frCQYQDBaty9aWRBNCJm5USVQrKGrrK+sG+2IgZwU4+whpMAoQ/NdllKQFDAFjDojZP0DHVuJPusfkeqVCs8M0g+pISdE9nwQL9GS989TUI7tXM3lHnXd8eopw6YGC2YK9TPagwSwdO1tvYU8VM3MYW9dEFJM0ajaTKGK54x+D8lu5I1eHVp0lWFrMSLSzokjTQnDxDKJZ3GioE7Oiy+YBVkes8rTSBqlra8n1jCb/mpue1OA00DEaLA6ju3TYbt7cDMwp7pv+nZHdkzbZuo1mkctkouDBX6QM0rgyzlJMPkRR2LrUCptkgqI6GNF5/mhINDE2oyStxkWapKloCq14ER4EGtGCARNbMjRHI/jzUk1yXrHSz4ye8SkzB+0BygAPwxBGcxSNemlnaDHt49lWLP0ufe5sJ3Z6BiSYf2RZYl62xCtmx2kmkw8sMQmz1qVLl1pZzKonqjp677X0KAybETRiwpDJYUCx7oXKo8jnGxg30YgyhyVgF4MYJTAKFMx6I8qqTqHUUHOkCsstTRGhAQVDFqv6Nr5wEexpuP7YAsadrAMLMBNYpEu9XoemiJIqmvA84SLMZhhmYcYVKsxwCKPx2NJZh86FBDd3sQkkmGtG52Zzk0BREpRCEYSu5+1P26md0cHdrf3e+yONVLkAi3yMjw+q7BjLIkj8m4cbMGN3Mix2ZaLsEjBok2VZokgqwJjEeFYkmEtZKCQzOV06kzTAYLc7OJgMB5xAIx5IrT1gwsikSSM67UtHzmFMNhzgFbHgYxpV7+IjdQ7ju7HeymU2iGXhHibYKtlTPRyImLEmExgTBpQEN3Ma4USxwURJ0WB9iUnTyl5nWauVoZG8Li0WsXGbHq0j17TsQCaZCUacdADsLvLjwfUKh0Cl+Zx7muoSRwMabmkzc3O1dDmkRsZjX7tiZn3IckjPsm7TRBA8Z2ZMDoN/kQMU/rAkEYYywPCFNVNgJoTHLE55panc0CI7EFJOYzizonqW2BvsGyBMiu/NDXVEoz2e5jrljqXn1nOIWgbUUAx/w/NydZi2lblHuKgVvcbgd5dm5P7BD84tsEOHrh065LeBGodIeEEsRohkSx4RLgr/sQImSb58CSO97VLGpcH5C0EkoDRZurLD4mV4RJOmlBn+FRyGBC/oxIBwNRNNvXNOeJ/TIb2aGLsPiG8NAEDbGpiL7T5xc7+2ZTKWreExh0ncwy4QmaT5Y0IEhijaNLcljwYd9zODiRQOWcZqMclD1BToZfEeYgLKzAu7XLrQvH79Ghy6gdvAqFrGidFIIK+r6rhHeVChZeWQvCwpnpqenWHDv233EdgqGmto1Mx5gts1ogPnkgyO8pBvYCSQIejbj2Z6m/w/USG0gJl3Mwp/YiKTLuKwb5WbJInECIuumAD0O57yTB9oqlLmNo1MIW9MZRZNNJu2Fb1YYfWqlByaVOABZTnDMnoBO++2k4xbHF2oxyQB6KDfbsY9BMtDDGFkDsRFpnA5wO6T2wCwvcAMHMarTBQ6jS0VHCIjVKxIk9ANYLNW3a1WA6eZzhpHbwNztRGjHnLOlNEkyw+atn2E/0WNmEq6zsBoltvE+QRuBw1HKDrhVR5bI2EUHPjYYWfBgHEatz8wT3f6vXMG81k0t9UyGw1Bo3WCgrVrigsPcvOveUo2oaKsW69B0sZqoinO3n48IGiUKZKiaHSqGL2qJgdkslztpt3fqXsnFS0SxO5yEww0N5+vseNgbsfVYkHB5iweM//RWOyjzN35/5+05LNoBjibiiYw0Zfwo6Kmzioxp4ncEngMx6MnQ5V2jccQan4pPnuUqY6ns/jHUd6kcWfDKPdhvEJl/Z2lymQkL/1gGFwwsMjKfDx/y5pda8hmSOPmMG5/nlqwEDBK3qdBMVvy88bn+Q7TsrMFu6RBl/Z02m7LiVQbVQInRYKzeQoLUUq/NG3Xpm+51ImbMeHnNRaYx7xDSJ6zeGBKYNaffHBk6U/cjKpSAoA8ZnbrB8dodMqoseagZFijFXP5TwwT60+89Hrqdoj+3zDQYE6jUhN6vhKMtMGXyGlhNGGVJDY1bmglo7Z2a/jZ236/P2x3w4Q9AwZ0WqDSYMVgsGGwLvhZMm1DGs12lzpMbo7GJkfGOZeG5/d0NkrlX3NtDzT/YfAwJYB1EljId7DYOF0wipkbN9AGX8NUOckBhMcXSWOOJm3q9dbXLKMGIUpSJKHKZmYl01JabdrH3tZazUgBr1wc06/5aGZw/FFQ5oSMwp7DghJRglxsO4yk3L7jYlmRaszgOd9+dwp76OF+7f9gx7y8cHVdnIVwYTaoOvMZGsdxGsNR1Jg4Q2CUga3qI1KY0nM2M/2Iw5nhav3ptN/utl5Do93AGA2tXe7QlA3Oj0gAHJigTanjgtyNXRJfF0tmieV1jt05HUGcW3sennqnE0aPkj8oh634OwUXbKVaZ1AMBpYDBjM3pYKFqzWByRQSzmIlUjmh3vpCRSkSpekIGJ4Eudae8kVwETfVcbXxY0a91FxE24IOHRtd5eg4cgSCyOlfNC1gLgBIAA0+d85wgHmOcZuLa4P9RpHNWxkf16gJJV4MxSeDwHwG5ye2oInfK0N/9ARdsxRQd2PVZIMvSmtYCpJeqQ2Hw2l7OB3W6q1mklrY0M4UdJmINNaEF21cDpdFCQ48wQWcLQBzHRjOrYDBnt8SzB8Ui3yH0OWpPt3a62mQqaM004bGGiM1G8z9K/cX2ryovkccS2qf5jTkX7sgQQ2/ojUgF6eET4uX3xIwfXjQpps1k/jHGOkAhgazQSDaoAS2NfgWrPPNtea7PHAyaPxA/qT8TAaLwYjDE4AfOUGyEpAliymAccj8VIBsJl2e3D92+cpCG3CInIik9tVrJzw8gFJCgITYQYosaX7sDof9/ps3b171eYLXQlIa1TIVDF0APAyk2BvsG9lQB2VIZSNYGPYqZ+sqFsGcgwUYKQOLK/M3DK0amkBiKD5gFg0X5oIGc+YO9uT+nfsPjv32tB+qOB++00FnmbIaGE5jUARQ154LX1/iZ8G8fPbmbVvStBQ0nSrNGeYzguoYaeRplqA1fTfLbcKm7h8UWHAzg4HGhXFlSF7O4vNzJbCdBqNEpvAHQyB+IPCLjbMJbbOO43h8meILCr4gikiViA00GSo9JLWJGKFRmiC2pRl7wJrQUIPBWnIQmtGQkiendoSxtEkPLT2kE5rQ0pIeRmHNHKPm0EMFc/EwFS87TNju+vn+nwQ8+ItJ29lt+fT7e3/+z15IZzKZtF4yWVNzaAhuXl5dGsTZAuoHlMSwvjbKCFYR/7LI2NYwekiZip1MNlGGesS6ZpBlAf2ZXzQ4WpekpsDBoNBTPodS0MjRgDnDoHFg/iOMOhlDpelGNC4m/d4agE+o/5AAotGTznQvY+xjngkpY2hmbmpmczqCA9PwSx89ZFRRt8dMATyo/8DkK7bdDPuYfvxMA7MDETP6+CVNW5vPLlmabRVDGuEjnGfGtK7uwXwsFMPyklj6qQwQbOVL1Uv9sz/owvOpH2T6/AeygdkAAvODyo+r09kz5n0CGgdHNNo+mV3tdT/ajFsGBpM65OlR44ChcV7D+wUDk2z6ipHuwIszqwMXFtpaF+BpRI1GZ8RS2ekOyeRxJmLM7D8GDIYughGLYKQHNBJIow0TJ3OkI4DSmin/P9BlShm52es/PM33u95ayRkDCh5oFDd908wWUc3BjLPBJBgStJnimHVC8rPFSsVGGnfEryT24kK3fRFPC5iVoeQxTG1ssM2Kk0lN6ixwkp20QDoDRrnsEj4mu4IempudJuZpc7zU2WUCYCqOXqXL6++8/JlZbTItIKbr2WoNq+spkbxp0gC5mie5+pf52aWLAWjAIXYwZ2QrQrIRNCHuFkylUinYhaaFigCOjLTpNfV/NWr3Fof6ImDcblCLNEgk0sDf5GbRSBeHhZr5HX2mubfQXNLUJtDZJeNMmEonFztMzRGk7nt6DxVXrrge/fXZZ/fOORt0u1rLdbBMWhaL3rnjvZPONm6uXtVcAFDICo3TsoR6feYBP3eG/NFwqZA3wuBo4VDRKrLcGJREflOsirQ+xaIm1CK/DS5UEk+X7kBJYUwwCKN4ubRyhXIJikplv9h/zZVk6YJfqamWmWnH2avrqgcJjzusOSfmevDgwcOHjx7+de9cNLl6Ob6318l1cmXIot5YtqGu/mqviB6GiuqZN1gxHWjDQdvjSyXtvKySt0sp8pynyzY3wPv2a94uWgo3KySzxi1ERVWIRsyiQxnuGVjOpAvCgNJnUbevwq+A6e39xEIgmXiCFdn0HQxAKyucEeWoiOsf7MEfDx/9dW/z+fKH9Vq1XO/k6rk6Xuf1xmI0Bo1jjVk77GQ3RuEomnHGzJ24X3E4LC+bxqDxFd2BLt3KkL9Y1N6TfYGCTI0OSD2TupKIMUHlRwlAXRm6wPJfGCc5v4s2TuS/Z0gwzuZxu/6XStyAIAln97js8rGBefgmvvbX47V6vV6udQApY0RQGhaIfspmp2aXru7I/5lDN5ztBhJpEvCl8LLt6eldaBZ9IcvdnmV5HnFjIWw8nCrRVIctEmGKolQqlcAZxvWCnotIQyF1AkayECwyx49g0RvXW0ceSN4QCiLo+zQnmIaUM4iXxPGxzlwL5o97m/Q9m68QMysKm3q5nsspGXjpcWLeeDx+Jyaa66Sn6/5bB56DA49gLIusEE4uVqa3t3cnd7fzTVyq6KGoLHCNg7hoaz5IykrDvlJSD2yfKduy2PpEDMznrTOE6bsYhhh9AwwEgyYyREAF+SN+BYYOIHKo6sn7nFTSZWBgHjw6Nxnt+edWVEGBEMdex5tJxwiabMwbjd5Jz19epZsGxn+Lydo0buoBxn3JSmV3clow4ZBbPhigSi50F1oTT44tLF+0fLz/QhIWMkRpvwSMwQnRK6wKprVFxOj99WTQo09i2ubnADQcOBMK4lHUI0i+4RYdXbwCRFfqMBfR/9nj1eqHdfQAJpHY2somEmrVePF2yM8xBIrfacx0aaevkgpumXTr3iiGLCqOr5nfXl+fBGY6HAxaIY9fIw278taEFn3XFgY9YACEgtAAVigkCaJikD2BSs61CUeXfkMmFBHJhAEIKJdwpq/wJrY41Nb3P9DNBpzpMILomrdG+oDrEX11dXOz9mGtVl5Z2QNGxoepRAaj4qSjWLoxPzNzcwm7iDge0RQt06oVKtvrk9ju9r5/dLwYIa4/ouIPjbWY+q89MzDUdScrIV/Bnpur2AUeIKWGNZWOEP6wSBfKPtLAogjnP8euSA/ulNBpQwprb4pzjnZwdcRcotNVBzjMFtX1WfW5KsKs1GuPb1ZrH3bQptXaSmw1ErhZutXAzaK5XC2uKhqbOtYkGqGwe7RB13Cwb+Nm07tys6MDNQA76B0x79RcRePzQCDYHkrZlbnK3GIFkzIhT2Tw8iwoj2lYNjQrfQyC3KmecqxvUAQOnMkcR3E+MSewODahVZDqM6ZG0PU6MGjSuXTpw8dJy3U8rTX2TGuskfHGvJmpbJSqU67eLnvv5OLxRpd1E8pAAwyZbG2tWbDzkCDNdnMj4vzhEc9oMTDSHYmQwUPDli/S/shvFcjf22KZUz0KjKzOzC5faJle2bAIpg8CnTHuncCdTEvaO5vjnF5RjAhEGCR5kQSYNVzPq5Gpr/AbO455E1stdWfMON7YVtob78Tr5+fn1dPb0cYMP2ccjKpHJujBNG2lMln+xO3nx6QGgfCm0AeCRZ9d2Lfa7SCldW56eg4WG5iwFWTjOTCmRNZvMKFRqr1isq0S7iWp8hg3Hun9y4Z46uQaGG3NsmbLrxUlJKuzn34671qRvU1R6VlnrwczlQbnfjaT60TL5388vLe5GZ2a70Y8GxuqmoKxCBlo8vltoUxv59dO/BvuUUsrkCLpIRgIuPcr04tJqziqsrpuSqu9WAAm5I50F8bMIWKTmeVpPQNCRtbNvMDdbVxZkJnrpthFNeS97ZEspH3R4Iy5qd0lALoXwZCYzSs0wBA396mWU949b33zETB0O7Fs189PgyYTmA3FzFrzCBhMZWbtBh2Cxa8Nhyj7JCy3xU4NQUo+G5bJdXDySeLf52P1MbJM8J9hECnbykCBQoiYbii8wOkwLCDDgwHRtaPx3o6bGV7bydWZBiiNV12dvcwH4OREIqwezVajYbLaVIKak7t9fr5Jmijn4vM7+OjBretX+zCw5I/AwY7WTjbcoZP9vD0c8fxWSoWClrvoK02v/zidLNjJ6R8nJ9crymWaVYP+7vKYJkyNmbiamcxIwPK7M27+xp78/ALnDShpQXood1FtRzGE7AzoSfPQaOsJ7Kxenp96jTnsNVfiTIUyVwdqr3Za6/AVLFA07gNDYt7zRkkA1dPa6e3T32Pzl3euL83wYBsVunESDjePMBuaXcEcbhye7B/ljyzP6G+FStKXDKkts5Nh2w4n85N4GTAspWhIyXeC0WDGB8Rx7i9ycrBuBL8ASoBNozYOPBzzKX9iVC7BjMOyw4qbf8GMJZNreYyigjJIk9MQ4JUw/BIFRm6WjXYgpQbVy6fV8u+xFm3N7Pzd7iALD8/ojZMTgkZJIN/zs4ODG+Hmdj5lWWGfnfdZ9C3B4DD923jJzifnbKxZCmsxPTK7PCETTOIMYVQVz66Rep3jth+1SVasTHz7xsJ6gYB9gzHhaB3kURr74lPOMDY+cS1DkzFdf71aRZ8OGcApmluCSUT3vDka0A45LRevxxkJlhhFl+jUWN8choRDFjgynnYEzAYw+XzhN/5yO2kNp3wpJiD3cGRhaDy/P5xKsZYq4Gj+7lkmMTFxjZq2NcH9lJCcTTwz9jfhboJE0VG0tMdW/2DTENmqtyKZlkHjuNkox3wGL38638BcC8uzLWq9t5OrncKSo10GJq1GILuFMoxpyBZV0xnN1eqxqbvHTGzdmw4OQJJH+hA7+Jm+AOdojW45WUgR6kwz5PI2JTSQIpknC8BYI/ydH0+0WmMXlv/W9QGwUGRI0S4KN8kQl0KKSs/IH/2PQnFYlABGpc3qFzOfkrNcQ0P0hDRjmc7paX0PpJqBIVpMzIBDb5ZJpPUxXq797qVZy84fH9+9e7x08/j4eOnW4eEN7KR5hJvJTviCD+GSXCplsdR1Rxbuv5C4QBGFZnEx5RtqbfFABzY2f7KuGaAzQZHIr0HFiC5fGY9a5M2v/49JFwdmfFyTHsnZnM10DXW73WV6yr0O4c8AAAzxwl4wu3WfX057s7L72aks2tCMAhON/yz/i0E69fPdpZ2DQ+L+xloT68Pwxb4vXChUdivNQjIc9HPQa6x7MRAa9tmL9m/d5eU/F5YH/uwdGIQDEA9yyK8wKByMH7Fvv/2WV9n3PPssoJAUNOVpCQQPJ/4E89FQi4TWKd8+zZmqmdmagiMjS8cySgVZnhRRbzwXj6azcboeb/l2Nfd7PPbT3eObOxuIc2jkEE7YCCU25mnT6FSG/6XafFvaOsMwng/TFx0s7tUKTrYhQxTGiQjNPFML5ZRYSY1EyQQx1KlxToXVMN00bk3oZrZKszmVjJL5ZyahxEIH081M2AvT4Zu8GbQfYL/rOTmbu5qck9SWnl+u+76f+35O2tw7PV1taXnj7dmm/h/63jqsVmEAQRCnb2DIzEwTmr31g3Hji4cG46tBfl2WsGAh96kGTWytvAmK5AL5RqrV3ps5c+3ZJIUZrEg9o7ijxjhhvIEECSlsMahZkXhqtZguHp8nKdp2oBwrLO/s7Gxv75A6oACztrZG2LmNgVpQMn+GjQy+2vXKlT5u8YDRgU7RH3/wPYJfiT5t8gx8JjOwwiDcf3ZJQzpAgzkkj1i0F6l79uxOaCXS7S8fne3N0KeZIMmYjwATNguN8l/3UjJhRmeXhkBz/JbfivtpPI9fvHj+/DybvHhxUQnkCstaRUkeN3t+3tle26GmUa3FQ82eZbZUcHMjmpaNOwMdh6enh4dXAGEZwSxFlkCMFe7VD/UYnZ2dcUTg4MyKSX6kpHkd0VqZW/1qCXwj3EjN1/NBUnC6HVdQBhbY2qcNTSTgxNiCzgUF41fZY905fs6uDps6HJ8XU+HdQqFw797BARBrItLaSW/g6sGHH/042z/b1/dmMzfWRl6tMi13nB6+2nKq5RD1z06Nd3+BIwJZfzYEAUqcJRKJubk5jryDBRgTZBQzPZU3t7wVyOiWLwRMkK4/dLMaitY3ccbBI4Qxf0Pj+IGJAXNCmJkCDUsRGFfsILy8qNRsPw6eqMJRr0GCSFljeh0ePz74cAqe/itvHFZbsIZjtXr4yoyiSyV8gOACBDvEIYpFaZ8nmkucYYyCjPQXyQpyF04OyLjFyRcK5T51wpn20MhINO9YJsTaUZ6HVDdJQxt9EuR6ccays5Xjl5dhXr68uEgX0xWqoR04OoGI+ka4CQcgERFr2iaY0uiv1p1s6SDM+pmiuSJskSmQCGN+8c6d/f1r+/tb+5JYZAww0IDjSlycGiXvuil7vmh7XdHj1ImqXH2TVw7WsDmHMcJRLagHxdOA8dvZ1fMXwLg8nJ/zYOOtWNRGIptUldIuMbctns9lj4BY6R4N7g13f8S2WV9Tn24dkiyz2tr5WCjrBmV+EZBrW2h0dHRLgsWgrN831eySHiKvVuxx5A/4cqSCwidCpEXp08KRzbCTn2boReSMixOTwqWA4iyeKgIjCUcHFya9mTo/RufH9tHJ0UlhgoD7+XPTHmhQYIQb3hvsnn2nv392VnsBt5qabk1Rhr8c/OmrZzKFuHIxWkdbEad/WS6T8BJ5L3C0oZ4PfE6sHtb+iyItF53OU5PlDDR/GRwXBlMCFDbBUJjTFy+oZp7EAs3xqhNJFWE5P07ZNj3pyW7hntZTxZwpB4+G9/auf/bh+BSj9riakvFxahif7hdiWZQlgKAxiXMDZsjAeDjm8j2IIdTjimzz1TOxMLLCVF9/JteeDzpU5emRhow79SBFuez3l8uWZSe54IsLEuUyEPvVxacxK5U+R8fFdPp4tWYFjnYnCLjl5eVtFTdZM7w3PHy9e2B8nFHterfCnhD7afAZEUZ8jY6OAdI21tbWBg0s1xbn503GkDJi4aHsAkIgXt1T5ZtLzJ3N8RWtDG1XIBJ2ONAr5zJOTAnEYlqFxYs1rZfxGludyWL6+Pzi/AKeC3gMCjX6+ct0xEkfpwkyagG055UU/UEgUCoVChP3Duh2qAKiGRyGZ0UZy7D2cHhQiZ9IEGGjCJSGBCNnyP+EV5mNDAwUWnrgoHir4C0iYKLBGPHjRGiMw6Q/nT9rZyYXwpaQCjQ0irWIZceTFVTkWsGR5I6B4VU65URW0xpJBWP8SdZqlYptxejflte+JdAeAIPAIXWHabVgGbw/9JjEvzaq6BJLV1tXV5cLQwZdE47hORMPIHQGRKWnBBgqefpjwOTqOKMKYOquxaRGuxlw2vVdp2DG3Elrb8+1B8N2nG31VIXx2cPBGiQYrj2beVohvtJ6qgrgEIKIFujJvQMCTd48ki/XBSUUWMj9x/N3YDEksCDXGGAaFY0r5TlviPAIyUt5YVDcIj431+Or4gzWiMYfoFTZTC/JrM3mbICKDCitscTyadkVtFoRjfnw3dRBLwmr7GZ8VSz6qXCgMTwV/LRPJpZNFfgOd8yWIRLL8ODeek8CX0Yh8UzxaEYlkCRjEktQwqw6pvYJQQfDC8xZj++1ECzEmeoVMKCQG1S3SERTTJg5hmcgooXUiWRBqQgGb0QDjCQYdnjjKQNTSRUhgoQ3QqtUsKd8QuIcfPsOM+kD5qtHWneMP1+5MK1iudsleTCegFIM8hAYq+k8cYct7lr029ZvCBrKnq+jqpwpB7hu1htA4n72AdW5RMKe8C1GrGm+Tq0C4334WCOJBzL2orh2fs6OQTJVEYrQzTFZK52cFJYVbFpzEDyPqGXDXw09nruzpcyHw8NBHo7OehjjEFAqC1hiksxQQkMNx5nmKssmLG48hbMMKRENAAYmxoQplrJfDc00iyojXIMGGRpDRNIo81NILPHNpzYRBllDWBMoYQ6FgL7gT9O2PRgYAGZw/XHizlarMh95KObIaz1FcRdMF1QA+EBwtYpwCTwMg+8MZ17r1eZlORCTcrlAwE6qbcYZdv8cjc0yzgrXg+a7nHmmmUagCcYVKAYGb7JJbLGdvBOvFGUSFiUlu1wul45Odmlztg/WNPrcmhofZ6IfvG9guOJL1nhv7uotT09ypnHxW4v7rUtGG2OjW9QCioHv3sRNrNH6LmtCUcbJcL4dHG1y2E83SRicsfEmKm+4eWOnKrC4gebhaHnBiSIk2WzcigTz8awbb1KNIl2zDQ9rTkHZI3umxgcGuh/+NPR40f2UTWE2EDwuycBJ7qmRRwRZ193OzqWNDRN3MsvX3HH1Zk4fPorxdddgwIly30s4jC7Mx4GIv4wC+DYdzYsxm/rXGk+qXCasklmzlePgIBSg1TwBI280J7Czs024fT47BQxJM39t1CSHdIljsnNykpPniiBRg1pvYZExSv8t1Orr4G5+bzRWKvPvlXOf8DLX+3tLy8hf0+2/RN7fZLvWKkt+0ipKt6PFM5sChsRJuwIEuYUsJWee+sFhVjAMtbgNiGGhHShpRNjFHDOMjg+srAyuDyVUmsXi0YhEAmby7mWvOmETB54sLHTeFoup3ZS01o0N30Tv8hq7i8EyLOUwWRFkm6/jEJ6//sYdLf1ch1W2ajUrFo3muV+rVgAY7DEIDSLWR4WVYGwUoThS5iVLhzIquTRmm4p+7fX+ge7rDwfv9yTuuA0AD/OJI0yRZA3vXRYAbk92dsqQhcnbt28vdHa2bdCPqjSDsrTk2y0sX5lprkZj0Nj+UjBIol9tdoen36uhaWj8Fm7oY6a1jlm2Zk1q76qkPEGQ4BQkYskKl10cxzEk/AX6U7GAAsuRQm2XvFlrmp0dX3n40/oQbeY8PTNAwvkfzG1wOj2rAJhc6HSpbgDDT5bAgWVrjErQ6XvypLDM/7NYflJys7wUzIWqHfzO6WnzG/SaDAIZp1y2rRoF1rYIHqGRTG5jw7Nx4pYVMYYAseQGY5yFyDg36cQiGHwpXJ3oONieYUabImmePQZmUe6YvAbmPxJPC5OT3yPBgAKVYBaUM238pbGNNtxa8O0y5GoH9WpI68zN0JELw9co9A35jtPfDw9bRqL1mL9MVTIh49KoQhNpyG1xAHETJi7iTWGIRAoYGRKxFLgd0sz/w9mZeR2YqZVh02om8Ib1cFTeCMY1ggMSBsf3dL4Bx40b39/gDA0wGLOxBAqEvm+Yb//k9u9bV0M5NjWu9u4+IT/fWlt76+0Z9vDZC+JeCiUiXK6VuTA4gOFkY42U8pSUSP647fckFoPBA0FiWPhq7pU+Sd/wZLLZ+3ookRAMJKjLhRGE5J4EYs7vvvsev+BRyuDMWOsGJALEmX/IOrNfl6IojPfN/+DFiweePLnSB0REIhGEFHHN01VcQ1EJV9TcmFISY8pBFUXVcEVrqt4gRAwRs6SRCB5EEyQSCWn8vrX3MX7anlaC8+u31tp7r73R/0KB35SNuegEnS7LpK7QQZ6ayuiPtKV6mqOxE0kqkon2zYhbTBGGW5NmR0ghDp8vbwz1TzHpMw4exsJqunf2ArvudXpMg1WcKQHKmha54oZKQkow3PpYIDwCT7R1Ky98EMyWnQQZATYJCWZkhMO89ba20oz0ht4cRcj0Od7r2pMnFM+hNTb6iQP6QNqV7J1aNOvF1EWnlzIboLipJhgNBDAoV36zCIDRSRNX58lS4wgzPxO1EwT2PTFu7j9wVTOaFk02R8kS+eIQxIB4I6ytocSCb9w9LMvFEsIUBqdLpfTa8tp0oWfvXTog2kunF45HaaTqmG9cu3hr2y5EU7MWTZh1mu1nK02ieWNueEHCvA4Y3FC7YDrhZaliFEjDpSKYPbeBEzHFoYiFgUa1TFNNUYjFjPjz7mXKsPBTePMMmIPEEn6M2K5kjm+/g935AZ0689qLYxhRtg/bmDudSGgFFdvY1n/XixdDCTat5DzMSpclf4rq4A52aQPh5k0e3hGJ0VIw/Na2TbOb314o+EKMWUkmuLjtM2e47RWS3XuokAxblDIjR54k8bd4EsXcycjgOhPYYsz2TtNtnG3L9qx1cvaPUpPOnThRDYLgSDURi6cvUII4VvHixe0xFGoaHFouvMELjYzuxSodLLYMCnPeOSKJhVLWkxTV0H/AtcsuaaEJikjAsNuHAx0GBgZLFEOTsEWDjEJs505iTYLk5FMU6SpcKJXHxdqr9D5JjjZtQ/K3/DQExE8kguBBPh8kWHqwxZdVtY5mUrdvcdO3bCpANTACe+WijNHKyGeJUEJLnDK1DRPTHeMSxqGSPM8WM0JxJA7jMCDcvbfEfsY+ThIHqS8UbwsfhKImQKRwoT9LC2CqVXoMezvWzrCDR0zQIQySydbWZBDLlTvKe+r1tq6JG6LREEYIGlVM/iJjiC0fXZ7EoaSkTDRbL8WL/Matl6waM18mVWChYkHiUQxGAsTjbaUKkPZnzBRACCwfbUzPIKlUkkGkq6teztFrDPLJfIA7UqydqEscCehLVSoVaBKk1MaNHeW1bROzu1JPmGIzW2CwQQbgMLgoY8LwkpwnhsEjo8VZvZSLVfNJTKGCaerv48uxCMOungpdPswnagADJoJFJL+zfhCubIIkGLc6spttYlKmignJBw/y7YkjcOXzPJOtryqbkGigo50Sy3Wk+2ZT18aMAEftDw+B7OLH+79TxaFI2h+Y2NVWjidoySjpLetHKsAYCC2czJOQg9fLl0EhwKjNqnAhis1nkLIeElDa24uFVCSG6Jac4MsippIm+QHJZjoH6q9tam0NRBgEiWKxNHFX5sqTu3QNqGpUaate4ayFp6IsDLHQFji0NV3L0qFJb4wTvrCQK5b2EjDKFxDs9i/bBYtEZAWMiQ33DwqyADNvsOV6sp0USRTPdc4avi9SrSbaY1IuR1rmWyt0CnmRJ7a3sB3hohBBzSfGdXV27kpdA+emcGAIZe+oxneRTxYjAQUSlstZlst1cvHEkSRNjBYtYTwOY6J3RhShzCPGTRLDCxKT4muLpmWV6sZCz2iGTVm2Jh5H9I2T/AHbDdQBaJLAyCExbb5OYm1SoZDwE5rV9ULPWubabW5ZuwIwYMZcYfCgJt/VFsAiQ/mbBBaaM+my/SmbWF1a6ofOhEVLEEYiDmWK5vwqxgBI4AjJsr410VWbfvbYje6juz9+P23b+IisqNjdA6UyYKZU5EKywhsuv5u50FRjq/cMlDe3nzy5S3ZAsBTdvMkVUzhyj36hwMEDFpGoL1OnrzkuEeT5npi5M06S/MhogLlsucKDAcVN+W1lMwnnNBmzQkb5ohZXErHcnl0X5x9E+/bx/6uOnvwwwjpiXst13T+Ci7vWrpV1O+Zx/5SJKsEnQoPMA9OVre1KXSGQnuAODrGi86PKmIuYIhQNKXYiBXmSAoXTtmrwprqgQi6et9kYIGIxW6xyhQMMBCq/Y/lhVUwclK6n25NHkuN2HXr4cN3Fbd30F5sao7eNn/Pw27fISYnyBtE8a3I8fapF0tOnLS38QsIMbwhD8VSwkA/FUiFbq2U4n4E7/2jRotvXDCXlfbHoMlOQQ9H0KZYga5ObWwaNGgmMDTGW/c4VNxWjwnlpOBEKtYsbSpb6vP3Wjf8Auzl+27RGo0ej++jxU759+/bwW4SkYvGphs0vQTfEPj61HjwACj8ncitXutCp6pRJQXObkEJcF52WJ7NmQQJLxvkCiDeFIbckwZKTaJnlK/OWLd9JnDkYlTOfKaB4a5AqMDeo0VF1OJ/rfazfkg/oa6PRmNb8wemuyc3mtmazGZGDWLhqFL+ABg4ckueBRgMSRVkgUOWpguU9WXzJyBuZo/YEF6RJsUy58tsVB2Io6T1GUo7nxkESwxsSp2X5qJFaQ4arFQdgb4XBwwKMdFeeXNf43V5//mnmd1iWfGxM6/ZD4TW+OW1aA0W0ZgBnjXUN4HECScFnMJtgEAkCJsbZJZyh0woMNIiLv0qpP1zxIEqVdKmjvLpjdTxuLfMThBklbd6gIcAo/4kpj+QFBvliLCpexAtDSjG6+NCnTz+a3T4C8/HrqfuPfsz58eNH8/6phsE4O2cTlNZTGyUePU9qgwQYSpg4vDMMm4KhAHDHKXTlL/nR/rgqmFwxEBddWrsouOLsmhlLwCpmmYYZb8xYL6vHNkACI2kZxpCyKb9xwPN325o/GgJBX7/e+do4der+/VOwOJhwiQDOGlofalEBpK2rZZSClhbBQCFzLMrc6UUKgKcB4E9lUt4WWECBQinfUc7FASkSXZAIpRocvUT+u4m/I+BiyaJ5sDUorJIhjKESd2x4+XZhAxIJFFju3Gn8pYibLiBCd7bvUu0EiRYOMLKmohrmxcoGmAIwjIUZD9RLbnDRR29Lp7aYMYUkcadr2ZAtwiFTtPWHWF96GDfSAOW6L2sMRr0kV5OZtGxPjtuwbnyz24fvEjCexXB46IlJwKwwKeE0SPGb64UKt9wKmrPGZUwQGAzjTKeNhcbjETJ9DGSoQ7EY24MnYLD3JztiCTh44MqRo8HRo8CQMsBw59Z4XUOTBQy1MPkp4izM/fOb2jc8e7it+7Sv/7H81ikUOWxDlaShChygxDSSvLF2ocZPDaeehZwRjCkKDjquJy96RqN+vJ/YFR7fpnCB4ATJVUyRWGISZyeZ01grnCsih5TvMLlIG6kS1r72+bfxo0c3G2bMryBzOA0weHoYWBAXFg2UFEWt8o9viHJgMKIRC0cSYhhT2sPqlLLLs1P2QGTiXRQWSPBFQbaW7TFILEP4JnCEN4qvBWJZYDQ0Mn5J3eadhrGTOnzejeat8S/33p09pn/r/qtnwRjJOwKH1/3I5c+fBcML1ljIWQrJcCwmzOaZM8lAuV/UEVnWnNBIQqoBBARPxRcSiwUZPTHzBABXPpDzRNIbWza7HyzUtK+nUY64Wn+pdUFQWZAMjr6e+FaHx8ePnz+nCUxojGQoJl1U1iKfBWNEijQXbdBYI8dljE06LcCkMud6gOFMGU9wOgm5mn4MEEpPoaitWOjiFNm4mJIdhgU/y7q/15fiOI7j7vwP/gM37igpLlxwK0qkJMW+YXJBaTcas4NEUn6dIb8ihYR8axEXSxmzydaYHRdbthJafm0hz9f78zk+frzsu+93X9R5fN+f9+fsfM45cJA8nUVh8Zgy2VzOZvlNoQ5zgMMEylUZ2RWZRqNdaMxpVD9+vHP2xg1dy3dnFRZXF8O8DRhBoHgMFiMRxpowtB7D9ff4snP355iYHIbSwLFQHHnkoCayFG4tYk2EhcXi3pUs7tgxn1bG0bhMZ3FhKcVxFB2/Utp8miUarc+yes6bp7tP82ta/dqqVbVvtYN2Ifzj2pKPuz9OpXUhbz+/fftICZSACRYrDNM0ddmxCQpVsbYn56A4zTEWN+CYyMYaDAcpYFlz+fLcOa8pTD7DwT6S6X30xrw9nqJkVZZSRLioaVv5POuAF8+fLpc2H8/kioXelq0nuNiLM/AnT5w8yBirffzYq/38/O4zFLOAQUKM4lJ/Ugfj6+KOVLFoMtM6wX13VCOLwyiGkQYOv16zXrPo1K0CDgvrbpSFVd3Xtl555Z4WLrQkPm/TPmsSb4FSKsVRHB+PSWRP+VFrAVcI92qcoP/04c2n5+s4kTXz4I21evtV+6k9vd7FuLr8h0EDxijEZmhZ3OyuKdl1C5ig8aWB40AP5s69fGvRLRBmuawVN7JBFtaRT2eFgTNd/pIpXQyFkcUlWhlHmSTJFde0H/Y/nq1xPX3t8ZkP/I9SPy9xn+zBKe7kmJr6eRUKFiuMLH8MM6sK+RPjKAwxs6gwahhhTGMez7mmoVbEIxL/KAANX1ijoqgsUOiY9WAYZmBWXyhvy7WXFt4n5YsBE1thGGiZlVGGa7Y41dBu9Xt3lt/Z3btTu3Rm5qwpIQ6uWgtm1dR3fvSUxVNMEiymcZUJFsPoeEC7l037/DCTxnsAeQ65xkVwx65RH91Z/wCGhXaBoo7RRWVcspDdnJtTaC14uLBRjNE4TEmMhGSSPFnPjbXvG61mv0d3kI93Hl+60evzxdlvNQbZ2u/fOVx56y3CPHv06BmQFPO7MpKIks7JflK+n2KkMY4fbitd5+T25umefPHahg2ca0E0BwquOUi4ItZO8h/fRmdvW6870ZutwobEa8BEyRfl/Wi0puFTaD1sNnn0d/eoze5es1k13Uc65rvy2VuePYNCWdKkls4MKwuU1LIxxWzy75el+ZNzbiWazK5MLmMF4p6L4gaiAr0G5erCEm8mwwXkLPJvyxXBHHo4vzAnF0lDhBHl/ajRrlZ14bmlRarVfq9/p3an1+s3+82eKGDGWOqpRRg+Qvf/j/EWjTJ2wjvsSIbSSENsKZqIs5KcQ0R25XJ5OHgQAdEHzW+3WGRyHFCWTq9Yv3hOgX+wgTsDv+QidEo5TqBg6baa1KLXR6Q0CYNsrW5PnFIOciiJZvx9PP7+CIxpUsmrJzyQeAuYYAHjlg64PIXK7BdmdRaN9yhapIVzfOWKlSuOg1Lv5hhsvj5ElmIeDKXR+ZfN3EWja+cXcvdgMeEbZY9xFjUK6ff7UpEe1ahNsdpC1k599xgyeBsq88osV5/IchuOLGCg2CBLLWCW6Wz0PPYM/s1/4PgBh0c5zkMeVx0iiWF4jVEatn3lhqJu/tMNxKN8EsMBU4q+yNJtg7HG6KHxoWXoe753h+6f+qZMjVUZT8Hy6tXVZ26MHXly29cFjO99K8x1s2iphspQmv0sL6WcUJ/NGm+6mYUnOGwynIRTISgQgXEWcY7H7B4zec7JLWzP5mNUTEr4ygHT9l2OplmleVrVptUKIjUi9kxpvn2rewt1ASPHkdu3oUjTMQxF8ec8deR9QOs0ahmGGeNsnzTiyJOCpNmsqItWHI+pjTz5HAURyU7wGIWZlzqU4kx+DldJtBe22wsbXxhpSiIMYQLQ2CLMXt0GA68Kp6knaqZ6uaE3mUzGT7A4yhGCBEqoCxgKYkd0PtQFiw0zjyHSOBAPOGUdlpAyoisrOKHjeief5g9MpE2PcxsahbbLyGuYzgzTHVKaJqEu3caI6Q2NXih8wRMqHj/QiEK8JGDSyrBf0cBSWMPVweVOZ1Fp9uzRHR93p+WxEmWz27NwLtqBCUdceLbF8QpAkTggnAmJNY3HsOEppjH64r+XloatV5ieZUlft3nNl8N2o2Gvv36FMzjy6gkQ8kQQft2GFXoGCRStY1qgKDusZ1zEuctDpmmBLoZjkgtorsTqnUgaF9f9tnt3GDUI+0TDdBvv0RBNZ640w6F2L2x3l6iNeK1PfFSrXXiiCPNjMj5S76gsvjC+RL8xUIhp9NAXaWWCRhXy0Q48i2g1n3Hp/S+5EsdoEiYCPelTRhJVxpWhyPjxGGmiKAaoQrDFw2HVZUjsNX/KZocu/fQDw48ffaLajDuDOgIfz5LEVSZgPEUYqwyaNPt0+S0szyF7XuoZzekynislNBklSnIwXCIShzHFyGkJgyaJIjedEbN8NYw+44HyHqmK1pxMBoP6YDyB9PXrj3GFapC0c6CklkqlMuMoAC6jC9nhMb40nqQD9VAoH46FVRuyDYvVAkASOUcGiTCxtbvtIdUZ2lQ0iXwjKIrGET9/hlIfTZehSPgbw+qPcefJ1WdH0ND/g0FFANNQE0+BkWLmzdu3SVu85wUryztChPk/kNAE1bTTbGacGcEUoBLDEI9hUKmRm8xObKv6hshnFhoCy/fv44kqgGkojiz9SefVM/YuRyqD8bjjqxEms8ptIBVilsGM/fvYoOmLZVZLN7GZGG46S9AEVSqyOE7WHQLHsU3ExCqUCRgs+v1k1MVCqtJQGzB0jKNMtIMfdDps1ICtnkAiVowjz4i2vVO5/UoTc2rBETLQx2DGnvTAr2yrWTrGDZEjvPLAIJRm2mOiHCMncghYJPIYt8dPRm2PceMIi1XGFQVHmJ7YLBSVSp3v1unwuoADKESaQOFZRbGyOMxFWezn5y+WCvnHcvPmvy7WXPzfjzSHOYHNygYxTNkSv+/6XXvVdziYrjCaoursMfQz18/ePJW0JdTsYniJWRQgoS5GAfNytZ9dpdGx034AgRCyY94Ou7NNKF4YzDBZh0mk0fZTH0chNsjOX5T3S8P2fQGjphgaZsCma6uxsMUC+c2WRRSfsPP3io6DSGKY6aflWIsL0gizB8z/FjY/JP3aawIGC8Gx0hiKt3A4ljSGSJiswKhtfLt4jJ9uzRK2/PZfGlGCBYRRZPH5BZ4mcJmx0MxOAAAAAElFTkSuQmCC\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pressure_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card.json b/application/src/main/data/json/system/widget_types/pressure_chart_card.json index b829652b7d..6000e95a5a 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card.json @@ -2,7 +2,7 @@ "fqn": "pressure_chart_card", "name": "Pressure chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_chart_card.png", "description": "Displays a pressure data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json index 7fd0a6e738..2ad1feecbe 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "pressure_chart_card_with_background", "name": "Pressure chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_chart_card_with_background.png", "description": "Displays a pressure data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pressure_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pressure_progress_bar.json b/application/src/main/data/json/system/widget_types/pressure_progress_bar.json index 4350226555..c0f461eb42 100644 --- a/application/src/main/data/json/system/widget_types/pressure_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/pressure_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "pressure_progress_bar", "name": "Pressure progress bar", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_progress_bar.png", "description": "Displays pressure reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json index eb7216ffd5..16d69e0ef6 100644 --- a/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "pressure_progress_bar_with_background", "name": "Pressure progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/pressure_progress_bar_with_background.png", "description": "Displays pressure reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":870,\"tickMax\":1085,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":870,\"tickMax\":1085,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/pressure_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/progress_bar.json b/application/src/main/data/json/system/widget_types/progress_bar.json index cd22b4b73e..98a1167023 100644 --- a/application/src/main/data/json/system/widget_types/progress_bar.json +++ b/application/src/main/data/json/system/widget_types/progress_bar.json @@ -2,7 +2,7 @@ "fqn": "progress_bar", "name": "Progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAeFBMVEXg4ODf39/g4ODg4OAAAAD////g4OD19fUhISE/Ut3j4+OsrKzHx8eQkJB0dHQ8PDzx8fEvLy+6urrV1dWCgoJYWFienp5KSkrv7++GhoZmZmaXl5f39/epqanLy8vCwsL29vZtfORiceJ+fn7m5ubU1NTn6fve4fIbcz38AAAABXRSTlPvIL+vAC9A4IoAAASZSURBVHja7d0NT9swEIDhMji4nb/jxEk/NmCM7f//w/niQLtJyxamtdfiF6EmDkh+1Di0IojVzdWH1e25d311s7paDXD2+cy49nABDfm0gotodSmQ2woRVoVIq0KkVSHSqhBpVYi0KkRaFSKtGUijctrDv6XQwEzHgDjkXLoAiKaoAurzhxAAGGxBm2gMgE+25SHeUNE0QKbRNo/otlWQo2QNQa6xrdpD1DSqW6vyBhmtrD86RKHNGIcOyOUHZJDDEEIe1xgQdT487gGF0CNmgUXnsH+BhPzhCKDFfNh50OgQ6dgQv0HFEB2hw8QYDQo3HlqGZFf0066GDiNQFmvcMEZNEMdH2zza8WhivopwVEjX9QF7yBCVSbwFCc04YdBoy4xhkw3QYAsWjQciiNhH8OT3a8RnXo4ooRm/M3dMSN91m+QnCM+6zN9h2ShTyq4xy08X9mpcVxgswR4yfktymDsJhICbIPEA4n+GJJXTfNS48atIWQzxABKQl0YEJQDiQ/Dl1LeoDyHtONWYj41TDtDYvJMwTZA2w7ADwwNJAAQS9sqgY4NLyb1CKGCrGNeh0QY7Pq6bHvUEQaMcKh5VJkiAgAmIHfGGw7B5hQD1iMHkR4vlC5TLA+l1jeS9dlo5LdojQeYj/7rBp8xrnvz+kSOCg349WjolpES9itphBEm9BeI3OJ46omLI8qhppP2e6z28sTqvKkRaFSKtCpFWhUirQqRVIdKqEGlViLQqRFoVIq0KkVaFSKtCpFUh0qoQaVWItCpEWhUirQqR1jzER609HEbSbhT4G4g3AXOWYKrpAnYgszlIjyVXJNTl7XOEJMQ+ArXT5L3LpBQJZDYD6RGJAQED5DKoBbnN3uTfvIAAgBB7EFyBzBbQlXsTNV/EQGh/hPgWUZW7e1PglR+hJOw6PA/RfCs2Gsg5nApFYvtO1L2A8xC1n3ne6DWQRewKEfQGSM7FeB5CSrUOUY0QN13D0DPEQuzANiAlhsxHAYNnSA9ci6gZ5Jq2VRbEVCCzWcRYrl2cKRAgk6gT9NPx9xBvbTqYeofBTyz9IlTaiDm3Zp6RckoxAePIScxzGKBEPTnVK5DRDMS+vtZyLMguBbTZv1BxpAw0UpbJDMQ7LAWCXIMl52EsGVAtKCmvv2YgQNYxY0PTbs97xh9SN07KemfITFHHw4nzntA3jO/kPfsZVSHSqhBpVYi0KkRaFSKtCpHWO4B8e/y4rC/f7/5/D8shXz4u7fHuCO0WQz4u7+4YLYY8LnZ8uTtCu+VrZOm59XiMNbJ7x1etM6tCpFUh0qoQac1A7s325L+P2t1/AoBhu90O04SWQ4b1ANsTP10Pa7XOD5/u4fMWbte74WlYDnlOAM3Jn5KBIesBHp7gXmXS5+WQz5/EQOz42TQVIgWyHgDyqfVGyPD0AOkZThxD+JrznBf7NpO+LodAszZbOHEF8nW9ZYEyZvnll9vtQErDNKH3/ZP9vKoQaVWItCpEWhUirQqRVoVIq0KkVSHSqhBpVYi0LgiygovodvXhAv71NIC/Xl2txPzpxNsbMuPm6vr23Ft9uLr5AdpbpSAPQyy7AAAAAElFTkSuQmCC", + "image": "/api/images/system/progress_bar.png", "description": "Displays any value reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/qr_code.json b/application/src/main/data/json/system/widget_types/qr_code.json index 4443ee2830..929893a722 100644 --- a/application/src/main/data/json/system/widget_types/qr_code.json +++ b/application/src/main/data/json/system/widget_types/qr_code.json @@ -2,7 +2,7 @@ "fqn": "cards.qr_code", "name": "QR Code", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.qr_code.png", "description": "Displays the QR code. The code is calculated using a configured pattern or function based on the values of the selected entity attributes or the latest telemetry data.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/quick_links.json b/application/src/main/data/json/system/widget_types/quick_links.json index cdbf44e631..62b248b568 100644 --- a/application/src/main/data/json/system/widget_types/quick_links.json +++ b/application/src/main/data/json/system/widget_types/quick_links.json @@ -2,7 +2,7 @@ "fqn": "home_page_widgets.quick_links", "name": "Quick links", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.quick_links.png", "description": "Configure and display quick links to the platform's UI components.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/radar.json b/application/src/main/data/json/system/widget_types/radar.json index 18bc07ac98..3fa9fb0991 100644 --- a/application/src/main/data/json/system/widget_types/radar.json +++ b/application/src/main/data/json/system/widget_types/radar.json @@ -2,7 +2,7 @@ "fqn": "charts.radar_chart_js", "name": "Radar", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.radar_chart_js.png", "description": "Displays the latest values of the attributes or time series data for multiple entities in a radar chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/radial_gauge.json b/application/src/main/data/json/system/widget_types/radial_gauge.json index d3da6ef045..47a56a2acd 100644 --- a/application/src/main/data/json/system/widget_types/radial_gauge.json +++ b/application/src/main/data/json/system/widget_types/radial_gauge.json @@ -2,7 +2,7 @@ "fqn": "analogue_gauges.radial_gauge_canvas_gauges", "name": "Radial gauge", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEX////m3d398OrwlGL1vJ33ybH75Njthk7xoXX51sTzr4n//v7mUQDx8fHn5+dsXFzt7e3+/f3h4eHj4+Pl5eX7+vr09PTp6enq6urv7+/9/Pz8+/vy8vL49/fd3d2lpaX5+fn29vbk5OT++fff39+9vb20nZCxsbGzloapoaHb29r++/ns7OyampqenZ18d3awgmq0tLT++PX+9vL97ubExMSqqqqVlZS3sa/79fL31cO6urqKiYnY19f74tT62snwuZvOgVehoaGwpqDGmoGpjHz98uzi2trNxsPy0cCZgnWphnP86+Hc1NPIyMi3traurq6uiHPokmPZglTnVQbMzMzaycDzxq6srKysnZW5oJPxrojtrIh+fX2DfHnp39rU1NT63s/a0M/TzMnBwcHIwL/Bs633xqzKs6esp6XntJiblpOek42WjovoqoefjYOXe2zHiGepemH86N324NXx3dPNvbW5rKaFgoGwj33fkGXnhVD37ejq1szpyrrFvrqPj4+umY6klo7toHXonnV0b29TTk4uKirs5N/gzcKvqqinp6fGsKX2waS0qaPWtKGyopnBppe5monAloCOgoCeiHzSlnSngGu3hWjYjWWufGBGQEDpaSTpYhnz6ePi2NLl0cbtzb34zrjfxLW1r63nvqmnn5/Qr568qZ7JqprCn4yXiYJ5amqzfF68flzCf1rIgFj38e326+Xm3NbWz8/Vxbzavq/RuazOtqnCraKgmpjXq5PQp5Djp4awlYbXooSrkoTOnYLzqYC7lH/YmHXNlHTGkXS6jHOzinOig3LwmGfvj1vtgUbrcC3x5t/v2s/Ozs75076+uba8tLLuw6ymm5SSh4HypHnemnW+jnS/h2jRjGXuiVLhhFHsdzjoXA/RwbjduKT1tpS9nozcpIWYhnuBeHOPe3GbeGVbVlbQ0ND51sPkx7fTu671uJfcrpX0tJHJo46nj4Pmo32Nf3fjnHXxn3FNSEjOysjFuLKjeWNnYWHsfUE8NzepajCWAAAUc0lEQVR42tSWW2xLcRzH/6GH/M/Rk3Pac3p6tV7mEh0JiqyChU6CxSWR1WwuQ6KWWh9clzBpvbiUbWqvmGVZ6dOIy7LNhjdEIsyTiMs8uYWIROLB75z2nNPt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", + "image": "/api/images/system/analogue_gauges.radial_gauge_canvas_gauges.png", "description": "Preconfigured gauge to display any value reading. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", @@ -11,11 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}", + "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-analogue-radial-gauge-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-radial-gauge-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temp\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":100,\"startAngle\":45,\"ticksAngle\":270,\"showBorder\":true,\"defaultColor\":\"#e65100\",\"needleCircleSize\":10,\"highlights\":[],\"showUnitTitle\":true,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":10,\"valueInt\":3,\"valueDec\":0,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"numbersFont\":{\"family\":\"Roboto\",\"size\":18,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#888\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":22,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"family\":\"Segment7Standard\",\"size\":36,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\"},\"minValue\":-100,\"colorNeedleShadowDown\":\"rgba(188,143,143,0.45)\",\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\"},\"title\":\"Radial gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" }, + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temp\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":100,\"startAngle\":45,\"ticksAngle\":270,\"showBorder\":true,\"defaultColor\":\"#e65100\",\"needleCircleSize\":10,\"highlights\":[],\"showUnitTitle\":true,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":10,\"valueInt\":3,\"valueDec\":0,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":500,\"animationRule\":\"cycle\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"numbersFont\":{\"family\":\"Roboto\",\"size\":18,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#888\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":22,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"family\":\"Segment7Standard\",\"size\":36,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\"},\"minValue\":-100,\"colorNeedleShadowDown\":\"rgba(188,143,143,0.45)\",\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\"},\"title\":\"Radial gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" + }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/radon_level_card.json b/application/src/main/data/json/system/widget_types/radon_level_card.json index acc646531b..6dcf5388f6 100644 --- a/application/src/main/data/json/system/widget_types/radon_level_card.json +++ b/application/src/main/data/json/system/widget_types/radon_level_card.json @@ -2,7 +2,7 @@ "fqn": "radon_level_card", "name": "Radon level card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/radon_level_card.png", "description": "Displays the latest radon level telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/radon_level_card_with_background.json b/application/src/main/data/json/system/widget_types/radon_level_card_with_background.json index 3ef3e93f47..ef574b2d93 100644 --- a/application/src/main/data/json/system/widget_types/radon_level_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/radon_level_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "radon_level_card_with_background", "name": "Radon level card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/radon_level_card_with_background.png", "description": "Displays the latest radon level telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Radon level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"Bq/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/radon_level_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Radon level card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"Bq/m³\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/radon_level_chart_card.json b/application/src/main/data/json/system/widget_types/radon_level_chart_card.json index c9c79b1408..276ecdeef7 100644 --- a/application/src/main/data/json/system/widget_types/radon_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/radon_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "radon_level_chart_card", "name": "Radon level chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/radon_level_chart_card.png", "description": "Displays a radon level data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/radon_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/radon_level_chart_card_with_background.json index 9f77fe5bc2..f8dbb42a22 100644 --- a/application/src/main/data/json/system/widget_types/radon_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/radon_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "radon_level_chart_card_with_background", "name": "Radon level chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/radon_level_chart_card_with_background.png", "description": "Displays a radon level data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 8 - 4;\\nif (value < -15) {\\n\\tvalue = -15;\\n} else if (value > 15) {\\n\\tvalue = 15;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Radon level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 8 - 4;\\nif (value < -15) {\\n\\tvalue = -15;\\n} else if (value > 15) {\\n\\tvalue = 15;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"Bq/m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/radon_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Radon level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/rainfall_card.json b/application/src/main/data/json/system/widget_types/rainfall_card.json index 9103680d8a..b297bc406e 100644 --- a/application/src/main/data/json/system/widget_types/rainfall_card.json +++ b/application/src/main/data/json/system/widget_types/rainfall_card.json @@ -2,7 +2,7 @@ "fqn": "rainfall_card", "name": "Rainfall card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/rainfall_card.png", "description": "Displays the latest rainfall telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json b/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json index dcc19b4adf..4b23d7dbb7 100644 --- a/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "rainfall_card_with_background", "name": "Rainfall card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/rainfall_card_with_background.png", "description": "Displays the latest rainfall telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall \",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall \",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/rainfall_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/rainfall_chart_card.json b/application/src/main/data/json/system/widget_types/rainfall_chart_card.json index ebbc1e8cc5..451f4cf210 100644 --- a/application/src/main/data/json/system/widget_types/rainfall_chart_card.json +++ b/application/src/main/data/json/system/widget_types/rainfall_chart_card.json @@ -2,7 +2,7 @@ "fqn": "rainfall_chart_card", "name": "Rainfall chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/rainfall_chart_card.png", "description": "Displays a rainfall data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json index 272f96da91..88ed65606c 100644 --- a/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "rainfall_chart_card_with_background", "name": "Rainfall chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/rainfall_chart_card_with_background.png", "description": "Displays a rainfall data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nif (value < -3) {\\n\\tvalue = -3;\\n} else if (value > 3) {\\n\\tvalue = 3;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEUSFhawurq7xMSzvLzAycmtt7fCy8sSGBgUGhqptLOyu7sQFBUWGxq2v7+4wsKstrYVHBy3wMAXHh6uuLkYHRynsbHBysqzvb6os7K9x8aqtbW5w8MUGBi+x8i/yMfEzMwYICAOEhMQExO9xcW4wcAZHx6kr68NEBHGzs61vr2wubi7xcUbJCS6w8KrtbQaIiKmsK+irayfqqobISCbpqYgKiofKSkdJiamsbEiLCwiLi6dp6ccJSW1vr+jrq4cIiIaIB8kMDAjKioeJCRQY2MsPDsLDg87Tk4dJyigrKwgLCwpNzcgJyeXoqGkra1CUlKVoKAqOTlMXl44SkoYIiJIWloyPz+dqakmLi5NYmE6TEwoNDSapaQlMjIoMjJBVFRkd3ZQX2DH0NBGVlYiKSg0RkZMYGA9S0xTZ2Y9UFCYpKSSnJxMXFw7SEkpMC9DV1c2SEgvPTyQm5tleXlidHRHWFguPz5EVFSUnp6Bk5Nbb29XaGhTYmKPmZlbbW0/Tk4gJiVQZWU+UlNIXV6NmJgmLCyKlJRKXFssNDNUaWkmMTE2RERMWVkvOjpfc3JdcXFcZmd3gYFFWVhTZGVXYmI4RkcqNTV2iYktOTh+kZCDjY1QXF2MlpaIkZKZoqN8j45vg4IyQkEnNjWFj49XZWUyREMtNjZJX2AyOTmhqqp4jIsyPDufqKhYbW9KVFRYbGwvQUCBiot5g4Rpfn1xe3tpe3tXamp8hYZVX182Pz90fn5xhoU0QkIvNzZ/iIltgYBsf36ElpY9RUU1PTxjcHFCS0tASUhaampBVVdeb29eaWpTXF1ncnJJV1dHXFtWa2xCT083QUEqMjJgdnZ7jIxgbG1ueHhMYmVGUlOJmZlIUFA/UFBpdHR1hoaUoqJmb2+Sn59QZmlziIdFTk5jbW0ICws6QkKQnp1zgoJmfHtEWVxNV1eIl5ZsdXZbZGRTZ2g6RESDkJCMnJtRWVmGk5NqeHhhaWp5iolbcnR8iIhue3tTaW1xfn6AjY3L09MEBQZ50hZ4AAEY0klEQVR42jyYP4j8RBTHzcvLgw1klrDs7M6GmSkmHLMbctwdVwjH2lvcstjY2JhGcLG56kSuEysLBSv1rtHm4BpFEER+NhYqtmojaiFooYiohaKH31n/zF6SyWRmNu8z32/y9h4K4TDviZTL7mwgV/XU1xRsqIsn/vr2w3cupqOi7R0KBROoVmVVbMgZa0y2cMbVqrHaiPgurBcn9mZnybnA1hnmoMtes2Xdca2FNeugtRYn2jFrMUpzkQV0ZKXmxbTUjrTmyJk2itnJdr7mD7XI85YdPtYyttkoqzhYaw05rk6qLp8V+rhko6eFqvj8rAmEKyjBsjGXuu3CaSbes3p+fkam7uhklVOzLoiqpqq3k0iqWAVqqA/vLI2mPCPVdGdjVa8rolBRG0IXeoDBFpp+1ben2W1Lm7Va9tW4COO875ervq/DbfFQf/Xzj1PRiHapne+DF8CxMTqivtj+/P33TyuTxWhYDptY4ZoSiXHAJ1L0UbCh6gePSvrTokm8NDoOw/H6ABe7bIi4mg0Doa+XOKCUA0bFpcgwsMVgOS0Ex8HcD7oeCMPaYfvIEKe7e3sVRSR1995HjLMYj1PrB4niR+vlzeHdojFd8aiKp/cad6fTF3nBELtZ4jjeqXQPj2MZIzcyFVmRiBbP3t9mnrVojyL9z8eF0daLx0jxvlRg4Y1xuBxEa5sW1Ti3NG3g3nFg7ntXO02hlx4yunuoXbtH/mCLEa2be+Kjmmv2VnrnhUOeNZgq4xRRk3QV5t6yB9YUnnYxlRSj9DdrH9fCICf66HhAa238ltXgOdG/j/FyiwpK2qedG4qLms3pqV0j2iGg+eqFFzLQZYxuIosf4sULrwqG7/8GT/V85HVQHOuoIpY9LX+81MPDwxqL3vmy4qi9wxwoAlzVQAlXNCXZhrQQwpLGSoohbShin7++817Xgp4oDqDTBN7bfb8Q2Ac/Zk3ipIZ34CKnYeagfe9auLbn4HwwPbuHwtHg3xUuSTsJXLognhygMCLAXMvbEQ0Oba0yJCKmgvQ46QIlekOzheCLIaT8nbXX3WkSEk9GiHVo22E6YC0UAx9utzu9jyAfzTDcgyc+d8MpVLuIOq0Czu8vfHwiJoWhwACNMkMHME6wS2a4t+MWU5cdWY2Whpgxzu/EFwsmnXEiFAEDH7O28azyGlEwx1zrEFHfe+ytqwO06vPXS5/KC1dl2aKXw4bgeuwx/h/ifp29/YTOV36FiyBwaBv2fS/B4ZO32Dszbh07x6va8UNh9Pr1lQsFRF+0AiuQ1/t1vUfMs3feqiNiEamCIRIhMc4YSSg99pq5WTz/BBmR+f1kytbXjT7cHkcdTrDAB/cTr3RyqiREp4+D+9INAlY8Ss3qxEVYWQ+zARICiOuhqCFNn4aAX1VFpVAtzhktAOeT59fxlCTuQe+N4xuP1XDgiwAqcpvax0yipdoct9GXDhHJGuaSzkH7WyM390ZQ3tW5JN53I8+ZEGmdWk3Qew96gbs7al6AUWBMszlpz820TvO8MWJ2u5oPa6bL16fOAeuSVuTLh+jY1Rrn4zuh2vvxmPu5X4qBFvLfHygSFJcFnyp5VbHzsl++FEhwQN9RT8H4/nYHQvbhUtNwKumJKsbDZiZxMK/fkBoGCUN00CaKnsXBRDSlrjoyQ/M0eN7dwGoU4+a8RRgwdPXz095fNk16IHMyZ3pkL4wXTT5VxWMX90WS+THPaRZzmLLxnZsbKcHE99GKBJ2A7Ypa6rM6oWsOxR+sdWdfP7i32mB2TcDFnGL25yWgNra5uj1gbXkzqkNpJgS3u92R0w/uCmJidd23nPV9qF0S6UOeNLs+mOos9E570WJKWTrMra7sqhYJmJsyQbl9/mlc1VBqLkk9FAQ4tKQ70MbtoxmVvtrAnijwV1Myp+rL8+8eIPhk+3+fnX5468e/1kAmSeZuL2Dn09mAmhpm8w4HDDbbOIn5FGC9TZfjeDbNGQM9uiqQnMxqn+ksnr/Q+m5OIqYG6TK6Ljob3TiXRxFUjsE3lxOPtRmMTLT3II92XVgPzGWrlejlBSIq3n3B6Gqp7cmCHoVYsQphiQAnM1lVXoBT2NTav2H0uBg798J0FMi59AjVHJAvOde2oQ/s+yOpLm50kp8QCwfdjkREk/Q9Dkxy6vU8k6BZgB5U9h+QFYQ3PhBfgaLZO1X7YMS8fvYgyZMuRD6HeE/2todIQfSNA2Wep07SC0OCLwbZT2agd9lnCqT5UYsWCKye/ps51F4tskK7phpkLo+/q3jwBw8niSu9i3n6Wu38WiQtKOPMNQtjauishgtOOoU5brdNYAvnCEoKNvv8VdMTA+VIkXvw5LPfvM1zwzJtTAHmh6ypdgTNJTuKC5Cfg4yv20GWpUCEIZRt2Hs+PT+5D65//YdRaJdVWPFbORSffMEr7EMl0zONQmBY31xqPVuxTnBzxPpvgdNqiXkt+uGZFj3sNRfEQVj+jSGivBGHl4e4ODiMSX0aQ/y7TvzLXMdkreiX4+dfH9ZbDGR39rjEINHxwOXdIxawyiJCxMp45RTZevTuG3nedG9fNyZP78LXbwdG4nGae3czg9IBFaAq4zG1JCSisWp6I4dZZ3FRMzAqn8JMxroi2dQWIYhGwyuZotFNCN6JS9ZzS3Z38DL1Qc9aneAEqTlzZjd2KD0yU6ALwBkChYdY8+F7r/30xfcGunNqc+mM8G4DeaKi8yD9I2xyk99BtFb0QYEEGWzzxuKtbcI9Cly8SfZLshriKL1ZnIpo6EaXK5949m+89bBPqkx50PMbVJpdyo58h/AxdPawOtrIbG7SqaL/H4kF7g6ul+zzDx95Guxj1nGV/ViU73FcXbDEaZ9zP8a97ROORiaEQ0zr7SecuApb71lQ8YsmuQaIOp0QX55j55zWb9lsjAaCukD4lfT0bDiMDvTTuRjDuRNmc/zqkvSIkhiNGeW6BEqj2BgXUPqlI/P6ruf+ISPzB7d3P3/w1JZCSLkqibTN28y9C6ptZ+nRQCNnNo5Fa+g+7xQ7CCDMk2NCuUlAi0jx7FBkYnzKkmfCSaTRGkk+BWVhn5yPNrU4SefX9/dv5Gj750/FKvcYkTAmNuiHj78btE1P1x8n9buXYkAm1v4BsTRjb98e7qEWwHripvQg2IpP8j++6AAUdeYxlvTtB6/PJQHcP0KJNFmT+B4eQMiFBqrm9Dg1VFqDKX9yily55xRiT2yWRrstoj73S5AExPyN5wXcqTfOtPD29fW2JoLF+1NnAp6f+qYO/eqHj7435MIBhz4Pq3or3WbLwagsmQJF712OfbXALG0eGM0UDIny4BkRrGXwmCQkzNKD5D4DmjeRo7bJ5pE7IxLbIhHL33j1MikpaSh1RDGi0AJoFAWDhGp7tp8vvs0px6wEox9m/GS61wvxL5xPL6LJ/fzQSzDxelc+buPBW6cgbJ+oRM/fmog/rRzm5MAypZECNt2zc4jkHIvKJD6xScEtM61xhbrP39ktVim3POKrI7NacT9V1TIviOBYt/r28eM74ygwEeFAD8xQo3do++0qgKczhRcO5YsHxvU59VvKcm0CvfHqc1fO8Cr90HTp9Y24s1OtJ2bKlKUbY4PmNtQupifm+Fo14sQbLyg+7ff5TMcpxQFsgPEhwwngh30HrwqcgmXl+yX05GIMKR0tt9G+/fbvI3jd25QKxJfX9/MbgBVZEoXr9159fdbRpO5jIBXrNXwr62lsVB4f8cOjXf7m8ayWswELR5fnmxELgN1BabCK1HI+RSxU3oukJkpX15YEOING6Ma21lRkum66sruKMna10gB865juXpB4CJM7Q2RWdR9ud0/08DvIUnpjPeS4wPNPxl/C2Kamo7OecRiFqGc/wv8ERU4uIGSww5elMVqHCjVADixBS0BdiytiYuiAiO5EOix84gmdFQ9Hnz18Vf/7K073oUkYsT069TpVJHm8STLKH9zEmNWziQLfYSaRpGf0eX53FuNMPMBxi5Hcy/ZhTAPxzbwX33u5Pjn2WmcnG5FrpU0hB7+WJByntUAFFrfdstu8cFrLZW4BVBCcE2oriFIZaDRIQgqtgui4PTShnKx5dPfG+WyfdXI9q2HIV7fn5MASbJzCu8gFantgMYmmCw+Nw+Y80ObNrCPAa9W23RDRlM5u3rolk+fMbl6B3eOfn3I/Az+ABNwgyR6GUu6klzyC4AwnswJ6M38eflcTsghVqwAeJX4js8QErjyPyc6JdFUMVAlOuTGgnUztn0isG7menmwwmmKkHO1PlJXksyQl4x1GQ1l3SLU7vGKLJpNOSy5tUp8kKb4s920lD3e801LNwAj2LI9TnvyATZCdq11SAGY7Gity9pFu1oaKIFaEVp3Y2uVAVq9aUvXZ5UkbJiYl65YciBEGr4iLmvrdYQhooBJ8IU8i6HMXwvTBH++dYvKiguJNrfKVIXWhHU4cpRWzwYS5XIXqrGHw4rp1R7XGLDrHVSatSVaWAFsn2WnOvG+7mYXDWXdp7+9nI+0G0/p4kO+gg4mJ2qdk1Ua/ebCLkODPGdfTJ0ZYEvA2KafSHuK73oqTCktYewIwXTWAtu7EP7HQznOTGAbXFFrX0qcTrO/Ll0+I+GZSQVZqIXqW6Qez2o1le3Wams5nae+MPJ1VqglGFWDNBqFgP2G4GaCgwVYpKg+DMbOMtyO40ykyhsrKvLVbTWj3z8s9rwOFQIoovY8clHq4Dq1jGqGhXcIHBquBjTK4oYWYW9NloxsKRZddPrB0s9JU6Trkhq0DX2abXleNhj6X0NnEo2YrZy130GjMz7JqmpKlSel9kR3A9RTpcOk7r8sqXvHTQzda8KVx+/e7T/YvVzE7kONMH88j2KgJVkX8mQfko6Y3+mG3blxgHwjpxJH2kif9afknN8LmtFUCG7mgXTFzNycEUZPhMayatQz9BJLCmutdXr37qHIaBhZCLHkoL0ZWMSGrbCozakIwB4p2EwNgVy9fVqPWrM6rzLiiTv/4bMuqOmwDLmJ7qCqrNiilJnjz6FFVmQDxlDNHrQMq07hZepcbpLXt+ml2s9tzZqVlyVJhQZsj0xKZas6dW8rDsH3X6SM1cimHTg82kGZfro8sJ0o2StvWCXvClk1Soqn4arbQJhvipo3tP0QfX/hO+dj4yVxQ0P30RDMYOKCKE6MFpIBKzh59dCQyh0GzoNFq/vF8yXLjVPKW05rxh6+3C9w9zZtKS5oqSNZqcnR3N8zUzY2BV/UbV5npq4vZZT0bLzSRogcbd+qguG5tG+oor7akaWaCef0WHlaGVnlfAeSq7TNoua8fMmcP0u/PJSSb/G3MCes2pUKEumvHx1++Qz3A5+fu4uXSGdVzOMxhiRk8aFoH0OOLNhN4L62+Pp1wCwIEIdnG6Vg32nPtG0A5eeevPwhQhGOU3HrpoAlZW79OvTebKOIwi8Ro9gzFR2y3H777iDF15nHaOZesIw3a3UUl/hJLgkLyBLAKGqEG5xmsNaBpRMSuafbJ5ViryhEnviy4xNqmHrQ9gyQ7TYjmrU2HmKfGnpemI9Oo/mzeZCZUBS24q+8OiV4vBwpqk9frmho6/PHTl2/aqu176vMcF9RDpB75+Le+Oz0L7vDV2wS1J9xyt/lzR7gdM23ey8gEUgXdLor1ERHhO8dtZQzulbhhbrK06F601YKm3D3q3YREcn23fX6hQ6OT6Eb+acvbzj8i6BtM4mXi69lRDVAoGlQ8OAAhLsgbT/yTAtCrLysHeqkkSiJNz+BG8qhmDy65SWqVgwl2UJ0DK9SSLPdIEzwx8JcTQlxsEmZ8Etelqtg5NDnoqGJOYwOPLaXHJ7lp2d4s84P6aGEaqpUdL8bjGR25th9XSEBC1xy/9OvBpALLNmm5VZT1D1VR1Kd5Zt4O5dU331o6WyZernr1q8e+VKE1k9FJd3kFsiG4Lp9d6r5UbXrRZc2IMtgeVMWhyD4EjCybWqWomtIFy6fU+M50snj0kZt1fEDzK89nl573vv78QJlKKyZl4hgOF0CWJN0vDxq8j1HfrJ2/P7f0wjcEXkBqL0602FdPZDaVtIaJ8VKJZ1DF5qP/z+ZgpdHCIdX1Xtfbr79/xIKmUQmqxnvGmBQLBFKN6grHYPLm+R/XwfSU0+40q/O8UqHO68Y+qrLHVUVV21yUs6bs1vkzu9r6oaXN8bgsa5Ws/xBVd8/fYL4x1bP81d7wMm/mjjer/pH3C0IpnOnmb4VeEbmcaxNAG/p2JqW5Lq2v2/umm+vAVusUc/K0YFccH058oxdWwfFlvLvR8ugTnT94OqlzFt99GDJtPLho75wYltI/TFK7y5E/PJbjMkpXDPcv5P6mdKR5LXr0y+v5oXSnigVYEcqfPw+6TCewR+BhuE8/0LG5pE/X8h5mT+lEv7ezvkuX+oSaA/hxaCZN1dXB2d4E5xqil6+y19tA5WyxOMtbtSrbvq1rggtPiI7NUh2WfZGpTjWPfna7vti0oV2ZHiOyvJ0/lNdmWRPlRd8fPVEvzRL1KVF5Lubbg5D8H6g4W2CPkhOET70LlaEQADO4CixLOnArgLaSbO+7Qs20zAWccbr/IdUp6ZJjtaCAuWflDTj7aK0l4Xyh9ewm97ZpMm+lf3W4gNCsODnZ3uXW5sPA3nqtXrGduRbQyRizef2O3dryPANe9A1Gouj8utFm+t4YX9/9zbK1hTZThFHnspEszCzDkp3MDpM87BLcDCttCBIMmzfRIK3xqS8VvCBCgwi/t4pWEEqefLAoCLUtQn0RfKl4F34RBMELKHgFUR8EL6igKOIVz1Snf9tNukl2zpzznfNN8gcR49coaMhEi3g0zgMFQmNpoWojaDMUiN0KYoXf0MmO9+9g+zTEz5IpR2ut2UmphX+aKt8kgkl2YSxKCtytldHeBaV0iQiEFryWVU0vqUfrr7z0YeLhORanyQKIEajgaLx8zuE8g7RKUD8Nvop2qaisFV63cv9drI/osDFFIIMJ2gvTYo7Xzdbxfq8HrLtmdjAIZo+M+l8RPP9uIUWKzdbN+rhvLB6FoHmkD25uhVCDZeiOABcAxVmB7X09zp+7GDk+PeLIBQi6ekdk9pcoe/afZf/w5i2UzmOiQwXN8BSa9180awKXB5scfHTwBcmC9PngaYsaz0OOw99KqEsy0VOjVZFTIFyCI9J5crBY8zXVqFxwZd1mKJB0feZ3CO0SQLmHCtqh1hfEynK9FAkR6UxuJlKqSl6SCMnphRdVufr1jSRkqFkyZBLgTbdDc8kGtBtyP7j53E2fDMuCFPNTUwDd9TWbu549trbHXYXIH8AMznoutH66vgYrCPQ4oRclJtoH2iBwAJPjG+Oy6WX/LNH7Q+cC3vPMZSc8i/WaIwuROx6Nz0WMUKRMDtbt8rSV+R/++Scd4BGZxXMkcRTvJZzkNuPLQ0k9Px+hfF/o34z8gVEt00GZ3RxicosDSJd599/QVHsLtpiTqfW1iWouFfUOmkTyrGtR4jc6yqTnpVZaUyJpWlld5gOq2nW8TuJYqrSttK1nXqAyKHD6klPB8sXZ5diO/fzPN0DaQlGtpLn8RIYOCrw0hFYiEXSa6D/eCcnAK4M/1KVxjaOl0oX6/ZZ7XkGJ4gE/cx73NtqgQw79fXnAO0+vZItxRFErHWSdly3eBZcQKi/rHwHbiZSD30eXdacnSFAk8hFLYO5bU9uXddhJsVwC2mfm4B3ffeXCWcuQ1v91Q9nYuSP0Rt1nqYsG5w7EqaN8NWHhELbpDQ/7g7hVZhxYGl8AVRs2z+DRjSqhXAf/sWbTF5B5aMRpUoV6qYCArMNgurS6Y6eimzz3x9Pw87IspWDdH45ppWSdJCwqBb7KS6oIj1gX06rn8g+lxSoUHVVICJsG+lPJwovImi6TTD1i/7vXmGBC8fefUziif+tC977rOe6i21PQIPqll8WgitzOlEMOt5gLmAFa7i9F/+DGnz5scTLPIPvty/gFi0jY97PWBDBclqH+Ue4VP3xlP93OXdZvjtO+c+BfcG/hJH5TLVFbQDTCYy6Xue8qx9cjJI2NIAcEo5qfJyXfBryxvuyfm//ph0xUFYXlPFLuRPvcWehe+sJKbxELA3F2RKiAsoD35nGdC5bW1tLi8iNRGivi5nBk9fgn7XgKodeVTOzB1uiZuqylAECVkKoUl8ilKOVYEdEfXzyT+nLhhbTTIfDE00LXMsYCziROOlp9dlBTgxpgVTAjY6OkMVTkPxVe3O6BbJbvpVI1JES8JCuSAnHaptu45TnIROeH/LKL3jyHtz6R2OtWim4+tJHZYN5pmq29FpfIq07F2Vlr1Ap+Q14kOefWW9SKTwVPEs9cbn3IQ84K24cIPBEO6/VcH+/kc3VIkILOs5DjGvHftaxOj4BB8HIumokvRm9/8IeULgz4hX72YNPT5SJEltCGr2LLrBaSDqkk9arb0JO0OTqNAMQ+iyfR9sVxF1kTps+sQDamqhJlVVZMSqpEcgmIq1gCppKktjU9z6b5/BSk3D+NhpRKKeFKy2fXASXI6QuooVS21BXSqbAvto17DtnnsZ7swZBgGVCUSXuG+NYvXxwhCorUAZrT504dhO2yizf/81zoZGiMaGiwVQhQXe5brR03sy03j/sW1Nvd3eYOVrTTv/mEhnZRSu5MJtMWpAr4JIcQFnlBmvOw6TInNrHLnK0peR6Q+AIraQzBqSZs8vieQerrta3kxelJwTcAJriHYvnWd6/ev9Hb4iUsAjmwmHHYkogLEEfaAgGeYvrPoszWQrbJhNg9InabshJVivtPpkRhSDBU1eIZMbxE7VBVB9NWkQ0lUypZxu0Ih9mZpL2dd571VHxx+O21+xSUpRuxjL8hdSoNp8hr9WBgys5b7zyC8O4G24Rjar6ZUB+8Y0U/1GE+Dklx/5+QcnBEDs5gvzjqgzCX/QNmBf+CO83+aThmWewf/PrHL+fRPJMtu7UlrJ9TB3R56IIzB8vIBMctR6SFcfK8rF0P/pX3edxrjxiKpncEgZi3XY/jX4AK9wVYnfF5enH7LHXewnqamLwklX0xcxOZKnYhZ8aAU/5iQlBBKwpuqYAJI1TmjEmcS0shU1ayEXsGKidVpyxFBUiFKuthV10i5PqztIzOvtqtUgvUbUIrcLld0xTmZGP6pq3XLi/Up7ef4KmwTsd3X/0FDXGCgusWzoQZkhr9mdYD7qgMoHAXN/lsQ70I9nSe/cjFI7Lfgblj837gdAY2As8sJHLL+2HvBJOTqYb0IcEmbf+y6GcbezSb7l1GAbh2uqWiLNodheTpHKE8IIwqIGhWj0L4CS7YCr3FRHPltXc2tD4GSFK3BYpqhBVu3P6LijrTaTx1zjsvffoGyW4WloKM0s9jONBWHYlFKhCM5EbkuysCvTILbzpSshqXTMaVVGTQqaKjcjA/6gBIoiH6YVyNTnYvEWU0mJbPzL+59ZHK0rqKF/u1ErQdQupem7THT28ztez1/RMzmv9lZfed/PPrd6mgNaMuVNGw/pzjlzeUS9flsvHhYnWuVpB/K9/e5yRyoQkSF1rcT/OWG49DqoTgUew49JquwGepZ5mkfJyDrKnhY5s62RbKoUgACZm31tvarYOYEmBA4ZwTlzzx1cEcCT2IHBxFf5EtbC/Jkd4L+1/OxFGPD1KFPxd01c1BadDZewexu+1n0x8+O3im6NDKIHqHIQRQpQVcfmuqsA2c10WpJhWhTYX6Vg5Jrsmzp1FaNktFFrOYqLLUALWqKn2Ugp/lxuUl4/r1d1h3Ds/XjST0+K/bYFbkuW3SKJHL5sL+wSYWDKxd4TLeWNnSDmQblybFxqmva25gTYpykX5+CALJQFFNnFeYIpALzZ/caNkuKmQzweRBDctryM+hg+PtCzuTVmO8PHztjYg/82x7R/Rd5GNlskbZAOfvH7CQ6rnt0ph76VombFRNsuMoayVwasAZHHyTZ0zB1QKMDktFdexFin7Pq2ojr42lzpqgYolZokzqKXoGf94MNdKChS/+ziC1ZjEsIftfTExPlrYOGJP1I12m4pUT1lkqeppA3VtgpSWKRDG5XOxtC8ZEu4s8X4pYPuP4iwPydFltrpVEtS0zb61XSjx9aKmtAKNKKynDhdC9fy4bva1xKIUtMHh3PzH5MS8i1HxMdTK3Hkriis5UU/g6Bj0wC2/zyQrTFGrBzCjKXBpntZOYORNZQ4A+97SzZ5tnKSfrPuPS8xClSMjo5Im/B+9kTvIdrwMzQexQBkYouAfTzadDcXVBzA/+9FNDexxNMOn1nvqFmI50z93x6HOLICSCp6PzRMZQN3B1jDZUNjsShnEeMze62qqFG9PhuhpVqJrmGQCJP5TNmqyqVRtl8+S342SUCLbY1PNyxGW0FSPVo6MX+ZyFUV7CWNogOD1zcRmzshqmOlVIp5urbRF60jKWTXB4WZWK1AHP/JWPzryqbQFNYAnbec9G5TQJ74i0QxlTPgNIzk8sOGicyQ0fXfwBFNNTeC5VfCY/mn/VdP74dbNw2QwtEDRuLIeuKd65+wfIhL7f8yKzg6wIROenuYfZhRCrcDOD1KlB7cUI29TwQBMS0/IubZFgueWZTYsPp00nmfr4DV33Wnx8uMmR3mjPWUbL2ssOVWrQyK4SUmEuuoR2vJVng46aaSAs7exIKRYDbpqa0qqciDhdX2AGTSOWiZIoQNC2CGlJxUwNVYfEqrpkWNVDHJRrtTr5aKhUhfw0xLeUDVNJmsYRVbGsY8kUlFDT84bBIuh6mdpGbgiDfD939EwIwUlOd2CisGwpDcfEKTVGD/qLFk/2nKNIf127eXmxx8emf+akznt09Ow3cUay9u6u5UfHzygk06Bxk0iZumQGpPiKXPaPiACn8A4rtBPx842XAHB2DrjiMKjnpOuPGne+L+tODqyzynn/GT41FuvRQCsYjm/vl55fvuQUsk+18MoODhXkjokN3rmomL2chi5cHG/QRW5hSjXYZOX27yBUVQ6b3TRh8QUxVSJk/81IiLxSTJGqZM3sk6e68SVPKzE8ZU8P28uq2jmMDndFXJasSubIB0InROqDi0ETtW7K0lJwlgrQdFNZ2ivLSPptanA1B98/YhsULR+3rItThnkf/fXWIWZX9cj8xGnbUKNkyoV6ptWH8o9OOrAb1ctWl8UDlz715vN3HhrVkt6l3HPCQcBcO4E0D8g+u3i2D/DkiDh+drQpCx4+CsIL+DIQxTDSmt9d/581WbTbFL7+hXN9dLiFP/7or5OeNT1wk0NdRDLXnjkU+7wprJDu18kO/KYQ9YqbgW3Cho8pzXgOqDuy8wqxMHO5KnbmSo1zAfGqmFSEwbSUSuP16/6GD6kdhCbx4X2TlUCer0hns31QQf1JFc/HQlVa70wJYxXTaayj0UqINDp7+LiE4G0dj6QPlVQI2tlXcVrHljaqk72IyBzYEjKkg4Jcqtqrnkm2wdSNNmIp70kFKSPEI99uEDTmISrCuE9cpkED9Zn3wS/y3+cGmuXHeeOoy3BKeBRqpRUeXFzxtjGSIjk16Mhwr2effa9A/u9v/udprKOVWER33Lnsn7kPzToFLwtzPpYTOik8zMl9mUoReOH92bQLOjCYxMVlKRlV+KGpQNksc/nTZamN5lIm09la1XSZUEClYmCkhpJVnr6RiM1YpLtUM/YEEyfpJZvVWmfA2Cu3jaK2iIE1OqV2RQhDFh0ygaWIlYD7TehH1pb1SlgwU3bhkv7Zv+56mdrCppLSwezEYB4WQqpNAfeGF+epD0HbmHiiLR320nZR5dy6UvHI5xtcWrf84zlD0eDPB+CbUGaQedrkU+MAVMct0swax60ERzm0m4GIvcs3Ec5SwQ01UewuVxP6oh5Lh6HbzmMtY9cueW/VVqkNe0XKWvhiAWRtGxvRzlIEI2JRB0cGkDYVxeXP0xqnhhHacQrbTpN0NOluaAUDARWT/bhSFREROiPCypQ8vayirviosJ2K7emtmLH90x6vLrkAyNtVO/3mbDLUFSpGfKiEYPiKO6WqUCYAbSnLzury7TcONYqKqmlXU1kmsTPvUIhLkNoqV17ufKBn8FIaWwOquV7QmckuvpLlu7szY4pyZJdbSTpR1mufGb/rB4vMIaRfXGtP5op5XpamKkKezDoZULLc4hDjHNJzr0La7ElbIEVSVczxKosxIeeJFMM7b93JXEcCjGUlDaPiSMplCWYakTRguXQwU6/2AZzUKoBoVUkDrqBH8Ic8zduz5jQHgkBTM50PBk2jAI/Aj5euem8xeG432iJs71CwITuzXUbIcPHLzdUlBwyGfzSsT/biIRS+qtSgKxS4uZ9roXQslajhd6qWNllMSluTF1dUpFTJYrR/pvHiUI3BpRbORwYEArWXPduFScCxhmvBHkYXCt6McmFMK2PGKT0YPQO8E0ePVXo6cdkWoXmqLWoCP7eT2U/73rR0kDfP3zwEoO3M5T89+8orP0l63kNA0mpglPZ5EpAEjTEKvCjwdTI2PT/2DjAyauje4HNKQTOkHl9I8NODgAXd7MBq6gqMpBBWfXBaC9j4I4ta6hGcw9oUeSfX0/z9T85YvPrwd8tIylT1yguPf/3Z8nBTVLGYMBYz8qLBT7g6GZJLZgnqwcnm9mbExDYTjVAKSxB/deU1V1wc4mmq2fr4mwMpRnVdidNjmU7mv9Sl1L9QUWJhRYEJGojJ6wJSwpGjepK1mTGqyzaOXtlEoi8cBrV6YfllmdH+An/GcvL7h9S1loNAK2Wp8xQad73dX0vIcDbwwFbtAvQv4mfhSYZTiQ7LyBErePbis2uqqsOnYFQOcB1IaQoLujl0+C1wFMHYdydF23TPKqhZU8M99d5TdbJB6fEBbujjgS3l/h5tSLozU+2LXSKljLpaMPTKVaR0raoRI/PDn8kFsvlGSiLF4C7sMcvQpIsYrNskCenG8eUoisN4SNhweMlwWMbb7WeGKAuiw9gwBqkr9tXHTz507aXTKEfpZJP4d6EIynK+882pgH91ceVlSMG1Lqn2lALDJrVSei+JA2Gb3qTRXWv0Yk+7eberjja8Cuod1ZRvPE3V7sieyXSRzFoXDyzf/xLLMBpzAJo+NzkGz3qNC5Ey5u4Un3tXVho4kxntPh2HiIXE1Q3iJY5K0hughnJpgSIT3jiqIBKjakMLSUYrm1oj0+m7D3hFiRTjj1a7ejGvpcgvLGy13N8cx+j78lIfb5CSinrR61CmtpVCmWtKpr6fHBi+Xkdv7U2DU8ej5C1R9/pgYVltjWL22fFweDmARK6H0oeXxAkCVAUL6op4F0gqQFfpDyMyveuGz+LLK9FUyXoa6qmSaueXqYZhiTIohULrxOt8KshApYY4GxoP5B1oH/LLzWTbEuV9xHru6wuYrskwz4LPJrZHGF+crFJMfTziNngJST3w5B859yKgMS5YUprHLjrd7HDXeAf1grO5b/WiZrXjDalj7fo4l5i1SBt9KIoCFNTAzUEnBfhq4nSSW/Ti7kexzD39W/iNDk0ULcGERsFqTlZL6FpZBXKDt1ZI5dMdolhCPnpnViomZ2u/jNeO4ehxxYRICGHzl7547sUkABITrU83u7ufnaUl1A5QySVMDJed8YttJkhnvRKXT2FPEflL2mp67yPnOHbDDxiVRtxUEVln1EpIY1gCUznArWCMys8MKzCLWEB8tor8ulb+ZI2CQeZC18Gh6Cs/KOmN7hkgWJjz/2EZApIXfjIJZTNUy7PL7ClOWH74yqZ3Vvd/EZxxHszHGBqKZNiC8twIr2vU0SJU03R/x/vQ5bXhNMYiabLRVm5VsSUb3KJY5YPWnghbSDVdXhiWREkZIhLukKEXiiMRJ2fdZxAy5eGvaElXsnlqXl4u9X5XxfHhxrDNGLAIu0i6Yegex0idcURSUsVk46bf9tdIzIBoBH5C/lE7JCPGoqFg07QNW3pM9kz91mcED2OAsyzLY1Kq9kLJ6O/jttaMyt2Sbu3hYmTYQWkqmVLbW5e9RhhGJ+nY9Gh19NMT2BiQZnycQcNy2fmXhCuBbZwpo50Mg/BI45E1MuPa4pCwLOyoJrYMGCxHAnFFkBDOcIRbXAlnOBSOgIAoiJtyitAEUEBQVI6WQqGgcoibBYGAci8VIJZrgYXlWMSPeAPu/v2TNE3d5/e9731vJs2aIHDgd28q/ie3sFdnnglP0MlNTooWTk76pB+QY17+bY1co1G2oZ3YC2M2sIL7iBmKm98O+4HM8kpHAGS0/BGUj4TYKTQygyd+EtqDHdaHqgG8xtIGIVfFrAYtgyDo6jkgRMx79Z1d2w+dWjd0kGtPWxM9QFK+VFaoy8De7Nlt4UQa9sccvB5bJRHQTFS19hJjQwEhVJPvXQpu7aHLE0Ik36Ipg2wa3IQRVsEY4X128MeTvb9/p9KUCPxrOaE1dpkQplKW1/8usmXWxFKW2QNJbwQ4vUBuW5D72+lDMiNUcnJrsybT5/msYbbgBKhXrm92MO81jCpgh5h9y4bZQ7Qofm63m5txYUI5fKCZ1LNS5ykWQCGDZjbCCicWpPmIN29t38zvtSuFjgIg4VubDQ9pJkoeJzBwTCH/b58hyt5GE7dQNE5NgmaNuU6afWuoG1oHV+AkZLj7j85vhALrAkf5SKa5w1Voc2L1MGzjsA+qoA2fo2owDaSa3ViymPpUE3aCuJmaViP3Pak4vWmvBVayJGGSbY1z2TLPp7NPVmRsKRlXe2Ue09XpNQISxxrCO+VcpnHqCNmug02GZVAfL+M4xoSErSxsOBTs8SwRyLzHMQ2j9niARj6eNbdRkuirbALn0JycoFgDLIsr7+sz9GU5vmX/ls3bTdqloScQNmu6nW2LXxyMJ03km+YdAPgvjH/4lHt0A5s3b5UxGQgs4SKk0/BCBlcBu2aXwJICvG2wOSAaNsgR3ATEtqmJxnKNkQeK1YtqgBgw+xQZIrUhe4UuHW+mjM0MbeGYicZ2UJA18kzKhI7zccxT2ttbA906Yf6v3nx05HsxaGOlJAYLey6Q4gm4miVb1hj8REuPM3nKEwRMYnDaVS6slKIEz40PoBNRy29lzOHzw5Pa5gJ5CFohRKgUIUoK/NQNcnTph8yBZ7Ya2ckPz2ze887GO01lIhSE2nahAkEt93bNsLmNJdzpLU/QJ3ay8QSIHR6Z3ZpgKKrVgvmGjpp9UUASZguLGLfuTG/yLj9tCR+0AzNhb+vG/KdTDIxJA1DBpmWYL2ZNs0EYD2iMWMiEtleDS/++ZCEa96OwuBzBrs+k0yXa4ZnfKc+Od+cxkKNalNrqU0dGTNQc2mXG6gPLEdqmi4nSNaO9GVq2BYyIxS16SgMVJZwQloGIhGaEeIUHXEkC/czcyBR72quGPUoJ41VnGoH21OWoW2iq1Wl1Nw6yU7fDo3abaLsSUJ0QQVRbYmfP/xw97MpJo/x5I95B6L3oWz+8JfdvpVzb/IJgMc9hqkjZ0Lfz0UubAsumwynUUGI3xq1uN45W+c1awNBEcajfmxlAhVmPhPHB+I6c/YjVtfqNpbfx8l0KN9m/+RCWczZBTdI/+DsNOHHbLLo2xq99+G9A12tlc1Cf3+w2HpQ+bLCLW2FKZz07nKh22J72iQ6bJuQJ/c6O1jh7G6UWJCKRZrqM7ULYcKBiEPnONXX+tEsrGrsq4byICTldzQ6ogHim7OrXN5QRgtonkWSGo1tVy4quegkTrCIe5YRyUNznSkmftlq91umAXkmvdJNxR97EjR5zh5RQDVSFVgSB/eiMNHA03dXu2qEH2KEzu81tdm9+OxRa0/QQzPfbdbm9g2Ldhr0KdrCyvNNE1ggHKxk2R9hkr3vr7QqaCOCAp4k4UfwYLLEyjsdM09ltNHGTmXcBBG4A5LZbpNk4fu+/TjwGnuPna7MvABtZnj5K/+ZGhK7RzIuzvUkQmogRNIajtCVhYLI2a2djW1AUeB7EJrRAkcUOOYkDG+QKjYIK7fg96QjiRG8UGLx7OV+lIgWBY18nbkpDnp7/QxU8AWYM/X3OLGYBzyzZ0Yduskb9C6WAqDRiG/PppCZ9z8M9XBxCGosYJBXXcDZCBMY/maJv24v5P17aDJUgAQL1nYDSRpPOinjHBiO3kXujqAuNoTUYBLcjZu0mtLu02RUBXNMB9gXBOTUMCwE9Ghu+jqkeLb/o8JtBGEIHeojU55BgCTSOtv0h5Pj2eJkmtFOf36axMRVvVLObm10rzepkp9k4RfAfbNjtyqaHL/u8DlHssDsweDUCcsuxCv6/TV0UY7tvs08uGwbPSdl2gKQdxjUcDay4avAO5bMbZ8uWteaUHThJudAaPARMCac/377lVBvdTCCPJapdkq1iP0Xbh14mfZQ72bxl5rOoGv2bczVor/FsRqjo9XpobnLp20p6sdhTLReWXhW/Kpx+epvTxo4K2mu0W6zQCNX0TEJFmw39/wA64ITtNObgEN0OWLN50tkLHI/XiKvcq8erW6GRwHFu8wBI2MbIAyqYUcBpVs9HYnvobqtd/LGBsR1jcmqg/uWybQOi3f88vmo04842GokXFIHJhb+uHn9zpUBW3HHcjR47nq4bgZzqAO0b0x2Sd+QPgTF6AWgIp35DewOf9zoIotoWdWgoJEEroRqFitlzoHvKzQnnkcXj67Y/5nEa94Eg75+O9w2IAAkQUyYxv7dSMvfMLE/yn/5wzDujCeHM70a8lRPqYsnO7RJKCi+mwzmBE9W2IFcudXJh2+Go3/bZepkHQE3kWFJdv+XbB/D2gUnvga5Zq24USMGFHYSAOtDXsf1KDQ8aYnTrJii6evxMbcO3VkdXa3sbfos0jWkHqSCu2BMAHrbodn96q+ZeWIwZIuzgZpDQtix4E7nQ/tmK3EoLNCCsp+/Unm2SouVJ9Xgk3BRNqzH2eo14HtmUTaKGX9hSdzSnJbdtq08CGuxeaqOW532iaporQfm1A8NQloChgm6OyHXGzYAuPEWqnB7+yrWsy4oN+hvW7UI/2ZoAeXMQ4ipp9NNrzZOcSzYs8MhbLN7lRCvOlCIt2ampbmWU7ks8IWG5gus35V7NcjNypp9860+FWWQBMQQBr+x1U1+6mUSFKtp0gOf0yBLMuYJ4ahUHDrdB1aYJiAx0a7w9j6U6gBbezurn26zZwKGwqwPXwuSoCKCRgpiYLUDrgT9RoLvoB1DkRnNxFoCg3BG1A2nZaZ6dBPYYGRiea8QcI3iw06+R1fOgDASEksBiwWRqQvkOavsQdlOFy1u2YPsAoaC1gGQyRU1G6VEbEsp3/crjPmfU521NuRpX+0QxlslC+tBMVPxooFwFWnokSdWkZfjpyb6byHXLKuR4kUyoGr3x/kOifc9C+Q/6LcEoLXCbEmZ6FdFaUy27RAh7lvg/1OGOdto7tiLNuQyi8fAgJi2Hg52mSVRLhOoI91TRzZwm0zbQxOBkCro3HMMVUHu6j9AXIumg2OPNtNms0OgaWEs2e7QaZh0jA9/NTO4oTLMUWAGxo0pJKIn5aCIUJrc6VMxdERtXGZ2nNM8G9g3gUgdmyyo6Oa8FWj3KSjI7iCglNtHDhXDwEVMTdTiUmdtCUFhVzKzsJCeMRQOZFBZ6C/ckdamP9k0wTlZu6vpem5U93z09qpKuJB4DRFuW1XLdajgajFoRASt5Vu0OYkWyDrJU3qoIt6qzA5pRZibT2Ce5cGb3v+drNRHdaL2JdphGAktrhd+tagILmwhLNVFs8KVquNM7/1WFut82qTcO3awVm5plusg5/Pspwohm89a3vPrTlZHaP970xXlDodbZYtvUvC1M32nC5W7LpuYKVwj4mQs1c2f4jFDd3CGx3dy7lZV7Ag+5sLs723IHp7P0fRtCA6652kbi4dSxk2jqTLhWMbF3hFbgd9Q2CNJhnJdi5krcjG1Mdw2uOadO+6EP+Q3PdhXCzELTGqzyr/gpSUDIxAzwviQf/urHj5IOoAdXyVZvvxtZw8P8ctfzirLXaxEikhyGaRh6XtcaUatNOsXiADTF62uFl6THtnq6xkXtToNSMx1qrALugANIYPGPa7B4pEMRNEKgux5HiPICrY26AdBbN7C2ljh1c/v8Vicapbtzq2Bx+1kD0Bw3bnUOJ7m/TX2nDsyqDxDVRlKNi8WUdbsMb0Xr/81tbKeAzanxc4G7RWzBONfohbY0Wp4t90BJPe86uR+COFePh6ChrSc/fPEU4w/nZBSgyDkFkrrDfMoKwno/7xjLGacR57DRpKWgnYPlyLb0DdfXal3t+QkpptFgwdNdpHTMzJgqYucRX9aMkHmb5HRrv+hX2eDK/HtVFEmpZsbCI1/VhMvNivMBWHnxq7TMcBIkLrkmXpSvFvLvjFGHCwcuO6c6lHUgvR1HSV0KzUO7hkGCOe1XRs5gTIgf6J0AmHURkDG5nSMXC/b2T7YD6xi7V6vVxQ3a9Jb9ahVsV4M2dgej0u1wWzWkrYAkijiG92oOe43eGztnt8KShA7WS7OmbS0rdEBtc1K1YCMVrmx7qIEnJk4tzOx4uOkermCI+O9zdbztEPhOquvQLPkmNdp4ZinpeHOPz8/36FrvWl6SlBbr8DIn7k/XE7Loj/q6zxEHW+cdTpPJQ5/4xShJ/BEKmqmfNm6+F3mW+hG5EtGt0UVRdYvLf/jDlVHE0Od/Wp1rTdge5T5rzWNB2JXnPeDvsAOXvvzHg7ZV5pRf5xEGDCM8tUjiFPJGhuHeb85TzJ4oab8GuRpENXBOtr3eE7A0BlVjqhtKms+Nju1U3Qa6UpO0FZb0OO02myOzoodGhFQPwaOoQ7N/AU+xmnhVYi/dfoPv3K6LfCS0dw47t+qiK/oBz52a+6iAv4+P+miMBqbGxGglgUNfGiKedNNMTIfF8fZtlg4JY5x6oJ3dt2xwPTjf6yhlH61qn8ZdFzXoURJLQpgmPlMUYCuriCwmNxRdfOLPiXr6c0rEPviCuvClWn/9uEeGQ6KYr9hW/9pfLtaTi5ve8Y6LGTs4ZFZPKc+PJK894+vVAT2+/PqHJrR77QVPeLVP9ACKqmOhtRAoIUwGAqfDg9hScwpmip2GCEBKsd7Z4VcmDkGW5jVk9/TFN0Kt7MA069vtwPgFsAWDhiLIR1p78N/Cxq2GUUu0bbh76kRO08ALs1+cbpjw8hLWUG33UkhP0EO7XlvgfRhoUdl1Z2QfevsF8kwdQwR8E87lyYc3m33b7FBoNRymnKOzlSWkQ3Xcj4g4lX1pGq2PWvVvIiLj+vsuyzuMkTZqGWiWJPOZJHrCCWe9CAgmaOxqtSsdvacSpgrV7096iiQtn6UsTZm39YfvXf/DxZXPv/0fL7hyvU175ODA4j5xJRws/KxVRWQgoqezpJLCf/IZgRxoKOhNu7XorfRNTQOsEUxLVQhllHBhY0SKsUPYBANP6y1LJ2Z1Y9K41d+2m4HpEjoA4hj6lTZpOu4ykv3f48CBxrdDIYdBjfWdtWw23W2sFolLX/nRNZiBgebBvO3ZZuidTvh2Iw6P3vjTpZpy7+T4jX8vg6Hn7OADoxBOZYfsqPHidvv5GrVghw7yeJuAlSRyRq3UpcdjnnNXUK/392tcsUO3JnR+bSE8AUc5iClzueZ6qBnlBIevJPeXqlVmc+K/sbFdgXY+8X0/GikGT8/YFIjetLv1r4//+x/Xbvzj3Tf9+8LH4wlVuyfKVxQy4SrX5a0kuv303Fetkx3x9wtwkwLBuHPisM5JoGtFUflRg9K2nBNSa0LQnKZHCdl3AmGHh+qnYQhFm0zmgU1NL3bQoo01XeD+TtAMHOZBANr9oBiSi2Gf9Qs83a8ahTWG1N0KcG9boC5vtPPGzOlUDU1FHWPBYm+v4Zxu33yGQOZL9/zBx14wp4qHmIswmx9kQcQVp/X5cs+sVAyo04ipBbeqRmSNkUcbD+jUJh/Sk9vUXKmMt33KN5Sr4nrCwZprGaEMjLp6HeQkF+pG5fqFX5J2qeS1Y8fn0fWLFoS3ZXkq8get3Wstb3/d27rx8c/tnrzge+/+2eeryq16nBy479WVgmAS7/gmxhPChpM0gkM4OSYE1ITDpbjMWoxyuq+J1KT7xacfaRo3W23JBMLQsJxPf/718xDzeH97gUaLJpEIJCHQAWY1jG/cv3SP3ytAC5WbZXzC1u1tEcDC100pGoih8EbH/cnxHFvKG81wpm7/+MiGo5TAyjLGR8DhIgPO6WIqbdG9PxSH/DywmKN2gHZ2Mqsh6ragXQliOvDvlAxHpCx8WtZ6r+eqehxRRjUcIdXtzMQVxC85YSZzz6WgNG2n7DAnhIIl/O/v9aCcLpnPvHbUKUuWnbmMuYRURVa2Z0WHlXK5TklqtbYe+7XHfu7G9z73sxdc7lyPLEkJGzCOAxdJmyQKjV1WzCOaMAVR0Twylh4nAJoOL33YEiLGrPmmr8M2dZ/w7AsdDiciDob08Vftf12y0whbnnxUGrONfdrZYe1AQyW/XurXjwPbzKVR3pwebWOYN/7UyCsRO6fn2+No2l43miQIouY4y+Gw7dq0pXnFbAoi2oGjVVAJy3ZOzwKo7GlV2JZZGNJqKQmq+3+DD0PJAP/YqeCcucWBL04+rqYeuOdodykoUdwFISmAM3PM/CRx4rw/8GBoGR6KeXF4O+aXeVmqSu6OPYtnslKWhArkaqT+eH7CvEq6bCgtmW69/rmf+9k7/vGuz1/OLUISuCrobI8D1mut3NhWy6wq4waI6oMFP33cPQ+pOSVdC0pvbZ0KzfEWG/WiE0/sYjNAuDiyPPwi2VyX1fRQ7OA2XDevbUWEEraCspZa4I8jbXy0jEanXTed4UjZenuHKtFwWr//5M+x3KNt2tbQYm4bu2WD6rbG9dhQM/cIuu8xXYNMbctiQf7O/+AdzAUJYrGmI2H2bJpxMTRhh5bRbkJrHl3tCn5S0b9vHNR4rFuackRzrZB7VAFNzkAgHuPR+T6MYSw1S/+VMcbkNY8sO0r6fzxi7Eq/H3EJlMtf3/Ot39ylDPBc/4OrfO84L9zFicu2XvXYr/z5bV+/aVJ5DMJ7sPn2UdJaE5M4+ZZBGBhbCSOEQZEQ8nF2NDB4ciqIMOpOuRTt292MnTIMQz9tOtGob6xOGDX0LDzDjqcYQkraVMs6yx3ct5vI+bp7+3PbyZs7RAgfEmFpehP2N5eCnzk21An0w7DIoMDcFhysc2yR7FW+S5qn3UYWQpbAJZ9Ljcp3Vm88XfR0DUmhmnpScy3Q00isYZDlwsvAwYUjtSgomc5oLkgKheRf/DfjjJtlNWtEznLq7y5DCjETiiZo7a0DmByrzX2fzK525KIQvhuh4aNOiTo7u+DxtgQj0ZWIlHnf8tnMS9KtD33tz0941C3ucrmlJAM7W+QG/sfJ8NVzplAB1SVpWAtpMQwlzn5fE42zrpXg2ndbsRmb4h6/5QBSfpszB+mYDIVVwc8rMd0PqUE0dMI5o7BxFH9yI4SOoorTwH3o+76MogwkmjnwctTX37sb2Otx78jXvvFPslFxSC5yVhsOdudX0c+xVceeeA2bOFxUHLkmVe3Btuk5NwPsHfRwHKED4zk+I4rWUCZTSDxN6LCwgkx5MAcYpH0Imf7jX44lwDTS6fJ5RI+zJiFQYvRkEGtC9/cU2fPpUDFeSVXu5VVfku50RKhP9o7CRpZKIJlajKguKr29YKwntz72bpounniLn7eITJhM9DRJpJLk0rcvsR5ROl1k+z9fmnzv+IcfhmJAe6jmteZI/0qPlpu0RSHjiVlHdWjMtO2HxYYRy6EyZCtB7cHMQb0SAqqVdne29tMK9MHHasS+OAW41K4HAeanPeuWe6Hdrg5uFpAfrY52QrBc8EAIrRI+6MvNZAyBQJ5FnNhuMOV37NkK5l0ekJoS7YZW7XiiBt+9OPXc1dHK1plq+zFglWXanZf62kjHXIwvDWNC0+NGp0iIgLYZE8jV2XRhZdTqUz6W33jUU4/CAYmOGIzSTaW6vD4mEre9Aj82yVX20+VZBiQljkEbPPVlEYGtw61PX7nN7eL5d44SCXYm6fm054KgxcHw2YeM+aM91j773CP3eJYto9cZ52uUuyRSR6quCW/JDGJOKB6NRSxw2MFy3CYD/dNvaGdwYeOofaKs7mRiffi1XyIVum4ncLK9sTN1G+rvgwAHcnONxGIz2w+DMIj35mG02O1hat05//0nKZQXhJRR6ft97TVwf8dEG1xQ1DbGRuis9I0Ece34DsoGyTou+4J0aRzd0LNI0wNqqFCSmhSUWz+1FzKJiVXhUYX7bUqj870O7pBSFiRW2dlXOmpXd3obiB4vVoS511qStG8atH2lIqbUEABalpdaiSUz3/L3DvNWVmTZcOtHo+Nu7+gL0sMlJQfU/o0ld3ER1re8+KWvmA8JvbZ9dQWo9251GhFOcObcpdxkLdIIQsrcUFsDn9xkUeBWx165hwmle3BMHQVyBT4KjqjFFW+qGn9sOgwqmYXOwVDTn08vtaCTyHlCPJXqALZ3xwlYROxkvmliwLFPnfkQ6CnWvmH2+VEx+2nmOLuvPUJZr9W4J7tvWWonrXxeMhZyJhycDhoRCVEfgs51IoSK677v14PIQviRQjDHqwwTDUNroFAyftL3yeag6njdDld4lCp1XolbjtGYqTfk1jJQfatEA+lETCp3IL0Jy8s1U0uf+T91raJVLJ72swsm/b0s2rrssuXZWZtRZoLmHuzm7hu/QJJif/oH47AkYd50P2GMeWIBic05WXRUAfktyz6PB0SmaRYNzr4/JS6kwCbKy/3OitPN0hL830FjY8mZM9DoPtZydyXGc9WthSR+UfuNgYJj8ncCyxL5aWPZ9k2IJnzTby2b6R1nNjs63mF22A3jiXFOYT0ftsLhVX+60EIRqMvUrnqtN+7ObY3CN9+nGyZY6LbENNqnloBk1BSe0lep3/cMpx1O8JkYg+QyUK3sFDyikgzaeaa4bzBLem/ZnO1zQNuXHikE67KZm2U/zyWz8OUMvafYZFHB2OQPXQ9M7f70ltyVaZR6W/lBK7GslCWtXtI7K6Rkt9k5ynuMJZALFLhE0CetVt6GZfDXzESkjPgwoXXtK20l0bCVJNGYnbZ6aGiKE7dNwxbt2QEjiMhGzLGV+W99EAVeobtqSKAU9myJ8VHAB2n0LWmzbdbwvdoO6YSCXrY9M8MWlRxBczaFZmIgsOmNJmuUjuanjyfZjghdLkKyVwStM69j1yKO56SqdyMBX2/5Jk5URBzNBHcvLE+jE7e7JhC/Rtauon3jjrgxXJzAV8ILkvwQLZd1PN52La+bGLtT9hP0h2TANn88late269+7lm+52Wd6Eo78jp+NC8G8mxsrU+ytNPfWO5W5M570l1kvYOoR6Y3UADZQWHNsplkTCrgl0BZga30FDfzKssuzaeKsiG6EdHkD/vLb1AihUsXyEaSsiMtkhNt1/U05JR72hHCvGkkypUW3I8deWu8hTNzSE/Y2S4NPA8DdR604fgdRTpkn/LaCmn0zneexRhUTf/3u6HjR2AaIkmubQ1KH0Za2PAWYRjCrCNlLaQgYn0FATK+GX5CsJhkKRXEI5y5/ghk5G2mRdThfYq+W3Z1y2gqJMunXLVNTvyWK4sqJx7NIqgmpKtlYuM0OfOtqbUcDcvpPJK/f8fIQ1vZ+H4hO63IL/1oz10pqzfxkIZY7mqr13N7vYP+xfT8391BXkiWusnYrTapmyaRy0zBJ73dU+mtjF77TLqdi+vcwEvUiPOlmJ5wTnHw4cEe9eAmWo4UtktKBzGSf7TPPelE1yxFPVJ3FDaFlizKoKsiaI+ID4o6jvY1LSYk5MaI1R4eOGL6p6nQoILiJnFb3WB2JTIdh7gDcBzKckp2bIEFQ3GDOquhT7hyQGlycnZ4RCl8nDmrJO6zijFeaKBACg7h3+8p9FH9LzfGVypFK0LoeyPYhaNpFiV4LhJESorCh5Sxnme1QcdC9lpJy5K90yDz1i6ohuZYtguPdf/e90al32eW1cuyVrT1jK2HrarJ3572j5/ddP0PfxjmrRbqN0kZ289bLI+SlBBvM3yyRNpMuLRyzvyBReeRTzxmtnYTKc/2rUniyra7ts5/xTXQdIhwJ6Etdr7+r0dacc2JMz1F8VsqDrUWdVmKcLEKfd+0avjrph4QZUMUlA1AtXOhV4u9OYiN7u2RPrbKrUsvRpeNQ2ULsWmX+gIx4KWN40ArCPExpnC4Jc5wv33L24ex2f/GjGlPYtlRkRCal0RzCr93vOBu0knaT//mlNAuhsiELHOFgxj3qfuqIDhGvqTGqTPiydTrMkbOj6tWuuqz/TRh6gIW6epPI0/KRdcrD/YPrkZZq9pvV1tvvdODv/SHnw3GL37Dy174nBf84UpRDLopi1ILbtU9yWTS2yTRJOVddYUq5pV5VC6KtST5gUXQ/BebsrWXJkPFLWtAjy+uHtXqcFeL2OcCSrgIbow5CZldjgiAWsqQAM8md5wa9aabmgNgRkhUsxrnLMIY/WhJxXJuNxIrr7mUBHoxHPaBrshyQRr1SDJRslKu+UhXx4/d5TFquq9ap3skxpVzW5LGY/RGvvrlW0/hq+DvvDbzKc0I1arVdcFkkhwXcX98UHQjNSGbmzujDqpv2CfzDgOaXYXeQfJWMiUYcbpJdepZNx2kEqigrOXVX/Wutf2l9mWetqbW0PXcymvnedbytpZfvOv3P//uF977gff4wfvv8cJPv/1HF5czN+0dHJ+lw2xzyIpzlkor3V3CT0nVsfY8y7MIO2AtZhUXI2hMNlkoTkm/0no93PSps3Y1EzeNCyX8WQ9BqUaArlk47ssB8aZtHQoULWDUQttK2H+4prVs60xPNLOPrsqwtPX8ur03nmmmiHS4A28mLC8hE7FjhzYPBRXC0u3aPP/W+OHCWY7iXl7hBzkajZLHOJKrn3nOCz4xQOFr0kb1Cr/DWQIdRfVRkpzXnpsQa25y8LC2+KC9lLlQ8Bjca0tY01ZfMdlhydU3rtIDq+2akDOB4WQyPQpUZ1B0cl/6+3KaX4fzPOiBoIhQts6/f/3zv/juK17yipe//2Wv+tBzPvbut//lL51sePS9u82ZVWVZt6IyMS+mpPK5ZJ0oGcEZ9PFQpkihjPFoud09WpyTmBKh4VAEhwOkIvRF2LLB0xp1KdT8alM7h0ffFrjXJqPaAdAqCENOtIM8KEJhl+HqlhshhIc0DoGkDn0H90pO+60rOlrkLbOsZgJlHfsK30/FwYLYP2sLS3TieuCWNUVp1Luuoedb7NgeTghuVVJRzS/byoKiGllFtNZDVZl4AkxQzJJEZe02n3RAzgkKxfLJlx/3U6mUJGellSZuFaXy0jBNrUGVgpVtV0J8f56NWl6WfX+1GnjVNB94l063Pv/5D37u4a942TOf9JiHf+iFz3nDd3/7uXdMZlUvv+VPI+gxpGL/hCXQ1APpM2CKawSipoTiUpkExYVLi/zcKv2iU/aOvdKZt4Ujlc2440VXFAq41GWZtqGzHaLpHjmCDYmIExanMgxlzYXyHDIgos0sB7D0Jadm4Modh3A/7Zk0yl8rLOftHMC9xCHQBC7az4mZx0IKidWC6MiRvI4p4NN83S+tidwc3/w2l0zkaIZjTWqiTVBGzL88y+ZDqMRhZ88likOZUd5WXhYsImUnIpEiLfxlJ4M0U1bSZXLqq95bzlsodiY9C6nW1Z61F0We1+5bq7QTtby2NfHO0q3HvvCZ9/jd+x/+sic98UlvePdnn/OxT3/6XT/K+1m0aFfXP/kNVIS0do+JOv/Mue/LqJNC+6vkoJIkwVnylMwzWvaJVAfj3iFbecz5A8xEbsS9o8KsMyhJobUdDXWoOwPVJ1Om/RpAWG/52y9R9SEKWIfrQ325RlBbFnVdoxCEAwwILsrvP3kUKj8bsLFY3UiyqqsdAErhnepRiNcNaySBQmui0DYNdmemYAal5/mKjn9+qjQUmsvTU0hEJ/rm14cmmtunjGRu4i0T109MXJEfWf6GELXHe10lrWus/Ps8mh26gBn+WwJE6VpWsqGW64JY3tGvVq25VVmYKVkVdXwvGlheCy7edbe+9diT+z78q7976sfzXz/nBZ/+9G/e/PY/XBtNRiVr07y7thDjZdUeYXnwFkytH7jtG/HiWTo8P4bhxvbHIw7fRZh1mk+Ocj0AChRn7pT9Uw+uU+A5hAjAl2viaDNctcZEXFGah+fb25g+CzlwgIc7Kq85sKdtk7QB7GURPe6xsRYrcrNlqDNbDPKgT9YckY6gYKCj0baAlXAgfRQdaxjTo09eVXXcobGGLgHVmI8tT2qtz8Q3rhQRbuSTm7lgPt+FRZq6mB9lwlzAlS1ycpbh/gDkmW72fNBxH87ySpkyHxXJjjPmYlyXEdxky0oPX/SXzMpSy01T6XmWa61/+Jqe60Yu1j62nvDA85985M3PfMRHX/yST7/gL29/znPf9a4ffe/pbyxaw7VaZ6Bnp2AWZ53uUPrH15/76K43ddM87Vy1Mt51lxZtTdXRF9957kc0Bh6x7tlw0Xwy9+Vwb5cJr5pTbbq5xy6WTsQjxyq7a+3wgxWHgIqayAZxhQ2EwKXYySGPrVn33/lNWSzoat0bDorrdlGQMVJA7hI3F4xoHIQ4gFMLisBoX9FkN2p7RNe4q3XJrOwINeQp6VMij299Bu+jyXoML8iMZDKWf/+d7QiCxj3X4lHSdj34Bk+qaYE6PPvxF944rn1r/ZZND5o58dn5a18KSw7rdJOVTma8G2W7P21Z3XF0+POp/5ZrOqre8rpPZla09dR7f+ujD3jNgx7+mFf89oPf+8XPPvaGj739e39xfrXA1rRZaanSdRU+FdI31ynY/3Cu/LLKhoThxIatg8yVCcmDvRYjgsTeuUsPe2AQj1WkqcWSLpFXWpIry3QEXZfqQlGeEfNLe8I6HkoiigyNWiPBcEDtWmOEbl1RxXYzrePZHP0HCRyiDF8ffOc1p6LKPXF4FkNMqJ35SsSi8p3NSgPGfcVjOvHiuhZWzRe9jFI245DCuHtYDqAGvuKcmFAyVYx8/R+EAtx0sCAcLIWoprLkvmTtKfN3/33lYg478/2GdL3IKnj+lkX1702623WLYds6nPX23Ute1loedB8HIp8XQf7J17z4RUfM3Xreve/86jvc644vf9XvnvLpt3/wex//2Nd++Jtf/Ohnf8kin6lOkZkJUkpJfF7dmC/3rzJcP390xjifr+WeqyTjCS+gLkNfXj7t/IqiH8fV/h4XMcVHLuKTPhUMswuqv7ZKGvmRpxyu9XWyoieEMtuULfo4l9w7Xg11d2z3Levx23DzcDn4PnxdMOF8oyQfnnXn9Zee9t4vwRDQ/02yXChxdMEZidAjVEza5OdXMx5HCboPhcU1o2PIjbNnGe9lifTOfwV2MrLnOJkEuG0rQrYGZC0yc1vH+X4m04PF7kxsR4x1rmfgrNz02WQzQa3BI1Uu4NhdpGmUtzqddrHbyDDWR96H2y4fIg95zAOL0Rcfea/3POap7//nuz/98c/+7B273/vNp3/2h4tyL3PPfmypdu6je6v8cGr5xQIXEB8qdZF8Tf1cdtqoqt7So6zXyaLJOK/aUC6RUOCUxJtPrrKz018qxxSzUBbRrgn8FNwkp8pd9zHYD2ikY9Q7Gb33BmtmIzEtZpcVEZgtmVhFwEsIOKq2vOTc+pQMIv17Tt7CVe0JVaC9I5a57HVPj4aUuMQQbt0r5FAnKWZy0FHOi9XUZ5ZSTPlXNwn75a/+domqIVs2oRsMWU9+UlmMAdFrh7nVh2P3e7Mu697kRv5edCBTwNedwtb4cnzSyi//4cax1zpspVnewTEs11E7sqrq6I8yvKXsWVtPfNakQVd3f/LLf/fyl33oE197+/eu/ejKj/7w+aJTQF6Lsa/U2Td+7quK9bN8tGyDrmYIU4STg4RIVHNpkfKiZ5wT4dYY+atZziJx+PNPVvHy1let6c2XmSRXsrLmjGvPJ7JmnVmfC9JfaO1QPfI0eNYe/PIvDw200FILCW1A1UaX2WxKOdlV0AdfWydnnjun9C2NW57tFATQKhHeuBz7cv9+z3/inU5ghhZxxKgilJukmEkIDWF+VKHKD/ZhALqRx642GgT9SMoERzpO083uHmPmcNHP07KFNE15sn+Meuukw4G1ely7GLq9wdodVDf+cnH5i4WXSozf2X5+eZT3dyME3WDt6C3nhZt5W/d9/kN//fM/3vFB937K4/70wH98/Ht/uBhNLk8uX54PRkf9zsBnf3/j/W/7R4wMR62p9IYImPBv0JXJ5rhvKQZRsqyKbawNg/XLl8Ln8KUQULrY9Mj+dE5Hs6mONQcra1odghMyKzXxoQGjPwhN/ePotBZepJKz5rHoQBKUP0GSroWIOSFaU5H5Fb5X1fr0aMYIlTdWG645MMNzpOC0+v2z3vCudz/7EHQ0nERX4lKuZlE7IVNuwThZLQxFv7kYFozk3bPFBIxIq6Nqzoo8TWd41DhtFUl4zdxCIMSQuF2GQ4ryFHOmbrd7WYQG3ko7+V8uj4qsdbTutfar40e+9fJ1ZHflqHMyXo1Td7Q/3vrjA55176e+70H3/uorv/jUe7zkb4+9Vk2GxfzS7KKYX9896kym0zB63C+lZH5hSTfLI1SOr9yUHcxdpCzEJ9By6FGB26SyeP+cENaiABRwIJYgBLylGoffYVZbDwqzZa8qMtcvPIjvaLDnCcq5pHO59rkwvtrwy3ZCyiTiAgohBqq67NB5CR3G7RpoxvWeXvYwm40G+umoETZZUDfh3a+fI+jUFX/L9bE7IpKr7kIrKtGHwDxpAUlGjH4+9N73/77bZq7Xwu+SRlHk+tGARFDU/f1zjOOzfcuLEBX70XCYF3m233OHB+vs+s8+/5fqGyduNKguP/p9D3/sRV5cHVSDo2xwo9XKh9HW1ec/4InPetYTX3Of97znqfd/+nPf+Pnr+WD0+e+962M/+83HfvPud/zoyg1xu6vqIGOzX7omSoUR+8aXQNPERM5U5t/4TtecYmp6VgTk5hWk8UIyTNAGJRV7mrC6X2gE4aNDCsZ12sdH3Nf8Su1TTTytYl84wIz5Dqp8oNzTtg8r2vfQ0wnVgkNgz5SySqGApMY/yvqv/Wsn8jtQZT305Kf+g82J0ZKmMd+ICSs40XQXjsNTRxFdXFEEHxgagalx3SUwbRc/F2HDTSUsuJWdXq2SvpTIQORk4bZagYQMZLLF/FZpZa28uPjRlX4+2Ldam7f84bnvfvvEK0aji398f9J589t/dOMvxeViVOU35fNHvy3fuu/rnvWge7/yrf9+43ue8KbnzF77s98cXfzhN9/72uvf8IaPv/CxT/nFu9712H+h7ttWZ7WCAkvkAZvu975jMQkRl6n8xvz1b5PMVDHjdHZVdYwZ6p92gSyIGfPlD+//ukppv1Twgp5qWyu/owZtAl4DUpLjs0K2xq1YA3dSHR+pk3RDW+881zEU0h97RC0Wi5KNGdo9RdX7eCI/v9XNJsC6hkWtCfn+Cf6y+gmPjHCOD9ab9P9jufwvSdcC00Ydh6l46uHj1Obk7xkfieaiqM3d5dTT00s0XbCSdh1zq8wq6BS6dgusoJZiMYPaBR88hwi2wGQTmWgtryoQYIoik7HpEEWlIBLZ5qaCOGW6xO+0TZaUXjv48Xt8v+/7/oVFPoIcZubRTU0WNtmHZdn72+EIjVqba/L56DQiCWznx6XFq7RkVBiElGIFFhCJ8poYJ9UmsqKXdSRWiv9saFySWQyitKnZs1O9B6dWl04d3HN7Mu8fOX5w9ccdE/MrVucZWfMmffVGwf69zxV8szF9W4V/25Gq1sZEcGaksN3f3p5fUTFWGC0aWJhvVuhwv9p8ZkJEfnKR5LU4vjOVRcefvuy892DDxWYBlN0UD52JUcZfHl13eYBCqSNFe24xzE7ArJLCCVj+UxSjosJ6iljpNZ7K4x8DhpIBnwWrs/nJPiaADzZpNnzuWKtJBtX7/T/TqQbaznN0uFnQVeH7MEyQsXQw4LSkMNIthlT9SPr0V22pEYAm1PWQDGqJ0nuNXjYq4agYn0w7DTQISMSP6aduaop9cJpRQEYQPsB2mr6Vr7jagUFggXiJq0wCQwn9nzt1Pvf74EQHkRJTB0Z6h1vWFoVV6/xsd2FJ72zxykzjwmj4qj8Hfi2cbcTSOH9qaX4tbhOSsje+8PTzh1/evyVz47b0XVlVhcUzxVPdT5SM3lNw8uRJ85HovtKFlpmYzyGTps7qMwKBOzJgT0UHR6pSgtbUE6Honx/rZ3XbqcRYPYaO9Y7ivPeQdQDKHsPETTEPAmnQ7xRtSUkojDItg51AcHDejp9XjF0TLBCBT0jhOcgg9yHj7luk7sMUc14au6rJAMlR4VSKhptjIi+P1uAKQEOusaQyMnihhKJaobfcYuMXI4zxHBOxdyA1QR8QvXyahBRqedXXH5TcgHlOuN6H2oKdsgfmQltHM5ojoUXnGeiRNI1qJ0hQE40FUDzkDjMav+fcqpO2dcjFC92FOd29KYlVbWnxeGldtLTh4MGWhe7xxopKv7lwuKg/kZhfWlpxS46kLU+s27G+Lu+V/enfvFSb+UTZkRMjLVOVUZf8x71vflZel9W+a9+x0YNLPq8qBT2R+H/SHctRgML6jcHdZ61RHO9QslE/RhIxaPHmy25a+hRDh9YoOS21xktpXT4jHCw8BY6JT1ao81B/GNtr4VQjTB2eADWXDH7DiZegNyLwOMQWcEJdtyZLMYq7BYyQoFEw9l1RzVninXaD3h9pFDeFXev/sz1I84jabKDOS/Y1C4ZmGg5E9vtqnPNBiKRkJWiBXq7JpyUs6ClYIMXA5zFwGHQb+OAOLg2HgmxMiFWwaYLIxIou9ad5wWbW2D2EhRm+eF9pUVbVSOsqkOTxP1x1rj9GZqeKWxuL/Lu2P5FbOj6AHX3lXHHxKXc46dnBDXvX7X9u78aCtR3Z206W/1o43Nqd8+67L1Bdl+9v7z35WcW3754dve2iPfOyhdDAD0xzxIJ+jbCmsTEd/zgMlq5QTDf2UJoXsE+uppPP+BS3A0yYduhoG8VL9q5UJllpcvMGYjmu4eQdhYg0y8FUdCrYg0ImB2xwFFbyhJFDrDGckhnEEy4/xBiPfPoHtqJv9qtWVUqAgYPvFCkKYIqOKnBxkUKt38TqPivepovAwKR3l737iujmaEhnPAW4yXC0jcYsV30YPbKvw0OYkGY1tUk2r4MKMQE3JyOgHK3RdijkEZMAPdhmstkkeemVvWePj++q6j1bfG55diT6hPnwjm9mx3qrSp/ve+bQ1vHoyMhwQ8tay/DyfFPSzh1PD87Vv7Jjf/rWrW9deVFZ+bsI5+YbBst9V/9S0P51/pEfzvqLqx37rlyZj/VohHA02rxm4lkDzTZZVTQpBpwWtGMHHPyUFUOGu9QzhLWKpHC0sf8K4yhHBNDjUMII414OhiUj4VON7pgBYj2PzyTC9XwqRCAGdAiWmGUH0i31FqPO/JqwseoewhSvO3gZoYw4TJ0sxi3/LQVGkhqGM1TWzVRLWBbDipM3ikYWJkzeqFCGH5fhLzXATAyQFHRyqsyx6FC0/YvNPTGarpkzOtdo3oZyC3iIVcAoB0luUSxhQlQiC7wgimJX2CQI4tpycYRJWSjs687pbm0tGjjUmzn2s00tWq4qdW2q3VU0memK7n08b+TPhj+HT8lJH2dse39rdsHWvGe+e+aK8Dtvlrcfi/r5xG/tY+vTvy4vLzdnHWtoHT2/87fiFYdPIJ3wAKAsZE2iKHraB26ZIiAJsZHOS8wSJ4IsZvhAgEsxIPQCY4+EfAox4LZGRYxtFjWZQvpgboDENSKCoNW8sCYgodwh41cfoPM57A6DOP1eCp5KozHUIFjj1Qj1xDT4FZS1FxVOLBrewNoUY9BKk0GswnXBAUF4LErke33NSHA/33S+4KHhgW/inTWalXMw4Nat/C+nLr3OJvhOr2rNnXYiO020HYhJZnnCst42GhheoVkBbJOd5X3J7FzQfWqqYSbhrqx1ufYVjeccP7tWZDa/MrSvtzIn2pdj3p1fm53/3Zff3XN/X86JA4jnGy8c3fzy/ekbNhfU1/dEfsyKVlSeOFH6z9HyyV0VP/zww5E8f3djTnHa4sypmXlZkuN7OK6rE3YyFSLTUkRz/v5pPx7ZeclCOOx2TSGDvusB+nh5uFI4FjlopIYYKWFMRi3LQYaWVSODiCJSKUZMY6+H7qedotGoqlY7r1zaE0/FH5G4BqBIqv5ckq1eGgOcB5kFszmsHUEvURmkIZUyRIk4KNDviL3cnyojp3lKA0MQvzkM70CC6m+Lt3FGK0g8Bz3x4D2vebGIywrpSTtvSOI7aoIiwihoPCHEBIjEI6qs4CS0habRMm1E5iEAS0SVE40NCwOt3XVNI/6+h67c0VtaOjbWNzZaOVw47h8bz385c3ara9Pd1pXVrmjdt3t8SRmDT7x8dM+6ifcG8555Jv25TX+Y//or+vPOI2Vtn5cf+aui+rd73u1uaJ1qadzXuKKqjlUHH5M8H7/0Ik4opgmdzIetWQ/2UKqTQrCMaGKYk2uLycYlUebIkkbPOxBSmk7VZddzoWUGG//i0w8qmPw6UX5pSF41oA2kzho0TbMgu4JivAlgbPQrUWbdr5746yNNw1vSBns/xwBTIqmtn+x8rIsDflX4FOQ61MkeY82lRn02KhaikTR9xTEI1KqigQeDrqtZejK+PrCw3UBQ3BwVkRjWhCnuQ2LqXDAWybk5p4W1sZB9YxHaJNKxQ9Wsu4umQR3bHImcwt4ThaVVLlfV4X3nju8r6iupK3m+dCyn8quisbz6tpLa3btz2/N6knmX/48la9LLL79aPfjso+t2vr/36c+376vdHa3wVzU9U7blmWe+fveYf+2Wd/4aOJYzdqAlMZVYmpmHXBzjzkSOv/4tlkX06zO3G8a/RSlBTmLUIS4ZTAEdSEHcJIWZd0uoN6SiwjMcMYpLHDCVtujIs6QR5JruIHKk0Aw806j3F/ICWIGYZL5J8DKRJkjhNeotl1bfhyQ2MjVv/HMmxWgXHUbt9fFTxT/j16JDAZ7RCCCWM4Czuk6T1WkIEF2/QGwl+LE5IMz/INAjFhxz9VBuJyg9ZKMeRZYhhEVeqoJAzhw9G1ed1SLPmrokupN1bD2Fw4Ui4TusHmvw+IOP7S4qKfGP9+WMz91yXUllb8kTJX37xv+o+r4vc47p2jhZntmeW1sXjk6ikr1J6wbrH9uf8V7GC0c/vHvLlm/2bC6N5rgm89u/Mv9ddqTiWNb4H3/5CyuHF4obZ1dwc0tASDXn3T7/qWSikAidQxewHxBGG41TNGq82mOgcFeB2yXCIWnxVcwXDHRGl3eMaal829XTQN4CSIhkPAU2aMkAE4iPT+micAVNtdlpQzMnJLubT5NQ3MOngHCMdZwfxxSiLzWE4rdfc9UcgAMH5yuXLErwrShO0WpUEUZ2HrWrO1yl6kCaEfFU3GhDSnUcf6CrzeSz/jfgrTigOmeiBVt/jIZlhmU+N10dNP2nDRFHgAU+SrnORDpoPBLdcfVbd8pEVTTL5XeZP8/8cSyr0lwyUYJOOv1nTpFr/aGtuZnmbNwmc7Kima/mBZP2Dh7dsW7nWxte+Cb0zraN+57bkrElu3Z9bv5kQeaWH7Iqvp58rrDwxEJLd0Nx48GDK/OyxkFRiseq41g5wdGjiXfZRAtoa56GytTsoUSaDbKSyBGWb7JAfEUm6gYyB8cBZS+do9rC0MzSRJ08QVjdXCAldQ3zusnTyWBEpViWg8ZOYvSGQBGHdcJc7qoxpPgCIphrWuDJ3JM3nlbxayDgg/4g8bDdZGoCtWOibTrupyhcRbGqD28O7ULCE2KnMjT9fRvFRCRaYCmrxJKYDPHno3/OtSkOnqVPx9c6WKzpLIFfprlHxIQlc6NNhDhFDPtQ/NLjhf6+rL6S6Oj23NySsbHS9dtfPToy0TvbGjVXmUuzS+qitbXZv2VlfbgpEE7a+eFLOzcMvvJm/bqnt77w3Zb1Hxy6JH1j5pZHM7b9umnj5JEfRlzvFg5Ubs8ZODA701K8ohJMd4RGlz/0Q7ZgDYk1YONEzsLZZVmEkMdzCcaUEjHQEL8ZmIEoXG6hPDGkCjAdBE+HU0I5EbCNrEKncrD8y5SmDzF9qzc2o0oZiyJ6QVhZkMEd9nnE2UghnhCITLG5GobGtWuyIWUJlgLipmRNPxfACwaWYVRG7qCWJEA3Qq3ylExbrCaTTiLpvlcYZqwOinYzBN/LBFxCikqzol0i1jA2zw6MIPbHsRhylkQ6+E69f7I8H4oVN/RFzX1m86by3c/3bS8dlV/g3VWFsyCMXOZd28ztmRXt+elN32+JUx2jST/9uHnds29uyNj5xnt7j+6pz3uh88expwvufvPhi7eUZWfvyj6ZbT5W9dj9Dy80zkJKXpE1VmE78R/pTkZeYGUiyQRoSaHBbrt5iEtOIpMJ1K6Hh/wE8Id48miGZ8d+4S0BgiJEjGhEDkSjqEjcUthIgYeCLOFx4wmIVfM+qIBkmdEgKipddi/eBT0E9YuN/BxNxDSdDDYixF4NJ6cRcwGFAhhBsHvbBUUwwRzIm1ijzAnongLoWYFgi1yyUmDgPAKKHLMcWcqaBEwhliYEccRYIjVDjGnx6oBJQPiJ/mUiBqy8NHTqwMLYV67X734i03V2U1G0MHN8e1ZR0UBDzmhpND89P9Nsrposn5x07VgbH0l6fMNrj706uHnjY3e9s7d+cMfgzv1b30vfG5Gfv/DZsm3p27Lae5/vzpcT90NcalgAyVL9y5mwDOYuLc6zIZUEYyxv0TReESQaxH/4A6HrdCfV7KQUgQNGls69clQyUqqhLVmpYSkOA4rAoqNTpCCBHAwYMZj+q/dNG4m9y8Bb1HnHWY9xqCelqeRwEDSLw0KwQBHVaDQhpDCqYB83LaNBspYYaJI3dswx+p6WRpt4mniFyOHTJhMRwUs1C4yM/x4OV4ZGHRAbLYhY7iIR4iTokTzGkfz/RPJBFRJkO0JrTVOASCWrDX4XMUwLoU6YaG3yWmKmeNRl3kPvzn2m/lBlVbS0ZCTH39vb21pUl5uZXzbZPjmZm1WWZV7v948kvf7S4998tOGLV848klS/862thw8fPfrNs+9/f/UtH288WfbZ0x+UnWz/oUIN1y00DAwXTs0sxU/t+FTW7KpuwWe/h/HUKajyoQlF4+GzZHyhzlAHfgzahB3YiF1qjhs5Q1OAjKEARjYoUp3LpdHcoEErSDujTGtS8Np+A4PMTBCixGaqDaqbfHBq/gOKlZrhQUEmBgnyk9JxkAIbiUTBTEGpmiGyBrGvUw1BWAO6MdgMPbfGDGm4Dk5XaO/OZi9NFHDgtrYY0bcfJUBLor1Hc9KejI9UotiVIEesbuuE1hZCzmqrThtLezoFkWhW5xAvENZiaxKs3sTKwrh/e2feM09Uxzdtr/R/W9rbV9nXV1q1y5xbOjlpdpVnbXJVREtKt/uTMh4dzDj86o5BwXTD+5/8fMPgW29ftHN/QUHP5v2fpf86mV3Vbs6qevdI93DrwMBw9/FDKz3WyPczCYs34POyTAdDsU6r+8y5w48wHBor7sSkcyUcLShOo3tOi6hD8xQB8EP4KfRczFOdmGqap2wO/OAOiXYYrTCYADbp9x63LRQ04FFNyvU1CHfHhE0kEtSJQ7ojBSsuUnG5i1GFfgOF+dflbEtL++iFHcH/LZaqEPIA7VJ0LBxCvzTFRFZrs2ICYerohQ1HN+lwKvYO9eclrgucsCyq6KzWhAQSuYN2AOQLNsEmsg6w2bg+wIMumLdb7N7iBn/O9vyv1m/PdI2P18WfHyt9PrO0zmV2ZVVMtm8qqvXXLubm5+7qcyWte/3NjJd2vvbY4TcOv/NR2+bBmCf+1HcFT6enb8svO3ni5GflG9FF/Sd6R0e6R3oPrq4stf7R2HhwBaS0m9fQzi3h+cTptOs/5ZqBsBFTSuBVgdJDC1M0sdNOq64eQmd1MAZMJicY5QCFlpfm7D/LGaabIJ6gJN0Kme7nKAnzBGtBU7/dEIsTCteJaUTlDYY9Od/qKoVOZ3dg5QE3iQlmpQQJXNPPpHMRwdSfZXTwyTYTh1e2ediAl1hUzSmwInqoFNc4LBvosQzG4umYKFDyEOFV+DqaLU7Nify0aqLYITYtmgSRFmSCJgExZbVxKWE/dw4JGTXnPlNXWtcXLemL1mXuznpi5x1PZOVGy9uz258umOzLMmcvZlUk3f/yqxkPfXvl/RvqX9u89829gy9v/mLds999l757fcFnW07Wluc/v6vc3F5ROeDP6R0ZAI06MDIysNA4M7OUcDssCbDXSysH/+kJui0aJBhOkWHyE8MS1A8wO5LDg/HtlVlMFlg2MYpoxUMUvTpJv3zIYACcVWjJECGKjH7HwQ4ZNIlpNSKPJKMC1XHGhDAiM+cu7TcgZoDrBGNMX4EgB+lwjRcNE+fd3EXgxMEdr2V1AYPtFLuCkmpyEFaQeRaNcu71orWgtx/jiaH1SywKzzcFFRsr+2zyzzW4SCMCXtjWgxMPBHjf5hSCNtm9MrH5eEvj1HB3UWVJtDT7uW19uzDrq8zRzMzXvbd4a3NPVMCXmF62a1dWuys3WpH03kX3fnhPz+Lr9a99t/ze5s0f3vFN3nt7969/4dmt+dsmt75z5YMba8vKs6KFlXPHekfOzSCehb2t3ScWDhxoWSlekkX7/OnGluJG6H6aMq8ptN4b+4PVGhY9ldHsTi9GPLo6GqpBFxQoJO6hb3pgXQkAsnL4ApQUDolt6rBgntIS20mJ/YK+43i66P4UgnaIgJ6+MSY60/TpQYkEmDbSwQCcw+mBkHbG4H7BzOlgWcSUYa01jBgWO8V5gH1CYLPW1JBQcxklanyCUdkYMg9hXnI6lQ6VlcJu+YFHM/aorCARnq9547gPhc52nbaGTV5V7vmj31DZO9A93FtVVJGZ+8ym7G1mf19RyWt3b3fVv/JBdnt5e9YkBlLmZNSc5T+WY05a+/yeR997rX7d4XU76p9PX+/bmf7sa9uefvOGy7cU1H0XFvsfMqfnnmz3T+T6o8caGqZOtQx3wyTa3T3ccOCfxpXiRNfczFTLwPGplSV56ZRq4THWKV8ItPIyeEeOkms4oohgS/WuqSl2GZ2g5po5wGzOjuo36k1X08KW8IQBHTjhdBJcm4IejDndZg9gyVbji9gfw5QKuGTCzwrRgrdGmqGf0x1pItAC+GHKgfknMrSeegA5JtPpIAkJiBs9Pe1BHyRCUzhANAuvEDEiKA6w9SIrkbY2n90tfXX/y2e/DQ45rAqr1tgEJwY96SSEFzoEnzh1uquqqLKuNCenss9VXpKZuSnfX1m5td9U4ho3o23m1gIp+bdF8yf9tYWuKlfS/Y+9nvHj5ryX17+//7lnC3ZsWJ+xb/s3L9328A378wtyN25MLytLL7jhwU1flb4bPVY4MvXngYGBwsKBBsCGE60LM8vz7sSp4oWB4caGxuLGmdFVVdJYACUwsyB7EihhInEYDU5Kb1xoXwSqQiDEExOAqLaMDJUkzUKrnOZxw9CmuzFok+Tt/+13AdeLNvwWFkESqYxKkICmwPfNICwImFYuUBNiKCKDtexETjIINnJTpH3OCMvaJjptHWG+hyXE6iU8/Y8eWi+B08jyAbATNjfATUkQnG4evbTnDUXYI3iBoohF8UhOmZ0OMTzL1nzYJq7Nryy35pRWVFWN9/VF+zbtLi+bNK+LPnHGXuLfnT9ZW1k7mVVbVgHOrrzCdczvykm6/6UvHnvs3ts2P7oz79mMDRmDL+U9W79mC9Rf9HTZ1k2j29Lb80/eU3LnW+1HoseOoOJbW4dzCnE/UTQ6PtvQeHDmwKmWA8PdI93DA60tXwU+n0lIimJp4jABppt5xuFGEdF6v7RCcBeA/H0Q7U1GxI2FgdKBDkG8XDxOGC9GlZ1mdQjAGycs8QkaeUcT2KB9GoihDtnEOkP13UcZSgRI96TFQ3iTjh5cIlMi+EAr7ZzolFQdhzd3wTchUJg0Pb99izBhHvHATdiA7fOqiGFFBDVAA8y3WQOhkGCZNlxaI7J2h4V1otVImmQPBmJ0/ydDNYIUmDk4e7zyiKvkrcezszBzdmc//4b17LG6P3LeOLt738Z2V/4Rc+2usv355bntrix/b9IN9z+6boPn7Xve3LDuwYue3bzjl53f/bbBe53n/o0F+e35W7PXnax9Obnm8uzou0Xv3PXKiZyiosKqou6corGxkZGWAy2NjY1I2Jzuohy0gd6e3paZJbcUWvRxLLnVglo2uNs4BSPAzvsoyDb/cnQlQInXUdju6LLr3zDW1HbMv6k2AwaVxGGyJEQDQRLiWjAHBdRAQBRQHI8w04XFI/MWlUoyL0RNN4UudXNtS7MoIdoOtbUtSTM3bXqEjq5/FpZ9vt973/u+72lM51wXmQAJDE2aUEPC8+hwyAfLWfSJGJiVaoD5iSVv9Ef3Y28dh2giTJEdBxUBii6E/7rBjQfuL49UymiECWsWMIPjiVhI9U4GnAoGcmkLamw+HQuXLUQUN0Shk397mFEKJQAuQUyHL3eTEBTSk9I+CKAeUDv2z79YrE1kPfqBa+goD4cMwlUL5De6yRB1XmY+iQCaZ/gC88a6vJtfTH2x4kKHqiq3tqJYwt9fMo1wMxQK/mKlo5Ev2VpTZzXy+Vm58qjXUr8/9f3JZLFQOH36oaIKWl48W1h07uNmh5MmU3GySrYyztLGHvipxfgef2ziaanVPGKUSj1Srwfi90nyhbbe+d7tbanbrbUuwadtV+tOiEhU8s79oYx0exLgTmhIlG4RAnx9UBPDg418EaglCPDme2SwcqH2Q/IhJAwlBORlrBKDEBgESqyyExIP6A88A0pmNCAxcBR1Y4bshzWAdkSi/iHob12nlx/DdMMDMNDBSmNjx5B8pIsFiAhKg4WBiAiYQUZ/JxLzE6xVQgPCtN/aDecead/NJzDIINeW9uMiszrA9u9FTBLcg4HkRkstsQw0RA7yCHPtoqkhjT8wbNKVPJimP1/DzKmQqGoVWcWSzJSRyYqnr8CsI0mtGJDwqyT6r1QSRW6uMerdhLjTr6W+mfTm6cdjX0tnUznN7DJBvUwvkMloiiqBTLD0XW5JmSWLn8L/baLJbDZrl6xanVurnddal2vOx7ndVtuq2ya1/q1bBSbKa2xb84WwyPf+S7CZN9MZAx9FpZquqeuUnYAPKcoZSjSCAjBlkLDQm8JkgpLBW/ieSIgs6KD9uFiYBOGdGQ102dAEjhmKhQpMRMFUiOsEtgimxk7YrYLcjcb+dl37NRA7SmwsA3AuZDMjNmYqFBm7MefOtENa9ttRWDSF8ROhQJ1ESJ01Gh4+RJi4bMfx4HzjRQidB+HcWEZiIagQUCyKH8KyajaIYM0MMVh4Fkl0uHtursvzxdHCUOw1X6lWslS5jYpGbj1fXtjA/JhW9x5t/JojxYpMDRff+W7FKI+KS837w/4sNypO/MuwUN33pkPs0DvjnC1OfQtNsFhxvoIjoQHyl2fZ/ubXGZfqlmyQnVKze+CCW3c5f+qc1gtHffVv73fc97RW4LGvXOzxBXloPzIWjSH3b8SQWHYWC9OuwYfoFd0YXj4LhTYM+g8L6hlIJKwdQnQ/jwINPzZGWZTNhrwMAy8AXQNoH1gfW4fJG6WQ8EQRNj/fzrzOTuBBasK8M4QbKr9mMBYbmROJGCRmkEFEQEyHYMZgEPttFiA9yGDohEONAyMXECAQuT0oDMil4d1yJg5j+QSF8FEsaHtHJ5ECz4HCM9FhBOGRlZvhnaPdvTBPSRhSho43pJ4iWKZ8cojTKMnKzMhVpAyPN9V+e40mq/Lrt79uOaKtSGSNKsUn+QsKeXVUfGLi02mnkGkhcExUblH9N3nnqdx+cUVRXl5hBue8oCBLxVcV177N/8H4nlneZGsq7DBrt488S1MFM6ZAKxgnvFKpV/7hOXaezXrQb+p1914xBKEYocA/5PPokcUPDAUfE4OSnrBAm4I/kNu7QcqBKMVgQ/kRiNhVQwZyitV+67Ux7VgKJbazv1QE5AWc3LGamxgxkQ3ecc11WArIkCgRAIDoswpiLOysxLZHXOyEiePB8iGgNggsegwCNwwCVZOlRJFIzpV+0Q6LQSCxYfCDM1MwUJ57JLoLKWXMEZkIHWUQGcH80B5AUwICrxJRImQmSg8FAgfS1k8u75bP5O9sanbWlr7E3X/tQGWjhCNM4zdWnz1PU9XbU1Z+qIIWw+HI5DRVFU0hcAgUqqi4tNR330xrnjudSNVzi9gFwkQxh9qidnBzmkpkHEnVj5xclTyz+u3KlIaR3+VS6wX7Jy9ItbamhQGPR+vd1no9Ounq9mws8lOBbVVbszAv7fUY9ojdWBwjApFY5Bhs6XW4mOjO3zCszuiu0sh55tExJB4mUlwhB8e7kBiAKihM/nPtU5C8OBxMsXhIPVifEOEw1831g2sLD08BJkQiFGMwpB3sQxuHdIT3WABK1+STMRAycG5BwyHxAFEQcKU4CpZYLsLaY/JRLOQjgWB/Snj2JwRRztgJCIGJRWC2XN84/MnVFtwYY1KYTCaKkGBiICovf38Q8Gg9G4y2j0stLI3G5/Mtcac75JWNDYL6cwMSaEMKlaC6GuDkIo0mAF9NlUoikcm+ylHLot6/5dHnU9MSL8Rz37gx6s4XhZ99xE1L1cuc7LwGdfY3CkeDJIdWtaL69fPclM/5HxsHluxTOU3nTCBI2ZakVqvUu+3O7tBJTWadEZQrj83rch307MCJRyP1HRxZ2Jh+O4ZBGerCgEKORod4WBIWLKCYjUhLp+Bnxr/FR/4ijgSpNoRAg0cY+Qg20ogjGu6MKIaFklEUtvgBy0Zimt+F2q/XAD7ARBQzLMQVHgafKJfS7QhpkxwKhgg8AoqD6YjJwhHJeHRzk0ch4ik/HnXi+yGIOHs5LsIdEdBPzi5szXu2XQEyOURUUgBy7hKVofD+7rxuX2pb8JrKPEew1drmcs26V5tScmgFFRX4BYGak67I/Fi6SFsU/N9haByJXJAt06urGiVRX8z8ccODRaeT0pJPTp++8+d0B7V+7Fsh9cL5Qo7C6axaodFUirdVfJqYX/m1KUv+t63u90nTZJPOvGTTSbVGrXbVugR4dFVq1WqlOq3bffFM80VDTZAeGfbAii5CQTgSieDI9sfGThAikLJzHXuFgIkw0/RdEqN8hoDEfvbjH39hCXgNEwHIFOF6garUIJ0a2ObDwENhOsAAZU1C4fEEHB7WKsixmrEapFsUKZDjRDIT+M2feO2AzsENF95Ugr8UDy7YSAqjCE9D7iaxCMPwk/7LRWNzzLlvm7uAQEa7L1/18JFu0mZc2wn7Q/lKCvyzjC+m93u1puyFyexi6cChyebx7G+3ut11dea6YscotdYpo8l+sggUxZzEvCx1FY1D+7VRkTGgcCbKqPUXiqJO/vbY9A1PxRXGvXnisdiPUgvj2dRvLrEFhRxY+qjgOGVVEvgmqPJuP5GwWCRLsb03OWld/XzS5NHte8xWW2BAazVKwd24YNJC29f2eudNl778ymUIE+kMyAGGMh86fHR5TCkyOATg3DKxDvVQeReFBDlHoWMhjzBAAHV90zbPvQrLoyAALzEQTkjVmXY0lkKAVhIDhRQiCniLEhNNgrSkiGYGMTH0PdbE6fplBBs9NoRDLIOUqQfolhDv+CDg94U3g0FyiMVj4rCDMNfjwfCFowz91T+HUAhM3PftxDEEpAXCRqd9Dahh3cWe1sDBTg2DgqD9jG5rDjd7YwkiKZfqMk0jI8YR+Xt1I/yVxpzihqPaKrWM46DKqrJGD88MCGgygYBTWAiOpXoNVaamnYk6+ULzqfgXhcKEN7hdn7LjvyoUi0dH06lssaPFmXp7WrpsRSHJUJ1qSj5hs9BKhG//ULkI44L8Q7DtWHW2peNJo1n3u3RJq4N0NQMOlX71ZOmZHuBHyDw8A8QHLEGDoRwxKBFGhLGHt8AgE6NkoWGUvokiQQsWgaxAa4j3x05FaKBICxns/r4z9pNvgVYHM7YIj6nBgtAbqa8AZ0l0WDsPkXggEHQTSa/pZqkYgFJQH8njDOIeHazAm66eiwcX2wzgKAyGeAQ8UUMUAREH/hmARIwhDInJm5jKBwYFhyOLwj44yNq8PCu8/sBmDRFPJx4HTEktFU2mpjq51JSSya/e4H+2UPlD1cCKjFZFa1zhcNQCZ+OoWiIZddIEstGVYkFJerpezcmTcfMkgqgP4k/FvX/yUnzq6fRkapE4kZ3u5KoTU9mFZ9XC3y6fuvFmPV8gyWXdVKHIPccfWX+7um6kMuX3hd+y5TDQrhZ8cbp28j3jiBTmeaPRaNNKZ71Ly4Eew044yFNOaHBIOUJSxnRr5sbLMUzEguFFdFjM5l3HNSiAHAoheoZNgKZSPtaOgXCCarE3hoPyF1tTA5GFWrpDByx/5gwQUEhEpQKMA2WCBKQxXIiZePneiatwYCFhYfEiHJ5H9B8bAl6zd/5ib+9SAF5DmNVF6GbSgaPvRge7IrIRjAiEUuwQnmDBDgJZtuX1WqUNh9lmj27r3U9DeLpm56CQ8RiSY2o2yflnTyS9WaJqzBLAskaKsznSw2sVnPNZHIFTzdGrM+50ZpTRJKMVFRK1KkNFS8l0CKISkuLiX0o4lfT0G1/05SX/cTqZndyX/sUnN6f3sdUP3z803QGbCgr1IFO2aOuXvL0yIvm8rrqOX1A7aTbLbQ3PCE/+XDJpntRZzUZrWbFRavXMX5xtNYB3b2ftzy48fk4JjukYO4tXA4eJXIqSgA6J1pRjyDvQTkh0yMyxu6AJ/R+8sYqP7AgOPJnQZiGp4DKGXKiBtJ3SoLxdAkpBUZSE5neikVYkOkPB2rvK7Sxcp4iARtgNAnhjDC5X7wKgDmvHwbz3YOpgTcn7jczQEPFMClDzg6WAaxESZLMGh0M15wtaveCk+amCP2LUel77o+Ensmhnd8v6zeULuTCyTKZ8UfN49GEddJ1FGL4lNP2NUSfZfAGHo8oGGc6pbrHs60fVVc4GgUC1KJFXr9CqiqNeOZF28v24T04VnbghWRgXH38yUcjWN9+xfNbRqK/4RHgho0N2Pkf20/6vComi8VeVOfvt3+uEDz3/pjzCVF9S1nScOK2tM05apUbuhdQWq7u3bODIM1/4BQzyx5tki+inWMCZE38OQhEkt/+GkiDNlDCOY2E6IoFvhMQTIYCkIwRQzOW7MH/hAPAQ5jQUBG4sIrpe+wXQmiQ8xJLAI4I8R/jszaf74V7gNUnYzlgCa7k54ngHXDlEJIevuKCAu/nb3iWRdnahuXVrOkzUMMDrDkSgshMrmioFQhFggwZdL8W/Jsy2jkhNBQ21YJC1BqYfeXh9fXf8yDM5UCtvMsLcUssZHs4pyf1B1bi4qBD86rwv+YuO0gKFaqVOLlBX0PS/zdQ79ZxsahUnR71Y+XYVv1GhiHr/laSTSanD4sTxF8SJ4pb84RvT05OF9Wdb8hTp1DxuoXrUKdOXlAicWVWLzkWJYjG3Lv7ShcTnixcgoNO3PnzNB02TcvOI1awbvq69wWzVSXVer3eKuQHk064vJBJ1dSGgRK7DByKRt/xNf/nwmW4MfW9vrJ2EAaCJQSLy7P+Vs33Mkk8I4XlBmP/xeOhX+YSNm5TrJAaBzuMplcpgEGDYl1d0dgoGazmsQZSAwZHPHrPDoD+Tj6XYLSGfa3bbbdxI0QLsmN9qm/VofEFlCPBjj98fJBOH8pEzl0oxv3WDgIlQvu2+1aPTFZvMtUsZtasXz0zMXFn2ms0ZS9lLHRsjcqM5S97Y+Kv01zoZO1MxKuMI1+HXQF55e6USXIcljfuOUYeaRlXT9FShk5OZqfi4pJja0Bf1YlJ8fFpcakLqR+zUuLTX3zz3Rl9aIpVN5XKhwLIrCltaOjgZaoc1W+Xk7MtyFxVVjT89dt3e3RXG2pHJyeYzl5tSUnQ2s0lu03Zc0k3qbFarFgK6v+YP9wTagL4rtZRr8PTrIshyiDXO65jb6BhG9yiE4DqLVQOnD+VZJiJeFzjNMO7ReUpeMOjfIYaCkI6E0k4GfRO2vr//8Puw72AnFETXr6GPE0Sa2GuUmog0RMZrIs6OiIbeSQwFltxbOq19Z357e9ULDOJsD7R64GfnXS6fH5o+gbhByO/ugr1vIKGm7hmXe3RNmWVNqS+efFrXu2aQjg1kTo7brCOmAVjH0E7+ULAAgk/dN+vZdTQ5R//prXfYs2w/jPBVuebvwODlbIGQUtlCYgUtE1pT8Si1TB8V/1Z8UlwiBHX6VPIbqWnpffWOCn26nvoNm/0jl1t4Vs9udnakKzijHJq+8dfGtHRFVWB5av2DgtpMPnwHJ638JvOCUbdVCXBJPpBrMk2ct0rN873gJTnS+ZVEyhQaIS+gu8MNJklGsPv6GRIWDe6SSBgiI3TcySMP0fE4upKi3OMpj6Er+8MRvQ/CGtzc4wEuVyr/SqsVXoKIBJX4mX/niBQmHbVgmQgc8/8peQZ+EIoGMxjccc/Gc1Kkk9vQtbfdrlnvbOBgy9f2Sdop73wAZKAQ8ZhsIaNkMiIiEkWdgV6PdVVqfkNYNuUfCPRKFz5OSZGuebzakbrVi72tUuOIalH/2ULrgvTXKppMxk49W82XTpqLG0saaepRR5+4vpDdx4Ujr1ZwMhqKMoF+j3op+enp1NSnEuJSU8VPvxr1uliYnp4ad6LlTWrRm0Vn69VUaoujRe9wUmXF33GqCybecVzgZ06WZNZmZaZMygtyJyczTSkj0pEma0rdtk0qtQ0Ys6UD0rajsH/tYG39Yx6PjCPXDDK+bybiI2v+cFRniJpSpcjOREDQQb+UCdsBzdAJbf4QRFC523IeVP5wKAwO/wiMJPqVys0/7Ju7rxjWDIDC7DMWIgHUUqi45UxWN4oDcqUf85cGIUDKu1zaLsySZ/XcvFG37ZWvQm9UHvTOf8tiXJFK3Ws9ARARlSAXovmY/k7y+EyPR65dXXppDqz4OdIU08dlTWZr72yr1myyeg2wF+P+uqo6Ze3zf/5ekXA4QGA6ivm1f69UyQQKjkzgONucQU3eyCu64XZOs1nvLIq/88X0qDufuvPF+IS0tJOJ8cnTN/30mlDc8sn7CT/Hs9P1bG76Z6fh6Dud6pO3Py+WKTicgrlvJJwqNe07CQQ0uzZLvpCdMlnArzPpRmrPZaTpzTZYXNrwHAFg8o/7jnzj4BYlUuz4XcvDhxocgYwhIZCbkfnnsLz/uD1EYSzj1s4wKRCzndBOeNPva42u8UEmwps/HJ4IHET2JsLf3nT11d8aDAshUKmCe8dKSF5lRFYbsyjHu5iWmVg8cOvNoqDvIphgjPM6Q2B1dXsbhrXZb970BFzZ4+NbS9LpjdkDg9+3uRlqz2dimKL13/Z7Uw6zjbaC1+ZmOooHsmpz5SadVdvqllbUv37hYK1tY7ZysfptADRvSyRqNW00r2VBlSWXCNTqCPRUs+udLSVUfeK+pYOa4RwVv18ysxt15wm4JSaf/yguIS3xpec+Pd1XdJnJeDWNW3jmqRYH98030tOdsrS5wzfiHFWjMgVM/1VZApWiojgztzarYfjTF5r48rO1phGQWPbH+Waw72o/PtPb0+a3H3uXYb2ORCJsLOP6lxkssC9N8MbhayIGfOJMBoVHQYm4GebV4+geL7Dl9/nWAgdtPYGLhp41F8TUD/8jw35b859h3+7y8l9g8DsCHdW/dxgOH/tDGrAe44lk3jEB+DheKYXybWBC6Tf0uueluhGPzb1tNbq92t71R660uty9Vql0VWsGEXF3zR/omdlTjsMiZ3tvk22ysuTOl7Iyc0oyClTF8kZ5na1Jxz3xUkLqs8tDRH+rUb5YXfW1SlAru5xF+66MMzpaQqOp02Ucbr2+qI/tGGWns1PH7M4MAfUC9Z180bmoO1NP3PniydSkp09CWzr10imx+MOnKv46LU4/9cf7DvYF4et9QuqbRe1dn9aPytQ5iTInVeH4rraFK8ls4BY0fSW6lJJbNzZi/Nz4+Wx7U5PcLAU6dHb+4CBwYHD1HFtCdJTcfxlllMegaDcBZQAmx2IJQKMx+3HQt2dAwpmgkA9CR/62jw99Bt/BRd9OxBnp8l05Z9D2uHxt7TM7Ph/EEbQqyK6t8MSa32fYAVUFKYUehw4OUnBIBD9ZsIRQ0DA7L982eoDXXtVarbBAoN2ad7X2gqLg0QHLYPLsz7eute0ElYe8zfCadamOb6vouulPbnFmRobsfVpO1opKIvceTmfbGZu7yvBWQZVCISsR6MWCMhkE01Fff1ZApX5sysvRj4pHCxPTHWKhWA9aEVuQnFiYLtNH3Rl3+1OP/nwi9cX4pIT4xLi4xMRmEOiSxclx4pfShGruj2/Ui6l98KZvUVEF36udGVd+5GQsF9XWThdmpvCr5Ll8fkp1Xd22UV73uW0yRWvddve29npcPQGXwV8zrqQjD3+Pz+dRyPh84vAwrEBOXyahIPkow6wwazMElhc8ELh+GAEOXBC4trV33h++6DMY/G1gMne1+bYgc9sMcMHg87X6xgNrbX7gL46DQU0+Al1IA1IF4HxC15il64+P/a7ZAZtW696WGidhMC/zeL2u2VbgMzxSKwT1wANgbsu1thf2H/fopMs2Fa1ELrtQuFFIk/Az/hquEEhUTmArxuA3eATawnsdSR0rHEmG+EQalSZwOutH2UX11CJ9GTc7wyEUnk36iNqRligeZVP1+pa+yATkjHrx6VcfTLr5ubc+THg9IeFU6tMJ8aeAvRMmJg4niN9/9vakNxK5nyQ7Cou4Rd8WFXJGZUmPJqk5G2WKbElWFr9WVd2kkqkq5Xz+53V1le9JbblA17i3ewO9kKNuz+6epX2oC6khMvJB7QIudIqO+6vzXSxQvyzRZmh/xxfeIDPCQTjr84aepbU2CFqDurKowWXwSbd8hjX47OrxtV3sMbX5DD1wd+9B22+/+fxrhqBfyetWIozOQR4LbHAkOp5nFwHklI81fJiY6rXJc7NN8gWd1Ds7e3EW5C2pDeKpPS/1zC9vHfh8hq0r+ylLWdkZVAdHwVFnrOSufKeuqgLcA+MPjbP+WM2kp7f17NUiAW3U8coeAnScXka9xIZbUVFzvX7UEZ+W/v5uclFyciFbL5SlF1zqqxD3saMS0p5+puaV55NeT0pNikuLTJ+paeK4tOTUtJdeTy7vf/bT5D9AARX3fcO+7BiV6U+8Hv+oGPSlvAZaxqXa2hxOY9nYH7krKrn8pRNfVPL/1oKIZNS6vbNul3fKWzODZfSDFIeCDRA3uPEZCBDMzu6pQYLozOFe6NOCP6Z3NoMM/56hpxUScMvga21rO4+9aXMYYtjaBjB87dsrBp9/aa73qM0AX7a2ATAPQ/T9gNPJBHBIoeA9pA9OscjoFHFzzbW17S6rH96b+MpYuSIRZNVmgRzrndfNZi4ZdR63x3pgmtd5l7w7BrO3V172/TlO0bufnueoX39R1iioGj3ZJ6F9l+Mo/C5TkN8vUH2cWZ3BcVLZsjfmfqKCR66amijmCuvr2UUN+jzhJx19bC6bmix+WkxNT1ezz6X/x9GVB7VRR+GMx4DXGDPV8fpjq+K5Go/u7uwaj0VW1l0qLkkjTdwQpqaALUIkpgYQFA/aQCilkE2smkPANihEKbUYbFJOoaVCTRVaY52gSG2sYKFRhqoPN5TQpmXL4x3f9733fvg7CwQZgqDyd7esQTBW89U7T1M4i8lRjOSmOlMxHCP1FA2fQqCuQvw8r26z6t7/pBL7pX5iXDeh23BqU/Xiz0U129Q7N7buaHn+c+L7nd/s/LZq99wZL6C3KFCS919/9BOQmB7c/8WDzz36wP7Xjzz4wKPPwWFu695+/cs/f/3ujsteWYJF0ukExDWUG8kCKTfpbnzwS0k67IYHRPmhRTC0WwqAR0HUezxu0AU804enfwUoBWX+oYfXPbrvzgdfeQ7Wr35NxJIgGRrn77n/oGVHhjqT8QX7agsLG2DQ3Vuek30GanfjWM/OPR1DPZ6kzWsZzc/JZh78Qm1KHTgRadqkU4hom67mVF2dT+3Lix6tDm7bXJpZw8CClprhwZeAKpYWnGqx1llF0VdH8zQniiSEs74eswK25wVR5GRKjQLJvWdWSaLYhfMI+KfijbvkpH3yXC45NDDFOZwGs0p21RNPs44CJsgwp2+/8gLhawnWFeuspa2Nr5bs2LB585ubj2XkNL43tHHzN10ZINicgZ3FgM1jW7ce9N4Lr295e9f+F/bt++SL14Fqb3kISM9zfy4kLi7+uvzRn4lf3YmoGxRwj0eKx9yRUCBgW5I8h23JlcM2SKawG7162eA38N4GyfNwYryjpWAJnsGmL33yPBydMGPPbdy37s/DMajtZ3oaWsfrx2szt1mPDEwUjOvyoGgvdZW3vl9RlVNR3lU5OL5lV080Kkk7Kza8qTtlrq5Un7/nkqWmEnHptecFoaQtyJ9W63S8GCyymoRgECcyg6Vt6rZgaZC3TjC66gKDwOsYmhEEatxMiwrEYKcw2p+SovHznEyVqlAgLyMIgRKKF0UWnZ39pP8unJ/HttMi1ysa7Aa90kyl3iUK1gLeVMc3/z3vKrVa84tLTxVNqI8Eaxypnx4r/APGojZ+XFug3Qmt5GxtpAxSv3excf3Dz8IY2751W7bAGCc0e195+MYHn/3khR8XExfhBwQtQBlKJMBKHkkKwDyU2xOYBtPaPOGoB96dG5y2HYaCFI/YbAG3uzUKIZ+ESB9DK42bpuECvpRIvPb8o7uyxpZmPlr4dWm5p2HJWGYZqlyq3Kq2WhmG9zv7W0xFFUVjO8oLOnIqRg+MWsqAznm/9US9luyaWtMpIcjUCY2Vpb/VmC480MwwBT7BqjWV5gTrC/oK1ALDNB86EWTUwU3BtmBbS52f0urxKYHmfRpWT/Mcpdq/vo9kOYrQGxz+0haZRqboRFLk6JNZTylQxDCQih987UWOcuDtipSnEauoF+r2ffJlFs4L2nqrK6jdJjgK4I6+0lKdup06+tabL+zfXPLbxiawZ0aV5bszVQ2vfjAAop3HtvBzYstDh84NN0NP4nGo4vv2f3c9JNFP1o19nrQlFmKNy4mVxPQi2A7CGEp5yGwJBKSAZ2s27OvabNLyHES47TSMSbptyeYRW6RlORaFPyp+/tIbvnN7/kweji6Dk7/ywoV3r7v9o1de2hUbGWqNFJSd+WHpwIG8DTqfydTmNw0YmBa9z1dY1fD7ya7dka6dVcaGggPGMm+hOnuiyaQrbWvbWvJ1SZ7vmFqgRVGvZtT6CUHXyVgFF79KvDtmxTaoWEG1TwCUQ300xTdSLUE9MXwer9ZWM/jMJM7hKlbz5QOf6K2YjMdSFIhc1fsUkqJCUvEhgwrV9CucOMftmhuQ07ToFz+8/YUhuJXfLxaIfJ2ZMfkKTCamzadbKdrQVGSq/jrvSEb2UFFO/e4doI2UjX5x4kBDKNbYT16AI1Bu3gIj1oeuf3jdg9e/v+/ZRx9//aF1P/49OLZw8e1dCwuHF4GESB5vRIKAH/17xgvTkNLv66ug8MxVxQIeQEyx1bAPLT+XtBkfHIsCIOheOfTP53/bps8lPInpxN8/Xfzyz+YHtuxfsMV6Kt5b6o4tW8q7LDlqn58vPSWofaCR6xvNvq15rRtqCn3a2sJtoxtQLLtgYrx1m6m+JLtUBzp7ja40X1ALw+d4nwCAUhCC1T5emJgwr5XroVkBqdFEczzD0ODxPC1SZqED33WaN9N6rcOFUX6M4mjFcAfXcUHmPIkQWbhc+cbeXrSTQlk6C2U1NKfnci+cbuewYlrEOw8arKLAiIKJ2T9VPGnd7fNRGKD7zEyTmfk6r+brvNqSjFdLTh1r6io0VlkOHCg8YYwkP7zp8x9e+Wn9C9Br/Oz1jx56BkRL2IN/dP30usRPseRiNLGwmJiOupML3kAgEF+N+Dsu90rnj0RjRnc04J67NhLw2MBvD3ug2HsCEPVSCHID5IC/5xZWPTdgO3oCgv7z16YXdi1A2oj8P6rW3WCpGqlifD5epDJpP8dhODVB1WG0sykvc8/6Q5uWywvustMUVhhUt21S66C9poY6Y4UwZ/ROERO0ejHI875sq1XkuS9fWLaaCabjqHjkWa3g98+jcsrO0RR/Dit28UMYxWI0RYGN7GacYikcl6XKEbkiNeW2NY+0p6uynK709LUqu96AUTgPd4VuPGYQ9cV6LYzZ0wetZo1dCJrqgpVDPp1JnanrzGop+u3r5cxjNZv/yC+p2PgmSHhTB1p351cZe0YGJc/b65/bAj9G//3nH973wqMX1/30/Lrnnv/xp6RNirk9F6ODSXdA2stu90oesKkUyi8LxVZgkQRqfSg6F5CiYEoP2DAWB7uG4t+tJKOtR922i4eTK9O2mKe/IHt/Yvqie2G14tuWPjcay9+0lJcB0Nz6AS9weIuL6xCdospfN0N3vH9QV5MZLK7bUFFVAAFZtyNRpK5p29oGScEa3MP4JwQ/To3zmQJrFtl6nhEwWCOy1g1r+aude5yk097uA59Cck8WA+XRixwJRsWp3mI7Cs7Zr3Xk4iyLujiZTPb0Wsz5xVdPI5Oq4yQ3MPwZYeCKcym/X693iJNOPw0MwKc1M300L/rrf1eIIsHorW2nTrXxom7Xd5nHiqCn/1bTmU1Nhce6Wsd3n6gF6X43yDsWiyXq+fWF59Y99Nrzv/7466/P/fjnr8+/9NlLf/9oOxzrWbTZFi3LHs+mo39P1Af+v+KBsMcbD8eleFKCAuTxlLltKwdXyxBcNretZzDmgcIMHzeORY8mbQcvv2/FNg0lzQaXO15W3tjQuruqPKOqq/AU4EJWNDMOFrc7eb/mZDbTBnoOE1R3tjakISra/ev7pQDV25igYLIWa4Wgmqb202bO/9VpTjh71i7KitV6gdczjP/3a85P2ofrOmjSLOau39dIAyziRI6nKfByfPZLM0e4MIHHOf0eJy9LS7v1l7XK7e/vfeTJJ5VE7lcqjHVSmJ5yIQaszjXj4jh6UuQEgJ+0X9Rrp2jhaLHQ6A8WZArFjQDXakpq8jLBor+Z3txWWDvW9HH1U6/u3rhjZ0PYaBwMe6O73n7up/WJi8t/JhLJz+cu/mj7MwqmmXLYFpKe6HI0uvTu3R8e9QSAAgU8UliSIqFwxBs58XMsGl0ORyXjHAQ/MMTDSY9kW46A4QJH/15ZiUZjAKBOHF1w26YT0vRi+ATUs54vKjdkb84ZzchpOlWn5atdWpeWN2+fxQkFbm45ta0NaHN2Zt5WuX9k5fp7mjN9bWq9TwD9TADbNfN+mvGLYseMVtT3MgZtM+4XBdHR69BOGVzUkR8chmbXDKYiKKg/fRDjVorCqJM/4/i8FuNYzDFMYSoclb1+Pn3tLwq5Qi5/gsBRkqKcGEESSpY4OtCOWTsNHC0Cojc76/W0maD8op8BgRQAhCj4GCvYMTPz46ZNmV+X/JZdkrehpKnpWOdU3caMnLoGy4GGnd09sZ6LicXYgs0YmLNFQdD4M+GG3BdLPLAwMhINRKMhT2TJCC3eQADejJFA0uvtMY4aIfADSUla2rPH+H9Z6rGtuJOhiNudrPSEVr0x0Rhd3B8FdADpAPZNkjG312jZuE23aUNf9jZtQVBkKGiL+xmanbJ3Dn8BfK+PsZ4180ze5syh7x6495obT+p8EOnCHj/DdxwUQJaEiquQp1CYg9JSVvOWO3k9z53VdjpwykXTT5Bm0Iu4Pj2GuWgD7eL0FMbjdSKloB0YCi8NaTCqlx2QvffArvSrUtag8rQnnnjk5b0zA+npA7kv4wjb/w7ebsd5PY1zFEbpMT3WrriLA6Kgt+pbRGF/rjUY1JWU1mbm1RTVWNW/bTUVbc3Pq6599/fs7I0Zc292VZSXN5wpA40cFvJHzlr+Xon9zxVtkWmA77HYyu/RKCi8q1ApHpc8EiTQeMAbKmtfu3ZtqjFkkzxVs3PvLUmQW1e1EECngEvD3oXA4R+SnhVb1DMXW0yuMvHk9JiUcEdDjurN2dVBc7Gj75zJ7DcLMFUApM/uYtE6mr4a4fzC0DwtmPJ0/Zfec93tR0HDQFio2RxvHTpN06hCgbEoJqDiJE0zBQK3h9CbGc7FnTzCcVzqI6k4BXmTWxWM2vlNvduPUIzIcALZeIQhZ+2Y1qCalMtTMdkTP58ekD+pUGgUHYgii1QSiGYvTh4/SFCH3pFPfmXgsj5/QugzgFX7H9y3l+K1vB9CpIDh+vr6GDiobbOuqQlYGaitNZnWosGhV0FlbqzIqagdzO8aLfzWuBMknYqpSGxnZGkJvvpkArxNings+TEJONHoKLhlIATlyOuJSFJc8qawVkHU7K0Mew7PLYGPBmyBKNQkwFPTc/Dr6IptT3gOav5KMrFoW1hwH07s71n0AiVt+OH1bB+BcS28qZhUYqJK7IVy+rMZPGlYQVSezJoUXVAVrD4d9uz9t++jiqxtne8e5KlORu/nhkSlq5LDZh78hBc5iuJacM5Puyg7uKOGpWhsYGasmEuf4LQYnirH/PTE8FlQ4FUsaic6ObQxN/24Nktzct0rrOyJW29dM5SeloYgax5RTCJKZUcW/TKoIiT+TnOvSoU7crdjlFbESYqjWFzso8YpceI07Xdhfqa0OqOtqO27glJ1UKcTTK+eVhdtmKrtKnwThPt6c0ZtbXPGcH65cafXEik7cwZ6OUCFkoEIoJ/w4mvLYMTxYk0oHA9IbmBI4KIwhpC/tuDb0RxNR3gpPgfJU3KXjY1LHjcQJGDv8ciI2xNfWAEMNTeXjM5JtlisMSJ5lj1wytSOkj4AiFuup44w5uF1FwSg1wgxaS/GaWQY+eKx03KMVhKgQnZMWPecW9drLRX4/DEaMBAkTZHT566/ZZ7m5vevw0URrxNwc984PkNwAtWrH3bS2Ie3D9PnfqCHOM13H6AEJuJY7gWO09idGspBoh39WQ5OqXFguEwuS706Dd5SrlIolAipRDAly2axVDrXTjvh36EszrHg8Q5AXR1+0s6B39OkIFJf6nVtBf6gzqS3mkrbTC3nmJq6oq+hCV3dwsNk/rrWioyKkYrPKypd7TvLG5YaYIsegFA0UuX1BqSk5I3GIoHfb7gQiIdWoZLk8ZwwQutmamj9+men7YOWSCwSD/Usefc4uLkYWNQzOOOJxv4EEAoODWDLc2Tq4CEQoD5bPjz2w3LYUrg5LyhATemlDH3WgVkMJwhcMyyn2QnleZyQp9qHixUECQbqczE8I27bJDAzvLWPFyjRP04Dt2aL62hwGDPNDbkoK+XD7O2USzthOA0xrsc5u8jCq4pUlUojHy6e6MdVFK5KZ1HDDEdqsAGoPUoCJ2jZkzL5GgLMee7kmq9yr05LRxUoQSgxbQfGskQjiikQ1DVjx2m7s93h5EmSxuwihHw/L+h8rFweLOEbaZg+OVZUrVOXFH39VmZ2xciJA8d2bNg0lDMyUlhoebGS1Jc1bASxvKA+FnLI0KddYNG42ztYHDOOzcW9IbAPrIKHwvAkfTtzzx133DsrSXOxaCAeDXiaHzgU+Z8orYB8Pw3MtMcISgvIURcfBT4atcWgwsdCgxdLTC3tLO2nhJNOfsZ1HuMmMQe+9wuU452NDgNmZvWzWZ98psIwkNP9TKNQ7e/E6voAFGrpvv3gIgaR4pD5eUMx5WSHDFNnaQTvQDlKr3FOUhRLaF504p2T3JEPZ1QY+iVGoLQ8C9O0YyjLYk5SRREsotSwqAa8s12+Br36RfKdtKyr39g+/OIa7PiLLw+QkyTFksffUZ4lsfbjpAvHcafWTLWDMkpj5zkz4CfGt7CItgWtI23W7G26zHpTEWhkJdl5sAuet6n+mOXv0aqNFUe2Hrx/vd2SMWU/822iK9CSqmPEqyZW28ne8BykSyne7fFKEePO+lBcgjZ598TPV26ZXQmERn8/6o1HpcDgod/dq1p/TAJcEIWEoR9OuuEJLndsHBKCLTIXDZXVH6vVfsgynb0CZH6cMmhd8nSX8ikUHWrPmsFJg+qdXsKucnUSHEEXmJVy0XyemgAEaQeVzTzFHtE7DfPID717z3NOx3mconHs5B6NSoOi7aAR0VontT+X4uxsR5ZmmFaqcAbn2t/LJV2q4SzVJIoZCCVCpOFmRCu7SoYq0558+Z2r33lCrlAMv/jEI8cJ4h0VRpIaevi4E4HP2duJ0fOoqoODb5lD9ZQCm5+sE6hU0e/6QbC2tWUGM7PbMtWg3eflDZaMFpToKrd1mr+v/aOr/I9tOTu2njvbYCl/f/nMt+U9Rs2IbXoENURh+3v16oFZJ7iWjZ6y1+MSlKZoyGusH2sEsBTumYvFPJAIwJZgSA/oyytJcEz3l/csuZfGVglndPnQCsAvaJSEyrryq0v6D/LNQ2LBWXLYWYyh55uprK9+x8is/zMZu7eTkKOogsAOzvhVJ3/ACSeinKXpXoxLr8dARJ96uX82t6PdxfkZ8B2Mw1AMo83H58lZJAWZdbpUV5O4RsNe1aJROViWpXlMRdsRFY4oMQzNUiFPpinRSaVGJoP7paSsSU1JVbw48IRyjTyLSH+CVKJATEkUIRHSYCBwQAqTuRjXjPWRznV2Ow11cua0CJiN4UtNjNqnNm3IzGsCcF/0Vkn1m3l5RUv5hU3H3szoqsyoKod1vfGGnQe2ZZz51qu//I57rtg9GS+zxOPeMDTuoBsRD0NdBwYP9d14oscYCCx/BK2Gbm/cA2aPwgO6nl6p/uBYOCIB2Ep+EfYkk+Cetlg44e6sd+cbpaS321KxqaCPZ0ARojg91FFKhZJ7sacwWvVOxSOKNEKFyPcq0HSC6sD82IOf2V3DZ7FZjuponMK4YZEaMsw7XKBusBcoGnikto7CUbg4FEd+/2y1ob59VyVF96I//I1qUFyTooS5Gg2OawhqCDcoFceV29OyUNxOyFKyZL0yhf1pWWqqPHXNk08o0p7MyiLTSJXGgKA8gqJKnNCoXlY459s7INxPYpN2wQ90fmq7wMODAvBUai0pAeEL0mcRbOLk12yqzCjJ2Z3TtXlHxmAOTGuMjp6o6iq7+E0ZWHDmvUcfaO4JxSNhb1zqtgC9bAivVqS4ZbQ77j7THQaHXYnHAgAB8gdDcbClFJ4LNIakZZBGG6A7lwR0AArfXGTwrA0+WF6JSbaAFPZOjBzYdAomqs2gajjJToh5rA6jBjSIijg0r0jNlSPo8HDWgFLFrYJpDpiiljvdP8+SxHCdE8d624HGcA6tHaXMlIj7McWFGQ1qUCFon+rFVX/96oKDEmjV/HFWyarQ/lkNxcCLCKHRrCrHSsXTa1NkiBxG5lNkV6W8uAdJUSjuWgvGVKxeSJr8qtuuQlCNgUKR/rPbubPnURInDP1s53aSIukZO/j7vA8KJe/zqaxCsDS7zQRFqaZEnQ2KTU5TTWZeYXFx3Td//DEKxxEeKLM0NHzb8EdZd8gbOZcfC8FBcAA2I/DUDc3xcNiSH/r5MyO8KoVW/TY0uifkNZTQ4XgMKKi3bHIrZALvctLTWu9JrgrOAa/TvHAxlgwADbDARomlO3KxNSMnz4HzPGcgEZXcSaaDH+V2aAwKQgHd29wOUHcdL6vIXFbDdRQTKr0KAwK9d3KenMf0uU7SoKXIXKeLclGrcIjFtUq0H0XPDXSyRG8/C9UfNE6aoMG/wDWR04d+ZjUvInrNjPwuGYIqUeXeg7tem1c+JUuRQQpNSZXLFe/svevqNfL+LIXiagXknNSn/1UiclRPtp9U4UPOeYzQdDg6hgklh22fpfUGvq6OknN6hj8qgHKdZy0qAkxfmlldm+nTZbb2Hdhq/KEWRh42H+jKebUQGg7lf2UPfXoGyHlPRed4dyQc/tYbHukOg4WrLN3LJ8JgzZXyHGajt1sKn/usItB8+64IIKxYOLISmwvFA55QYGX9ElBTGD8enXtvMOqNRN0rJ/AOvKfVUN9dZinPaOrcd86vV+Ev7p9lCSJVznYoFC+/joAlXRpUNYVm5WrSFBpWS2EnXc1DdB3AwNVtISrdqXekk+TwJMVyCBgf0iNu58BMOEogEPQOSiWiGpUSUaGIYk0qoscI1smyBpVGidylyEIotF2j/OzLIY0ySya7VYbKZGtvu/XWk5/tBcZ0tSJVuQY5/vbPvci/APJznQ47aPk4qrLTetJAa89Oknq4sf0CqxUKnuvwB4FytAnW0sxS0LBhcleXrcss2aA7l12bU1m18eOc3VtZ5dqMwgY4duzbuW/PjMBpmHOfGSPhSDc44kWYEPeCZNkTAy8Ml20C5jMYgqTa0xOOGn/vqQpLFku8zJuUQsDwYRm3SgpUNcSjg5Eo9NKNP8/FDo+/cu/BneP3tjZUbK0o7Kp1tPhxmuNyCWjhtL8Ljqow9GIKUUMR8+8OKxH0SeQkC9bBQLDEyOMzvQ6RwrEU1NBP4u17cT/BovOTKORaXO9qf0QJ5tOkKRFcpdFAkCshn+KYKvUNOQ7oFsUh1h2Tay8cfU6JpyE4iyspWoPLZFenKGVvXP3LrYCaWAh3+ZpUEEfeee2BLb0yJeRS/A34WxSLOg0u+J/SWP/ZdJqkSYp3uly9q4MRfuDAQZ81Lxv6C6Um8zCemVNTVHcq+8CxvIyMwo//wLZtxRw7dmzc8densI8Y6ukOd4cLw95QRk93lQMOhurpGfVKYNu41xMLJf5MhuNnjpbF46HdAJ+MIW88ABmgVoKqNS3Brrj3ixOrTD9fOwOOK4WjZT835ldYdm2tH9uWk7MVer0dPE5gxPGUFvl/HF0JTCtVFB1NzLxkJvp81kRNNa9oQzSjo9bOOHWSbiy1rWKhYAEpGMqmUEA2BQRckFo2Ral1B5SKVgFFENSKoQLiyhKNQY1GFiVuGFyi0eitAyT9TQr807uce+bch5c4rF6Awed1FgNG24TS0KEqemFEiYVXFa//ZC+pAAcX339dWYrvht9MUqtsfABTB4tMCt1+OSnidCzIgkOAT5V4KfVCunsX11S5RCqWRMmaoPzKra8LYUplger1hFAm6+CAYe58X6dFWg0RWYztGOuxBGWcYqrREC8+7BmMLYmcLFNJhrdBSnqddCvk920ZN0HKg+F3trXW89NE7Wy3R5gc/eAnsJ5ltxXl5WSM5IJ35KPR0854583SjCo4F6J9Z3jo7aO352AJrKyrs2nuobN+fWi9CfK+hBTX9ed+MwfWg6PWqm+OxgDDO95+A2rs/DePNC0v/zm3Ecld/uZtsM10zH8zP182+Nf3n3wDtOCR5eWyjodq1ztufufZtqq+7opW12ixSTXIDzzvEwiOUa/TaxWmU2hAwgoioUY3kaSE6vDJ0bBTHoyFRVn0QbRtRdZEBdLZIcaF49euicuCUVbxw6/cuucQoTPreU3yYYoVmHVsSVESAQiVHGJM9dDqsRdTEwbACGEwyJ+svhchPbKIbp0o2LVUEXkewhWqgzeBiQgD6Mr+B1RWhVVlW96jDpERevHglrXAtX8cMa1J5SUTm+OwnLN/+GHjZl7F3UWw4tRZXtlSc9ddz20UPnnTXlc7HHJQIESb3tgYOxoDmtTU2fzsctNyFwTg00dz3z17yw/f5S988/TY2DfTV28AOYW+dDQ2BgwVzDsvLEPHWX/md/jn3Nv7XS888lvXxlc3vdUM4I/Nf/82HEWx/ux6Z2dbX1tueUVeq0sBSqgGV1ST16mAfd3hKKZUoSsI6/UH/4qCHH3HrTiNEFCOsKz6/Lt+Wfk+IctAJW1+HxUgao5fXSGSg0pG2fzwj6Lg1QB2J74gld0s9WPqlSW6RLFDwVSxkmPqFaGQEpQgiPiYkwQ6wJhlEGIR3nPzIZ8cNKBUHSV6jI3GHpsQtfrWwoJ3VXEIksLwJuWqY/f7v1tX/BGXCSTmuglg9d2tJbOTRfuT4+WjDZM1RXc3lIhZSunPhZD0A519udV3F95v6lR2wDg8B0Lz2BefbswPzaeWvpthy/uRsk+ff2wdehQE5G9QQAGpNwa+WD6C9IaEX4Zl5m/Gfvn7m7llsHd1LYPwPzZW9iVwg42xrmfLyvrm3+l8fODDzra2nIfzHn+zZM2xaIvKcUVIhL3I68CCX1hyYFVD6QG2CatfPP+VYhNUwUtlaDerlPRG9hyC6FaMkMu6GDFiiCNVDrp9lN22RgVTFKoF2jOGBXqSFIg65W1ULXqsfmYPehkvRZRiTAjFoViEWinz4/4aw+kRgxgLp2HT0nHSLSd4Jo0XKTnWJCikSoRASMId0Uh4iw4+JkacP30QS8SUusjS4C7Yb1NabGtJ4/ee1pyGWdjzBifvuyYiy8YDKKD31N9dntEGVqK7Cl++7/6Pd4aP5udhN3L5uyFw4o0dDZU1pfjS/Fz73NgONKIxoKVjQJHemAOG+cbY2NhR2UrB0RyUU3jNG0Pw91qa4Ou9oebm76BqrJeV3TEfXJvZ6Kht+ayqNh8WWtpM3UbT/jHIG/64kahAFR+eFvAgxIaoQTpvwTs3Pb9LA15RFCXVWVwgCAHxd9FR4BZIYFDQk58OKdXbiOBNJoiKtrdgQPc6RIUQgRKV7D1475RxOyETr4Fw7JKkEEQ0KXbJm6nR6oh6izHDpKX4koXhuKAbhX7kCBqUY4e/2w8sbhZkJzmERKIQGPtV2WEMQ+4LrpjRTJA1XLAFbGPUFYGG5Jn8vOTNHGhNk5MVQEQbnKhgsFg8qC99d6QIZPvq+r7Kysozh/p2juaOAMcqEEUXH4Ij4L7b6DwCs9McMP2d5iFo+kcpc+Hbb+8s/x/IY/DV2PFe+fLy3Nj8X9C41uaXm+e7YEkUdhs32ssehltUHXfe/tBD5QPHTFb/3fUf1dQ//LjTCr8XNGMl+PpT98EwIlMeEyQSiqa/hHPGEoKw6xNO4sZItDgsJbYECQWIGHzsCRuPVB5TEtXo9XGF10v899c/IFCVhAzqQKaCiSBSGxX1LN5bJOkphqm8X/WsT6VxL0LU5zDFBYlnWA4QZRiWZbRaM3QiI2FZYtn7EQZPM9b9+++/WYydeg17SbwkiE7VNBgP4MHBG7alhDVu9YBa6yoZzQGHaVXmZJEHblXPTubNNoivXPfD38SVXVMaCUfaRmrq8+tzn9vMfrhyuGkI9uj+7phvWm9u3ticm/+iff7Drqamjqa35wBXgHEMIH/jm7m5o6Mj8Bgvv/nEbX+9PdZUBvNA2dtl3zX/BsbtZvhY73pnvXm4/Kfh9mRlR23fKG8Ki/UNsFBZUVJietNpjLwlOxRfIuR1xMgJm8pILAUSj1324qFADGKQuhUgRT4a8sK1l1zp1eMgpVoWhfVJn3tKiBJMJGKgkkKjvhj2OpQIJkZncbFPJKtUDrAPvPanGkFrt78KgOHQj1KExo2UOEUGEYYFRFmtFglM1iHh07IYgBURYrBn8VRG6f/+y5kjPSeKsmsD361Dmt4LgKDXGLc6wuAtg3sAYqTf6gfX2ERbnmcSOsL4+O0XXHjpV5GGyruLPr03rz4/P2ekZjG3eWQjdcjWXV0bubD0udA0V/bd2/M7j3d8WTb/7APD7TcDhmOAJrTzb+aOlmEXHLAd+vqajqMjAPfLztrm95ubH5ovg5Wxur9rN5s7Df7O9Yc+7Hig7cPKEV/dB1/6c4tG8vzFn5dUHHtMkj/u2Pc7Qtt0V0+AAko4lZksp4dRW6OXHH5Hb1I69m5DV9JQIOlYCPYi6DbGoCROrcgK+j6kN2iwN+IPyz4sTXu3TqbFMLXtKRoopILQ+9MSRD2PCFBPQlWjDcu8CIWX0YEawmF3r6RlC0AgRZqQPv0gC2lQws4xXr2WSU87OEBUFKNuog/5Yw55b1vdgrv4JU6rJJkmnMYPcowlruKSzMZMzyzEJ3igZ4um34/lZX/+QM3k3S2dH35ekxMdh9MzKvNKFz76KL+25fHcro6y4Z2yprdvzhhaaPpiHkTmm99rHjoaaz8ae/vIZao+Omor3plbbmoa6oKF1eWj2qaBV9o7mpo/mYeN5vlf1n//orn8ibM3Nx5ab3m1sq+ysOHk3Es/hVXAqgceHM8ER0fB1vemRpWKHtlEBaJPUkQwpgSLYWCJbiKsvE+UMAkLspdYCaEoCJjrxa84HEShba9XXfIll/Ty9+qxKghywi8jjMUpKvgpjDyES30ngpANiDnPI4SpU1pM06DkEmtnuLQ0jtHwGr0dGSjSMiuXPfHV+zFktoWQbu/HvYTKcgcHQNz0SOi19bJmW9KtCG4KWopfhnnNY3JOT0eKrcXFJRNw3hDgOdIKmT85WZQ32VAO01JN30B2Q8Vf/XXZNbB3O1KvCHJL28DNG82b5TtNN39a27UBFk1o811/N43tQDGF9aW/vm7qUk3GSG4zxHFzfnXZ3Mx3Ze3rM5DzXUPzz24slw1ndDR3bL7XWb3RUgr3VUdGRm7uvubx7IrZfLDPlOd0N1iLB504GqAMotRBBcxOhdRtNqQEbRaVKhSbVY0o00EjtCCA83ssqksJDYw2ZNu7RTWSQCNGqiDe4jD66xQvHhRAnGpEgCrgyLEOVQOAAqrEIlJhRQpTmY0nvf5t0Qb9iOO4NJbTEA3igzbE9EJ3t1GN2KN3PH/J7a99P2X5FwqAe7qHiOR7GA0CgtOW8DukqBWmXWkwIsWsBSXgTfGA0gRwQohOzlZU5NY25OQXZXcf53YXfV6U9947s62TpgFvXn/sQzixpBtq3su1zUNlf2fAslLX8CfDy83rja43h3Zgj2AH9oeUSFdfsX+nDFaYv1uGE2Dg5HdwdM00N3cZfNGO9uGu9eGhjg87OgsHcu7KGIGV8tFSOMCwLzvz8aqB1uz+xnB39PG161d1ckJxqpSQVT9FLOpNCPakDx1qeBDREYSZe5dQUSVUAkED4ymDTWEp4lepecuW5JP6sJF1+gQsyA5ZWfSR3Q8QLxL0/X2vApoUsU6BblGWFZ1KXPDuv2ww93oxo9OlZcGV4LSAo0WL0TZCBqTl0lV94PmLLrzokle1bNKt16/+OGUmFqOgeAXZBsOvHHYYXSRqhXv5JuI1ORuLS6yeTFdJa2tr3mxrxSzITUWleeODeTnZb5bWZ49n1k1cefpe9+zJRffJOY+X59cutt3c9OF6WfsrsPOz0NW8U/3PD4927aQaEYTpwPnnn3/Fh0dNM6lGtNNeftffHXAqNqh+N792xnXD92+0fTJzc9ffGYV1g7kfjcCxHg9PF91d83lOdtGHdaMlnxUVv2kaNK4ReenWy5PEruEForHbWRQIYJZHPNLu3XvIMp/ZVWq3//6kPwoDo0h5JpTs9RkdSz0yXjMYEqzlUISx3De1OijBTM/KlMWIGB+8fTpkNxkFliFB2ZauQzE5HibbVCY0sMQnmXRdemiKO+AR49ZwTK+W6d2eNiB+nzfYxCnUa6dsgNgsGirSXh+h7lQVcVM3qIuqw7Hp96tgidJRcoA94wWTpvzJ/v7u+lkwn+YNVKSsQRG2r6a/v6b1zcaJgol3HocILv7+tbrNgr6WjJvfubn5y/WuJgjQts+GN9rnb3ml+mhnGcAcam96+4tPP31wqGxobmFoaAbOf2l/aKesAMxxQwv/fPpXZVdHxm+5Ay25peU3v1N5d19OcXS8Ibd7sqgOJISKiXKXazQZL3DEVaF3eooEMY8w2sIP81rMpmdpMcWHr9iwsn+dQnfddMqwiwXsFhkd3JfgMALIV4k3ELMf4jjGbuwNnmAZbQcAvDUvxiTZSzGhlJBDaPvm/b+NXmRUtvwEhEExEMOAp27q9p+AMCHgoj0rD+jYEEs1MZu4Zg+G/FBgoPmlpxHoY5GeYM+hL2axx42KYDaYSuA+tbp2LIkRyJh/hQn/hMepBzN5yneZDcbU1v6Gusumi9q++z0bFsAyt4oz8yqq3izITG2Ilff1vVNLqNK20ZTf1vX3O11DwKOGhruL5pqOICB3hoEswSdsLbc3D2fsDLW3Z4CnanOho6OjK6OzM9xfvV64UKBEot3vfz7CFkdXGiZbGrkD8c3MvC9AUcaMyeH1WyjHCIeYYOZTFiGGlTXpJMrZtOSYrJp9gaRC3ScrBGP1mCNsKMa4UTym4IiKGT3mGXRsNifet4dUAoyIFVQToV6CeIxZqlIypWc1WhUvrTJiOieKJL7ksLkFTTqjS09Pc08xvXqgTCxi9lh2QJ/FEmrG6rYea0QfUnpDOq3ZAGVgKSnaNdhgIWabzUJgjhPizsaCP5+672HlAFk/K/js0wG2fzIv5Y1ug+iEpbyKWVjXmczLns30vJk5MQEO81HXAyWe0cnskWrNZwMe3D7z3cvtQwsQpCleufzPTOXHH2fcDIeS7Ay3LyzcP9y+s1A2v5OfWfHSm+e90gJHTyxUl82s3bRYfdL3bImau1Bek93w/XWXfTjq6j9wFEv87LjLNUF2H9wCHwLRDCpEMVCMCGKNIsGUu+2yJUQsFsm7ql/FoBsZAsQxZQa0Ue+nU4gkDmWMkz6RKmg6iAQfbyAU+3xZXBbiJcKm5ExNAvu9FB6RleASQnrsntrFDKdDXpvPlfU+k27f03BpjAaBs4Hv1ZlJ0nZfUNtDtAhhIhjMWIu+f2obuRHLYk0vQdgcpD6JZVV8ADoglGrJ8eqll78iYpMp7Jp+edfT2ljnap1t9XzWOm7trytwTc/OVmRKJc5JaFUlJWHrBFCr7scrSssXLzn1g6rq9vbCmZyq4bKuhfYZMMKCDW3o/qEdcOqUtd8Ph75/DEL0cE7JRF3hwj/vZLzXsX5zf0tlyzsfdnTV5468c/W1taXvFv36enH2bF/Y9v6Xr2jqPLv+EsfJAyKxHRK6v4e9MJbrNRixGCVsvkAMTdn8CssugcfICyqJwFKeXUEBLRPQ95p7VUfcFkCYY9CaJUBZYhTNMcxunXxHkiJDUriHTnAx17u7ywCwLCKKxv6qDfTNr4KExom0xGh0Gl9PGqfVaIJpWs0hjzitXavFln2GxQKFQD3EAo/9SsJN03Q6Qy/0Kt5M0mWMsw4KnLBGC3Zd348XPwYWcqcn4kk58ao+82Q2jq6NDuzndL853glGdux0qjWLk56JiGIyJuOu2v7szoaWk5Ocwo+rF557KBirax8eHtqZ2Wn89c7oS+1DEJ7AT6urZyoLj4arMxz5Tz9y1/0ZhX191Qvtf91c2JWb8dFH99fU/3Dle2Dty52EfChqGFdfvOiiWDwWNhWHVQnSULKCiilhAtnqAwQpxhaDDUoij1KZiPGW6AbN3SYEdYQNsjYfq0HuLcqwGje2f7WmYtZgC0KCI7pKfppGSOVYJAaCjtTwuv+7FuGeAHr/SYSx0baCuR4HwQhSmGFUbNEHv083oMMAz7E9Dhg8U5JygA+uaAkSMUqw8PP1jA//9DsHL7HriCh+9eP38gEDM4gAm/NbkrUkEI6CFlpSbPKYJlIRONra3Tr65iSsJU+6JowtM221wEc9wFa3XP3HQv+H5XmDg/UD3SMjhffMZPx4yWhby8L9cJRMy2Jt4cewZjecCtvy++8qHIKYze+48ZS+jNGN469y7xpdm+nLyF28eeG5j2pG6vPgIJSCzyoyP52dbM3cXTl8P9o/OGiStmTT3p1LkkRkxMamKc8DhpBfGo029V/BNj5F7mmAqHqWdfi46SDUPZtZ1FpsqykTl1ux/6RJvQ12UUWshrWwDGfWohgfQphhA2y6CoSW1TFalqR6nRcTQgQWE1EvpeinTsdxlrQQn2bj9emcDbEMYoieBz4KGLI2mOxZijCkuxY0ZxR44v2ABifOuX0tXU+pqqqObbdVUh6wWk3+MNAp8AioSJJY0dromxivWiyIZLoKnnpgYrxitqHCtLkXNjnrFj0e1+DND3xW3pZd9HnpTF8f3GAqny69q7t6prCofmbhITiJvLK96rPCmY/uvz/jrpE7r3tnve/B/JGWj+566Nnq0oy+tvz2ypHSvoaagc6ige7Z7BZP5lLehwWzmVsej1GS/N7i3fcJFQQfu/hiEFM2YWEwYjQMgrYLH4TElB4UQO4EJWwMkHXvM6usgdF+sI18flYr+NwajPX2VJULLemnNAwTYKFd24nIMDL7HmIYwjz8yhSMlZjiHlbAJCwa7aJWSY3u6dDis3Rc+gFveHgPWXgGcp7VW/TvayEzWJ5Ts5CbsDpzFs9rNRbC8m5EhJOL72SpV+8loA/GnSXgaLRare6tB0xRP6eEvcLuq5HBB0Muj+x5c8m1eVnBxOcV4605WyWDyuq0y99a3J0smJjYNHIHruyP2ivvKszPGKnO/6S6MrlWOnP//RvVVZ0f/7bRnP1Zbml+18L9H/n6i/IKuuuLnmtV/M/mZEQbcurzsyfzS0vHixqA6gLprc3MHM/MfK+YOCQYo4XGlGaOEfvVlAy/PIt0LLM4jTiWgYggaxRptlkfJmQFsfgYU8TY9Bzm3SuY2UJx1ScaJJ/M8CAUIQZpSULP4PcATwaiS5cFTx6usP9fzN42Yg4ZE4orLAKZTgA8sY7P0qb9ywUPQBjhISMQa4Fvwmo4yBEIb2UA8dDHpt3cgdZC4VFKuLKoXyxCcZIo9oJ/HHNEhviEu0s+q0k++eXeL4h87CpZc1pPwB8UdoLZHHi+x1Ni9e/5wqvRKpcSj2cWtBZz/U6uJr/ImfPARy0Dpfe0jOR/9Xou7NcWGJvbqzPq1vPb4czsjIyPaj/Y/PDNxSI4myvxy/eVhS17H9Zkw1UBtnMYGmaLun+vmnUVzFZ5CsABN2FUvdhJKcGIpngS0EDd+18xBoYNKiK7hQOAIZZjSTYIUcL2TKmgYSAmLgenehEhSwYKhB6TUIAw2rd24ZEIuJhNKLjCAaBZqRfjXvOKDKyKIgwvSQR7fMGe1LyF0jlGx3A9vZQ7sH+lSwuiNAYqjEYQmSzOruX0MrxrchBQ1Yaev3U1HRtsOhYHDb2iLMd8FKm+hFVq9TtOpjno82BtNlnBdHrfxZ+aTdZYpNHVWCKrThlKgiKD7pwZLbFGVSXmzJzwW/e3HNikHH77h3O8aPrhvJzSUr+ptK/wo/z86sWR/se3qjvbMppzP/oo+6OMyg/zb94smqx7FmhtRd6DVX2lfZcPVFR0VNw9Pp7ZkDd5d16mBxZU+zZbPamVDMkoG1Oqpd5LbYAGhgDxMfs/QWxYkMHA9AIoLImaD+0Y4mX7CzOD9F+8FWJ5pMHJkG8w1VXcVORZYIQUc4qd5WEYXzEzREQwd3/18IMDgqQgG4ZSkCrKUAJBQMYIqqOMze4UnqGnXuXT07M4fUpa1kKZNTZGjYwBBvsD0O4w5lkWXm2zY73m/SVeoyGUN7gZPtUiCYVLHoyqDqMErdsYXZJsgmySrVLSCjeWp/FUfM3U73Z6sZtowGXxeR249yNWa9UEs+mTirefuPBBOKPgQzjoUar9zN1SX1pfn1F690OPldfnZxRm3HVXpjVSmJtfnpdTW1DggkI8+flkXl92UWnmembDSutisUqsFYDqbCb0o8zWHBf4DiWHR5S9ekJFNqAh0D8RA0AgUHp7Cc+mMT1hNhwFxgjPam3IHOLZFMLQSCBUWLfMcNB9EEeCrHmVZXZRAIg76w6kbfk5yxQX8h2uIMDQksAc5O4UMHaEdAxcIobEXrud0QELsiG8F9dx8Cxn4bQMgh9A3MxBGiezB9itspA1oI8yWGMwq9TgZgkiQKt4jL1eQkwECUBCnSuRuCmuxuJRySscGrdkt4xlKpJEPOiAaHl4+vA/lq42tHkqCl8UuRduhMsl/rI/kmgISDQ/YhpTA21TV0tX0emc1bGKWL9dtaJTUHGI1dpZUNFR/IJNLZXKUFG08tYfrZvoVFxBkSkozO3PdAhTQUH0yfSOtfYjcXnynHOec+659xXozMsm40aY5PMoIZy1m51GW9Rrd69cf9dVwPTMDz++69m77rv+egjLSzE1euutN117SfaxDz99+vIbbrz0/vVsvT73/NJbpy6/HO2md6/9MHpkqT71/cP33/3WFFauxVnXev+rdYb5Wjbr+TlkJJpQfvU/2OwpdDz2IzDF5hNGXelQohHCRK4sCeUT6SoERKt9hNZiCucg6STUSdOuVomLEG5TyrVaCfPNy1XapgHp7TBFaeTGJR10IxE1jjYlIDNAPQj5fD4hed7iqIrolOuGYcUEtvBn7fNffoj2pVT3KKyEsbxQEohI2qT3h3q8C8ZSx8barwd+EnayEuzM11Nxcygmaw/LviOT8oOmDVkSobjv+kdnPrDXT3qzCuahiv1k9vm25yeDvWm0XwPLmzp3X3X9d/ddd8nNt3z1JYpvN998/a1P3nzzp19+N/f8/Tfe8F2qdctKZ7U93anM1J+bmcG+cDBtb/omrMm48ff1+7711pfWhVgofp5iVrGdtblfHGuy+u47wmQCQSEmCpFU7jC4SpidAybSdugwyX0VYfuPLby2opiYBj4uA+VRZBq6pUhIK5RKykQz85xUx1GJwaA1vqnh9uRnhR6fmXKe06JEbPKURJaw5AeWQUpW3jASB5aRViUlwDMvh9+8qxMmQXhBkQEoajhOq4emakqhUkqhaZNSyp7d7aWcYLAQ7Hi/rhYG8wHy2Y1Kv5eUx7s+aigbFd8uJ71SRYOeCINiZ7Ueb1rQrRenZr699Nqbpv362tJtj36Hfsd5bF9wyW1P3HzXbZdeed1t7fs/fujaK58X5VCsnJqvtDodLNBY14Ttrb7ldb5cump6bX5lcXFh79fpwtMvbWI5DG0dvPjne5/uyF8xzfF4OiMcgFQSjBJBYXmc04zBc6rL5ORAk99+ziYE7xKBvvexocPU912RJ1qTDxF12XMvJpiJuXdiMlr7KYotWKN4GBEiEiVt+ZdXjxFaCBkK6CC4lFhpNi2d7EMt9bbSumXwmmFsnkpJAoLmmWZkqmYcH5uU02aTJdLjmqqWMkIyLcEsoqhC+r5faTe88p6NakE47leCtOpUUkxSAx27MrOV3JNBt9qzPc39dssJR3629ch4W5tDV9nU0iK2NPlkZS7Q5m+JF/7dXf7heP7ZeLbp/geffXfz+8t/v+/yazvlz79lp+qba6vNLubUW7nDjx/aW3zkx0+QwGJl2cw45YzXsf/W3AK0bxNJ0nnP5MpaEllORqTdhPHHDwGnvCYogAM9GCyT00YJvCyDUAp+qJD8eJc3OOHlqHeIcB9foc/TA27R0tBd3nCl3kxD1WdGUk/oHMhiWLvPSRoPybrMZ4gzFUosvfRNBs64wROGjmeDHD19qsR4HlQG3mAzBld4lTEm4UWXTaeU5gxJQp4yiRY8b2cSvEiqqwfBR5NuKag5LlaI+GIxgOutxFGBs7zppEv+Z2+c+8r75WCiHqhob/Pfqgx2Vu5cwsrJK+99MEw+cvUj39639PQdu9eBm7dhFzIIzOufuh6rRxafO+eNcK6O/Ly/iq3dk+13r3j1hdX5Tn1m6lQnNTWfDb7+qL4yXVxfWUdOoYxHWttvom8plxlqCY1isFnBazAzOLMNCh+X4WyZbnEgDuJwSVkvDrsw5BofXXTG+xSDcHi/0EMZmXOEdt4o98rkSFCD94442Ma5ICDZPKECIImc1uVESQuNGMv7+ZLFoeKbgiR4wyLuK89loQ3+S51MTniSlkaUpTPMTEjIBx5QXdC9H8zebkWiiBWqhZLdT8LwZ8OeVwmq9m5a++asbzg+FIrJd6K87QbJqndYbvS8YLu7vTNX0ID05mq9/vrSbTPTjz92Z/KRS2+65dLr7r/tbqB56aXX34XVq5dfd/d9n2Mrnuv2vmkP5rPZMpa+ZINigK44aN36whSZZcUFhPRTWIjQfebXhWwBeYWfzCWXe8eC9hRGnZKaY4JowiQGjU3bGOZyDACGcigYos5Hf6hE0bcF16tDA6ZKoCph9jrwCkFjxxXuSAdinDIwmwNmDCvvtJrVNIkZD785/l4p0YNdUx1QkJZtWiZJ62lTZwY3RlTnOx91fYXi2MjlGCR2DPhb4v/bATz8c4M8k8rmR65tCkZh8CmtGbR4eh8dov2RVxpNRsg7S30J+rZtuXvx+2k7mQxK8RIIrVhAh2sqJaUkopidmVlpT721+P259zxy//TK2o03XXodSqWr05ffef2lj3bIdc9f+vpV919+1WK91IXTXcWa6VEzlUVH7Ma815qeH18zSHlB9iu0bgpNZrGIIvSTJX9ZOJEKsIh65CjEjCLKGkCExJqIgSUkB/8qdYR0aqkc1CS2/GwXUCyPGadlKXrwuW6kTqJoeQJP6dZYmm850YHRjrNIXVrHj9dUnkPo6uZWaSqKgKyf9peZNAkYCaBAReMEefwavJxtJUBmiFQCJPX9f/Yh/POC7HPgR7f/SCgKAI7FLPf+CCurk00hhW2F4Wop5/uyVqx4k6zW3diSNhzC4AjS2g5LtdTxU2I2lKNCpRh+cWdKzGFRw+KHVz0/c/dDf9c3v5m6+6brboJAtyvspuvvvi2ZaknsGrVWry+tzD/9YaVQzAZJsM9DrtBCM/pCUJwbhci9kqhsCye7gNtEqRYFQTShKu98S6Dgcw0zR5AfEwo8qSFI0tCrCOliKAwy+SnhHpKynjHjrBJ6B1AvVil4u23L2Nmm5YBywS0AxyklUjOBguAezY0kJdQMKC2hlREaKkt5Fd/AiRCAMMsBTLkFT4uRsIxYX/CMiB8JtYQ/y/R/jMEfjX09AdonhKJGAjKVCUppsydSohnSh56Ki9iOPa455dAJbDlJBihoa5h8DWcR8ZNFLdfcfteZ9f1WWVT+uODVAhagLn2LNZLtu9eWnvpqae2mtbfQRjqz+9v24mBnzepPW6ilrt1y6ov63GZltZMNOhAJnofUYdwNmJatxzPWyT5S3WLvg3d/rtRZ/4gNqtKJNpizfcSY5laFGSYo9GaBxsZKtVhcg0RCVxNZMZsJcJG1alnGuef7PyWMYdmUbodRocKya27VVdWQIxr3hJPXdygk1OGHn0sCFsIjbqCQrAiOE8f+4dc0AxWJblG417wFRCk3QVQYhQsJShmJ55Y4917crEnrH0I+fDkXqwOTCpJzpZJoVR0YhyMLsxvOqvbCWd8Mbd/xPXOS0J1yLrQBZVuUglYVdXyvHJU3MN+veFonyzSPFoqH86jTz2Tvnnnt9anN57G31hp2ab8OPaRXvL1y03eLlw7veaxaX11ZX+zM9efW57c6lcPVoLlaHngHQT/w9rY9ZK/+ptcPUFBqJV991Z4vvPBhy/8gWZ58Xw2GsBhSTfegZHAls4LxWJfv0EijTG80jWbyRepuOwCjoVO919SAuqC71Swsso9pcR7bKjfwy01ogYle+3ALBU09cbyMOM8RQcAnIWVzjwDR3AdMIfw4vUViJA1jH301ugHcYfcuV0FwApH6ywdwxX+c/uYrL29ahIOOy4rOG1QeNYWiUDYUhMoy3fEOuv78YCwEczQyiagMRja6LXPUt6SQBeqiE1XGmZTvVA4KO4727u3QnliBtj4d9+NOzdx9gBnRqZWVm9aumlrCnppv3Qb32X7l/HdfX3u9Xl986tQ62rIDwTyn27LtnVYyGHhJ20Ozl781zqLvp7OQmr4l63l9v2Wb4+2wZEpHo85EgBd9voGsj4CTFR5fn2yOIsa4IIEP+jLgoNv4eJPJDNQ6MxEz4HNLhjXQm5yNZZK7RI8ByRCdAiLILbx6N8eHRIErxqkGeJPlDR4uU3ATdj7sDQl8JL4WO1FOuIZfg9MxI+DpBDejQSmkGKdW1zKRCCCf4HqaEJdGhA0DmBhkrwy3wg+aGbP6F/M9odna9g8Raq1sg5Ko1G3nIj/saoP5sLzXHTSFnJvGQoD19fsXsLURJklmlk5dN/fITVffuHbTF8/ffR2gvfSpqSXIU+yTfUu2GIjJt78WCqteKcS0dytV0ILQd0pe4elUEjEfswMB7mO0GwbjVq7qKRItdDUqOGWAoFRt0KZa5ukGiWMy9KPDIj3CRUU257z/8jElUlnu86ikcNptCGKpJVjnCdX0ZR2pI8Nhs6Nc3iJA9sS+A5FgDJJAw6pXi0mcrUcIpBQYaihudf8fo6bE5wCgct6KlShVgDsl8TAmEF4MEH9Uo1WU/TOkPDipM1NGMr4UoAPitkCzbyjkZtMcDW0B3WHaoT0ZlXZdzZNNKYNg5HadQXJVPrUnw+LC0QrWWKw/jwYIFDOmT02tYLdBNJTNocRx09La0sJNU49MTS10OnPF5+cP33h4L1kwJbW1/oaX0piNypUT+ZpXmCukWlgstbsRe9NUhEkLp/GrXzP3nqs9R+LMGjefqBNSFbCxmFwQPWUSaGUGcEpHJGFRQU5wqgybzG1A2wCFZVMnup7WkSpKZkkcAxeARyDE4wOJau31SLNvnoTq5WcatIwqKckbFlJ4wzL+MTiEVQzovlPCbbByiOeNilJL2zQhKFHpoGkCYNaIWOOA0BxeEDqrsmVhuflRJVlKOzSRYQxRTqCJNwg2Dsxyc7Y8h/qtq+4CdIj/kdgct3raT71UZzf1a/uWzdR8e2lhHbsT3HQVdtC5fGY+dcvCTHsa6xif+n0K7mC+vpgj/WDBTyJrLYwu7jlBC7vF6NPMt21/RWQwSeBky/jMmW05GptFxlCbrTEFsVfEZICYJNXkiSMEx2CsDPYLHwgMiGpoahmXjLc5gTPTOZ4jC8a4pefNmsUNJEOAs9nnhhEZ3Np93zXQ3pVgAFHlBrX2DhUBUnUF3F8V5z/pD1EzxNr/B0r+KI27V2mWLAsTfrl82tb3CYG7BnTwIoRiIDwKarjVMiFkn+DEjKo/PUeEqtgbL/xqyu3jskhwisypHGblxJazxdBpypomzYzmeF2dm2FT8zBplsrOnFrAv1a5Mn2q+EhnenHqq1NrM2uPfFv/ABoJe3EtYXJoar2+0v/88XJRkyLe5djX0JQVoQ7jXPZB0bGLTr579G23m0RF3vNVErBd21eFkD7fpdSk8XVzflKVx5XGkCaQI22BfJQ4Ncd891CZcL67mXcpQSI0aZAMLWmM2x7hGZi7fsLIbx54YAyouHCI1eOGZRMXDsI4etqBP6XDBKm98IOmIFcnZEwgj4xRxU8YMHtrOQN4NTDcYvCOhx8OGbxq9AEHdrnMt9wRNNilGFGPyPRhZFiMTaCL4+mummmKZlWrqabDzNGmXqswquM9aPhWQes4DqKrL0zSzubt0ex80h+lWitY9v1rkMUq3sX1wvp6EVvtvQWfib0VvLmZ0J6ansnG6Y+/nPb9z/dCbRZLfuSub9dsDZx3sCTAL1/4gnSciiPYbMiee0xXNI2pCLUK6pp4gs1RAygKjv+IEc2foIpX+EGgFyY7iRox4gddIwcAfZ1sdSQHBhhAD19WJCOGAXzAX8pLP/0kdMlPknjAineMJmlmdNgBRm7LSr/w6yS9r8PtjtOWRRcLqNZDTHF2/NEPcVJFHEWnOcJoZkIoQjiPxTwZ/fS0pFrukGnJ6siVZtphniYYY0I9zG1Lk/MPJo4S5FgoaUn2x++bthzXct9cXLOxYKpdgI4clyo7WY7KYLgw9xS263lq4fn1b+sz26v4B6o7F9brt7R/aKWmAz+orNIg0BwNNl3BlJVmGNK2K7M+otNeznacUJs848Rzw9VNxnJUK4MqmoIJNhggIxQc6zLLEP8FGMIsDlyplQBcAIRTquvARVLVZxR4A6ac5S5z3WWxyyQnylUnEggCXZcPJ5rAe3jxH5pDqUFZSZI7yTfBy+cu+wG+ondgWTUcf1yh+wbZdCmPEU9Il6UbkhgBGKuDjHRDpW4mQaiKZK4mpBSMKqYkVm5TcUzMgQL3tIjGG3sm2viX3eOtaByEgdZkwt0J+5jz9rphey/0+/6q1/KEPNUOrBQaSE89U8dWCTMt/E5PYXHqPKYvWsV+N7U1GdhP27Mwai3UbCQkuuZzcBIJLLPL6Zrj2OKDbTlt97pSup//wExFqe00EmAm4fCNJ3R0AMhJtE2UTCBb6+hjvrytj5b1RqM2sIwc8EMxTTcbOAIj/e6BbkUChN1HcMYZMhtlIEA5RD1Ab+LcFPEmZDHfgSMexJjCBjbB4/GBq1hw1RaOs4q3MJ3GugI/GODCAS/vJiBiyZDqLrJ6hak5rZfJ0CaVDY2xUjVRfoZSSFLZSO8G6kClIiOFTKcctsEkvkwhAFS13IsC6dvdiigAg6Qfjruk8sUnL96C9TztYgrzdQH6Ib7qLM4HWWy2920nNQeTdoFegf3qkLBAtVITJ9BXP9EUoQW2snkQ5GZlseqoiitdx1UkSHlSb4jpgJ8YT32id+HHah/ELjGHKzRcEts9xcs8BxCWNGgMvTfieE1+iGOFRQElFJSFF5ah2004/lzsiTmYjbPFx/OhFerR8dGEQAz14fmAZwkWgBiv6HH8wreAexp+5//ygcik2SBi3GoQPWeI3SiBexhRRtT0pC/GRIvobuOkuizSBNOKWL3TEUwpCVWYUqoiLRSWWD6QW7Kqboep8skKSEaOtrCeMhVON72nzzjj7NMu/jwIFxewb1b702kUOk7VZYsUEK9S2W3MlzZbsmsGQS3z/S+OxOHwoQ8/nnEGquzlRiXi85LKmEYFbqtf0qQsgQv4+zhGfM2cRTxOpzn0oQ4EYyg04IyKJD4ffmZY6lCnQwMWzULD3d7Te7RZiu2eGaxWq0YfHXALr0Cs+KmM2wGvwWC7kKUWIZlSmgpBcRcPSFyiUyFZgajKajneyxsnOkxXCTVjQlOT4GMcz8l4xDGQb5KgaqYFobEDSUhPlljkUWqrtH8kpRMKEdVIKKpYwAOZ6wjBqFmqKTXWUBx07zjs8WNNc4lkoGin/X1ZyWnCDrFifScLeY/5NC/4tffwhlOMq3PeVhdVq+X3Q9vx0ph1lJEWr7z+tqxBmImQ2Vr1pcZB1Y9EoDJVSBm6kcvLGRWWaQACGCH+fh6jSAkeLIx8HqyM8aEZgMyExSUDYrHnoywGesAZhL9WZbxHgIEae7n/QpgeZ/UJKzMkreNve4KdaAaDgIwIKIb0y+AyRpWYeZDTgGoHml1T8KpNTJzEwAkQpjjBRIhRHcaJGBGME4HgKOj7W0jnfQPAUsaaZMgUk0mzlkgfJBCJmOWktH3KpHCYymJJSnIyG7RCU8LfDZ7bScukP2loseHbftaZoDMXBu9VOoVO9rAZlJM7C1jfho1Lasi9iJkRoatS2bYLgpP2svTGUml3Hc2sRoZUqKRpwTQEEkZ4RPnJlFGMEolrEDEx8UytvJ6XHrd2fsCU2b8snU2I+0QYxueWgQwYw3ibQxIYcilUGddSLSQmWPyo4kGkoOwpFxULigdBlByMFEVQUBEVL8JSUERF0Yr10LoFv1ALii6CB+1eRBFWBEXQ31Sz+2/T5mOTJ8/zvs/7ptO/HJxj/kLPswop0hedgk6fhF/baELMyiUJfpR7KzBeacTq3XnOw/ehj43rdz+sAC20UZxuvRB2R+FUpM+pdHxypg9+QAiYyA+hGaiyKPd/wJEGo3H6Iyks2nCgxY8r8Vw6aUNjENZzAQOXHIAaoWS0WmIYAidlLF364/ZxWmRKRTEvZ2acrBl9mjy13Ux0cPbpMsI0JgvGjjtG692WvD4YknVHRwziPbn+puPbnzuGqXH/qjvio4HoH4notmrkzgLI/fqfs+vJhvE6fvMk6VeN+KGpO6kUiTDi04IQT+CncXrwE3HxkNdlpmj4zBC7/LnzNWHX/PhTkAKOGZ+llCT5SZTKtBZNbIUvbHYmS6cmZS73E0gsP2Vnu0wwH8JG8APDjOdATUKqeUmCgTMzeVgfPD32WIkM6+TNFMfSzdo6YsEkScehYYPfEJKrTPicYMIcCZqCOeKw8H0/bqXEKLP7stXVRLx7yYNdOOF+ne/rUZTlhZ4cTfxN0dNfy6PCaW2TVVFMovE/+yBZPplef10vHPF9HEPM1FXXMzr85OIqBo31bive/LWavjq/bfv6KKE30JPxz9GOCoH+/3Dej5GSXExAMRjyccICwfxzmPJAHbIvCIztU0WeLcPxM3e+axH8ntgHfVXKMwEg1GBEUtIV/c6E0AB0YHGAhMWFzAOIDj159aoka2UwOjTtKAQr9IuVwJXFsWSORcAJoMzZTKQVZEzFV+lXPh/lkvt06bsvNCr2Anq1NgBpPNrwUmDD+sk4lsa0Ir8t/sdGv2k9YLlvi109Xwh4q5pkqSO9P74vd9GwT4NvNIvlZt2L6VPHi6QU8VdPHGfxQu4/+/vbPLaOwbt8+8TxYMBnE0Y7yb2Z/nFFgZQk0clicUIvIHm+NzyJaVP2o/PeIJZR2PYDIpQ4F0aE8R4s9/5hHPqYGXnb98OScnFW52ULRDDlJ/cfks8sUtDN6xwQVeY7HT7xIMmCWspzcy8lgAnAODBusUlTHJQlz9UrYFiG6fYHm5p+GAWsJLQCR4IxDwhEhbp47JuKV3HAle1+JvZ0YS4gOPvUaz92oQ3pGohXd3KU4t7//DRTkYES9bOjcQ4Z7KKxgfQpMqghpo56ba045devpmJLXFQubrs2nsbXx+K5a0N11E+y4VfPTdNo9ktw9uEPNhk2X93GZ3SOjrkHjeKjM75pox9vo95ng3V91VFMbCTLBf6z7Fdhv3uUC8JsGw5UPVccCmJG9QXHtz9xPBrvveGkLxbz3AX5tABDki8waT22W07GQxSYfKZppo8Xc5ReQUIW+EoKXAgC7/0x8/r15hVc5tRQTSIzB0UJwgJaNmUWGstFQ66e2QDK6l7yBHGaqaZLM7AckJ1YCUbnlmOgxOJoH79qbFPaMQvKpeLVWMSv/hS3vXMEp274hrRlYyWwVit2PhOxkeQjyaqTyn34zm25oniR/ThONo2jHTjKVOlU9Pfv1zy6LOLu+ji47bZFHGM5GSf6fD/5tOr1Twaj49suZBVJza2/ILhq+tLP11O8vXF021E8vn3oP5UxET2P4+yaCxMUgRn/E5/MuPNSjcAEHEqdV7MgKWRkUK8ELiYeJ/6pFRSWcpxuZJZNZIAhzPM/tizY/gEmEDA3P7IJQHu56zyPirz+5alwMQ3xoYOkbJFqHbIPyIQSgBE4g07l+E9huXK9iAsDcw/FK0GUtaT5qUlBX8ePfbbD6QnaCV3VP7uYDqcT+syrLeKbvfB6MFtjpHtL4VKDbgRQGrGktaTaTXXLR5FVJ6QhpeP+44zWfeEvaV0kX7/k6feqWE8H1062/SPuRktZDSdX3eHHBEnS/8lyaLEUP/XvjZP1p1GArv6Z3FX5G97FWxcA2X0GqJ4KSiKMTIz/QbJ2+PxRkmND5iCXHXpnEfrJCQGt+o+A+fxkTKatFuOa15mA7bBL0wNiE8Dzoj1IHmBFgQxZPFGvZ1Embhse+RbT/PqBFG0ISi5xRWYgGptgOdlS+T0+HgTlVeaQtGRuZrODK/NdrOY8IGkb0WxohO0kNfc4rSOMfDQMJo7cJdd0lTQUPlj7TzpZvQ6acaVj5U2ZkFH7x1WNSmK3iY6TY3C6uPTtwVWrLgYhm8ilJtRGM7irLxbR0UBeVQzKs9dvQ/S2rta7PqYZ04XhLez46PlR7gtdwPS/TCrGLPUirQSx6B8aCV8+9MDHj0dpxB3J01//yyuLwMPGLPPYJfjGk5ChAmbmw3GRRNlU5MvZIVLq9nUjWFKHyyrkMiW5+/QkCm08DXuBkJswG7/+a9zLvIEUiz+e/lEqgzah+Vph6AvYaKLjD24/3kdZEHTvhYfCtxT/pIIp80YOah9mc3pGYp+uXRKQC2oc9Jrkem4Y+yB7fWMEu+bMiv48CNaFFDcF2C7/uclVNGTgfvN8P3h1Vc/aQTW0ljTdWyopUx1HHjOAtXyr0SvruEwGdnh9UnzG91EE5SiaPzNYGzNJ9unoxnEUCwmW00Ay1ZPdLPktgJ6+HNmv3v7ru4fvv+Z0lMFQrdR/GP7/jx/S+3hehF71LheViogK7qmZr508tQCRtvxbN5+HGTNKVKSPJhQD0RCgOVCiVgXAkI6uPHDwVnhoMj91zqsseP0HzCVTqKUgVQ8GApwbgl8nLrZqb8ARwaxaSKtKqUJh/v5hoce5cysnVRzIEsdAtnXyNKTGAJBAm0Am4FNMOIDz+yFmG0WDQb9evWpnW1p6VifDAde2GgW9HxcX+FeVqWWhJRQexbEdTbV2PRvfNomiXty/bS5va2zXPF9ElPPbj74g1W0YMEjm3nCgU2iYBiYMEXVKnvje/z+8V6wR7+NHYWs9nhkoBnsPp04zu/CKJ86RT3KPRJzlXdT6YgcsJcCy0PNHLQWxpiiioKIJXfdZ0YRr+Cqqc0k7qBbO+52K0k3HolMHvXuoMz9JFwj/t0HVCnktUXTzcMcOsykXzhsCPxZZkcw3774205CvZV6lZ4Lr0BzXymSqNwbLGHHCHmkQomCjX9d+kMi5TJYgFOm+2y5HttTN7O3u2vhsEtnKqF/fDhbnF9vaa37Uo/B3gaorzCWD/I5WfMXrfHqVxKzeBpV/ee2Gr4cB8g9O6kOPIMifvJpcG4+joxm+UOzn3z98/4s+GWEqO9Qr4eI+ubryBp1JbHjvv256WIeYJI2P5C1eAzjM8uxiP6Kkt36TsRnrLKcCUy2c7BMRcDTRq3WzmMoEhQapjzuxAio2dAcHypzQddFH+wifJSU2OWW3c0VdL4THRts0rOpT369vo52gzMUEP1MThpmamdRi/WBrrOka7i6OlQqmVVM7ECzlpCQs0HVMGOBbNUVduZU+mRfD0SZ47xxJWlzVrKSYGnBZLVar1qdPzXVRKPfzUbA3/dkwiatm9PikSfpRPA/kjK72bXwyUu7iciyr00KopXzvlstJmDigPMDJHPTrY2P0FTCZX175FQGTnlIwG3MRJh5E2AQbLcAjVSi73pRgyaYekjC5/nrPCKg6w8YXs+aXnkitIq8JaakhpPYEPe8iQUlJUUkWmpGAeiYDQpNc+2tPCHYEhzW7Yd0ihNdFGE1FRyrfiloySvHQsl5ZGzaF93dZ26jFbGG0ULNCD9rSVtsP58BrpNWas+8VgJAyUnofuX7RTIuysM5B6YS0Mq0nSmmnFXBO6PHHoVycxbpQqtZG27KfxccyryjV43hQTJME80S3gGaOPR3cdmQ9T5dXXvahhrlh4QJvP1Y7lYUeIYp9oPn+1EfQ2WkADQl1ABjgoGktIfYQzqUCbmlf9Jt3X4edB5Lmr6Y/Cn18XGaGIEIC6Q1NqMnKvyrjurUU9SZqIqPMrAtM7AOnrxIhKHt8WhvBZJxKWABVUXdITvHheOVCU9DNDAsVT61sq2BhlVjIw4384GSRqh9Bn62VgbeQWEliIdA6o3fBWq+qCvTLKPz8mflY17WbO12rrJmj3kglSFpbZxuQJwbo8MWvg4A5S0F6XhiltsU+fvyqzA4srZW4VadN3KzkTBNXk8jW1mkjnShnuDJNiPGZUMAUE2j8NAnpAGgmt1amhzqHNzB1vps+H6PUEOCJh65ibaIpYYrcmhKP87R1StBiq/p6fkqGWP35lTy082MVrp9eFUdhnQhZnoiSFMy26c9vnXl+Qn8gNTrykAgmlloqSNapzyUrutAqbNnegJj2OQ5xZ+O9rJRpotW2Fkopts+wDaprtdIvnFszL1/dzZSbNArqTz6rYOD7L5wVzlmtVqfWXpyrr3z+jp0rQU/fbnVZMjv/ZiqXUVlPO4BvWH2p83cffFOcD/BTTq8Ka8u66HH3I9JsplXVtnBbeSr4UAo7D9RoxQy6dRfz6QnK9833EJq8LiBvCT0cWjXpxR/hyWpHV2gs0L0xhy1hZmTkCrdJBbrQUNxn9flkFEamn4OXslpEXUTrw+mixvy6qlO//UwuxX86Z5r/9mLY4YpHplyJWqEXNC/gkilNqLpx6HsuuSbJCdE9SRNBw0Ag5jhUrdQoWAmfp1E5dc9WaYNkkbD4WdcrpXWmYKpTbVfrVruuVWWJxtcaOMuysqXzk9Y61jYYCt3tij7+W3L081/Wo6H98ekgLjWrKVmMbGQjxU4LrUtjLYdRa4KQ4qQOnlSQDGdSNgUq4pWFpMCpCwNNZjCMfAsZeasOUVLY/fHe4RbSKDoV6cV2kv98Mfbl0TwrT8OwZymhIT9wbS5UaaTpGxVwEEhrpTm3UhqckC0GQgHGrkCui050AmxAd/2rv1YWZHmSvJcpvfrmzDutXAidVsjp4v0OrLqVUWHu8VRmcy6YOZgD+Ftolv6qbNkU3dm2rF8vih8zredAULN2XWuAYB0LFhq9t8q6ujh7c+VsJM3sh2Zt1ImSTxbjhbbIY95oJ+esXE/q6of4nDwUqsqaY62cQuM2c4IAakcKwIj6E2DkuiAWYxAflYg3zqokXieEgkHkAEeGjWRF85/JD6URAedIREgynUOweRWkssN1KzISVnoqCRwSDaDlp34LpVq5gAur5ruVa21VD5sDnuiYy9xwICXKaVxt7NzYlUeJM8bXtJmpN3PY+6sxZ08vfX8EULRfata/wsdGaeBn+oe2TuZOz/XCNabcqnNiaVO8WgwJdAutZ7M5qUhVZ9YpcBoxf1xCc5DlcaKdKukQYug38SzWnfn57p+UZkmhLDnLQe5d4Tkp29lY9MYGILk2dt4SZjcWafx/OU1MytwYEIzysYCr8UT5219gT6KIYhPBIBPOyf7gTpJ3Rf3rV0Eoo67OQyZb0OXrecrCeHJJBCtRZfb6wl87pa4yKuo28sfY2vVSV0VRnhSd7bciAwnO03jZwhbyiRGSjU2pWiOKSggge39JkmnKQ0QIi7OA59J5TpKSm6ouhZZAK5Z2f+OTj2f7+Kzxvh/lZdq1td7ZneW6oOUWhqlha2TJzktLLnE15MOahWPhjIWKJalJU8diLgo7WbR1ywGyotmVetVuHAcvxpVO1fGNoZHAiVVYtfoQ+3WujgmaqAuQntiaVSN61x5d3TsWna2qxuGqseMSmJCdd877AO8eQE84ifNmWxGUP+G3WI/3fKpuaeUVlljieY4Euhq5Jpi6Cu1KiCBdC3yuKHTtJmKuS+UjpNOecPVFrX4yjWnLhW6dmTtlTnXrhena0tQz3/pU/8VtReLBaAGqVounap583O1Ls98Lp6yRWdu2P6uiEaStrnxmVyB+2LFwr6qZzJTXOpJ3MTPE1t0dqXVIwZX95256ThlZkPV6cLOnlbOmad9TPSeAfgaVp2O9rx95S2qTBoV2iMrATf61f9zzg/A+/Kos/lzDDMA11w8F74GJYVqXIly5H4SqJB2l+vWnvgly/FLIlEVbjqumhwKQgcAiIUROVSP5/zIMeHLN8/ZGt3mmLFX3sx66eEEQ2nw66Zef/pHUAK47Qjx8IqIhuLlDTrZYlJpMURz01M7+O+SVMhdiRxg4P7VeVUpV32N08qwwCLJWPtx+O4/32AJq9u0PZVcQJ2BbuVFFbXXFhQV+681VkQM5eFoihNT8/Pzw62R5r/vi9VP67ozFseq0/spZwn31lC4XLIQMurbZoCNR/nDrpzKW8nkF5pXUqUeRy+2cYKpumj3vpmR6PXhv+7dnr2KhnySxjYslVd/ExMTleSV8WxJmgNcmgJ8/itX/8OUAXgSyef9kV/C6hF1FSXx5/euY+GNP4qpwkgNG7t1k0t8d17UAxdp5uwN0XHhVG5+ztecOGhe8b2e6YS2fX1hkuozlhxTExFO+U8JKfm3d2s3L73cpmaWrOQHVrT2IsM6U3Y8oRTfv+czelC6aOrDV/IjnYuSOSKqFdgQDtJ14rstoTpVVQGou+U5YHa0bA729in5+6wK9qlnVquZTQ5fIi+Q9kx3L/5RjwLXJCEkLw2zMRjyXpwcjWBSWnWmDOfBDg0NfsMThfyHCn4eIRMAOyD4sY194IPghDe9d/CKtOhQZ8UGVFnCr4qmTwk1G9dVNiw0qhCsRmS1aBHiIUrj9tkDg/BI0Nnp5OAnN7lxFkU4NCQZO/kvS+YPGUkVhfLtdyBTD5ZZTzAtc0wxMcdkdJi7cefeCSN4tFCwGogvCgIU4YGXpFI4skYCCPoJiJSwLCw+00QhrkTUp1MKkEA2CRTQIQXkQfIUg+rtxQnazk/lz5tzvO+fMuWfPAMIgtoUMPz/h6Hzg94Xh7SeekSSpMuKMxz8suwoF6lOMdG9BJoYZgbQ8+X3F9uhz+/LveUUaDkHZprrz9yvR/yjT0XyoyIskbqmMj9wS1msGFZNpPn8ScnvIEdIwz6RQAuUanMWVgqD/L21fNQS+iHknXbJ93dDcBsH48D/trhpQII0Hkz1abFwC5wsxRJm/7dCvF91y/IQlqPoOZICLN+iUyKU6rpRpNo7rmfS+Ma4zG98NkB8pm5NIBbwAnibsJ1nQY7CRvJklGAlekziUG9fk6pfrZ6A7ksktVBziZ4pbQOSbRwN5F5z0yXoe2aiLACc/g02drAnVm1qZKJxp/eVZhGrgxa9PtATK68YFx61hT+Tjloamwgx1lol5HCTAgfMW1BCbQIoUrxuX/fmIubGsLH8LUw3arWXwcgGhmw3MloiF+UwCmDir254BmuT/wyC4p8ZkqqJtbbvR8FqNgtZGxXAQuXupu89neVe3EIKoitxCpP7nZBUpdg6Db/ApzcJeNo27UujKXc5swGfYNuiPELALZzNBtXfavXuFGEuuR3bbMJ2iW1R55obIihoUNCEgCbS60Yl4cBQFM4b1UA6Fx8Ffy7ZO9HoOF/BwFWwIYoUFlVRhuAVIg4D8h5srhfGJ4ZGW5EGVkHHi2Vrxi+1sALuUnHOt4u17EBn7Oej+/PQr4rzGYiQUPrxVZxyNHRADB1kRRUr0vBbD7/5M2qBPGZDguMpYuxgbOiKPAozZhdMS6svBu29/ZmIY36hoGVVeQXfbOKQInEWE62+hCnxpLzvbWed9HTXteWfbdqClA7JIGTboIWC3g9oAaLBK7K1wQjoQZnOyjQqv/4iImkhS2uTyl60osLqW26wYtpCLVAQXtfqCb0kuq03SmHlDuMtdaDhDFKIw3tBbwhrIHQBqM9ESy4IGeMRKkxR6EtLKhEeiqgS5uAApBfxHkln1iEwZAgzzXfLxEdUSpMbPBojN8eeQBT2iBXknuALun14HRJiYdFYcxoShjkCW7LUipsxldZB6MzJKZLrCPI60E0zldtKw9eZViw5jUnOKWElV/S16cBxBVeEOBHiopTW2dM7btz/sm6VFn1qHkI+rDAv+Q++ES8Or7wA//kq4n+vnYOfXi4jlWgvu7Fd33/oWQyKw009uAk7nlId0SlKgQ0396nHfDuZYlqFskLtV6u7YBE8y8CE4oLAEg7Gbx2oInGaFk1HQKQFSPrhI4XPM9yJiXiVAGmQqEdW9l/x2Q/Otvt86fv+v0zzSzO1HGUnWzRV7KxSGhcRK3YUK8g4OWgfjp6ct9eu4Jggp1198W0mTKi1G8pz63J7t8kqyjtkBLUuDulwghePuLiC9V5HZMEB3oFx+i9t0TrsLq097XzZO18Zbls3cDowLRCPSAuzqQutPTjkAFq9V3MQnAKYdmAopY4aXCDhMT7hynV9+a5PT0TGmE36r7nIeob4ab5VmUYrcUH6JwXSyxmVDjpwRmp6cK0PgweFRdV9jGeEcsIuJUKd8QGm9rmPzTzaB9cRAe8wzuzzlSncmeZVNzr76DBqufSKH9ZNHGApm83/1oj2Vj6xs5JIqF4n02Amt8wr9YHA4x1dnIynF+ss6i0c/1MGQdY4IgnDEj1Su2EgOdnQqoIWOESgV7CogOQNf2Dja3ArZPopOlyauQIGx1VnbQHRupW13ohrfnNTNw7q+OJwPAG2n7ZJsFekdvHHXrRUh859f3rYDeYkcG61kMxI7URXbazigOlW5Ue9cHJ2YNLogdhCNqvXwGI8o9CJy0z5Kn/n3X6nhRMA9+OcaMhG7x1WVlCJRRkZzW18NPeXgBHVAEb3aW+HilTmJRl5VHHSxvPj4SRbTZpybE/VeiTFtlmvCbCaP4xsgRX3DpHR2YvqFyFRe921iE4ZHcR2CcwrpcR4EK7D7Kq5UneWVALl2rSDdNeDJijSu4ionwzPWsZAssWR7dsp0920utCqIjbE6rNS8arDnrXfGaKfOOqeypnMnZ6UzXX1xtFqvBjb8b2N7kGpMh4/lDpSR3dwu8Ut9vOQ209jo6k88PIdqVMskUdfJDhssPBkKCJmQaeoFBB0J0hE4zpN0Z7yufpMd0mtR0b1lN1Xgn66mTvz8fmWMy/Im1nIiFAEfVpSoOOAiViJ6IVOdVcf0cd/KOjEiaErjvE6z6UpqQdnzTZt598y9BGhTmJfZdTnNPSp0xYVqP9sQqKp8Tnypp4nIo8O0ciAGEFJ28gIjnGo0E21y11Ojpgty1Brqb9VnP9xH2SpCwtSxSZPnUrNEgh2wF0s0zcXYSTl2tp40xf7Y1CPXzntft/3FguTi+nj1zsB3zpmrz5cGB6wNSlt0iTdOa3Cl1vKEGBACYeoEviZcttjC+K1942Fe1+NIFqgPzxJj/Qum0p7An3uzSTzaVptFxVhXVV7mcXPc5/7azIGLgIwKm1NLReLhRufpFvSa0U88ViktiGT37EzKe0coxj7yYlDVdMGW43rp3FrITT0Rg+xQ1NN36l9CI/iiiIs806OscovzVIscbMZftIIJDnN0mrp0WjYNjSTycWaqXIECbzqGxABpDNgL2Xylxefv1blJsywtp8ZwnnridHdotEU73q0foRxCnNqu8rrw5bpzs3F92V1+fHqxmbd123a/vPf4cPXK4wF45eC3L15WCbvO3HquycxCU1TBcPVKMrceEmGUKYdYoz01eu61FNKe/MwY62R5c0Gwp2RA0jSHI0U2fOXlrx/ezKaZ40IBxkFmWmeEwwWYbkJ3fKwW7ZvTdEjzq7zNb23hVzan1NMLJe+bYsoU0REljseX9WROkc1omvIMjpRqsOt0Omnj8cvZYspXOfdGq2J2rx5dJUVfFlOT2ann4cu+mKZbuy/FRegz78dFTcubicxofWOzwpX1uCyzxN18M7v6gfbI/qIcTyhApad/YX1pd8upt+PdsqB4zbNyt3QHFFiU56cHk9l8fP/w9eLgoJqtrg+7wwf20ePlYn58vjh6/ZXXzr8feNvzY/s/Wtc0ZeNvPzdrYxrtKsWPT0z9WCYhAHA0GY52QhibKeFqXKGx72ZVKKFFmVLBVQaa/s6GYXnu6UWe0/W5LL0Pzw6ZQAM/8bWHKtNiVmZ6GkfF9GD10/uFov9OsbdfPPR7ZRFl5bgoqKs3XzxVnE1vynJMh9EdOvfs8RAtvgb3cI/nZu199PXuS7P9RT0+PZg9XH1JfeNbi/3d3aPJlp3t7W0NxmMaML1R0sLON3VZlrOyLvdfv28G8UFJ3ww67ZSP3npr9mC22J893H9+f3Vw/+GDvfuz8sHug7w6+v6A55/NFsPftg7CMyPrDz74j6KzCV0ajOP4/1bQoYiOHf4dokvgoTSUoDTXEy0QXY58xC2xuVauPYuaUNJqFplrFdZE6jTJVkiv9M4Korf1otkbRhYRVIRdiqhDFPVLJugO234Pv2fb4fl+PpETFpDhVZCjYarJehT3k13DyrIqXj0i6rY+0G1b7CXODCZqNejWNc/gZr5pz7o9kMxbF4D7V2xdbNHjZ0tP/owtW/Du+4KZy1atOTl7MvBu07L5S2CT781ddu3GNIgqLwES6MkpM2sB2L9kNTQkKD/DMchaQ+afA28KUMPC4RpUGs5CjYBZri/5u3wGZLIi4WMgzuHuRXL7IYrEcVkY+2jE+pDVImGNpsGVBQu+qSQNllY1AgSjGRAzBDktEHBZi1YpmgK8sJzsqVH1aVuDkE0d3hIpako9kM1ODU22QQt3vEJTNCCPwBHXVumWBeiRFRf301YLOCQt8BL/T4tZHmWqLKV6TUr7f5SOlqTY7VHP7HiWFZyaDK5Qk2rvOO14W+2WaVMzWTs0s86MbNGUBzZnFxL2qFcupfJy4oFeSiTKE/DQv/HsxNNrtVrtWffenu6aTT/X7akBhD3Yvdu0wpALjoFMP/yM+9nkoovrK6FhIv99veEvZ1bF1gWnQVgDXFMQ95syZ3IlfeIM5NJpiP+ZkSzM13YzCZIfuHJVLWsh6v9Hm8KywY80S1t35DZQk0gnqWZXzVcdQSwIDYECfGiPMc+d0xiHYShN0LJOBw02brhzTn7ZIUTtYCdG2+eomZNRz5G8VYtnaoIDzLWpi7Lwa3JlUhCoN1fAK+A4JtGCoMml8DkwFWNHoJAGp9GQ004SgoVzjIGIhDEiDGku8khHZ3DHdmyd0usC0xEl9tqZezIjSghJtodXeM4Zr0LsPU/3E13iR7K9bJ23N5VOpMDgKoflfDo/ym+Z+FrjdtZuPP167VP3Wqt7Gyxqn9hYzLLqVlc9oXJqk8vCkmsQLmVbtAWz4ek18G63Fy3jOIvl9D/dZBQ6qd3qLgIGdjQJVJ+WpdKWptLaYjqworNi5pJ5gm6ZmsnNcjBCiJkbCi+YxgiGR1NpnGsLr4wkrNRcgRpIMbCPeWexVMIShkp90WSE+awhMTz1SpYwDDVvICmZjyvSlJW5uVnDXxFocS3BYCQ+eHP6daRJnwmSMM8g5pxhwDgFp0xOEoK1nNUwBCQxEvIRlgSGwYJE+L5ksHOmCY6AEy+QucaTUJqdUBMFdoFEsqivsA8/lwsMn0YNPpV+UNZHqsyjz0cT5X68tDelH938I79/6Z5B+sD2+y/uV/TC9oPbJ3T51evuQP/69bX8NGbJsm1a5kNVdBhWZllW/f+15WbQ5qa22Uhgoumc4Mykem1ZyJLvdekTM1QTpk1IVfcv/ALub4ZWbQEaA0FFzcEKjBZnQzMYiS0bfOkNwX7DV6RfCwesTyIkE/f7b/t9vGj5ZC63uj98/37fWN9fTW1Xhm4fCq/2h1XfXV9tFN1iVaoaPnbd8dgwhrmcK4U+HL2Slnz+4anP/pgReIQYzZB2GHhoGAZSqpLrY19RIs1vdxgizQxS7ph3swpPDNTPSIWq2/AdzA/7qymWFJVEQmm4ZxVkNGZEF81geL0qPtrebyT4cqpULKbiaSBABtbVC6l0KlPcmvLyW7fmgQDtlbYMXt+T7cPbtx+rHK7kwUkywVbkfKlUuvtq0Lt2YlY3L4urbFnUE2VdZGVGFnGZeNK9yVaqJBH2EIftvD4y9QtbTdb2aFosEGwKQq9DBNaBGYTiCEGHpElDUQ7+UoyGtvuY0Ug3lCJ0VmM89ok7ds8fdiuF+6VdmSekmKEmLFGkprKZ4b5dz7c9uewKyul9w33Pgf25ywWVp6GUlPrITRR2MZgMx/4QGz/48RDvf7m1hTIIGl1x3UL6fcPlUdWvwtZgMm4x7ipj+DO+9QJL42Fvsz8mtCukJdxQMn5aGQMzK0rcXc1ArZApxnfFixksZ11UJXQ9lMvsKsbXpkh6bxWcdMr6+KhIquXusUPxvepZWy+MHhy77206/KAkH95ROf67suMwMPTvP9ix49KBLRNyZd1gf+U4GG/El+fvdcVEftDT9VK8rETCQds201gviA9LW0UGJUayjFQzQUbYJOQrJWDHHqhYICBBMVksYIzwP47O93WGII7jnnngieQP4C/wCJESlhNqs+xliP1ey96p43DO1d25MzsPznCc7pA6ihyjNI7wRZ38iKwfd4OlwZEmEiv2EQ1TMjza3WbaB6/P7rvdmvm8crlErpUIfLI5GA5zm4HjRDjIecgYeh4aei2kiQiSo9zngKIspHrbwbLVsydpeFRKZBg8P1ZiQ4wxIRnBoRBDMPxc9oCHdC8Xykm/QThR0TQfJr4hZEYkIEG0fHKwKnCZH0RehP2HCOQgjyKi64cifjGIOOGR7wjHDsCpZODlEkcvAjIXsczS/b/HvUwLWQbAxR8x0dMfPF6F8TBuNbdkQOzSIrYpXnwMS/tet24NvC0Ft17e2XN+WHbZsnvZanln6Za2EDSu3suW8/cmZCvZRndQaaQOZwedxpZOqmg/LRZrpm2Wr+8f9c16urbNNNOJUaHgbike2TDz6Kq0zraRbss3WrXWcjf/i3PgDHO+4ziJlu8HXivh+BwNWwgCPQAMCENnv0FYL6RA2MnNQnJJJVcSWEziG59fvDOTYSSaAIDFtWRBhSTEVMKe14wIjIDA3Nj+bPNwWi1BuFCKKkSjpUeEgOvOt3wtuSVBooMQV7wQIUxaMfHAUCBfKSUEUQJxfVxFtIRtyuyjLNMyWhP1UtmagZFhw7XbyP46pG3ToKdyNjc4hMzI0ybo4V4Pej/mHdtekgZsilT7SNkslapXe22K7bbxMKNFmLotcfXyzjDuV+5pWYs2if+YkErdX7PnbqNx4VXn7qtPi7bYqS0L5w9Mu9YfFWy74Baztrm26BRtt2im7dFHNz0auUXdVvZILjl7Jdowa1rCcRP+5s3OMPAR0q84tEhMCOYszsxd7ZkoZiyTpw5lvSbAbMb6KZGSijAxhF4I8ifru//s+PE02cftquHu2iSpEpQbJQAzGCIiJV1/RuJSVTD3/TGuIr4Oaah8f0SFGquSi2cf+BRqYE1BCUVIMAxxLGIduFwQPTESQigRcM7R0g9vsyUIwIx1Z7Zs3wQ5pUIitXKWxeLk1CnFCmsrRAJbxpmM1QOGm8Ela+meGpu7nfuwRA82y2PmzlbbCse7vbjU1UKscvPy006+eaRz7+o9rXP6MfZwQid1/dzWwatXncf3n5+/8vhC2x1c+VQ0a4Vsdtxw3VSqbnXrZq2v1cQgqzPVqW0u9NcWRrmceWCf7ji7f7KbPmKhyFjQ9xwPRFYLEQTHGZKEZV4/IPE4woxjxWAzZljQjatmbg8VvyyJUPkvUjLJqhCcT6+XdclCj4ZMMbl0+rE4xsGQExmJd8JnDDgU7Lyntpj8Gl+1jHPZj5TQkMSdKlJJqs83ccK5GmMSej0DLpuwQIkokBpjIIL1ihOfcO82gDYyJ02e2XAvYx+Kf7xj2y5RZ96K7dCbG2BJQoHi3pgxTi0toDQaZRbHIRcRdUpxN65edenOeDyfGodaRHB1f/Ph/QftfKzFdpXu55OVoxsmZAcvr9ytpA51Pnz/+eFVw00VB68GN7Pug+tmIVu0vWyhZrtZUE9v1Q9roe08rVtP3fRac5XrHWzYRx4+qQ892LLA0Q0TTWRByNzknHk1BJkXN1k706QHw5gpFQpJSxhYNe/Xca7k5fAL+qLRUXmQCEGZfAfyX0JjwbzZnEopZ56aD0tYUcFDIfjyo5FVov2jBw64YRqlafhZcxhkldimlKJEyITiglAZU04gZITGhB3dt1/HJ1dy1lxBueD9gGzjfPvEIxiu2vdzx6W1vREiiCsuqWiZmV7/sy59CklBVNCBYWksk8+vtduZVFzo0RytK8mZMuOD7SqlaTu0vPbBsZ3thw+qlx+6VS11unUj+ePJ8wsnJnQOdzqdT/crh7tfH3e6nUZKf5g2upXB0xuV8eoAlIuW5bhvjrg7K4bjWcVXBWuta2br7pakaQDbbg8tiNrQQ49O77c8iHBtmv6bXGJgRkXJmbO812SUShpelmqbGEt5xkGGI30dfpGCS0kV0eMEh00pZLO2ID2DU02hu8NkrYueUlIqri6PcSbAtBlr9u5Je7GjhECU5vVd7P8RqYvFxV+Kzi60dTIO47sRRW/koOClXngneqFTNrzQ4ysTpwRfTTk5w3Uh+jaD1DrXGEli6rsgMWvX1CabB6IXB+MqjKx+xh6dH8zOru3W7Fjr6jrR4hA9chZBJ/VUwdeW3iTpR573/3+eX9J86H3CW22T2TiPiyEzaC9P+UQastwl0vGkjocLJWKmN8eeQCUz8/pnZwdomX/6iVkiKA5RCQPJ9tv/Lz+wGB/4snUWmGCsx4umqQWX2noYITKwIFiKTCsctjOnRicVQkVafYbtVtMa62r/HF3pHDx6MuJUCpXKq5XG+h9OwSm4JOhZVpWSz5w+QwkkwFjWJg+C/oJ4ridYLSU5hiBjALhscByPAo5GLQPhlm5APQpsPuo9HBu945qohH0zSj2WTDG+qZOaI73s6wzTbvu/mv6CPyBT/n/p/cGgP9TF0AQ+nze//5HMsfThOxKaOjN175A4JUnmNlECAnLT8dFHonSI5v2EbfaH3f6+T2YsDC9h1CK9TIXtMCLnIvEpP5zo4+JsSAyy5A/39dKTU6SLt0uX+o81TngAcbgs+Ux5aj9s6fiS7ofIbAM9HCAd+/uE4uR8IG4E5QjyilbnkdgeDntA18WFMvHQyLb9cCy2EgOKpqVrSq6qVl966eVOIV3tOJc7I42/fvjKOa40f2sWHK/gOJ771aeCffhqUq1BlVJtHqqiSgxaZFgWKAxWRBoABYAgr+g5UETYWFkDDADIKFuSjuWyfdWLP8HID03Tt+ZB3Nwbvfl8m4g2HMJZX86H7TIoDTLD1P2PD9pxuv3rY48NZOz/SsKJw8a2XvKl7f7SWbzxy0dPt/b3zz8tCvuPFfuD+UT3ZANGkW35OE1aeN8fEg5qW6GJQqak08binG32Jief4kHEYCLPhVJIapZk+xS5lulDpPdDUqt2HZagAZUAgYVsCm30iFXRMmhByQyLp54wqCxgHgeMNXp/JoDANBiJjY1TaLtPssv26X4UfX3HOGQrP7yrKKygup16TWV3FxNbaqVT3XGcxkjlqPLbz05D3XILHa9Ryyndr77Oubs5g1VUI/f2YlJQM6zCszSVTzDJUQViaAAWke9CVlmhiMl+wzPABJHsIyAHAWPAeJj3yyFm5Mj3lXAqOZ4l7WbH/X/qoUxikutC//uB/x3xriEJlPmMrpPPmsnADs4P48kFrsT8Wtpv3fbOpT5+YuzOZDh7uDDo9x5/7QVWztMB8qMQ9Ukd79MPIyukU/QQw5nVW+6ZWzanT1GTGBDU2eZnZxgT+6Xh8LZbxp/fGJ+MaPkSGoTA5oEpgrgEeIQzk0XEoNRsKAdUFC6NLyaWEgKILUIUc2wla3DngtqHycmEjzGaJjeJYRh7bYWiFFQ/6ZLm5XYJZ9Y0rbDV3FQdt3O5WWiOHFaP3LcbjaNOp1IoPPPIQeW3Vz6taKzn7nJQIFf4ve533qgJIsvbdiqR1Xg+QTHlfAYqDDu59gg5YComIjMyAR/4DAgDE3D9/8ktijDGiME6Tr8BQzMaEmzxn91ffuiUkTchsAZ6iYA9iWV9mN7fuHnOMmVSFv78Q0unGBxNbccnrkRhvnXN5MoG1qKov5+P7HIkkPKMkeiNz8vRUL/tydvMPNbygR9kr1mcYOdC4cXnotCP6yaeGnvQjzAzXupff/+ZcbInLq/LUYAomdfzZKwDEIYxKzZGIkDHJg0ZyQTiB39mQABk6UOa1A9L5YS931kIArLmVvncaiKRhKCcWTq9WKsR72Tr0y/t1lWn4TmFxqsfdLb+uHJYvVwYcX74odvsNMjEncPmwYU1z72Q85x1N9dwkmfWtmJ3nibtbqtGACBc3jMEyMs0oEUIDYpsb86tnL6aYXgmZSEmKovnlnQDk7pggMgFW0UMSgjbWDLPxglv6/YMlc2MFk0cWQu+HHL9dsknKTJI5XYoK+zzlhwPm++6RUQXkMU8K+0zRe+u70HABWLY96FGVsuK8kpg+2QAfTxx+GratABOA8uYFs06ZIMg6G3zAURm6/rxuxOA8RNvDRKTj1wfe03WeD8kQ4YReQd+NpKDsi2XE0zPDeFGUzI0M4hozhYkAbCsYrOsV62f+Xp1yWPdXZjR6ktL6x9fEObrcvXfjqdsrSYUbyW55zUKOZaod+QdNqo7P1QPj0a+avz1V8NxOsfe783C5YPfCoWmQ5h0K8cK0unlt5fOPEOzhkcLikBzdMYAigwyrHQxY6PMaqVy8cytK0YGxGERGLPiavZeyoh4hjb5YlGK0QbNFHWmyJjn5xBEkdgyi39qZqmFW+USAN6lklgaDh73w0807PvWxnTcxDNW2gwJkGMLB6XIiLAZ99/nbs5ay5KFZcuy5HI5bc2Hsh/6Gsq3y1g0Z2R7ldzTLgnTVp+ZwO2o3M88MZpkiIBhbEAAbvHDE1H0EyCbkUMRIOBbMpMKaAoiOwqYJUrbgJ7Np8vAkClo256m1VlP3Xnp5YNDNZkLoELG8MqLqmdrecWGmlLfffOf2t6Xv6k5Tq1UOoUtp1Otvvdt5+C4MfLU1nGhcXSw1XB2m+uVhldxCoWLz2wev62qyqZ34esHsqyr2m6NFSALCSgxtpgUv14Z5URBdf6+6TOWMwzx0yfOGbbQ++WDc5M06hUFaJR1I94SUow5ixiaiQMMmAgAPQXiqZIZMji0Qp4flgb7lwjBiz36VwzWuykCUhExXRlA38IUHsjtohWQuP0HjI6fkmeCci0j5NNykLYGv37e1ubMFT+I/DQ/c5H8x7qBNNMP20RyGc9TT56Xgd6WETNAQWbeFGekJ5JaOkhjOgQZP+SWgtP33ZpkVk7TJoeEBAtBUji9hwDL84ri2tXdgla561W3rthKxoMk6GsK69q2KiqKWqt3lZz35hWvo7hao5PcPHB2DiqNxns/dEa+/NRpFjqFI9UteMfrzUal6fzx81cvN8nGvHp47e0fPdIVLpzJ7BEzEWlKECTWoGnxqLMMocjRieUeLcDlU2dWRzIJg0uoVYJRWia5IIlFmo5BgIuoRIvgbBS77XGaS2FEnYVxIzupMyVcNsMQv7Pth+fJodbnANDqekRbTIhLKPTxAHxhyRl6XowCsLYs/H45FmmWRs6ZzKbbZRMQ2rLCmURXs7ApoxSCcWtetm0mgHrL99sz+cDEAIIJJjB4SBzIMs9lV0TLKkeRRS0D3pyn75taXgnGstL9E7xarkOlbp8oLA9tmVeVRC6nKqzq7QqszZIgV1noLQt2EKmbLz219uWeVlNqao4IX/e8uvPZe87mxa2dowbR85W3j/6HpU6nc0yErfz/dC+/sZXzuq7Aup0K627+fu7LPZVjDTYnsdyeYOxK1K5gS6IIuAwtSPRicnpsJIloYgeSyAnIMCTOgGBjjnDpNngLlc0AqCdIKjKgKPdMrjc2FTOl/n6RlCNZd3RqOTt381keYSDF9FDGfQzQgzGD93vTG2XLts0Z2/9FJeQH9h6i5u5AUcgjy2fMgU8MGut8BHAvjsOgFQAzBAhzhMJ1HOEeVaSBOM0ZcR2XQfzu1YTOl7lxQEuYQRBO/31jDU2wLXru5qTt8XbGeJyhFBEuSRLbzSnCbs5T9tSaKkDCRFpNVWuru3TyhqWtbnKv7qmK23E3VXdmPVd3lB3nzcrhzhXCn39UCsfHfxUaTq7gVEgqdTzn4OJ6xXXXGz+7pMKzieZ7Wxe7qksM1RM4apf7n5Ho5J4hKpQokuTP/PPue0tJUaQ5cYKmIQQ0cQAbJjSGnmXA2Wf5EADAi+UWyPBlk6z+xOUrxDSj/VIJ4+L9LT2xPBcbE4sJxPMWIpuSYV+/fvL+e58leJICJo97PI5o05BteuPUytzNDOYZhCNTDjEAvcWpeBkgRk9FCBRxGZYWjM2svs0DCLXM9PliKzLJzs4WE3scZFNxg4kjGyG6J1Gz0tOGDuj4Nn16cU3K8HsCZ0s6bbIKlWBt1f35mVccj7VrqgY5lstVd4GyZytfZzfXvvylptXqVffCz1tudcc9qnZOapernc7OybffjhSazWPHqVQIyLsV57fmT283G181d/9wiaK5rirkct3KH26uu9fNJfYIce26yVxOkCgpQ37URo9WJUr9YF3KMFQSQoFviZwEiM4UieXe2kPnsWmi/zq6utfmqTjsnYKCIP4BKog3gohfTASZViJMOZqSslVYDMf1rJjYVT1EbFw0VTPfplLbZAyD4jBugxfrB1O7Ub3Y0jVL25kJmWWpTlkZ0rI5GJv46oW/mautDW15+D3P8/tqz84X0yxXfislLSxMfCuyLJMX8/+89zu67cG3fvTYQT7RzVqJ2FvWxLKU55mdwcTPn90SdB/LQE2S9rg4J0+U2ZnKe/jJkQnrmXsLPGulYryXZzNsbOyWsdsiOFIhU5bLZZ4yO+UIl7fTLFA8xcnZouxx+cwyk2GnaYrW3yoDeyKZ6nRe1FmZx2XtrRQ/Yf1bJgWWpmKcAhIhVlAB8LzvheLKpig4IkQoqhgJpVLJfdv8caF1ugsHCRl283xruPe1+2r71aarPF9y909dd3W/dFlvXkJ6cuLXzH2zVq2utYaNYeusVHU6W6eA6gbpGJ2OLHc3Hr/VMAJBQKJssBhjbm0TdU5liug0RCVHOjKrT+jChC5Oy0uPPLqA2T+28yksgw1x09NJ/E4ie9tiis+X89wDhd9T+dHCbXn0OZTPs7+8kmKptj3Iw+XRZUbj//rhQ47nI6QjPiNn9RRTx+my20Ne/BUutjzBQyWcRzw/9uB8YpIrMJjj4jijy4zMJkYKV6yBF9dYeUlcjLQkx1mjkVxmVH2HjdGY9ICYobHnJzCfj5eX88mMQmUZ7SQqy9DUT8NH0DkB3Glj7ighHSkxZLC6MAtRmjNys180Kyz69Tdnu/n8tnvuvt0PlVlXcN1mM3S3DsPzPtRHZ63W/lnVPCmdnFWHtjGstfaHG9XWfqsFWDogInatapiG0Ak2gne6oi0rmOtgA8viwk+PboJR6VgQBVogHNJTXK6wQHPT0w9uFOfvqUNhN/3FzlsxaX4CswLeX//6YXn6UswSdmHwczxBvlyGgvCLP1NlsA7MLUPD5z1I85n84OqUBmMInY+XPWjyC+xUXE9HKD4zxWcYvgxzIY7hmUSmnGw9/R2HsskdntesGRnzRCZOwU3C/OjnmOUjimYWk94T19L1K9fdsMDJahSTX9UR52VlXpTTbJThCFR7mBOp/mcmNdAG+Z+1LBUkdLpxcXF/UxQdx3AqjiNjA2r13Cywv+kIzdy2G7Zdv+lCbIa52Wuu27v2lev/e753Xatl1k4aJtiQAX+GTs2vra2t1EzTcFq20lIaR4ptt7pVI6d+v2t0bBvg62AVHEcim98HFNOOQCGZikHTRADGNCf0inD1sPsCma2kpifQDvq2kCBIj+ntxk+4vBxpb/3zTeXnQcr7pHLZmxykoJ0eA1Z6l6O2ged5muZ9OwDi1cmVJwv8c/fdMhnPYTmJMzyIHp/ZyfBwb2GRYbRkOkW1OighwycjMhPVrSSfiPMkPpb0QA8K8UXYYr3rIYaSG5ZgMoNkHUKRo5yX/xOBsHgUyQiYgaTAyCBvbGA99ECd8hK3ND+nSO03DnFgO44NpK80K0JuFkSzsp3LuZee7jQdv/dv6PbC7Vfhpo2z871rq+319etMs3Ri1oDoGy3T9+2ufWj0Gq3L5ogJr9UxhFoJXlF4SRWFU4BTFI2ubQR3jrBC7+mQcJIE+imKSk4XNm99XBJirwc4JjzzERE4muJSXIXG8tPvI5jCiNHEF/kUfeAziMPkWzDY2TG8lMcN2GWZcqyXHZvx/kfT036GkVCs7EXleBSRh7NXZIbleZ1PFiSe9/gkn9EyzKts2SunkwBqPYHiqH7bk4tMXMe0/s4jBTrZhXlB2trsXn/HC+OTtz6peY++WT1nZYJUhAlAiiNw1jrHq5UyViknLBCdwrvPL5AM1RBNhB/gTkVUbYEoCmRLgiIIQHpBvGoI9nYTRm9+qeRvKaFd3Q9dSD9LrePQL/XCXnjdhdlqDPu1faiR3LB0stao1fxW7aS1tmv7kNo7OcfMmc7RShfKA2C/6CiA35o1/5PBVRVRhenIY5LCOnJ3d61xep+qN2cVFqrSicoEx8bKepRI7BTqdBqjMuSkqczg/ZQGsOV57jIePZBKRC2EuNvgWLExz+OBcswgrw0yGo30CUbGcSerUz3NoKQ1k+QI0tJaBMFF4x6TfuIzGLanURIREijpqM7Q+iNLxStxLmYxSY15P7pl3iIoO8po6ocfCkjGMstzESXFehRpEVGpVedkhGVMY5kkQwfML9cwxTxeGZG6uGtUFMX+v30JcFbgyq0YAQCbc0olxS+5ru8fbh1W3cbQCM/X9859f++4f91F3z9Z8/c3Su226YIzHW75Yc0Pj4aHc7brD4VtwLSpnC11KpdeZwpCR2kI4YtVZIgGy3HTazjxWCAr02Jhv3v10Y6BxYAKLCsoSBfLPMt+w5ZnBaxGxURhqR5pqYzncel03ou0uOdRT+NFNIuoOmLFE7elBoy3BF+RfELz0kmEAKZLrFRkqSoj8+ouqRfgtL8IJcjksxkGboKpuwbbCRGpk6xVeCg+KDy05kuapo7NT1nZkQLsv46QxGKcAfUlKiZFWaW4CL8z8BQiSYTpAgkKKhFpN0EjC3NIIhHGKpQvQbWjKHPju4Cm3V35XuysgMzNqhtGp+qY5qENoLiu2w9/cPx26YO9MDy4dnxyfNw/uK7XOz6pXhyXDsJqC0Bvn+2ehW7of/ruwRb0UXyz6TuHTvcPBXJawzCVGphUSeiaAs6JAlgTG351HIjUkbfEr7/7kAZ1sQKYCoooiAVKxTrlRJJCHayrwaT106gGjGZgryOj5T1M47wsF4BvECLFax/2CMTelTseGL3nLsbLRNQ6jVQLkXqSISDAMkLSs/HJW567KaFa2SopANefmAI840neSxdVNUpzDCzLfGdakXXPfOJubX541Xqs9vLN5zOwF4KRNIdk+Z1T2brxvnfeuWmNEkLxpVoZmAtUlZJcBDzBiQgnVho/OIJo4mKjlwiMrTvHx19SlI4DTTdXqVZr5srcHHQ4wzO33Wq3++0eROJhrd2+9u+/H/x7Xb9/0O5flA56/a8v+uHB3g8l33fCvg91fj/sl/ymoPhOM2zOdpuOAk4nQilf2w/sZkXpwMp4qtMFXHNsTqEKpFVUkSafkg2F46jCEpubpnkd18dveUGmcr0nTcJ6iMa87mkUJqIeU6BqIIoAmS4LX4WclikWbst2UeJGeG7qOSxEPKPaUiQRdXF0/rnEVie9MHI6+bC6GLXjxXiBiSeTySnmyxly91NZxorX41OfWZY0lZZHa3tdBoI72H3jKzKjwYH+hXkrJ9tIDdFT7xiCI82BjlIdoY4cGGAJGEtyN8cB27EeNL47NLA9NHofntTguXFBCFTByfm50rZZCvvDtdrQNn3z2O+1XcDUdcODv9f39laPe+BHF+3+wWr7oN9utyBA/dAPD0qlEGIZMn74F2TWCZuXAjI7G4JBKUZg1xRbtEFcEh1pHCsQt7IBKVMHdy7zq8d2R+btS9OP6UeWyMd28FPFgExe0SmurmNuoGXSg6QseoFWvP6OYkbiRI5IWEUUpZOFUvfN+za/f2fESliaVlwiKonUCC9a1u2wXvokkgr1K9/ZYwFSI2v8WZj8MzNJA0aD0ta5xaDRBS0OK0jJpFogiY5Ig4ipq12EPG9A8MjVIshnBxH5zZ/GH1t6KQH8l3HEwWNG1zJw/SdVRbJVxMAWMGXbgJ46+GzNdoyVtaWwZuaaDhhRzlSqZ9+tf/ipaYZhqdf2+3vu6t5qu3Sw5w8PANTrasP+RWPr5KLXag23Tvthu3dZLoUHPdc1jzbDvtmqNYazTUi0Stth6EA3Dy7HMZWuUnvt6yoYnsBWBFtRKDSr4bNtdndf6HY2troCl5MBLDbYDI4aSxj4qnKZvManx4oPJPMZip8iu48XDRypChCtvMNF2gyj1hsff7wkEbmM4RfV4/MSASOK0g98rxLymKRK0u4fH8hEVbvWaiAXCWSk6fpiRIgMthKPJCZJJDJHkKRaUbqerQdddYFIo+Bz8XO8Va0m6jjYuLr/08pSYHQwFnWRAm5wVcfXGoZ49WhrVxAgLqpsd/y0ZjRKwM3W/upX/YpfdUIw9VwJYOwfH7Rabumk1O6trrbD9t56rbTa2y+dfLC+/h9wCv8leq5oJgAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nif (value < -3) {\\n\\tvalue = -3;\\n} else if (value > 3) {\\n\\tvalue = 3;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/rainfall_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_control.json b/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_control.json index d41a09e0ad..4b3e36265e 100644 --- a/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_control.json +++ b/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_control.json @@ -2,7 +2,7 @@ "fqn": "gpio_widgets.raspberry_pi_gpio_control", "name": "Raspberry Pi GPIO Control", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gpio_widgets.raspberry_pi_gpio_control.png", "description": "Allows to display the state of the GPIO for the target Raspberry Pi device using the latest attribute values. You should set the label of the selected data key to the GPIO PIN (e.g., '1') and use boolean values for the widget to display the data.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_panel.json b/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_panel.json index 1bbe2482f2..7976af8351 100644 --- a/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_panel.json +++ b/application/src/main/data/json/system/widget_types/raspberry_pi_gpio_panel.json @@ -2,7 +2,7 @@ "fqn": "gpio_widgets.raspberry_pi_gpio_panel", "name": "Raspberry Pi GPIO Panel", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gpio_widgets.raspberry_pi_gpio_panel.png", "description": "Allows to change the state of the GPIO for Raspberry Pi devices using RPC commands. Requires handling of the RPC commands in the device firmware. Uses 'getGpioStatus' and 'setGpioStatus' RPC calls", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/rectangle_tank.json b/application/src/main/data/json/system/widget_types/rectangle_tank.json index ad2c567168..840c467762 100644 --- a/application/src/main/data/json/system/widget_types/rectangle_tank.json +++ b/application/src/main/data/json/system/widget_types/rectangle_tank.json @@ -2,7 +2,7 @@ "fqn": "rectangle_tank", "name": "Rectangle tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/rectangle_tank.png", "description": "Widget indicates the level of liquid in Rectangle tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/round_switch.json b/application/src/main/data/json/system/widget_types/round_switch.json index 9a29d0150d..0d87598a1d 100644 --- a/application/src/main/data/json/system/widget_types/round_switch.json +++ b/application/src/main/data/json/system/widget_types/round_switch.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.round_switch", "name": "Round switch", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.round_switch.png", "description": "Sends the RPC call to the device when the user toggles the switch. Appearance settings will enable you to configure how to fetch the initial value of the switch.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/route_map___google.json b/application/src/main/data/json/system/widget_types/route_map___google.json index 504464592e..70e511d0f9 100644 --- a/application/src/main/data/json/system/widget_types/route_map___google.json +++ b/application/src/main/data/json/system/widget_types/route_map___google.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.route_map", "name": "Route Map - Google", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEXw8PD3+Pn99/D+/f3v7+/s7O3////7V1fr6+zu7u7q6ur29/jw8vP29vfx8fL09fb3kALz8/Tp6eny8/T7/Pzw8fLv8PH09PXn5+j19fb6+vvx8vP8/f3s7e7z9PX5+frn6Onl5ufz8vL4+Pjo6evm5+fl5eYrKyvp6uzs7u5ChfTr7O3t7/Dt7vDj5OZ5kJz19PTn5+rf4OHi4+Xh4uPqQzX99ezl5un5+Pb98uP87+D79Or68ebV19j99u7Nz9D99Om/w8StsrTg4uTQ0tPDxsjc3uH8+PLp6+3b3N00qFP7+PT49O/7vAX59vP79u/S1NXKzM38eXnz7+2rrq/X2tz87dv2wsJbW1y1ury8vsC5vL6fpaf8kZH8c3P7YmLP1tqOjo7++vmlqKr9mpr7jIz7f39FRUX98uW1uLn80pj7W1vs6enI0NT7zMr6trb2raz9p6eAgYH6aGj7XV0wMDD3kwlalfb38O7X7t7869b50dGyvcOms7uxtbamq645ODgZGBgBAQHa6P364+L33N381tacn6D7bW36tlr5qTv4pTHGysz9xsb1vbu91Pr+9/fX3eDBy8/8vrz7sbCTk5P0jIr7wnT3+v/95+fz19i5wsasuL6Nnqf8hITuYFX15ea7xsyUpKz7q6v1nJrwgXhubm7t8/3W5PyEr/hnnfb83dyfr7ecq7P3qKeEmaTsU0b3mRipx/lhmfZPjvVIifX+9PT/8PDv7ent2dqZqbKjpKWAlJ6XmZrrSTv4oir8whrl7v3x6uH84b39367516n0paH9n5/2lJX6xXz6wG8gICC0z/uOtvh5qPb66ur989j0ycrulZH0hIJOTk73r0v8yz0NDQ3w9v7L3fr27+iPl5v93oL4t2ftbWb60Vebvvdvovfo6+387cHiu73TrK371aHbm5z54pr4wHHseXH51m2JZWX6olSkw/bpyMjvr7D3y5D1yYvs1dbn1NW54MWwi4vchIVme4VduXVzWlq4sLGsj5Dcjo+jfn7yX1+bL6YJAAA310lEQVR42oyZW2/jRBSA5+AZNJfOWLbrWxznnipRkoqmK5V7aekWEAhYaUEC9gXxAhI/APEAj7zwl3jhZ8Cf4czYju1sC3zadds42ZzP55LjLXl1UC6mV6t1nCqoWXmWqYaKgBDCJaNEMIHfMklquCA1oSQHOHNfZoo0pMBhRmqEUEXhISIBAE0qjP8fRNvNarH4sEzik5OTVew3FGTNOTOnrxIvKUaNwvyTt99+HUWGHrIIoGLkwsO/lLlIQnsgiKSkRmbuFHXfB8QBhtRoKFVEahjT/s5DzBoA1P8UKS92ycmB7c5vGHEHG5IBxv/66x9/8MEHr7z1xtvvvvLWp1AqDykNVOSNCGHuEFIUoXiQbRYqEW5NNjlxqINIDjQNDiI0rVKeSwA42Po9RkFQmK7cAjVa4sUhIVRyx4wAfPr2m9+/cuC9tyFxqZ8JqFDuOrYimSCuyjBBDSyj7Xmo81A0JyOIIp/UUGEqkUHWFQn8mjSdzZKX0iRRpMNZiY8lm2iUUFGnhLzx3ruvvPFmT2RUeojmUGNciE1BMScl7bUlDVSSRoSu6+DStCrEs4mCPE5baQKbU9eEtqKbkotqjRjjr+Vqk3SEh822JzLJtr5WYIl5BbHBv/tlK/Lum6AW7opNoCYiXZgweMxID+FMbZplAFUZBZoQvlzyTAEoqhtlJikkyjVh5CZJReE7aoeuCbWHctMTWYygIWlFkDdeaXkb4KoaW1CT9kUkcSJ9pDuEYaya5xsw8TYCbXt6xFMqGEcYkyUUkYesE9uA/W6fkT74kBhbkVVPZBX/D5G/cliNPST0waEE7Ym4n0JiOZwQoeQSYYDoptur3M9BM2lhTAhBOAddNmPreP5GpE+aUnPqx0Wy6ImUO2jIeyLfd0R+MrBO3dgqapGMkyOaRpchX1NKCcVc7HwFIwrtTNWJAsQkhqEkb1sqhc1hbCnSH1uG9JlFxaDQ4Gc9kW0JB1qRI34SECceYmjTI0vyCFKy0CKNv3IKW7AY51okI3Bd0IfSAriHjDOXsH8VSQFSvdMAi5MeUv23yGcMRu6KaQY1oSA1S8Zk0QlqCypdh1IDcLCsweKeURZx0nZYS1lmyYWHDM9Ud/4+WFqBFUk0wCbpd3sKDawVOYKBct0+CKGGNSL8/HIaK9IiAJExtCJtEqKR+ynvFqScTM6vplnqWSZRI40YQ0yRzl4WCXSMInTdE8FkNxSPiXwSKpi4QZ9Bhc5YNWInGZlopUgHDQCbwCpoQLaq7Xaj2tanbDW93N/vLxe7AIZeBUu6CUvhgUJE1ciJxKu+SAINETXHIu++9+aXX/4lwxw2c3fFXGx+MllmTLDs8nJKCUER7bS4C3BtGA/tla2uUeKDhfDJRPjArZaicvpkvz9f7KI5KnSI152EzcChSR8FRWpFioueyG7TisQ+syK1wM8/v/nXn3/++WOIRLBzg54VAEGWhVk2WUqxmzKXbKXcFsUvuev2JNK7xGY4cXmOwBIkETqMJN8KLhdJoAfeA7wmm8gfF9Ew8uc2L9P+2FpBQ0p9YUXeRIkvKwXOmKCUYcYL0Ywtu3bQSRK6PDhSldYDWPAwdJ8FhwPkbcr9hVzHVuFRIOvuv4+JaB8IgNpEvdK6gAPEp1bkTyGcQ/upx6nyF27Qs/ptZLFWGP4RLGRbvoGm0ZmLfgdB6cf3C1gWjysM5oOXxlYMFcmxCIyA2kaMeyJXXRFjRSgNckpJB8lSyJpty1R7oiSGHDDVURilqhEtC4BUbuMdZ/FJHsy/efrUv/3iQQX9mmFSCjk4jK3o0A2PdHvgETtGemMrnkJaEMoZG4Hvx1YEkBnBoXI+KQ0llHDOAli4N5rW/y5dZr0GzN1bUIWsUcaEoV1ASKDn2vy2Bfjqh3O4/bxncDrWASqEDgok95BNd2wFj4nMnMgJ74mcA6+JaLxuRFRR+BogkjUFbLSHXPh1zfa3LdcubBrp/IShAxdkls/H82g+e/aM/bEH0Hc373z0tdeQG+wm68AYPpszKqEwHpJ0t634cRHjWu6kyzmwhPEOBBpGjHGJuWKSx7AzzbZlyDFCmyf39/dTPTKzVOsxEjy9G9/c7sXNb9fPMI1P3rm5hulwONABCS8vQ8FCLtCCiZlAgKlUeEggAYlbkY5XO8zM0IqoSU9kaivqWETlQSz4Ya1jBYWibMZWQTrQkk/ev9/v35+U8fzZk/HYvPPktf34m8+fX87vvnln//Wvt3e3Oayv70Y6ikULY+4L0U6kGGnuIap7k5iAQ5E+CmanGpDJUUaUP+IdbGzCBGkaVRZyelamAuqxtQEIGoGzS8zD/nwlmo/md/bj8f76149+GX/H9rd3Z3fPs7vPP08vNRUkJuJBFLEiUQGu20/PbIjEwQxUvDR/i4ETCXsiV0r5fk8k8AHalZXLVCvFoB5bUwXFavr+/h4VpjzJx14H+XSsv7h+/sU3v7wQ+x/2bJ8FOp3PZ508iGM0tQefAnNNmB1uEsVaNXGYo20rmmt7btMTuVAQjR7uESKZ4OexUjqQCi6q+TgN95fTVemWi2PSF/tk8fyb1fnd5SFqYra09QhfcjICyYHBLvYQbutJcyZi336TpvqlJjEQ6DwHwFcc3exS/pCIpjKUk2mGRy64X4+tgRl7j3L69df7LSIcIQttsIVyF90OjnDKnQLvJYdSqqC5U6AlINJXfhDNmk+T4CWReWBnQm+R/7B4UEQTLhE7syiPVRDArvAeZxxQfGa8tQjKXZDSiZhIKcPCyYpLEgSpQDjv5gRD8wHWyp94SLEChNNuJR0PSpQc2EeLZVdknUDUF8GRRRhKMEErWKFSAye7xxyMsUUoQ15yvpVUiErEzlcbp1JKTH27y0Umz1kYToyw8CWrRWZ2VVZnHqIzQBjrJuD4VizXMzd//d7aGH8Iqi/CaeGDMpKXohaJlU/BX/XLaP5a9bksbc5EdZeb2xgaETxhMyJQRIcBXh18UqSzMtKaZZLrYCkxN7QqnyCGbGBL142t3oYUGNInVcQzgCzi3thCtZHgFinDxaRZcfBLQgUVgkmmIgYqa/ej3PBlJqu9knISCHG4eIZjd4Scu0/uFCWY0X6Az3MX3+hcIzFuOPPXlmHGq1cGoCkstFuCXCmhyeMEYDxjo1xte91uRQpUCMNNUviKQEMgXJegHzoCZEMnMWNZFnZWY+ZjtO2ap6VgIZoU2K+hxlN8IkwqUNi95LV8JpiQSy6YXNLmUQNQQumacBXXpfQ4BoLha7mdv2XHY3cOODC28UhDBam/UYYzJ4FBs5RpWLn5y5nKSXfz5Qqpf84BAHucR2ykkHVkRTghWhzWs3ApFehlxqngLk/uUQAGMfUQsXXvTf6FBHLQNnHbiWuOuNwkFxdXJ9DHrTg6EujADv2uaQClSz2LABIpOv97oJBZe5ctQqmViZyIZFxxRkjhalBUGaSRjkLavL4qokAJPXJNaDgga/JvKAVjK6KyBV9NlqsyOVHQMBg0IpLzMjaYoZge0JGBJHJvNAIoQkpLhvniEjuhzYhrkjgMlIrXOtXahchYXUDiocKfVU0iqBkpN3/1AhD67yJgBgYsWkGfwdAbegPkdEik5OAoKMLCTFIyzykULvVBDKBcwVVnmYwVFlsFta/ilKEfqiXE0TQ6fbCD6zkhpYHJ0C1B1f3QY9hq15AMKXQZjzH0U/zrLdKPht7pqffkI8IakRTb9uxsGnKMgDUfvXN70rBZQC2czqNwZzAeLheymvkhwkgfKiqlGnMI1Aha+YQCNuP+7xb6UMYXk8lisyl9AOIR1dGw65HnKfvn2eXN5v6Xb764PbNXp/pPGy6zbGLHVnY5GjHA1FtsQ5dhnY8wn+uydLfr3GBItjc4JfJYhNtzrcgsPc4IvgS2qdvmgqOxRQVmOJuGZTI6BE/c/G3b4tr79Zm+8a5fPLn8/OkXP9ze3HzFMSgptIqq/aRO/AiogqtTzPx9AgA8ZLSUdgjPclMSJyIJl5QKphmpRQRrRY4ykvZzhXAJcewhzA2b+hwPJ1kmS+NDn2SA87dl+Fz/9tX+xtu/eHF1s7p552vf+31hRWQZCS5Iiw9FCslcPn3+TAEApgIdbbZDLkLeZMTGT1NR/1KUZllb2ZUIbUR0p0mqmMNQB8xDjKhupmR2FW62kYKHiOf6IBJgbE+ff/P7i6/mt1/8HbwYXg+ub7HlCcGAFEA3t4JpEwG889tvT98HhGBG2toVrnaa3yuaNsQJPYgw2oogxyJUCh5VtZtzQBLiK3gckw9GoCHaqVI/UQs//vbm9MWz0+e/fO7ZD4nhKXa+rSRhy5TK8B++zSxEcioKwznm3pjFmzJJJZVUpfauspvqbqp7hh61HfcVh9FxXNod9xX3FlFQe5hRx40BN/RBBMEXQfDFBREfxHUexA0fBB/EBUFxAx8U1HNuUlVJp/WHyXRXuir363PPuefce7qHohlmogJKbrZedkGDqvmCN5uT3ztJl9OozsejXQdijQDDft/l6GwzVCT2ZBIq42+nAv8nxSnbpUUWtKIACDjeeqJ6nK9Wm2ocVzFTmZlaaNEp2ixY9nQPpw0bL3uc4E459qhZQFnoH1JsHD6NMQi9KXWu+sSl2cRJGOeQ4lNBSHkn/mfXoEW5Qyzjr1OCoiwLLOEFRiBmFdVR6v6YtllGK1SbEHHw8XygRYfXSitsmx0bTZ4VZxS40SDn9wHFZUxGGaltTDP5IXktHsSxBAy5KWPmUVph9B1AENP2As6ZBbqQR6IWgTgwVmQzA61Je1WRLmX7XK1EG6FysWlUASs1vx66yjrhcCGjOTfhqBPHuGmAMV5s5khvI4mBdjQ5o4mbgvRKnm3oMwrlEShzSCADh0ACAFFqDDuOEENB67WNAEYj8moBx3tKWZRgA/HGuEihARuzJWU8phlTl1NcAPgXfPkwTFsEYiTxvZ4uBUwSMTN/0psmJwwNiBDMllHEYPLwbtOmPn6qF42qhorP+80k27JAIKjtRESgxtVuJHzbc0Ym8D0EbTYbMFZ3eXl56bDDrj4UWCkH4jegkobFqc2bN6ODJDXnwydcc5llWLQiymVGd91eHzXuhHDZ2AR0pbI/EJzmks+pUrQBIgzZfNb3Go1IJAgNf256S/j6OTddeMZtFz+ilvmgI5pl9NqmiBzf9z0BOVGWVBJVD0gCu2WO2La0tHQA6lSwGwtZEM9IU2m+aVHP7FXOLd5z1GSnaOQcYThpEMi8TFfdFAC2SdFcFxV8lQKEXbEgRbDnTm61fz/nJUQ4MNHF5O9dnE/DjlJzSgKKEgzAGsY1QG1HUxww1kngeQM/A1KaFs7ITbN7lTA4ZeuO6ex+LA95+iMum1gETWUyhWHU4zIf9p0ALcgCR4zGglbQt2x5/ePHL78SEbJ6WhW64WGeB/+liFsIklS7px6Q06Elu1bPgFjtNlMKAmjfveOa84BICZG7If2C07XRZOQpsng/br7mMQxONaG7fIbnEbxgbjrsy4mECEXdoCrSiRgUZVWcjk0BNQK7vAHIkdst5g0yIMBZPnelTSldQP3u+R2nyxVI5iMJQLttphZhuiv9vmUhqsspYOYR6tO9/u+PvnTFRdcVAS4+4/LHr8D/n1cVueb6BYqSk5kddtWhcRyaAzl6OxilmSyInUVotXSmGCEtXjvOPMYDlisYdKcxRXagQl2eKbh04YMMQqk2y6faBSvg2KUeuPnmx2/YPbT59C/44oVqx6P3sHT4olJxnJpn2/my3etGpSLINmBiKgsyOgMPQ/RNJr1ADwP6rRx1FrREdvPPaDSmQ9NEi9mVQEJkEQ6a01tFhFQv7tnz3HM7t2u8yhcGszWv9jO+eJEqy1jQBYCVL7BEszvCsRzRJcN1cyBLyxBEC1kfkW6MMo3J/ArraJFNb1wGU04GhJlBg2YXeTNfb4V+grDhRLrw8RvU1atWVlae0Fa2VkHqDrxzhnpCnPQvFHa0tKOqwxFT5FS9AsiRR0DNGcxOQESS6OU9xdUBjj/3lBPl0bktixWDI0O7FeqG37AgE1PDdvifCFdefuNdu4fBYKEVr87EKFXTkp2msrrvvsufru7SiARLV7XsVGkDSmha5Kiaqq0aWjQsY5lqR5ZdlvH3pBzJEVCxg5NzIEVxBLEW64s9OdxWm4Qm8x0xQZgdYC/BM+jO/4nwEUbicOHkOSJXV1m12YR4RdFeeOKQ+7XzVtd+fOXbtV37oyY0o3vP/KLqLN5yPxfNa+5visWV8v5da+fHw5W1e3vVCtiqXwRZ6gqlMZWfWkW1KW285rI3fSBWP/AbEwRaFsLrnzkHI9KBGyPc8Nwwqg1c9IVRpYEgpqZpanyVoa18FlbdQ8rqj39rH61pGkDT2XWZol1yv9u96oXmmU80xSlXadqaoar3btX6++MUpLiQgGFtyTl7UeZmAY3TZ6HZFDCWcPw5szWFCM9fuBHCrc+SFWrGQpusULEgIy9e3YXqaARyfFPM7/e1V3fv3r1WBQmiRfEX5ah8yv5uAhLHa0a3vz8S4qpFAbVyIf6iTkKQ+Vn/IH8wnwu/pDR+9TdTxRMce/di1S2lDYHTofs/CO89dtdOmy+0W/qcLV0orxKPVzlaJJYWOb1rq6d/dsgf+x7fsyZSEMdZixWH7RITkOqOtc9QZ3XBqRbjL5lEieY2bcLWZl+BXApiLrQ3bZ5sYRxz2Y5j1Om+zubq/4tw37ZaHa0wmJtMJOjighAdetJJh8pc12i5CEIPKicgohxrzR9/3JeCDHdpdnlX3BGLh4hjLxmBNBfv1Sg6OJbTLcRf0nbbAUs+U0lTEKa3wvn51mASUen+8TvOP0/dtyfjC0UrBJzXdY5topBTEkzpYYrZI5l5kO55L6jaH3/u2/1FWW1KECW+5Q21vHJm8/SryuVLEOSQRS1e3aHFb1QdIdL8d31PljM+QwXLwtbHllunwDL25oPmqGFeNL/55NMHigTXXXTFzefs2WlMtdu0pz9CF5VRHSdspisjkNfCuSAwRyB69SqOPhLp5VsOuffeZ25+5c+1zdUEJKq+sP+LW+IovuWLQ95cUavHfHGNGq2s3nt+jBn0sGznw5bUcqSMQGzFq+EcSCFKnj938tTC17M1eYJ730YIj+zZGWAiiL5Qa8BEQmEopeNgYyIz3HACwqkvqRdWNRWDeii02NLUDhviorHv5gMv3KehRUDVqooS4QJTHiqRqqGqnVjThIjpK8WBzoZh6wjLGIGMjIA53skLW6bqB1WgrI70fBbhwucf2dNBhPlwOolIeXmcJTINvBihQSCn4cN21iVIz6W9THdSFesczsEPflaVpVRJTxsCSR27AlH6nS1fAGdjkC63UhBCmEGE6Xqt1IzVvB6TCA9ccfNj9+0sIBB9LannBCbcnLOsTF0OgEBMBAnQSzhb16IKe/Dj/7EjeUhisnU9KPm0cYi8hbCFCTArpSBT04PAs6rqhnqRXNooVzCorrdC5PABnR3IdjU5rjxIWsafhiAugvjo7UpermsJygiea04DyjTW96DkG3mgVCqGraVttpOCqHnlO5PuIIv8VctUOjUby+pJoU75viznCyBG4iTbsZG4R+Vo2ON5DrSgAxQMv411QNXz99edtwtLCKcYto5c9uz/Bilbjj9Y2LJlUINb6UFbQUp0lLxcedFpuuMouclSKfLao7vbKERKELNnKJmtFhLzgWqr71U5O1geRORBIug0axuFrZKyAUjcjPz61JaFk+tzfrKf/Ck9aHbS6l8EMQ0CodGHBsvKZamzn9YLCIQsQp7DeqNSv82BosmTlbR/d10Ptsh/qxSrXfpwy8iBlLtohKl5jFoBEkwkH+RbxTyG1Eq3sgmEkFwkIZiONIkklItWm0D0go8YCPLIgQfe9snx3VhupuBZfq4FwhKWPXF+ZcOwdRLwFKRZQiO0EwQxqjdF5Dg2raQfI8hXW/3C+RijloaW/EqCSLPM8CT2VirS242RRXhLWqRXsKgOu5995OnHftv78sEHH/zy3mvvvBRLqVR2rg2NdcBX7ULaiOoykYDgRJrJLOogasrIXbkFzyHIbc02TeJGxvS8VQ/sKFJIEoQuPEAIHSeYI5K3Sx9BgT6DINJJ8ockBqh3/XRwRrf/sFweZkHATn+0Al5ZbARyaFBJQCAnq5YNoAHAxbT3pMsO5cnUMNvJm/loY4hLEC6DVdu2LEbSk3Vk23ZwXP8gcxK29HaocyzujerRew9er73LVWl7BlKdhLwOYFXLVrOYNp5aq01AummWWLHzEZSDdyWCPGLX5co9PtEJw8wflpAvcJ1eNxmprvugjECYsY32XHFFN1mPyYoaEUKX627biN8pYJDeickoHKQcxugt5NFxtR9VAdaDVIIRSEVhlAzIwJkH0cF5H0FuFtMUtfRkHNzkCgtY4DsKN1Jv56a0vxx+3w2ZoOYbU1LvlP0RegnARVEX0sibL/18NPSH9j71wVN7Hxp9+/mlEX4YJDJmZmpWzbTglAsuuOdLuxB/TxIsAUkIXENilCYknDo6hKC9pyvKoazbJw3bBt5zrCidwCkIna/z1ryOix8wTK2kBXfudGixEwClfIoiLk0H/uC1h2mJDrv2wRTs0k5vFrKaaUDphLsX7zmliWErL+AJyCjoowImHDQkITC6mmYDaO/pgeTvFsxWZiAGGTRiSMQVTqsiqT3v8j5uBvRLpZ7S7SY/KHuthF0Pzez28vDSZNBvvaNl9fZDCdyl3bHXRpWhANsG8I898VxBIPmlHQwrA8IliC/EbKvVGiUbumlD/0DUK4MGGdnMhF9XkUYKzTrzeyFPVstGT3TtFoLY4Ha7QuGMlnFA9XjFIgLbCPsUvTpxMq+eUrW81A+T2aU2LcpEE5sb4NHjNh97VLwubC0dvg2USgKSlePXFSWb94FOddV9tk8BRB+bQ+/1UpASXmkLLECHpE6crggx1PrAu12LoUNwpw4oouFyDnoeNXw3f5XR9jutqGtvp1vXVrN5MpRmANrQ6pZzYWvpsLOXAWyvCKLP5IKWacDskwhyY/KHFabsVsOigjwWb7b47IKgUdKBjklGGyjCmw+nQgt4hI2zMwHzJQMY9C+klnI6E3OVIw6Wo9U20nfy3lI0AeHC4nA6dnmfXk2zrSOPPvrqww4//IjtsqgugHAbOmNfpzFz8N5FkMurupwfbkg+zNJ1kBgCoEuFaCIaa4tEIcqRIVB2hwoAOY8tLO3T45V4r5xX2saSs2tvnAHxQIetx1/z5o6YlsQjrz788MOWtx0KiaKgCBLAv4xcXWgjVRSea+6Nd2a8EyeTmclkMmmTtDGladm2i7qrtVa3rkVYV+yu67oKtf4jKusPoqD74D/qk6vogwiKj4JPIiI+rKjri4j4uG+KKPigCL4oeM6Zv0ySqh80NjYs8+Wec+53zj3niroBDDhGIPR2pn6gAi2dhsPJ21B+1yKl1wocm4i0bHybdbn7tKY0VtFCrkKBerZkrBcDWpDPSrsQKX2Gf748GOoyYEJd8/zWug26lnUPHQIOOUw+TkSqOez841nJWrE/UKSUqPFGDvW1illOROoYGJCI6WZtPiEFNIRD9W2SBZHmtsB7NUTjLD7p5+Xd8Dn++WzuJdiF7pjO6pH1p4wGG4M+RsSoI42hJQXDnyaRMkfWI7IKHtiYj4c5BhHpkD9nRPCtzRFWcgbIWoLFCDGYNNGfXyrvjpcwEpSyYxspmNLMw09t1oMSG8foimBzJrXv5MHJCJmMRYpLXz+dUlMJgWMXVsepxklIOppk5+2nnIALGcVsEKZpg71aRxNPX7/7ojE8ehojF35gf5B+nWDivmArx7c2giYbR+fyy/fv11KjwjY4k7dMbKpJNJEEYmwQi5QBGgk2zUqZigzfRG7Z84psbtpWYLcxFDFMll8lc06K4hLs53evlcsH3m+UG+9nvxy+4dEjsMeT5prS0jlBySpVtnx8eWN5mMildN6+H64VuALKgFVhcSmxgwlHJR3TQrMxYjfB+OuQSGnQUFhdFMoDCJk9L/eToULPr8A7QhzKSBa4FeRBaJxDGQJf/EVdeDmd/HS34QV+Tn4K/8UN/lwjm2/mSp9VFePIiVuQSFepQ9cjATxvT6HhMY4IAkuA+jYrnml7qFTz0pMikRKHrUKOF5JujjjCR/9wkgOKyIbfXE42BxaphHA1YQjhhVqMJj7mi0jk5PHNe9+fgoV4avP4yVOnnz99qlxeOwZ/eRGdqJnfXsDlrFW96uZbMP4e2gcLAWtQhGYHFvi3y+suEPFhsHBY2kkDhAGJlBkKW0PZHcWxVGTadFlHkgcZlgaU0LKllC5QMIRtDmf9JfT1N5DIOLrl5t2NcvkNTBlLaU8VQnKGcqvGGPYMjEPDHbxex4JaCJmCtP08m8VnUWyaRIrAJBGyckntwZroCatjuVZChIagBD0rhwhhtEzVIiKGgOSTeCJt+kd7i2UkcnYykZMbxx9dLZfPYtgqJ86e3PPB1nZ2DkNqhenzODSB+pXcXZuFqBSY6OVCCBttQ2DYIpFioSVps1m9sCro9gg15AtzLBmcExAkHG446B8U7cgKk1WaXR6UP8xW5Nj2sQKPUydPnrro3uKKYPABWWSwaQ+2QzCt83ZbkSSLIuqBGXqhIUV+ZQYnkeJj2PINPTU8cAuCS3IG+3gDqYUYKvXQodYmgZ+whZR2oJMcD2F9uH1B+4JS7iPbp7dPDvPY2d7eOfVJ5iO5k5imxCRxqtFsXDqRSCZ2ZTVpbS2cEnPBnFdRpLCIHiv3ngojWNiLDvRA2HCnpRgnU7bSrnuL/gmqqobJGWTdq30dR60bLvr0k1OffJrzAGLHjm1j2EKqPzfSBhgkwjhrrBxYX5+tdSf7SJ4RWto4xAozSaQ0MGyZ2YSfIZKDFA2shVN8ix0hdNHvQ+QQJDukYJHDcuiyS7k65oVbQGSrPAQkUk73EYV6T0B6PIeFR8FWt9bXD8Og72W7EyFM4tHbu8DrJFIuQW+lwYx4MkNEEf3mKivO+2IiPk91ly38jt/CcIxdxDkcY89lqYafAtOaGiayvr29ke7s+zqGpMiCCNhcsLpRqjH09l2JCHoplgGN+uJeRFtMkUiRCicCcN/XeapgXGZLkznDhSgzSvdxX/Ckf1NlHckKDHdB64C3/4fWIl/vFEqmntNZLuF+uDsRnYjIbIuAM90VoLAIftvFQ58vUaRwMBdhFNcrIv2hdIxzvsXyWx9EGI/LCJL9tsWV8kNwPtCYFeVrtd/+h/r9vVGc61FOUxzY2KxR1XQyERETAUbVdltv793b6+sdVSsc99wZehi1cvujDSNWWF7Vs01GBU0SJMjY1bAjJj7u8UOIZXsoEkoblyo4+D/ykYPWyDgMbx5eW92JGmNELr5y3/6jmg6qV/Boqb64jBOsM3wPa0447nlBRcOlfy4klYpbRoCHTcgB3iIiIFzBhw46JA3w2+SYBztUn3OYIw3ZpITk63/LEH8vjY7DSPxqnz7SYJcWKTzxxFHIebV6FcYor75mZSlyg8bYSUkDj2qvQ5HyuEEbiSEQGKpCDaeYDDu9uML2402PQgBOilHEok47wwjT1h2XGoXVwcf+I2d/7LqGreXgmmKStbZObA2w/HDFPfv2AYWjwOAySBdND0LuSvvahdZUc+JtAB4Ev/bg2vZtKFKoSGfQrgHgVtw9bVnIwUOSTjacA5/AZ6aYoZOBSVg4EpQ8ts7aGXra+3atopwpsSCn0d5rKBapKQb1X/T2o5izH1JU9XI8T7OcitaYdObmexLHXQUntT5/J4oUKpgkW75fTJhVRDLLsyyLwjhHEiJp54+vS3O7ZmyRcdZvl36+kKxrl7rWz+UpZmZd6yszCrdZXPxSmAXAEJ0IigYmtbxpxbFJYABdfO1pQ6YDXP2AeR+gSBEhCfkRIq0o04v5oAL8JA/BJXlGdswsROJmqvb9v1UaSw3GcHD7ElCp7RWXsbSBs6Zx23ZArXb2KDPpnZyH5gapJRS0DmTsPcA0ZYA59D3MuQlFijtAIjwpzyRQQjKAzI5kyHSM/MInUbxpAQ0tlgaq+f3k2i/xqLEEUbstFSM40vT1RkdYaXuDCheuXWr3ByFGWK2kWk5/pb10Sa+HjdZ1bRQuUx+jSNkzj0SkjgVsLd7baJDUpMKcNXy7oSQi9BqviJ4RsVxgSIq7Wzq3SzX+HPIY7zkVkc6Nhh3gu9CLZuozC0ghgSb7/fmwEgQzMwIApy+jKgWen0TKM6i2RJyNGJGuORZNAnBc90jLICUWfDMOMjl5SCB8AZ+gj+lB6XPw6zE8dqbcYDlUC+9c4MlggKip/tLSUn9+LMRqogg6GCTM0dxZXcDTLpFIaectagJFkEVDrlziNO0QEZ5alcw8RcqciJH//07zujfGeLxxe2kqKcMDAyG4m1iS6cN7XqqF3SKDIhFPuCLGtRLLJzN97OaN9Dhpmr8DRcpMZexo13JaUkc/zmeqRPGON0Ex2Mg20kBaTi4PVOngfaC7Mnx430E0KwVWSxFeJYsSUriz9qhmaSKazE6IhLovCHOVXg/jbg7dZoMHUaTMh0OH7TJ5tkx+ZcNvxZEx8CjK3jPxJwrXWlmqdvtnGY/Pbi/VcKqcJ7mLGRAjZDBV24XClO9KONBdSIhY3BcxVF3yAkBVhE+iSHEXcAPEGwNg526TCZKYIqSewPXilYeWbkhVsbxkiaSjmyzngcl094rHUu+4AsVtOtugWCR5J0DZOhkNZUXQDJR0BhARJG1zQQg0PoIOa92PIuUbiTsPjsDmADUy5ObFUEthC5QMJ02vcZrNVlzFRKjejxCN/QmRow3K1bz5eTZYrvj6rhRq3XBhJqFAyIlI2GUkpWPKomXgGUTEzCUUKU9OU+1zpDNGDpHSiiCdZZl63MQkYXGgM9ENMT1ebBsJIm6XzhCPM7W6FH0j8qzW6s7LN29dpSZQYP6gP9zcMEpE8ztuD7yjXjEH09X64oqRm1YbwtatKFJ65mizsw7GwvUh0yoYFypG3Y0zFJyDV6Lb7VqCgYiMrxyyKmY8fIv5ybnbm6FlNktTXqm0eWJzfnWrNuIMnlzqzyGFSdDg0ByJWK7Vq4Kv+ANo0ewvrgieAYj030WRUq+kF9eIyIAODipxGVnAEqn7z1Ggwu0GHN2Pa7/CBiaG46OIz0Oqst/59qGv7rrro18v/PWjB0pNe3XhyFNXwezr3vWNaGtqyBlmRldBVZyOC/IuIN3luJrZAiZGVWjOLFjWYm96UYdnr/MMoldh0SsoUmSIY0xyugdirJrUIXSDk1/nRPTerDRm672qoQsaOZSK7rf0XAF2ZKVPo569KZ8sefujXz96+++15eNrL68vbcKFVsvyqoW1q5tN1hr0l/rUOJqhYnE39LJlRz+wnECDgi+MjAjBHUPgICXvcd7v6ZQBC52IuMx7FkWK7oFl6XPkzlHeQ5/6darRdBktBKYxF3QDWA/TNmQkpSA7InTeevWL119ACjluLd9x/g8nerewEwcOm2ulxtXrK+hZ8/PDy2CqILC5FIWZf10EDAFEHIHQkYiQkter9d4c0IBGCynIRwawDihS3oqYX+iLyYS6oJess0zhxQndrnIMiVm74ycUHn/ywfe+g162cTz83p8/vnxi5RZ2pNVirHsBK6Jb8UERIdB2ChBa2i7LeeLvBvHh1ZVpvRC3HIepPoqUm/qTBhuIviFiucjFHGT+rul7A1hd1wlSCm+9uhuFX9776Yf7D7dWVzfWmMPGoYZKhhznrvWReJMQAQgCcEVwOc2LwExwiSopdcbccSZS+ioECmBClAiAj4S+XxlahbsmUnjhuz9/+mvn6gMz/UvYKOJuAYpCWhFiJMhzqfAm7PMoBiHqvTqy0WkpikRMk81QJaWnJtxqAIJMKd1A9KRwnWyYEAMSTChNnu955ZmdZmPTvGZNsRzhBXEIsrzUbIU2Cl2MvL/xPEROpLcwjVJLDPULJHuvxAG45/ArnLaLnY08grmGaU1QISbMumnVOzc99Pptj0yeLHntgTdpW2j2agUDIiJ4j8743cJFjBDhSbdQZlr/FHZtMXFUYXiOO3OyyzCzGfbsLDt7GXZZyLLALgVX1F5loWmV9RJEQ2si0cS0iXh7qRewD/Xy0hRBYzBAGoiktool1appmqZNjPrQ1lvStGqslxejiW8m+uZ/zpnr7mq/FLrAlM43/+X8/3/+/2yHHuTGzgBDh9TWKWC4ECF9jN4H+C834gM/XAR0hlSaNnP0gU99k/rUxpMlH9sdoF35XISYaeSCz5sP1PSAhoR6SDXfHLULdBaRFj3FLMVazdtc0bBOgB4apHzdS/fpYKKqdbC1E1o1JD0RRq41v1k7D+D2cb/GFzboAG3N5GDNUtJthIjIRRMTyS66DXkDhFr8YhpziYQYA72Z8REZvCFwCKVROE+DlKeCYO2ZjsEcjJqBMd/AmqGb/unX330EGBAQgtTSAWMBtCTJkUIEVNZBSmMigT/1euSH6HfALY+7qiVaRHJUw0QGT0YidSAVsl0apHzRhrxg4cXD/2nNvMJnxgVQ2FQaMgwfoiaRpJgS1sD/R2XkzhvrtUT4cKHHS7Z4Su3FfocIgBHpASJcIhL8cSQS7AjSB7XpCRqkdFrli5cetB1SY2vmCU9qU7HYSjM7KV7vX7vihLo6ul6mVbqobT94cO8eqsUNjKStmPOQ40RSUOTtr3S22apli6Ql1czieFoGBSKw2dfZ0UI/tzIzyLPG2Q4YUHrqBtacRLFod1uxs9V64wlBJiHkA2SyIKUEUSU7hJLg49WBod0v+o+gS7VYD1/0rcQ8c6gUU975BasgCAxadSqX1pDUQU+rgfHJjiaIma20Wc4oVIcamwLMxrz7Gs+cdaCQye3q9QwqRRQieSmEJBEWm/a4SLQEskA7DiaGD+69A3n9rwR7G1YtxGc6/JaL/CH4iUB+0MnR0w0rMyQmwVi7pyKjtw2Sx/7HmsGl6qlNQIENKvmhaUQKcwohPRFzfiyReNQxmDQo78huGfkyHrFXiUrO+Zk1S2JX3nb5FpEmtoJ2dEfynVSXQKcgEHbOBEj0duc25VI04fm8zhTsZKEXKDjpQr0xCEQNSjoNu3zoMpHoSC0Bkji8ZzvSZO+zjzllG1XTvXPqkLAVLSJq0z2cCFgj3D6cfxTUwx41hjEfqGPnelXnCOVX7Em3J1/52KGQy1BTqB87tMs4OtQiU0RLNbhAUAxH5WJAKXOwTWZ9IKq33SUmNEBb/839lWZeshWVuzgRoNDSk407Q3vISLJ71N3TxG0mb7z+ykdMj0BPUvlMJqcbMERsIh/sWhrtio7LJiF9IdLw/JZon2s7cgo+hobvSEe6fLWzGAiiAYrF7qjMNl0l0EmLSFjxCCGvJ7GNxiWYRO+mTIYOsCZkhALsOi+DuBYVIPNKxGWDcJghhQiNJBZRScj5PqW0c7gC+QJ1WzdCnv47mNWUBNkZjWGHV7DKPKi5SjB+59KB06dP/HSshknSUMwA6Q326IppIA4TP/fPPxjbCSjb30nEkUFsoHBM6TMJa+00DdMtSGuRiBIWiR53iCgI9T+6fxgFqTbdCCqkWvT2NyOALZH8YOdgHiIHWrLAeOF4geP0RUpkCfL/5tWZoZ5wU0cvem8RIWM9He4x6H3JYQM/d+edQGTy5EoEqS4FY2ppEl4qUUFD9EsEMEjYsOiGeEaqpEifhhh4s9eQLg+hCPW/N4RlF7ftuNuZHxM0TykPL5woFC7PXjh08UThxAI2ldXetHJ4GQ1vZbpw8j1kTv69y9QNiqkzUU4ksTqwa1UmO01iYR6+IiRskk0VQuTJXtM0BhFJkPQ4bcShVtocjYuxIFFUZEEFAgNt0QkmsRvyyFo77fu27aBNNrcwIgEXGB8vnJ7FDBcX8C+CsPqLkUyP64jBmJxLJ9f/ruycnJuZK8qTKz2ciFKqJAPJTS8OpXpmVs6kTXPmTCVKllabd98xMRUpLc8M7lpfWiHz5OD3e4vhxaX3ItPLi1NhTTJN7n/tUziKIw8d3Fk3le6rcvDzcJzG+Jt2oPZbb9tXR+SdQmEWBxQxlQZSuXlTmcIM7WGgEcAUyanK/JyJOTiRJP9JeGZ+fposzxGytLw4SUpFoh4emhlfJ9Pz6ysgoTNkaSKCFqd1Xf8+n1+WVRG5sYtCX+XG79uvyI0OCRRT+eLNOR773vzJPc7u9Db6csdtfiJGEl8qfIADejiALcCLJ95ce/MJjAnB+Ks/rl//LYDNnRhfu3T5p2N/XrzKiODAkbUf1x7EZGpynpwZABN5zzDIDCIT2xeX56bJysrMPBBZJebw3v6pRSByNp8/K4uCAkS8bqtr+MXh9C7QYX/U3kb7MOD4ZLZv1F9kNDislkaHiKEkUuC1CD5Q+BMThF3cvVam+P1WeP1DleIKbPgBYcCBQuEQI/LI7+yibzDaNUeWmrPZnpWYYGSI8cze6aXiFJmbT00vLiamyeQd44fR5OFpbWli/zQKJeJEcImAJMZH7o3IbTX+t+XmNqu4pdFt6k+2eGcuOJEd2yiReLB1U5BVVDE+DZqFIvjYAY4F/G353NtHvjlXfhPj36rVPz794Xz1SgCfKhSOnzpesIm8XT73zQtPnSsfwUmDmIi2JKmCZshq8L6biWkQ0ku6J9PkF9I1AhaQnoJnvn27HBEjGnEDM1qr6b9/93bUKvuTxFzQXk01caAp9t3tvukRToTyETp5+CBr2QD+sHARKwI+VuC4+lK5/AII4MFy+aXA+epvGNSrWv00+WHhJ+oOLCKBjfJnoIJHy0dxwDRNVXAR6+Pzz6qa1bLZrBoOQ5EnoWkaXbHFdIjEnbSdjtyOjA9PRHMaUnwNY8GwwrPRbKukhZQtvi4Uq5ED5miFomKPyRH8c+ESJkIg+Q5gtlBIPlX+ESeVAD5afurX6nmMzQC+Xv0DXMICNjDQZkSA7bvvHy2fW3sFB/7Pd6qa34hFLWjIEcTAZye2Dr16L+1lke3qRksGrKPSzRr7InR/BXhv9g1P20SeHeNEmDTbQWc+PIbNPgyA1yfwZ+U1bAgG/rH8GRAxTDMZ+6N6/VrhQ4xRAH/AibxbLp8rb7z9JRi9wZ5IY+ycmpqcFHwA/xv1uq10dGAr0lPszKVWoACodDIbl6AHVpHTqT6ITMDYa61939jYmJBR7AlMDV/9sHA5iZPURV09UDiFj5SPBjDBr22Uj9xWrW5Bgqleqf5woVC4gJN44TQn8tG58tEnH6EuLukODtbtokyXKNZzfiI1bitz3+FiJA9EpKDE4G69yPwu4dMWLxEukmeLj98q5BgRNthl4GuFws+HMODaB4UPFvBHG+VvHsGvrZU3XsNXqtc3h9rBdX2FT1C6+JJt7Gvl34HHG0efYEz6amnAbGuw62SJYznnJRirIYLS44vcbdUi7F60xa9bDJ3ZgNDNrxHZmwri2dOFwonjxz8A73oIJ0Ek5Y0fN8rlB8HMz1fPXzlfrf4AceXpwgG4xCby1kZ5Y+1oGUyeEonVtUUGFUTlMTM/DXTWvVYiElH2Zrv9B/enUKZR2BizkjG5phFwH/v8uAr77Dp3HPkg5F1aAB+6XGA4fgyTBHNG5TI8a1j2v7oCy8h5cF0QAVAWxy0iwGTtHFx0BGOFWxuH2/iIwmdLJwcJIenVUmnSm+kRPezNdkceGtgtg4oozhV2zZSHyXE6RjS6rVYin4QCQCQa8VST6MEXx2ZPnZqlUbyJDIzxu0+8DK9lBLbz1a+/gg6xjOXQtQtXwVTCf/1FOeKPXgZbx0mRKakLyDGLQRmhIsijON28MjfvIyJAyqX53Nae+0YGQEVki0YrVGRbxNHRe+65O5xlU5wJkAi9eTdIAR5SgBHRfQf/Kew+LQ+EzCR7DYtDViU4GTexYWI8e/kChs/gvCgURPjxH4iINQW2pgTXnAoYx86z6dWplVJpzuPWUiTuxL+0Xbt7aGJI1+1zK7JjzzpqNJplu47sfSj3+YmM8ShLSOS5P3BA12I7CVKyqtan2fZmIs1QlQAsNwdmL8zSZTGpyMmQwrMmtY+bbsKbAHFESyCJM2Q6t14jEVnW3eM84WPrQJB10sPqOepvivXEli4RiBe3jakBi8gg8mm2iFzEau0tZGiagY+BiQBoxhIWiB6zdYOmtH6XgyycKZXOlmZOLp8FiXgdQdzwu63xiYmtYb1RQ2y7e5HL8JYtY9m+AIdgyv5kRpLdnTvBC6rNogm6AEvInycO/HxqAROkSESLWLohkkQa+RM8+3dNlk6+R3GytCT4iJAuZAMkCxh4FEVZ0c2Pbbc6sWW7+83bhF7N6Q7ajRjUWiJ1DijC36QRJEYwB+FlNt3WDRJP+LVUUFyRcCx3+1xa3LOQUK+T2zNxL4oAEY/usL8euJtXZ4JxSNZt7PtOV9w2pz1ckXWxnojfnbM5Q64LJiHJJGF2JJnIvhfJQNGaTNUpLjTzFfFsxR9uiZ4CS0R1N6/a7ZHiB2CgjXb2Pj8WjdJjhIPaXR7FAh4ukQmZPw+pnojmXxHY+KcRkhlHO0gS406ZLYQMkf2q2nVMVhRlnBGZqokjgyQR87gt2ZEgvMnvPkpAUbZAe/IntHeLFVvVTzw8BM7DNnbr6TdZA9Nt/yERiS69StSIhtlT63HCb2JT16mi+MPGrKzYe8uLdHGv2xAmMdV1W0BkF8rspao6Sturgcntm0G1NvchG6OjDXkQ2RD2d/Jfk7NGkv6XCLitiGZtODm+KhR3OIW422qI9dLZnFC77BNZ9LotZQiNVGgpZfMDmz2LBTMQ/6EoO7YI7W6WHh1ICW12I7IzqdzY2KVQmhGxSjgh2fbsRHdmwYgQZ/wbYqpeIFJQNoOyx21FD47s7x6hRLZ5XdZoHY9b9omGWzzUK5VeIZBK++3BkbU/SZIs/4sEblNhZ3egT7UutyIOpTGRzMycWEckocBcg8650P9g60RRTtSdfnKLvRPiTuQ/rrnyaK5UerCADbbWZEOuUTtQfUTYCK5icM8fidhETEV0OClq4wKbdcZoUKg19iY2EBDzuK3MnhFqJDt8ROp5JBweZrhSjGD8L7KqoBTv1irZAAAAAElFTkSuQmCC", + "image": "/api/images/system/maps_v2.route_map.png", "description": "Visualize the entity trip on Google Maps. Allows to visualize location history. Use the Trip Animation widget for advanced features.", "descriptor": { "type": "timeseries", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-route-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"google-map\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Speed: ${Speed} MPH
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d2\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABdCAYAAAAyj+FzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAH3gAAB94BHQKrYQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7b13uB3VdTb+rrX3zJx6i7qQUAEJIQlRBAZc6BgLDDYmIIExLjgJcQk/YkKc4gIGHH+fDSHg2CGOHRuCQ4ltbBODJIroIIoQIJCQdNXLvVe3nT4ze6/1/XHOlYWQAJuWP37refYz58yd3d6zyt5rr1mX8B7S5Xo5/0nPYaNFM1PY0gGqOhfAgQCNBGlWFFUAYEIeihigbhFdZQwt85BV5Gj9r/718R2XX365vFdzoHe7w6d77xnPkn4YpAtU0YiizNJcmPNkMQFkDiSlowHt2HNtGlTSJ6B+pTpsKTfKgTj3Pi8SMtFtEZnFs8d8dPu7OZ93BcCHtt0+OiL+FJjOiqy5K5dtLwD4PBHGvy0dKLYo8B+1+lAldv50FfmFzWX+84i2M3a8Le2/Dr1jAKqCHtl2y1wC/pEMP9ZRLBaYzF8CCN+pPluUkOKfB6qlmk/dBwTyt8eOv2AZCPpOdPaOAPjA1h9/SJX+TyGXuz0TZi4EcPBeOk+U+RErZh2YyMAyQJEoZUjFgtkCAEScgDyx1hmInTglqDj2U1X0WILaPbWvwHO1WummeuLONhaXHTf2wsfe7rm+rQDe133j/i5xPyrmCr+OouhSKPbdQ5fLiezTIYUBQGMJBgYWxMYSISZhbxgQT8wGAgDiwWxUvCiBxKhSKOqdh4OyV5+6XiEfK/kjVOXQ13apG+I0+adKpXaG0/Si0yZdvPbtmvPbAuCNT98YTBhT/8fAmEpHoXgKgPe/6gFGP0nwG8s2YykcaRCAYYQ5tKTkDVuArDEwMRF5AICS4VZ1AQBSr6oEgL36CBAvlKqIsyLOKQl5TZH4uN+TawDuY6o64lWTJX20v1S633uJNvfmvnbRERelb3XubxnAX26+5gDy6Y9HtrU/wERff1XjSt0WwULDmZEMawPOgilgQ4FaGCEygaXQMQyRMaxiUijUkAEAImIGAFURAOrVA1AmI1ZExGuqoqkVFefhyGtKDql4X4eHc6LxJof0VIVM3nVc4uXaHUPlo0Tpc2fv/zer38r83xKAd6y74iImO31EMf9REA7cpdVBY8NbA5+dFNqsCTQipkitBjAUsLUZNd4qm8AyjDMmJAIRhDzDEBEbJkBVAyJWQJ14AEaciIeSGicOgBeBWNHEeXLkXIM8UvFI4bVBCVJNfdk7STd5xOcp0LZzjIqV/eXq/4i61edM/eaN7yqAqpfzf62Nf5LP5lbko/DbCuxU4saEN1mN2kKTzQbIkuEIEWfVagRDEVkOyXCkVq0aDg2p9YYNAySVerU0WN1R27Jjo6ulMQ1V+ggAOgsjNRNEus/IiUFnYUy2kM23AcrivXh2RiTxjhx5iSmVWEWdpmhQ4qvwSBBrXVPfqDmuVsT7C3aZvKslyZcr9dpxdr81F8ynO/w7DuD1q/8y6kDw2872ticN0deG7wvQHXHmdxGK+1ibQag5ikweliIElNUAEayNYBCSRQRiYzf2rNtx11O/rC5d9dj+1aQyM2Pyz3WGozaNisYNWY7SYtgWA0A5KUVO4qAn3t4+lOzYt+Grh+bDwstHzvjA2tPfd1Z+39FTRhGpi7VBKrE4nyBFDKcNJL5OCerqUEXdVeEQb0mk8lECjR0euxe9cqBUOnoQ6RkXT78hfscAvH71X0Z5kf8Z0dH2CgNf2NkI0d0ZbmtElMtFVEAQ5BFIlkKb00AzFJqCGooQcJjv7t868P3/ubayZvua48ZlJt57xLjjB/cpTssXokK7IQNrbeoZ3pIRJm1aYSUW9cwixglZ7xNU40ppY7mr+sy2ezt7G1s+vP+EGfd/+fS/Ko5pH9/pJK04X6MUDSRapcTXkXJN46QKp1UkqNVqvpxVyLzhOajihh1DpVkmrJ7+uak/bbztAF6/+i8j62p3j20vbgXR+cP3LYU/Djg/KcsdEnIWERcRIk+hzWtEOYSch2U76tk1T6+84Tf/NCdni2tOmbRgy6T26WOiKDBhGFEQhrBhiNAyjDGiQp4DFgI8AChg1BGBXOC9p8QJ0kas3jvEcUxxnLgNpTW9izfdOqGWlve7+OOXrThk6qEHKtKehq9xIlWkvoaYytrwFYqlglgrcZxW+oXSz+ycpOLmnsHypDTIfuTNcuKbAvD2288x22dn7hrVnt/ATBftBE/CH2aCtqkZU6CI2hHZomS4YCPK+5AKHFB2ZNe2Nev/739/e9qY3KRnPzHtQp/LtnfkMhnKZDMa2oDCTIjQhghDC2MCCQITAyYxpmkhAIAZDDA7l4bOSeR9YpLEwfkUjXqMOE0QN2LU4waq9aGBX6/+d7O9sXnu3579jbVTx02dlEilL0FDG1pJG64cJX5IGr6MupY5duU1npIv7sTQ4196ytUDx8+sf+TN6MQ3AyBd8+L8W0a15zYw0d8O3ww4vC7ijlkZU5QctVPE7QhNEVlTRNYUjHcy7tu3fuuVSqXBF8z66962fMeIfDaHfD4nmUyWsrk8BdaYIAh9EFoxzExEysYoAQ5A0ioAEIpIBGZmAM459iKaJo6cT209TnyjWkOSNLRWi1GtV9A3sGPg56uvG1vIZ9N/OO9rM8jS9oavSOwqaEhZYh3khq9K3fdpXWsbvdR3MoYCV/UOVadcOvv2C/AG9IYAfue5j1/U0R5mIhNctxM8yvxLyMVpOduJyLRRnto1MkXK23axlB27sXtT1z//8vqDTt3vk/fMGnX4xGyhiEI2Qi6X1Ww2S7lCIQ3DkCxzQEQKYADANgCbW6UHvwcRaO6fAwCjAewLYAKAcao6UkRIBEniEtRqNVOrVKjeSFCP61oaqurKvqe237P2lnkXn/X/PT9l3OT9Eql2V90QN1wZdRqSuhukhi9T3Q2s9ki+NDzHWppeUqnG/qsH/+b7fzSA33ruI7ODIDh/RCH6KkEZAEINfhia4n4ZO0KzphN5005Z06aRaeOAcjP++4Ff3P/86hWTLjr08i3FfEeurS3LUTanhVwe+XxOwjAw1loLoB/ASgBrAdSAV232Gc0NyJGt70+27mlrzNT6nAEwDcBMACO892kcx1KvN6hUqWu9Xka9XsfgUP/Qjcu+Nf3g6bO7zj7urBNT1F+quxLXfUkaMmDrviQ13+8THdqYqvuLZpfq+qrJNXFDbrp87t0v/cEAXr5iduiTMQvHd2QnKDC9+bC9NUfF9kwwgvNmBGW5Q3O2SFkzAkaCg/71Nz9+2MTZ6rlzLs4Vi0WbyWS5o63N5fM5G0VRaoxpA7ChBVw3ANMq1AKoHUAewCwARwHYvzWctQCeaNUrt4pvgeha17Gtevt47+M4jrVSqZlSqepqjQpVyyX/8xU3VBHF2T//+OeOFbgXaq5fa75ENR3SarzDxDToYz846FTORbPRV7oHG9sm+qEPX3TEM3vc9pm9AfiBP53+T6Pbwo0Cd4aog4p/yXK+lDX5IDIFZDinGS7CckEM+JB//u9/e3Z8NGPTgjl/Maq9s8N2FNtcPpc1bW1tFIZhaIxJATwFYA2AtAVWh4hERBQByIgIE1Gsql8gou8AeAjAfQAeVdUvEtE9reFFIpIloiyATgARgCqALQAGmHmUtTYTRWHDhhaGYE0YYmbHEXZj//rBRc/fXTly5qGHEus2FUceCbxP4DShRJ2mvuIFboyqG5kNcNuWVM965MbNd71pAC99+vADA+MnR6F+TeAg6h1TeE/I2bbAFjVLBbJcpIDzZNke8qNf//yxKblZWz42+9Pj2opFbutop7ZCQdva2hAEQZGZXwGwDEBDRCJV7VTVfVV1BDNPUtXZqnomER2tqi8S0REAzgJwUqvMI6JBAM+p6pdU9f1ElGu1E6lqUVVZVYWI6gA2EFFijJmSiUIPsDbXmGT3b59V6Kv0dd334uLGYTPmHK7Q7lRi65DCawqviXWSrEm1PlvgWMh9KPbut+/77Ohtj/97d98bA6igo7aM+O/Ogp0l8BNFPQhyY2RyE0MqcC7Ia2jyGpksBYj2//WDCx9uk/EDZ8783JhiW5HbigXpaG9HNpvNMXMGwAoR6SWiUKS5KhERS0QqIgmAHcz8sqrOA7AdwCcB9AK4CcBvAdwP4EVV3V9VPwGgC8B4Zv4PIqqoqgPQYObEOadExC1A60RUJaLxURQaZqoRW0NEsm/xgI6u7rV9L295vmvGlKmHQ32vk0QdxfA+oYTq+Vgbi70mR4p6BEaKlTid98S/9f4MV7wBgF/66AEnFbPUz+z/VNTBiywLgxxCFDgwGQqR5wznOeR8+6p1657r6uopfu7wv4mKbW0oFvIoFovIZDIBEXkReUlVG6o6Fs2N/EjvfSczj2Hm/YnoY6r6Ae/9w0T0cVXdSkTfE5FsC8iTAZwI4DAAjxDRj0TkUABTACxS1csAzG39MHlmzqvqGCLKt1xZA0Q0QERtQRBkDZMngrcmNAeMmB08uHpxNsrz2pFtbft4TWInDZtSLE5T8i7uSKRS8XDjBX4fYbnusI2jMkt/tGP9rnjxrl+gICP4Riagrzb1ssKa4CkrYRhwwBFHYGSUOZJKo8oPP/vCoV846opSoZCnQj7HxUJRMplMgGblR5h5wHtfbE1oZAvIHBFtVtX7RKTQ4pSrnHOXAThQRK4BcIaqNkTkRRF5UVUTVf1462/TVPVSEfm2974qIm3MvBhAl6pGAEYAaBcR45zLiUiPiDxKRC6bzZpsNhtGUaj5fIG/dNTltYeeWja3ltbVcGgMZX1IWbUUqDUBbBA+OYxDPuDLSORq6KsN76s48MvzZnwwlzNDgaFzAIBAi0LKtGVtEQHlOaQCQpOHoWDWL+9+ZODCuV99cnTbmM5cIY+2JudZIpronHukxUWemavOuZIxpuG9H8fM8wDMJaJHVfV0ANcDOIyIPg5ghTHm+0S0UETWq2oCoA/AI6r6C2PMgyKyD4BPM/MggJ8COIGIFqnqV1T1YADbVXUjEfUaYxrOOcPMBVXdCmCutbZirQGIlIBwavucl2577NaJM6ftO1nJ9aY+YfEpvDryknamSNdAMQ1AGwxdc/DqDjz9k/7Nw5i96ixBSK/MhTRxJ7oUbracmWAoVGNCtRSCYOxLazfcN7VjdjK+beK4KAqpkMtpJpNRABNVdT2AowHUvffjAYgxZpNz7hUiuk9VT1LVWFX/iojuBfA1IrpfVRcS0Xne+6tUX33+M/zdew8AzxljLvPefxTA3xPRIufcpQA8EYUAFhPRSCKaKSL7EFGgqjtU1RDRZmaeGIbh1sh78s7LxM59R09um7585fqNdtqUMZOMMc4igE0DthSppcYWL80VTNbyX1QCPgNN1fJqDvzi0tnjQviObGia3Ee0JEAml+E8DOUo4pxaE4GUJz3yxJr9/vSIv+8uFAu2kM8jl8vBGNNJRE+q6grn3AZV3QRgi6q2AZjHzHNE5FEAp3vvv8HM8wFQSywvADAPwDgAi0TkPwDcBWDhcFHVh9FcXH9ARE4BMI6ZvyEiHwYwSVW/CeB0IlpERJeo6hwiepmIlnrvVzLzemZex8yDzDwZqlUikGGm6R0H66+evuPYafuNynvFkCCF4xjiBd67otN4C4GmEDAqTuVnR3++beWT/z5YfRUHio8/0dEe7DynJTUvswmmEiwxWcCDwGyee37j4ydNO6ucy+YmZMJQM5kMWWvHqmqPc24eADCzENEGAMvTNH2AiM5Q1W1E9GkR2cLM3yOiS0TkO0R0lao+zMy/8N7PBHAmEZ2C3YiIoKrdqnqjqq5i5j/x3n8bTQt8iapeKyKbjDGfFpEhAGOccw8EQdBhjPmQqk723rP3PrTWvhxF0Xgi6vHeayaTyx075fS7nlvxcPGgg8ZNIjHeSKRMdbEUIEHwEuCOA4DOvB25vSRnAfghMGxEFNRb7ZoM0HFNadFeIjvRgMFkhEDKbEl8Oqq7u3bs+/c9cXQUWo2iCGEYsqrG3vvHAPwEwL2qulZETnXO/Zm1FqoKVf2Bqh6qqr8SkW3e++tU9T4i+ntVnem9vw7ARQA6ReQ5AL9yzl3vnLsewK8APIfmovkiIrpWVWeo6t977x/w3l8nIluI6Dcicqiq/quqgpnJOfdnIvJR59wmEVlCRD9S1QeJKLHWmmw2hyAM9bhpp47q7q4d733aSVBlkBoNQGxgYPdVRZ82N5In9lS7dp42GgA483hMyUY0RXgwXzAjQgUtshp1WhOR5YgDzoiB0U2baqsPLB7z0oxxBxWz2Rxls1lh5gNVdbn3/rwWR68moi5VPZWZt4nIvgBGquoRAH5BRH+OprH4oYh8XlVPQXMvfIOI/BJAFxF1qupxRPRBIjpKVSe3dOtdInKbqj5PRIe3RHayiHydiMYDOIuZfyIin0HTfI4kIgAYa4y5UUQaAI4QkY8ZY5YR0aGq0kcE8k5NNS4t665u6G9r47xDCi8pqabsNbFe9WkoRvU0upYl8GunnqebX7kZQ00O9DipLbKjRfQTPWnXYyBTBxMBBiIML2IVkt20sf6B46d9rJjJ5chaQ0EQRAC2pWm6VlVXq+rZIvIXSZKELcX/Y1U9RlW/AWC8iJyqql9V1aOcc99W1SXMfAmAh1X1qy3O+rKIHCMiGRGptUqude9iIrqWiC4brisiDxHRt1X1KFX9qnPuowDGe++vUNUPishNLQkIiOjPVPVs7/02EVkLYHsYhtYYg0wm1FNmnZPftKF2lFPJisCIkhE1DFiFaNLr1i5R+PntGR5lFMcBLWfCxxbhrgkjgqMAjCKgkrWFX48KZ7RHJm8CziJLOXJpUNu4omAuOfbKOMxkKBOGHIbhHBG576qrrtLHH3/8QmaOdtdd/5tIROLTTjvtyc9//vN3BUGQs9aOA3CyiDxXr9dRrzfo2gf/Ljt1TpyYIMnWtQ4nVW2kNd+bri41fOlMADkQerb1p4/f+WGcaS9X8HOLUQIwCgCUdFGi6ehBt7k+3k4DqQ8cOd2+mQdPnP6xijHB+MAYhGEoqppL03T/J5544iRmpvnz5z+4Zs2a1dOnT5/+8ssvr5o5c+aMWq1WSdM0VdXORYsWHW+tXXbmmWcONV2jQG9v744dO3b0jR07dvSIESNG3HbbbbNFpHPBggWPtMTvVUREWL58ee2VV145bcSIEU+ddNJJ1RY4unLlytXTpk2bEoZh2N/f37dw4cKTrLUdxWLxvnnz5pnf/e53unDhwhPa2tpWnnfeecekabopCIIMEYGIyBjGCfufvmbpltuKY6a4LKkzCh8PpZu913g0oIsAOhOKMQTElyvYPrsY43IRP6uK8wCAYHrUo+gpiXoaG+LR0X5VaNgxNEAHz5pz6PIgMGBmBTCKiJZVKpUjjDEmTdPG/PnzPwSgLCJHoLlY/omqXgLgWSJauHjx4uNPP/30obPPPnsAwGNoLl+O32Xdt/a3v/3txnK5HM6fP/+3aJ2JAAi89zkAUwGcdOqpp+YvvPBCnH322fEJJ5yQA3CH9/5YY8yft0C+SkTmP/roo72NRqPjhhtuODCTyRTPOuusRy+88MJVd9xxx8cWLFiwiog+oqp3ARgVBMEO7xVzJ70/v2jdHbNGqu/16uq98WakmuQgANhsU98MRQwMP7N0iYxhUuybD/n3WzqlAMROROElzfY3NrXHrtTNFHTkMvkiGQNiZhGZ7ZzbPDx5IoKIXK2qZzDzd9F0T/0pEV2qqoeKyN8BwLZt27ap6hmq+l0RmQXgZhH5iohcpaqrwzA0RATn3DXOueta5buqeoWqnqWqT9dqte8DwPbt2zeKyBGq+l1m/giA7wL4map+jYj2S5LEA0AYhp0AvsvMp5577rn3Axi/YcOGxaoKEdkCYBYzqzGEMMgUWILRjXSopzfekFUf5wUKYXYQCoZhykcM08C+DMUMw7Rva8sHqHZCJFD1VtTDaYLuoe3xrLGH/Yu1NiZVtcYAQEVVy7vpmPNU9VHv/RUArgZQ9d5f473/qYj8OwBMmDBhPIBnnXNfAfAj59w5AK4F8DURmcfM1JrY/4jIrSJyq/f+XlV9vmVMPlEoFC4GgM7OznEicmPrB3hJRC4Tkc+IyI+897cFQWBay5lrVfVKVX30lFNOOUZV/aJFiz7YMi79RFQiIgbg2NrazHEHf7+70q1eGiwkROoteQkhOmIYp8DQBGUcYIVwOJMepCCAkBCooCAnUPVwXoU1rrXVoyi7nwgoDO1QyymwzTn34d7e3p8B+NsWFx4AYLP3/l4iuoKIHhaR/yaiLw1z6rp169Z57+cR0bUiAiIaVNU7ReR5Y0xcrVbPbf0ek1U1DwCq2qOqG4jofhHZUi6XAeC7IkIAvqCqIKItaG4LZ4jInxERvPevtK5fY+b7W+0eBGD78uXLx6nqd51z85i5G0Bore1rNJJsxuan1EumFo3w3mtKSupAMASNRJEACBk6ixWphWCaKs1tqegVUIWyiBcPIYhRQlLKhQccNDtW9YEIh0TkiciJyGFtbW29LfCCxx577PtHHHHEhdbabd77bzLzFap6jPf+X5o46Jf333//qWh6kP+P934HMx8F4HQA53rvkc/nl9frdYjIQbsw99SWy6opPvl8BQC6u7u3ENFfq+poVb1IRK4iIvHeX7dy5UpKkuR8Zka9Xv9WNps9n4j2B/DNkSNHnrV9+/ZRIvIhIjpMVZeoqlfVEcyQ6WNmpQ8+nyva9m4IO/XeQ1XFE6UKfYkUhyrTEVDEFkAWO4NuZAuAsPnDKlgFzih8ku0cU5y4NQiCxFrLAPYDUCOizxpjrgAAY4y54YYbvtwS5f1E5B9UdSgIgloURR8BIESEO++8c8qmTZtetNYeHYahdnR0wHv/pIhsrVarvX19fQsA5H71q1/dYq01pVKpkCRJXCqVaGBgwDcaDdfX1zcRwDELFy788JIlS96XJEnBOQcADSIKmfkSIsKwpXfO/bmItBljLlHVa6dNm/bIE088sR+AMUT0WRG5kIgmWWtfIWPcuPZJDJ9r90hIRVTEq5KAlBIIdYH0UCg6FMhZUvDvjSDVnZBhUhUSUijICxHCbDFXZGOMqKoH0KmqQ/l8/ptdXV0/rlar38rn8zs5hJmJmUM0jyPb4/j3h/ze+ylLly6dgr2QaepX3Hnnnefv7ZmdoyUamyTJWABoHvTtmbq6un4xa9asSQCuA7DSWvtSo9E4zHt/dbFYvKLRaKwF0E5EwoBENlKVMOPFkcJDCRBVUlEloLQTLgWz1987FAhImCECJVEh8Z6cdzBk20ITkIg4Y4xX1ZFoHuJM3XfffT/S29uLLVu2oFKp7HQ9/W8ia+2RzHyGqv6TiPzjsccei97e3kxbW9uZACYTURVNb7mIiIYmJIOwLUWqTqQVIqFEDFHV6nC7orDMBB22LOzhWbRC0LJRLalqGYqyQWAJVDPGVJIkqQPYrKq9AGCMmQoAaZpix44d2Lx5M/r7+5Gmbzn4822jVatWvei9/9M0Ted77/9j5syZawAk27ZtswCgqt0AtohIzRhTssZWDdvQkA4RtETaxAOqZSWWnXgR1Kr8/kTbG2ThtaAE9QQSZWIQ2EilFteyhoJCa4lxYMvf9xry3qNUKqFUKiEMQxQKBeRyudcVsXeC0jRFrVZDtVrFzTffnOnp6Tl2/Pjx944ePXrt9OnTzyGirY888sjLCxYsOERExhPRDGvtswACrz4m60pOqIMIBIX4ZqCYAWsZLXumAtid6z8A5DSvlgkKFkcMiBERqHUDiUu8994SkQCoEFF+jyPfhZIkQX9/P/r7+xEEAbLZLKIoQhRFbzugzjnEcYxGo4FGo/EqCejp6Tnv5ptvfk2dH/zgB8sWLFgAVS0CqHjvyTlnq2mFYF3VORnJICKwI2IFI0Qi7TCtLaYCVgnbAdoA6GRhaoPXhipIVJkEUCXP7CrleBAd2RHsvYcxpopmfMreaICZN6LpQWYRmZSmaeeuk7LWIggCWGsRhiGstWBmWGuxqwUFABEZ9ilCROCcQ5qmcM7BOYckSYbd/XuiTczcT80YHHjvZ6MZZ4O+vr5hx+14Va1Qa/M9WB0Asa+SUCcIRuAtg5QEBKDYrEJrwdhiIXhBRQyIJkMxQxQvkELh4RUq4kCJ2VHdOLiOx+YmmTC0trWwnQOgsvtoiegFInKdnZ3rRo0aJT09PTw0NAQAm0VkzvBzw5N/B0mMMU+pqhk7dmxXsVjkzZs35xuNhojICDSPRpPt27c/WSgU5hLRC95722g0aOPgWnbcW5VUBYCSJYBBChgQzWnt2J4BsJyheFkVr7Q6Hc2kZYU6ARSejCjZFN259UOrc6reOucMEfWpqnXOPQIAhULhN8PgMXNl3rx5Y4IgOIuZz46i6KyTTz55JBFVmXnFO4nYrmSMeTKKooEPfvCDs40x8621Z3d2dp566qmnxsxcArC1s7PzkVWrVi1X1QBAv/eeiYg2DK0upOgpiCBQIlIBBOrBOgTCCAAQ0jUQrGS1WF1vUPewLlTlKoQCOARewOqVUgzmtlXWTWuKiqiIVAAgjuOtuy1bgtNOO21ET0/PhO9973sQEXznO99BT0/PxJNPPrkDQAO/97C8k7RBVaO5c+ce19nZmb3yyisxZcoU/NVf/RVWrFjx/kMOOWQ9M3dXKpVRjUYjbKmGinOOnPPYWt04PZGhjHoQCZigAQsFpFwbxqlRpx6k6LI6gK5Kpz8zm20d0JHWQFAYTSUlALDexSNdEB+Y+nQxpZRlppSZ4ZybdPvttz9QqVSOt9Y+SkR+xYoVxx522GF4/PHHceCBB2LZsmWYPn06nnrqqQOZ+REiekZERr+T6BFR37hx47rWr18/NwxDvPLKKygWi3jhhRdw5JFHolarzXvuuee60jSdYFordxFJnHNI0rghiGc4jb3xUDEQEngyYEBrwx7KcuJHZzux1t79KZQ++iv5AHTnCadVBZGQhULh1SsIMfoe7KlsGRqTm5Q1xmkQBJtV9dijjz766f06bwAAEgVJREFUnpUrVy4EgIMPPjh300034bjjjsOaNWtQqVQgIjjqqKOwZMkSzJs3b/Xy5cstgFUA3rZF954cr6eccsrYxx57DJ/85CexcOFCDA0N4cQTT0S1WsWjjz4azp49+4l6vc5Tp049TVU3eu/hVXVbZUN/TH33k8c4DVRIiMFEohCjCIdXLC6VY+44DV+zACCEXiiWgnCkEp1EpKsEqqTEIsTq1Axg+eCy/kczp+QmqDZfuXpRVedNmjRpx9VXX32hiEBEsHTpUtx5551YsGABnHM47LDDcNNNN+GAAw7Al770pc8NPzdsUXe1rsOA7n4dBmjXK3NzgbHrZ2beWQDg7rvvxq233oqLL74YS5YswY4dO/Dkk09i7ty5uOCCCz4bx/FPRGSUiNydph71ap2W9T9eGGgsr4iqZSVVsLJ6Z5lIlU5srfmWAlgHtE7lDjgP5SjgAWb6MBTtoroMgpwoERTwniiJhwq5aPrxB+YOWwuQIaKEmWd573NBEHSoKosIpk+fjltvvRWqitWrV6O7uxvLli3DV77yFRQKhVeBtzcgd/2+exmm3bl3dy4kIowfPx4LFy5EpVLBpk2b0Nvbi+7ublx22WWw1ro4jgsARgJYVq/XUG/Uk2fK95+ypXxfrESGGUIEMhYGTP1ovQOYOr2+kcjvVt+K9c130cp4slyX4nDnBqYbRCAGkTZXUELIVtPeezeUu3rjOEaSJFDVpwEcmKbpLcMTnDhxIm644QYEQQDTPDvBNddcg3322ec1IL1e8d6/qryZOruDffTRR+PrX/866vU6kiTBAQccgOuvvx5hGKI15hki8lTz76lura/fUUt6F4siJIKCiREAakhB6BnGp1ST9lwbngJ2CfE99Zd4cPzIcDqg4xl4wQl64EE+BlyicCnYanHz4RMumviR9vO7C4UC5fN5JqKzVfXlKIomtzzGr5nwGwGwOxe+ngi/ntjuXowxe/s+0Gg0+ohofxG5o1KpoFqv6+LBn496dssPt6dcmWAtlCOCNRDKgJgxEopDoLRl60Cy5p5P4Hhgl/A2NbgmTuUGBeCBOUTokVZAtyiIFJSk5QmJlJKeyvaeer2u9XpdVPVxVZ1Zr9dv25PI7Q7M3sDbEwe+0Q+wt/b21vdwqdVqv1XVaar6eJwkqNdj9JY3bW9IKU5cZRwUDNPcuagBE2G7Kg5RAKnI9SD832HcdgJIARYOVdyknXtjoTpBoaRsTPOMHQy7fMutQy/qQzOr1arW63VNvd+kTc/NfO/9I3vTXXub0N5E9/U+v57Yvp7+VFWkabpYVc8DMJSm6aZyqcSNRk1fxOMHPb/5v+pQtWwgUBCxErGCiOJhXHYMuRkU4r7XAHj3aYhTAaC4rakI9dNkMMSWPBhMSsRKmjRKIyuuZ3Bzfe32crnGlVJJReQ+Vc3HcdyuqgPD4re3ib1ZHfhmVcDuYO4JxNaYetI0HYvmMen91WqVqo1YNqVdW2uutz9NSp3KTNpcxMEYgjEYVNULmvVxiwLVu09D/BoAAcAZXL6j7F9SBVRgiUwPkRJYCQaqrEoMWrrqp4WN2ZfmxXGtWq7UqFwuJyJyP4A5cRw/qKryelywNw7ck+58I336ZvtR1Uaj0XgewMEicl+5XPblcpXqtXJtk33x1KUr/6MAbnKdgQKsDFUVMTtUYFWBvpLvohRX7orZqyJU192K6tSz9Qv5HPcQaCpBZyvjRSiyEFIVkDioiBbL1W3LglGduWJ9LKDExnAtCIJEVU/w3t/MzIfsbiD2dn0jHbkrF+1qSPZkXHY3MMNX59ydaB5ePdNoNLZUqlVfrpSxOvO4earr5xvqvm8iGfggBFNIyiGYQwwQ4xwABqqLhmo+c885eJVf7NUx0gDE4iv9Q/JYc1+MDABvDJQs2DDYhlBmxD2Da6YNxOulW9dsr1TLWiqVtF6vrwawXFU/7Zz7TwB/FCf+MUuW1ylJmqY/F5GzVXVZvV5fWy6XaahU5q26asuA22L7hlbvR4a8NVAYKFsgMBACJZDm7mNHSZ41HpfujtdrovS7bkV58p/oRwpZ8zIIhwM0C0SLoBipCmqNnaHAhq3L7MT9D9mfhjIrrYRt3nu0fG9VAKd673+Npq8t82a5cW9ADdOb4bZdljfbRWSpNt9BeSJJknVDQ0MYHBqiwXRHd9+IriPvffpa4YBCE0I5grCFMRlSGFoF4DMt3ffDUtXLPfPxyzcEEADGnoNH01gWFLNmChQhgTJEOqiKQIQEAiPNU09+Zf3jfZNnH3yY9mVWasoFL16sMWVm3gzgNO/9KiJaq6qTdlfyewNv9+f+QNCGPz8qIgLgaFVdVK83egcGBk25UtWBel9f/4Q1x931yFUbYLWNIxgOoDYgDSJYE6IB8CEEjFKg1D2QdscVfHn9r/EaB+YeAdx8B9z0+Sgz8HxgeR6AMVB6hgzaVMk3Q/2JSQHvJOra+GTXlMPmfEi6o+d87NpTLyTeN5j5ZWae6b3fV0RuIaKZqmr3ZJ33BNzuAO4G0B7vMfOQiNyqzcBN8t7fN1QuN0pDJVQqJe2v9u2oTt9w0l0P/uNz3iQjghA2CMmEGXgOCSYDIqJuAk4AgHrDf7We6u/uPx97zO6x13fl1tyOtfucqRcXM+ZFAHNAmA2iu4gwRkBKos0jAVXy4vKvrHvslWlHHHZk2m1eQKJ5VfXOOauqG4Mg6FXVj4nIalVdpKoHqSrtsrzYed1VXAHsDaQ9caAQ0S0iMoqIPkBEDzWSZHWlXI6HBkvBUKWsQ2nf5uSA7SfeueTqFxPUxtpQAxMSmxBqAhKTBZhoBYALAUCBW3ZU/D6Lz8E1e8NprwACwKQv4nf1fvlUMWsJwEgC5oDpIVJ0EhGrJ6sAICCXuvYVqx8uzXj/YZPSWFbWelyHeA/nPRLvqwxa3XRN4COqugrNKPwx2ozifxVww1y3K4CvA95WAHdQ8xWHDwJY4b1/tlwupwNDVVTKQ9rfP6j19h3dsv+Ow29bdEWvUmO0CWBshowJCTZL3kQAW1pPTb1noPTK9oG0no7Cp9b/7LWi+6YAXP8zuMnn4rFG4kfnQ3MYgIgIU5jxDCmKCigBpE1xZlEfvPDSErffrFkU7BNQpSutxQ1PLo6zSerFi9RV/CvMXFXVQ1R1H1VdhGaIbxnAzgQ5u4vtLsUx8yMA7mPmbQAOJKI2VV2XJMlLtVqtViqVaLBUlUqpn0vloTofOhBVMptzv1h4dd4Yn7cR1GSJwwhiQhIbIjUBthBwJoC8ElzvUHqzKL5+/+l4zQuGu9Kbyplw4m04Ix/xjI68+W6r2gZifdI1dFSaEEtdOW2AJYG6hnqXEMaOnL7ptGO/+L5kjVks2/JjM5nIZKJAoihLmUyIIAjIGANjTEBEHSIyWUQ6RWSdqm5V1YqIpC3RDImoQETjiGgKM5eIaKOIDKpq4r2Hcw6NRgO1egzvUq3V6l5Hxhuys9OPP7T0lke7tj41nQNiG0FtBmojeBMR2yzIRNhKQh9U6L6kkMGq/7t6Ii8uXoDfvRE2bzprx0n/hc93FLiQi8x1zYq0CdAHvcdkV4V3Dupi9b6OgosR+wRGvU3PPuXSHcXcPiMGnvAvcJIZlwsjG2UzMESUzWa16SExZGxLGFS9sVbFK5SUAGBYWYoIMzN5BbnUgSCaph5xXCfvvSZJouVaw1NWejrfL3NK1a07frHwmpFsXcgRvA3hTRahNeRsHmKaXpZtIDoa0P0AoBb7SwZqEt+/AP/6ZnD5g/LGnHwbvtlZCAYzAYbzJwwo4U5xOl0aUB8jcDHUxUSuoQ4pJE0gmbCt9vFTLm4UM2NHDCxNlidDweiQOAyCUDkwFLBBEFhSZrVEqkDzHLEVAiA6PFBFE0pFkjhS9YjjVJ1Lkfg0sZ3SO+rI8NBSo7vvznuuz8S+lDMhwBbWhmRtVr3JgmwAmAhqAlolij+h5svfqMW4ZKiaFu49F1e/WUz+4MxFJ92GS3MR246M+bYSGEAizD8mJ4d6p+oa8L4OcQnUJzA+hhWnqU+gUdA2cPKxnylNHj/rmOrW9N7+F5JGOiQjyXIYcgC2zRejiVXFw5Np5Y3xMGxgxBMJPMSlFHtPUI1NG/eNmhNm8uODUzZse+nB+x78WVs9KXXaDMgYspyBNyG8iQATwIRZwIawYPOCQj4LICSFDNX9V6qJ5O5bgH/8Q/D4o3JnnfhzfC6yvM/IdvPXADpaLd0KoaJPNS+xmjSF1QYkTeEkVfYpGR8j9Q5WRKvjRkztPf5DC3j0iCkn+AQvlDdUu6rbXaPWn5KrCEEErTwXTTKALbDmRgSaGxNk26bmppoQc7p7ux546PE7ZHvfutHGUJ4DOGMRmEi9sSQcwgYR2GTgOCRvDFXVaJUU81sA9PcM+X92Trru+yT+8w/F4o/O3nbyrTiaGF8cUwgOIMZRreZegerDgB6YJiQSw0uqgYsh3sFrjMB5eE1gfAovHka9pjaM+ke2TxiaNnWujBkzOcxnO/KFXKHNBpnRAODSRm+lVh6q1odqPT0bkjXrnuW+oS3tLo1HsKGADIQDsAnhjEFAFgmHsDYCmYBSG4BMRgMQvQTQcYBOBwBVPN5TStd6hxvuPx9L/xgc3lL6u5N+hpGwuHl0u33a2N/nDiTSXxBIRHWCNMilMdQ7DSVF6h1YUxXvyKhD6h0CCKCCVLxa9YASKYlyK/AOIJAyCUFBDGImB4KlEEoMbywCCtQbQ8QhxFiEJqDYWLDJakBEm4g1UKFPDI/Rq16xY9AdZQzOXzgf/X8sBm85AeM5t8P0eXwtItYRbfZToOavCyDxKj81RCPgaKJ3iL1TAw9xCVgdvHcw6uBVm/pNvQIKpwJV2pkKBQCEFKoMYoKFITVGQQxPBsZYeLIwNoQQw3BAjiNEzNioQKzAebQzkJRW9lXcbXEqctx5uOryYUv1R9LblkP1+JsxjS1+MDJn7wkDuhKEHACQQqD4OUgExJPFq/EpqTglcXDqEXoPJYETDwbgROBVAQY7ABCIJQKYYQBYZogaWGMAMkhhEJiQPLMaG5BTlvWUsgXjvJahAxS1RqpfH6i5eYjxhfs/i7clj+rbm8VXQSf/HB8T4LOj2uwzgaF/0GZ2oeHuVqjq48zIQzHee4QiSLUZgwN4kDYdt0Kkqq38BM1XhYnAMMwKGDQ979y0rERIRbENQJWIPgDorF0m2Ei9Xt0/5N4njH+//zzc9XamRH5H0iAffiOC9gLOVeD8kXl7bxjyxYC+OqMv0VaoPsCEukAigNqg1EEEFlWBQKHUFC9SBoOYiEUhRDoIaInBiSgyBDpJoeN2m9qG2Mv1/SV3iir+s1zFbc9chLc97vgdzWR+uYIfugUnC/C3keUlHQXTaQiX7LUCox9en1XwIBENCqTcvM1FVe0gSAcMzYVgxN6a8IrrBit+IHFyrCF850Orcf/ll781Pfd69K7l0j/mJxhtLb4+ot2uDy3t1T30Vihxeml/2U1WxpVLPol3PA088O7/MwI6/ib819j2YDOb154vvBVSxfXdA+nEBz6Ns4G3T8e9Eb3mUOkdJsW++NT2UjpHVO/V5vrvrRfVh7f3pTNLdZyLdxE84N0HEEtOgMsRzukdcBUV2vRWwYOnbTuG3HZXw4J3wki8Eb2uQ/WdojW/RLz/n+CluKaZTMhzm4eJwB9aFHADFf1X7+X6h/4MG9+LubzrHDhM934KLyhoaSPB3/yx3Nco42+811UPfBbvWvD67vSu/0eb3enEn/K17RkeNExXvPHTvyfxeuVQQ0be9zn50hs//c7Re8aBw3T/Z+TScl3niuBm9cCbLLeXGjr3mA3yl+/1+N9zAEHQ6oA/rxLLBPF49o1Fl54vxVJ08Ge/kwvkN0vvPYAAHv8K6ur8BbVEnlNF6XUArNQS/ziJv2jJ5/Cm07W/k/SeWOE9UddvUJ5+pimpYhODTtyT1Y29fsOrv2fxhXj+vR3t7+l/BQcO0z2fc0ucEyeil+7OfV7xFYXI4gvx4Hs9zl3pPbfCeyA67cfmFiaziVX/BgCUcL1XGf27z/vz8S7vNN6I3t23oN8caW0//+lcF/0PC+4VIBJgZm2aPw3/y8AD/peJ8DAtOQEuZLfAQ0sK7Q0rbv6SE/Yen/L/017ojH8LZ5/xb+Hs93ocr0f/D6s769KBP+5xAAAAAElFTkSuQmCC\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - Google\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"google-map\",\"gmApiKey\":\"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\"gmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Speed: ${Speed} MPH
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d2\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"/api/images/system/maps_v2.route_map#marker_image_1.png\",\"/api/images/system/maps_v2.route_map#marker_image_2.png\",\"/api/images/system/maps_v2.route_map#marker_image_3.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - Google\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/route_map___openstreet.json b/application/src/main/data/json/system/widget_types/route_map___openstreet.json index 1e8b807a69..9aa58214b6 100644 --- a/application/src/main/data/json/system/widget_types/route_map___openstreet.json +++ b/application/src/main/data/json/system/widget_types/route_map___openstreet.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.route_map_openstreetmap", "name": "Route Map - OpenStreet", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.route_map_openstreetmap.png", "description": "Visualize the entity trip on OpenStreetMap. Allows to visualize location history. Use the Trip Animation widget for advanced features.", "descriptor": { "type": "timeseries", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-route-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"openstreet-map\",\"mapProvider\":\"OpenStreetMap.Mapnik\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Speed: ${Speed} MPH
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d3\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - OpenStreet\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"openstreet-map\",\"mapProvider\":\"OpenStreetMap.Mapnik\",\"useCustomProvider\":false,\"customProviderTileUrl\":\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Speed: ${Speed} MPH
    See advanced settings for details\",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d3\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"/api/images/system/maps_v2.route_map_openstreetmap#marker_image_1.png\",\"/api/images/system/maps_v2.route_map_openstreetmap#marker_image_2.png\",\"/api/images/system/maps_v2.route_map_openstreetmap#marker_image_3.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - OpenStreet\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/route_map___tencent.json b/application/src/main/data/json/system/widget_types/route_map___tencent.json index 037c17999c..2392710790 100644 --- a/application/src/main/data/json/system/widget_types/route_map___tencent.json +++ b/application/src/main/data/json/system/widget_types/route_map___tencent.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.route_map_tencent_maps", "name": "Route Map - Tencent", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.route_map_tencent_maps.png", "description": "Visualize the entity trip on Tencent Maps. Allows to visualize location history. Use the Trip Animation widget for advanced features.", "descriptor": { "type": "timeseries", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-route-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"tencent-map\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"

    \",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d3\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - Tencent\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First route\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.5851719234007373,\"funcBody\":\"var lats = [37.7696499,\\n37.7699074,\\n37.7699536,\\n37.7697242,\\n37.7695189,\\n37.7696889,\\n37.7697153,\\n37.7701244,\\n37.7700604,\\n37.7705491,\\n37.7715705,\\n37.771752,\\n37.7707533,\\n37.769866];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lats[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.9015113051937396,\"funcBody\":\"var lons = [-122.4261215,\\n-122.4219157,\\n-122.4199623,\\n-122.4179074,\\n-122.4155876,\\n-122.4155521,\\n-122.4163203,\\n-122.4193876,\\n-122.4210496,\\n-122.422284,\\n-122.4232717,\\n-122.4235138,\\n-122.4247605,\\n-122.4258812];\\n\\nvar i = Math.floor((time/3 % 14000) / 1000);\\n\\nreturn lons[i];\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.7253460349565717,\"funcBody\":\"var value = prevValue;\\nif (time % 500 < 100) {\\n value = value + Math.random() * 40 - 20;\\n if (value < 45) {\\n \\tvalue = 45;\\n } else if (value > 130) {\\n \\tvalue = 130;\\n }\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"tencent-map\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"
    ${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Speed: ${Speed} MPH
    See advanced settings for details
    \",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#1976d3\",\"useColorFunction\":true,\"colorFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n if (percent < 0.5) {\\n percent *=2*100; \\n return tinycolor.mix('green', 'yellow', percent).toHexString();\\n } else {\\n percent = (percent - 0.5)*2*100;\\n return tinycolor.mix('yellow', 'red', percent).toHexString();\\n }\\n}\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var speed = dsData[dsIndex]['Speed'];\\nvar res = {\\n url: images[0],\\n size: 55\\n};\\nif (typeof speed !== undefined) {\\n var percent = (speed - 45)/85;\\n var index = Math.min(2, Math.floor(3 * percent));\\n res.url = images[index];\\n}\\nreturn res;\",\"markerImages\":[\"/api/images/system/maps_v2.route_map_tencent_maps#marker_image_1.png\",\"/api/images/system/maps_v2.route_map_tencent_maps#marker_image_2.png\",\"/api/images/system/maps_v2.route_map_tencent_maps#marker_image_3.png\"],\"showPolygon\":false,\"polygonKeyName\":\"perimeter\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.2,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":3,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"strokeWeight\":4,\"strokeOpacity\":0.65},\"title\":\"Route Map - Tencent\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rpc_button.json b/application/src/main/data/json/system/widget_types/rpc_button.json index 3ca7975209..c5f082429e 100644 --- a/application/src/main/data/json/system/widget_types/rpc_button.json +++ b/application/src/main/data/json/system/widget_types/rpc_button.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.rpcbutton", "name": "RPC Button", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAN8SURBVHja7dvbSxRRHAfw/X9+bhcvrJZSmllhZFSCWBDaY4FUhBRZCQXR7akLyoJYlqxU0g0tukF0oYQM3bxsYVRgbuuyu7k7szNn9vSb2Wx9qB56ac72/T7MHGYZmA/nMjvDbzzSTkbpOASPw7CUjkPx2AwhTNNQNKYphE1hiCXMtK5pWkrB8GXraZMl0sMOQ9dEdqApmIzQdIMlDDH1lLIMh5LSTYZYIp1MS6XDAGF5uEPiltoQK85dwhAtKhVPVLMhRj5ADAcyqzpkNgtJqQ9JAQIIIIAAAggggAACCCB/8wog8btfAjd+f9Y3t0GmW5bS8rO/fvavaXB2jWVlZbVHwjLC+7L1x2P8rN1ZQcWtX90EyWws7r7bSuf+BKnz+f1t3norTPV+/0HvNiFP0+5b54sahYsgn+mQrdksZfL6hYcZGe2betoxyG/LtP7OiXlIJW/a6F2Y9nPjKI3MLtrBjbM05CJIsqT6tdOI1BbWFuyRQVpbupw7yGygqqLCBZCTNJqFdNGTAQpwY2bwo5vmyL1iqr+uS3l4yaTsoaEg7bT0VXWyn/xyquQHpDz4JuCrFWHaG48OrSuJXqLHLly1Yl01VDkuq6r7+i5Qd5ABsqlctlMiN0eI0/BZhu09rXggu10J4TVoYMlWWeKr51x2IM3lcp83k4NUfAqVbrQYsn3w/lvuvTt0lQ9Hn027CNJLt3m7YaXctIaXYCHnIWfog5Src3Okg/pldo7Ys8O7S9qHXrgIEllWee35uYJ9MkAHXgVq3s9Dxguan56iHCRZUa3/hPDAa3/U7dtiuGloTTZ7aXFrnO9xPio8Zs5D5JViaqpbsGpdpK4cxDxRRItbpl02R1Jfsje2zIy+8LCI/ekkc0a4b7Lj3y8ggAACCCCAAAIIIIAA8v9C8qaoRosqXngmsmVOXHgWVxsSyxaemXosJFR2mBMxpxRQpOPB0YihKsOIjAbjdnEml8vOhUaGX97s7VEwvTdfDo+E5kyn7pe7JDQWVDZjIbtDMk5JuZGcSyQScQXDlz2XNJyS8vwp8s+bzy6kzJsPYfIigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg/yTfATinNXQTM7TQAAAAAElFTkSuQmCC", + "image": "/api/images/system/control_widgets.rpcbutton.png", "description": "Allows to send RPC command when the user presses the button.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/rpc_debug_terminal.json b/application/src/main/data/json/system/widget_types/rpc_debug_terminal.json index d028097b16..e36ff37773 100644 --- a/application/src/main/data/json/system/widget_types/rpc_debug_terminal.json +++ b/application/src/main/data/json/system/widget_types/rpc_debug_terminal.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.rpc_debug_terminal", "name": "RPC debug terminal", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAWcklEQVR42u2dB5QWRZeGi6QgklFUDJhFMCJGRFHMomMAMStiBvUXRTFgRjGLERMoiIBZ1GVXdNcF4yIe5agYdvVnfkAwIAoiIs4+/72na3u+NN8wAzsD73vmzOnur7rCrbfuvV3VfSuUlZXNnDnzmGOOadKkSRCEKgAKlZSUzJgxA1IFWNWyZUsJRagutGjRAlIFdJVkIVQvevbsGWQBhWpH06ZNJQRBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEITlRK9evc5KwAdAnTt3rlevXvz1oIMOir+efvrp3bp1a9WqVUYOderUOfDAAy+77LJLL7308MMPX2ONNYop99577+ULyaOPPrpwsvfff59kG264Ya0W8uDBg6+55pqq5PDRRx8hh3XXXbfWtPnzzz8vK4/PPvtsjz328F9ffvnljF9///33q6++Ot6+/vrrv/fee+kEX3zxxeabb15biHXqqafecsstK5S4a6655pIlS/7444+11lprtSPWEUcc0alTp/333//hhx/mdNasWa54nFj9+vXj19122+2MM8747rvvuHLiiSe6rnrrrbc4feyxxzp27Aifbr/9dk6nTp1aW4j10ksvkf8uu+yyQoVM/piC1VFjbbbZZtGu+RUXhBMLgxjTQymuvPrqqxzvs88+HH/44Ydps/jJJ59wccstt8wua+ONN7722mvvuOOOQw89NJtYlAIv7777buwp+aSJtd122w0YMIBbUDDRUjMYsL8bbbSRn+63336ctm/f3k/XXnvtiy66iFsw4htssAE/MWzSlWncuDEXUc/kT7L4cXn9+vVxD+65557bbrttr732iunJ7dxzz91mm22o4QEHHECIA27v0aMHgkKFDxs2jIsk23PPPWng0KFD995773jv3wx+3Ldv34svvrh58+a06L777jv77LMbNGiQtgBcf+CBB8hz6623XnWIBd59990CxOrSpQtX3n77bY6HDBnCMfJNZ4gfRl9uuummGQWhz3788UfS//nnn/z/4Ycf0sR6/PHHOcVkLF26lAMkmybW3LlzMSVuaseOHes/jRkzhlPI7aeuLI8//niOGzVq5PxetmzZX3/9VVpayvFdd92Vrs86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", + "image": "/api/images/system/control_widgets.rpc_debug_terminal.png", "description": "Allows to send any RPC command using its name and parameters to the device. Useful for debugging.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/rpc_remote_shell.json b/application/src/main/data/json/system/widget_types/rpc_remote_shell.json index d95085d22a..edcff14c80 100644 --- a/application/src/main/data/json/system/widget_types/rpc_remote_shell.json +++ b/application/src/main/data/json/system/widget_types/rpc_remote_shell.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.rpc_remote_shell", "name": "RPC remote shell", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAU6klEQVR42u2dCbSW0xrHtyZDOpVkyFCKIplCZpLMIVJIhsgYmSUakLniInOGyFRXaCn3ilws89Q1RrpRSq4k15Tx3N96Ht9e73m/4Xzn9EVH//8666z97u99997v3v/9PM8e3meH8vLyWbNmdevWrUGDBkEQFgNQqGvXrtOmTYNUAVatssoqqhShVGjcuDGkCsgq1YVQWnTv3j1IAwolR1lZmSpBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEAShmujRo8fxGfAB0NZbb127du3465577hl/7d2796677tqkSZNUCsstt9wee+zRv3//c845p0uXLvXq1ftLVtQ222zDJ50PP/xwlZ7abbfdeOruu+8mXKtWLcKzZ89eJoj1/vvvl1fEe++9t9122/mvEyZMSP26aNGiQYMGxcfXXHPNl156KXnDBx980KpVq6Xh1aD7FVdcsdVWW4lYfxqx9t9//y233JJauPXWW7mcM2eOCx4n1imnnMKv1Oyxxx47b948Yg4//HCXVc888wyXt99+e7t27eDT8OHDuXzttdeWhlcbOnQohTnmmGNErD+NWC1btox6zWPQiZFYKMR4P5QiZuLEiYR32WUXwq+//npSLb711ltEbrDBBqmMDjnkENTluuuue+mllx533HEe2axZs/POO++mm24666yzVl11VY9s27Ytd3bo0GHvvfe+/PLLhw0btummmxJ/0EEHXXfddRdddFGbNm2SKcPpCy+8kET69evXqFEjj6QzPPXUU5Rk3LhxJ554Yry5c+fOJHjttdfisIDS5qyTpk2bnn322eR1/vnnR+kbiUV2Q4YMufLKK7fffvvkU+uss86AAQMoxhlnnBEdIIhYLWPMiy++WIBYO+64IzHPP/884csuu4wwJEgmiB2GQbbeeuulMpo8eTI3z5w5k/8kS8xOO+20cOFCLr/77jv+z507t3nz5sT37NnTpSb/f/75Z/5///33Dz74IIGffvrJ74/pQ5pffvmFyB9++MGbbf311yceLxcew81Tp071m2l1T8TTueOOO7IrZOONN/7qq6/IlxTQ+9y57777RmKRPsl6qX799VdeNhLom2++ie+CH4S11lpLxPqd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", + "image": "/api/images/system/control_widgets.rpc_remote_shell.png", "description": "Allows to emulate remote shell. Requires custom implementation on the target device to work correctly.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/service_rpc.json b/application/src/main/data/json/system/widget_types/service_rpc.json index f822c87bb4..0a5bc29faa 100644 --- a/application/src/main/data/json/system/widget_types/service_rpc.json +++ b/application/src/main/data/json/system/widget_types/service_rpc.json @@ -2,7 +2,7 @@ "fqn": "gateway_widgets.service_rpc", "name": "Service RPC", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/gateway_widgets.service_rpc.png", "description": "Allow users to send RPC requests to specific devices through the gateway.", "descriptor": { "type": "rpc", @@ -17,4 +17,4 @@ "settingsDirective": "tb-gateway-service-rpc-settings", "defaultConfig": "{\"targetDeviceAliases\":[],\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"isConnector\":false},\"title\":\"Service RPC\"}" } -} +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/signal_strength.json b/application/src/main/data/json/system/widget_types/signal_strength.json index a24a00edd5..c4b657b3dc 100644 --- a/application/src/main/data/json/system/widget_types/signal_strength.json +++ b/application/src/main/data/json/system/widget_types/signal_strength.json @@ -2,7 +2,7 @@ "fqn": "signal_strength", "name": "Signal strength", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEXg4ODf39/g4OAAAADg4ODf39////9c35Dh4eEhISE9PT3r+/GF56z1/fhw457C89Vm4Zfx8fHHx8fW9+Ou78isrKx0dHSQkJC48c5YWFij7cGCgoIvLy+Z67p65aWenp7M9dyP6bPh+eq6urqZ67lmZmbV1dVLS0tKSkrv7++48c8QruqjAAAABnRSTlPvIL8Ar7DvmsykAAAGE0lEQVR42uzX3WrjMBAF4GRbhjlzNwJJCAl8IWSn7/+CO7F3I+ciLNtQ1w0+UAn9VXxoCMnp7fzrxD897+e30/n0QT8+aox3pRfIh5UVvUROrwLhA7KzHJC95YDsLQdkbzkge8sB2Vueh4yOPhd1vBHEtZS89VmUHkeEPhcPvw0kooSEiWgQ/g/IICP9K06G7SAKUaLcb9O+1Ls1RHXxu76q/ci6d4gLRDeAMC7WjtFRFjZRwdSESEIGmhINYj13CCdgGqkVlExNIuI8lfh6pgGZiHyBRBntaBGDZIH4L4dQwlTpmgAmj4sPABEQfMNAIy51QOoQkeqkqGswe0IJVaUMQ7EtpvAXVGKITcCNGc2Tn0fl6yEagBJ4gUz2Zw0RhIgRiP38Gh1yfcAadSmtBF5qx4YjXb0VkbJhrHG9tCiAN/j4ZZ8gOl+GNL9Rh5ALk2AFiZDgif5C5pecUhL4+bBDtFm19a0h7K4rGcMCudxD5tJy0iFXmWC6h7RgcTdI+xaIR1za+TIpeg/JGO9Ki6ONA8YVZMBgrdINkuG+AaKC7LxgnC+LaC5jBYkINtEhWibnJjANdmyBaCm+ZtEbxEGqF4MwproZhDgAKMOfy0yRZAXRBqQL9FZaVZbdLEgLhHiZukEoFpRkEGrAdhAL90VVJim0ivKD3ayP9qiNA1zfu/2Xxiq+ZmR6KirZRQj1bA/hAJSs9FyiAKlfuCmkh59gPPgnu/o9spMckL3lgOwtB2RvOSC/2a13FYtBIADDnRZzURgLERQNef9nXHa3CAu65maORf4+JF9Gxdl6IbP1QmbrhczWC5mtFzJbL2S2RkAIsg+xJGarf2JGjM7nhdTW3BAwobBuxxjyor6bGLL4YvWeLHqZFUImWn0kWwxMByGP+kxoYCaIbIozlkkg5Ky+Fkf4PERQ3xHmoZDxjC02d0A+ztgo1yATMDbKsxDoMzitq/PmN+9CQda9EB6E9E8qXn2uf9EivqR/KREehAjrZhiEer9BHPbX13gIBd3IhkxqZ7JyZyijIcIthaitSxY2D0Aa40AhdaK86mqBBkMgVYfhQJ0NAleHAkMhYqsMUpcyNYr1AyGuzRhAccMgsckYQyk0BEKpsyevBZVxM42AxMpJ1cXDItkYIyJAJ249ZQAEDu1GWkwobP8+kDB4Oba+4H6I2X29oxySboch0+6h+IuQ/okVWp/iUfdDD/te4+6HfLV3RjuSgkAU7Z7ZxUmKAjbwQEw0anzZ/v8P3J7N7nSPoEiYkcJwX9t0PLEqxb1lov3UhTo5S+mlnwU+lZf8ehB8vgnvPegxMoXotJdk/N4eYe12WQ082RK65WW+dY6YffMsGsUt4zl6IEZMX66D9j0dBWYVSO4SD40IGGPfH4p3t3h40mhUkyyTP2mEPlA4oud3CRG4DDKD3NT6BqSVEzwj66HlKvBQMoHguAIxrk7uSa5Nmw6zgYDwUswaQ0ZdpZVXOkjY93KLbIckb1wpnQXk5sPQEVlQ48pmABkCGGGBB0UfDyI8GOlNxg8Hmbx+MT1zgKNB9LpfTKovnfWJqJQmtXlBmHoaABN7KG0cieOb3T7KCjeyFNt272rNoPec1+RhIK6Pm3dnKX034Lb7NFkmu3y/US7jUgguIfBfWQ6NgP5NgYrfEiJg/ndRvIYxjEL0NSdnwRhEoQwyqIjIgS4IdlGRA1kQEHE5EBAFmWLjFCVJgoBqojVRBPH2h+rn1tw1ci8mpwgS2oJM0pO5ID0QWLayQfca10fRA8F9Y0IK6k+E8eYhg/t2eD3FHhkcoxUeN5IiCDOO0QolrYbkHPlX/8ruXxkRnex3oYb9VobwoTFOFaSCpAgNV41aiRwKAvlYzQnLXJUDYraXhMWA3AJbnFJAFlZLOZOjFJA2tIEuBcTJftlCpYA0Sy1+Lxdk0STlgix+LwbkND1imsCbqaWA4GKOAFuoFBBmTzLZz3PWYsyK/3VV9umXMZB//Yg/6CoJZEMVpIKUogpCTRWEmioINVUQaqog1FRBqOlEIBd2Cr1dXk7w6WnGfv28XC8n+Pj07zvG6/XHW+m6vFxf/wBvcT51JCx2jQAAAABJRU5ErkJggg==", + "image": "/api/images/system/signal_strength.png", "description": "Presents the current signal strength as WiFi or Cellular Bar.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card.json b/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card.json index 73e0635a3b..de9e54b5c4 100644 --- a/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_air_quality_chart_card", "name": "Simple air quality index chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_air_quality_chart_card.png", "description": "Displays historical air quality index values as a simplified chart. Optionally may display the corresponding latest air quality index value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card_with_background.json index efc1b71eb2..27e1cebfba 100644 --- a/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_air_quality_index_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_air_quality_chart_card_with_background", "name": "Simple air quality index chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAACi1BMVEUAAACxsqtUV1NDSUVhZmG8v7ejrJ6/v79+f3ZVV1Gipp9cYFttbGXCw72vt69YWFCnq6To6Ofm5+Xf4N/p6ujj5OLc3dzd3t3r6+ri4uHl5uTe397g4eDt7ezb3Nvs7OvZ2tna29rY2dju7+18wyLW2NfW19W8vbirrae0trC5urS9vrmsrqixtK2wsqu+v7qprKWusKu7vLanqqM3ODfPz86oq6XW1tW5u7WmqaKlqKJpbGlRU022uLKzta+kp6EdHR2/wLu3ubNgY13FxsVdYFtPUUu6vLV7fnhlaGKjpqCeoZuXmpTY2NdKTktnaWRRUlHAwbytr6mYnJVUVlChpJ5oamZGTEpIS0geHx5wcm9ucWxscGxsbmlfYmBOUU9NT0qusapmaWdkZmBDRkOMj4nS09JydXFiZmNaXFdLTUd5fHePkox9gHprbWtcXllYWlVWWFJTVU5FSkhHSkUqKiofHx/Nzs2FhoVqbmtLUE3g4OC5ubicn5lXW1hNVFJna2hqbGeWmJKEhYJrbWhjZ2RgZGJdYF/V19bQ0c+go52bnph4eXZVWFVRVVNHT01iZV9fYVxZXFpKUlA1NTTIycjGx8adnpyanJd0d3NkaGbCw76fn57Bwr3I2rFPV1W2t7aUlpCKjIhOT01DSEiztK+SlI52eHRbX123uLOSlJGQko+BhH9+f32Ii4XU1tOrq6qHiYbT3ciGiIJTV1TExMOwsq2BgnzZ39O61piv04GIxznK3LOfzWdRW1uVy1KVlpS004xlZWWJyDqCxS7LzMqizmk/QD4fHx7O2MTCw8GNjILW4MrN3LzC2KWPyUbD1q3d49eo0HV8d2+jz2qCxC2OyEUcHRwcHBx+swjbAAAAEXRSTlMAICAgICAgICC/QEDfvxAQv3b3fBoAABisSURBVHja7JS9ahtBFEbXkMjBxCZvIfkvkjVgtAvSIjULazURqHKlwp3zCH4B6wUCIoWKDWwtiB9iS71Qzp17xWziIi5czpnvzqzBxR6+HSWRSCQSiUQikUgkEolEIpFIJBKJRCJv5+zY89FzzHoTR0fk3en4jXQ6zH/4JPOh0zlLhJPTzWbz0/PNmHr60z7xXB7odhm2LgyHxRCKohiNRjIXwkwYe84DE+F6Uk2qa+GrslqtblY3i8XVgmnR6/WYwKA3GAxuwTmXghPS5/mPNH3cN+727vNJkhwjoagDUXAIFrLJ6+uBAwkiOLDMo57VZhE0EKmqChFvQcBLgEiQ1wYDMsBBMZHU4SGTP63TtNztSneb3zffT5JTDHAgJsH0WxYsef1QBKBRyBoRGJoGFuLRbmOiuxYCv1VCRfBYrRZgEq9F1EAtnPfIUiPL02zbrDPnnu+bl+ZLohI4tJog3sHaODgM1UIUChn7nAo2RMgMWhZmUBHR8CZ4ECy0D7YrPDzBwQysB3D6WWUikOUc/nycLxHL9818n7uk5dA3ptIDRVgLDAsL+56CyIWAjPVxMRvXotGqwzdRsUQh3A6zgNCHGbQ11MGxCbw7EbzQcrssc573u3y/dS4JBpeCndBVC3MA9kIYcrM96oGBrroWj3PiuzhnKddahUEbRC65XHPl7y5kUwWJ4UugjVyQp7vS/9E02fYlc2kSJKwADn0mhvVA+HkCVcDBioC6Fo96hgUBryBNaBnmoCJ2yUEcmH+bMA+Q2w1ONYSSpQ4l+dXky/0T/5GoARNuAYR7DRTBjFitKjhmBwd/jqHWQsCaCNfCRKQKsqAO0DKImNjXJBuYhoKEtlEaSPh9/VCWDw33HhEk/Gv/Yc18WpaIojg8X2Fyykkri6AIKgiuUUQUYZtsMRUuZiWE2SZsNTbQCPG6CM11FrWwor9WCFF9giDevlS/c8+Zjmk5o/XcufeqSe955txzR8cn20+W4UsMut0TAO1qvDdIWSlyPnRHEOULOAjZl8kUXXTRj0FZnXVfO2FXILyRQnhb0p1B5pOP6pcaXxvn4OikG+rhg2uxN4PKH/Bz4a3EdV0aPDTLpUuvntmqcXDyLElOAbZYKVJB27uBhWr4q0RcGSyNxo+GLRbHXg+S5NSp/5ENZaN0QGAVlItFGg/ql4iGY4uX2v9yqPzJIsvDo56JeGBSkWGj0YDI0OFdFOOq8FkBc7bGWhLqkc9BURFWaUBETDRqGWTWotjYovJPqXDp4EQsMxzCBCoQseCSIOcdEwYZ5QHAlOGwxkalCmhZFmgrqNeHwzrZOLTBQ+PtBQ0KMa9BhXtuC3XIJEOCRQhkBSL4aEFXqvyhaxLQmLV2qRzh2ykP9RTnrHBkIcyH7ZVJEJYMyu2sut41yFHX6Pno9er1HovIB4YFkSDqvsOktDsPMc5aBS5qDIU4uP90MQ2x8WutBZmkUxQJutRNvv/BxE0T4a5JjyAV5wixLDIrJNFvSRh1A0y1EScBvWBM3Om+W9ihINLutP0g8JXx94FIEJNwkFHTa4o8sDIOfU49Ql/iFlfNwy4GxXS6hb2Vh3GlHSdxAXE/7bYrlVFULsftSi0u++V38VMWiYtPjXmXxL5fiwe+RyJefzLtQ2DXtD8mEUwYZl61v00Km7LDfUD00JyXKbLaaRUZIoqTVqeQ1kHSbUfvKHo8Mi0oVIIAw6xba3cTH1JtEyA/JJJ8H0wjM5p8n/gdQ6kgkdCcMdEuz5gzLYgEeDbyplH1taluaIBjB3jwiFUgYm8JgLktNCFqlVncQuz8aieojAIRqVWI4D4GWIjI4GnRv3jf7xsfRWCXlhnh8ADlIJx6s/DzJPyMqToJt92T4T43CMLxugY8/uIRsC7OsS/g+JfjxyvKu45gZhWm0B0lcTdhkbaIUB2LCM55jCQGXt94LOJ5/Wjy/fMvkTGKYzIOPUzVcYiMh1V3FjbX9SCHeZNrACrXrpHI8RP0NUY9kAoh3ZQgYIzpjn6JwAHl4VMqSAShjhHYmaZLIoibRAbfWy1vQQRpsCLb1SrW1JkoquZ3YA9BRYAVOY4vnnSoCMIWEnkuBYHQRcQH7eh+LTEdv/h9NDgTVqfh9sQ0d/QNReq9aaGig3AqIlWIuBDZF72uvg6rB6LX25O+Ww3HzWbePIjCsojgnEixp9nuoe1AMCN5qWwoN4mpzUylZuQyUWt1u93Pvt8PozPmzv7bobnXLE2b7rapInYkYwoBYoaKNjO8PnHHht7rnjRhNHWbr92JOZlV0uhqsSxyGRLoKnLVX2L2rmVFAEsuMQhM0fPski2VSjtBqYQ/y2Cl6ael30s0bz1kc/kyLAgH3+r5BpO/SNl0Yz8D77NnIySJ3QSpSKS6JakFCauKsmPRwM55RABl5LIDhaMzuifjb4DH6UAySGPPnj1WRUz6E42NFThrcyp2st2q8BM6uOcSERy+eQw20oAHaZCFIEkB8+fYyjL87/9OCW1HaUs8tpxfP0CsrSEeolGwiImWimpAQfhnFTKAB7Wtra3LW/DYcuhe60nC8zg6mXFkWci6Ug0AEV1ev1Y6a0jOxGRdFQ4eHYOyJZCI3Gn1FCWNmzuPoqEJYQ1NCZCSTwNgDXWFSW6VEgf/F55Zi2fPnjn2Jit1LxMxUOh8//Iol2mcO+UaCWnQO5jCXbyDVUD2ClrJsxQHP58w3tq4aULUA0Hq4ppPx12rUSwWMZKvmtiIVZoHnnLwKsU5fXpDEVdFoEEHsVQF7EGiRYZVdH0J1qGUzU78hzzhgYrccnC73nJpXQ+LipSXRASIIB/qARNW0TflCV8mdBgIeHArxcHvDLAAcpIJjlO/gGJY9lCRu3O1zmiMvyVkl4pYE8SSKwHoijXhBlQECrjjiMZRoyv6mLXQ+QDs8TcRNYEHicCDTIBVgQyLcJiLwaddIqeuDSg3LLdu3HCgwbgbQKX821VE0JOtCWEPiDAQgS2jK4cGhSVWciPFaTSG1IbDTTwgohcI9dBKhgeLiIeYoMNEREpzcfOgLZPnz5+TxvMbztCCO1ybifAJJ+6yh4pwHCSKhIiGmFDXlGj0a7CbP/N8THEgwWzioSWSWmiNABFRj31qwyJqMs+Vxy1jmo++ScA45gXYQFCRutBbjDKHBpdIgVkhwh77LJoWuZYs8/h89OL69dZ584gjVtLnyifm4ydn3OuNx/WxFdH7E3ZWGTXTe0oqUi7zJX3ZhEsECYGGwFnBIClZVnlx/uYhmr+9OP9hdxaf+uBT/9Mnp/cAJmi95e8yLnd9ZjXEQkRsJZOJpOTu3btwUhGYFOY8DrAL+KvI+/M30sVz/fyXLJH3BFysyAPiJ2fm+9PUFcbx+zeMCGFtyGhOee8Lwgv74ib8CCQOfNERw49IYJNULLTNmg1Y2BgkGxkuArdEF6PTZjZxdghOKRRHaVGDAVGDbn/Ovs85p/e5vW2TjQ/l/vKU83zuc55zf3jjo1OgEwJIhPJCC2XCI0uJQKIRkIQtgmZul+fmsLIALVaSVmhVAa9kUwIX46cbmtOLyMtbKW4RlQ6JQ8QdITX/wkzwgXvmUy+jjWijSE1Ysblp4OUWwOI0HkqkrpIIcIk0KlwZcYMkMGvxZW81VEedinDYuCHfQYDTeDiGFoM92wSL6hmhVm5+M887x07aXONZ0YHd15im0ziv+f4UGnThlje2ThMPiwCuEU6IW2Tt6Q27qIfjLc4SSJjpGsaW4J4WF1OLqVRqccyAwvnc94Ae5W1knFUV8FGokaOhv6x3qE+XCFAeLKJb3Yubpmndk40T1i+sQTEn45drKuHR3FSkUgY55O4CtmAd7UQfILdZl0XK4ZR49fWwOP0uPFlwinhR0MmniafqmrG2rEpda0DkrJlTcZdr1BGjmpRx9+6DB3cfgI//P1QD0/9L5FE3zv7LHDwg4iGRhK7uYdMaHY2Tji0heZnkDtwWuPnsU4zeNCAB7j+4fxqPYkYymXIRL4tIE3JJm/G+3LplptVdI7XKmwnV8nwSdyZP693lnDPveUpgC6Jf0TdqQOJ3cP9q6ZPNzrOCOHRG/XZvd4f3dgqF1/CQt4yZ7fdCvH+24SGy2XfKxEsmKiLb5Ik5s0AKaXNdi6Ca8+oKQQvGMYqSMEFjSZstUitpgMjg4MAATAxoEFevnnHwdleAwzO2xQ4d0CL0RHcixK5OyEZWSPaPPECIF/r66Aiq2PWMRR4gGa8jEbBsJbwV0BLE5Zdm/hs0v5xO0rDMt2kNdaczPz8IoGJAgSgVORZie+ctP+hgn0TUHjgU4K0UyWTF/lambgurjBKpUyaOkPRoWDD74EF8Zp5VIjkzV11DQQk045Zlmsm+HMmk21Q2JD3zg3AZ6B8wrl7FEy/h8NgS4ggrprC795pEuEGhILalCNpu1YEjuGMlxDP73RWosT1AznwEEYlltVGbVcuqmg9HQbTl+vL5dbjTdt60cnyBHemZne2dh4shLeiB0Rm3eEcrBid/h0Q4YyfbokAe3mPxQcW2K/a1CJlUmitnrLoibVY8f/azdNxK1LgcNFqC6xroiepJ0rRuwULS2tVD9M4bsFDwg9htIV6/Oz4+OWSTUpFDbCMDt2lkCfFO/f09IQ60CJtwPoCZV9HoEwuSq+qKrWzk2vUt1nCQs17C4ROidWSkC/TMGvD4Y52ol5ANQiqo8sUO27HICbJxZle8g8iGEHuqK4yxN1KEgmURni1voTDIRHP57Dfyos0qJVksSrg0VHVoDbDUen1kpKdrpMeQGo8ff/11vc22ENnbh1v7YreKSEGcnDmzjeqWIlu1QIvUShE28YBiOHlLByLFOW3leICtweHrNVAePvxGQkvXW7tGWruMe/DA/6jPzbHICyE2lM+hfYxEbmsP1P1Rff0hcuGVGWGRWiXCJtpDEs/TkqE5oYoHcFo02NCO9vD5fFhEIhNLJDICEUjMPZx76PWySIFWdLLZjkT05gkmKICMeaepRtSsvgc9KYKeSISwPXAsZ95CK4ZSAqrng3Phgjx8mlBkZgJ10tpqwOMhsemVqKG1X12EUmGTmfZkxa7qCrNWrS1CJuzRAJotyz6pSohlSyTYo5KEqg8WuRYJtUNkCSJzZLGZDk9PezUUs15VEsEYeiFBYmo82xhRDeBAKWBJ9+rqfLNHY3PefMTjAwvOSTn2XMWxg4oi0SjG1vXr7UvGY2ik0+HwWA3QMjjLGW+mILLY3ttSN0EsciyO1QZyUOPJvBfZA3h8wOyrRaQJi1Dfr17+3YnDTqqK1EmKZY0vM9i3PT4FPl8wGJmYaF0KTRhzD9OdYAwi0gSfaQSd3d3H1cTrRWHvcZpAPZW39PDu4VBdHVqIbBaL7UYtAiACbI/1ePyRHYuGx59eFc09LFIMnE1oYXuAYDQSCkEkZMyl051jYLHGwWsKbP91jXTaYhGC5jR1Z5vBGEOgB7uCeH/QCCCCEwYRMtEDq7nvn+5Xn7jPqzIhSlOhLRwegF3kPnn4pUgsFoyEJtojIeNhOqxESqrOc3T7SG1tbKhUeTc2MlIkswEPCQ5tQKSx8eDNmzdQ32vE5sGa7LWBRX61/um0g2HU5OaGPeyCYEo8/H64SJFI+1IkYmyGyQTP8HoCwY+N6xVPGRCGiOrrICs+rKm8c0oopvW49cgVCzXjlJRpuPPhqyDiJ2hoBWNRVEk0YqBC4JFK3fS40F4uFbVmEe1B7GkPn4+6RCwyqL6/u5vpoPu0ykICbosKHhL1XfwA8mgCUAkEYtFoaCIaNMIkksKLCCo2V9GVZYaVppUUJeQTRomgVz0Dk8g6HSPkmWWUiIzctrBhDe0hVTQ+LUImgUAgGAyFglGjk+rj5s3RUbvqYKDBTnWXaUoIi3Avfj/6hIgKkjLmY5wmqg01k0umAfAworh9Eu6iqUhsKBCMQiRmLIKUEgHQqEA1FxJprCRCKSnGJBPC6FZahHF7cD5Q2IT9ZRxhkcBQgOatYNCABHlAhKnu4lGwCCdE9+Pzg1IRH+Qktgmt2aSahm7o13xqf9nvFBkK4OoeCBgoc3iwSFUThk2o1mUls4cW0UFSTOqYVoEMGlUVqXAb4rfrATuckJYWebRjqCNGIh0GLIi+vmoGVJGsIkefNtEl4nOiYy4V8TtQrejuQpW7E+yWenBZswm6cIpcGcLQikJkVHv0o9zcCvgo3HIOEdUhg150ShTFhDTRhyjalouU3OBqC52PForbz11gX5kErnQEcZvSMWRIC3j0FyPGQnsw2KkiIuOUHw11zCJy5OlggFZRQ55EkLeGMg2I6CrXFgp8mbvQJnJoxYLRwJBBEvgdGKhlkBxORxlFExYh7F6afvyxSZ1uFmmig1jQP0mwo2S1A2vwwJIa2mNtTZpgQAIc1motTYGLNP9GO64YlAw7I4w9szdUEfHAQ4mUDH9/JREoEMpGeWgROyWsQZR5ABKBiUtk6OKVjlgw2IGMALw7HRiv/e/ApLoIhewUkW4MmVAkLFILFwda5FMWgQdBVaJF6JgaWrErEIkUMzIAJpsr8lXzV6C4xkqxcFmy0Pw8kVglsKLF88RqG1hNPP9KgyN0iFmlA9xGd0O/9lcA/T39vSfgFS2oA3ywaHvSphmCCC6JJIJkTE5OnsPPAF6h9g+Ojw+OT9IWGJDgX899N9zb2zPcM/zduXP4TPaPhcP0NLY4A36+szzTvnznzl9/3elqvzS1MtW9cq0XzXtp0dN64dq1P39embowdWll5dtvV75tbf25e2qq+9K12Ul6/zw4Pj8/Pghm8eZzdhbf6eoauR6KRKPBCxeCwQuBoWSy+8vPL168FFlaag/OtP/Qvtw9FYgF6AIS6/jyIqatYOBLo3/g3L/tmrFum1AUhiO3Q6tW6stkMxu6qCzXHiLfKzU1CJAKVDW2YQkDEMk4E2CgS1k8FKl+AKRuXfNa/Y+dqq269AH4jIEQG853/3sQinJ3t5qivt0tVb5bTcHqdgWvFSnSNlvM8lzPdTe3AGxuSYSe/pNTkqRpWg5Dmh5/HGd1nFZVXA30l0y8FzOdpa0Rx1VlxEkBk7aFiBCiiovF+x24n95PF7t7MgGkDg91fbMpFWOulMZXzrnkj0LGBWOsMRrGPN/EUy+WzQ16xNS0Gw0iGG9YUHmr27vpClsM/vQODrvddAoPHM063Xbdg7vf53nXzbps9faSyLcflEialE1ypEhmTWsIzkWpAxsmusvaskxTIQwOn7ht21qNheQiHlD8jgonnkQoQ10/HNQCo6wYhrE1Yw6k8xjykgFtSILA58p2q+HBV9GiyNc0BVOLps100eV6Z01vsT/TLb3rFpTKlEAk0MzhsFyq6nLvurmbd3efAEwgUgxIZJ7CA4ksWCxCEYvSJs42QcUBiSRDBZFYPaRhH/ay3KH4mX75GESeZtY5kHqjbA0NM1CBhJRhKK8dR/FYUCjzOQt8aSoa7rtIhESQTnR1v6A0ciovw8hbrkuDbmVZdn+fUTvAtMv3y4eHEy3wcV23m779TiJvvx2HokiRyAMmGPVIE/O+D8PyoNr24WBj1VRIxBCAVwRXWdxL0cv5AiY0+gd8kBJ5ErEPtcpKRYlNbnJN+qGUvgyvr+W2YCcWyE2wcR4Rg7lVNlvTj3zznEhmdVaHAcfLyjq32+9ddEOOYCjmjFrbyvd7SJxO7PSwJPaUCAXy9suxKUq0sFEezyKLoBKV4L1RM1WlClU1EUCKMJblUFVtValqKhynF4Zq64tDzVh9/igm4oIm1+ygMsbmpsLNkPOv+GbohHh/lsZXrRwCZ5NEzrWiKKay3iCKSJoaJfISEwkiy/1yb2WIZQkTF4t7bteMsBADPJrm1CAVcsmnb8+BQORYDmmLHvnRtkck4lW8wqUNVj9VyBKRloYR9jxEh1cpEgl4T8VxptaB5yVewAKv8YKAMRt9ouMo8wxN803MKTOSUe9EUeR8jqI5q5niKP7Gf0Rf+HjI2vrRJZGXV6+6zkUgS9BZMMBWxZhTMHluW6DrlhcPEoEJVNwnkY8fjkU5jys0cXoWWXhCYNb0BmMBClShU4gQ9D2XZYmZJaR6MITT971MPNxkiyLxmvUau946sDG/ZnWQBJ5hapzTYPsychyY4H/qIqRcF87110BeaxCl267vRCb1yLOrq1evXXg84GV18MHOCSu42K691/OLJXmQyMWEEjl7fHx3TAbcVAcjQZFtaugFRFD2nOpqAugERWi0sQmRMKYkRFgzTh6hRHsNww3W2BabYr1e2+9u389qGHmaqZlUpEIifiR95/GzVDFT5fbzDaNDmo/Hxch/jExTe/nqinjz/Pnk+W8mAJu/mPzmcuDFBfri5NkzLGAyeYYfsI/Vb+jIX0zoG7T9l7+vdTnlH9BvcTasfl3icp43VyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI//NT8YbpQb0+2pKAAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_air_quality_chart_card_with_background.png", "description": "Displays historical air quality index values as a simplified chart with background. Optionally may display the corresponding latest air quality index value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Air Quality Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"AQI\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_air_quality_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Air Quality Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"AQI\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_card.json b/application/src/main/data/json/system/widget_types/simple_card.json index b43f4a12af..3d1c499226 100644 --- a/application/src/main/data/json/system/widget_types/simple_card.json +++ b/application/src/main/data/json/system/widget_types/simple_card.json @@ -2,7 +2,7 @@ "fqn": "cards.simple_card", "name": "Simple card", "deprecated": true, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.simple_card.png", "description": "Designed to display single value of the selected attribute or timeseries data. Widget styles are customizable.\nWidget is deprecated. Use \"Value card\" widget.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json b/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json index 9a541665ee..26115a3629 100644 --- a/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_co2_chart_card", "name": "Simple CO2 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAAAAAAD19fUAAABvb2/9/f36+vrx8fHk5OTU1NT///+AwywhISHj4+N0dHTx8fGv2XtYWFjHx8eQy0bv9+Xf8Mq/4ZU8PDwvLy/3+/KQkJCCgoKIxzmsrKyQykbV1dWg0mCg0mGenp643Yi6urrP6bDn9NhKSkpmZmaYzlOdnZ2rq6vX7L3H5aPH5aKo1m5LZ5BzAAAACnRSTlMAH8cQMfHjso9z2hGKZwAABOpJREFUeNrsz0kRwCAQADBuKP4Fd+qgT9hJHCQBAAAAAAD8VvP16tdoq+/L9dlqymMHMFp6dggrlR3CjBIpIocROc3Lbr2s1goEURieL+pC1aQbm6ZBBEXf//2OtkJOSGBvCIQK9A+6QBz4DRQHJFoDEq0BidaARGtAovU+ZJayXFvv1UkK48oE3+TE+MXeh1guQjNQsmzXpjSlpMBfg1RiYMpwWs4ldWpo5MAN0Xlm+AK0Cvi8RIGI1H58VDIA9mepgp9n7RBOZpkrKTY7uVvagkCMF95c8JGk/5cmAJwEVyb9qhXNFXQoHXBqMSAr+wVhSw29zxClGdB1VQAdsiazbDBZSJ1WW6nGgBSZVeTQXRx3e1ZgMd3pXCe/SIyeCZK5e4Nn2dBodneNAXliq4o7zUVbsnO31lICSnZmBTpkyqx7g+Z8nCdhlVgQrZXxtCQiY4DvZboSoENUiFZ+PgktEZUgL/u3sd6riq8pf73z541flD/cgERrQKI1INEakGgNSLQGJFoD8hu5mBXHG4WGsFE2yySKl0WGcMrHtRMZXhYZItTQ26niVZEh/9gzt+VkYSAA328CgoRDOIhURWk9vP/b/etmmf50pgQbZ8yF30xhMbnYj81GikUITGwvicci9JLZUEprl3gsUkkYCeQHWPBYJI8Blq8t70TWYVwFpgpfAMvXlm8ipSximQfAv8csX1ueiaxliVkXebvaFyeAB9bWq0VWVS6PDTD820WbS/Mm+YG19WKRIC/CMpbH8VJW5rz/XP+YiKWaZUZEKz2NR5SCZ3Gidvgcswx/f4EfF4ExapqJo1Xk3Akhut5k3tVCJAcgLhjXkQY3pj0c5+ayCOdqV7bBOpZI3gBjFzlgtgmqpBhrDBJM/wJIZgY6eAZ72fLD1No0QjAjHUqkKINgf5QhT7SLJCLRoGpK+EI+O1FrACVERp8c4AmEBbd8XjRtUMlqvn77Zr3i1s/R3C5C+V7hnrzA4yAiPGpKPhM1IFtx+24enaZ6jFWach+Nse5TBb9wPI05niRSPbBJyI+FInTLMxJBKVOkHcANa0SGGyAyscFJIrlgHIkouse9mdxRfK7xFOm5FiHaplk9tG0vEaEqdNQcEUshdLElEWPIgRi2ppkijmuFk/G0xTjBE8bZTIu4YBfpsUmiWiTqW2T7i8gVqJlIpAdIhdhRjylamje6KwP8hFvEgrMI5YBcwS7CJ40iGzNvw+WDlCrFA1O4RSy4itAelR0iIS7LRM5YDMqXP7KL2J8E3UVMBufxRo8iw4wIZcz5HpaKVDIAC84inB856OmuNfCuNRX5Q0VaGYIFd5ELloILMyalxu8RDVSYiUg06ZFhiciXzFdgwVmEtx59E0JR8njcUdzTQEpSLJKhZMK71plW1s4mQh5Hq4e7CCWVdDVmyc9aXUIx+SQD/gGwiLkWir9H7mPKLlLaPNxFmAwzF/WVYnWjmAdQT2w1IFyRBAfPJt/dfUyBVaS0vwZ1Fxn5/xlJU8z0PWuMPdLjIOdLEy2QB9hxF1kOiTAksohSVvB3PBL5/AAHPBJx5/ki9D8H06c9vA6/3mu9Rd4iHvIW8Y23iG+8RXzjLfKvnTuoASCEASDYgyZw+BeMBZ7QzDhYA3sbIbdpMVYJLeYq4Y+sMUH6oud4f0s1s9cZhQEAAAAAAJzZz8keC0HEP5QAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_co2_chart_card.png", "description": "Displays historical CO2 level values as a simplified chart. Optionally may display the corresponding latest CO2 level value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json index a498ba3501..0d7bb7ab50 100644 --- a/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_co2_chart_card_with_background", "name": "Simple CO2 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_co2_chart_card_with_background.png", "description": "Displays historical CO2 level values as a simplified chart with background. Optionally may display the corresponding latest CO2 level value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 160 - 80;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 400) {\\n\\tvalue = 400;\\n} else if (value > 1600) {\\n\\tvalue = 1600;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_co2_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json index 465fd01ab0..087e411d2f 100644 --- a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_flooding_level_chart_card", "name": "Simple flooding level chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_flooding_level_chart_card.png", "description": "Displays historical flooding level values as a simplified chart. Optionally may display the corresponding latest flooding level value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json index 6377995405..797f593184 100644 --- a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_flooding_level_chart_card_with_background", "name": "Simple flooding level chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_flooding_level_chart_card_with_background.png", "description": "Displays historical flooding level values as a simplified chart with background. Optionally may display the corresponding latest flooding level value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 5) {\\n\\tvalue = 5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_flooding_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_gauge.json b/application/src/main/data/json/system/widget_types/simple_gauge.json index 1683efee14..7367f4b908 100644 --- a/application/src/main/data/json/system/widget_types/simple_gauge.json +++ b/application/src/main/data/json/system/widget_types/simple_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.simple_gauge_justgage", "name": "Simple gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.simple_gauge_justgage.png", "description": "Preconfigured gauge to display any value reading as a circle. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json index 7e3acf21ff..ccdd2daca1 100644 --- a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_ground_temperature_chart_card", "name": "Simple ground temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_ground_temperature_chart_card.png", "description": "Displays historical ground temperature values as a simplified chart. Optionally may display the corresponding latest ground temperature value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json index 722c95c709..c72ff131bb 100644 --- a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_ground_temperature_chart_card_with_background", "name": "Simple ground temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_ground_temperature_chart_card_with_background.png", "description": "Displays historical ground temperature values as a simplified chart with background. Optionally may display the corresponding latest ground temperature value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_ground_temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json index 32dc860380..85a4955e12 100644 --- a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_humidity_chart_card", "name": "Simple humidity chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADg4ODf39/g4ODg4OD////g4OAhISEjTMfj4+PHx8c8PDysrKzx8fGQkJAvLy/k6fhYWFg+Ys50dHSsvOqenp6CgoLV1dXy9Pt1j9wwV8tohNlmZmZKSkqDmt9aedXI0vGRpeO5ublMbtK6urq6x+6eseeRpuNaeNXW3fXW3vTW3fS+UfxxAAAABXRSTlMA7yC/r1EOHTEAAAR+SURBVHja7M9JAcAgDAAwytEf/u0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh/79bIiNwxEYXh1OFSVLohG1ka9MX7/Z8zIYdJm3EFhIMJm9CPjonYfeGFNyNWakKs1IVdrQq7WD4Dc7JryV4g8Aw5pbrsgOCV1JyvF14LB9SFi5FESDIBScapU+YQkRU4YWR/y5Ef5DcQJvPMfxznxbgPEeXwMjuKdaI2uLdrTaQxk4Z6eIXQQqtCS2TMxQSlIMUWK0AVj8sxwFHQaAhFajrEyvSBsHSAZGwuW2CDKDdsO2cEptdNrCGThA6kUsvyBRFXNB4hrAgS2lyOgL0iObeo0BlJJKyWS6+nTeg/xR4iPlR6dxkAejKU8VlJPkPhA/grxDAgvCBIrug2BKG2LS6HhBMlk+gpBaEv5vSSgdOg2BILKPYdzXt4uj9MWMaY+BAtJW/GtFlvQbRQEEME3C8Hj35t/vxNy7Sbkak3I1ZqQqzUhV2tC/k+aQ8h6e0iO3LNwa4g8mZwAfq00uS9ELK6f82omt4VYlKPK/E0hv9gxtx1VYSgMX630Ly20tIgcRtFxO8f3f7/NdKYeCFqICcGE78YGuFhf1gmRTF5//kieVESkdIVV/ClFZPdDP1f2KUXEhjokLHoKkbX8F/V2iCdW6ROI/K4+IX3QQhD1pGQ+ItHK5iveE2Mq+VpuWB7/rcI1UU9K5iLCU8aUYszyrkfiDyKXMldKBgbAAyJ6V1ycdc+dIFypJG5/8s4bB2f2dHxhrWvOqZeN4I+KvFcAGn0+m8xrNADeBnkIH8f6qkhifz34aZarqydjHo8V2QLmA6j0+YwjOUpsdwYF0U4HRBJ2iuL1cijlviHCrJWfB3Fk1U/ybDRGRAMlka6wJcqAvTs35DCHn2tZezCh1WAviiS9qPxk1BuxsCu5ai2U+xVMyOEiR+CLiBociEqYvxxdi7xDj9jVryw5FxyNoZsJ2arkfLCIi7LGB1G2d92x9yJNpVuro0ZJ90nFdZ1Z7uJQIxq4vzci6+dgUKRwRaWBjDwGNTkymAMMNSaQEM5kp2NYaq1iKaeH4VZshjV7VsE0FWryvAHf/l5d7wvXJXexrBMxz1MhfIU8ShwPEylqtFSnYD9dx5/RpqRwq09AqLQMTLYrgczHjQNdUkJ/1k2tA60+If0iGaBduNXJo6ALdthrVLWpbpsEZ9MUIm5ceR/n0elsY2iLr9ZnSzfIgwmZQsTvjjcnUhw6Hm6FNCC6PYLz8NKbQMQZvP9mwq3FTgW5+EsU9H0jI9FmIo9wsx+AygA4/kh5Si+y1UQZ6mONrHfIM/FK0xAev6UB8LFzK70r4nDX9z0DPnHv7tMR/j+iC7pL0fdAJEav7jl+jecpExENY84iK6WGN/mcRV7siOaYs8gYFpFF5FlYRObGIjI3FpG5sYjMjUXkfzv3UQAACANBMLT88G8XAwigzDg4AbenMeQ0GWU8IaNd9mXdm/2dCFLUnrcrrQYAAAAAAMBvFtRAowTiuzzYAAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_humidity_chart_card.png", "description": "Displays historical humidity values as a simplified chart. Optionally may display the corresponding latest humidity value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json index e5f8c1c079..903c089cd6 100644 --- a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_humidity_chart_card_with_background", "name": "Simple humidity chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_humidity_chart_card_with_background.png", "description": "Displays historical humidity values as a simplified chart with background. Optionally may display the corresponding latest humidity value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_humidity_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json index f2490a6a1c..16e96fe81b 100644 --- a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_illuminance_chart_card", "name": "Simple illuminance chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADg4ODf39/g4ODg4OD////g4ODYGDghISHj4+NYWFisrKx0dHTx8fHHx8c9PT2QkJAvLy/64ubri5vaJkSfn588PDz98fPdNVH1xc26urqCgoJKSkrV1dXxqbTiUmllZWUXFxfnboLzt8Grq6vumqjpfY/kYHYJCQn309rsjJxDQ0ORkZGBgYHfQ13Q0NDAwMD41NmSkpLgRF1SUlLcNVGnmCfWAAAABXRSTlMA7yC/r1EOHTEAAASiSURBVHja7M9JAcAgDAAwytEf/u0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh+7ddMiKQyEcfz0SFWSysshHtQGvQndzQzLfv/PtqXdLLuY6dNgR8Y/gVCUl99B9ITU1gmprRNSWyektn4A5P6JI1WGCIBrXu9nlwiQhXHYNma8vzLk2j+WZPHM0gtIh/dXhjQ36ema5Y4txHug83q8vcBb1umiZ5mgs6LYsu0EEKvbZSxC94BoNBFNv1CAOIPlMmloyQxtEoT4mDxicq2Bp2CSAUIylNHR0AbBpn0gWR0qkRcQvZIDU7dCRghlRI+O2CspEywxXEBwurLYtAMkz59uhcwf4/wKogImu0IcQBEXF8IDYgl9gCY0GKOrTTtApJHbAyLSbCHD15DgxP8HERbqvfeMTTtANCFtupfekT4xhzJE1BL/QvSS0cAMLPFtEDQTTSNKEG4pDWWIKsiQf0KWqeXleTLvgyDN8w3lWPBVwoWJi4y9IE2u4Xv9DZCP628cqR/w93uwTkhtnZDaOiG1dUJq64TUVmUQn2PM/vCQnGgtxENDeCBjGZBupMDHhXBIHZ51beDDQkLif1RtkINC/rBnRjuqwkAAfZpMC6XQboUqChtX1+iDyc3N/f9fuwPEiiwEyBoCCedBRsPDnExnWsFnJ6ghWbRQkdCDF4TiixTxmWy0jBKLFAn30CBih0WIHPydbOsQR6C8BYhUW1/oP5IOY/hBxOR8RORGpBvekqPn88Npz9Kg2grblhGVZC4i3GNMKcYEb3pEjyBMfT9V6tRaNibfIKK3SS2+uvhs7eA2UCoKSCdtnDg4E+6WT0auKYdW9iH/rcjNIGKuy/iaU2wzqPhAHHzmiPnDyIMngfu97xE3Vy8mAQ/Ginwj/qP0TWGiDZrcImZjRSLmstgxHxwpOwyv6WMeBFKoonhCjhHRiMfS4BsAjmjJJ0czViQU4Nh7tUkbjToRh2Ljb8hCldeYRt1wkS/EKxTJ3wESxDPFW8TtU0TrhMKELgP36h2LngsOxtCsxIlUUj5cRNPlgrkzIJ/MiRT1IYVbcVsnXvy6zgQv9VTMYRzN3pDCzcE+kaRcVLrMfVtVBxA/ahUx9E0j3dUJZ6dGxzBPCPWWt3BcxPthzZ4ZtLnBC5QiuiFSfhpNzZNAJ4I1MuapF4ZCwlsIgmEiyQUJk3WKJBYNYtbT6hPRLUJp2mx7pEzbRSo/PPYfy7uZRCSrkj+i6egRoq8gMfQwhQiNK+fzB/EL3BR2IjdENN0tkvYWZBIRamMgzoVIQgPqxz5STiwabd0eEfQwiQgZ3AC0LX0uaEjnL8U1kRwtReTWhtxP5NHf7HdEY7FaVNogWkNxTSQrG8Ri3jrkWbyDaegfv8dCI99Cgc4pvpOHE9H2scWcoUEQlWf36ej/P6KTp5fWMAwZjt+6Z/g0nnssljCMOYtslBre5HMW+RQjmmPOImNYRVaRpbCKzI1VZG6sInNjFZkbq8j/du6EAAAQBGAgfvSPbA3EuwYrsGqEVJMxTgsZq8dyZ/eZIMXc+bqxZgAAAAAAAPzmAmkgqmF9nMW/AAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_illuminance_chart_card.png", "description": "Displays historical illuminance values as a simplified chart. Optionally may display the corresponding latest illuminance value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json index bf5727d8d3..61978036d4 100644 --- a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_illuminance_chart_card_with_background", "name": "Simple illuminance chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_illuminance_chart_card_with_background.png", "description": "Displays historical illuminance values as a simplified chart with background. Optionally may display the corresponding latest illuminance value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEX7+/koIh8qIyAlIR8sJCA7LSU5LSUjIyIyKSNJNCZFMiZAMCZuRigtKCQ6KyMmJSQdHiA0KCIvJSEgICFsRysoJCIqJSI4KyQ+LyUvJyImIyEyKiUyJyJvSi5wSisjHx41LCcsJiJDMidwRyiMXTRuSCxMNicvKCQrJyRsRilyTC9ySSkyKygvKid3TSwwKSU2KiNzSyxzSit1SytALiR1TS6UYzc0KiSOXzVXOyhTOSgpJyUxJiE2KyVwSCo9LSSJXDRRNyd8TSpHNChqRSksKCY9LydCMSVoRCmQYDVpRit4Syk3LShZPChPNiaTYTVvSSt5UC9ySyxySChcPihrQyc4KiIbHR9tSS5UOylWOidjQytPOCg6Lyh6TCpHMyV3Ti2fajtmRCqIWjJlQiiRYTeYZjl3Ty9fPygjISBrRit2SilMNCaVZTqAUCxnRSuOYDh8US5hQCmGWTJ9UzBFMCV6TyyDUipiQiqRYDV0SSg3LCaEWDKbZzlqSTBdQCtTOCY2KCJoRy5gQSs/MiltRSeVZDiRYztlRi6lcD+NXTOYZzxaPiqkbT2ibDyPXjSLYDxqSC2YZTeLXjc8KyNcQS5/TympcT+daDpvTDGIXTl0TjGbaTyAVC9MNyliRTBhQy5sSzJIMCVlPihoQiaTZj+fbD2LWzJQOipWNyY+LCOWYjZYQTFhPSeNViqIVCmtdUIgHh1PNCawd0SBVjJjQCZaOSZDLiR3UDJTPi9cPCeqc0JXPitoSjRJNiirc0D8/PuDVjB6UjJnSDGSWSqnbz1eRDJPPC9IOC5DNSyhbj9MMiVfOidkSDOEWjiOYj53SSloPyhMOi7/+e5TNSb+yY60ekZvQymcbENsTDVxTjSHVS3+zZX+1aT++/SWaUGkYiqxaSuqZSudXir+xIaXWyr+3LL+0Jz6nkpzRSr+2az6qVylcUR9VjfPeSz+v324bCr+uXP4kzvYfjD+9OPkhzPAcCr8sWjsjzzIdCv+6cz+79f+47+7cjLcllLCezjHpvWIAABhwElEQVR42jxZa09adxyuFwygkmBUQJkb9QhzF6WTcjmx5VIyOTLAC5KBBkXQUaV0glZxOHFN3WQqmXPqMl0WWWRqWJxtdcFlxiW+mb7QxMwXfoJ+iz3/s8ufi7ZoWh6e2+93br1eVfD6L3lVBVUVVRUyhUTzCYfzoJf3e0+PcTrYnat/WVLy4xNrp+nCGrZ6LzrfC994TeHJ97pqm+53daUt6cvzy/I0TjbddR2+vPCueC9eXZheXeC8uk6nu3Lb28azzUPV8o5eqVTOzCiFohmXQDQjEOhVKpXApV92zcwIZ4QuPf+w9yf3D599+6vBMLj+6M/FI9+fW0dzvvX1R4/U68z6+uAgpTVoo1rGoI7NUswsQ1FqrVrtP4mOfNTXUd4/EQzoPAm73RgyGu37RnL25T1yuZzfy29pEavEHI6gSMQt4t67x5VwpQoul/sJl3tPg/PGG9UKxZu3Hj58/Zeq1x/iVlAhq1RwRSJOcfEDea9x3v3UGbHUtzU8a+g0hcfDYWBhHcbzzcVFuMTbddl1mT43p7vKzebs5f10+tWri2tT+PoiHDaZTK9M1xdd6a7L8+y2cWysV6US6zkCZbNUKVQqgcWyS69fVulVghmX0uUCFEpRsep7mp7+4sO3fo1T6j+P5ubWj47mjo62Hq1/qR6cGsSTepAx+P0Gg1rNLA1o1RQ1oKVisUzmJN7eVndnIhJx6jz7Ro89YaftCQ9tp3XAwc5/wOvlF6uKizkCTpFSJFIKNQBBgoeCq1BU33ujuvqNT/BUWnrrIWjx8JfXXy+oqqqqrORyNUWcBy1yntxot9kmAgFz/f1hQHAT7rzwDltvOsMlprDJW3vhfXV5aU5fmuvS2UuQYqgrnb2+fnUNBHDC1/i+C1AdZLe390NjLTscgWBGpJQKhUqpUinUKwXLy8t6gQBQuEQzQuEMOMLv+Wl6+sMPRw2GqTXf0dHe3OLe0Z9/Plp/9OXsAEDQDhiY2QGKmmUYbUatppKMI5VkBpZOovGNvo6O/n7ntCdhSxiNIfsZmJFI2I20nReSh3p5fD5fVazXFwuKOEUc0T2hRiPRSABGNYGDgPFGdWM1WFHw8GHVw4cPK16vqsqTSWQaDUfZ4u4NuXVuXaS7PHC3ocH0LDw+bv35Ythq9YY3bqwrJlP4Vfh+fdY8FEyfX56fZ88vty1d6evr+xcmr/fVdfgagFwCoezBwdXmFUih1+tFQohDKpUqNWVAQ89xiQQugYtQAneBoKW3x/7bp198O/pH9OO1tePjv46OwYmj9fUt7TpIMaWmHIw2yTAMBTowVEobo5ZiKcMu48+ctI+0DVmCzmCONiaIREKQhs5opG06I88u7+X1tohb9GJxkZ5TJBJBHlAFaIG7orqaiz99UP3GG41gBSAoKHhYlVdQVVBRmo8XxGJ+7/dj39AeW39gomOoYeTJE5M1vOKFSzSYvBvwjHHvs1prkzmds6TTuXPyOEinzy25y1eA4JXp1atX4Ac4AZS298/gFC07eteMslkobBaWlUkACCGDYEYJKPAsFLoEKvED+U9PP/30uxf+jx1rc6tHz/cAxNbW1pdbgwPqR7PMFFCIG/wGBsSIaxmHdpYZXIolGX/yZKPvbt1Q6+MInCJkp2mjHYi4aR2t67G7v+/h8Xljt28XgxUcSFSkLAIWGriFBoyQEGJUVwOJd6oJFGBF1UOIpKAqr6yQK1VygIXc7ZbrdMAikL1fYjJ5L8CL8A2+KRnuNHnDk6YGb1N9Np1tPcils5Hz3EHu4PIye/nqkvXLy2t8Az+9PD+4Mu5vjo2plgUCkXJG2twsbS7Ds1AoUkIbItHyjNIlFAoFyyq+nLY9fe27P158rPXNzR3P/fV8FZ45N+j7XP3xI8OAwzGoZvxLai2VpCgDpdVCJo4laMTvP9l40nGnvDXo1OloIx2yJ3DTGVmzsMvlYAX/dksLX8zRiznvCwQc/NOaZo0GlAAQ5Kaprv6kmvUKeMTrBXgqwKmUSIWaItXtMXmvW6ebDvYHhurNfZPjXqvVNBnOmOCInd6mEWu46zoN/t9J57Ln27nt84Pt3Pnlwfl5+rKLEOLae3l9jddBiu1NHqAYU4EUkIcQOEilzfgCVQggDJYrSpdAz5fLdY8ff9j+wsBMLa4+Pz46Wlg/+nNra3D9y0fUwJJD7VfHklG/n6Io7YA/FltimBQzC1yi0ZG+hjtD/ZEJZ8LmsYcSME6jx7PvoWnabad75Dwe/0GLSozD0Ys4Ivim8p5SCEbAFhWN8IrGNwAFIqT0Vn5pZZ7sYQWgqJAUSoUkQPg8Xs88bZxwBupedrz3xDTsBQY3N96wKWxFOhA3qO1KRyzZgzTe7PZBLrK9fX5+cJAlMXJNbjjpLvLi2f7m5iGQELBIEFIQZgANF1QBIFxKcEKpAg/nJyY+/O5FdGDQN7e3ure3ujg3NweBrK8zs1otaBCLUVSUcRiiS4w25lCnHKklR8wf3TiJjzbUtJonkB82YhVGe8JIwzFstBEK6eHJf+fzb4v1xfoWIAGJFGmUSq4QronmgEAlAnnnjUawQnGrQlaKUoFiUZlfmS9TivBL+Ih+o3W2p5GJOrP52ZOwyTqJLnGxUuv1XlxYS8K1pq4mcySbzgVzBImI7Wp7O51FWlxm05fX5NZFTJOgsw9WqFR6gUsq5JYRTpQVSqUaKcRCkmQGqSIkFaOFR88//uruaFQ74FtbON4jN9/CFtJjUD2rVs9Go0k/Q/n9jAHiQIYySUatjqUYv3/Dv/FktK0etHB6PB6j0ZNI0AmdUedxT+sSPT10jx0BIi4WFwMG2CZ0ek+EJiFlwxSAAAXWLRob371VUZBXUJBfUfF6RUF+KbdMVATX5NMwiu6J1sfmkpdNyA3YxA2KhfdmcnzYOgljLLGUR7Ln2XTk6upsG2c/t311DjiyaWKY4AQUhJcPrvbBibGdGcE/jJAUNkslrERAv2YlwMCZEYhbeD3u7v7XXsT9zMLUwt7z073jrbmtvcE/twa+HHj0tTo2wMSZ2Uw0HqVADa3WwVBayuFwwDU3RkZO7rxX1x/I2TxGOgEg8KxL0DYk4Dw40cMjXiFGhBGB4AiL8K9ypYQOEkUj6ABM4JvVjYpbsvy8yryKqny4haySq+EqBbe//4mncxudHwbLA+UlDbXWt2GZ46ablXFv2GuFhz4bvj8UCHqCaVvu6oAOXW1fne1fgR6wzi5Aga5FqsYlfORqc3Nsc0wlgEKlgKKwsBDPZQBECjCELBIiOAVPTk9PvPXWaJzync4dP3++sHe8cLzw5+yXA+v49NVaEMFviA6AMw5qgHVM7ZJa7UhGTzIbI313aupaJ3I2W8IDeSRodKx5u8fm0Xnm8T2NCGlB2QQUgvcFontF+AAQp+xRAAtuo6Iaj3cU1e/cqiTCqMzLz8srkMkkKFgc/pgc9WQ+MpGzmO+/92zYO74ybIJldpqGx8Odw96mcNd75Zac7enB9Pb+/tnm2eb+2X7ibPsgS9wCBRwxegmtZEEKJOnhsorjIk4BICSFAIIIhYWC1YhIrxrrASk++6g9Tg0Mbh3vPd87Pj5eXIVVfPnoz0dfa9WzWkptoOInUYCijVOOmGGJWlpKxWInJyfxkT5zR72lP2dzghJBYw/brTw6t8djs+lomtfD57W0qG4XC8R6vDfYhUaDXiFhi4VCUtrIZQWCutl4qzKvUCaT5VdU5lfkcRVSkfj2gwe8n+RGpyfXP2SpKRkZWVlZgV2sjJNjmmyaLLnfNZQNRA4ObNueTSMmjM3NM+M+oDjYPs9en0MfKOX/9Kuzs8OdsUMkqVDaXFiYX0ge0rLmMiGgIKEKt+Do+fwe2vlh6x9xg9q3uHj6fG9v7vkczhaq5qz26y/hD5Q6GqUMqBVqZoB4xiATizGZaCYafTJ6t6ajLRCJ2BI2XQKOCcPQGWmnx6bTGd1uWAWPjCB6TrFehKpJzEKDYqEkaYojaYRIuEQnjY2EFYV5hXkkShVlGpGo6LaY/xNtm7c9nYi8bGuo/9FkNY1bO1eQIMQurJO19+suLelI0AZ5AAZ87GOHV5v7+1dXB6ieqJ9pIMHS4mCbvKw6FMwIWV3k4+QVFiJFQAz0LOWMEL1T9YDntnV3fzTqp9SLc8dHz1ePV49OAcWX60jSrz9mtAMfGxiSmxSDKIVnxhyUOulw+KMncZDiSRtad8CZIyDQNjpkTCR0NpvNaJtG0ZDbe8b4iFI0LAFxTpgFxjEp9x4bIAhT4hcK9O5GQFHKLZRJyP8S3MCsphQXP/i+x65zT3dHLJb7XQ0mU+0Kho8b6w1msYvapveuu8qz2RzoZ6T395GVKmCxuRk6uyJ+Qbz0PM2eA1jF1ebYoZ4UyjLCijIWi7wyaRkiFcQgR6mCZ+rmW0fbG7QUKgV8Yo7gMLfg+9M3uDb4Jd67IQqz9DNRA+U3+DMM5o+pVGbXkUmetPf1Panpqw9MOJ05J/TggSxgGB4a4vBM22j0CjKBFItJmkIeoiJU709AC6KPUoVCVloKKHAARuktzB353Pw8IAEo7uGHOcW9qnn7U8/jQGvgTu3bkya0CowdSBGczuGm+npztj8XibhpOyxx7HBnR4USdbaZuNrf30bPOk8TmwAm2/DTQ5VqBwVC2VwIUgCGvPz8QhkpnGykEKcQ98rdTx/3333xgmJ8p8+PV9lWcfTn3OKfa4Mo3RTGjo/j2mTSkTTAPh3JFAzTkYox0Vj05KT97h0kaVtkYsKGXuGBKIwY0+dpFESnbd6tM/bweC1YB9wWwDYxm3KUGtE9djRFkkpKCSlKiTwURCAQTT4kXCHLzwdS78MqWvg/hXroaWdr1lLzdufwcHjlZsV0Mwy3WJnsfK+kMxuw5HQJnf0sxFJCJcD73VRt7m9eHSBXYRigBaBABzWejR0uLxN9lBFKEG8mfgHjBDPYIHXpVTza1v3Za+0b/l3f4urxc+CweryIPcUCprBHWsPHLx4Rs/DHtKNxvzZqSPpRMmOxFJWKonOPbHTcrbHUTExEbDYnmIDMQLUCJPNPQQydzs5Dw4JtFqtACozHYIUSWGi4RB7so5G9wStKbwEhvCCDiPMlGo2yqJj/fYgnt+mmc5HuQE1Tw/Ck1zRpugmvrNyYwieTJU11lqFgMKHThUJjwGB52eVaFuwQjSBR9w+ugAShRPYAUBAkdggSeO+Am1ACD8AC4ywTkoIhaOH30k8/++qt9hNqybdwegyjeD53tLiwuOhz+NQMNjRaP4QRT1IxbZJKxgf9KWrJMbWrTvpHR1+8aC9vq79TM1T30jkB8yJpShuNCR3k+9SjsxF9sHsbZCn6VRFWN1CJkKvRKMAJBSKkFOYJWkAlqFgf4G+5ebK8fEkhF+VcLBDzQVlULKfz8cuG+yhYEAiBwYta0fme+X4u2N/t1AEK+aaAIDGzs7ysWj7cPNzchF0Ai+w5DpwCrQK1AlDNSIEEDnEK4tGF7ChSpgQcAv2YHD1z6G57ancJ6YHx43R1b25hccG35Zt1zM7OIiaS2gxl8CNAmEyKYtRTlNaRymhPTkZG2u+2tXWUl1ucGNEBhc6mQ+020gBlOuJx2jGEwCp4YigEOyzwooiYxb1PCCu4ilIFwpQrkxCrULyDcQzCwR/zZYUKmYKrLFKKb/PkPDeAmOgur7/fVHITxv1mHNRA+bbW3v/Rkgt4chgCMWTtCPA+XTjLO8skSPbRPaGQbJqVB1r32Y5q2SVsbgYRwDoc4hYEi0JUcDKJAHd6+umHdaPRpGP3dO+v56enCwunC8e+qbXFJbXhkdoQZ7RaUCPjp05ACPWuOsZAHfHMyUZ8tK/9bntHXWskMhGEWaBUeQAFtIsdDswC07WRh31eMXFNQAEk8CAKARR4zxIIBE8yUAIKARTYUJSVyWSVOBKJRslBTZV/b/R0B3ORl4ESrxe1apzs89Cxxleswz9asjYnjVmYPzamFyhnXHA/l3BmGVAcnp2dwTivDiCQS5SMK1jFjmpG0Ey2FP/BwBpnPiJECixACj6sIvLaKELBsbAIShzvLcIoFqYW16ZiS9pHaq1hABvNuJqJ+h1UzL+bTDIpR9LBxDdORvvudrTdaWuzlFsCjwNOz4RTR+bRhBFZmkB62NxGbPR+f8B/wCkm+0SUChKmGiVZbspQKWTAAWCwxUJR+uYtqUSjKJS9nl+VX0nKZpG+hc/7Xj5vc0ZaW1E2vZPAwouWBV6sdJY01QcCweC8vVe+yVcJsHhpRgzgLO/s7GxuolwiRa5QO4HIP1Ppsr55BkiQ+Pj3sOUCdgEkUCowknZ/9eFH1IB68XT1+erp8fHCKoJ0anF2nTEwaFSIUDUVx1aTSsWTsaQjg7VNZtYQj/eNtLd3YFNR3v840N9qiwSDQdDCg5Ll9gANsIKmSX48aGGjlM0PEeQh+gTm2AhCcCWlMAsZMoS4JqDQSOEeZciPUvRirlLER6/o1dHzE1/1B2vqa5+hbY9jhxceDo8Ph1/++GOkPzi/H8JCRIXCACRIiSbT5c7OIdyCrVowDAxnxDQPd5YFLiHkQQAo+A8KHNACvypSYXNo6//qo7h/YGnh+BhJenx6uri1uLawtubbnRpE0Y6iWCRTWiaa0VKpFIIjQ2X8qeTGxsZI+50OQom6/vIIWfIGUSlo4psJI+oF0QhmdEwgt4s52OXpCRBko6dBv8IBEKgVKBalMM53GqsBxScIWBmrY1mlVCoSicHZn2jj/HR3f3nXk9rJJ1aM6J2mG8xhw88m77+MBBNI614+H/2tWSlEc8KbEgiW0SphF9DI9j784hydApxAxLiUaFf5BAmcvILXWYWQkQx8EmM1opt//NrduFa9uPD8lMwevtWFtaW1RfXUlMMxS0EdhiQWV8xJjIrtZmAoGcZAwUoNoycjH5lramrAira6ugi2WE6Pk/gEwQJf52m3jqxusK24DVogPohp4oEoJbVCBtOEX4AVpaUAgg1TDaCQVFTI4BVlyqIWfTGPJw/NG51OS435WS0c4oasM4dN2GU1vXw7kHPqjCEej7QWATt5F7LDhEulAisOkaiEF9uY0/CHMVKvEKUID0w4BArc0fL/HcpEyygVzu7Wj17EB6gFMpyjUJyu+nyDg6kp39LSrgN9gtL6tejbDGNIOvyZTGb3xJGhXrwYfdL+0d2+cnN5jbk8YLFYAlh529CujDo6REMogAWfGJsgLcXLYjKDFLHjGBYWGjZNoQ2JrBQ5QkrWO6XvAgpSN/NQsfIqJRqhkiP4Hpsbt8f5dKI/2FQ7bMJYTpwC1z/ebip5Zn5pCSaMod5evWp5xsVOm+RdEYmoUDvZerFJJhKy3z0kO02lUlrItqsCMAJY/JMhpFxIOSpVr9v2+K2OE8OgD+PH6tzq6twa1OGbig3GBpMYQRkMX1pstVMOBpTQphy7qV2K7DNPNtrv9JnLh9raajpePm6zYCDL6ZwkQVAs3EYd2AEPxcKb/4BfrCdY6Iv+2+dp7ilIr4A8iD7I481GPG6RFUYhJvRKHI1IwBHf/v53mp6fdj4eCpS8XWt9dmOyesdNiJLOhvramhxYYTvjqXZaVC5RswQfLz5jKJ8EqoplBqxzE0BAHnAKlwDyYOODhSIfe/W8fxIEGbLc0vu9Ldjf0R73D/pOfcfPV1fJHs+35ltcW9tNLaWoTBLzF5omJAIw/P7YroPBFi/6YqRv9M4dWKa51dJqfs0MTlgmJjwkTLdBjZAO86QOromLY2NjLSqOGFmKRMCFEGy8hWjVxDRl5CgqwQt2GnvzFmb3/MqqCsILrkLDwZqc/xPP5p63TUR+7GwYrp0cxpVBdq3pbbpvMbfmnLjKAH0si7DL/7c6lbESWSZgjOGEQiG2lKsE/3du1ikABhEJaZ1I1zIhp0Uut/W/1rZh8A+enp6CEQsLC2tba1NoFcm15BLjxzSaoXax493NxBwpB+FEJhM/MWB31YB2VVc+VBeoa+03t5YHJoJOG7bcoZBRbjTiCojN2INhPfQACiGLf1K5RaxE7imriWlKAMWbwII1C4gEvUKiKcyvqoRXIEuln3CKsdrE1EzPP9VZzCXoVeO4JIYv6N/DG7VN5pwnmHD38m6rOEpc9wMhwHeIhHQEnH9GM+wzQyhgRB4z+BlJYWEV9PE/GHkEDKSpSH87RDsft5YbDI5Fn291dQqtGz1zYWlpatAx5WB2k1EmGY35Uxi+dlOxZCa2FNuNRrHQPHnSsdH0UU1Na025pbXNXN5v6Z6wPQUUiX07b38fM5lHR7uN9p4eZMjvYrZ1QyBids2rYZFQQBmVb1ZWvln6JkkRfLmFv8UwBjBQvblFotvIYSwE3U+7g9lAbf2zZ9ZazGKdVlxBNj2ptZgDQQwfvfj4lQKyhADzCeMJLWaUmEVwxzKzd4yH+WSHJCnrmUSAeQCBvbOsIL+iBCt+m+5v/yhucCBA9xa2Fnxk9liawmbXMMgk1X4Hk4ylUifaTCqZSe1ihadOJZOZ+Ai2FB015pq7Na24qvuypm6orXXCSQRihzzsdoQHjV2WvIcOwStQNrHMI1WTZQbC9J5Ghs4NSkhKK2UyZCohReUtCT41vB8ypBdyPykqfqDiu912ncc5YXn5pLZz8pkX6/5OlApwo6vrxyFkqR2lQoU1rQw2gPdI3hmZKmZmXLgUCo20YHPFksLlwpzBjucsKYhdvP76v77JhT74PNvEa2+1v9DCHeCXi1t4wDZ9sz71IJZ3GUcKolhK4Tm2NBuDWyxh5x9H4x7p63u7ra2h/E6NeagVQAQsgW40LDQJjKbG3pDR3SO30wBD3oMwRcd6X0xqBaAgWcoOpiwWlaVv4g5aKEjFQvnEarMKQ7oMDatYj33e97R7fj4YeGkpsXZZreHhlWfDVsBxMdxZa4ngcksohKYpUiI+WDtkoSiEDWL9IFjW76h2VC1jMI4dF0wTULA/9Q8l8GAzFdfhJCKOqpee737to1FDyueb8636Vud86inf4tIaclQdZbRMCkzYxY4fFwQHd3fx3W6M8qf8G6O4HtZRD2G0tiJD6obKh1pbnU7nPGgRsvPIysId6rHbe0I98hA6loqd0N8vgqY5ItgmQYIVCAoEDgkQoEEE8jfV5hrTdhmFcZ0DBSrKLGwiVKEULY2V0pUxdVxGHQUc9AbZBkJXCnSATmiF0dGIzqISlFAUMYox2ohKBpHQaYjRYPCLGqNRP+nMdDrNljjn/a6/8wdvby/ggsv6cC7Pec7zbmT/ccEG8uNqfjShsqwSKX777kP+Gp9N29/dAt3cSSPBXdESaYj3Hdu9mEQDKduclcWHxJzBr1nKhWCBVQIi8TzbYqKCRTlBQQ4pkwf5cSVHCQ45l6dt3pL8SvOdbMQCJfX1D0hmTDOD7ad3hOfqR+oHq/MGZ8fH20YHo/Vz9W1z4DMYpmJQKWb6PU5jaWmX2h7XqDU2Z5Gly+l1C8Uarlis66nL76nY3dzMmrC5Jx8VS6IigahQ5lIJChF4oZoZPNJz5JAeAsVGsED/34hyU4i5IrUqieUY69J4n09Tqnch4u3UIngTHTtdrljMvzw8vJj04tayzYUbc5SPeOV6iogwRZakpuEfEUYhnAJVm/RQ8uOAACHAgbq0kG2JW9jBHbm7YCgwOBrGR3D/q4JER3F4bmSuuGSkhOUPO9G5udG5ufrwdH10LhoOR1kPrgQYz4tURSaTvVSn9+jsTqu9xuvrczdBJnp6kip6rq/oaSY56iQ/8lspFmABEIIFIq/sjgFDqqagISfnOrIk5zx+oVenswq5gAkEQa+sakt+czM6kNvvsxq0htqp2z4MvTNQW0s3jagisWPuip6ep6rKHuJzo8OscWmhkBxF089qTKBiiH+iMesuUXRFslF6ByYOpVYohRaBFx/BWNN9lqXyWZTu1/c/gGy1P1xMjpSEoyPtMKsARoLxOY50jjB0fI4ustK7MmPpNRrNNk2XXWM0WRx2jSZb7fc3MYRcj82kZ7FHRL3m/ArCg5Up2n8u2zHWx1IrCg8XQjZBAm6Vk87JyKFW5HBophv45dI+Nly96XISJIX/MSmpgkHPq477WA2GpmpDkZ2uEPJmLBZ/99j24YqkpBcxzBQyWqwXQkmvtWGTiT01ofEhpDPgSAOu9ZmUnwOKFwQNdnGwsrRCGP6zY3cXBNtKRjr2w7DCD5Ah0eIwJbJ6MG+kuB7lrryejgGvGh2Phsejg/VzozDNlX6PoV+v0fs0NV16p52wqPHu8fr7+vbV7asYJi5ahVxAMfJbyY8q2QilSIYkQru3Hd4mg6loV1TMjPSM9Gv4knPxNYTFeXQUeh1Q4ERB+0fwTnpi7/Vknt+m15p3alu6d74TctVqW0KqSEODj5FvWAhcWSNBsfYRlfQHCUWcIiqgF+yLRcgrFCGPxik/BwprGSKFk3SC1rIIymZ3XgzVhGzv3x+d3r8/jDZD+xhlQ4y+P8jeZ3CuDZtRPYCE4dyjKysf9s70F6lVRbbSUp3VaXc6PWrdwUP+O3eLyIvPhieaP1KFvFgf5+bmEhcpDGSHiQs6qTKWwrAyriEoFDAIDOkg8k+9gLDIkVqRsiW3FVSHx9y7+9Rxa/fO0MCHvEVaQvRSvcp21L99saK1iuhHpVvDYp1AQrOgnFAt3DTs/sruKpNNEHMrKEt6/Hvk5zcVbqmqbB67byJ7aaU6GoVkStWcezDKJhSRe7w4j49eUjxKcsC254qjUWoFLYSgQKYwOE1mk1FvV5vtOovRbqFWsD5Gz8unaKLMQnfrmtFt5OApyGUiIy6UVnqYCV2i4mKKRQZAAMY1OXRU8Dhv48YMEuSCC3JgwmkJKVsrm5PqmlEH/f4+q95Qq3XVsintfmenq7ZbFff5h/e9KdoUOt1mugOxIMs/DjsvnhsVJQdnlSiaImco8i61VUmQAzzWYwh+tRXnGy6018oH2YlJPEzDMJEzi1n6zNbPYhmgl0Kx8uZoIUDBa3SWNZCjn/GjSKO36axFJotJ4yRHJrxNB91gQZGgOPD56/LXgXiiNR/WSLEACxrI4R0cyQ+CAhR48C4ZkkGCMDPnMCRRPjZtKkxlj3QHlrTd+/x+N440g2snKERcLS0qrdal0sfxA6JgoU08D5lMTSUPOIicDOx3ZclHBwr+FCgekv6RRsMVkVvIJmetWhBJm9IaE1rzrx+bePS1pcEoIfFgeGQkHO5oLxnvGI3OjRez70G3m2Uejc7Wh/OKp5nYmUAoFb2OGbNZY7KprTbECvqIQ6N2Hqxp8vUp+2MFilayhN7xRCtbwtak/Mrk3JQyEoS4YALZIa4j+iesO53hS6AgKjJIkA0sCklf0iQL6b8MMb619Xq0TXef3RtTtYSYP1B3a6mdEYMN0ezY8CItBGr94h1JdXVvLr45vDhct7jI0EHWgEcaQKRupZVuWS+bYCFppEChPMmPG9M25z6Rv52dcbC8bfzBBx+YHtz/AAmC02xktppQgFeODrZ1zNbnAUFHHnSzPkxQzI4HPTBNk5qgsOnUpiKLTmN3WogLn5+oGKuoIzdaKZyIr0mtgJJUmVyVDBLUipRdiaLnKYIe+w/pIJIiIAEW9FJcN5dLhc8Ubemiix7aWpV8BwyLDu23+qwRHAUhUOh2dYdqDaqG0uXl5X3PDS8uJkk21j131BePx2NxOcvDi0+RNSh7qWWNvDXyvGtTITmz4R8ogIEXtHNDVmFqStJe+oeF+aMY8W56rmM6PBKFTiFoM3EwfABDG+2jnFlkVKwFkO7Z2RmkCrPDpCny2NW6Lp1H7XRq7BbxKvb1HVGa6WIPPaQn6QliAzCSReUVHStFhhBq5uHDJIgyj5EVChLypGpKrchJp6yBBSnPGiQZgoVYvK/PH/fFIw2u/lrjzpCh+51Q9zsGW4M1vnzMD6UbrnhueHnZ1xARXaeltsXlisSOLlNEkK04D/FFqkWalI/1RrPGLHhKCF6UoPjQ7svuLGkb3x9+5MHo4P7pker6YqT9EXaCmChGaSH4dkvaVtrr2/Ki8KxxVufsw4wOs1qjMevVXZoik8dpCbIB0HknvEcwbooVrQcIksnyZPJDfFhiQKoiKBTuvSNhR6IQb9y7dNC/awUthDesJlcLPWARkgVPhFfc0Zq0d7vf7dXV2LSqULdWGwqFtN0hl0rF7982fOyYf9/2YffyciQ2tXryxIkTn3zy6YnV+amQanl5GIU7NXUrvRSrrpgyGUEkKDZQN//bQDBWJLc2vzz2aIHDkTdHUHRMj8C6aaOoEtX0kJLq2XK+a6sfxbuKfXd8kM7SttK2Emzr7Tc7NExhdtKjy9Rl0pk0Hk1XV1ef231kuxuiqUQDiZGc9Iq8VVZW5cKVhG7uIkVkNN2Gu+RqSQ8igsMXXtQK/qUHNgj/o+/tSNiVklTVXJe/j7rZ5fOpug0tPCMGl0tVq1KV+mLLR5eXj+3bfvRYzFq7cPLTE59+8snXX//w89efnlydisSW2RNRRpnUWQzgWIZ7yhwvUK9zLOrmAWDfvDklv3nvkfs6h9h2MYLJnniOmEDaLp6tb8N3RtWsLh8aHyJLWH/MSnIECIneIU+/0WKxq3Qep6ZIY1E7PSZTb4FzT42bU7F9b92blDGiAdvRK7mvJD9Rieig9NKUxM27EqVWiHHzKropdZOHQMFTcoQOkkHICi/IwnyUgC/qlVacTN5Ddp+1tFbiwugKaQ0qvQuCFT/qB4y+ZV9cP3XyxKdff/X9Tz99//1XX/3889cnPp+v1R5L6pHxHMfq80RHY+Omdba5hsTauRKKX1iGleDOiT0FsO48FoThkY4OzDV8/rzBPOrm+Cg9JK8tQESwM6aVVI/SRhG5g6ZeMWma1Da9Rg3t1vcWGT3ObGdNXIZ0dE2cDne0JtM4kHfJDt7ppFU8tshkSjcFjB3CKxg7CItMwSJTKRk3nXd+RsYFmcoy86LCHbBh/pq6imH/9kN+vVZvNtSau8GhQdXQHYlh9Y8fpUwuH20IDZz49M+fvvzyyzNnznz55Tc/ff/tV5+cWJiKDaNpChhsU5URPUshFkorVbCQcsEAkpaakr/3zoMFjkB1tGMaLgEQI4xcxXNzbHzYieZVt1WP5pXzH+XlswGEmyVZh80Eex1Ok6VIY7dbdTqTyWAx9ls6PY5sna6pye3GwAuvUFLkjjuSkxSloio5l6+oN3QQ2QiBRJrYK4RZXCMBsZ4k8E3KpuLDkv7BsFhWVZWUj9PEfcjrs6v03caQywCjaFBFVOChiumpF4wmroWTvwMEOPz4I29raPxw4uRU/Ng+GqtIFtJEaK5KVFCXFSSUHgLrzkosq3x27yHciXhSow+E2Zm3Y5rgwCQC9YPtlMuS0RK6yFBgpW1oNjq+EpgJzNBHTR4LmaE2W3VqI1XT7OknUCxGiIW3qY+VELZNJrA7kjnkRa5SJXLhmyBBWOzaRQdhTMd8RTvNoVZKSMghV24472qlrJHQl1++Y1tCQm5Va37PsNtNB7GWqlrMRoMhog01uGIql6oh5ovp49ZYg7n25O9ExI/nzn722Wdnz54Djy+/+eb7rz45OeXz41QTRbyRsMgqZEJD4FaqJkCsvZ2/Ma0sJf/Z3e49jmB5/UjHdLS9o76+unqwOG98ZLC6nq0Hj3YMzCyNUXo5WFUdvTPBGU+nxuJU2w/FrXq7x2OGYQDFTK/a09V00N+ElwC6SUi0KlAIDluBITd3ay6adxnTGHFxeG0IuU5oxTWCRGamBMcNGRkkCEEBFWZTxDDGvgoOX8eS6ZDXilxhoE4wqnfHYg2RmKpBb9M2uJjQVn//8syP5z46fvz06dPHj38gaChYfP25FhcjiobIeWCRhv4ptQIs/skQ7hekleUm41nN7hwqyRuZjnZE2/PCeaMydUWZw+fKi8vbh5C72Y0NjbfNzgwFgqwFPZZejcdiR/C322xdxiKN0dxv7PQYPTPBTtbpTWN+t6zGoFgUip6qqjtQHau2pGytqhQrFgtk9oXUzW2sQa5iZ3odpeKaTFIjM/OS9PRLGM3OS0/fcD61ArUiq3ALK2eiAhPo7r5lvV6lZfAwGEI00u5Sg6FB36CKxbq1RaGBT788c+6D06dOgYPAcfyLD86eEyx++HrehfkIa7e4CZ6/kWYqDG7DWtmEWPAG1yxMSa7ce8TbOTNEo2yvxzFR3d4h9txo8XhJfXH7SPVgOUExhMmmPDAzNLREkTDRNzxFrD7gVFZSxG4yYO7uDZotHktntu7gnpoj7uv3VcCvcKiTIZIc9A3qBIXiHqJi1y5mEPQ8iQo2H6Jb0UAIirUcAQpwUFjFppystESMnrTi5uuH3f6uPpvV3N8PoajlFYo1WFUqXvDOqZaFb8+c++LUqePHv+AIGoDx2RnqxVc/fDJ19Gg8fux9aaqNijNPnDYAwVnvHxuBAtPqoQm0bj442h39o6SkPDrSNospUzaDXIVpv5XdqDhMVoJA4bBoNE6N2WnVq016p05jUplMRpPH3Gsy9/dqTLrsmiavG+8VHJjpVCqmsG2g4DCJiYol7XQzhBPJ4gqMvDQQIRZAocwhl6TfcB6yTXr6+TmERVYhSg8zCHtCjIjePp/eAL0yGAxavYGSGbGpfHEVZKu79sSXP35xChw+4hz/gm+IjI+UsPj5h9WQCq/78iIZwowGsyDixAupcApemRsu2rw1t7L5zrsnOoMrg8X109AJDLqEARvz6o72Djyr1e23ExAjaHrlgaWgpTPYaULdrjHZIFQaGLfawgBidjKpU0ZN4r3pwu9+BMW7gnmsp5WaiUVxa0oVicHyWGg3h6A4DBQ7dlx30cUYKhS9AijkyFyGb5PdXc5Gyvq2xELwE9t//u6+g4d8NFMEvZZuldFgjtBDtPGnraEWbHoDf5756PRxgPjgIzl8I1h88CNh8e3PX6MJTzUcfT/peeh3WmOWbM/+CYtLJSqyNqdgWj0y0WlZaSuJYuTHhNc2NCk+drpnx6xcjpIN+uRQSVs716GWOnstpk6jjktqah25YVJiw2TSGD39nZ7e3gD9NFvj9W8fq9i3WFfxJgyL4YMGAhYphEaZaLwpicI316Z0Id5AQXqsIXFA3m+44bw13xxl/vK0wtRUuBnz3BhV069XGaAUWnPIEPG59Hp9jNWxvrZ2auG2gT8+EyQ++OADXnLA4vSp058plfPn+akFsIjvexPqzYaZDKFXQ2klKIRrwl9yn2geu/PuAkdedTQMhZCOMTl5u1z/ub2c70vCt7aX3B6YHGpbok50Ont7dfgGujQ19q4apg+mc7W6xmJiKqNsBo1GTEhenZed6XAFblJFz0xpFYqJBYubUjKUggcUCzDQbq4CCJ5AoWCxHhfMIOlsQdBuNpEfhanIgK3wiuax3X6bT6/v79a6DA0RlRZWoReCZXBNTc3Pf34GINaR+IzDd8TFqY+AgrA4ObWwMNUSPzoM4WSXKMQbOqvQiktfeAGqScdOzn+5qcYRnB2PPhhFteTTlxQTBuJd5vv2vJLbO24vDwTKAyAR1HQ6Wf1k+6xqfY1aU6NjRLfaLRpZHxuhGtSRTkt2dtORIyLdILaI4r+VPkpMCAzEBPmBuLmLUYyQuGIb/nZWQNCKNRgulOcll1xyXroU+ExoRVaWuI+AtK4Ztum3Wa1mbP8tQBHRahtiDfEGrXZn7cLA/OqJs6eUYBAgFCgAg7g4fUaB4pPVhYWdtS7tWxWsyrK4JcWYLuI/CpZUzYwsWdaPHdlTEFiqHuHGJC8xJPK5KZ3UTBoHMTF5e3n50tJQ0KEOQqmsJidr4i6brUYYt92oMfWa7Op+i8XomHEwmqJj+cfce3fvvZ7+l6RMplWw7QQBAgiEVChWd+kfV1wlrEKpFBRN7sJceOEBpZ+ex75UogI2jIjAaMBp3s1CKE5OaLsNjGIGg0vF9jSGkMN1uvkP5z/56AuhViBxFhzWKwZh8aMCxderAwN449+JP8eYKouQdWV8vVTkXJ66Fap5xBIsYeoKt4fDVIbJocBkOW7VvMk8/MtAAjL8wVAwOOOQoqhjXY6hRK1jMufdriYrHCL8wyqMvY5ejebgIXophpvFfHgRtQLhJYWDNY9rTwylioaVuG3H4auuglWABVGxnh4HLsw8cEkmUHCVECQQeTddlNhYVclMBxTb3b4am14FFKGIiyZK0Yy59JGWloGF+YUP/zz9wbmzZ89+BhaCgRzeFSi+//bnHz5f4AxMvXOs5/ky7BVMZOsJAtvM3LgRQ/0rzXvvtnTmUSOnHxwvHmEO5wmnWnq7bXKpnDNEjIDD0GuvvVaQnd3l61LbeHBnyWaya/SWLiOpoTZanA5P0YyHsOjMPoingEss17MeFMFCbpbKhTERKRJ27SoDD4wm0IpbWI5h08Sxeo0QrAOZFx64kIuE8CzKptygw1PAYJrKaMAlbFlEu70+tR6q6TJrQ4wgiu4f0e7cCRQDA3+ePnvu3LmzHx2HZJ2CYMmBXpwWKL76QaCYn18YcDU8d0cjYbFJ6Obfgt6GDVlpKUmvvHznxGvBQBhTSXikulziAjza7x0KLE0SDUNLgeASVWKpoDPbaSrwer1Y8Kx6q8/nZTnoMRmdXDfuJWl0jl6UHIvTlK2eYBwbw3vU05oPw6qqhGhuyeXjNybgzFvLDqR/RnQZQTjXXb7eQLhke+GFF17CN5IgIvKyUN/G9riKoEA2d/uR/m3IvCSHGSxUKsCITNXKh1z98Pfj534898HxU7/9opzfflMQOX3qHyjmVz8f4KrZ8pvcMBa+CRhXKnHB1MctpORnX757IlheEt1PVFSPsPnJu/3WvLZ2ysTk0lAgIIblYDDo3ENIdOkmDnq7eED57Gq72omQ59RoTDKhWuDijhV+MntP9qG7/W48FbIIkQm9krCgd8jc8VAigaGQCtrHNojFVdwixKDIBAa7OnAhSABHJmUTJEiRdLkBwZ3gKpDgUsJef43KrrcaY5GQyiC7oJjWpY0NTIEECfL7Z+eg3b/98ut3a+fXX4EDPCAWAsXqwuer/NjUO0ePYdBLU8SbNb1CptLCXclP7H15T8FQeZStOW6Kdkb0W4vby28N3A4Igdc6g3SN1xwvPZadnV1QU9NV49PpdN6uIp/VZjdr0KyKPCa7yeJxGIOmfpOjcwkrq87iPtS3nQSpqxBNE1ue2Co4siaVIqEEBnGx7fBVAgVHeEUm6cERLC65JPM8xQmTKXeltlFwod2t+c0V7rEam01vKC2NQDhdWj1DKdPHwsCAhP78pz+e/eiUAPHe+gGMX4mOs2e+hFd8Pb968vOTq/MDUw1vPfUQ9lUlQ4CC+eOCy7MSt7zS/OyTexwlI+04S555EEAev5X7xYzp7YG2obeDnQWdj+2xFLz0WEH2xJ6JCW+NtyaOBc9Kd8d9byzqL9KY7bTSTo3D6RDcHE6aKXqFXLlF8m+tA4xkqmZuAoRiy2Zm8x2Jm2/ZvGMX6QGtOHzFDqJCFsZSMsHiMl6XSFRcIBePz88Ai6xUbP8imI/tpYP0AUV3qSqkbQhFQEIVqZ36UIAAjxNnSI5fAeJ/5+P3fj11Fix+QPA8eeLz1dWBd5Zb2RYChkh69A+RunFOVz778H2POtpGOh584JFn3uBe6eNcoZxsv31ycqbc8ZqjgLQg4icmDk54Dx5s8tpslE0fy2KbXaMyl5YKFHoP0dFrcjiCvcGgBZn34ETTEXeFQCHCphIWshDjcHdOMRMkJu46fHPiVTdzMUYu2F5xLco/+QEWl/EADKKCk/EXYeca1XQdxvFuWMayOq2wyzjmHLb/dLWtqVkug4G0WY0tamtIQMgK0oXRIuVSIB5IsLMuIIGExVlUR6Sg5ASHivANvalT+qKLR0Cskx0vxy5advk8/3G6Zz8m2IuOna/P832+zzVC3Hnn8S8k3jucwg4dK6aFxG+jJtnkrNOUdNXVaXwfMugtogIwxo8c/BGj+AOEfWe8G3/7ftzz1eFxKfxOTvY8un7HLa8m3DULDxH/kAYISpMlC65UtC2fd2usoaUh1tCwJdaQH2uPxZ55iJBaVqZgDa3hqL826AqXA0YBcltbyORTcbLdataYHclas82qzbLlJXvLvHmICrtSagiTl97GnCakiYcIEvRJb2bxGpq4DprAKhDdfDZwoIGduXhaygK6YMGDOM89Q+qOyE45YjBr9ty5QMrg5/3lhR6T0eqw2Rz6LmudvotKVm4z/gEj7hz95YAYxbd/xyEOxk8HTlD1HR/fP/Whe8cbM9mWYm5ToIApGOEgkqYEXmi1z3ussqmFNfxBWRxk45qDHWuWP/N8WX+bLuryh4O1wWBBuauQZihmUVjY5XF6nA6cw2y02swOq9kKZ1K0kXJeVkhxactrgo23sW18r7SBHkmTwVWYAnWlxg/ysIQNGYLDqjlzlhFMiabICvEPHOSSS1BZRJAzJYAw6j6fdCxhBXCm5NxDDSuz0GI0ma0ED58tE2GRrQcJgaLns5+PHPji1I9AITjs+zMOZ8jb98WJk99/f3T/6M71xlcemUWv8Exe3Ciuong6/NzQ9rb+oqJYSx84NPT2MbjaxFYQSDzTH9K1tfqj9ajo8tpwcN26da5y5qyKjYUamaWwOfLMZnzD6JFWKYWc/qy8kawsJRT2h2trG1NYpcQq1GwsjYsVs5moUBfGLsYcVJpYtWHDSnhzzhzq3cRSoqgAwS/s4sIzrqDKK7Q5nzYhZUBkRY7MmdzvzDTabKRjdXofCov5NHcqQEztHJ385fNjB4Q1/2wRZwADH36BxecQxvjEZM/O7Md3qXPNcdaUSHoXojvQ6R+oWJQf293LmhhnKtTH1nXRM/0jAwNtwWiwmsUvpsFYxHCFCzKdOCu5ocNkSSYrhzjNZgfTNqjMshDyigFnxR6tDVc3Ll1KqxSqEDBgzbnnEzSkgoeDSFtsMd+AYtpBKOxK/AAHsYpLQEVok6EbqWIlJbC+NDwz5YallDaLjUaH1Wa1mkRx6zV6t6Y5ThWjuz9Ha3556icViGkY/vo+/gHNOTG5s3nHKywJkZHhITz6b0kJN6/o7qzSjczLb9jC5RJWjfe+M9jLgQboc80z/f0jIzo/wrGWpgYdbKwinLmDQqbDarU5BAiHhxJOnsNSTNN4W1bIEiKG2Ik06G5WYbrxjvOlKzZM3V+K3ORg6mLQdJ1izow5iwGCcxXzr5UAQjAFB3kYBbpCmvyXnnP1VeclMSjGYmVKTuM95dik1mGyuR0aE0ULclNNdvPOzx7tQWHtPXjg2JE9p779+Ix/xUHej5KVTe7U73jrg10yuakqLEpl57HQOxwgPe9nu7Z3sPedwb2sSO3te6dpd8tgO5XMshElWlN7J6nVbbKnxOiPM3NdF3ZgMmssNquNYQKr2ZtncOblier2hEJZ2IUi/1J1Y2Pglu6UmUisuTTG5mIWhA+y0QS4MmnZqg0zNizGJlZeuRJRQQoCFBcKUUw/POSMK4Q1Gc9aLHNYTFLSPJYBb5EVPodVo/FhnHV1Pj372CAxOjX6y8EDR47tOfWxyhL/BgQusue7k3BFcxc1TqCIewjy6rzrmMobqm0re3jTFg6XDO7t7dvLwzR6e/O3Fj1UUTbQqkJRfWc5fLXuznVvv9lltBpNRqm8OwxZVHUNkp178pweBGeeTgGIkFfR1QSBgpUHBGIanTHq3BxqoLAbl1YSS1dSqFjM1xy587PgWrgCq/gDClwEq4DULiN+QBWzzh9OGWavkjaI16n12HDQbKtJL9LCaWrGQ0ZHe6ZUKL78Ee/4DyDELL46fHT/ztzsN2fueiLeIJNRgquSElakdVd3ojSLto6xbt2yFyj6+vpYQ2+J5a9+qKy/VaHwUE5pjgEo1l0yyTwcGqvearMZrWaK/WbswgBhlFrModLSEbvCptCAYtDVTlsFaWkKA7zDaXPV3seMBKFLmIKKJr1SfEMeVjE/XfJSlTT/zBUULERsXpdE75geWweLiffDFTZTRKNZ32VSjQLibHY3wxWjU4eA4sjX32IU/w0FbDE+2VOS/coHWMVNkqNLKzIpie5MoLpqpOKORfl9u1taevsG4QrBo1c20B+uGFBqwuWN9LluY6Nx3TqnsxggHCarPmLCOyIOixmdWZzHRoyBFSEMIgQWdiUUdQlXLGXwqiONWsXcmdL9SFRTj4TFwCCkKeXdDRsEDFV2p192418cRKBAc5119VmXk8rPTrwXiRUINDLUnGlx4KB6jcZUZ/WRqK9f7y7pIZiOjgoUB07tI1qAxH+9PcePTow2d93zwa5ZF08PWNApRdfnkJT2z3uaTbE+No057iNAQBe9TUVFyytCoWhBOSxx251vst8sp6j0Do2NdiU8QWuM8lVBsgMctF6XPQscQvbQiH1A0fmDtdU3BJamdMwEhPOH7xXaPF+Ku+Ib0OUyuQJG+iGHbcRBFuIgyIrfrUKUxSVnnC2Vx0tlmXBGUuKKYSr/Af5CCsqdyVZ8g47ph1SxWJUimrJ+3EMs/frzA5//tO80SPC+FKvw6Xe8eP0TcdrEKJjfXdGRU93JoM3TW95paNrd29e3V3ykFzBatm5dVFEx4tfVNlI4YrRqnZOTEclOm8lndZgJn/gIxSuxh2QaASGLJ4v+h90+ohgUuy4MV1TfHliakzZzGIGVxnSJnDKZoXaByDykDUTRZqWYBB9o89r0ay5EYl3y+4M2SVTpIF9Lx5T/UsRm99Ic6ZgaoIqIzaRx+Hx6GoWmEiZ6hSymJn/5Ys+BL7/FKk4HxRfHx7GK7LdevP46oBC0mQpNSEzr7m5sHeH0AnP+vSzCTDMnbNGQv+bWZypC9ui62tvK6cKgJTLxDFPE57OabBEiSDJA8MvgYdyI+lWpQBEqU3CPEZCor4U2WXkAAx5gzE0kfsyW1BzfkBrFYomj5xE/2K+9ciERRKAQLC56Pc4WHI7DKIhziy9Oulm2CZdyBQootB6zVUNaatL4UFnZbACU5DYTREZ7fqV49cXH+0DiNO/zuINgFVehu6XizWGwxDTKV/WKfclrsvnB6jmXjkACq+hlR2p1//IyXbH//nVBwiiuocm0GelAmdymXJsNWcXYqtdCaS9Z0YbyLNJHRlzpFF1bKKqrqekkRR+ivkClQihzWE5h4SGqVayU63BS3hWWWIBN0BvDKmBNkACKiy7i++/BFN29bEYisiIFWUEoK0/2mk0iNommJeQgYLGeuV4pd0/8sGfP1/8HxZHjR1Vhcfuzs266nPYYLePrZhNJA51VSv+Sonw57IOaaOoVmkBY9BYVbaL7E/KG1xFECyhY0Zuzmtxuq81E5lGKxrF4zRYa6MnEC4tFkboN5asBu6JTWuGKF+CKxjRIE5OQzhhQSAqStIr2oFQoBIb5oigAQ9UV6RJBVIUFEry42iQZm794cVIG/ZOOmTndcvEn05CspTkmFd5spDcDBQhOOVZAPvbLkSMHgeJ07+NDjFuM5ma/de+rNNPVoR66kMirofr6gXnLK/MFByFOyAL/4J+aKmFNapQFwaCITAcK0wZvW3NT3dZUDb4KU5i12mSLFrvwF3stobJSJYRzKG26AR0Kq3ooJ8C0ETewGKkADzELHGSV2gMCA54AARILrl2w8NqF6ddcdiEVLIGCLx5QnI3UuPoCdEXSirlpKQFYs7G63GXwWCgMaKya9VTyqOchLkpUKKjc0DCFK073fvpKxnBSX6IvdDEFb3Wom52CjkB1q7+/Ykklm+ctW1k9F3sADxawY5T1oIpi19v3FzJon4nMLbHm2hh5wz3omcOacISXAw0GzEHxiE1IkYec3q8L1xNBhrpzOlIgTHIPvgQKsFhF3YbTNmISc+RexwLUFViwSilFrHP/5CAqV1D4pVzBnAkjN/cSQIYaa8tdmcy/ORxmd7bVockGDYpZPmbeUZxTk78eOvbT6aE4eIL5gp7c7E923SULAhjFVc/efH5Hd2N91UjZQ5VNINHCZ8s7XLYR4mzYumj1kiUcHjCUhwuDdGs1DrMNjlibGsnVi9C0IbjJRp12/op0tNSJoll2uGKEaleoPlpVUzv0XHcO7qGOHaUlChJgEecKGVq9lid3KvgGEFjFwmtuvGLaQaaxIIKwIUS5YgN7Y2kEO8Rmddjl8cr4gjXXpC8pcegxCT1lLDcVb5EWk4cPHdx3Oiz2HTv+/eTozg8/+oTa5uWwJkZx81x8r7MmPLB8dVHl7t7dW5rYfGgabIEpON8xVrRkXkWFvdRlCEoBzVZC8IrklkTMpT4bRZNiB3WKAq8nmfjhxXeVLLQVfKELtQ3oWnWt0ReC1d2B4Q5CBxAIEJgFSGQkrspAZWIVcltTPc/AqrG6YZt+2aUXkqP/AQW0icRCbLI2RuFmGIU1VO0Kuui5oG2sazmKhXP4kJ3Z6zUluXRMR4mnE8ePndZDTp04PD6105399huvzrqYAAJpEp6YgQxGldDDRVt2D1LWbIItWoioewf3trSMta+5r39bSOuiPlFgLGau32SCJ3AOfS5pqURSj9aleHU4icWuo5ypy8IklLY2zMLvr+qsfm6ouyMNsxDHEKbgJ09tiKldINUe4Evcgx/4B1aBWQhTxLFAYsEUl1PuxpLOZwW2IyXQWK91MQsp4VxvhScEjWwaZF0ad65ax9o/Nf7dF6eB4ttDhNKp3Lo3P9n16k2iKlgKmDX7kZR7GoPMdC/hnCaLlLu3skZJUrYXB+nNL9rcvrw/y27WZhbItI/NYXWnStOes5ZEMUckj018i9MOQXhdhmQqFIqdSh6FHkVp9bfW13c+Vx3ozhmO20Iia0FAslFmmVfNkQrFYiwhDsYCfrdw4cL0dIJpnDbBQR5QcGtTVkzVyuYwxIZVYBSImQiDJrJ7bWJU19hVp4ErUFmpUrSYnPj+BPnYfyHxw3dHJ3p6Urt2fHC9bAcIUzwxe/bMpdUF/pGRZ1Yvamp6B87kMAPnGRr6gKKPq4F0QexZeQZ6P5lED3eEP2wtcJCgM1EhGrNYduYM9I0VpAVZWFaZThdVFH9bNFrT2Vk9xBLhMBFE7uUBBA//SAALGURTMzDQuHrhlQv4ge6+Jv2aG3GQP0PBvU1ZtbwcrZmBeg/IMmGwXGuxl0VKEf9mslP2CoU0TXpfCQH1UZFZ+8cPH/ov5vz22HcnKWE1d735ygezZKGQlBR5tSKnulrrKlvyJGPMLbIQtIn1qFhMvTHayyXe1RUV75XmZVLRLXaabHIFmDia6o6g9LRMonnpixW6ktlAVxSDF5KANpVi4mjU3xqN1tcOVQfgio40ZphRFACBtgALCabxvAO2lGFmRAWsuRCFdQ3Nc5CYhgJHkbnNS2HNZctorA13dHcHGoPBsIt7Uwy/wd2MpLlNRlizRHqncqhYiHP//qOHD/27Xfz0A+W8/SjNrjc/wSiukh1WRqYTkW73++0Pz3sK12ipzG967bX8rbGxGKm61HpjWMW8h7l8pn3T5TRbbe4I9wDMuVQRS63aZA8tdFdYqzN4iz06BKY2pCMTQ1GITbSiNaVcMRTonjYKVV+lSfwgmEqVmzg6/3L4QXqlMrvKVzpcIVAIFnfH0YArCKZS+sfF0tJyAkO1ndUuLz0oc8Skj8AT60vqNA6nT/NmNgpcNk6p4OzfP/Hz8a8O/hOLfQfphIyPTz2aWvc2WSmDJjL9x/rH7A4WjV0jGMVWTj6xbH1rTJAYa4hRzuqTgvdDD28LeSxeSrpWUy4HIlK3lSCvsEpncbHL4io2wJmuPAUTUYAgqhugEBpt8yM1/TW1nSAxTIYOV9AfTFAD6dyMjI2rVuEgkn1cO1/duCaKzkdTpEMWQCFcIRbxOxQMtM6/fAYBJI28NIBV1Orsyfa8vDyJpIwm1vl80ios1GTriSRc9aCYxXD39ydPHPtx37t/EZmnfjhxnGJ3D1Wbrrde3EULJC6vmFboCNRG7fe9/Fhl5ZbdW5htn1dJ0ZtD3WNUs74Za9/M/ZJ+AkOyUWs0R9hjdMMVtshawofXo3N6wswVaA0ui6KQjrWFBgiiA5hFFUhgFPUvwBUdHdO0KQMmG6FNHnU80lHRmBfgGKx9iKIQfZWejlGIWcRxuFugeECVFcTeGUCRFuge4jZTpscMaeaWQpsy+k8wFWHBB/3dnEuXbEqwGD95/MSxr6XcizXs+/jbU3sOnWB0E554NLUr+5MPrmchRNb38Y+biR+BIP7x9KJ84uhuWujtRbGiypbYIJd4v8mPbd7M7FH/NqtZSxJIO5CzrxwGkIhutRmLDckAgZwoVryGYp3O3hbyKwpQ6HStrVX+qtaaGqDAQTrUQp6MU6AuNuIn4iAb5jBGAGnGz1RgGECC7AYK0RV/gYJgSl4qjTTyUjq7rGC7tFrIImK2YRamkvVUep2m7K7MbI2RBQB1sqBnUh36P3n8uxMMszLNOz3oTRClWZqq2bHjll3XT2/asRLERtpQY71SxlGSrQirpvynWa1dtGZzrL2hfWwMq9i8adMz9/WXlq61Yga5ZnaeOccVoZFvNJB0OOkfhxGZXgMW4qFVgncoUWU7QNTwquqr6jsFieHhFdAE1d3EjRnylZFBXZcqxYIrF8haEEaBb8iHWHqBWIUqNwEiDoUMZF3ARSzxkBU5OaK6wy4LQJSWbjObSxjmFZHlzKYtVGdiBgksCCJU9ibGAePnn78/efjw8ePH+XZSmh9TPc1uH5u5tz+469l4JD3rpgRmvPA7Fim5+YTGhC42FQkSmyu3xMbaY4Nj32xuX71myTYmVc1ldL9SEbYs79kcNqo3mR6XV+sqKHZpdTpOPylICpFWA/wmCk1sr6mvquqsfa5boJAtsY0ggT0kAASd45XLVkKbcMUCOAIoAAGlKcx5440STUECKFTiFOENVssyZghrdnQPBThEG022RPJYLyCa2ihkMaOn1wAGIit7OqBKt3xq/yRgTEwcPUozbHwcz6ALlJpaxwTr228wwvrEEyCBf1w8KyHlQS416gaW39eEUZB75JOTb4rhIlvzx8bG2sc2j615SOaxSlk3t5nXfihMwZ9PQmim3IxdGLQuvklCRgChuzygo8vcWrO96tP67VXYRG1cbM7diFEIAhsTM2CKDBxk1UoMAyguYAX/snSVJeSDwkr/3SrA4m6BAt6cfwEFYfW0SweXYYMGu8VstWyzIW+YxDIbnfTToYkuukMojPV6NYggwEfxkkmCycQEgOyneb4zN1VfyKId87TsG1LrVs/mSU7KSTSlrV+mS3bDFPn5i7auZoygfU3+ovaxWMNYfjuN9OWr3wOKSOlat/w/FkxrrbY4TzgNYYDwG7R2RQsK+IYfnoA4W1ujrdu3f1rTKWoTo+iANNM2MrXLmKaKRwYBJA4FHgJbin9gGRI/hCxuFCSmoZiOIJciu5fNIINBVwRuqA6Hky15pRGgMMNgJrejS+9wdjk1Qhb8nqqWlHBQ4CSpADI1CQpTPaOMKOo1hYVvc0ybkybskKlFTSa6OQLN7d2atrJ5T1e+Q2IOZ8aeZv8Dw9gUq9wUa2jnnP1mFuWWv/deWWTbWh4ZaQmc6bzfkKl1oTL5KjAYdF7F7vXb/dRq2nTA4W/d/v72F2qq3n+/thOrUM1CMEiC96YfoRQkaH9Q45bxxHT5AAQB5M9y8+5prkBtUhnHuZBYIrvrDS5vFgvwCAuSQnOJm7K3z1hYp8l0+Iz6LrfGx3gaDVSxDD6CBjM2nEqqy97Bjh0rCGyhsm9LpUKGY1kJmkliYygru/Ux7sG1DObnb9m0edGa1XwVibRoFyzWgAwHRt8rhaLgTF9JxGryFANEJhyhDWuLkQ9+yEGSUeyhjEJFa6sCYW7fHnz//frnnhtCHqpQAAbpKDbBT3BZOU2cF9AblGW5hRek3yiqGzSmefP3CELhRhLT39o61+fWxiiMm3E7iNuIS8ekjkuQltJ0WpQTh0ZVHUbrMiGKk+mFsGUrqm4pSXWH7ZJMJ0hSTTJOTI0aZtRIaJhpZk5Pa5qYfjBpfOg/0P4PfmvvLQxWstMexwd5rPWs533ftdY7cugSgYJc6h9M2B8ggTz1lPiFzc0wRY5lSCLHPA9LYj3G3h4LJaotGGJA5Qn2zSt0Kb/DdIv7pAPV7KCjx9QY18D21RVn3H9LZIIh3YjMTzgsHd8cV5QxXVfoRtePLuj65sJRZW5OZdYR7WH4xNTzzzKfgkw64KdCkYITpCarDZ+jLciDwsoU94vhVFsk4gtHcpV8LJkDisWlnyEL1uUkjv7Z00BC3kdG8Irrjtxw3V3ICsJDfAIksGv/wRXkkAskmXItyKGLT+2/hF3Y1UdnZgYHfbT0Tr0w5SGdkkC6PKzFvA+T8I+5KHxvt71Dyz5dlVwD8PG9DGn9+NknfiM0IIn7rv6VuUeU5Rkj5SQ+qCMw+sSiiaE3vnr1009kYf7p+JvCFD3jqjKHY0hO1RcU3od7rmJOh4TH8+1dYOGxe6ftoVAoEHA6gsEQlTigABIJh6EoMplwKlWBNLHk8qPiFH2iMFl49PMDyhQcxGRMN7qKDAIGkAQ+IVg0A0SwEF0hjYXX3HRopH8Wsnh0JhqLBNgz4yyug91FOT32kEi9AwO2Y7ZRD/Wb3gcfpGGf+2HIJE+wC07hro2s8aXcw/DkD5fQJcUlMEa5JlAw1OKRu+9+fNU/8dmL730lEyQZDfchDYTykts+9IUv3tTH9U0dVK6S7g9J4ndOPdjlYmqJnf5qv59qrFAwiNSOOCYc+EbR15aBKTJECLoiFsvmcrlkEtYECWSmwHDqyAhICGfyPnidCIvriQxB4iKAOBc4BIl/JFOBQrbzWI29jsL6uW8JhUXWsw+jK8hrre2y697l8XpdAzYXgHhcD7NYv/fB136jIfmJB+/lSOCdh68cGPh+8se3mCgiVz4YnUGoTLM7iNH555xxJnNcMiuMyfuQbTzUJt21Y4fHx1RF1SlsXhjXlYX5BWV+oYcpxKxPIYuOFwgP2bt4Gp9IJGDOgN0nsQFdUp/EKszX1oiQRgEiloxlkyZrojHxiVm4Em8wkOiX8Dhy3Q3Xs59JWFx70a0XiluYPkEGkQBpQnEyEqvlGqpSZjd+BonVmag/QVn9VIdsMne2e1xP2N7psqG8B7zs9npt1N9wdPgsTQF4wx/P2pgONPrjj7TF3y9zw26nD52qbqAwetFpjqJSQQ4/1lZehCk+YOvug3FlXDhyrGfuKgU8lKOKIgpLU1X1Zm7DmWKWDRVGtJIGpkcn/dFBvyPkTECag22DLEuLvmIx4iN5pCJgkQ9ns0mwWE4aCeQsAkQWo7IKGxk5jfgwqYKl+fUirIDCggHXAArcwooPEwpuUzp0k8RX388/wxW5mWjrxEQnp09kEbfH9Zr7mNvm8di87bZj3oErr7SxIrny2QfbOUj9/JjXyxUiX98nAwKoGUVLEBkMraA1iBdQQBUCxYyj+7OeN/GK3989es/RufGbX72Z4sSeubExdWx8jgSiq5pCz9RVNNYytaS1q1VUZijgn54OYf5gBCwynAdCEhlHphgON/L5ME5RySIpsFUzl25ssOwgKMT6+SnZg+orAuR6yMJgCvEG0wCjCYWYJNOzBQrWcqxyV1dXQ4kECveFiamppx7o6vZwkO2hrsBl83o8Lg+kyeKMoyIgoS7neypjfpykOQctcTf6Uto/DJOGGCOTcvPK449O+yZWPmL2lQwXPfrFnP7m2Huqqh+d67mqh1yCAGcxoivKAuTBBDBkVtfwMHk0NOn3+ylXfHraEYj4SCEJH1uZ+EUqkwqL5Su5SjZbSeZWk6XS4iIJZENIc0Te+ISpr3hwCzZ2gcIAQB7zbXmFhYUECFgcONTfDxbk0lwuQjgOvdD5FFtGT3XZPJybuqXDEq5of+dZ0ki7izYRt9ftGbB9//XA94xgoqPxTC45MPqjcAmZj8bhvExGaqHqjy3/FMNFWZy/KxdHERxcGDU/d9X42BwaE/bU67q+ILn1zbGrhC0+62BPNxCYDkwO+gkQ4EjgGomUrMNAJAUgqMxYoxLLZrdyZFLhitJS3/aGLMv7X58FBQkOjM/r5MwYrrhLaNOCgeDgJU5heQVYSAZhRtYBhPessTBNJnP+kG+im2bGqS5PO6cRbg9vjpFZhlCb5T7W3s7nlWxpUS72/fdP/8iAB+pnhSeMlgcMJOBM7OSWA6eeCb4hlObcBxSf/fThuzo8OXczjYQKIaKqC6hvRRO2+ELpUWX+rIyFaw1SqUjfT4BRlxIeDsznS8hJWIoUmsnjEbFwJVzO5rZyW9nk8dVSSZLpLNYvRHHkdSM8hDMt3kRYAETTLSyzaNPkitPhCiLktEPkUnR3cnUmEglNDL3ANGRqA9s9o552CiZdx9xSgOOx2ahfnDLUj+0B7+jk95MMz+5Fad99O6PLyR4SGYZXAATH5yhNKip8a29c9enRX36iKJFI6JlTSB4q7WH64fkxRYUodExbYKVO09jKS58N250BLOQPTQci/miCyIjhqpBmuK2RL4IBVFEJZ7Hjya3k8eNJQWL7hCBhRgUlJdAEbyEK4kP2a1BWuIJl/PJPhSU5BIklZHEp+qx/Ee2aTGYlQF56ofsl6KK1yznsdrPF5mIH3uWCHujSp8Gw3dbl9fKH0ac/BwuaO5nxAhRMUMMn4ExzOgHxIRM7emOZNUqOwIE7o/ABfaznZi4TmyeFHlbUw5qm67z5C8T42GGaaz/rpkHQJwOpAwE/9bzGRlWCTx8s0WjkG6lwqpIvZ3GHJJLi+PLyckm44sTG7MYsLnEQKCg/AweCA1xAwrCL7rpQvj+Paf9UWGaACBRHBIq+xdKjyZlkLMQm6lDHUMfU1NQwRb00QxAjA25X1wAN+y5vO7WLuAXYMPt0dJohyXSBM6dOpqO1sC7HJzg6N6CgefDnXsqYV96YO8oC9NtvP2DBofSgNMfu0cfxgXlV09S4otUlRHq0Hrrp3uC8cDgYmh6Uit5pfyQQSkUSqVi+jdyBtkqRQcUn8tmK4RTHsWSytFTa/vmKDciCzHEQz7BiQ5gCpzgoSJiy6p9A/L2hZ0FBm/4NB4U2+1Cbq8lczOdgZ/OlCcYjTFFj73LTLuQW1enhNN11pRQWg42LUhDv5CjNOeYgEWZZMozUHB5I04N4xYWn3HTO3dQoJIpvzCuM5/59b5MlubJJwwP3XIDDvKbzUtV5raAgvRVNo9Cb83RiIcSlg4JFxJ+IsdTgWJRtmgZqosEWRTm/k89ulbMVoQleyyXcYn1xY6MfKGYFAXlwCgMGfEKgMJblJgLywvhhcYUlvJ9BY13z+ghh1rddWkpyJVzC5xgiPLqGnK1sXLg8Xll5jKK90d9kUM52yaSeAZd34MengYKZSE9y49yp1rpD0qgYPc0tUnIUjaWKIEF0cN7BnR+aptAjR50/eGhjWgG/KNR0rQBx6kCh0oU/0W33S1GqPxqa9odCEV8kEUv5wvlUBp8gQpATW1viFWXxi2VURWl9e/sETgEUuAPPpQKGICEn50TIXbyuBwoDAYsy/rFGx4Q2GRd2A+Ksf/ZE31IJuZlwZDh66iRAnqJslMZnt43c2YHSJEL48E51tbKhg5sM2CmRYTwyUxKeZJAjFxC2nGIiYbb80/xBcWLYsfKiQk37T+xhfoHYVgkGsujYiypfXElrBa0W39Xr9Touwj+i7doxZCd9RkGCx8/pF6wZduTDRWIjk29UKuVyeasMFMkdqILwgCzAAiis0BAQRnhYe1jRIVjcZa3A8AYzOsRMKHigTSObXipe8fPSEmSBrkggDkVZPMVCYKjd1emmvgAdQSaFMVmWuJlg0OH2QpsDk9OPMZaVqfc/SC49cJs128YsZD4AVSzlHGsrY+oXm5ucje4tEAf4wjyOwUskppae1/CLQn1XU+oK4nvlpRXE1GDIj1PMxKZRWXAmKjscjoTzhlV2GgRHeQssSKNGdIDECWwDqWnlDQwsoEwiRJDgLVgYADQ//ukVQIFXXHPpkUMjnByI2CQyWQXTevPZU9RGdrqHqZ61e9BT7i4y6b1eIOng6RrosDO12B6aiT72+HNnsF1zu9yddAot3QKFOT7xAPEx48+sVVWFE4+fvv1J3yRTaLoCO6gaFIlXzPOzABSILKSWqlarb7zBKsMRCcxEZ8ABl4AlWG6IrGo08AtExY7pFvBENrm8nFxeX18vAcTGhpFJTa7EN4zQkEewwC3M1ai8mswpJ4RNiSWFWNccHJmFNpcWS6xtIokMVbIvTHR2wp4PtDOurnPANtDqNtsx6FBHiruNx26X+77Q3cyMYNQig0YJEIHBGBV3+Sk3MTJwJrY2cVjVoYpN4mNhTNOJDpiyelitquCxYGSQXb2g7xZ0TUur1LwPkThDUcIjF52O+f1hyDMShjArjTBAwJllYiR7HFuGKnAJEwpjX/eIRRLm28TBChCAsNyiGR5NiWVAcToBcumlR0Y2+ja2uWY2GQsLbU68MNHNub00X9hJInTzeT3yG8VyuEUrqXTK7XQ5g9NPM62NCTN3k0zxitta8AnBQuKjhaIKUd37VU1f2Pz2p729OrSpKkRHNa0JcRIQuIdYvVbX6joeMp9e2S8WfY4YASIphJVyzM9GFSCgtBvEx06Z4NjinRUkSoaqWDaYAjOXYCAADhYQOIaBBWYA0cymFhS4hBkgl51MArnm0BEW6ScMqohFUrKrXOwedji7KZOklZFiJJcg4fQgsnAHureEPtz2IMl0htuMZEzCqefIFFZzpiRQMMeFluszVnOxl1YOK5t7X+z9tEfxMsSgjhEUVahCfle0+fS8XtC0XWEMvQB1VNf2M+zVRaO5XDQaZT8bnsAXUoQGzrCzs0NsZEkhxMaqAcP68vp2iQRiyAqMLCoGUYCCkISBhLl1ZSHAZzOX/u0VJ0sGOYjE2mA5llzOxcLUbxSHMpRy8Ka4gaEZrXxrb5BOPrcbEORxSYPGqF1SSLSXcbhcDilLkJYWkZrmLGJmltMnNhPOrKVhzb3fv93bVDbRUppAAAB8pgWIuKbFC2pht74LeaparbpSpJImHJMSdn8O4R2JwZl4RQy+3Ak3yuUKWbSMsuINZxqkuV6CN5tOYWFhcoWwBEeDFmtizehobv5bwpttLKA4Mtt/xWKptIrwjsVSKQ4ahigUneh+ACx4OYM0x3OXEwUxw86uKZKsZ8htt3OgOxmN9nILwJmXECBcbNZirMS468CcU0HE5UFCL3yB6K7XCQRFw9Lz6aoKLygq3AkQhUK8vlvXdgu7hXi6ur9fTPlykZlcVE448AnR2cSGqG0hzMrO1nFhCgkNsihgbEsGEZ+YbcYHTkFgyFtQQFigKu6CK6zQkI//ZBDUJqVaRoBsl5ZXWaSHZSXMSRzLn2FWRlwByKidUUpeOKlyO4Mup6dj2NXa6eLYajTAZK6HDOV9FvOsDxgzGhjIZ1FF3xJOtp9OEyBYvVAnAuIafKBqb6TFMdKisNK1WroQL+zuavxtLY1XUI0Ziflz7+fYaq3EsFSYGNlpAAU4lLeObxlMYYIBZa5LLjUjBNo0U+j1Ta8ACzECpBkhmEkVltqUR7wCWcHCHihOrJdWs5VwKrGG3MdoCR90tLKfBgz27oBTRqswmot5VIxB7eZ02zE4OEkr+B1LT/ZdcTvC+7YDpxjxIbOITzm//xLOP8Kp/bSmAwV3Ohd2jaBAXKdJIRCGKE0VhaXGtVoBkYV3xOPV6lpG9m8hCxZEuVilkmUF1mg0dsRwCwMLUodYCTuxvb5+Yh0oDNqU1CFVqiYOpuLGmk4BBv9E4jwxS22efhEbPLSizm70lUpwxVYlnCkWiyDhmHAGg93dnXxjxzDRwPAEzm+JC9KsvRVWdbLBEoU276dniyt1b3wbsrDW5/TM3XQqlwckw6liNV6ob363BxsU+NKI63SVVzpuuEBcS8fTNfl9t1AnVGrx9Np+cS0f9sdyuexMMseiK5eFKogNaEJwAAiiwzAzk27ziFcIEk3BDRyIK/EKU2maYtNanDdNZIWVQkRXXAsUJFMyyLZwRSXPudPaWoaWtm6+bmuCHVYxJ73yzmkHoz477QzPGMAtOOL2y1VnvYtXv8y8jBtvQnmbA8wZJHnotDMXV7Ph/f1qQavv/VQnAmrxmlqLx9V5sCA4qtUCgABKDQgKGP9GIQ1VZGTtmcsSH7lcLF+J4RmSQsv4BPFRJjiIDh6IQqJDFiB/Q2HFRVNbYdCmGR7/RqJZXmFxBYcl0CY73uvby8lkhRTCGcMa/fETbcPd9jZnyBGxOzqDxImd00schO4t7+ADDqec10jLW+8ijXxcUgNtggSFoJbqZoM3JwGCV8AUZAiwwAfS1XmetFaNy5/4LAAPSBXqAtZ+tbq/lipy+lehmCZLwFZi+WzDyKK8yBy8cQuLJ8CBlwHFrLUIsYAwf4jMbBJFkzWbSDS3K8w1CGU5B0fwiu3tpVJSnJFkupYxjhzaBvn6PlghFOSXgKOTo/0glXLDrUwHsNs5s2Kh0Hsf/Wt9V7DzD1WY8XGZtA+e1ffo+8lwHq+oG6SJQZCGVasmCHFBR5wlLrxJjAAUbrHWKObD7GXzqgBIpQJZ7ogZ8SEOIThggCAv8YoNzOAKiQsxPkFDoAAIsWZ8/E8uFa64ALV5rRUgZOdkmTUP57NtGaM73EGzhX2Qoh9Kw0CBrOoAnM4HiBwk2KDPHgzRB9lLzWTf3XK72aWXo7yZYsJQ/5vIziTnDEjAiHs1+V++W6vGBQhBAobg4Se/AwVcka7txvmJVxTR19kKXMHJVzmXzxIT4MADWUAVmMmYkAR5FCCMBEKESIAYDCFmsaZpeISIzf+hCkHC4opzrz37BqDo3zixvr6czOYqgEE6S0kacfgm2nxOmsR9pA4JjmBrEGScjlbfA86ACAt2mh7tpRdchMXFTG8EClpM6FE8xCRi4qOxD2sCxS5GgqhJUFSFL9PG167xg0de/DWMESdE9vc5AkRScAaIl4qeAogGHgEQmBBFCa+wGNPEQXSFER/WViZmCe9rBQjLK5rJtOkVTdo8T2q8geL6g7OiK6DNXLbSSBUjCL42gKCqIzjIXjOfCV9QSj6M3VYnlAkyTK5LBGaYjNPLyAhmvkKb8CZDjxmFzXHCFdurJJBqNb5bx4QVCzXhB3kBhVhc/giBQJrmO47HECBhaDPJfwuvrWwWKEwYdsz0YeWOZSM2yB0YSBAiI+gKEwrEthUkf3lEM4GYEcLYCl4GEpaddC4FSBehSEYQFniFqM0820VrKaaKoHQoHoYcE75AiN13O77B1aODNOrY7d2+blAKDEqHJ/XVT94t19OQTC+/UGZLHQCKvvXVZH5tv5qui8lXFVKo1gAnbSEiQSLPbpq/hCwElX3io9gIgwDZTDJpFn8QEMomFGYiJXXwLolPECBNriBAml5hkKeVSDFz4///WNNE40+EG+Vol3PYTgAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_illuminance_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json index f4c88ec08c..db7996bd0c 100644 --- a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_leaf_wetness_chart_card", "name": "Simple leaf wetness chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/g4ODf39/f39/g4OD////k5OQhISHg4ODi4uJLcN2QkJDy8vLHx8c9PT1YWFgvLy90dHQ8PDysrKxhguHV1dVKSkqCgoLo7furq6u6urr19/2enp5mZma7yfK5ubl4lOWdnZ3S2/alt+6ar+yOpepWed/H0vSwwPBti+OOpuqDnefd5PmwwfAtLS3FxcWcnJygPPf3AAAABnRSTlMAIL9AEN/GQiaNAAAEwUlEQVR42uzPyw2AIBQAsMdHDCRs4P5zmjiBRyDtBg0AAAAAAID/atpc/Rolj3tz4yoRaTxte3OUyLMdYObo7QhdZDEiqxF52a23VTthKArDd4PBZM4cNCSiKOILtH3/l6u69truU2lLi0TwR0QzycVHLrS2bkht3ZDauiG1dUNq698gOaOW/hQydPjcxIJa+iXk+w9dM7ykHp8S9vgqKn7fSZAcuDd/hDhNBsioA6xj47alEVgErt+nAmUYTPOoAtioad+l8rLr6AyIRD5KHyAamzZAYtMw2cRpgw40oWKa9qlHw9IL90eUtmk7pNhN0cSvu0YcnQAp/Bpi7JHpJAGlgdA9Fl2KAbHfpkYH6j4aKOu1KqwpMM2OGek4kjMgmWuTJ+neQxyj90ym6/0VgjCGJTpKfkyfEEdReu8puY0hAQ3LaHh2BsSRHD3X8ntIZhIRS1EQDogWWpgK5DF9A1mYRQRirqMzkT52eHYGREjtuNbigLg1tCW7ybqYnT8gjgELGyCUnCdDbOwFYrETpwiTZc5LFAsBr50AQWjtG9cUzxa/FiCFUbd72U7EO+yVHuZnQAJjByibbZS9YG4ZR0jZ1zsyCI5OgMg8kKzoc/e3kKM+8pviQt0/jbV1Q2rrhtTWDamtG1JbN+T/Z9k5uzzENHArpGtDXGRYZjdrSy8XhiiLw6O+jfmykIGN4Zm0US4KEd++e43hohCl4G09x0tCfrJvd7uNwkAYhs8+jTw2mIADBlJCEshv9/4vb5fSirAJC2wqQSWeO3gzmLEiIWiFNu2pnxiyIoG2NUU/MKQZSEOS8/NCmoE0lK9nH+JspEzU/UAkHm1pM++QwKWKK+9evQJPaE9NHqKk9sjTgcCDiPRWAc7q6yLiuB17XFA0dUjikY5kFJKbPJ5hiVrsk5Yy0uQ3Hf3n/fWQ1GKo+OvaJHyK0bK7Ow4iDok8vVPooHxXvR6SmVpRZ9yYzQmDCAoVair0RPvqEWIEh3SrZB0EiRgbcuBaicqVi7M5poC16PPmi8dLU3Osx9g1N3qVrDyquIEYFXLjfF+xqFwMkHEGGNM/kLjrOdckMM7WJx04Yr2pXh5RIIQTa6K3ZERIzgc0TF6H/OJs3HZTviuaqA3GEju/nkPk4JNY+eSuxNCQC5/RqB6rA5+sKcdeN9aeG6AiNEn8j7UTbAVatm9EOhkWwnwo8luG2pnNlQ2uxo6+bojq95ORJq9nHmMnFQ4KSbl2SfEhy01pMz6jh3JX+FusPaJQKnwvNSzkwsVpX/L9SUmNQZ+AHEyieyGm9ZE/3r+RrS2uhcU/uBoT6N/sGbPFJ8sHezxe2KToJCnBYFOFGJMWfMKeD+gSU4RJdIeUbD73e4patUJyBiyX6BBRqDCJ7pAT8xmwhnPUPlbIjVO8d4UELkUTdPRvds7zY/Nk2dxWAyrei+fL3QlJO5hAX0ha8h9mj5aC+elAHE3+RBn9hz2tb4xt73v7PCPG5JqQkZoMT87hA8AXQ+RMMl4OiWaSMYc/6JaQJWTelpC5WULmZgmZmyVkbpaQ3+3cMQ0AIAwAwUDDUg341wkSGEtz5+ANfDVCqmkU0ma5E9mgZOe4W6r1/5ZqRqdRGAAAAAAAwJMDbJv6K5dRMTYAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_leaf_wetness_chart_card.png", "description": "Displays historical leaf wetness values as a simplified chart. Optionally may display the corresponding latest leaf wetness value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json index 39fb317de1..6225bdac78 100644 --- a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_leaf_wetness_chart_card_with_background", "name": "Simple leaf wetness chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_leaf_wetness_chart_card_with_background.png", "description": "Displays historical leaf wetness values as a simplified chart with background. Optionally may display the corresponding latest leaf wetness value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_leaf_wetness_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_neon_gauge.json b/application/src/main/data/json/system/widget_types/simple_neon_gauge.json index fd84396430..be683aa0c2 100644 --- a/application/src/main/data/json/system/widget_types/simple_neon_gauge.json +++ b/application/src/main/data/json/system/widget_types/simple_neon_gauge.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.simple_neon_gauge_justgage", "name": "Simple neon gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/digital_gauges.simple_neon_gauge_justgage.png", "description": "Preconfigured gauge to display any value reading as a doughnut. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json index 7679986f24..91517be734 100644 --- a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_noise_level_chart_card", "name": "Simple noise level chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OSAwyzg4OAhISE8PDyQkJDHx8fy8vJ0dHSv2Xvv9+UvLy9YWFienp6Qy0asrKyg0mCIxzm6urqrq6v3+/JmZmaCgoLV1dXP6bDf8MrH5aPA4ZaYzlO43YhLS0vn9NhKSkrX7L2w2Xuo1m729vZb/Cn5AAAABnRSTlMAIL9AEN/GQiaNAAAEq0lEQVR42uzPwQ2AIBAAsBMQcx8WYf/9TJzAJ5B2gwYAAAAAAMB/7dpc+xq15LO5vGvElbNvb2SNMvoBZonsR0iRxYisRuRlt25WbQdhMAzPvkBiIqgUFOusrPu/w2Olm7N/OtzsZcGXSpN29ExKZ2tBZmtBZmtBZmtBZusXIUa4iwx3vQuSvQHNE65qwvc2xl3icNffQVz+snEFlPX/28dA2H+FsGJA1CUCUgbymCy57YJci7nWD4GSo3dDyL5DZBc7IS54EYN4OHFjetWQPiCHeNkRHDIThVhZ3wshdj8gFlyHGBf06YTUCnO0MXXcBcl92YLtEX5ciH4+CAon1m4BYj0hTUJtcCwS+IKcizApmxQcQSTEKSASP0MQAytx7oM/IWTqublAvQuSuI0lVCYclXozQqhD8Dpa4XJCZEdmVXak7oJY2McyvnEuZNrLbJB0jkkU9OKQgLijyZhKvxX0spxnPFMpAPbAkRAT7vsLiG0NmyJnPKb1rzVbCzJbCzJbCzJbCzJbCzJbCzJbE0Isb9qeD9HIZ7I9G2KRD5dJS2ShB0NMOF1jEaHnQjwrPqJwPBbyjz2zW04WBsLw2WYnIcHwI6loRaFWvf8L/Db5JAyFItYplRmeAwzGcfLM7pvI+M4DaJA8mKtIKFq3caTmKcJ42LqXfD1PkZAzaBGLuYiodbJuFi98QZqSzEMkiDixvakkXMIXYvFqIuotSWS3lUKp3usDY2MT0i3Ja4kkESdE0n7ztr0yweNgF/NYQYdYqGdFdA6eXHemV9nxkRTHUim5bR0MTGzrUfLJebyBHiTfPiWiK4OYHv+7HFJEc/nikuIKoEotZba/EwUe1IMEPGHExtSSfzQfU+xBEZ2SBqlkQBxJg8Zl3hVZocNP9qNE2BxxULPmyciujMJ3+y0ytP0p6Ga8yAXTwhmcSQrxmsMe8dgrorUurn6ylzWX3fAyIWAcLOQ8EoIuYbIOthG16WgRpFUSBiuwCprGGWZQcypyLwIWg1doGNpD41s/qS1nMBa22YVhIMGhNoLHb+PD7kUqLF1Q0NQaKVIFWiJpY9n/75eHiShhoOQHT+DHkIp4e0DkjHj2pXCFsWiblxLRi7juOwx1Fms3ikVIIJ5Q+RwrcjiubOd3RS6IJ5quRVaEGSoIiBhasCQIJDzNWBHbP6XuiLiUd3Ytsx96xthAH1OJnPcUg1R3RHLXRo1IURRnejkM/qSdgKGMaBf2a1tEI+6BaIU9Q/Nt1EUIfUwpQutMbxcXCvhW5GAt+xnYZn9dxC+WusotMncZL/2e3BG52M/0sht47p6gIsbl/IS4cqGoyM0f3hUa7fQakcKQZR/yY8BjChFapslKdGGHCjHLjB37cyTz58gNc4Iuajd0XEwiAvsUiUyD5ejHzcleXb2Ile7zkILvFAwyRdhPReHbPi+KVpbtVK5zoAtBgz8vhxd5jr8vx6+J7Pjn3XLMQySAu8xC5D6LyCIyFxaRV2MReTUWkVdjEXk1FpF/7dwxDcAwDABB11YjZSmR8ucXChkT647BE/jTCDlNo5BssA4a48uo2WAe9M8not77t1RZnUZhAAAAAAAAWxauHfe/D+cw4gAAAABJRU5ErkJggg==", + "image": "/api/images/system/simple_noise_level_chart_card.png", "description": "Displays historical noise level values as a simplified chart. Optionally may display the corresponding latest noise level value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json index f13f2ec236..c73dcdc9f8 100644 --- a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_noise_level_chart_card_with_background", "name": "Simple noise level chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_noise_level_chart_card_with_background.png", "description": "Displays historical noise level values as a simplified chart with background. Optionally may display the corresponding latest noise level value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEVBSFU7Qk89RlRBSVpFTVpHTFRATVxLTl9BT2FBREtBSE9GR0pQWWRFVGZGU19GTF88QUhVa3pOSllIR1hXXWBfaGhySktuUVdPWWtoZ3NIS05OUlRDQ0R+WFs7SVlqgYpjbW97XmJGQ1JlWWNtWF9XW2tPUmRNTU0+P0NJVmo5PEd0Y2hKVmRIUGQ/PUs9Oz1ncnRpXWhdV1U1P01pfIKCe4BeZ3dRXnBqaWlUVVZ2UVNXZG1oZGJVZHZ1Vltfc39LUVpWVWVkYW5fXmpXZGZpSU5zgopSYGhfYWJhcXiZm6Bpc4Fuenx8dXpfZ29geII/UmVcbXNOWFxWWlt+T1CSoKdsbnBWSldMSUhKP0x8dW84NTlnbXtJREN+jpSJipJbcXlAQlJzi5ZygIFTQ09tYWxDV2xNRVNyZnBmd3tvanh8ZWpoX1lmTlRpQ0ZdbH43RVRXUU9xdnRXanFgXVs2OkFJXGxmVFxWcoJsc3pyXGV1bXFgTll1cXtDPz5kfIhweoddWGV3iY5fQkl6hoRaUF2Xp66DfXRcYHFfSFFUTElSU114fnmFYGNST1GkuL99kpt6eoR7a3Q7TV99R0WHlpZyXV4pKDGTkZamrrJNZHhHXHN0amZfVF9TTV9vho9+gIg1LjaNgHpmWVODcXYwOEWQmKGGVVVjPD4tMT2fsbudo6WKj4qChH2wuryJgIhHOkastLZnhJJ/hJBZeYp0d4FfUUtzQUBHUVadrLOLkJqGh4U5NEKGlaBPZXCRmpeln5+dlJVCNUCnq6iSh4uCc2WLemx5bGBwZl2HSkh/jIyWkYpkdYihk4RzcmqgpK2rvsaKnaKeoJiPi3+BaW2OpLBOYGG0wcWYhWpUO0StopGzxc1ef49gMzKFoKyCPjmRUlB/mKWMdXeMaWuUrLednI2YhYJRNDhObIGPXFx8Y1VTR0KZinetm4JzNzNykJ9yXU+EbVgfHia7y89vV0arkXGxqp9jipu4salQJSWSRT7CrY1kSz2QeVu8o3rJvqc0MwqXAAB7WElEQVR42hSWb4j6BBjH721dRMFWoIaLigW9aAyDrRsVtE4Nu0NXIgsvyTdJK3AKFT+yktHAll2BUTH4lTsiOFf0b11J6eHtD9pW58qWVNAfLTwlJRXD+5O9e+B59Xyf5/l8v2u/3WBOfu4v5vX68pwAfr/rqDw+N7uL84uL9v2mbrQOR3pVsNI10zlbarpjYNZs4pyNupPp2cRo6en0YDKbObPx2JlMe9Ph1DF7mjMQmWNVrTXadrerWhcXSHPRIuzPkUqNQ7hOid72sT6B96WsP7wHnCgkMp0UwgUjSbBROU4EOwXryt1ESH5uSwh3KAQqdLAkgmQfSAIsQuLB0kMBMAYASCGw5UZxlKCoEJ2lPbfH5YIRxdNYUMKZAvqsjOD0I4yB6m/cRvB9mhEHRj+uE6KuGIVBi1fG+uDQIJiCcVQW+4SkTtaOpqML58cv6b3B7wte1+aL7sLWNZmfyL0SDZnLdn821KrdeW94fu7MoLNZdzJbLof5qnk2Wnat2UoHZ3oyHSiT06nqmMNJVB/qzlCtdLs9q4yaXLpJs8eLRqNSA1mk8r8ajYfkRf6Xym4KsEtkpbaPQKCvxCVT1fZq1EhzJx9BrsmQLL/ju+OhP6gUuHvZHTp4FLRCIL/vxhPbmQrwMPxS0ObBrfUC0asQIOACgaEQQNfxQgGHcE8RBUtgpXB7USFuUhWN4eOMkqZRUdXUtFa26NdP+Dv0OyqigXWXh32jb2qT37S10dnLY3Pvm6XT1W7oL52jbqs316bqUmXM5WpKh00a5sVyNpqp5tii2456du7QlqYzkzPnVDXPx4yhZLXp6XRQVacD25T16bRsnzm8rleXam/+UC3K0bb6PUcIMt9MBqFg0kq2yUye9G6HjnchwQeVwP2KTAho6qPL251Okwo/mvdtePeBmHczsi10yU44mToAyA0yQBvQhwQJn+AuOPXoeiwd2KyG06AnFvPASKF4K4G6XesET1BMVscRlFEUJoCOBwWJr9Iif8JIjKRWLbW8aqCXxhLF0LdJJ4qmSqfGQDXXDn/+bXJdf7Xi/ujsRue83x3Nu6NZr7Zcnn03NJeDYXfUZkAQYbAqoY5GA0dlJD1Qdmzn3ODPBtKfp8OxqWGzpTO/OG90mcVwMutpOq/ZdpId8yGDkYc9g96ptbhec96s0qmdXi1JHu8kfR2+8xEkX30gf/Qol0oLfvwySLo7Hb/vV3CHy4c3kseUzLXh5jNUKRXhdq/JxKkIhOIhziCoVnz99tvTUVcgFsVgxoPlPLAHdqdFJIqlaYJiB7E7CLhQxohcuioyaZR5AMbRAZO+ZOm6WL6/OxTHGkaLNKoTQs/UPlB4de2R0Y3l2XWH/ZsrmvnbYWX6bMscLtq8uF8qa1rvy2dao/NzXjC7I6drt5rWTBWV1mToLEeONrTKE5T/Hx1VbagOGGbM69NopWWn5P0RNtba81GXWy4r5awtCOXyo9WkXHqTDbUJwKIqofbOK63IDkuEm5eDV28noGgYa9Auz3a4ueP3PtpIQuRxhmqC7kAYq2y6M1EKJF0Q1YmwIFS8I/wwvnGwjhRTEYJlU7DB2xYhMzgusUIRhu1mizlhspSaTeODAKPyBnNC9y/pklRO7jGXUBRTDAP9PV7+vW6atdcVtb831sW16+5aqE53XCmbo/5RzdDM97vd+1+s9T5vLJejeXu/+5uj1qpiy1FbzmxkK7T5/9vMaMKZng3PxqOL7vnydDKaQfLQIKKT6WwwN0o6pkO8lI2SWJ5LcBNAztocKLdIyPdc6rgJpgS3ZVd8yYwP8SV+5VyC8aXQSLh7SI/pJHxeEvDj7q/wOhRJbt6KIRTAJcmO273rBiFPZLNDXZVxkSIbdsPUNfFcNvUFAntwArMCt9+67nHFLXgjRsACE8UKadSIGsQKokyaj0toPCszvMWLrxv86+OBZN6o6OkHlEGffi2raXuTtf643jpcaPXFfGg7C7M7Xxzx7Wp91F3VS2d5Mar3lsul3hAwTZ9Mqpwz0+yp5BSCzqqajG1QOj09VSdDfjbtOabdttJab94d6taH8qRsWyGi9SKCgjz/fslmmzuhTEsoXTR9zQ8bvoTPl0c2Uz5/p4JvP7dD5gQyQZRA77E/0wHdHnfWTeLJkEXGOn6Aq8UCW+CXpH/Lm7EqG5Q/il1ZBGGYjgMJkEbWPBSMkIUAgbsJIo7HCw9ARxSaFbBsWlRRScnFToh0TM0WCnqBNvq0ptIiowx0ZYIOxvod9J6qPf7y2mI5vPG3RqP8+qvX7Wnd1qU3yq3H33j2jp6mCl/a0mCYLD0k8LYj6sOuOnPO51DY4Ae0PR3p+tg6PVvxMTscdk9RiQ9cUnVDlyW7TkvGmVOtq5vmHNL4fKkSmmz6rP02264n24Eosp0P5X2dUHJztyKkHu2Eo4rge7oE+q/tgJFEBiiGwgedbRJIhdhMEgIOwmSHwljOvUUCQDgDs0N2XogXbgcJoMgiPsCzjn+Ko3EXhDKXslQgGgsQATBedOdy2Ydzyu1Zy+i3qha9V0QN2ihMpJg6TWsMPHi9zAz6jGSLvPKddKora4Mn7/137/7D/rty/77haf5Uk/jz2ahiP35Ya6zc0jw/r4/OR3Zz1PvqGZ6x9Oy2pTGVliOQ22mQO5tKG1YrsPHM/GJUDfQmLNEwZ1ASYXnWgU4yGMHZ+j4tf5jcfJEmENDGUjT2YaTz3K9cKnyM/MMJ4Oa1duWTlI+DEhDoTcWEGhUGoQ65WwLeBlhiY4u8u9RjV4dCwkmYRT6Xc4lAjoRZ17srjFA4L5dgWfAXqStxz5We2z3r64YlrsNCLB64hDJTJ8iWmZM4Ect9p6yYyRZUlBg/ln68pepvSOKJbpxc0o2ysvoWR6fXzN/eePDfve7cPrzoj4f7mjNUrh/Mutqo8s1iftHtsU2Ufv3r5CMVxGpZLVudjM5V3KrVh7bdHY0CYtlZjMrlyngaiPb0YXXzo5Yearw/C0zR4KA1VKov2v+8LwsJjm5pBCeXVtHJCpGNGrvIezObT/sFril0Pvn1ckfmvJd3vgo3QyHSG0LCeSpVCSUvk5BAgitebnWu2t5aGTDIiRu3e3JwROBIsE3F4YddwdAqTWTJQBqD1qmH4fUiXoxiDxBxCovHjIA7Hc+JOSKbFS1RQrNSmUAfuKMo/qbQTFYpxIiY8ZRaVsTDSyspfu/ftqCf/P27xcW8MS0o9clkdNjuz8fKE/1GzWahI7k1N1eBad7SVb0rV9rt6FXa+blen6ngcLDKFjNVGU97K5CMVF+wqjHalCUIBuxVx7YJOrovBKbYFjKc1UIvNnZCvPx+0lq/zJFc5kUy9OZPd0fYILKd4IKrkIl0vGT4Hg7wJ453t33hSCjjj5AYhOMdDxIBExv+Z9a9B1sR09rC8ytnYd2QJwBugZ4oHIjlYDDmFsUCue6BCdhzeyFXkFCWUgoSk0NVhSjGReKEeRwvlB9Lo3vS41LsJonQ53qZMVGBWfmN8exa3fz5g/vr5p31998sDV4rm+2jRbf15YdHSX5iVr5ozEbnZsXsdhs13rF4JMFKIG2MztQIhFvO2ZkRhrO08uN0AvoNAWCV0zMNKug6ERCYgY41S6rd7Gly77jRFbw0G+Y+1HolMridRHYvN7nE3b6/grKZSR2HUn4I84Gp5yIIlPK7SW/HhR/4keMmBUXBCEn6SrA3HoUE0FsFgoH4ARx2ARZRgCiwjQNFsGhRaXwdBoE4H1hBJFpApUIuQNBwrvA4OsYZ4/V0GruNKfMaw2CoWFBOFD1725RG0QK9hxbiufiMPr1j7Y3xb8/eYb/3++MPcVHzsF0+erOt17rd/cVF64ge3FE7/nz32x8EE+G4ZsEnj8q8Y1vuSOTv2iR07a/ioCfoVGYDI2janJ46I5X1BWRdapga77BRmhNCKa7Sq6Tyx9lkBSzJiQq3k+QyqQobeghiQT2b2vYL+aeBUgYKg37fNnccAu8OpVIHLhcHbXRWQkRxYCeyDrsotxsAOptuTyTufhTGXZEHSrFnbr2XIl1ogIpjNB6BYrl0Li1pdIAiiQITd6OSQsBpC1ZohpBO0LiYhnMKnUWPCF4sGLlpWlIkJZ2uPvE7LZ3svbDWVV+rLxft7558YCfw+Mfsb9MvvrzvDv5SfRx99eN6N3/3Tk9rN4996PWMORvNTe23RwHhdDBbmtxwwicFWQUxxzm9BVdTlBLw5vl0Vj8xoLtTqMb1epsfCsxZKrzlgwAicpwPdZLQHZshpFOrQeFgwkti4auTmVKwE8z7Ep0rwVIwdW2H9ObzwLVfAclVftrwQyHfNQAVKm1GyIN7Ou4X4HVfz7sBF6n1e67x44SbhB/AAnH3rR7gYxwUqQCePsFvZ3IxD0G5cvFyIE6gOMO4YzFaXFEjmiswq4uJozlVpBX6g1Nlclsx9qdxEj9FT9Z+fOPJD8y+UP/9Ooduv1n/rv1BfW4Of9uvsn2zx3/55qIm07ZQkRdDPSRjXlnlk5ezb8xtcLXTyRbPW2fOUOVPUZRRk3q2PaO5VfTCTu2V41qb4aBPYDKyWXtIFIKroS/LG0ZHSG5j2yVf+CtfM/ocIlz7XGL776+uvToVzoAloENuepEOgMAk1Nn1gykSpJK75EGGJIEkBOMUBG1EPTmrHMBcwGV3AAA8LpgNHVxRwJ8pBLKCi1zH4Yo0icO3356Fs7HiCYSeMAQhFouESJjpQXYsGWNF4aN49PHbCgVMMo20/fpsb6IO1j77+eXrP7vh6ENbNB/Yrx82eouRqdW/Oa607jxsDEfz8u58KWuOKX/yBnEUegaRe3RJvPxT5+0yjv3MbH31FYdgylehTFKnL9hkqLKNqLalT8StKGWAXYtXk9Va6RixQzSU3GxXghbSrebzHTAclME8+elWxpvxfrQdFqGdxFtP+6FEMIiEMw+RJJnyb7jJ4POZ9WuDlD8Zdr0EHBBA2B8rfgXj62gAhwGczwEBvOjJYVTgkngFDAZgOJDOPYyvv+MG0q6PMQyL08Vs+kQSA48UDAVl0HRsjBK3ZXEsnb1NikuX1rOorCmutCJJ0n8MmG1sGnUcx+uLvmiPmJHc+cCd4Xw84kw4L9RwgqEqwl09IcdZcgGPEYgP6DlzcJs01asijoiI1YRlUwxbMdNsxbm6IbMZ0HRtCbXMtcoqVhMfOnV0rotzbvHx7sXl3v7v//9/v5/Pr+fRH5+/7tvte474MidnrlxZnJmpH9qzdzZQ7/z3I/TJj+eHlkt71y0nbaW59Y3N862TnU5LXG2hpdK69b3Rou8SEW5Y3dD5hflJFxvJdMbAhnOnLbU0B9EjIBv2jpSI4eVIMOZlRiicDeS4ElPITMbjUScbnbQUgolrWXfArrfmmBEVG53gOmQvRHFaf9cvWk27yvbbQVSnj1kclYjSaxkEEU2bmYHCEOyjKiCrdkYFoHgz5pF4XqjsB/p0WV62UiqFQ0papXESEfxdqSUJXQUjymmywZWArkRYi7KQFrqiTwVvYlOUfT5SLMpEz9YvJ37Y2H79xMzyvYdfH1j8oV5fPtv5Y3VhoX46Fz370bblTHnh4eO15cVOy7X0zyJ1X3h+pXtskhlvUyvO0CdL56MNMUX8vVmEyqDZjJuTi5vl9WjL0Vmt/VsKNDNeFGeikz4olZz0RRiR1ZpQfPn7r1Cu5vUwyWY8FLchTEZrsTincNIUgQwR3Gmyx/Rg0B5GIRz1wO1gBWJR2O52wlm7IcLCGhYCYa9p0I+BMHRjL0X2GWQMkTCJiykIl4Wz6u6neQwgpfQCT/JGZX/ZWvZLo5h6hbaNpoViai79SKpcLgpd3zmBKFP5tDX9XrFn9Odvr1734xtL+ZWTh2YCvoH8Un22Pnu+9NneldQff83UGhfn903P7MsVcqj7TdSyulpq+OYph3nb4sq5c9OUDeUhZ1tu+CYnz126uLG+Sqjr5R6ZnIxGRyAXG7VGL45EvesZc/jgodr4f9E2um4OZmKRwq5QUO+gwKqNrubCoaqeiR11qJciHrTYTG41RFGbDWZNVFvHtWkPzvbCHBMxvI4CmMfP9XoQEiJhlIHx10ljBc6SgJ/k4CxkJwqwQPKKUBSkPEn4VR/h8ooiUsAmwaeNvFgEyZlHCKGhHgLfaHG3IjSeaT2jk0R5buvunqXftm99ZWZ+9+OH/97+fm0o9/ONuX2nzqyrrHHjtrlcaHh6Ye6PP1bQ8ebskG9613JporO60dr4SzWvlehCQ1yYnvSZU0XIdTw6X2LtUR8Yo+bk4IVQhJgcdwScybkUM1+yhSJMpMB4J3DIHonQjqo5WSiMff8dak+ER5z6tg2tquHA2uigds0dp+NjBdpT0dAmk8dZ6e+HPfFkwGIEUJlxwTU06YGdfcY+g4XWCYCdJxMekJHMHhInjIAM+3kOdCLltFGWAB7gZUX0EVlJ4SWMyFOCfLhIbC3ulkclMfueoOKVUBbldPERQq2Xnmduvmn64/sv4QNLZzuLZ5b/++fLzuVLPyx3lpef2ZO/y/bi9PJQfTG82NkIH6jNd5ZHkkdjpZRVX0jqbZaQjKcCXPFS674RayCGlv/W/DK+tLoZRWUx54y79Q7a3PRGmqgN1bOMN5KbP4DqQ8nwcEFOFoJhLcPq46FwCnY7WHcoNt5GU2whZrNDDnc16KSdqpnRMgL2O50wg3g0xiaIuzSws4IpsKLjWiDX70GcpBEy6EgFEowKwAucQHCYYDYgKTPgPUyYEYGQMSJrNqiHwJolJJmTnhL4cpk3GtOCqDrk5G4sXebLgJSXyz1f//xlvXO9b8+Z32c3N47Mmb+cOXv+rwPfHKnlb951ZnplqTMx9V3u0ITdRtWGTp1mP2Ey8vgv2rhW8m38m6ff9Vy8VPQ2FlJzVuvq38Vzc1qLdbGUEs3u/MhIN++Omq0j9Bqtb4lJtLWSGEMdLzHREG2O7Qrn2rnIcDARjLhMrCUa1Lun2pB2rd22Q6BKzxYth7RRcCdbOw1ZTGo0YDIHxHsjPACAqnY4qIqRGwKTLAn54BqVrhhhIstTPBfV+HkBGgWMImXQKTwEpLtdxFgkBMWocJIACAR1TrRO3DowKo1uIkbevFt8vzx/sdw4XO7p/H11+4cPvb80U7v49pmJH08OHRmayH8/fPny5W2BlaEDs+vLiQJ7NqPNLXrPThwyzyd/aorh5Uwhsro0kudE2fWu1iZtTqaKRYorLqRWytzLZtY3AfmWWnRSHGlFoo4aAfnQXCTH0EwUdxRMoUCCMY3pbW7c4cIjzuB4+Ghk0OPWsxBur8YcdhMdt7dpwOLKUKdsdtBi4iC7qQ3CZBiLYR7QBQ7qOMMtfrQf0FCUGpZZIwiLcFdRDFsGsaLObhVJv6Kk04oiGBFJSgNqcua7KlgJXSytShgokUUBUcpFMX29IlmFcnG0u+VJoefFjQ9//XHi0tUPDy9/uM13aOn9+pX63tMz9Y9ORTurmc/qmc9OXfmrIyeGoJH6OhMKr68nFtfDc62nArlGlDrWWphfDk+ZUdxCh4NBsYhynDeKesd8jItt46w32fKZIvnmcMkSTBxKTobDOHM6ksBjJn2Bxd3vmgpTLjDShukYywa1wTWn3ZTwQJoYYKYABuxN8rjbo6t47B4KueMG2O50KghlyHoRihuMwEbY04fwGIhkgjpB8CtwltLoBBnZb+jDFInLdzG1Y+GsRCoEJhStvLHh8Rv3I+9nM29LXYIww5RkVKWtXCaz4ka62HOyft31Q3NXP/3688Wrn0zfPFHa/kygmTubO6POOg/uSpzKJa4c+SgH5d6sul3aCw7XiQPr6/g7ocY/jYdfNkOUGPXRlIQGMiQ4PMlwhIvavVhLWgKMuygGXSRJ5fP6TCS45qaDo4xlN6rPJXM4WigU9CY9/bkbpRPjpqmQLbhzLZYJsHQgaALvqTiDYErC2ppxCCMHn9vCepwc49GEPTCpg3BWXT9pR/wxA8nrdDoDQFLqz+oDFSHbv98IKApPIiTGEYg/jynGtM6gfvEqecOCVW6IYrGrZI0YlZ8WJCxdLBOlH9RXt5vmpZ7D81fvHurUZ69//MrmS8MPDeyqjR67sv4sndvWpC9sXVkwB/ZO5saPlzq+Tth0IpDfSC2eIzKlKyUGPb+0EtwFVvVidI4NX/KVxa4r6NsEvaA9upSIeROtcut8MmZr5igoM1TKlSA2MxB2M146U8VNtfDOqYgt4h7BXwri7vF40BZmbM5gjz4W3HktBd0Yq8ahe3ROnK8WwKoTADVOXa+nb7+bg/u15BYXhtgBb1iVMfUSGAANKcPGwaxMkDCn8/PKfgxTlAGPB6BkK8hjCs/drBiNfr9A8IpXWkhTBKDwC6IsbIo7EIIkfn5NEIs99XNXt99782snL29/izqxbf7wnkP1Pa2FDz8bOBU4diG11InmDh4nJk6FaivTmUzkpyPo+PcR665aFSTFHPvg3L8Lr1s6K14XHaPp6B/zXWsxU2If8U7vWwxPo2gmGey+dYy5iOd9FBSLBY40zG4mEy5Up4P6qf5moh2zBSwmfNqMVkxbgjGX3tNmLGxb+0jMbtA7SFuO0PJjFZWyEPtXHhD2YHbtnZoIaHC2+43GPvquwd4sBe/YwWOIczAc4XhBUVBqQRCMGEL4BBjBMKBL+oU+aBsyIfvmBcy/Pwv7lS6h3GlUBCJNpXXprDFNbRYlie+53Fn5+7qJ7S/MXPd06rO5e+t7aidzr5ztdP5dP3K5WTowMLx8ILXRzCUesWtffMmR/Oon09SfQWYaDMVPMFULw953zERrQWhl3jsWYLT2+xydzAXWHpNlMVqGLHRu3YQzuLs0FmH1k+M4dP3I94HI1AW0ueeXCG2LV4NhfeFCvGqyrLkZ0B6x9XumLRkPC7LfOVSfvQ8BSLQSdGUV57UVnb73dtBO4E4M0RhAXX/gdQNqhSyqjAzCIDKoUwz9/h0KYiAEhMNwUhEUMpsF9u8gYUDXB/gRnY6EeaxvBy+k06O7dVSX9wnpw9b5hXOYIJNdsue6mTPzV18+9tTW9z8Z/Wzhptn6zNnZs3vP7J2dLY0fmnjpwGTp+EezaCY1f/LiwunMTCPXtNJfTS6JqytDn1ujJbjhW+Xy1rk81Ng6rreLRe1dqHkCOhpj5YQ3M+IF3Uf1jCnDuF2QyuBb5ZXlRCRiGw+Gx46OxSL6QpxBd/5ylIZ26dVBzldB9/2su/qgs4rT1Qrs6h2kPTALekwK8LBHo7HYr3UPZjnDtTxggjF4UKOJkFjFo+vDKPsWrk8iKBny8A0DnwUoRFEQAdtRSWcVY5Y3Erx/C5C9fYtA5J8xZzFeoWRBFCQCAwmEE8rlEUE9Fde9cfLK5ieHJr79drleu21m8sM36qdT6rTmo9mBE3s+SlzIQAOH3gzpDx7/YjlVywQmp0PDrdJi5PtqAI87HIWYnFmJHTTb72mtrNJaIo+WzLgIHjWloizUSEVlyA2mFr2ZjA/Hm/bTXlNmbJ8KkRn9vrXCmA0qrAXpsDZmO+2yx+g/9fFftAmL00LbxsbVsmjTGrNlHEVJS6HPWU04B0kUYez3D8LejGRBJDPg3OK3+OE+BNBlYZ2UNfjJbN+OXkAA/DuENEAZQEkhBVRqyIKfENOqowpYXlKzRbpbKMqSkJZlsvgAptytqhkMbGZ7rj7/6vOP3jZd973y9MEjSycXfbedqM0Mz1xeXKovDi/eODU7v/rSV+O7MsOBn7447bINT59g9Zc7Iv6Oo5FMbUTHHIlmcExdw3PfhXFHyvvAAxZ9LBIYGAi6zYvxVCOINyF9ssBETFFbMBzSQ/Rtu8PQ25MmRw2qRZ7YCdrfogtj7J9jYCTkYTjWEayu9R7d+aezN2Zzxjya51hcw1a4NujpBUGAQgGDx2Ko6jwWhUdoI1ztz1J9GLADARDEoBCKP2vt8xvTatVwHKC2ibEfRozq00ca+owqZMDXIEIv4kcQHaAAgHS3VCbyiIKlX1QHLj1Xn5p/6hT8bv3QzRNfPlof/vSDW4f2lE6/mTt4cNue1pJ338RZZm34+Kj9mK85lguFAj8lcPOUVvXTfVGpHXNx0+fniQbUIqwWLbNOqxlIuZyFqOiNyRu2BJWOpjIjbzV9GfzhB6ExW9MLNQPJMW1YzRWKM6+trVFs6M+pqn7KNvZdXNu03eOMadx/xj2fj9mu1VoMz3nuCfaxoL2CkgBbUasT9sD213mLcVCzQ+chs4BD9+BglnqMghHdfsQOGwWylzIb+EGO5AHMDws8DvCIQZBFwWDku89jIynZavWnrVJaxIzZl6+pUBwCF7vpLWZY+p8jsw1KpI7jOJjbtLvELLVULjstPbKptYRoEBh0EM+ysSQxokhQU9b1IA8eZAdGpKWGWOMVNzV4djXl083tYWHOoeZVN951p1521ZEzXtfD9DA208PVTC/aer2v/vv//b4Pnz9vcGHP1NI/D9sOn/C/d/Dc1PljBVPYX7B91es/ODU91br6uj+T8fcfHkunpdNn0mvTo2NsKtjmme7MrA8HmpRjYWJVOzazgeoicbYo/nlmRh5WBLTHX1d5tM60WEvLVWJtYoDjch5VwOVMidJKa8F4NKeLJwQJVzFgZIvBgDhhLLC0WRnuqWgIq1TjKtz0QrPZqcSUJg3D6EFzxGztigjdKhlsHpIBbgE8jEvAUj3JnRbAs1g1BFBenxumsCzpxdwKEqymAAQmMer/JcEBKqkYxMlBOEbJqJiEWwfqzQ7M+yy8u1sNYbKfvO/VOb0w78FPP/ruo697O20Ty+/YzrzcP//ByrJNcY9tff27xn6uWG/QMz8vhhYm1zZnjsxL/bYvZnTiUCubEk2pAnZRpcjoNj9u6imKVeJIzrX7E6KwaOUInVOnnD5qTXvGV6UqukvqSGdeDzna5HS7OeWwukXyJ8tlj9R+ozNFp9q3RelUJPiDiBNO7hk9GCmXUw5BqoqOMBWXkHIHCa59x64ZMtOoW5IG+AIclriH3Ek148JgjIoxbm+Wgt1crMIQKsn5Zb3MCKm5dHF8N0kmLRK3+yevL0n5ZBjs7e7ASWOtm4STHbuHQD7VjWejA6rvB7uTlucHeY9+eSi/8s6HpyeePvvP+MTB+cMT1421NS683XhhY2rTNnfhQmV97VzO3+gf2ZS2rvzy1amTr03/3IYGCourxELCr1HLtxhNNJx2SAnCevWRmh1R1Okhhi0DCWsm1JhxhJSFMa3Wya52ji/4Q9upNE13OXKmQGE9YB2Tr+7E6R1aSdM5tM+PymmRphCPxJu69F2qcJxMxJ50Rsr1bq8atlpQeRkUAPCqEWZcZIPPOyRjJKAbg9EDgC/pQQ4wkA91UjDuIzGghLoN6gMICVAk6XsrRkm692l9nEJ0dJOeqHewo0OhVoGKQ1kFGZUMcnMEd6ifh3nn72ms+3TizasPzS6ff61zJX/6rx9P22Ynvz02P73den700YVT039m1sYaPS9PTof9wa3+cOMP8c1ycZsecaXbHGXHpybFcSPhSnm0mkTbHg7bOYdPuUzyGqfW0x50WoO0uHc101hQ1Sl29YYc4e8iulCnKbGeThVpT4Aui9aLXSkBHZTVCTTSYpENaKyMy/o8g1IBBmWMKlRTctVj+i4YK8FSAeB2+VB3CWe8zpIk7cNgUubusPi0cJL0+bwyBGMAqm2QU8oOCqQGufnx4V5vMuvjjJWSYWoflUzKso1JOce2YJCH4l64hHijP3GVVfEe75nx438/Z1v6/enJE+ePzPVPbGxcl59dOvPHwc3XPv1z+ujp/NKf6+G/FtNjva39uaW9rQL/CKscNW4cP6UU23Pl4o4uYN6SKgOVcY9O6YnKXSpPX024UUyzVicRDzhVOqn2zTmleHVqRr61PZywFNKZgCq9w7rMAa6lcstUCToj8YrLKmjXsYai3CFwfo464/VDAZE54hSUNCJBQJbGQKORiX2Oom4URnEjg+swRsgI6mNoDICSbqNKiykkmA+o5eNDHRgGejs83v88Y1BN1UqoLM4H3yMxPVjSAyT5FojA0W4LjoGwN9k7mAWSgx0y7yDvwAONzwzcdfDYb1NLP772bP5EfiXfv3h362/HWk4s9+f9/pbc2tbsbGuusrl5YSTYnk5NzawT22z/xIJL03yhUKCvqHnd8bGYvlgZPqU65TEV2DFTJvwmN/L+jSiqDNG5XEoeMslDcouVVoWdISVh0Dn2PSIyxdleIsXq4jsXK8Uyy+qGrOZiRGRtsrBlaaQn0BTpE9FwAog0C9z6Il9HmEtMSW28o0oISVAKq+8xg5ieJ0DAqqSPKTWQAImD3di7Mb10EICziJjraZIO3Ef5fkIob9YNkXCNIpnVR2Xk7iwJ8bs9OO7LuvESaeH+l1bmhXh/n5/4Mvz9/PmlX8dnVFNntZ0rE7mBPfNrA49sbJ2bzAc2g7MD81trazvsVtfpsVzn0W3TCQ700YYPfigraUJZEG9Y+no/SLtozZBVqyijn4Ti8hu01nDCEw7orHKjuKVLSzfVaBczXarHbzCdIVJHOdbdG7LShVAxSMy1F+hKpEfnNBFsPFARiURNov2VOMgUA82MjnEKmCsEzYjGqINIK8kkS7ARK2EkQ2YxED+QRUhGIoZkCBXjdEEvkXQPdIOQGoGTrpgsyuVz0OeDu8nrKVLSQZJ8zl9J2bMy2VDW6/V1/IR6YckQiGBe3P1GFlfwfnzx0O22dw49ll9ePmPfXL7q4OHp7YlDJyYyj17IdTbOjpl0h0+ssGsjrYEL699qlWfXzUdmxM4tv6H9h0CiK2EOjm0ZM6FTxz8ZFqNdjZ9IpVHpD7SnJdHmEIsumkxiRWS0hiYqrOrqG5y70squFJtIy2ssY0WT1HUylfGray4SSnEqSFTi1cVnRYTOJdDUayp2tEewnzypcUKX9zFSFDXG3N1WUEAJugCSqS5ht2CxEg5WG71eBIFjJIgiPDduhmIdWR/vLfJdJBsDgf+iFUnFcBlIwTCFe8HqWh9VHcFwr4IaRGSDSEfWPZiVcd+idfiHXt6hlr3vPbR848Thjxq/a7QtH/ttMW97e3Z5aaWOnbLlf8vbTLkLeeJo30h/cPNC5qvVin94JKSRR0fZCnEmo1IQHJ1jy2WRJRIJ2OWB/Rzv1Oxd8GjeVNA04XlzV428zZXo6rI4guHQgnJVmdLIH41vszXxG0z2vUQiEQ7Ruv2O/0zkWTSwPdqta0/pdvSoQWhnjDJNnATs9ebA5z3NQBIu6xnfflHMKBwyg7X1iNoJY5oYJ4RGSk8eiFnAashH+vgAqpDAOALhFJbEa9wxiQRGvJLaXiFHfbm0xSmtgHPR5G4AlsEkXyKzRAEYwpKAj/fYS19/zy5f3TfVvT3z8tTG0uRG4wevnZ3tXFm2ds5OtrZP9q+d2/IHX5uePmbdDI5sBsZP5CaDYxoiGEz7ddJMRrReuGimixFaF49HMgs6dFx1+z7lxeF7rFJHYyix1ym3ezjY/cijVjpqrXvDEOy6OrEv7vSMtelMOtXq0XilEg9Ze4rlRxKEbuiNONNuLsa5zK0U9FS5iuZnSyK9KOGMIF4BonuSVJuRHqEeQHx6jfBSRFbLu7ya6amCYhTIlGJCoYTyopQXptw4FDvge5dqaPCB/wUtuPstsITgGKLHcErtjvEghMShrEyF8EqMU+YF1O4s78bO7+459MSfjd+9vLbPNvv747bPpqanDx88cujY1sjS5onRkQu21uAqkdta3C1emDs6MtZSc5IYDQWI4Zm0qHzTSDzeHzyqTNFKZ0u7w2qXogpWGn1GkQoNW/1El6O3pi8ht5xUxiOP0i6VcmacDbqUXYmEfDQndgaLDuueG26MlOu6HxKy1tQPxSYi/srJqlRz5WQ9oKvn8I3QALf7zEbBEA5rZG4zAoLmIbBJhvns0FsAdAkJvstDSAMlQXxD1ZAMFJIwvwGkIDiGyFBYIYu+0Y1BBxB9VS2FAhAfxPggB8jVOAXLSIQpYXf/1A3AJQgBuTrPO3Dr6fyZ76965/zUyp1LTQtTC+90vp3/8ZEPPmiZn/ruSNvoWMb/QWe/rbK5tTrc1x9S9meOrBLraVOqf0YZCLhGnan0wHevf5LIpfacbA2jxYU2wlUMt9HWjGqvRarstFbojLVmnz3VlJLv+6ZRGZwztDimH7txLl5zu9SgjLhSBUfJYSkEXZHiDxfT9ieLLMPQT6aYoVT88xSsESAmtCyo1juxMoX3CAEAuM3qFGA4wl13DLgJk3hxEMFxGeXFIZiTSfX9EhBASEomeUroTvLhhhi3Q7ABJhtqLXBUD2A+kF8FegcBSGK/DIaqJFoSyUZBWO3lNU4cqjuYP3H67PG6Pz8dtX32xfNb41MzuSX725P5s4fPrky4ttbnF3tNwfnWEWKz35+hzy7qgvtTqVTuZqWpt3fG9EOQ2W92fEqbpVuAM+6KGB5//s07NRKzeVdIu+dtXSj4erulhei0yh2aOT/L7tml2tv0iNyact1uSGwrpRXW6SZExfLze4nPaV1z+eKuN4o6MyGQ25+840kBqsFdxSJX0u4GhXyxCweuxCjg3TtueRUQ6imMDyCGGICT1wMgHINIDvBSajApI2Hf70wtBdcC2VNkrAGM4fzbKOq/26diRgoDARmox2CoAZHAMADjEGBIAgzAm1350H5o7aO7Tlz34uTAsaWp449uLrTabANv53MTp09P5g/2nV0LrqjmF0zz26t9b4++wO7kiDTdt1MIzvWb3niw3VPeUYq7X0BFzX6H8k2nUxcIizmTDUs5cKW00K/fNzdMqD5zJMav0wZMOkPNqKvCcti/nbC7+oia9prHmliiqIuUdXPWYlNcpJFC9qJIUCwahrr4N7PV+81M+Q6ztV5yfXXVTUKqVG1hhBBm9umF1RS/BDVDb4GgEfVe+5aPs4wYl7kpAOEsFLy2CiRrYzE+x2koku/DMPzSp3gIhNSDiFdBxviv8AC9moElglvADhzhuI+E98ZMy1LLsQfPNy4eW35pOd/ysr/196cXRs+91tl/eHKjcPiTIy2ti5n++fEjR9n5kTX5XD7SvtqpejPkl7e69jef3Bo4s1PeT0hFqYCz3fF2KNIXJ5yBHY9mt6ppry7Vft2de1B70LGbkwfnI+17Qrs8DnafgaVpLV1IiZR9PcRF8Rs1CYOoy8zGa3YVnHaJcafY1PzsG5qTgC4ucH3urDVUi24WKD/XgE8CvtLNCDcXZgqF6iEUxyXVWZR6vnZIDVIUBBg/B6t4PIinR2KxWC1CkmTpUoTMRrM4AMbIDjDWUFtLAQ0IBHJDIaMUJRDWvobJojBWX2J4tx88/NHjt+97cXL48UfPce/p50eOXOefPG1bPvfbZOuxXH6qf2V9ZtfZc1u5c6le0wVleJ717EtshT4mtkXNVnHzjkajmLFuB81b1ohGvqvruEp0w1XvN4mUqoeMBpdClT9z6tTtQZPnhr4Uu1dQF84lrtot3VfeY6+rI6RFpYlIXSykWo0i9ibRRXn62cc1hpt69tvbhRrRUI0gYlYKJI+Cd+iHhmp38fiSyL0wzp2qvoQIGRIR8RF9Az9We4CCOMXk9sMHNTDXQGq8VgFCDE5RJCegZFU1UlsFdciQmEKh7s6CAB8pWRRRSTUM9YDVoLAefKoHlCkw9F+GzDeobQIM40maVBJCTCcDU6CFtbjaVgHbUUaBhtYVaNcWGHQqtbDOIjBr61ihpeNaUOe0uo6x9WCCIG5TYbJrabVjMrbb9HTbCcxxfADrofj3VM7jA+onk9zlcpd8yXvv87zP+wtQdGhBd2Xhpxc2Aldmh8JD1okXmm8uJacnFrcWQrMR38ySVWtrDCRXk/23bLf3bCx547Yx1ebmZKHKw1ddrlnzqJgUUeJPdqrmODFO2PDpqKpi384apSHX4q07PK7+7ILRqGU2c3mRI90rVzkqhIU1tqFq1fhaW7HRvKYxMvUxUBy+RUBtW84zvLdKlahSaaR6+mT5yap3a6WFB5+NEddhNOtRIwwbmQ8hpLiSZDwim9+0k8zCs91ZoqwCsTg1a4ebhnE3DZHuehEqu+jCCkiyChVliVCcIBEMBV08MXNB0tlIahYLTWAogmD06zRaCLp2P3MK+PKjW6PvXv0i78rIDwuL3wxErt2cHz4yfWM+eXlgyae7ccd6bcZ6u9c2uThV2DjQvGnd7H9Ta7V5otS80nTU3LI+Zjx6uFdTt66a/+xVA+IY1cRs7fyduYUc/xsluZLR9mqb15dh91Lj7Zp2/mF+r9agFwRGLPE92zUxs/2kydLuMWltUb9SOxdTrNWpsmqYdZWdG3R21lxP1//aYuKge3e8LqVFXKP0sapUmrtXWZdfAIg5CWV5EBJDJF0gRo3cquzERSkOwGkk7XYHRdlSTCxm5g3pgpqyGaBDipreOpYqyubKUBhkZ3OfIt9CZKK9NPS8CN31PnqQPUgQQOSPz0oPhrylF27tu3Hh6EPJiG68+QdmcvTrVhobpyIr85GVq/01tqWliHVMe02QnGw/emdWV9LHaeTPXdbGTu/X3zmmrNbKlSfeeK7/OsezZurrHnV8lik4UHG2SD5WWFKSaTE70lVeRgsxgSXANzlj/Gi3JNMyZvPbTB4bE1Hlx4Xd+V6/3/RafjHHxhkrrsY5nnvXrxsTykrctYaQ+PltKB1FdyvKaQRw41gl6SZEGC0DmOQIi5rcqDiRje/GEbcYhbnPYDAKYnQql02K4US2G3K5m5pAiGYQ8G4uOJhFgEy6JN2iMgzCDrBhtziVPPUptygbuP1dxp4fLhz8qHFkaHqhWXEuMtF2Tbs4OTGR16wbXlodvm1YXrEungjdmm+0nd5zLrqquzu10/Yaxy/nRE3LztOGS7bYZnt0bWeJlvLL9/M7j+2Ua6kRc7W1dHS84rg3s6awsP1orn3cfMReUrdf0+aV7zds29YK1Y62IKVxdG5ra/ybHn7L9rY8dq/LFDVxriuKW67Xyz1VnF+JNGUxrsTrWzhw36GqphaQhhRZCEKqmggA+ngvMzVETL+QUlG9+KIYAkn0Y1Lmavr4YzKL6Yhsuh5zJSCyQExkMRlblsqWAdgpLsnFSCDbDacBQCq3mk4gCAI9VK9+HYhPhe0Ryc9D59SR6bt5upWp79758xMmQ1yeuRrZ2lh+I9yfXF067NvcupbcWL6zIb9k4G+0xM1Vgbc6NrfHOHpVv39NL/fwBUFlR49RkpFuzBNWGHMdmprD8gvdVFQbyDX4uoWqog65MPMDYZm2IWz3lti9z/m9xlybJ6464Btv6Y559DFnxakKylj3a2FK8clYFye63YVFCdRTDKTFUDrWWa/0P12FZh1LgASejjSRqKyLwEgZBnKhpqfdmPLQxdRUkk2mYuhedwEN1INgKsFGRNBudC/zYO8zGARki9yMV7JcIGOmO0RiGYLu5kL03mO7QQBrrQbOTH/pmO398sL9GxFfKRMk7pet3NgK3d/z8/rdodWbd4aWTjTOzekGkqdjkUK5bmr/ia86tqw39mxu39PNjCk5KtP+gOaBRl1V5TSN9Fo/dSjV3Zqoakzr9x6T+8aOSSQZqu39XklFh8SymRsXDPAPd8ai29vxtrWw3XeM37e2rS127q/rKXPiFLOrqak1PmJTV2Gxp68TnPLjNKFQpZdLseKomzj/K5GFogSiJIBfQRgt6HKLdondF5mpmgoTJOBmM5sIiiVgFykWoZALGgTdNIqhbuaOBx5iikTQUhilRSiKcHfjWekIyebC8C4RBND1j70CAs1TPRMTQyvhK5dmywQ6x/D8pcWpxtVbZ7Y2pu8uRlaGk5fmZheHtZMh64mB12atjVZOLLT0Wm/EpJS3yKOqTa+wkV/cnyuvbm9+4OgLfJKxr8QYw1tK2qg24UBYmD4a50RL2nyB6lyHOV5h1vZI7BzTmr3hQzt+sijHki+IevScls54frn6GIf/q4kBNnhRsSX4+kNVA1WEpg6v5+cjj5qQJ3aQSpKuhMU4AZeDLJh2Z0m5WGc9o5HExYuuR2HxkwzDc7tJcTaDwbEmrMCNpGMyECVYDLR65hQMADiK8QCaJEEezAPAWkjKPYAhWFqaG0Xfyt5BAgu/v3DToFv48t/MxsjKGz8O3D+ypAuFTpyeXGz2rk6vbK2urvdPf9sWCYVC61pr/7h6bNt/9dzmT/bkmuqcSpV8+5sxk99QqvfOP/VLt0ofllgkL9kr2noNPWVhbzQaVMv9JeZuc92I0FjSZ6R8OXk5me+EVXde099rMUXXPAa9yhTwx2bGrucXjVk8zmcrBficdJSqK8aLu4IcpwXjPIqjTne6BjpQQEnTWADArsd2Si+mcOsLEDYGDkoht1jJQtwY7QLFiNhNumUgiAAQADHmwX0YItFUVEYCqU+CLgiDZWxXfRYPgoMIUFv7EAQzDAhkJ6DstALg25fPdi+Ee/aMnBleWBlYj0R+n4osTt/XJm8U2YaHb+umGpfPJTe0urnlq5dsy9bJxukB+ekDycaO5bkX+uNl67czXh1VfnBl00TJxzg1xw9aq4+XjAyMe3davA2OgFdYlNGWkzlz5qUGs9yXI48f8VIzZsODHl9f+MPCw5SqwlfzVAc/j88RCFRP12icTn+Xv7JIynd2Bbo8eNCJe5w1p3AFh3BiSL6Cxmglk5URQAE10Y89mupCmERZDKCkDIRkaD5EchGSJ4PcIowNysQkKQIhNo+EdmEIgoq5KM1DGNc8Bh0CMR70EIAkcAgE8gkMI3ipBAq88f5C0ZGPJqYaI5/qmmcnJ2/dnl09sRBasX0ws74V2draun9/3qpenpy+vDTdP6tdb/7kqcmkf1MnOJ8c6wz4OK9oDqyvzTQHjiFJQ/7hDP9Id4v1xwfCfcbw96UBh+9C7vef5Y2129N91P4HeZKa8NnS8O0BYUaGiv9ahYDB4r3blW18ys7nqLx6j2ZU5T2Yj/c+ps73GznbTmWXBsd3CNgCrI9W4J3OHQfpVtkTMELTgAomARdYT5JBAEbF5O5U8oAYKSAAUQIiZCycFGFoFt7qRlk8NrmLnSB4KbVcSbC2lfEQdkLKo+lnEEzKIhHk8RRa+nQfpkkBRm4b3hz6zj60cut46J+bKysnehe/vaRrnB4aDl29ORTaiLwxtzrcwfAtrWqRf3lmLDk9UtY8bbjTuRazVm9ve2LjzZttAooy++ZH97c/pyqh9uSV1gjb4mXP5RaGw/sEY7lCAVVn4uc1+MwSJyWUCL7+UFNil/jsxzPNSonEafIL+u5pBDWSPkpI1QtGLcrzsWK956Clr9yZqNmJchTBRMKCWaRdeFawJQWEabqLh55nEeICKAWCGFzTRJIvuoGHIS45CDIlSGXDEAbCbEYPCOshEiOzMRBhYVyMaQdoUAYM1tMIzRvECAIg2GkJRAwgKbW1CWDmh30L08K5gbnhW/Yh3eLtoaHllchCUreim10dXgjproUWF0PzyVvPLYVCyY0pTvJ0wLzQ6JtMjz6YnX+76lI0PmAd9azzN/uXMo8IS3s/zPSdvSDM0IeLLCNlam9RzgNJ0fiHOXlHA3G73pdH9Y5ZDG3yXovBnqeM9eZ7jkjubVf2+KvvjRZHrxv0MVV5x+tr94L+x7uJe6b3BLstXUqFolwqDZ5s5RVLlYzPVeE4T8FKS8VlmKL8lBvBEzAG7gLBXTKaQVOidBDjsnguMQxCIMhzAbQb4dI8FhvC2CSMIiwuF2YfAmBGQDR9EOHRgFQshQ9hNPNLaOirg0NHQj0zkYWpK9Mrn849mFrdWpmOD08yJRi+tTAXXZ4eCzVebt5anbVNXeo/GUrecSyYk7n+zsm7FVWnZ4sC2tiaX2CRmAPFJXUlZbYBr9lTSJX52zPCan6Hn++lfP3hsw1FvZK8PRPqB3kd9vhJyp/5dfc+S05bZUVpg1Pl61Wr5TZOS2XA/26lUdlTWaHkXjuv7KIpz/lY8JSihc5n2rkKfrTycyjITpNVPYp0PSmWAQCIi7Hai6kkTh5yYQzQZLiMlFEEOwtBgSAXdIlBcJB3aBcCIgj3RRIjMB4PSQAYC0NIiJ0CpIEIr3UQwLlZB+oVwJsX3kzevzIxEBna0zyruxvc/GJiOTIUOTO7uhi6OXS/N9k8Hrk0eW7m7og+vjK1cblta+aE9pLg9PhAdH1m3HFln0YTaGSEQB1Pz6T6M+O5SYcxqn+nodvuo0ooNZUbzpGcPWu3jrSFj/rsEqP59/HX+K+U5ljGje/4jH2Uts+ulO8fP0mNcQR2VXlx2r1orqVLKBCc7FpjTqcGczxz/jy+4ySB4RxAqXiMdx0kFGJ3C03gp4IYgPDSCDFcvIsA3RAGpIIgSqPMMIFADCBJEpECJDNfXQAkhhAuwAMhjNXKfpimkVoeqxWA2QRWnZUW5NXWpvUB//575upd4c1A3DC1p/mHm9NXb00s39DqitYNq1t3qZ/mN64VqScX7zdGlpljI7nENwQiZwq1y4cHxsMd5k5Omy9erVeVx9aczjafkC4q2Zdzraf0bE9Z6fffZzT815AjaPFa/DNH1L2G396xv5yz+fab+0qfHuhuKNrspTrielW7N+DXK2OUuq/YUq5wxirU6jWptIN6aEfQojigfNyeXqmARjUJS5SXBuNIUKxw00+2ih6vzeLVggS778liJlB3uTGIx2ZDKQm4Cn5c5uIRdOugC0SrpMDTKWKSnTL4MGMXYimzdrGYUMKqZd5FCDZRXwsTBAwj0sfTHgF+ee/nV5vfrOhZWLwxfFe3tfDFg/Ghv2fv9840T4am1xmtXB62Rm/MLl01T24Eljc2+kt6TlDnDA6jba7GdtpU4zWut8dO96uolx0OyVmrL+MvSnLEoPJL8szG8Id5Z8LevFJl7tEPvL68hoYj3pyG0m67WSiwGCQ5b75QJLEI9jl6MqnY62ecejzHcUp5T1WujqsZgKyniw7mV6qDaqySfm8UNyPl7EHnu1IETOgxshXcAYNijADY+U+SYh6C7mK5IKYeoCuNxbQAyINYGImn8FiDgxCNMu3CA4BaNsRli+mgDEawVt7Dg2y0Nm0QeIgmADItNZHyyP8UnH9Q2n8dxz98Ph8/fGZ8+KgUP+o+LORHIWBxBiw2mECuglh0wWyLG7EG4+BErx+oIDfNNJYR40fEj2ncYmBakDkz3Fwz7QfN0m+x85Zbmq41q1vd2fXD648+/aF3fPiLN6/38/l8PF93AC9G7v5n5TfxncePFf9MT677/22cfMLb3j5ei20fZ6+s7lRWYzu2H0/GrnnWS9f+EJuLnfNWzMa+dUdIIC/dTTw4c/Zpw3XRzGJ6zowK+Cbmxft/UDMTLPmSdumjZ8Lv/jjBJA7q6pS6HvW+/7O3z15SKBxL6UGDPeyL+z5g4o1wRhX92rTyG3ZD//QZu7dV8Dz3GZ1LT2t9rowYHmGtExPNHP2piyIGPYBSHsngibNcqQ642Y3QMZpUdMpORZsplG4AgE41WygUpIViOdXcQW+CybjVQi4RuzoAlIuQdtLcDABOCxe2oM3vFA+0AKTkQAEMpbfQuwHUMkUn3/9P9UsSo9aUTRuLlWyGVSX3IOvGufVYZnte8fQ3tlqMFNCYbWXxWmlrftHgGJ1zKH4cXuPYPjhi3CpdWr128d13iB6ONvzL06efNNKsqtkn8Ny/OOwz/P4DkjCTYPp8o5LoHc6FO2kiYQ0G1epBQZ/cU/ZKeoL9Alco4uX1TKx8YFRpkPe73q0baZXYz4v5H7dHNj+uV36Y1ttrl+o00oioVTMUMDRR36tsGhtwB5pQ3Ye++Ah8Fww0dZBa+KO3t9AxxkASBbrAjkAngxRLEOA2NXeQdmoZABAnCLopMKVZDoJJjA03Y2BTM4JyQQBpJoMG8ikYxJNkPh1fc1X+/mLhj//Z2FgxO9ayO2uPd3dt3thvapWN2MvK1nFWYdvJPDizMl/dtZWyfY71lb/9bWn05elvbY7e7newqgdqYql0icPXJjwcx8fMDa3XflquTfUtp9WC4VCRn9YKbl5iqqddamKvnrJqFYRraZAohy5qJaM37ealxIX78Wdj5//llXyrf/PCI71A8q7nPzAE6Tf7XWdJXs/19/Z+XU4J0FVnaewPw9hQL6UJxdtUuJjeDAE0APrwvW+CEANABihiZ3tzx3thSquFvCRcOsJ1ohC344NNLVIKgtB/1M3FPwKRh4TQUSSJIgANkaHiZtSCYVN08VR7N7C4/qfBjbuPH/9s4/hxdeHVrZXfyld3zfqnZEOxtRtbWF+7bXtamdyeLGxodxcUaf3T3drr3xeG/na1cVUef7/vzKrAFS8UFBcExKubt6/6Z62cr4/Lg9YzQf3NpTTrnH2ER8TVPJ/afnbUFL6gLketxOim6WNHBwmPPKU2qfl1pk+u5fmmXDy5Z4mtD4zxxuT9U5J2/Yf5ctn9fwU2abT+zmlhx8QE1I0O0SdutJAxQtnSSaU86hJhTRSoxQmgAPBFyinYOUWFgQGg7RTU/LCDQWlBEDJGkeE7CQ5QKG4LfgMCkwjli5SW5ryYnnTLUK60qaUZyLnhTwa6UcBbJC/Feh+RmVsdWc0+zu78qhgzVku1lZ3vZkqVikJgi8V25ucWHmyZX9oMji+FNzbuJH67coUTHhmO+6vfOCP/6iXOl+IOyaXhB8sHEvl5E18r4JzxvF/AY2ldHgHhGubVFR+TDH7cxTrkXZJ860thwTIxPuyTj9zyeSTpwTEF7wOnlSG53fxcrhV53vXhsVb7/aWLfJWpiabPqdpM/Rp2l0YnnNJZ3NzXGkAplZKwPTWAguIAHei6105pFlLaKFjLO7lNdGAg2UFOAUjp/H+KSiIYRkFxOkqOiJubhNvJIaCjeDuA/uiUNIDCACjF4KlO7oCU0TVFB1i3Hv+makNX5n9dWH25sF6rNDKxu1u1iiCzO2cLb1eMD/62vf1ye81cC12IL15dfTd/7pff+sPoxu1rwz+4aSv0qL/NWfphTUFI4h8/J7APX9xUm8NFtZqw8jg8Kyvt4qW0CR8zTUStWp+vHh7mHTEFwXo5rE3xRxMCXrGsVGq9cjKbP7ePCPrtnM38efvFTaFhykMT0hLAfZ0EzUWk/e80tAYecdnU7oHzYhUw1sVOktIXAEVUkCL8PgX8MASI0CRJWWIL6Z8UbhdAx5rg97RwYYALSptOgXATSJdakhAGw0g3ZgFvoAgswygIt11KP4XTcRBpAoyJjd/9I/RyvvIqe7wQnl9fWzBPXnug+LEts2O7thqrkRYam1/dYSl25kerVZsiETttHgyzFsyhpdK3rkn8dxc5Zz4nZzK9vdP6MMHSshIs/6CaZLGQdu8wtOwb9pUJU7Ss8BWj1lSd2Ite8v3LROyzlGVrUO7nKYlBpS/K4mhvXuSPRJUXvq7zcCJ6/oxeXHjU2hqZ+lf3oNA+IRxiGzoMbcle91kQpGqksm561yOuaqC/aQDskn4fQHItzbIuCgSJ2ThkyYGUAQgEQeAU3jTVeWogJ2OgJNuD0NffSyoDyuUicH4KcHNRGEEDdJAhw9zu5jwd2PiTY2EhU6mue3e21n+4lY09vputGWO725WScSGWWXzr5SSJ547Cym7tu0u7q/HJ1XNji+nqg7eP2qpbxUPeBQ5Hcqso4bz/BzfHmAJ+X2OD3HnYh+PxRFByZdQc9Xw0HZdordayVkLcVBC8MkuQJsrFSz0hVjmhN3/C6+FHfUI5oVcazvmmXS5l4fNDERXfoLwYsGteC7GLBqmOL4RVgRwdGBoDhWyYTvZ4BmkLSFN26duaNRDdiVBUsKyJ5HOIQm+Gm5CmFkoLdwCiIKCU0s12IxQQxREEOIWRrgLlES55GlIYwVALhCF0CwWBBjApFgD81TU1r8hayVYVxkplPZHJ/qZaOYitrizYHmxVsonadq2yu1Q6Ltlid+JzV20PWucdjpLNfHGIHJfPmm4b7KzBzW+FfVoWod1fl5jsAkVqVKsVMA+GzbNWIjqsZS5brcOSYuOO2V6QeD9wgVV2pa2eMzxdkOVZktuVP9DHhaev6cq+vtYhvVku5xM3PmOX9/crNRJd5MNSz9iE7jWNzY7Ab/8RjcvNqaQIv1tHlVFgUAzopqRUKtD1XmjAiXFBSgfYdc/SRcok4KSh5H8E6fr/5ENNTSR8gGyL08nNIzCZshE2iuTpKJzDqRYKYEExKr0JmO3ZOFh7XJ1fKf08vL12kKlMGpkHmdhkaKu2Pfm4Egot7u7MJ6qZc09jb/1gdzdWcEgeV0thvUk/rf/oYFw+zuPZgnLvFwY9PlZ4LeUnquo3PSxWSnLBv8wregltPaVmWiX6b9fNEub08gnT1zAHQ7yoxGvgRHmNHm1Qf8nrPb2p8riC9+9v2vly/V2TUt7/+vkm3bup3JyRbmo0GoSm2aRKMaUBs+Qsj3pxGVXaDSAWrpCa5Da1wd9sawYGLDekpEB2kXUdpRPsau5s4tJVKEgWd1wIoJIhHWaj0P8Td9KNY6DbYkniaGeTji4GYBLR83knmTav6Gt3e9b7Sj/1Vf5cNO4ez28srH+3UNoyzy2Yt5ayK7HJ1e+FFxy2yblwbTVeNfLXL9zeKJxJG/vtX0ifUZtLocFzL5/IWcuZdDpoFlzs43/itHovdZA6HPWMBEPhCxJJ9KjMV9etWjJZWBM8XsKleHeivi8n+tTKhM/n0asFroSyf4Qv8Ezc/JvJ8PpfXs3rfr2+9X63S9f1A2WvpEl5FkNdYJMXgKTNbbAdFsuk91Qg6GyjByAEaPpwgNsMnkK5AEyHcSmlhYKCZH81RU9SyBoT6iY/bDIP0QekqMWJWihSQGahoAMQFRYnpe4AgAUwKRAAXkl+PDFZrdxVKypkbphb+Hbtn+n4XI30EeP83O584a3bk8cL81fNjuM/bC9ujF8obRS2b5+2b//m7oFikPMlTr+pUJzYXCLsrabT1rRXQjAToQaxlwqv1C8RB2qz1Zq6oj30Bb3mfZdEO5LgLO/tE4SnzPIdBR3D2hF+eZQYfP6ZuPpQ8Pxm9AeDgyqOVzmhHNFv2s+j54Wf53Srck1jIo3w2lnOFA2NQBos39IK0ShTnV06sseiImxIRHnPQ7QLgrqSolPgqSnI8jYKyoUhbjuQ5Mog2DKVxPPkKTXhFAt5NjBdhiVhUkDpCAhRSY1BkACYz6OAbWRFYWQt8KrFld2KIvvP2a31+R/fMm9s7VbmjbXK3DZZVPymMH/1dnXyrYz82su3slVDmmV/urQ4vHJutudBvKeh8PGIxmmB0sAKT3r86gthSU+x0PAdks8FhIdXbshdaU9Kq/Zb/X2+UXPZWrbKDcyEnUMchj83ts8bi7oMUZfJE070ycmroeH8oPW8kK88r5R6NF7hFOZ9O1v8PNkfAfTAPTbQD2qkAFs6IBbRIu0amBRDN9hPESNJqg7FToFiqpOCQ7SpJiqVC3SCFDjpJrmUdAsRJBPnkSRIFcPNFgtEtbhbAAuI5FtvkIeFuAEpkKjW3mG768gKrhbitSuPH2e3jxcW1q54VrK1bClW2/7907d+3Gfcecf17K5x8MLK741E4h2cUsiz1FcIH3j/kOm52/iDYVXtWgqu8Fj8nhTxIN3ouZmYXX6j1ta1e6koj19MuXj1xEjZFzITKWv4dNDrIOSbvusS7f6yPxj1ElZvZMk15Xounw6avLze6WevWzk0jtA+pcxJDEKafuLsNF3FFl6OTFA0NBomlXYjrWSRRXsE4gCbgVq4ORTuBGCELK8opFPANOAeBsFdEBu0JNthiJTFpBQlLcJikbotSTFKJu8cG0byebg9meTCMi7+dai9E2hsZC+Pe+dKi9kvm42VhYXdhTkyO1Ycsd2rtd2nT493X27v1I7n/mbbWnmykTHzf3jLGLZ9xnabXKdfUQefzSZCpWJJwR8K+V/t80JyVmJxfPnw8KTOCxNESm01B1NnPEfMOpFO/4ywRn2e1PjstFodJm+SNnrBrExZiamluGmYL494OXJ+2BQpj/T2ROQTusBShH1eE57+ME1DV4K5IerECKQbOE/Fc0g3vdXtFnMj0u4ZGk1MOqMMlUEtlM4uAHP2UgAKxKVw6ShqkYqTXTgXplJw0DLwNil3ICnLY7k8RG0jZ8KCWdAczY1SYUseFHHzOHC3uKB4YPurL5bNbGztPCa9w7F1LjQ9GS+EBwtztx3b29uTc9uLttq1VePCvNZnHJ1UlMwmZTAjME8avn24ak/w1hoST7FvqfFUISHM1nR403rC5AXl8kGrenlv780+z8Q/jEqYBJE4CvL2T1JRdeqNNWj1NYaVpjLP7iUEER6P0zts1gsHzyZ0rcqg5INypXdKuSm1S3PCfjpNaVcJ9ULskfSdTh03QMORG9fbumbEVB12D+gYgDAyU0GYjPSLJpqsA4C6OmG38yGGQB1wCzcJWeinQPcN0EJyOemh8P+pHLG4UQi/jCcxt8xtQd04mcEO/2NcKL66u1bdevKgtK6YjN3NLFYe/+J25qdFrSMzf1dhi4ftZMsZdvw+Vo3HS082spNaZrzP97PiokLAr2z40xfWUn2jvEFFiHe9R60u+/QjTF8oPMtkFVnpvf0i0+f50zhR18qL5KuEK86KRzlx6z7vhPdmIhXyW73TxPTQaNTPC3tZ2unBs8oR1XRRZGCbfqD0CvulkX52QE9ja6R6VGwXiqh0d17TrpMCYyA59nBOinIp5JhwB7A8CnfQkS4SPJCBDgY6MJDEsAGLCEIhVAYnURCHbljIgsadt6AWlEqDe7EcA7PQAZwO5y0yQAysbazxNx5X1l2kTC7sfG9+PbuTXcvsxOLGye8aX+78wmE8+OmKzXZXWymGDg4m/3Cuas4oFr8rWK0uxkPeaw71q3Qfkzf6YDlajKY8g6bDF+pD3kHKan3D/JxrNhjdKPv23hDlqPrWMsEZZZZ541brXn2f02DxBpker/5wf/lWX4/vtLBc7m818eSmb2lGR00eobzbI+zeHGEBptbuvMqlUdFzeXpExU4i9OcwbkcCJJ52Iyo6FEiSpvp2xOLsklLHZDjDCSPt4iQNB4BmbqcMh1GEDmI4AOGwRYygzSgkEiMy8QyWp1LpCCkTFLcYwdwWRAxkXhWzepvHKNnejW1Ujv+8Zlv48SRJ54W5bGUndnUrYzZulDzZHysOqpdCEkfYnFmtzHquegUs70hPtegfNIYX5bddTF4j2DjUDrLeMBW8YGovrU3bJTxPmkhPqKMhMlOEBhus//jLvB5e+Uh9uN9TtsbtpxNWzdKwhBDIj1wcwzRPo+dIRrzBViWfxzHQBr2fV3lHOBGhXtNtp2r6hzQcEZWt4sp1bFhkYbsxRAbl2SRvi8FmoZQNfZFBdZLfblJGBZoZN6RtUCeJHSCpohiKYgDuZLjdeScmw+luNyKjui1iSEy+miLH6hQKYQw6EGatLvxp7fq1rYWXu3+U1CafxraOjydjT7I7nxtc/HLYtbRi9Hn7dtbvVNe/unLsECy94o8Wa+m/8EoZnsPsl38roX3c6GP6C56o1Z8KWs0ldfT/iZPJYr5hPlver+8dHWmtG6k36c0Ra5QIh4qSoMlTjhbjLuv1Z0c9nus6k6qqd40kND6912t3taoHdSyJyzPGovULR2mt/R6dgaNCNWKlfAJpRe2gTtVKeilNSqcLmy26GQgGk2JSIRko/D4wR/lickYEOiG6SgQipHLCzhaxkw6IMQCAkqAbcpMPpQwGQDrMdTgvBF5jOWfHj7DXbtJOX0hq6382r74lX9pZu2tcNxrXMraYbX4ndrxDwkdl41eeFYmjkv3BZK164WXNtjh511wKL1VtG9pE/FtfIjeCUcVBzwtekOVPWT0J6ytC0mNOMbXLpGkw1R7iRE0ayd4hUa+PPdNG6/W9PuuIn3ybYPn3903ak6P+4UZiIhr29DQaeo/gsH+otU7c8ig1ds+0SBnZlJO+Kt1UPZpCIzTvd3QBEhvGpGxAOYW23jNQ7iHkvostghDyoz8EUHo3BNHBGbgbDARwhgoTAxQUBUBExE1a2jGZTISRcQrvysnEuJvM21SIvD6klZDqEcgzMOBPcdv83xVba2OTtoX50pOtbCa8VSvs1LJGe6m0oNiqDHt2FKXFEc5iqVpLDGbiRk5pxRv3aRVrK6xZv+NJhsP3q5ckZjVLUB0Jmct7PfEoceCTHPk8gl4BUZQQ1v1o+SQlPzgkCE65zuQVi579etRFWkgkvsT3TvcJojx5MKE2sORRHavfl2DdH50YGjpt2DyPB2VDY5dpgdaIm60ZYqg0kEEs1SCALpCjOamnKBoQ484wVHhHEm1D2O57XXkuFwcekiSOt0svUwEIwRhOLgTibhwhPYbahlPhQIB8ThdT30segiwPiTqAPA5j7RTAYct+r+dxJWO6XTLGJjNblVrJuOIoHHiuGYtb/MJG4XPGV6yM44rxZ5mS2a9YSxinR+OOYjWsKLBmb2Uc1UJfT9Boci1rzXJmw+CxHg2fIcyHKaaayRTIBdH6iz2WlUecnGi1ZWKZqRawJAJ+cf9omuU9Cgd5HG2QiJYFPTfUpsSXluwcV7Bfb0qcH9MNmUxKzesPK9lxstYKkEB2P5Lsx9hiDMXyAYgtDmAqcRdN3MFvukFxy0juakMwDKBZQJI+GNDDy1MQ1gl2QBDsPAXKcFTW5kSo7e0WSEYCiCyABtzibhTOy/C8mHQXTJzvbAMUprknjt94R2//cu0r1dKVeOypsTa/MfkkU5r7ZWH4u46t422FcX27tvJkrWe2mGGZwy5FSXDLOKv4aeIbIaOksJQoVnmpnp5wys/zSdIsr3WZP+Gv98qj+2WiTP7xRkf2TqLlcn2fJdnfJ3zak1TwiMk8GgpqtSyvnR+9Fu2zLgW1Sv7ImDe4qeRE4qPn6SYN56LKtJk3jHE2cyYVlnt9X0PDDCq3TIoJGUNirrIrRxoAKKR8vwlxUmWyNkRMTjwK6XQBchsE4wwEZ0wBEMRFO3F2MkfFUQrmxrBTMzdwBnWGiuYZMBXHoTzOyLsxMdbeAZCrL0X4scRYUdR+v/tvIrtTubO1M1/b3a7t7jqe7iiqgtXYcWburdHJrUxhNWSsmllkH3le0bAp0hss/fisRz7+IhUfPTdLlrk9qQTzVorZV/fVmek/7yUOtYdWQr0nOYpe7/Eyj5ZTR/tk632SGq/7DoP/mS0v8cJ214lfzkls6uu3eC6S0ZVlzebZMbPmPGdsSme6OaVXmrCchCJ1UfpFBirlucjQNGCR5gFYRaO3Qlw2994XH4q57HZkQPxInJSB5GLsizNNYtQ90IV3zjBgUTtFTMUfOp1JCyRyiihN/09iDJhNzc9Q85g7l8eAADklFtkNoFQJkcxR+PFqLfaNylc2to+Pr2zNVTLmrauTq/N8W9ymMI1mCzuKW5OxqwXzSmFNK/lp8JYiXQ3xvT5fj8Cz2McUHM6O/1SwylQfStRvXtQPrak3KeIoetJza3nvzaz1KFXeKxdN0VRfuZyqa4uJpcbJkY9zVPapG/wga9+lDgoE3mgj7tWNT2t8unBuODqxaeKoLir7x6ZN+imdHFLqp/Js4UVUCMunNaqxezQ2rOqW0pEI0C4SU6Rs8XfuacT3RKIvckG0S0YdY+BJvO1yOyKzQABjhkyXZG9HlSEo0oax24EAhCNuHG8Ty9y4hQqi7ew8TgXWjJFJY+bKyrdLx7ydna9UK5MP4tnsbuxrF+ZsNXIyjo2+mvHqEjOTUV6bD11YLZkL2vnFgsLlEAQFCUVwbfk/HIWAlVD0juwfHjGt0XiaubdcLxPRlD9RPCk30to3qVS9bl1+c0IWoHtlga9vzBW1WllBAcsa1QsE+z5Xgr+vjbrGEhF90MTRu/RDuhEWO2yIeHW9DeHEWEQJ6kW0XOsPsFx/ToX1t6pETShXLKNHcBmZqFAI6uzqzg3gNNH1Nmfbw05UpkLam9sAJ4SBXPz7nRiksgAMGZkpcUa3G6LeQN0MBlXWLc1BbZ2M9lMojuEqBtBXqpE/Z/PEcXBnfmV7+7fFrdXVuYoxtnJnzNGIr+44Cn0rsVe9t0uxO46Y7c6coqDoXVT0KH6THhcIlg/OHa6pyysN9YtlJrPKMx/KN7S+XgUvesLSHqZWlHt7atdoeX+/bt3b21veJ6bDRL3cO860zo6rfb0jcqK8dPNinWCN6BsCQhA8GrsvCfLZ8l6OYcKz6WlT9t8fG5uIKHtFUqpQ2Iqp7mkibotM89otVIFsLPJObkAm64AQFOmgtaNJkaiTQaWKKF0kYwFO0I0B7bgF1V2Gofa29stcGQNshxgiDKGJ3DlGGwNql73GxDhMbcvn2HkdDDh2F3r8KwsrXzHX1ld2f1ad31oJZxMlc7rvy1cerGVD2e8avzC4vb27+5ZD/ntbSKsIXXl2xl8qGQvGoGTRl/EcvPiT/1lDyxT0+W4tS+7ujff53yzX1S/UvFt+bfTNkTrFIgWzUbZKUif1KCmkrkMX0yqQpJTqQ1/02YjhKOoNH0iEvhnPTK8+MRLVqDiGRHgsF6GfFr4e7aeNyVUaVZMnIG7VqIZeJ1UWjK0hfQQNvOYCqLSzQwNSgO/IHup0be0zsnsQhjdRHz6cwS935kFclAMYIkYTWVNYcBzDMBgS48nL5MVAxDmqjCqWoSKVGHGK2lEnAuxmf+paWM0a/2vffSx5+qB64fbtuRXTy9g3npFJ/LulElltybPzG4tP9YrMpL0twTP6Fh/4NryjnJTfcH3csdn3JH14mNAu96iLzFT0jT9xZA1Z6+Ujwsdb9vn2mIIRZp/C4xusR5kvZk+sKT9/f3+/HOURQd8+08VUs3i+QYN8mnla7+22ejjTLu1QQBM1bW6arm1GXltUJp3JgHM0qtfov5QBXNpvsdjxkbwKoVBUSQyB6SSB3KN0Uz6NRwCIxA0Y/ea93meImyJjtHOd1M4bqAzgQvBMO9p2g9ym5S6PU0XtYrzTnRfnyVshE7PdKCpGZn7iBNZeFG0/1tfW/1F467vG2E9vOdZ/3fDG4+tbJJ5XTXPf5axOFyYHpyW9ty951noKd80K/6hjw/riC39irqnN3kTfxqtlQut/c+grzqr9vNRBiFh+xooSg3sj40dlYm/PH2UuSwZTf3rDjJ5Y64SgHAySxspiarV7PVa59sX42HQfT5Wq63xeu7DXqZHvR0xL9py53/tcoxq1K4Wa50pYqZrR2XNCFTv3xdZ86wBZ6rV+MwAN3BPiKphcA23eA0FETGFAlu90kLVWC71NxMBQmIyRAExCSJ47MwN3Xm/DRR0QWzbDZuDkNWNcfggy8kmgTYQCkNvNzgP+tW9k/InKb4OT3ygsPG44NqqZOwu/WdKdXtye+96DxJ1w7JV68OpbDxLz3326lij9ue+OXKII+UOJ6iJhVfMnZv0vejjEq6h11uD3S/6TbvBmfbwl0TIzdcTbS70hIXS/ISnXrWXfrWjdWiejp9XPnF3W8v/z5iTREJA3RjuqDT/T8sOsGaFAp430ujgChs6gnTZv0gx64WZrWNnqVmlo7H6o9axs4CKWOx/oikwIcySid3Re7rzR6dRfByko0iVj3Eh2SL/vbP905w0nRAEeUqkdzcKHP7n+kItAFovsOt7mxHGEBBES5sRSgPGQIWaLxGTASDJEqvz/KrbaoDbyMp4QyqYKRHY1WVTQbLI7TSCrMZJoatImMZySo6KG7qwgGLphOTAvnkLaNCjpNpgVsby124LJEYdAQvUa5WqmXLhq7DhSGa91ijcZTYG2I0Vn0EFnnHb84N98yYd8yzzP7/m9/UWdV9oy/hsPbt7t/MlY29+9rvj69Zv/uvm1SO/ynfE/3/lY+733rjctL757c3HRa7+9dtt867dvX/v1QNO0ladK3JMneada3rTuC6vdM03mFu7wr/8/nytuEAXm3fId36766Yr5YOfg5c6jzd2VFW5nd1c+Obn5dGnIeHAwCVIi48xkBG+amTY+nVF5p+2RGdNgHCfODDQNhrqj59+q1Ufp0bq3AnCzkZA1G+OmZlejJW7RENGFILJQBar/SY2h0l6skolrJBXamOg4isugirSnGQEAqRVDFdAskQxWyUiS6Cc0KEToCEiHsSzar0PQJITW9C/06yA4KdGQons+59iNpvXlwZYlEJCOf/u1wZ7tdzvHx99872trbQPv3fjp6M3Fdv6+vuXsYlPsNNXeG3648ZNy5oX/iZJfbLM+VSoHB5T6mTllxvn0mnJg+mn+6U8aVuSK/BO5fy5vVbsPzf7Dpt2X6h1gWUwemCPOuc2VOW6OP1iZUyx59ZuhqDJsjanCXodzaEw1Y7INel1jxiab5hQFxwJb9d7a6li08tRfKvRRtLoZ726EaKNOYzqPh0HDRgOEJiqFPTqTLqitglBMBgHnCihyGYLqRCyLTchGNOBWyGQjOkSHSUdk5DyGUjAhlpl0GgjCEIhEZUC6SWpZEbe2/ueft293vr24+nivvXf1z70/b2lqGX+w0bf43t3xNryv58Le2/qrvdcW9/wzvaHLvlvrGyre6XQuTYbCsWuPyjynKHPmOeb9+4Mcgys3J/MRzj2nN+/PHSw5Mu4dt1q+k/TnI3l5vmHzUOk9UM55Vc7NFStt1ldmVg6oQ7NK3zA4pFaoGNg7VDdojdlqULzbtWVqGrPYLXH0Y8b0+THTQjeKBp4nsJHzzZB0XjYijXtqRyrSBsRkkKZrsCyQFhhdrS2QNIImRRqMZNmaIJBoSRiB2SKFESZpktSBTyWqQxAS1QF9mgSujQfCktCsR5cUOX+1uPqvtpu33v5a+/Jg/T8+dLtlbByI8ssAKm50jvU+aXlvfPynvatnFdsbLe23brXd6onsZ37Av61u8YflM9OHhxeVZWtIP6Rsf2TOy2dKobm5sMI5d+hsWGlQlMBXyH/4cu6wpd67aR46ONiMNIQU5sHdlyrVpFvtXcl7hx6BHN0biYabOPvYoCNRR7hHA6HozO1maCDgCoN1GDzfX/fWQvWApD5e/4rNYjT1A5RrtgQlVZABsGqTtDGdprrwglDwVEAmjUwns6VqSAzDxAaoooMc1rGgSJDL1UiapbLiQjIJ+DckQixgWOCkKMkgEoLQsKhENLD+w6s9777buTy9/KvPjb85eq998d3Vqamx1fWNPvTW6pMn7y56bzS1/37yJtfC9S42TXO3uHvXB/QlfcOAz6/+ya/XMju+2z/JWJUKP+9374yG5/K8dWfTHH8qDy/tApg83Nk92B1IJcOKuZ3yLqhrhg/Cm3nVZIOqHCKGQmZYvTupOEj6bk82WaJR3AWywvjMwJYRTQZODbjUTMJkGsRnXSfj0m4b3vFOjclYETCY+iVvWSbiZG2NoRFJB2U1lZrmykpkQSAREduFVeISRAuTYkJUUYmIxR4YQnRkDtOZZCaYRUjMA0lsoFRAQlgAwZpNQJLBqKjzcmT8d6090ZM9Pa2Xr17Za3uz7So1qhj98trqw9ZPqT65bv/x+uPP8cdUD26P3mhZvdVyfWmxvZzhr1zjW2Z+E0bZjPzRbVcmz52N8fce+Vem/Su74Lj6VzZX3FabU8FtPvlb7nnT5s7TmLzBuuJTmHdf7soPdw8bFEsH5rBy5tFTRTLm36k3s6WcXT+mql+Y8Tbz6rje6Kre+t5fVFu/2BoZRc5vmWafB1DNeVsc4H/WGE+K0IVIFsKqUMKWlErTwKqQyGJRj1hbzGalLI0FNazHUIQ8Ug98nIBpqn8WTaKS/vkOaYSFCFyXpBGGgImFfg0YE5aBMfAe5PWe5Q31239YX1u/0XblUsuz8SsXf/bxtTvh9fdAPNg3VX/x+to/nTeur0WmzuROvhhIePmBTNO43X+t0xcvmzvrbzX5/WXVtdhFq5qbMIOk0O/fmcso1Rw8l8+brXlbOF9OOZVPww0Kyj25+QQvHzgUvNJvtka88l1lSMFZn4YV6gYgR9SjkYF4zDhY96hblZi3jKgQfNprMWopA66VRFELZYMr4Oy8pgqtbazSaIITsgoUStqYYDZIJ9msCIYYkwjkXJVdOREGUFPbiGEeXbGYgikPIsZpBk6SpAchZOiESQZhOoiskMC5eY2OFHsqRfdawLX4jPHO8tVfRr3TG6t3156tvtn58M3L01c6186p76yubT9sWr/+M145MPWZzMbg4tfVmdDSmiumWu/hZspOy22lN7+vGvPPDJgV5t5HFBNu8CuULkwsb3DPZcpl+YBzbmfnZZNfMWd9xJVfzql35fv5zZklh9NtBVbXwMyBuWS0rqx0gzJWqBCxx2JVE09rUL3rfJ+325JUSE/X2+PzDlsiPULEbR3RKCGOV9RYGufnWdtsXJZu1CURmaEK7pDKDB0oDNAT+Nyg8t2oYSYgWBiGqyAI7A+kZSESoSCiQiOjGQJj++cxugCcG9RDErJ5nBBdsH9yfPnSJy89+/PdjZt3qjcuu2737C2vuTqf/WNvKvD4Daq1b/v61CLf/p0LA1/1jW9/rryYb73gG9Uvt/jk95ShwaFMQ8bavv8C1gf0LluJ+uBAwj2WIxQgGjucWznMO7nNp2afFTvcyeysZEoqt9wdblfuWvVbM7sNcV0g16BWmhV675xtpKS0KyIOyro1amwe1Q8GnmPQ82Ph/rGoHYaMuM2AQyOEZsRkIuKmhSpoS5yg0caqYxKDuIDWNBcqRBAt9aQgQQNiw35dDIBoUAtXiJAqEQK2oYKkiBpZUpujESlhw8DUyIikLkdCNMMitAmCRK9zd69u//nfzr3Hl1v3tsevj3f+cWn5QW/nm7fvPHhj/cEl75W7y18bfTb94Kdt3PL0mmNx5s7AcpPceW/mxVDLxbJV8bTB555Wz91q8Wdy0H454yhzZfmcMmxuyGRg5mBXvhMaMiuj1szmrtnhV4TCiUiMi5TLOpjOJNzuwFNVOBaj4vrJSHxFoXI7GqgDuyrRhAZw/C1jIDA4iJwP9A3G/yKuHajVJGUL/UEQcGXRv0jOzxpU2vRz0VGjQaaT6ETzFR7IloQ1GrRAYgUIwSCkSBq0yDGepnIkIFOIB0vWQISGhlEIpjXwMDC0FmJEEoNFkhSEiP6rXx2fGP/+bfAQ/8bomd5bz9Yefqfnau+DN28PTn3m2bNP97aM9d0ffDiwbed7sZZ/yvnViwp6v7w005SP9JXLiCaWqc8QEMclb9PKufJhPlOWP/UXzRk+n3crV9x+96STGGqw+ZU0HVEeOORy68tNzubfeTrp8DsjftjcrQ6oGsKcGZ+sVw2q7ErgbBntCFbT5NBLJQlcFxqpxVXZwHwggNeckj5/bpB2jHRoTFkNHgwYaoOns1DWhHkEE6rVViE41ojiHk8WKkCNJIuJPSmsqNPCmkqYxFgYIbvYZCUMM3wR8chqAcvsl9Ew5KlZ0EGo6KdX168NbHx8bPXcx8Z733vEnLn65p//9eby3uMpkKOv9fbe8Y09+137j75vbQFI0np7sR77QUg+mhhS7KsuNHEldea6XL1UVv6kvG99cn3zUOWXN5hLL4AOk/MMHfNlOD/BK21O+Up+R27LlzOHO+7NHa/Tu6KvqnTvOjhnJBkhlY9uR4oKpaPe7gjYEl0NdtMWFz95osFoIyynRlF7NYRaZqukdfM4UmUZsSzAxDwq26JQbVZS7TkuydpEtbU6CVKRbhaBEypLQqLmiZzQVUmmCigBSyACZkgRjOjYCKojZNIkqoH6CbIABiflgQDJ0BAkJBPd+P4P748/vLz+8zs9VzrHP7jR1tb6bGP94rNLHyqt/bT95tr22p22+ustv2Qutiz3Td92UE29lNPHt8F0IjrIXvT2Wq/dCssn3fJDzsxk5uZu+fp9pcOy3Nkw+fKAp/I7kwqrNWP21QOyuVsecu/ucvgh609KOEDPM7i1wZ+nnM6w0bc7qYyFE4541LKkhlQub3wr6tVSRkRPki4TsCoslhHXWzVaSBqfb4xTyIgmOF/TMSIYRHghKNZls3SWJERkIUtSiLZAIdnKCk9BYqNJBCp2MSKAEIBb0FChCAN9RvMsWSSSJZ0MBr9jUBLVHWNFt97tvLp6Y3B9+dLZ1u3tV67eb+l8fL9pbfW9zs/dml7t/dZJ1SJtP7NWwh3tx/DQrZbeem50tDTzJL90T6FcWruwX45wGVssshVTxEWxdrPZnImFOF61uZn381bFS38yopLLM5N2ioHqldP5zVImdljK+/POkjUkt5tD5n2VasAdbXcoueOJmLp15mOBsUFAuQnc04hetOHqd+I4btFYXAuN9sbGGKKVzc5WJZgtw7AlPYKls9IsIhOq02JDrTQrFD6QnjUgRwIplgSFIyZHHh0hOUaQwBpAr7EcTcIspmnWEWySgTDUZpOgSQLKwTIJgdCi5dfGXr8NuUClffTG3qX1P69Pr69eHBtvs0+t3g2du9DSufdJeHv77cG93sEL9fV6r9o32anmPx168sQHsXxJ992yOkzZXZQ6vIg7nZyznN958sjN2fl6bnPODvudPjVNyeWR8qHbykdCbmofeDhPDg4aQmE+5OThUGJuBe+PcElUpQ7rh9wOmyzebYKP++L1aBRfCCwExgL9z2swi1Ejs81bbBW1wWppulrSWCPR1swHh6XkhLYg1dQYRFhq+ASTKpBdaQYmTCmSgZKwGKFBFoIA14b9KFboAPyBwEUYmbQlY4SEpDFSpFkAYpUkGR0pGvz+uzd/eGmvd6m35/Lizz4sHW2/dOa1h9+unnrmOq9/t/cfwMS7sr3t6DjldZ79ZaJdwdR6GCa8J16kWBXPW+XXW9SZezF+KQSuRu8QX5fgeV7esOQO2Wj14aF1UwX49sqEOaNWRHG/kwmDpjufl0cikYY8E3JS3V7FZCxB+THfQTzJoIpEJEHhRkg0GDaaBmFXHJQtjIQG19QThphKC21ZhqGR+Y6Kt54bJLZUhef0cUKXFldpkdRRNtuVLBS0OrAgZJHx5DBPIUXY6CKspY+KuULRxmBsTvZ/7MQwCkZYVqaBjmMQLIKKgJdI2IJo/O7Ds+19F3rv99y5c+c98Bzm538ef7Y9tfzz8dFLjp5EX59pbwMzKtouti/tGW+dlfvYS5/5/AepmcVc5CduhXMpQJW5gYy/FNU74gGT3//XPNOvitjkzgzgVENq/u9u/eac1ZnH4ZcvS9wQrmii5nYjsHzFzMzxiSf1qkkuYo87FRFVpV6uwsfCIb1ab8eVofmoDd2K0l4EnohH+xGyuS4+6zAZjpHStBZ4lrUVkLjmuTYrHAmGWVKcSuuqDMeBIIPp6JFWQqYRssajhYqMloGLBTRG0SSkzfEsTDOpRhmLAzLBpvkknJMgJGujigiLiNY63/7U2q/2O7enep6Nj9VNPbtgHNt40DY99cbPv3am50djZ1anPvmFvSlLqG2f3njDOPq5R93MPb96aT805OT0L3inyu9uR6OJEGrzOuXlUH1D+KKXgekZaz2E0qnmAY60y2O5BEgM5ZtmWFZ+4aSootrnZA/1CqW+uO/E9eEGpcobshF+xfOEkWe644lmkrWoSKrDQjSn8QBR1RhYwJ8/D0AwXgtrUY2Y0GpHksHZ+UYdSiA6g8am6xCyR406QjSMADlSKKZTMQ9UoLsgiPZUSmiaicnIYo5NZXGGTRXZFMKSyEKSoaEcwxgwTKYrFkQ9Dzt7lq/fP3XlzRbQPbrxucHmLz1cBq+lNr5cfarv4cara9+6fumZeuIXp+vgmcHY2yVXKfJin+/ky3oHHHPyAyUfrQ8Nmg/+ulKOchz1glMMqfwZtTXO+p4O8S9XBnKbt9iQeoUq+dU2npG/8HNy6wGgHd15zr1fAgmCL+TUkt1LIWu3kguFTQnFc33XKxeUuDEwuBUwVp830o4adFZ8cn5WV1kXWEBrQZcmmB6RpGoMwSPtbDqYRioN4nROAxkMabAntEgQPJ5YgsCwnGwYExdYFtDtVIqGNFI2VyqJZTBQ6B5NbpiukWA5lqaTNlmRzYmeLX768ycfT73zsdtbY9Xn7n+m+8rdblf91dbum21fNm3vfXz/tssyxrhU19fO7sfUoVJNZfRbuZJxn3NM0NWxa3QHXmImFGV+vjrP2f1D/gyHK/LyR+CYmnl61GxnMmbnfjTgrEzY663cpjpv3VRYKJOK0Dn1viSTJJw+heIdcIijMVYRYjx0DMZd01FHs4Y8nhixv1VvqgnChrr55xqcYsV4I9q8MJ81BW0SwwdQ1iSuSqdsJ9JpYfgT6CyNYKmsAOq8uYlUji8IWqFYoFJpEgyFoQOC4YIwzEgwMkczXTBSyegIOAdDSZogcohAQJjo7qfavn/Xfmn1xx9845sDPZ+sv/Vg+WOtNz5+6c7q6u0N15c6+Y3vXP670zW19jnVZM4xWp8pr7UsO1u83l4+v8TA+77rh5sKls/4XD55uZzRNO/bF7aM/SOhiROUg8u4826F3uxU52fmGiL2uR2vLJrDeSaiaGhw7iseTc5VO+M8PzGo8XU3eIdzcasTt6rtxijsIAJbsVa8RosatwKWIDGCZokRU5UBJtNdVc0G8NoaDWYJgyQrk1hmBU9KfJQdrhAgpAKk6JUpBtyTj1ayMaSIpXJsKYWlhFQXguWKgFPQiExWopFcEU7SNLi3xQLEQsWiVnQdHxvvvHzz/lcDj2/q115du/Bp1Z1e11j762f2Pt6T3H7Fste79pkLv5iqV9mv+6ZIz6PJ9bp+avl0YZZMKt1D13pDfMaZYbrfsFRzpX1OLo9J/FYuI2dkCXdLMWIBfyCh5Ci3+6UKPj9SjeXz+6W5Jrm/KH+04kM5TmGGfApvLiVzJOYZdwQ3yuw2SyPGB6EIGvWc2toKuAhxGqcMUjbeoZm1kJWakDCcrk1ns8GOrMggqWoUBOG0VixIhGFSatCmBLRQFAo0XpU6SnV1aVlwPgxkrlTsKsApGUnDwPOEKdhA0LkcBucqRXSOKIowSCvqvn+u89zes4dvnLt/7nFru9f++mJby2emOz9Ut2GvnOo0xtsD/3CNVdemTnyY5uLsj3K6iZrplgBf5n4ZtlBcVDZvwWMm/XQsoffmI6hGpObtPkY+t/OSNzsZOeeB/SHVXAYdCWKqFYWe92cO5c4E78FUs9IIluNX2H0enygBwbaga1LBzbAFqjY6HMZBpAIVhfoClg7TiMNjqDI46mbF8BEvmjfZddj8LMUaGmc9jUL//FHVsVQ2C0r/w0GNcFz4/14IYDsKhVTuOAvZqmRJks5hpEdHMJRHQ4IbgiVL5AcQGcOSOXBXiyKBLMi0KREw8l577VLrJ//v9L/12mfJb3/+ex9740Hn2qcuxKInxy6+OP2VujOONVihWG1nuFvm9qaNk/WvkiSfv/XlIPnieM2+vHer/mm4lHdPAoHNyMaMUHcsAc9HGCjjtJl3djkmpvCtTNhe+Dys0X0ABxMgLIXk5QVXA52RN8ALIeqd03Leh3zbpxOpns4UmG7Qx8cTdXFHAA5m689D73vlHTRZEw9q8GQ1fhQ0GLKaYFqPLBj6a7IGxJNVYUcVZLZg0EiPumbFaaC4JMd0KU/ufUwuJWSFdEqbK1TqEDJVRGAG8ggpssB4jlMku08XyVyKLlaSNrKLEvV8uWf13mrn/b1n27/4z96HHDfHp7a33/J0X3oX2l7sfP3JWF9PsfWMo73Fksu1Ena01sb12veHLkVclobMpG/tFSyColDM4eOoGLPk4wOEqjuqNvv0c3OKqHM+XuHMULp5U3h3V0H5mQgjcTr94YjVznEl2vaoocCmgTiqz+slqnCUo4yJkXondTsmS8DS5vBIdP68pn+eqOzoFrI1/XV4VbUo+5wS0kLFgiZLdIEcUJbuJ2HQuPrwMW2KF4SsdhiUNbMpUgBLQGoLXVpAvWMiwnMkykoiWKpIFzmGoVEawAQN+BWKMFiaZnMpOI6ILj27+urlk62XH77+xY13N+60br32Ve9a39iNq6fjj2sC1ZG1DdXgP/YWqRhZ8m5cU0+PdWs+nlFQNBvWx6ORxPlj+zE654ktm9A6glIf2nSqeVat4Hxjdn3M7+OinjpFi3OXj7MmuuQsJZyTK7zPykVRftKcgFk4l/OpcGDqedLJaCSQwPsXpDCMOBx0itfFIdaxYKlprja9IzGc6g+KshWzaYOFRCsmkGBQrCloBdiTTmc9WUOV0GUwZWUGTFJxlE1pIbGkIKSELhJMEAoVj/4/CEJXMa2hWVqmwzzaHBDwjFBgijlYXJVMgrOLpESdGw979q7cfX179EOYZuFU7+O273/uC6+u91mM3VOv1cZeaUbPqVqRzn3KNZEwQXbwdDL3i4mSirbEY/2mkt+vKu8rMqWIb0Ct9g9ckAMcsMkpOxO3TcOg3aLIlHdA1hvJ8Dn1zpw1aIuAqm+4VBFw5urSerXcxtoVNBUtFqsdJ1GZQF+bN0KW7vgELqmP5I4fN1WmURRf6J9Nygw2aVRs6cc0WRo2SbKNBoNgkNoaheywKG3INgo16aP/S69ssUooQHQqeyTWsrAnmxILWU6EHKcxuqsgCGwOAUsDgJTJHUvKisVirijANCBcBJMStV69NPX4ys/OfFbU+qFX7jy4/I9zW33rP4y1Pv5FX4/xy53ry3tnBl0qEyjSnyz5cwZi3em01XRQGb7e7Bwo7u/7nXZcPjkAyUqgpogzcmWCikaTHBMJ+UuUmtKpy6xSYdJzdCiiiDQ0lMB4RbQMZS0R8CBEJUI8oXVybFitsuhRRziWVDucVQYjKsJH7HZVlxGHoaJMx2PpDsLSIUHxqqwAXkZlCakgzWkNNmFYpDGkxaJ0Y1DIpgsp4egoJRSOBMyTBoQ8mxKOl06kcoB2FQsATOGubFeqxLLFriKAkWKKLZ7AGA9WBC5XjvaIxnrP9Ey9+hH80v27e6vjW6de+eLJP71y6YxrxIF/e/TOVJ2uCj+T8xjP1l+fDrzhGxwzFTHGn8Ed1vEP4mP7RakJXrDI4ihEsd3nqVjcUh0LK+Rc1Gkz+hqcug6Hr7IjxBC20mQNauVdCEWxbqXTH8nl3Yxuf9PpwxPmfqkuxmFiRD1B2KJ6GxuPw4itwmQvcShhSfu4Y3FNV1Ww+qgCR8XxtPR5trHxtNayoD0KZsUSDxj/bGMhe/Q+KDdcSImEo2xBLIA7WjAUyCJ7gmYj2tSJFNlF6jwkSVJ0oZgqnAA0C4EKAgGTBbJgK+YAdBRFP76/Nr4x9doXBseMfVPfEJ/tXWv9QvdDx/i5H9q++OpI3SvR0dePf/3FdHh9vqjrN8ikdd8p2mYyBoSyvJ9CE/79ZH3Mp4qZBxyDZxge7++3mZ0KFRczRQMyiyrjbjHL/SaC8yVsPi5WE5MpVNY5LjIBpgYzWBgfnIjlYqhNbv1Agmbxuhhtw9ISk4iZWKidD2L7mGmhH4GMVQbIMIvXuESzs0IQmJtocF4SzGYrBIEQKrTvE2WzVKoCCDPyKBvEYA95BJjGUeoIgEWBzqawLCIItDZ9gukqYlqmRMMCQhdYOgb0afZYEuArwpBgU0Tn3ni28cntG99//ylD35XtjXNf/uKrdVPn6vb6vqd75ytkf/U3Y+3h8fZSSiy2x65RXnVvDLL0T6jOcqpLoUg8ANDYxwaeE2gxsUgkOae5BEw8mWlCr7KZTVTE5+s3WtO20ATqtTKQ39lgne1HHVCosRqPmCMyhIpOoGjJa8tVRkMw0k/w4qozCVMjzaLJ2DuDDkktkTXIDGk4mK4zGQBryGY1aakHCmYLNWmpttFGSWTCB8Rp2JMKHh0VwHoIWYAZRbFYKFQAW6eQBWuhZUmYZYrA10myqdQHWECtUlIE3BKPUCx2sSXgccAUUwBYsfjGn8719L02ct71+smT7Jf6vtT3+FTzyebtL66tdn52/9UvGUGdVMxYchMTrWcxT0t+X3663+UroS5I6ghQAw1ODHDMw7wvSSqVrMZhO3/mOSKLJ2yR+EjN+ShGUB6n0yKhgCwOIaaRNMMzmn5JKgTzziLFZyii2+mcnY9EbDym6NDzx6Lx+npXEshUUlPhad4qCh+TCfaYJpjVVuIVuAGYvOm0TGCy6ZHGjiOg0AvDWqFSkBydSBnIrkaPOHVc60EEgKTC//HhKEgLQgorFLM01DVcIElGLMnRLCKUZBg9fHxCJvMkyViukGMh6H+NOvhBLjSWCgAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"dB\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value;\\nif (!prevValue) {\\n value = Math.random() * 120;\\n} else {\\n value = prevValue + Math.random() * 40 - 20;\\n}\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_noise_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"dB\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json index 1b0c1126df..f152728c8d 100644 --- a/application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_pm10_chart_card", "name": "Simple PM10 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OT/pgDg4OAhISH/9N//3Z90dHT/vEBYWFiQkJD/6b//0oD/sSDy8vIvLy//+u//qxA8PDzHx8eCgoK6urr/x2CsrKz/zXBmZmb/78+rq6v/2JDV1dX/tzCenp7/wk//469KSkr/x1/29vb/2Y/dngZsAAAABnRSTlMAIL9AEN/GQiaNAAAEoElEQVR42uzPwQ2AIBAAsBMQc3+mYP8BjRv4BNJu0AAAAAAAAPivXZtr8akln83lXSOunH17I2uU0Q8wS2Q/QoosRmQ1Ii/7daxiMQhEYbg7AweGsVAwkRAkCHn/J9wkF26ysNYa1r9Suw9UtLcGpLcGpLcGpLcGpLf+BURwl1R13oBFNxypegBTAeCdqaB5dYjsjOk7c3RuZYLSTgEpcOEaa1zW2P6XWYdEksHfEABm0HiuaTghkxngmSGc0Lg6xPMs/YKsBrVQgDBTPrAPggsaV4cg8EieW0tZoOYMS5xeApHAkkk63BAzzYCa52S6vASykhGSNjwguFKDKeUJSfBMaFkd4kiDT/gTkmi4ITDbHNvfv5Uzkp2HsuBbibiaV/g9I0U5VSsAiQwZzTshlUpsv2HGE+W9DUhvDUhvDUhvDUhvDUhvDUhvDUhv9Q1JFhhUXg9R7rPTwPxyiKPDkexhezXkhz07Wk4UhsIAfHf4J4FAEkgQlbKUis6+//stJhS2U6FwwRRn/C80RDqTD3NIqAGLfCPN4qeGnNk7+RRZ+syQt5z6HNj5mSFZNDbjJ4Skh7T/Go5E49x6NkgaMcYKN3jmB+9Rh2eDRCw5RndJkMdfptn+Iek5OaZfb7kJy6MsC4gm5tYqCDdj23DaLH8yxsYfKyMWuM44fxsWwXFurYfw0gJaeUutAXtaZLloQ98jBazgU6ve9UCH/HPtziemkFsT10O4BrQFBHVRgLVAY352cDQPe215g5haLFI3Tg84T174DxYFRGmSs+wtWAy5QUsnaIk4cDEUAupnSI2QvsdITgQ9u1hEvgbyfGbjxeJrxuIkylmyFAKcqItFSXcC79pi4pKaStIQDe4bXFbUpZLGn6QEanqUd3bsa6C7zmkxt88NijguAqL7addgcbEPkBKNv9ggl9A3VP9mAR0CTiMdFlACgOahBVA6l9BaTcyYYLjgecaSpTeI/LgC0gLt8FWEAP8GcfUjNHrIDaGDWNenYYVF12W4IWpg5vdTQRIVB1qYIL8uhdTqBCiah3BAmA7QQzSMg2jfdyHitnuVaKS0mCiRrR91NYCGz0Jcu+ra0kOkryzv7z+6QBCVAGz9uET+bA1pQ6Wh+TxEwdIIuaHtIeP5J/fXvG3N1CPHphAf7or9MgM5QY8QA00TkLlHju0hbpzuZfKuVcKOkBCntZAgjzaFcCAkXx5OYNy8aQYIf1gjAnItpGDBphCyrs4rty4aoHQ21UPcsdFA92rdOC93CIemlZCEJbQt5C9gRQNX7FQCQljX9hB/DPgTtWvLrl+thBSdY2MIhRpd+h2r6tsDRAP2MpQKbHmHNODrIJFzbF7slZRm3PVJPhqB7tgYzj93VaYFKj6MmLsnGfe5f9vesf4J0UNoCK/J1YimKqxoebxjR5AGWikxvcWfrY89QbiG336shnzQb0N4GNJ/kXUdGtpBfv+/KC/IC7LvvCB7ywuyt7wge8sLsrf8a+cObgCEYSAIGltE8p8q6L9AWkDiQRLNdHAF3BoyG0Nm05EbpIPGuDKq/791fnb3EVHn+lmqrJ1CYQAAAAAAAK88ZP333TfpRkYAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_pm10_chart_card.png", "description": "Displays historical fine and coarse particulate matter (PM10) values as a simplified chart. Optionally may display the corresponding latest PM10 value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json index 59e71a6fa3..43d3f65e3c 100644 --- a/application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_pm10_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_pm10_chart_card_with_background", "name": "Simple PM10 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_pm10_chart_card_with_background.png", "description": "Displays historical fine and coarse particulate matter (PM10) values as a simplified chart with background. Optionally may display the corresponding latest PM10 value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM10\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#7CC322\"},{\"from\":20,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_pm10_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM10\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card.json b/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card.json index e4c1232dd4..afa4b36934 100644 --- a/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_pm2_5_chart_card", "name": "Simple PM2.5 chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OSAwyzg4OAhISF0dHTv9+U8PDzP6a+QkJDx8fFYWFjf8Mr3+/Kg0mEvLy+/4ZWQy0aIxzmCgoLHx8e6urqv2XtKSkrV1dWenp7H5aOsrKzn9Nirq6u43YhmZmaYzlOo1m7X7L2n1m719fWQykb4eF0NAAAABnRSTlMAIL9AEN/GQiaNAAAEq0lEQVR42uzPwQ2AIBAAsBMQcz/mYP8BjRv4BNJu0AAAAAAAAPivXZtr8akln83lXSOunH17I2uU0Q8wS2Q/QoosRmQ1Ii+7daxiMQhEYbg7A2cQncIiShQJef9X3GsWcndhmxQbDNcPLHSqHyxmNDNkNDNkNDNkNDNkNB8RInjLqroUoGnBi2qALKaCg+9TXHJfiKx0+bx5er8zQ2kAEilwa1tjQBdt4BBHMoZ3CAAzqOtvGimZBf10TLjsrpDALv8K2Q1qsQJxoeCl8SgVqvqAS24LQeSL/Pxaygo1b2guHRNxHl1ZlxoN19wSIpF1I+nxDjHTDVALTKaN0jsUp8qAK+4J2UkHyQUnTxzUYErpIWFd8a1koA0Z4klDyPgzJNPQQ9aYUxLUhMQq5nDJPSHYfICy4lQdDsuOsG7ITsR1Fc4D3tEEl9wU0lWX8RwfsaI8ygwZzQwZzQwZzQwZzQwZzQwZzQz5d6F53+TxIWHhQeXZIeK4FEAWOnl0iDLhUKI9OeSLPXPbbRwEAujbZITBFzABX+vNxWnU//+/nZgs9taOam+1riPlPGAzUIlTGEBxzqL+97L8iUUCHft3nTyxiAjAE7H4aUVyVoAnZtGTidRF7lcWDEjEU4nsEsaYKIYrq0/3JxKJhY7yQrC6y4riryadbVgkP4sq2A1Tuu502DlIPidFpuNviCgO/5GAaRowO4LDf2qJs0onx4enynKRxiDacpbLxSgYI1O06cO/j1jkPrfWPrCDxyS6/keRPWmQiplhwrGdjNpTiekX50Ssg35CHkPN+i2+3YcTzVjya74IR7wqCBFP8CUNhjBGSQ6AHw/Pidyv/hkTQiYBY1WlWZJFmWDVbq7IO+KBHim2MIU6SPAY5Hd7eQDiIJXrtE+xgWn8OVGz5GZSsAC+IM+Sc+b0j4JF8TyRELvRXTD1dbfg3MMiGgp1NrLrg0jDpigPLd7nkafG7GEace7PCBFECatiWADNjyhmiSh7Gww3VI5FqLSpwbtIiWEnYruYoSaLFFJcAbSopgfCjv37WTOx+Bv9TlTzkr1BvJQWWzUW4YipIoG7iEHViRgXu1IHS6XEVkqLMEX3JfXbzBNRJd44wFgkdGHpRCSW4JYW+KZuRZ4Q0TYwSVJRsY5Ii6YJSUaORKiw0IuU+D4Qcanltl3+/q5gGpbBt1mU7Fc0Y5ESP3oRRT0eiDymcJvvGiIXbL3PZ5HTcEZCLJeLCAHECiL+v94MRPhkjqQoF4tEbs9aRYQMQgBlBkvr1NWRStuN83IT4dRhoUic3W+AK4i4IaepRWy8iKujszTdu6T4fqHIrvIea4gAL9Ftn17EUPXqUwXt6SbSIl8mUgt9BMcqIoSSkg93MaorxfmfW5W6Xce4HzHnikrX7h6THLWowbOGiMeLgIc3bmMzcAgPsIRoeG/9eZEWzX6fusW0iIxl0PPzItz4/Fko8gYjVhbhYQgDZNOECjbGVn4Oeom8RLbKS2RrvES2xktka7xEtsbvdu6gBkAgBoBgacMl/aED/wKxwPOumXGwBlbIboTspiMHrIPWejKqB8yD3r4i6j5/S5U1aRQGAAAAAADwywcmOfeID1PhnQAAAABJRU5ErkJggg==", + "image": "/api/images/system/simple_pm2_5_chart_card.png", "description": "Displays historical fine particulate matter (PM2.5) values as a simplified chart. Optionally may display the corresponding latest PM2.5 value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card_with_background.json index 20d719cfb4..c3a8beafc2 100644 --- a/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_pm2_5_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_pm2_5_chart_card_with_background", "name": "Simple PM2.5 chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_pm2_5_chart_card_with_background.png", "description": "Displays historical fine particulate matter (PM2.5) values as a simplified chart with background. Optionally may display the corresponding latest PM2.5 value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"PM2.5\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 120 - 60;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 500) {\\n\\tvalue = 500;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#7CC322\"},{\"from\":10,\"to\":35,\"color\":\"#F89E0D\"},{\"from\":35,\"to\":75,\"color\":\"#F77410\"},{\"from\":75,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_pm2_5_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"PM2.5\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bubble_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"µg/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json index 0fc417e8f3..746908df05 100644 --- a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_pressure_chart_card", "name": "Simple pressure chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////g4ODYGDghISHj4+M8PDziUmnHx8eQkJDsi5tYWFjx8fH1xc3dNVH64uZ0dHQvLy/nb4LwqbRKSkraJkSenp6CgoL98fKsrKzumqj409rV1dXzt8HpfY+rq6tmZmbkYHbgRF26urq5ubnfQ1398fNuhph/AAAABXRSTlMA7yC/r1EOHTEAAAS8SURBVHja7M9JAcAgDAAwytE3/tUOGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh87dqzqMAxDYXg6IAkJebDBJBgMDSTv/4Q3bUNDB8OdgkP9D0YaPzAkeEB6a0B6a0B6a0B66wcgy4o71YJUz7OHc1czmxj91oKwEBnOLMUopOi2FgQsBpyZAHDHVreKUAoD0LIC+7LyfgRwCVz4Nay4tDakquqqe/wFWTI8pYklOSnmFMVR05KFmRRKrJSEV8qScWVtSJSj7bxapRgZ3ANmCfAFMkPjSxj1A5kAiXiuF9aGFDuqHwiJZAM8Ap7cRWDkM6OKRMUH8hyzOxkurA2Z4pF+XS28IYuoagX4IQJgi6RfEFNVxjW1ISem4uwLMlGFPgJN+xQWR0hToBn2hsAzB+sHYpRqA4KZKG0wEjKwpOQMI/IDwrLP3UA0SRa0Cvw+A/b4WPCJL2e0IWAvPX/I/w9Bvdeb8A/8/d6sAemtAemtAemtAemtAemtAemtriHmRCny3SGcyWeLQo+bQ5weh0dvDfljx9yWk4WBAHy1syGRBIKcEX7w0Nr3f8CfZWOpI6XWC0Y6fhdkXaKz3yQbGN9EwUEgzapFDhIchfDWLBJvwREIf8UiG/E+dku2QhEv4LEUHPDe2qxNpIiFOHgUZQYY3lsrE9kJs/NjGQC8Xz09jHx6kX+74su2kdnQHdIvYy593FvPLRIY0WO8zwXZD3JGxGUAcLW3nltkK3wv2McZMJmEbzCx97BI1QAT1rod003aXNJ1CA6FCTiqcKC574gtaHgXb+7jHr7Bi6VHQymlKbzfiIQq11yYwh7rCtM5oh58LKdvREJkbAo/4rsjNja8PnKml6QwWyPiQ3+Ru3tFoi5HVzB0mOvaoq24YDwnLc3I8VT36byaEDkrpSxiDT9hzEWooOtsI3ilkZkfUCRFGdwhwsUoyyIfiGl/zbFmqRCcHplFdPNWJKLvnUlynkCULsiE3GbCwJ34Qnr3rUhdgULt6qJ6EjyOdVM6bWkgWycSJkqlowi0iA1ApY+UnmYzHqp7I80e7mYjs7ub3YnUmNOg8UyxqtKx8Qez1k22SKSjSIMYQsRpBRPwW8iDBMFvRTRaN1DqRL1jIyCasD3h6TIZddRYVKNI3Y8kWFHUzrTIwzwuckZUtc4p5OJRVeDio1s9EmnDsNVIqTZteAPOtcjyIhYVN0FIqTo5InZfj98UkW47FO+wVGsSmWuR5UU45QY+hNMJkWOSJN0gGykkpkW2MSwoknKzd6gmROCIyYRIBBcsnkL+qakFKZcUaaguV2nCxw8tw9F2rjfmRD54F06KbGIZLCbCZXeDTst9DKCp0g7zaEincyIRoqbMhMheZB4sKlIj2pN7FHT9eBrKiiyHFma3luJZdPeaQmQBLCsCqUXMuwoITXFNUZRgH+pqToRn5brD8807xiGAJUSuiaLqS3wTzlIN373x2MLIev/E9ofz6g+IHHy6/gER4iXyElkLL5Fn4yXybLxEno2XyLPxEvnfzn0TAAACQRB80tf4V4sCesKMgxNwexpDTpNRxhMy2l33io3Z34kgRe15u9JqAAAAAAAA/GYBBOmvbsxu/swAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_pressure_chart_card.png", "description": "Displays historical pressure values as a simplified chart. Optionally may display the corresponding latest pressure value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json index 7db7606182..282d4b4e8a 100644 --- a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_pressure_chart_card_with_background", "name": "Simple pressure chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_pressure_chart_card_with_background.png", "description": "Displays historical pressure values as a simplified chart with background. Optionally may display the corresponding latest pressure value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"hPa\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_pressure_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"hPa\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card.json b/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card.json index 772b3e7b51..28e4c650a7 100644 --- a/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_radon_level_chart_card", "name": "Simple radon level chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_radon_level_chart_card.png", "description": "Displays historical radon level values as a simplified chart. Optionally may display the corresponding latest radon level value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card_with_background.json index 666a71acd1..2830d97a38 100644 --- a/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_radon_level_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_radon_level_chart_card_with_background", "name": "Simple radon level chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_radon_level_chart_card_with_background.png", "description": "Displays historical radon level values as a simplified chart with background. Optionally may display the corresponding latest radon level value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Radon level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"Bq/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Radon level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 75 - 37.5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 300) {\\n\\tvalue = 300;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":100,\"color\":\"#7CC322\"},{\"from\":100,\"to\":200,\"color\":\"#F89E0D\"},{\"from\":200,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_radon_level_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Radon level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"Bq/m³\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json index 57f8b346af..c6ee4cb266 100644 --- a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_rainfall_chart_card", "name": "Simple rainfall chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHj4+M9PT3x8fGsrKxYWFiQkJDI0vHHx8d1j9zj6PitvOp0dHQvLy9aeNWRpeM8PDyCgoKenp7V1dXy9Ps+Ys5mZmYwV8u6urpKSkrW3fXk6fifsedLS0tohNm6x+0xV8qDm99MbtG6RkKAAAAABXRSTlMA7yC/r1EOHTEAAAQeSURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh+79bJaIQxFYXi0YN8S9iABY0B0cN7/FVsF5VApdNZtm3+U6Ogj5DIg0RqQaA1ItAYkWv8AwoqfxYjQdxDfiAq/zXPOds156ddQyIAjySgJv9H3EK6mXF64yrUsk5wSTZepVUZYCC/V8FlyXBABtDbAbQXUFMZuDE/VdP/IASEsbcWeSeE3CGpGq2VKYHKQbJNoniip0fI5jAdZt1NkSzoh1eZUGdlhpAckw6mjCGAGJosHsQ3onVcYmE4IpY060BepxAdk/+sHhNtLIkJ0akjzvHhF3k6IHFtEpandIOnFIVcEbKh9p2B+3yN5F2S0G0QKLCQE8AnUk+HLqZXQiBbyL5CZKNEcEqLuE1xxTxn39Pdv9xNyay54VP/g0fiwBiRaAxKtAYnWgERrQKI1INGKDNHu/Q9ANFcikqwPh7BQW30tJPxoiMrUsec1PRrywZ657bgKQmH4aoUFiudjRZ3a03Te/wE3MILd7phx146pid9F8wterC8slNgDUpuCLYswbmPKNyxSoWuzh852RVRnGSh6mxOhpvwLhwHONyZySBFZoIXw8DiOwaZEPOTuocBKxgQpDDjovbWI45al64CBskYNFph4fFQ5T39FJPI7eAEVwzRFVo32N03k4AH+4gODp0X8e+sDhMQAhnMrr+oclkJZEQAEhf0vlSXTa1cw5ykRkWey2keRGnpyQtqsJuQMCyn7BUhL0LgYwCQBMqqEPM5Y484XIRofDCEJ+3QiKp6+yKeAZVy46X/Hvsqn+SiQJzyVP41MdK5IG/q+FrHVR6axvmNsRkQkIIpvkUx+7H+PRCBuOndqYgL7gA2w1Av0wzagLmfHUt/jFqk3t7UAHkVCcjXRz3MAPduZqTuRnLtaNWCkHeNW5kxkhEy3oIuVfeqysmTowWyoOtvP3uyDyKm1cVCrTSBteFUObZjJ6rUIyUKp9akmJlswKQYnjikP4H9wi+YJkdhUbekIia1IpG+uhb4QSiQHEK1eM9/eOIY1sATHeUKkHhdzqklml0YnXbzeOWb7XPWE0L01fbpdznwRXdnYo45+Ehkmpk63q4tkJIRHxJfyWCjCj7C2iD9ekCtpI1goQrFcWcRWZLmTtoOFIs6loGuLnOxzpwtvAJCr6yUi2gM/YG0R+8YAeSxRw4bsaRHKUhdgZRFR2+dnTrKXiFT9F6sVRCYQ8Arc9N/9scWP2B4ee49ti3iYOH3ctkjj2bhtEcsusotshV3k3dhF3o1d5N3YRd6NXeRPO3dCAAAIAjAQP/pHtgbiXYMVWDVCqskYp4WM1WO5s/tMkGLufN1YMwAAAAAAAH5zAZS0p15sQX4JAAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_rainfall_chart_card.png", "description": "Displays historical rainfall values as a simplified chart. Optionally may display the corresponding latest rainfall value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json index 35ea16355e..f6d987d735 100644 --- a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_rainfall_chart_card_with_background", "name": "Simple rainfall chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_rainfall_chart_card_with_background.png", "description": "Displays historical rainfall values as a simplified chart with background. Optionally may display the corresponding latest rainfall value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAACx1BMVEUSFxezvb0XHR0TGRkQFBQVGhqtt7eqtbW2wL8YHx8bIiIOEBGlr6+ps7OvuLiwurqkrq61vr4VHBy8xcWeqammsbEZISGjra2irKsdJSS6w8MiKSkhKysgJiYQFRagqqq3wcG7xMSyu7saHh8XGxu+x8insrIaIB8fJCQfKCiao6MdJye5wsKstrcnLy8SFRaep6gbJCSosbEiJyecp6clLS0iLS2vubkOEhOXoaGrtLOgq6uapaUoMjIlKyunsK+xu7ycpaYWGRklMTG9xscrNDQyOjq/yck2Q0MVFxgnNDQrMjGstbUQEhMtODgpMDAZHR0sNjaTnp2SnJyVn58eIiOxubk9UFAyPj6QmpovNjaXo6NKXFuira1EV1c7Q0MvOjoYGxyNl5g9TU0xQEA2RkYbISHByso6R0dYa2oMDhAfKio6SkojLzA3SUkwPDyJk5NCUlE8RkYqODiPmZlUaGgtPT21u7s6TUwuNDRHWlqGkZEyQ0IoLS1rfn5OY2NEVFQ+SUlMYGFcbW1NXl4lKSkoNzY3Pz+WoKBIWFeqsrJ6jIx0f39fcXA1QEA0PDyutrVSYmJBVVU6QUF0hoVkeHdBTEyMlZV+iIhne3pfc3NSZWVRXl5neHhidXVIUVFBTk4rOzodISGBi4txfHwzRUXCy8x3iolFT09YZ2dVZWWDjY11iIeJlZVugYFqe3u4wcK4vr5KXl9kbm53goNcampdZ2c/U1MxODiBj499j45zgoKToKCFj49rdHVNWlqKl5djcnJVX19/kpFcb29WYWJ7iIh6hoZmdHSwt7dvf39whINncHFRWlpMV1dseHi5wMCClJRYbW5gampaY2NGW11ARkZveXkuQD9FTExCSUk3PTy1vb1gbW1MVFSKmpl6hIOOnZ1+i4tPV1eFl5ZUamxIVFRPZWiGk5NbcnJVXFwJCwvGz86yekXLAABxY0lEQVR42iSVzWs7RRjHO5fNHJLdDJOwYS6ZGZgcwiyEUFiyCSSBgbnkVMNCqF7iYU9CwcIeCiLooUSFCEp/vl5+suJLdIMvUFslvtAaEYx48BJRi4ce+kf4rD7Z7D6zb8l8nuf7nYOj6fTrb19uNruLHWPliG07KdtRRmlVqKdmYxYz5jhrh9MbPVeNv+iIG3N494jqSq/s0L0nawJTQ6kgNjGJsYnNFBuVLVWIHDuZsiYnjhdkDZM9PIxbLTiRhSp7gPumTZNklfiBuuVEJdkxfRgnWmU2S3CSZRl8lU3go1RibbG/aEJmIGUKXqP0CA6oXVVUN1p1hLnJK96E8ShwsbitKL0Ld4hzrNN+nK6ls+yut511vN7BaLfbFd/iANu62A4uNp3d7Itxc+iXd93FWuzEtirE7vgYLuvDrXB3ElOPchmJWO+nglGX1umtocZ4TwlKMVAAElQZRROhWWZVMQec0CRHgoo8yx9I5mbCUtvwEmYzBCysLamHce2BZUkTZ6MMwKya51kJEjVeUWTgaB+SsrEdkygYYNj1HaQBAVWUaRfTol7c4U9gylR/QisYMUZILt0xpTkrHZW7O80Yx5JzMkmxXETb9bq7TtP1er1fQ6Rrlq73QGPLdul+fbDadJL09rBZXc/jxXILjOh6zdb9nyChgGxejpuIebhxcyLkgCkuEXVOegxjIYyQJ2XmtfTIukqosmeMUUmSJYli/GuqMuNPYZTBCdgsAOl4mbWG13KHWv5UVnCzNsOVCTLTrGqTVuaYduCPskpD2AR6ZCwCZW3tsZ8phb2kwGIooZqNR4gBDE79Et1zwmgd8xZyBLSCS2KEOS/j/YRXgYPGOHa6fiNNyR5AQBcUNKJ5B5Ji2N2u49Pz/cHJzXx4uplPe4fbbTUqGmYi472Kl50UBoJ4K+5QjTus1KT9VyKCMaEtBuXexYzgWuWRoEU4WDOEv37hXCmorJeMbSLEuFeH6WV0lBwfJ32RdR+6hpvGU17bZoeEj1CJPxhQUKYRNZXOCPQCehjRem5PVd0mCiviF7Tq9uHBampUTm1ulAAGQhvmjAQ1gjoChUwwzjjPA+x83cWChM68tuYjiTDGvTNPLvdLjKL1ToIS4jM/TbsfNeR6l8bpEk6s52vKDuYnZ3eb0+7J8aw5bC/3i30Ui3VZ7NLNF+l6+SitaeGRrkZ1RLzkqOJJTsqYUQQfgVjUeUQNiESpqKbZgHmPwUnGWkHNbV9ReMR2M1Rj7dMkzBKe4cTmyCKWBInS416WPcyOMyESlISCWXAaWk6oh5VtPiiFwHwEtaXE0lBbBYrE+fxlRAFFvprTKUGKcg41pxiXR/qJqEwb4aR2OtSIuMPODnOM94LLGSYSETmRbrosZDEsw/4iVQlMcLpdSxgNx5P1wdezj85uNpu/z9uduLloXp3GKd2DWTA1by7yaryMp2SOZTDRjEsuGOFsyOSMyblYPPqgwUSoS2VKKKUzz3n0qKUCkAJRTKiLvyzYR3baBAvsT5KM0SR54JmhWclTXmszryaZyg+RZgYsgxkIkShEJRivITpLgpFlnILalSLWKs1Anm0/N1Sh+arp+1ggbTQdVxDRGtSyd7CHA9wSdS4dfl4pSHAaydrYc5BDyH4PAimiE6ep/7hdLXLg0E53hXMcrFbNy7Ozuz+vzxfbjt89bzdSsdw10nXziWFn21hjchrX7nr7Sh/f/DwhHH6LIY0dcj9xIvSbqLLO1YdCs8I7lQIinhW5gMqNZgPlPGo1nULensGVrDCMRGU1K8ogIoG8rJpULFXEELeODPSJUgrbJ85xUoSiLTNKKBcKXmpGwqj2MVbUFMb550dtgYoyMAmzZrqCOh4DJCVWIdJZNAIfVY8wIQRLv+1VyN6duNVuy9tXm+s4XsTxcpnGcbxO9+k63qbrgsnBR/eru5vbzaA/vNy2Z39ujpqdfbzrpovuyfW8PT0jXOzw0e1+33XVbei4DkGdbxA/L2kUDo8qzKOuedkIQoTuHIZLzLmqPEbGWoIMt9ZYMxg5dsQTJQr3d2h+bagZfO581FKUu6C+xPnzGsiEVsHtiufThy5ktnQ40gXFmqLq6ws3t44KqKBixARvkcIxEcfjc6p7SNCBaCPNgEd04p+TpkN84egwxePGHkcSPV4CiOD2zXd933UbyzSN0rixeG+aQiy26f9xcHZ7uXriZDNuptFi8/efv/552PzvYuQ/8dP9ZtOOhjKaHHVRmuqF38UQDqpq3vQQh6pgTmlnXuJYMN3CWML0kEgMFZQokSuNpqGiLhXkqBf0xhgnWdtyY1mQ57Ygk1PwyQtVzSxhyjClEqWCsoXD+G9AYFTwGMx1Hirrc2wUFQY2VinWEMrIIV4Q4jLBOjnROfGcENV9WOwGWhOMMdlHaxcdIRyPXSIlei/VfTKJ48Ir0/X2o9PrZSpTGMGpbbw4+PtodXl3tWkPx+Px3ffvP/nn4KgLl9rd2p/3n90fd/wve0sgGe3a0eSwNmv6GGMXyaDLptCZLtYU670IaI4dyZV7M885dVRFsPCoRyPiYzeirg1BrWVmA+6jwejspl91qZcDNMQqiR1XkYLij2scFor/ABjBBknOgA4fZxqsoeIhDKT6rMQQjUTevwb65nSAudD6SCN24uX5YW2II4wCFIIwSo1btI84+nwzlPB/EcjhcuU7rux2YYJQ6u2jlO6e6KZAYVuIJT24vLu7vXp5/sTx2erypcv88/ujTW/8wWfTzuzPy1fu/p7J0kngnYzDRV/+2HGl5+Jw6OCYE1nG6PhlxsvaFcjgi19qAiHcewrqBlPISe6FKlQuUqrEwD290cijdhYoGyRZkxhR44nlIVUW1C+sUKrvWW7BY0IeXAeKGFeBgmwvKxm6A+KGuixkzMCLsYgOhaiwGmJaazoigVOiJZ3ndRTuEJE4LeHWmeju+0N0wlBdukXEXuo6bhy7HblYpPH24q/x8rRcQJBxeRgPD36/+enT23duvj6bXa2u7jeP76fvzZbDP/7ore7f+eml68HRE/fNWsep71GDzCWZkHOyR0juCUaYu8PWGNMyK2nuD4asMDisQe8cLiqODbUXEs+VqiBsHSbyp+pnxIaDlsiL0jshPGFZM6FWVDsVpQogmiCGHKzgBlBPB4eMi2I915hphuFBYQIkBBZC7zzBGguhcas8yRE+mYYVn3gEv/rOydx3ml3UCTzp9rkTjqQEBnLyw2VzOYlL8WS7+K8TttvlNu4tt9OrTRwdXL3zy0+XP11+e/n+5ebm28bvm/uvLnudX85Wq9bp079e95v1Twd1D1rMP38KOZ4EBNXnn/nZewr1Tv0G8c4ao7ngHtWF1YPctcgpY7iEXOQ/yhQKOW1hZU3YENezEE2Fy1jdWvMyNiXPJjyZHWul86w+qtjmWf7fKkSQEopxU+TG03TWYiPZYkJ0T9BjQc9CNvOCVtR08rzDsVsKCK+XWh8N5EcuGaHpnIeY1B2/7A1lDAwWLuxl7LonE+3G3aW7cLfb7WIRN+IhwJjG8R2sJfHBN9/efvrtB++889M7NwP2uPbRa1/dvPPc+zd/3tyv/Ffe/+p+VdtcV1Dc3cu+lMsuIci5K90/20IE1iiOWanJMNSMYclDGWjmUMpyQQ1FLfCBanLE847i5lA4ZhAw0reahcTasb2gtHDOZNzNtDVKdDI2aBE9shRhXwjPCGMEJcbgVoMY/dfMkGDsI8kIcsPGBAlc6s4lbiGOmnMkXedigpsVjD3nr7PTPVmCY9+vJkDCc0pXroQk7s4b42Xzm/Z2so1BIedD4LK8AK84nUXL7sFPj3789qubt965+vzFy+Pjo5c//uOVd1779aN/Pv34p6/unnt9c3x8d131JHL8yp64S3Bs/LXR35W8vdwj6eA6bvV4hUd4aDSnVDiYkoZlSHP8dZvqGqZqVqXMq0J1Vd7JER9ZQOCX2nR2eSrotS2EQbV1+oopJVxF1aRvSqptLAB1OLQVDnPWnuVaI8fJdfUu4kSQiuyXR7K9Ej1+XJZBSLCUlaaXSiSnlT2qSC+8wZH0Ysc9iWTkxpVhbexPOi//3XO38XK7jTvlRXe5jSAtxvHBb9++8scLb7/y3Orbtze3d9f375/98cY/P95dXV39dPXcC5/8ejT453rqR33fReiJcRl+reU9fvTIAw6eLHURYu3HZXByLlgJc201NXM0Cl1iSLNPFc17XPcxVhm9iK1bbrOvkUmsTWjglevaGAUyGF41DAtIWUBuODcgEcIxoUpIxjmsTZqKCLyGed5TQeVrHQQTn1SDHKO9hzXGmjhcoojIWQ0hp/PN41R60ULKqY8AhOOuJI7doROHvhNVP9+BStylO1wOtxdbd7ld+tst5NV/OS7X1+apOI7v+OKcI+Sck9DEhKjkgkYMiYRQDU0rSXHiXgRftKVaax+lKj7i0E4mihOdOrDLpnQy3dRNH9i8zDkdblOmTp/H2zYF7+Kbeb+Df4Rntn2RtqHN79fv5dOh5bV35ty1Z965Z/nkA++89un8zKfPPcllUvz1sfmZV5efeen0T602KhslMjCRUbftNChBicDsENgipYrkrAOAJV3C/nGuMXPxByx5bH2/APrmsGUVuDx8IFk8QquhdSF2Cj10Fd/E5ib/125eeCyJgjQh7k54x57w6gAXrAxixCAPitq7BYLZeM/QO6DN9Abop1LDN1yGbUwoYywCzMP8u1OwgQV3OwYQZKiWhNSmtBE3w5jCJo2hLR42+1pzAAU5D4yeIKgBjYX4MPEHg0F4eJiFh/lgYWjtsVfOnFl7Z2aQvDL2yOurjzy3/Mgz78z88svpDz+bX17+e/n07umK4GoV2BMhBJTRVJI4GxRpS4tdRR63M4lh3l/85n6CPX29PQysI9zV9f/R0ER6ZAFmclSw9JSbhNVCWOBiKPAtEK6KYQ7bLeu4Nj0b877UVhsetgp8I1b/925YplHSlb1hs+BxBxwTv+5grPsA000TVxgniC9NnNomExd1Gmfk0LZLMGSsWzL4QhhEanzIEyOumFREs2Wema6mVhO40A0PSw2uibgf5M2FUFsY+uG9raUzjxy8M2FpfCUfrR2sPfLYAzNfbH/16m3/fPTkc0/OzO+2M9gm1NPUOAPOCvRRTQyFGOFYTDGSbd+sMuRlK3apxqh467CFqOUA3cS8SHBkMY8fD/f7IsWFZJ8ngXorGC7wXXAdDHMH5Z5YH/63PGxzCO1jr/4iKcQ8WmRdD9x/BWtzmLoq6OiWGx1F/PM8B3iSj+2GjNLAwYgDDrvnCAh2IrtBRh1cF1lTE+yiAKFtc4qAdKDCgWZXN2BStxOyuDWvDQZJXxsYmpHHYbL/qTio5tn40NrSx1s7B8dKWPj04JVHdp6dfPrTrydOnff0/CevPfDck09+9vpMqyF3wtzIYlrZStoRDRDzqeS7ECk0AABjVmK69kMHqx4fGhvrAfMQb1enTYFpCxbuEMuDPPQKhmZZF7ouLxnPunC4YBYsfij5V/kOP+QGUw29UMLcT0wG1LIQ7x6OU2GEiUQowFEqYawg3+5FOBNsIAEVSTbEXqXncuZOKRInxhExiOoyOh5GlNqwCCkUE5olLQfCRBGVT5R7BqHWzotZnkExHpTcew4129DyoY+XPp+bO1jbeezUXXNn1l555OC9J5792reXTs4/+dw/Xz88dvXVZ2Z+avfDMDYEI8wSZftd4ADa6UTROmA2z05iVw+KuNZuA+yZTmpTLWMcMAuFSCiNm6bPp+HG4X2LOkhyC1nXK6izgTlsQu4ZoBcAVzqQdP6ssKcWsMUD2ISmXOGwYnKYsiSw6fEYAibmpxlpBCLgYwiAlAFfBtIR96EjmMVtVgFNw25mihLlWdPPSOWVfdlBGYLZrJyQ8aSYqWqJ5AvVjAOYqGlhHuRGHK9YgzjOwmxo682Dna2xH6b3Fqcvnbzv+rGHr587M3Wm9+bkR08/8MfXUzsnLz5759V2IJTDjdMdrayFBGqSXLHftYVWHTZt4CNnA+7btAoS5nn4+JqZZG6qkqcUghCkkq5baZa4HEPri2axUOy7lpu2MOJzcnTQsc6bgmeIDXb9I2rZ3qbtb/JKkEwECqWiBwWP4eJ6/cirfNHFklTGHPMk0aEI9cIWgKJt+imAG7bys+o0jLTrOgvvDahDsxVmCKwiRhU/UDKiOk6MjMoKMWCFZNwZodiPQyGJNY2HZ6bGQ1trc++fmfri/Ym8NTY1d+bnW5amrr/v+mfnvn7mmeeeefC2e8Trz5rbLYmlUqdWe1eEQqVKo4CmPkh371DZ7GoVKWnUQICrFfFHus1pmo+nK8AnZlcHlmEx3QMcnkHHR8N8PJsWKi4wPVsHkc5X4VuFtFi2rGAYWUVpBaQESam/MU4xNhNP18FCY9N3gd5ev5Ac2RxsSgu25JdTUVGImMWAqikRECpRldIOI45cXesIA6YIYqMvIIgysaKMM5Rx41SytRlDCeW+KMa9QBVqoZwdo0Uzj+PB0Mc7WzvT17/5+Q+T0/dNnzgzNzU9tzR9zfRtJ267+5nbHp4aWPGVr7aM4sTE6Z9+nzlNfT+BfupQYKDauyuovPteGrG0IvgNmGKEJM/1fGDqvF2BHa0QYFZLC7ruDRewzmfn8MD63BZYagLdDrGq4+hCY3fjKHBy1RexREzWWwd0YftX5DZ1j/vK9tB4lWDP47HTwB2oFF2mYKYg1iE0/gQojLAghT4VWSa6Th0JQq8oqbmIlA5lUBPhxIQhVgjZ/YQ4qLGoqwSJQhKqZS6MnKtC4DEx0A5jd+jPpffHpudOfX5qenRsanr6xHtb719xy/T7O+8/8srk3G3/vPXmn/vvtns/vbO8+/b87xUI6a8NZNtujSKvaqBeo5QCJkGEXBMx6e06iwSUburqwp7gxbTrmZrGq0K3LK/5hXIcGYimSkD8YZlniVXvc/vIpukhX46YZ0WeAUumTdZ+7wSqpJtJ18IYjCfYjpiAKNedj7gKGbWVDguJkqJIzukRCGVQLMYTCFVktUxRF9FO0EYyMshK6AfJfo2ITstMalprwc2MCVhSlbhaFcokzPLFIHeTPImzoStPTS9dfdOp6T8ff//Psamp+5Z2wtWXX1l7dmnu7tuefePBg68/fLf16/LTjz3wyUsfyi5tHmrQpjCitmiHlLE0lVc7KeC3+gSVrPlZMP4x0BgIXWXfEE0zZdwfGEqp1fBOc1MAvx1ZHr8HE2pNMD19E3uE6bqplWWTIWBiZGDeMVdteIq5iWxwzJIY2BjUoip0MWcs4QhkEAGf4x4FtKjYCBowiuR+FtUbUbkOIXUPZssQvdcWNCFsDeIKRbGR8PE7ipIhkmehopKe4Qpykof1QR7n3+9PxEPXXfvU7OrI0l2XjNx85ejU86PvT9+0dNMdbx18Pjd52YmT552cn8n2P3vun2emb94pDZqD2vewaLsOos2YUpv6kNUmZEk65i4FZFV9L0UNsws8arJogbOFCR1b9kw+vB/KLYGlIn8xrWppqQsic9PUQcqnxWo9Ai7irnIsmBK90U0YY8omxpJjm1LUrwC/yoqZlmYZA7MtaDMmB22xLkUI2tCvBTIVSU2YCEQlgBGaLUkZaiJFqSpCNUY0dMRiO09IrMQocNwacoNiRZEXq3Ee5nFVaLxXbWpDTz01PTZy8uPg8Zvqd42NbY3cNHny+dWr773mlfsWvng5WTpn+rO355/57tknS/u39+IBjfoDyN5cFJtCy92jcHE1igBvCRgpsO6AyJYAcFKJNjqYx76UBKYnYre0Domp4+rGFvY2owiSUg+Tvl7qeqlSBBFl8l6vwE/AOmBUcDDPnRRmEkcGyJQVjTodwPyyAtvArnZBs0HKTcwYpnXHT5Us/GBNIy3HL/uGliq0aBC0vW4QinyFEr4OLewoDikSGIYkTDpJXSWK2mh3yuPVnIRhEKp5mCRJOPTyDSMPXX3l3Oc3nZq86eabR0ZGP7/8grGTJ+478cQnq1MX3rN6+QtfX//ss8+eNoI3VdiM3ZoYQLCFIpG21nzf2I/4VccMpRLLGIwRrRxJwPvZxPxXRyYgGI6XurMSjjqm6698DzmBppi5sa7zntvTaam3oENfAKlQl829OuZnygtRNTW8lB/i5hGuUlINAFSZIwAAGp6dNEXGwARrlBAVO2lUV5EKie+0xLJAVEIUmcqOKsOW0y5931Da4awy4G+XnZgUF0VCHF481fJCSw2Fd4Xe7HaSLPSTJM+HTv348v7sje/fef9JvotbbhodC6uPjt7xyInRO544cf383uKvn55Yvvu1T8qyGlK7WY2pu024H32YxaKtgkAQKIE+Qh2sJBTOLmYDz/YlF1Uz2/HdGu8F1K/1K0iSuqzgeemmY9XKxGSKZKYCNrVAbEjA4HtKIlYX6XCKRUHY75v3hEjIAK4PYJPWQcpYkckACCEYHNlN5jgiYchQQ0QcYWKiSWsI2Z3ZYk9GMuGv7jlJu6sG5a5ASoqG4th5b3KCoFWjqNaUstCZrVWpEApi+H0jy/O9al3TtKEbTj209MPjl1x0/ujo2NjY6E0n958feeGFB0+sjd1x79x9D7/x13Mzb348XhaD2AhWyl2DCj2njzI/OhxQUXQjiaDdCHSg79cai02Y1TRbTH1mikDyfR4HXJiRDz04AcpmyeUz+XYEgekThvvrJZNKfDc+86DJ6anDfAdiLOQ0QUCmUeIa9lFMeT47GooQBQqLYKOWZxSKrC/AxZJIqEIiiPw4LAlCrToIe+NQrDmqYmRuve0XlTiUA1kTw1WbEaVXKRMlECvVoCrnqirnoiASITFEV9SqQ38+9e3IyJ97p845d+TxkZs/v3Fk9P7R+yevuXf0lssnr7/+mifeuG15u9v67a7nxzcO5mc22gKiUEVJkcJA+0bmAKfSTiRGLEpLiZpriI7Xvid+mZMQJl9smwTVAKbHYgck6kDdRBJLgSRh4NCWKHmQYslv9UOYcLqEiqHWE1VASAQOA1JQsqEUkbwpdWwJUQZAT6X54qKoIpi2JGLItBwxqsoooYgvpdmpE41kfqOCVgSiiYlayl1VjBNa1jr1ymlBcYqiIv5S/rUkVAXBFdWQ56rhiklR46v4jySz/2mjjuM4Z8z3i+Z7D9U779SZQ0wuenrkrMea6129NmTaYFNDW0fP7qApoBA3qNgRpCqyLdoxwE0HZYJjpphtID5Mps7RuanofNriw5yJ4jadZvpX+Jneb036dJ9++354fUYm5ka6D70rfdJwZvMzZ/qv+fmZNw50dW5ePXw6/kbrtqHegbbJnhVJnG/67us9w+f2H7xgiE5RJctSgSAxTwTIPJbtlz1WUQWUo6gI9hccv1VLU1Qsp8JdsxqXwDrsL9+p8wHDqlLkKiN1oTxdjOilq/4BcSHm3ANAsg5epaBySqE8H4Nqr9pSjFpcOGVTYSxhDigJxQQD5VEeGTxiAppTCOMwCAVrYoIqBVNPYWZ3jBk9GZTUAK2ZFdGUHYcXImdFv98/mhT8AmdwSZzL0IJtVOZTNE/UlYhDJFU1Sc1Ud/9cd/T0XEu66d7Q88Ef4vG7+joHJrp2lF4ebNs09MF8x7bvD664pz+dHG57eev3+567nCHcCSaCJTcmEE1jwNEdlodziutZIU8nHdWnCQCVqDoeOCMK1oUtn56qBUFJ+urqKAKcRYOv6a/D92AG+1B9mNaCt8SEOggYYQpYGU15VJijEEQ3pYqkabKR91EA7AK19dC6g4pVzyTQRg1pAfhUlhBWWyqRAE2P0ryYyCEGRAYlghVOFKYlJ8Obeckvgo06AiGWTAjv6UaEfC6SSEYWHdEvEYmTOCLJNRPtq0/3RSfSnYfU2ScmDo0cqN7f3DXwc+fAG71ts+MdrW2DLx85t3X/Z8+f27Ztz/6Dz01+ZCVM4l5EirfIXpxHlWVEj6a4jZLLmBRH624O/JCmeQ1RNPCMWsA1MBodMb57lhbZMEzIIgGLg6Fw9UmvNleUMS4wZV4Bag+XBockHK5VfNUUVaCghGu1lXxtQMslWa2YZ6mSf5Rj5NhulsnQKg2BUcwIBa0IBBEB7MMSD1XDnIecjSCMknxC8Pt3g6kYBm3RvPDesugIamJxWuF0mYwSXTd0mASIiSNKNdn0VHouFN98a8vCXFNfS7Tz/LfN6e6Bjhfe6Nh0oKt1YLCrtbXrXGvvwrZNg0f3fXrw1Y8++scyNAtrNI9EDy1/QuwgXvrScnOMk3ufJvDbyTEKGxq26lWvvl6jMsgLaJlaytbqwpoOMaTOR/lQrZqwXcpWCY1uIbHznCaAOlwFEhBNykx9WYGxwdtEBEaEdFEssqzqICYWq784L8RY4tdRnQBRj+Dy7BhNijlaxMW140FTDRZSSb7g8IlF+qxyPnqSIxC7DUuRCUmlMjYpkaPHI1dPB29ytiFKquQQP+ckaqYebYln+zrPvxeKx2EU6fjrLU+lX389+lRHuiu60Ne558DmTb2DOz/ouHv90JG3dj332vixz0/C21hMRMOakahUMFYKo0QAbd6IU0iz3C+gn/AIflIJL1OAW1isIDkAh9wd8wn/hUtKKMH6OAyEVqHgcZhazpwfw6s/MuF6OEjI9tgYYikpl6KRgeo1VgU8RTOGjpYNBrs+hJAUJChmkRxnMAXVCupJ2kFGwtIjRkJGSRJZMaS8AkIwb8n+SKRs2MViKSMcK0on1mTxoj4KtdUvlgWLk8BEHHsxIpGalx7YEH84PjGRDTVtack2z22Iv9DSEuqbeuIuEM/Z9zu3f3zDU72DXYMJ8cXel7dOfvVp4TtoZZFEClWXFdqUeU2AWogJq2DOHwluFBDAKzZI1VacfEVHJQFD6xaUuoCOwzxdS8R6UIAFqFSBANx1JkXqZFznyQmD1yQOk7BWy/u0sc5ZUm+hGGQNxGrQeFYY7NdUIR/ksIN/ZZxYLskwjESAOsR4pohUUXAN02/HTHflrA0FSzbsHBE8/EVEJhLnEiNBDEHPE315VIS/RdIg3GKEE6XEe5zML550pIha0/5KdrXhjnj8TCjU1BeNxvvTzd+G2tvj/ddfGx1Id48M3Vge2dnZu3ngcHRw+8xrnyUM49gl/tISV8lHrzBJWoyAgEnIjSjwd1WkJKFo7GJYwUTEYH3Y9l2N0pmwRcI+kREo6lLGF2BNU4C9DoZNI0zp6nI3nIqkKB88iRIEH6uwey5dGkO7I8UAyxYLCo0EXqlHZpAlroxiZ4+WREe2EMEejgFcSzllpGDMO5Ykiap14VLyLC1faXnbtvXMF1VOF0URbl/wrLIpOTwRrekIJ3MeUS1OVcsqLxLTk62UWRPva5mfjm9oago1jqSjG9IPbNnSfCjU9OO7ldvi2cFoZ1f3RPfPmz/p6u1qXe0dXjt6mXePv7nrta+/O2ZWaaWQx0Ks8IkZw7FYcm0RchCcCA2QboCF3Zwzb4d5jIQEG8AlEHsK0E44UE8xcrjEFhxsiGERkljBoEAXWFjPF5YFYEKycP6eB81YfVktU8wolHHRBCiBkB9xFV5AY49jyJiVNV4WNCwThoUkwkse4S9cWJEFs3LwTTuxcppc2XXl5FjSNT9Z5IhoKCspWyTlRMqQkqdyJdF0pWSRtwnQCkkdWwK+l6q5s6Vhw/rGxoZQ0x8NI+tH4n80p7NzE1PZiX/if4z0jTxzIH3g2yc7ntnZOdTd8cGRoT+PL311aubc8Nb9QwcvJ7ix3PsS5kuLuzFNpsVptoyY3AlDVQ+kwVqpKjqhaYrG0JweVmqhs1EIshVs+HHQDdTXFi9BsaiqRMXTtE9RdNYXyNRaV5cZVs4xNzpmAgEQYGKEZ3+3XawxseBSqWyaJjJiaJopaeATQTGIz5pcfswlFz56bu/nhv35q+PPfXdh1/RSz2d75zOXVopE4BOyIuolzlQly0q5QX/OkkROT3pqxPSktfPFgqgbXM1DDze0bAk90NDfHso2pPub0p3rsrc19L/U8sJcc9+3E/HoX9mdH/d93LHjjU29rQeO9Ox/6+2texc6t37/6uRbxz6X3YQUQ4hFCDEo4laO5WXaKwjF2rE8YjmmHLESrJCCQCMICFabPkauFoHFBMIwEKiZlJ9LshS0aypwfFEnlM9TAiwFXIzZmE/wJBILami6wGmIT/KakxL9CX/mYrHE2VjMmaINWYaAXqf8/hx4QOa113reOnbh2Ns7tr/56cHJ/Tu2jh+8fPnYlaTsuitqzuPAMTkxoTslGa4rKZEnnCWuWN/kE37dTtk1jaHG9Q0t8Rf7+7P9U6Et2b5482qloWlLY/zF7DPr0+mJqTPpM7PZ6DNdHQNdO5q7et6a7H4ZHzp35MjavqMbVvIGjUsZIINC1UKKpVpGgCNhuzxtwXjmL2q2BWSFSwpANmSF0JhmLQ7V+jCGdgmr/iAsYxmq7GmUYPJcGNb/yzymaDsA3RJwJNLwD59fimhX/UPDTCzxYxVVnJTs0TyHZeBUusfxtuBwyVHuypuLJ3vG33pub0/PmRNfTe6Z2TM0M7yw9+CbK5ZnLcp+TjT0KpFd2zLLbkn35BXD+9yTT0YSoiTykqjXPNvQMPLASOMvG+ItDfGWDS19zX0jN2zITkSjE+vvjp9pmsi+3h196sepaHQg2ru51PHn9/tOtvacG9429Oqu5PHvbC5X4hIi8eeK9GIiKHgGa2AIHHTYE2iRpzmDGAFBDDiwRQXFUNyMl9S5aV1MlVPVMCsWYhAnsJGHNpsACfBsk7fY8orHIDlIqorCV0lOwGXrxPuQ3rnzGzknJ8kST/sFxU/8SYUofkVM0E7KvLx3177Dr+588u3TC5sW3h7fPvNyT1v69MK+7UtFxf0G/NXdvKMgJTmizycLOl+cTVqWdUX+Xfidt1RZF82axpbQw4em4nPtoZGJB1puuq1xXXZ17Kb0T+vj6354KRsfaWg/1D/ybbZzZ8czH//cunPTtq8/m21ba/1+/6E/33z7010rhmWVp+feozXjxNsTDKMgM0Dxy5RgYOJhGbFcJmEppPqBysLJN11oIHzRMOnMYjVQFIzTp2yQwOl8mA7zO3ZWUb3NYo9LuoqIJYIkJCiQW1dI4MRrn87TJJbS/ZA0nFHsd76p4IifXlK45UXDDHJcZnb/ZzOnZlYrhz9bWBgfP7zjk8PAXI7qW7+yE2pxWhVFaX4vJ2fcXOS91VwuOa1yvCVaGaIXxNzvZWNer2m//6GHb2t/MXTNfaG+dSPTD2XvWtfXn25qbI7/Fu2fyx7qa8k29X3cHm0a6Hp9Nv38+x8cmRnqPXfu7+HXJicP7vruu0sZRXNvP4F3IzX/DQbzjhmLAYQEHWKwgpQANMZAWHH1IAumCBFKCLJmNaDhgoixxlWLbjhBwIckfoy+J88KkJZ1LZczJExnCAD7sQDmiCcAw8snRPAcqehI5xMGnUu5sikES7JgMWWVNsgXlfmtC69uP3oK5rBnfO2znrVNw4NDQ209XcfVlMwlc5ZYjOliqcqNHef+t12DqDIvZ/iIJxUj+bM1tz3UcGvjnS9+W3y48YH16+O3rov+1BfvC63LbmmeaGmJNsdD6ReuazzzVPvAxFPPA91ZTQ92dA4Otf058/fX2yc//eiyLWhsMrJ7N/I7GHuWJ5kGR2wcgcwjBEAicqAmizkVosFGmvA6WsERGBW7QsVoAwWCip6H7ooJG3GT4cBKXTIpeTyFaIUFpQ0qBY3wULc5043ZUEgVOUkneRVKzhe6JNKO8E3OE2QTkyBZ3LVv+7aZHTvGD59f+2p87749w23DR14+9SRfPXZRli1J5kzLtFaTdiGCPQeQUUQ2vuEtA06GaNmGebbmzkfu/+mRDx+766GGu0Lrpx66eV0oHloXuq6hKdt0011bmra8EO34ZnHdSLav76noSFf31PMfd/y156betpmh7dvOPv/11x9llqs8jfggGBPHiUrGE8p6InURRIIkpzFQx2XM0gxcaDfCAUWp5nBBoEHuKvi4KxhljsYsCiAC+oIk5JjT+VEGs4Qj0yoh/NVuTmMIssCrsGN6NDAo4ndoUAta8FeCrqcLii1AujSX9vY8/2PP4dnx8W09+587vbW1re3I8JFNRyePX3RdGIQBJE4ucqKtyxyJlDl+hTcsWfIkI+WdOukV/6XQen/aKOM4dtKmzd12IXftEYr3Yua2HgFLd6DXHpJKIMgIc73Og11bZ6FKBWqRFlnBMiliEeqk0kELVBDIxu+EMTugMBjdWIbbMrfJ1EzoRJ3+FT4296L36vI8+Tyf7+fHk3L2aMbZ48ePqdLTlcXK/JyM4tMVWdfv7daVKM8VpVaU1DVUfFxxv7IAzNaxR1e6Tl+4dK5t1F/6xNLhaU/c9vaH7y471wUOJrXWcg4dvMmYITFhgJDy7Fax0YqtZQt+TAzWWS7mFOUSUF/p1Fx2NoQwt6uOIM+dh1EXSZJ69eFysULzAqIw5F2GYx6Mg04LFBUSsX9OUshqcQ7HDbAOp6EqFL1zFUUgjMXROQyJ4zCulSAsgpO4kUne9e1O//XMN/UsYrf/0+H2RNrbPW673T4x4+RYDtGoKeR/zuVeVKHUII4bUcUyQegpdA51sQKR8u+pE2c+KLn45r33Dr16KLU4veLL3KzcvBLl6crK5lTRcEPF72WVRaXDXecqikvv1z6uXP+5OWbxtCwG3UGw9yC+WL58dyW5N4fCEC3MuJZwGNyTUxyBxWJiHOYgGjYTrx/GxUAbH2ltrXKCSg9h1iSvC6D7QRkKQuhy6MjERPlh+EihQCs0R2hcwWzva4BUAT+dzsrSg5AOBcgYFEhwLhBFK/L6AIZgKCeQmB7FBv3I/5EDzTw3PBwJ2IeGTHaf3d3dfWO6oz0YtESHOjym/uFBmlKDYE8Poa3AglAkEOEGXM2YWd3/Fs5KP5omqJQT54tP/X48o/j6Z9fXMz+S52bJsuS5MtXj9IKatXtpdQ1lsq6buWOjfxQUPPq89lrp56WN9Y1tQc+Urb7liTvhC/ds9IRnd3a2DpJm7vnBlkAbUDJb7JohdRLM5c9GCmHoCHSY1v+IFRohAHXhJYSjJDQq0bZiYsQ5qBBLxGsUooVIEMlzYhw+XP4Nh/x/P0Z8GMCAA+NHp6MRQyukZklyHAxRlDP4ja7HBb2EmjTeMRRqqyhUPbg0Mw8uQdgX7Zb2kK92qPGBu2PIY/H85AlF2xdWb88BCDDjuBXYjl2jQLBASszN0GqUWJrRVznRba2OSvns/KnzZ0SZsvT09N3d1GOys6fePJ6WVaysu5hbsv9xRWXFlXN/nS5qKD13qa2tq4i/Mlbf2SDl+eAU72gymf6M9l/u8YZnwyPhg7iwNduzcpDcBvIHyEFzFZKNZkvUoNWHwdqZ7MLDhSiJ6ViFi2SPlMNibpcRc6jYNS4RM2LdBiXRfoNzjBaFMKgcLsdA+Q5JjH6Kw8GB1k5orCTEKiQwYoBInJIg9+d2GQRjOavaqcDGt9Hnl6M/JRIRgIGO7g69bxFkbh2Li8FF9z92eyhkn151umjCr2cHFBS9q9bN7Zs5CtU92GWsRqNB4acIIiXjxPdnTp787L1T+TKp8s3jorTjF38/W1ySlVuXn5+leq+g4Zc3Cq6oSvPzmyuKmrrKvr40euXw57G+DkeMXz/3t9sy5Q1Ho97Andn+g53LO+GQt+dqfxwIfRKkCwILHCOLQzqJS41pYdQMsWauF0FBQiCBrVX0TKEWBjd2srPB23Ir4AtAAhIjJMGNsN41CDO0AjJChcKjQRyTwIVORkC1ZgpoePLHfdb5IaswKhQGA8as0eusIr7sdY/WjZlMwb5lu893zfLEAh7e1O52JxIWS6c9sfncNYf+MPyC8isQiGERtpWireAwU+NG4RmLz4AJ8v6JX159LSMzVZShSsvPyxDlHpOrct/7fzMq3pPLG/Z/V5UUfK385MuPixofqcau1FTedEzGYqYpz+5+h33/fiCaiCyEwoHp+zveiDe8kIjs9Oyh6mechACmlGslBuANgSE1CkTgSJqjxyEaxXBYC5ar1zC0AQa9fyHgM8p/mEG1zl6QTACoaDlC7ccK1eMQ6tRXoYxZA7koGp+rMvsFinLhkODHYQwuxMGIXKbX9Kyh19fX9KiqrxsQhGnI8yj454XdjpjDZFu0uxufVXdPe/qGVqv0vbhiDTgQVHeVI1iXkdlmaHyZGHehBJvy9luvZuz+kZZ34mu59HiJUn5SdkiVe1GWkatUfnK6dF9WUXBM9V2xsqzi11HZuZtjbWVNtqbaGp6/0c5bgp6/E/ZIIjI/H+0MzN0KR0AEWr+w0DffH0fUM/A+BwkcDpvHSZ0LNHYQjEnm4uztNQk5eHcfMzO0hizUDOKIGTOghHjmcDkYwIDTygvBCFYgZgQhSRfFadBCSRWu1SCIX6GY6HWyLkZDk7dn6EJWA5kRmkm+aF120q6N239Rn64NxSztF256fmh98mffHY8j2NJrMnn4H7v55UW+0zfjZ3B8BkWZDVAXEXEjargWV2/cmqMAhapTXns/82hOQR7gC/lJ6UcymTQnXZmRk6OUXszN+TpHekp2L0OVr0zPy/r4/u9FNaVNXbVttc31DgdfCmqS9nafPXr1awC+zc1wpH8nGnFNR6LP5y9vCTirhV7PRmBSLQhmA42zEtDhZ3NWjiXA8FQQpITWAnGA0+IBoKIkpICUf3W1Fy6XKLQwS5thPYoA4wjhILt3lj9gIS26XXoTogwamhKY9d7+jUEFDiE4zrZur3onbm9bNw62bv7YEbzxly/Gx1paYi3BtiDP82PVfMxUfcHh7uTr++wzjJXCuW0di5h75wy9BOFHBadVrWYpaiZF9kFxruzN/G9TD6Vc7L1+RiqSyfMzRd9mHkuRp8szfj+WnqMqOXVadSVHlH+64Ut57qVL1203avlGvtpi8fBPhhKhTTs4m1FfKBBKBMKhUCQwPzsCJgmk1RIQyYItIJ0kSIkEyAXT6K5Tu9RrxA1aDSWBtQa1goURxGyWkNkSDCEKMReMFmooHa7pnYCx+B5LIAqzAqEFMFTXj0gg/cy+EcP3uZXQzt5cHNUIzom7C9dC01OhkdXL3rB7qLqtk2+7xZv4GO9wxByeNseF6s6YraW6sZq3893bMxSBMwARKFDsKEvRrGFgYGLiFjJBqVPSZblZedJMqfL9j0SioyKRKC/jfEaW7Lf1oxk5F6WikoJzBTkV18+eH1DVNRSt3fu4orneVlPjKHrKt8Sqi4ruD3ns7sjU8OaC/Tag8PB02B32Luxf24oLGgglULRK5y/Ehbn/nYQAoRBY6dLGOElCEq2VBrENikrKEVJCwiRQoDMoHN91XNWwaiPFIS52a2vrRdxAK0iUMBgh9ZqBJFqtRgQaWO332sPe/hesorX181q7L3BnetHX/VNH0OLpjrVMTk7yNxt5R2y0tq2z/ml3p2f6ksNWes9Tu7vPzdBAhbMopdcRLrVxTWcd8FPj5ThloFLkMrkyT5ohXX98/NTJDzIz0k5dP1aSIZNK01XFOV8q3xPJvixR5hXk5FyslFee62r4uLI2v7apdv/bc0HT3QnH9FD7onvIfs1t9xWXPonaA4lQwNsfmH+4lxw3QAzQW04xjOqBOUGrIDBkr8Ialxr275MGxqxjgVS8TWDbZhTsBITBMLAT2x/OYDSKUBAbXxkZ8S6M9Kwk/SAVoc0suBiisGKYEb+7M28fDkSinzxA91Z/4Dqn7Rf+umOxtPAdprZSMDUAIPjPa6tbLI0W3jE0yde3jbZdcKx288E7GxsGA+henBd6CVbN6vUow4HHyQB8pqiU0tdy8lSygnsnZMfPXz90PE12SJopO/Tm2fz0s7np6TnHsnJOpefLsk7m5OZllZWpirqWPn/K/3ipu94xPLXoszwJLtpU3VH78GBlYyKQ6LxVG/FdDj/wJlvpbZfCvwshqFUPG0gENcKg/sa0oKUZ3IcwfA4UdCx7c0A7iKHADXDf/YgBh0FzgxN6kFHohZVZ77XQncjd7QcCzSYF2qwewDXgtBE/NEZ8nSPuyA1mYmZiYcTSZ7eb7njbn4DNGPv632sWiynWbeu1TVa3XACNVsuko80xOdlls5gmed63EN1Z5l5sGxFGIIzgu3pGT+j1rB/Vpyi/3T0kP6M6L88TpaYd+uyVkldSz6alZopyRSdPyKQFmVK5VCq9l5NRpypQXarL/+vLsvzmJnATo9Y2anPcsHgaYy19hok8e+fmxA9ut3sosQuYI7LQs9qzfCAY/LQf15LGid4b63MIpzNLoKoqmIQMwBGyEFgeKgy4dMTus70NYZ+eMFtdBhYkSoJWB+NAKMz3z4bDkYXZh8mH8z1bSdb8yDgIChwnupCwT5d1hTc3n/VNBQILgWj79KKl85ol1kVRHe12j6mFr7dNNj8GOJm01TytrmluGB71eLomg086WhIrrE6NA7HOGfVOivL7Kb1/vNfVlyL74rTsg4zMo7JXZOdfPX/iM9HL5098VPLO8bQrh75NlYoAm8pk8ryshoq6rKzTRcq6rpqyuuqa0rH6srbR5qdtJv7Guc5NEH0OgWMyFEiE7Yk70YA9snB3b3V5CQX55CDQiBwhMBRrJQThxjaJm/eE5N6z1WQyKcTjbBwdvHGtfy8eB3yIYxhLYFoF7SJwdmdzIhSIRrzRnZ6enuEHs7OguhaMCs5ArM6P2EuXoKlQ35T7sjdi986G3ZbORKS9xdYVHOowVQMojFaWliobO+vHyponx2pq+FgUlDnTP81HvFPTDPAjLEf4WUa/NEDpUYISlqNLKR8cPZMmOlOQWfJ2SsrRM6mvvFIiG0yRZhanZVzPTBOJigtSpNKG9FypNLcsp65o98umTx4pu2xNlZe6mp9+rSrjW67FYi0xEG91jpo6Pb7ElKk+ML/5YPVhsn+rV8dajfiSrlWHYZiGMM6pXcQyi23Ek7N7yecHewd7l58n51Y21hSXV/f2kvFkXNBhLsO4fgCHH8e35ucXdsJAvy7cWprfvBsK3NmaTc4ZaXq/PzJiqnl8q6/R3fFT1F5b/Mny82jH338H+bbJxhsWy2TLpA1goa3sx0fV9XWrVvC/xhZ8AnjU4ptPLpV+/ILBB8arKKN6m6aMzn1mryfaaVpMOSp9/9W0t9JSc948eebMa9J/3zjz8ivnRbmpsve+SE1LFeVdlMrlclWJVCbKLZJnFRd1gWag6PPTtuaypqZbw2NPHY3NjXx9dd+Fjge8Z/qndnf/IiDP2dWVldmRDYQC2ROp3mAlXKFCYAQDyNOEja35rb3ZhwsPD5KbPQdb488PHh48fLiysLS19VBgNApgQ0FqqXduzYYCYW/UGw33XO4PhRLRkG9kdnbjxfLygs9UvX7fErzQHVvs7LvaK8zt9QH50NXcbWsGvGAbbmyuLevqKqrpanraVTrpsDUDaQhAYWl7ND+7sm5UM3qKo9StjJ+l0N3bO6GfFjunPf9RbPW/adRh/MJLIoc/GNTThiv+0CUrXgKekwuLUmMvEHpN2ahrYJUUamGhPV6ktyJWZO2ozIa+pCubtltfUMl19YRo7RtVu0rtKrSr+DbUzO6l1un+CZ+1/AAJCXef7/N8ns/zeZ5DjpxsaNE2NDTIRYhY04BcaJe2mFTVf+kwdatUJBYrxMekCiXQhUEmshKEX63WMC5qFB8ngrP2dIfX4/Ew/Z5fIsDbX56L9Hz507mfhs9PTWWLU0Js//qp146fevapJ04339iFGt780daDU6/cLefzqUJhcXauUF4rJLP5Qi7Jlwt8srD2KAVefuL1px5/5XTzE3dS/OK6eWpzcqAzGxNSWYBkYzIL/R5YuL0hX6TP1xsZDHSEbAOnzsZyP08ForvbmUrUnk54vSEuaD8MWhLhxG4FRlz+RCWxOy/yP9oj6nPkHtx77oWv3n2r+c4rC3un92P/fHkx03bxy3PIkfZarVZb3/SwvWZFf+IdyTtSqeiMBhGLdGJEjCBSsViqAFwo9JZJplYqKBwzUN0ydvwC7WII2u2pXF2SmfvGbI7Q4pXteJtth/sbVqIvZUuFz1+BFaenwKD+9qMXT3/43J2duzufbN39+qBQzpeS+dzzHxXK8L+XPyjypYNysrxfPti/+8pL0K0998rxZ/av85OdQ891nrO5PY7NK2BFdEKZnh7bXtua3HbMLXh0670ejAuEZkOOWwNtyxkuPZvORDPhcJRzc3Y7xbG4lYv6uFmGC3qB5i0fvMmF04nKYIdj7a3nX3j+lRde+P6rN1ObXw4uRj4da/MtI+31HzccQ9sl8mNHZmrFzvqWGpESqVpBFWJVjViKdMkUIkxWRZEyzX2CHNcQ6vsIEzTC7MhKA4H4uLT3tRm32+3xfN9h82329Cz2OhzTk+B6FlfffOb4qWfeevHFD0/D6OLs9Qd3m2/sH5Th+JOFssAXUoWDG/lCEkA4KGcPyvsH6+Z5sD3uNj/3punqh59vx+KTY9fWHek5zhvpHZucuApwDK9Bskz39Ua97qHtXu/xq56oJ7Qc9fqAuHyZQK87ADdtDnIcTXO4087SOMkkzOH+RNrlcnMjAesv4XCkb/P62aeaXzv+oOdaz3JbR8ARydiWF3qR9vZj2gaNVK6tQZBaRTX6h3xcIUZUCCIWq2SjrociDXJCphSpZUrxURT0lvq/VooeNygS3M1n71MJtyfa4QnbPJXZwSvx+YttF3+d2uyJLSxdSgmLp1+/8+ETjzc/fQN2GL4Z2rr37tbnB/eS+WRKCGV5/pdSsrzGJ6dWS+UHW6W9ZDm199gtPlXOf338k9ffPn1v+mp2ODd5xWd2c2mXO+i4shg63zPcc7M4da0jEMicb1vuC/gTYb+5Y5AzR8P2oD3qC7s5N0xw7PQ739nN9j8INWH6zGVmvHavIf3InOX66EwCFDj/6e6d43zpH1uktxLIBCKZ5cyUDRIEiGKlQaKVNapU70tF4+8h7YikVoYoVKO1o28dlVZh4vGj1UaySqasI04QODpCUeYl1sow33KJRJoBuujwcFFbB2O7OPjlgCMU74w74pOx15fONjc/89bxZ5979ezpl+9eX32welDIFxd5Ps8/Vbod30jlc1NCvlDmC1Op5LaQL2/dKwuFa9tfrz7YWj0AwgRSiPvcdMBO48xcGkrDXzeH21CMCcGSQ8ZTqUQrZnPCQ3PRaJoe2QvjFu9MP21H1RTjZP1WP0H5cZrxs0G1081QwbSfA6b3p9kEd3E29MtnyZ+WbRFbJGIbtM2CFLN7kXpAQtuirZGeOdkiOiM5eQQRS+BPVa2SNKIKzTjackwqVVQjKsVMXVUdZhqtoiywiWF1UTTtDjJp81W1PW3uiITDCxFb7/lfwSsZiF9dnBzunIKnzp4F5fD6G2fhwYE1PpUvbgmHv1yDFImlStlYUgDGEFKpfD5f4IdL21v54u2t5NInZciiciF7DURkT89VF2s20zRrGFm3RSqReTs2u+qwdUTTmRAXdpnDict0N036EnCbHzpddj9l3LnMUH54WQknbfbjeDDYb3aNsEGOtoYTbi783Xo4bNt5beLfX6OBSsTni5grHp+v4/shpP6IrgGIU4E0SY+pWrQPmxC9StX1UKtHxOiRI5A0smMKk1j8X02XqFVEql00YSSJ31fgV/1e2uKHrGS8YW80HAKA2zqWbW3nlscGzLC3NTw8Ldy4vr9/IKSS+/m75a++muILQm61JPD5VDaZjcVyRcBioliI5Qv5cjJVLO7za/l798qARLk0ER8cDDnMFbPXHaTtlhmKCc1yFUf3p6++EMhEK+G0i3GHaZKkgSBv2OmRQ8bPGIIjFoa2qymIB0OQhsBguwmNhYF3LEMSl91+f5jppjj3o6sNBNzhdF/GV/GZB/vN69EQ8n6DVtt0Uqs1/SnXS7V/neySHIHSoXgoqUNUEuS3RqmyHnlfKt7ZQRQiSBHUqDSadE5CQ1mNuJ8lFhoTXILzzDHhKNTt5civIZtj4NrgYOc85PlwLDY8tTi8dbCfTOb5bDGZBLYs8KlkKhUzYOK+WPL2VjmZL0OWxEpFoSjkU6uF1XIht1bmb4710yM+nx8CAh8ljbQG97v84Uj/F0+uh5mbnIs7tMgoYmaOoRk6aGcZwslQdXBJNI7a3SOX1YzV5bQ4rRR539RN+DlQAWw/y9AQR/Cd0Z8ZCI2w41w4XPGl7e7BCji1EBUN2qaHTXUN77wDbxr/qNGjyv+qVA+7JGKpRFWvWqlxtvwhPoNIW6UYKHClsopQolX3QYVbWSsOE7SEFe8zuGHI7MmMQXuc7msbHBsYGLi9Hl+fB008PJGdKCd5CIPPU8L8HNQPnheE0uFsLOQrCik+d3ujXMiXhDWeL5bzqxtb13O5tb3s5EXOtTM361rwM9gIZcR1C7sGCqcs6Z/30onQXDrBhDnvN5TpDkNQEJ92A31ox3e/tS5a1HM0ReD9BGu1G0c1asygRjESKmAdaTUH3RWa9DPMzggDmHgrae9Y2E+tR8KBQOQQ0TS2N2i75FrtxyC0mrQiiQSp+eyWrqtLolKJUalYLq6trla+X6MQocfeF9ceParB4Mog7DTECmUB7A04bU0HBzOGtOf7gG15PdD2q21g8crA1fl4r/nQN3n+343UTYNlQhBAPRdTwJpCSkh2Nv84lMttpJLC3p5Qzn9bKEDKFPLCqbX8Ab/Pp86HRv2ciTYE1RbapKacRpbS/DanZsIJs5c5TCQYrt/KsAa7C14jVoMRvsla1E7c7twl8MvdbD9qUBNEFUagFEZCTVUvfUJiBJcOk4QrwaWjlJ+ruAHQDm/0I2804vFkzEjtJ7+PGruaVE1NKkk91FAR0OaJU3dUEoleL0GwXVSF6BsQIA6ZogWqqfHYKApmj1+js6Im3IK7SKOBNprTrHkvHbVVPMu+yPJy369t8VBbfNMx+Vl8fuPSZLx7O9r3KBiSWR44YruUzE5vDF0TLqXAJC/yUF9Bb+ZvfZqfypdXFw4KMWFjzHHfPmO3G+yGC0RrlUGHsqYTIgO14iadBo2TslAjLOiHObOVcuGsvxv6Zp3I7NRQNKkENUzhTgOhUVLqakyJ4S7WCnqIAHzAuL9z7zsu7Q/bze5HqyQMQz237a54K3N9bqS98dtGqVbSuiKXNEnOiOsk+ppdeb0JgkOi0qsk+lpxteS32jMycDlVYpHsqKzqWJWGwgkMrSIxujtoNHYbg5a5IBfmMoCFzbZ8sa3vnKP3nONcfH5zeOPKZmcsu/DD8wN8FtqriVI2KWRjfG6aL62lktCFC/nYWqo4VEoegAovp+J8YaiYS6bG4rPhRIVmjYTMgssM3xMKTDaDk0bO2a++fDmIO61Gvwv3GyiGCfqZVpQgg/dJdq7fi+2QJKkgcFKNa9SyqjMKFBVjJFanNpAEpWSCOyMuhqMY1pIweO0jnDlx2wV6NO0JRRHRMXGDuF6LNCHiJh0iPdIkb9I26bWoRA9xIUdUNXpniwj0t0rV2F4jRs5ozshEwKsYq/4d67ayjHmOZfFRO5MAudMfBhfRFvCFMr1j5x2HPT3zoA///anz0sTitbEYX8qCCTc9sbYRz2bj2Xx2TFgKCZeEidugPy/dSubz/PzCXj4/NTC5OV3scVzuc1EX1H5CbSINMpnRisHtkVTQMsqmISVoA27RWA2Un6WCQRNuMNEgP6wEyeIwsLhpx1GiWiyqkv3xyYpoYYlCARwFy/4XpP0sqzYC0x1SGso8QlogOmbsjAdSB6lpb5Ce0YpqFPXVDU16RC/XypuamuRyfb1cjtQoqyV6lQjKq7SlQYWgvyigjCiUQ391HcWsJorWBcHq62ec1pV+ZpdJc5Wwz+H2BTKDIVvflbHzF+etVWB4lqC9TBVLuWx28d9YZywnxKZi706Ucgf8WoovxUpCCbTFdm6RjxU3DraEpbODt24vzl8Jef1qUkOqnahsnMBxezcqwww0yxl1u5YgpaZbSZ2BCJoIjHWN49AdkKSMIMkqEqxIipDh1tGhUfgEgy4Z2mj9c0hEUBiF4yxLWjArYSFEs4zZ/5G9I21Y4hYr/VwUAYUlFTfJRXDy2t9rH6HQBUDUmOR6uV6iqqmtPfFQj0CIyMV/SVpkWLtIKkO7G+GqZCcIUyNJsARkC67pdlmsNGPzeis2s30pEujrhWdJznuO3+x1nLvy72Q2NnVpeiP21XB2MucddKSEbFucT5YmYqWSkBUmDy+l+OGpbGzuOyFVSsZhaWa4bzBSSeCYboh41BEbdBhGou+IRX4dgUN3TBguzLEmOwkUoPnvO/h84tNuEm67tQ4lsHE1MKYSE/2JyYDdwH7CMFGrH3VZ7qtJRFqFYlVS5WXj1KyBYi0jEGCMy9vtc3uQ2pqTdX+tyLUIlFJtPUBRberSy+VdXUgXoNGO6H8/KdEemTHJISukiElRdxRVgLsl0ymxqu4LqE5tqCNuYn/QQZA33dGoN+MOdYQCy5Eo7enpWf52sHOyz/g3eDCx4vZ07FJ2Ijdx58PNUin11UQpNQ1WRAliRrgbTwFauYnbN0CFzufiY/NXQ32+DkbjZHE1riYJQscaZGKEmltQE0BRZKvGcgElYTpRh2GN4MBiuhG1HyecskaUqFKTGFmnw6qpo3BgoxigMgqDjEbCSIxKGykSju7+ITXixSk4PANzeZdm7DP9Ye//HFxbayJnGP6Yb+bim7mbi4FhDr1Q0OnAyCAjllZLFUUdopEim1qJSqKYGBPiklAXszGbRBvaJmRT07rJ5tQGmrS00GOgtKFhe6CHvdgu201KQ+nCQnf/RF87mERvEn2/533e53leDcq4ZRx0gs6CSkAhgCoaXs6v+p9mBuIcXACOcZqbu5ijKYS80rLXEg1akdyGi9VZ06cZgfPoqrda22zHrs7O7s+OjoyC+XtNDlTFGzdvXlm5duPrH+7t/HLnrdvfvXW7t3P9l+u9bu9tQEP3+scfd69f78WWPv6l98knOyDHFr+7c/2nOx9/9sXRafLxzcnSqa9eMyP2fTMvigpFMmev/Ko0BDmSDnc0SWd/u6Bk4ARiKaz9u64LwpQgZO9LGhXlsUZlAVI8VSVp5YHBsF8S2zyxLP7vl+5WdbmagE7ZDGhhORlLpCvJ1al0pIAod8iT9dDcU85D0xBc0P8TxfvnNOfg6DUMxWC48RBVpBHCKnZ5FZXKRx28nxv3U8JFFs6o0PHt6oH6ULpWW92HvGj08KtS8/NXN0s3Vuo3IYlf397qLu58d/vnW5/0YElwfavX60EZem90ex/BrvXzj653u92f3vp55/ZPt4+3x+5u3V1fGSokbrQOZ68WtM1avWMmg5jwovjtryIRQSgYWRO+XEGRl4yOQXQB+MHKnpCkL2/IgqhnG28K5hl0zFpA0EBcCaaetgKBwK+aiyJ6WA7LEa2WlKqJWjJW9+U30/XNoftTaDB+EIo7HA5wH3Q8RDOOuIPOAE3MDfhpxu/g5gZ5F/I7cREVXWWZJ0GFRgyrGiwefyqyUjZty4pp+EAKhuW7hUQi1m4+fPhw9tsvStOHV5ZKV5oj11rTuemVpaPF3p2jxZ+6vY+/ONoBZCyudyfGrnd7UIed46NPvrtz+60vd2fu/r6+/v1SbvTFN6dH9iCFSabbfakIB+yieE2gJCHKBqpwAJRueUmUIjaRo5fE0gQhYhCeF+QLlnfxlEsxsZetRhhW17QGX7d25UQgIl4aLk3WbcPH+kw9EkgPhcPyWjoJ706NVZDTCVB4cu4OPaUVT7zIDBYVkBNOPw22bK7fHeOcqtLAnFABREk49ZvtlaTOc99exP3sgzmhIaVEYPJAVYZqJEcTkClCBDBRisEggYBpcnFi8oPYxKY1vX70ZXfxeOfok7e6S7lu79+djyrHsRvd3npvsTu/eKt7XFkHWz6Wy60P54anD5eulCb2Wnur8AYPHDUoIudZSTakctFQeDPCs2JQCjIkiG2bSfuIaUH8qrNRKcroxu8we3kzxQBWhF3JINoGZclaNQHSMGAmI2G5IWIiVGPyqljTNk7yvjNQrJVTtByNO+aCj97Pcx7nMh2Pl2mOG4DmgKvPnh3X0/5Pxs+Vx8tYgYDczTJ/4sYfnz3JwBPKiiwLrgSYIRyBahCUGG2PtpuTEOhMNkfbrcrN0mjin8rDN39vDS9tjx3fvrO1Pdb94YexHrwrY+eV1xd7v3RnxiDCzY399crtmaWjpfXcyvDw6Mj0a9PN1sTQ7Go1YF7ADOeFiIkolecf7Qa/JbZ4GfEJKomkRFvWpEjDEsU1zYoQWeDXHkmmkDFSwaylRUxTSLGiAeihMC9rrpSVlsUGcZ2l9bBmyfkpeQPofi9Z1qaG0IEzHhr0BAczGAFz0nR/lHJ0vxA0VII7//sE7nvg4X2bjWN8rqZUiQEoBCkXVgljEEMUdVGyquZq5fECQemptLD/EELG5msj30+2Hr5Wquw3IdaYHcmdWvrM8Rc/3dl569ZR79a9brfXG4P/DTF2a+vWBx/cmVlcf3w2PB+42lwpHG03E6Z5uHBVDyYFSs0yJC+4MGU9RqwhudZ42yYBkX/QoT6wRJUSKYCpQDQVVQWW4i0dtE/QCLIsPPCdWHzG6igCb7aqZvS8LmqsVYfpFwjIgbASrhmlhUosOBW0h9CgM5TJIEaIMynO7/Hsev/HQxymab83xqEsDj/ghJ6jaQYxOKtk5xiR51liip9JrBPblEt0EezHvqqefu4dsRbe3t0fhc9NjJQmm4XDpu6rzLZrCX12pHX32dP5mbHW+ti9sZlYbP7fe//+OzMzduvfw8rS10tHV7ahTmO54+fHXjvebraM9x+1I+H0OR8QFnhB4hmGROxGUMLLDsHwiQTNMWXebessMOqGixV4WfhtVcMUo0TNPy9QENf5bJTZICTauK9LFJX/stMR+9WhBFEEQxmETcbaQg2ke0Bbzb7y4f09FAo5ixnKg+P/D5ABuGjARWjAMR4CtQUV+R8gRV6lvcxyw+PAKsNkic3DISFIOzccmSAifz7h6bQJCry+kQivhsNAGLOxzcmr++2rrdj0aDtZ2xx6PHE6fTy/de/74+MZWKEd3Rq7d29reAveH/TTC8MrZzeOx9aPrm1d6S+2JjYfPty9f38v7EvrX1J6VQCeAJPMwA2+URphWHnNTV8wKOtgLOXMRWQLeWVVVVwSg3kMwkfEDSwQuEtBFzuJSyDAuHpdJuKjgCCAbdUEtlrz6eHobvrdzdXUXqmJnKFQ3MnEI4gecDsG+peHPhiw3U8GOLgyIL+LNNAl+FSoSLyDvBjhYtYFCCEqozrhGE4avPnyJSGmNqWlYzWfbYV1lr+o7TYr6cL296VSc6hQKyzM7g2NDPlKN+a3cjfWb6yM3NvaWlo8WplfmumuTJ9+9elEZaX1FcTlrVxp4mEz9nBiNamZFJw/oX4/gbJjexCI26WlGpqY5VVRahyg8rJkCCzRXJA5uqEKEkaQMqQiSmYDZTWM2QiUz5UJNijK8oJMFinoJhPyBkLIhS1V7c86UiCZnEpfHR1dgJjXEY8ve5ygsTIHA3GPF5oB0gsOMgx3ikN9vlA5dRy6wz9+MuBAMEkRYjGLSAHjy3MO0EFYEu3waSEgF4gOBrlW/fFvS/YlAgWwPvr+aDNhBKZisC9IrJ4GWiPD12Lz177Yyo2U1ue3t2CTdPO0dbc0eXQ2fLo9MjLRbB5emdxsLowOJSMymEw4TwZe0JcKgu02gtj5hGHJiZs6lyLUiaJQjEZhRdlNMRhF1BTC0U3CpgA3mFB8hucxNejOYJdKsMITPuVbK7DnWauhe7N1tp69sIzlSLpwvrkHEmuwmHWGnH0I/N8eno0DLuSGRw6ns8gdcNygd5xhHDBZz4LLHK0ihARDZKBcpE8dKYbfcFC8AzGUBSWJpLVoIJ2WA4GCL28pQqSvmwVZTqYDtanIb9rQeyuwR5v4fCTXupk7Xp+fn7kZWwHdMQUhGLTGxGRsOpaI7cMnoEuzsUQY+0A/CAjUFVYkRZWCxE1piO53gMTwCElAF2VVInbW5cpgsM0pNdVYs1OMAr2LyuikDOVD52cZwJSKKKKhoKlvSH2DBsiRtYgsSfZ550knv1mBmHdwsBiKF91lZ4jxeCDPins4uOLOATdXHACucD/ZoIjfwyE6rvgBJQMI4PEU/54xU9ApUQag6c2euBlsynXQdz5fkpVFMc0ali+aBR/d+XtDJ0RPJgAlyf3RidbQaK61NLx+7drN3PyN1sjK8F6g0m7HknsTyVhzNFza/+zw8VA7Udvb98s+QZJTv1KK7UYIYxEEjsozmYiVYouDNkNnEeLAIxOiYoYiTMYNL1/mES9KbiIpCBUxdmHMOIlXnaP9UFL3nyQDoaTL/k3x/nmubVp5206m0muQc+QXkGPQqbjZojPuVOKeupujlwdBeocAARxUgoPxQTu5ccXr4A4GbY6biycNhnuK3QbCboxEXmkEvV4RYwQdaJ2YHU0LdiKaJvIGEdigqJvgIzeZcG2qE9BXExOTC20dhsvQZeTmeu61ldPWei5wLFUKACMjf5ZfWLx6mNgfyrfPHid8l88+cyZLnTmed+cxctMIqElVeRFZhMGY5+usk/aulQWCBMnCqbKNGynAC0I0xp7zC4ywqCgMLrsZ90lR+QDzoD21qINIAQgkA/CspWVjN+u1I7vRyupCDB0cDDqiSW+Rjjvj9OCfAAw6lOHicPowSfoeVQW6oPy0NzPgL6o0h347ZVVV9TAqj7KEKmMgCwrPpcopDfwiMHReM1IkK38O63iCZdolFv54MpXsdHS5UDiEFnizPjqxMnJ6OHLlGnxgYzo3MvLuUNIotNPa6t16uA2Ov+bbnorVa74w2Om8ZLn77AQFwDztYCkkKW7FfabiLEZemkk9EhBgn9ciXpVBCg4Ca1KcYCOVcuBoEBYWCuV64GbVD6PqmotImvEgStiyBjftMm1JqcZu56IT3V2t1NFB2eHw5i/ioTjEvKDBnTA73U4HYALCm3j8/3lapJVMOVQs00X6QKV3fYhmGdoDeMEcTS8z9yEKe6DjjGSJMoVFOSv+uWFEdIsylW8sVtfXIEvTqnyC8l2tLEy+9R5suiHpSl7NXWmLQ6XXKs3LguwDx+wLJ8OJyJmuhxNVMFAsq3ll4kLIJixDsX2e4mlqObWMo3Qwg9lUSoX9rilC57Pg0qAbEOvF5XGV37hELqTYOAssqzCUAr+JIRIRsGG6RFPUpKBlP5Akw/fgAysaWIuuJVdj0CAHjrJjsFh0huIhKkTDLMl6BpxgOMCtcx4wI/BieWgUpm/ZaXCwkOL0SYhGNBG48foFh4A9WSeQBW/rU+kHp7zIBiUW/qDMgjTSddayzixTtMOfnxbasf27kLiDMD/cf/PuAqx1klNDq1PtQiIf1oDGIEpvmynY6QT++KD6OxsRHrkeRYRgP0LsQ1EDoauytMV7y6iBEem4gzalMZRKu/pZoypSNqYdn4lA6I4LxHsRDRM2Izp4Hw4iP7CGaGqsvSHzTlYwMjarpCRDWrY69Wg0kO38R8L1vDZMhuGP78t3SHLLIRDS5PIFklJIHCEjlwbsaLCGLtkhoLl0QQ1Sf2EFsWgOPdR6sofC8CBMq4eBeFKkJw+CN38clOlW2MGBB/dP+ES/lq4r25I83/s+7/M+bztA4SmFUghnMkkPU2skklYS1mgaq0gQpMlcWu8aECmg6GYj0JylHdjWVs2/+G0mQftxpc4GNTNcxtPzaHtnGiZ2EzbwRURTU+/3MqPrJX+c4S3i755++PnrndX+5uvvffbnm+/98dXLL791dY539fT8s8g4ObzQQ0+Fz+icvnB+uuidp7DYNZBj4yUaSwCG1GfE96MDt4W57C4TlMlzSaNxqZeSIW1Bltgm0xfgWbm1m5gqorR0qpHFp9FrXB4t5dyn0dXSsixvk95H97fjxeZq9pCuSLlvvKLY18VSFF2GTFFHuvSAgYEF12IuIUVg+RVJ8BTaQEgjUhesXe4qgkm7PUNTbBGONNY0WRkaqX6fJAMl7OvyMrIM3dgelM1J1T996/Lsg89fhrXz0ut4/9zbkBDvvvLu2YeX78y+36Dv9oev6QODDs/P4BKOe2fm6UbJIm07ZqgcErd8ahMbjOBZkrYt7xGOTY/CWoy5kOJamhOCjYpjPCCcPb708LMLj49triNyUe254P12G8qRnCX9bbUyzd4w8atZtThU1Q5Q7JtG7Ovyv5E6WBNrv55OafNUexy0GYhCgDHggs+f7HYey+ZcFJISJxqhjIcas0PWch7bsqsdyyyaRfrO4EwfbFBVo0g3qWyknu/DFTh7a3Z28cIl3J3nXrl85fLzd1//DP3Jw02knxjKA81O9R9MJZLPt4P//NnKcPvMIyXDNQpZinGbtjE2IX8ItWMhaJwUGuyTyPZgw6q3P4WS4OVtbBMrvjOlpU7uc2JRodnMPsiE+Sw3CRvIlebqSpVYY/OfIQpzO9stPl5dVICi9ETTFEW5H42C/7CYwNpT+BRhIdSONgPypK6ndxaKuB+rhhpr0uy3XELewtPSXYOQsL69i7WcbX2qmYlba/K1QnsaXIbXXDPUq5PftcNrg7dO/cuhrL/w3Nnle88/d/ncC5h8nn8Myz5a5TLCwFDksTk4nX2v92U43bdjjjIarRmRkBkalySEpMAjYaR7CfwBWGwxpGoMmMCoNrppxMS9z2zggd9LGiKZ9lheaZZskARDHElh2sJ4bWj0/Is0GUeA4re73Wz18eXPJPX2oYDX64aOI14Q07pAJZGk537fzMGbwVwI1fsmIYV6/b3HW8lSU6ZG2CImKBW621k6MFaYQqmJhDRatpTB2pVrznAgc4xTyOhrRqT7b12cvtH39aGO9z9g7v/q8y/jgzcvn52Oh5W/AQqnim7DpYJTleFTBz/DuT3ZhLQ2SWDHsS2atYRsFc6IrhtmWqppqiwWssodKU6qWBFz8LlquVJHFrqEjKI4NQBiADgoU5lJpKfQ/aNvhPzkxOx7hhdFVZZl+S7drTY7tFdh6+19IUQN2bm0/k8SIgVTD+L6doe4KOdd147xiAj2UxUHjbEnjAiri0exYS3Ii1nUo7miMZP0aW+gNaVGKRQO8zFwlc8N48QaK5jo/vzX179CnZ89f/kGUBgMXzgfnpz6mm/8LKPtX3wf6oo5bimFhrXQ0wnS7T/ImiMglKWKPacdMHHOUEyoJBteniYslkRoHg6x5HYQIEYCj6gOWaaQgT0tkQkZKiC1RRopdLcxzSN0xSDbfblZrnbnWXWRbrez3Y6s11ZpHbxGdCUVXSpWEAAJSfp/NDR/AhDqtJ4KYB5HceMwPpIBeHfIENvGJeEywragUd6wUPiyHPKdbnq6Rjjw0GQc33iUtRQaID3B1KY3HHyI5mT803gw7KUn45RSuPS8j+RSdO67i1QzYFNyKkioMIKM6K5egtjDzjdmTEyJaWiYbVkDizphU3W6HHTJ8BDHwluwpHqQkCoSZawHSiM56fH1A+pan1pCUcJbsz8w/YuLZXUcH1NQxdVsAyhCWPleXQAKUYxGdT4S4r9RQAb3W+IEjgWWIdQtpAb2ZY7ksG2dKAzx4mF+KLXhSd3lr8G4DIqnCTFKpnm//W67UARuzNGmjs18Z7kKDBNiD1IFmTDAfHuIGvHCifKYKPpuOTAWihWZC8vklQVRb6Ylt5+enpAIHQdAeYfsh406r9ctLniPkS6xZTthRJX+JzW82lKVEhoDPrNLXR40HIwi+7pBKdUKWQQUOko2TDNMkiFax5/T7G6XVddXi+9Ikmzb3PIuwmIv6n0p4HRORu1ECoppnMf+Y6R2K64RKFjQmDM1bm0kFG/ZdwTL6xiKBoZGUuwNR/GXOWe2oR9KBj+RS88rvA9bNsPm24ZCfIUP269MtzcwjL4xiCKjHyFS6NZUjN4FxGGtKCxpJNbgjz89SXEXlkyKj2ZsSTk6xaVdz7VQnScx4AddztUijqeqo+A5vhFhjHCwoYiDvMGpgTAQtMxqlK3JHNnyouS7vF+G6+oY5eMqrcbb7358/OVqQdo2XwOh728FSkkhwt26cCbFhkGDH6YBpFW3unDovkB0hHku2XD/CwTgCGa4qws74mOaVfxBM7f84TucoZdbdsOBBFEU/1ud57IGE4Z/zBTt5sVv9BlGE5E1wFhmjOI5jMQgxYCj97emnp4Y/gV1M0bsR1Nj8VOSR4N5XEo4kOfGc3uEIMVtTlQGRg9rptF0PknVYFrfd2poJCFaFqYlVMaUwAEkNkPgKJwgBbXi4cu7UsnN1Dw++kmYROOrdLWZrX559ermBtxStVUWJfdeWaKQFIUYjXzo2QkJjqhc0+4+DXh3n7ApVQB+QETQ2gjIeifJWjVjlNhN6Gkma/hkvSVroikLO7FF2KaMuMu/4RyZUWIsPooqd7akKPUWlG/WR5GoFGOsH1zPoAk31EuFMgs6Yq85IAFGAql+4dPnCFWTENe/ns+lORYQ1qRcUjv7xJHKQJ2LQ60GcWRzTg6lQUr/xK5Xykizi+slYYhVxyWJHN5See1ZtSWyaHc3Dq//Ob/EP+jYbhazxWx1Q9Isq9o8WR/adRkCDKcMrbAj0FEYLEdBDSimXfNBbg94QoRp6ra9tPehNUcQionEQWyzdM5byhn1xMRbt0xmsI8Q6x67xRVyK0vGY0+WLUy4aL7khFkgRdk17mRoUXkzCE+U2ZgP6EsyUWSNe4x2g4YYBeOTZ5/5NtZPVHDBfwstIogBGqMmKHBFDEbH7Q7NAvZf6KibHGFAmCnpTAsoHTH3NnbGigyq0OqmlA2rvb32o2GS5RFcnqpavbBZXV2tFjOSpmmeZ/ny43G2Tsq9Vew94FDzOiGwfekUGiOI/Pm0gwShQUfqnLiEcHG7l/ZxwEmXjtnvoc9LkkbETizHXDPgwBChjDcHThNL1+VB7hr5NvVn1OP/uJucQnFQeRbKmB5o0alG+4mbfH8DBySna1kd6Eze/mAD5d87DqCqNp/L1zEgKfEwiilMhG5BdJGphFXqBl7J7YauqE8lPVBKhdkJsCHBw884x0mBSXepwfi5H/tL398lw7PqoprtNpvjZgcsyP3t3WKxXC0WyToMQ6/y9iK9ndSOM1pOJkURLCf1qC5GYPAgC6SJuQ2AiEDMwbHYM+bxTK4cW2s8EjaMezxURnwpy8y8p5y7MvSzLPVUS18qruujx8xDl7pOUYSmvbQahzLHYIo00BPF0hTBQ6iTE/Du979zkviM2d6Ikxj5f6+qYRV0tqtdMWnaMSbFNsSPJqCZoqiYdAL+Org491Dcg43ccqKMCKrvxOIyX1lOorhNNizD7TKvxsdqtUnT8+sdpOb1D4u/r67JPz/+8/vj3XXn5iTpel16yV7koAynPtajphNc+/V1OJp3oqsTX6DTQCol3hJWMs9WYbG6fG13zllydJsJD1zmFuvKWSehTELu7pzZ92Hj8ENxzHVKcTpuz3UL77sTuGdu5HBr+X4VQWO3laVAawIoVxZOQWXOwP2UUzujoS0JuDItqjhlyMNjJnuqJXVNIVVHZqESlzm8YkbCLQTCZO0iJRpFLsPjOhEi9xXaCtlT9DT1objH4yxLF9tterNbbH6effPbzermnnyJjxb++tumOqyXyxZxkWdWFXp7a194RRcbqKxB9ngkE29SlBPhTkYZzD9Cgk5J7H8ejWISxCQ/Eqdl0shx9smaqFBpjhXMuFvdycci21c0cR2lpS6kX+F61F0/NpRXPdNDUq+dVvd2tGiKzO1x5jS8cPioHDkCR9cARs04LrlATLoOsTWFIyk8EtS3DgPrOBXNVClXrIaANUsmlpRrXmIYXDRhvjbLvpz1XNPwlGrXt6woCv3b4fiw3W6Oq8VqtbpZXV1f3Vz/9vgvx1bv+jQQhsPFGxK3DoVQzyUHdyJU5Ci4mOGkgRI05xCQINQiBBFB/W1BAoqGIqgdIuKgVKJDVZzUHxVRseAH4segVGqxiIKD/hM+NUMaCGnyvvc8b573I9bzr5+fv99c5EWR5lXMirIoCsWkL5UUss7hjsRoM+gZjV/0FGuLcyntAdc8j7XQkZJf+BbS01QHKeXc2HIr+Rvliusk5pFbZKImkTJZKpQRommEQfOACCwuFbRBnwcZF8KRgfIC7kKjac1r0E1qUEBj3TtK9tDQahipLG71KHIMOvgfJci3PVvsuo1EdGtv/3aFLxUaKEpOGbxnEVYSB7dNEiIj6QY7UEbxVItNT3bmBw90u9Ww39+YnzvXX1STyXjx+9dsZf2aL8ZVv78sptN0/CeP8nZcxsUcWqOYyqIuWc1gdlgOSjMAbGPJDAhUJkIQzQ0vtC4x1GZpauAXP8h0b6tLjlu1PYdDiVRuVGthq1LXW7ihwqLGVKGA8cMJbThU2FnNZStuER7Yze3+nT7hxBAOHlrDsbWr7W6gqTva8HqGE8tivj+FgNw63ljrKXTs8DYXiCTQfrrTB3uxQiSZIAVssUy6Wd9lK4lMXnqyxVCy2mht7N17cFgUo/DKeHJu/u3a71+r3+PZh49fZtZ8OV+ut9FwGobLPI3SaI2MICjXXpCJVL7pG39d3FmvFwNY4AED82tTCw1PlFsCDWqwektofG772dfxLp5p4f8igvFa8joXwsucHaAP6tGIiXNhCAkg1r2O63HBChUxjvD4fEgL6W9Ltmoey4LBwbuo6jm15Qbc0gWkjuwRimZFst0CONagwZycjURg1xYBYZdoveCcC0ldxerW0N2BnIIk5IhSeVtVcbuLSYoj/VtVfzKsxh/HwMJHRIlfm5uv3m9+sRb9eVVVy2rU72OXpoUswqXKozAMVOoXqlgOyhrSC3dgBvRVdY09LzPFEaKtesD31xEmErS2MkDE3sUPOKrXY4QRagB9qWMAH5eP/sCV5Ic7oFzxwNSOP3NdRFHgwQgiQa1eAMNYYW/tUpsakUm1S6eaULgd10smgSmbcwtFEUqlQ5TetVYwlszsXTizi1AlQGHUoGxpatWqWklE2Ah2RAd+dTc/TA+dO3bs3C28N1foJb+4+3Jz8/PHj7e/f//+9tOHu5+sb4s5fFBVAMd0uUxHy1yFOTbo8QLRNypUwr6J2pcStWDfcMRMvgYBus6y9tOBZhUyJSeJRI+TLZYOLUG282gLDajyeCaz2hCYSbmgPuDEXF/oBucu8RKKIOpzlxNKwRxONSM2hZnZOgugLOBZgEvhChkCRnG2IMCV8IXkTacp2q6Dsw1COx8IDcLaHlD4rwx4rVXsJ0nQAifkKo07bHVkY8jSK1euHb022vg4+X3r93g8u/F9Nvkzefn44dt3N68+wtvDWizm82q+7H9Yzits4SrKw2mp8jxKS2xFqfxERTJBsqbRSTNzi8Mk8B4PKXiea951GmWolW+zXz2WAC0WaSZBElOGVXIJQatIGo3HdmBoswGLHc1hdps5NmzfTaAErd1piLuw4r1HvLjhs6lmcHpWCwHQIKJU1BNtogI+TX3fbaEpKRu+pxsDEggiBjZBWr8cRCKCq4YiVklcdLZl26KgHcX+kWMnr/z5cOvWiQsv7jyerT5svPp++dVs8/312ezO80+P3ry9+vPSp9vW4htwMZ9/W81xhIPFsBrNQ5XmRRTHRWDUtJaqlFLUsexlZZ1nyjwMeyXNk6IYDGhumJStlhQxa9hcFpJS1sJTH98qBCSEK1CLSEVXCdP2ujsgfhuDgYrcvO0gnhO5ks1mwxlaTpzb0O5gXRM92dRNdpSUEcIMc0QTbmAxcduiSYTRWQTxSrLdW9ZTFwPHQRuk6AgHXukNnASUZEBDEIBQw06HdcIDt24d+33247XDFz/eePH4xu/q7pfJy6+fPn3ffH7nwaO3l969fvPo0Z37T6zxr8VqjICxGof59Np4sVj0Nz586Y+G5yIQ5VuRT+MgYKVM2J+U+6zMev66X1zmxoDXlBLSLhLlKagZOixsMiCeGwO2+5gHCGfZ7qAlvE4UYPx1R0JIuMaJu7vhYFLGQ6Ky+5toNJui28GEZQf/5u7Nt3U9B/mJ6ANurupgJg0XudtcgZEI15WtjHoezGfRlzYaPJji3eu5O7KWu1MFbuJ3Wp3d7R2o1K2W7bjdWnWvnDuNb2xuxFF47+7jx6/O91cPIR8ePn06e/vp3Zknl97+fPT0wbNTb27/q+iKX5OIo3gU/VA/9kMwZj8VlAiLiPnb+mUUYrCwAi2OW3UKqy6d2Y11WXc7r0JwjV1lS890TEEnMbjTs4hpE2+OcSrceVkLRzSuy/0VvfxFOPS4997n+7jv930+7x3Y293b36+n611pb3dyoZVu5Xd35nYAIJBGb176dOnlxYvPTz6/fP758GXtPNToWhDzEycPnjh85vLZk6dOXj5y+PlRy+3zt1/uwLvCQfDMyWErbLKyGhysW4esNuv/2tSwBXg/R0G8WxgZGh2BkqrrqG343P2jitUyarl45Pix+zarBbiUceeEHSoioAras1hHTj+wHL9vOwJ0t6H7QDG0Pzh+Ds6ArENKd2IOBDFj43DN7hpyjbnGhg5Z7BYgFLumQEoJtL6diVu3pngowzmm8HY+yJK1dLdfLvT5ckcpdrYkid8oNDvZ0jb0Rvr85OOdR4/eTR9o/diva3s7igTpc2Gv3qrLkz/z3d10/sfOw5+XJ18ufHoZv3JhYfTClQXYtn0aGX16/tLoxdefHp/YOWEbjQ9PDg/bhifO5Y9ZDw9dsFqGDtvsQP6228fGrVD1G4fyl3M8NA78a7sr43De8nqdY8tej3dqOeBfDi0vh2ZAF6ulQ4Hci/D4izAomvCLVp9/BtiEznMvHuRfzGS8M0fOOZa9jhmvAwvPhBy55RyO4+HcuBcHypc3cwtb9o24vH4aB3FVOBC2ejA86BjDoixGB/4LdeKrkY0ITBHbSPXFXk9rbXVivexW8Xe8upR98vnrV3GpuHIjtn6gtZsWNU2pZpVOXRK7+2Jf6vZ/7LVkeb8uvtxtfzqfl+V25tXElUnHJSD1BeZeTbg8gQlw+//D2tDYSMDpGbW6HsQfgsLCc7FrezHj8YLuBEh7D45Cr2P/lA/DQhmrb5YOu4N+570D4QpX8WI+4PpWQCDp57gc7fa7dc7NfXcFwvhc3T/LeUvQAcHvxmb9s37vkblc+AHpxkD9zsHNQAI/NlapFNAgxo3YMTs3gWJ9hOTcbHQKy3Dzq6DDWOw0Jkd5YiuSWUwky+WN8jy/2uls81I2thnb7vWanZXYk6+lz5sf/8bk3tePj56sH9D2tKqmiCL4o58Vt6qaKEpKXWrt7MpdudaP53+eb/+hH8bjtfafdno4nvH4gMQdyDmwKffkHxyLg1FYO+iLBxwzfgwkrzkgeONgllDg3GWugiACPKQ+T7E0SaGU0/LKljQHxoAkGMLQCYFBUYxBZx2ckCMZbrHgQzFOp2Y5VNc5EhMYndOFNWGWbOg+N9yIqZBUCPUvtKEvAjmLoFgglKBSuIAQAsHS/i6LsT6apT0J7G4hQryFvjNvUx825tfK/bXUm7XsdjaWlUqlzpdmbWmlqGWnr319VCr+vnbj3dXpA9UuQELqKWJXERUtm93tavuKIiv1bn6v1eprrSvfFvh2gf3zpxxt11uZKI3TtUzagaM0nkGCQTo4Dk3P/RkQ8Tp8GAlxc6MkiaECCtpChrlLIWAzk9N1akANBNPR6XsMlRA4RDUM00gKlI42EMRBc6ZpqjhGJYNkiGPcgs4wFJXUKRT+SZmcauq6c5xyR23ngpSK+N1oMgg/EJgGM1Apgoi4QBA/T6EstMxrJIkUz0aItbVouZxIPUutbW1vpzbeiPGt7dJmcxOwECs2iytLipiFua2Prn+8c2PlyZ0DitJTFLGjxPa7kgT40OBLKUtSd2/3Gy+X+RrP1/l4MJp/Gq3JC9LDWuY1G6VRdhFlESyDgjNmaeCMuAOuOXuF5io5kkRJAgxXjVqFohoGaCBMwjNuqAnTNAZvf6/NzdwdkOTApEIMYZoDQaAgojJTqTEAAHAIuWHoA8ZkGFUFoy26SYFX3IbO0ClKsNunGEEwzAqtuiwDUmBUQSXuAkSm7q6SqEEA21FofCDm386zq2U18jayXc7EQcaZcmS+dJpvUp1NWVz5tVRcby79XZmOTT+69ujGneb0DW16+oBS7fWUDnhA1MR6ta5oMvhCk9t1TarvtPiuLP+It+V0Xebbbb7VYqO1WpSlWaRAsyjO4ogQBHdkcAB5MsrcJWp5CBbmGSVV1cBVo/HeGJgqwTRSxttnA0MdwOXEIGE4LZQqyAg1AKspN2HaRxwUlzCMiCmY8KEMHUBDCkmDClRMk/Ebhs6hpsVr0E0eYTBdNZMMsmU0VJNACRhqg7HJuwzFqObqoqkKi6+QyGJ5ni1HUvxG+1dWrm3B9vNLam1NLGnpfrOjfCmKpSel9aX10q+V3x/vvCvG1mGBdKpKr7rfrUKWqNYlTZHSPyRRbHXrstyFbNGW6y05z8stGV5QZInnaYQdmSQLqwiyyoIqlogEWZaiKZZkkzjBUP+BPde9TBPJRoYkwjrYZzIfBgQjmHpCFwDMKpMgNhKqjgannDhEXwdYWD0OWC66oVOMIaiCbup0A7NBqkginAl+8FtRjhHiBYIhKcENaw+QRCUJzCD1pOpbFBbZeZolBBNliGSQiDuCyOq8XK5NtDbAFh5GcnYkmOSb2up0qqVeLLa52YzFSpux38rS0scn0+vTK+vFd/8AO4LTU2+GzPsAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"mm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_rainfall_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"mm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json index 664cb5fe86..c1f71772c7 100644 --- a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_snow_depth_chart_card", "name": "Simple snow depth chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_snow_depth_chart_card.png", "description": "Displays historical snow depth values as a simplified chart. Optionally may display the corresponding latest snow depth value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json index f12e8d75a9..65c761e5a8 100644 --- a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_snow_depth_chart_card_with_background", "name": "Simple snow depth chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_snow_depth_chart_card_with_background.png", "description": "Displays historical snow depth values as a simplified chart with background. Optionally may display the corresponding latest snow depth value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"cm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_snow_depth_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"cm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json index b28d7eb204..4380faf76a 100644 --- a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_soil_moisture_chart_card", "name": "Simple soil moisture chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_soil_moisture_chart_card.png", "description": "Displays historical soil moisture values as a simplified chart. Optionally may display the corresponding latest soil moisture value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json index f520d56552..37ce232609 100644 --- a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_soil_moisture_chart_card_with_background", "name": "Simple soil moisture chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_soil_moisture_chart_card_with_background.png", "description": "Displays historical soil moisture values as a simplified chart with background. Optionally may display the corresponding latest soil moisture value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_soil_moisture_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json index 4c60941cd7..64e239fb7b 100644 --- a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_solar_radiation_chart_card", "name": "Simple solar radiation chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_solar_radiation_chart_card.png", "description": "Displays historical solar radiation values as a simplified chart. Optionally may display the corresponding latest solar radiation value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json index ab0333040a..0b519945d9 100644 --- a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_solar_radiation_chart_card_with_background", "name": "Simple solar radiation chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEUAAACQTQyVUABvMQWZUgFvMATLfwCgVwTDcAOUTQFrLQHRiAevXAf////04MPy3sP57M714sP679D35sfs2sL25cTx3cPw3MP46Mnu2sL78tP46Mvu3MP568z67dB8wyL46sr89dX78dL148X++dn89NT999b56s3///rv18T36Mf78dC+awL++96yYgGqXwHv38T57s7///SmWwKjWAKoXAH35cWwXwK6aAG0ZQH++9v35MmsYQLUggW2ZgKvYgLDcQPRfwK7awL///Dz48Xx2Mb14cj//eHy28e3aAL//uzGdQGyZALAbwLx4cTKeQLz3ceMyTjp18OFPgLXiQ/OfAK2YgKtXQI7ODHgmSf//un//ubVhgegWAKdVAHotDelWAL468jhnCqrWwLptjvrvUDiny7ckSDUew7y28QhHxuLQgLTeQigUgLZihjPcwTS15r//ePquT3grQ7jpSogHhqcTwN/OgL578nioSjelSXajxkfHRnalwvXkQnlqS2iVQKZUQLboAfLbwSTSQLIaQTCYgL68snWgA/CWgmYRwPe0bHswEQuLCaaTAO5ZALjozHmrTDdnhHSdgSRRAL79Mrl1MLrzSmMhnbnsTPnrjPjshrepgmWTgLYx63mvB/GYwjNhAeqWALtxEjhpxfo1ri+sprg07huZ1vXgxVkKwR6NwLDu6Ss1WWYzEnlpzQhIR6+VAqrTATOeQKJf27dlx9fKAP038VVUEWhSAPoxCPTiwdqLgODxSzitQ6TjXvmrTe0TwdiXFDz5TLHfAdxMgPe56mozl9/eGghISGsrKLw89Tq3r+nnIeiloJ1c2jvyU3v2S7jrSEhISDkvBdcJgXZ3KKg0Fau2XBYV0/j4syyrJaXl5BIRDvj4+HGxrfe7rTL4I+30XLovSm3VgPn4bOqpY/j49fr6brB2IDB45Wnn4rH1Yj470Xx8fDLy8jp88ewo473++/w9eTd2L7O6adKSUK7cxvcu5LVrHr2+NPL0pD8+2nBnHv9+lmIXlQDAAAADXRSTlMA9iDvryAgv7+/v7CvW+81JQAAGw5JREFUeNrs1LFu4kAUhWESRVrtuyAosAWWYgjuVtiisRUhmRAh1nQUURpsKUCXYgtc2hLVVqkoIqpteIQ80p57Z4Zhin2CnT8pEyWfzlwaNpvNZrPZbDabzWaz2Ww2m81ms9ls/1233292u6enqdNx3fZjd9BqeV6/1+sFQbPZjKIHNBqNxuMkSYbI9/33948VtaTyfMLNJ/M194o2m01Zn8/n2Wy24GZcVVV1WZdludm8IvxwlmVzhN/P83yZL5fFCsVxnKapj/AHk+TzczweIfwnUYR/Kgh+oH4Ytgb37Xan40zvbuG4OewAmTqAwNFthV5fOxgCBmKHT46PGH+sEArFMBRglHVdXRgvWgNLeZFklKLk1BIUgpiSZKwkkZD0eoB4HiD3bdd1nOnzbePucIBj60gI9ugDwo4IyT14ELVHHJuOOaUdzCCHMLyowJGrsASWPVKWCTIlgLCER7mi0CQBIH0vJEjbxSbOtwY7aJBn9xEOhsg9TMeQgiONASkKw5GtOZOhDD9FkoJAwQuDZc8Zo7CkWAnIPyQRb6IkAtIRkC0cHZcflj4QchgPiweRjoIcpGBGxgjFgAIthOEXvvAtAoUsFVPKI7qMIiV6k5TyzecFiNqkhzPxIOFJ8J4aPMh2CgdfOjsU5MF8WP5QOhhymUNMsZenUVXiNlgBgk5QxK3wJkeOJJoCC01SqDNJwaAYoiUBS2iSAU+iIPSw3HaXL8QcZKQhCBB2YI9Tfs0QCjg0QyJ+y6RFj1KfkUHZZ/t5RpKCJX94FPW4lIQhahOGkARPS14IPntxIWHosQMQ89KRcKTiYZ1OJ3kdao1jjWiOhWJoxdeXwshj4VHOnJCwZY2wSn4iydvb1esCZCjPREv0JJBoCH9kwXE5dc0wHfFfyuoeJ4EoiuI4K+B7+JBhEhxxCmMIiVDoLMMWK9fhBmjYBLULsGFXQOe5d+6dw8vLxPgvtdCf513RAxEIGPjp1WWchBGuoYTbSPkEBVWSk49y+D7o68JfSSTvXz+cxC/e7p0Shawcoo7z5ThEUylNx2g0GnVQ2+r1ejkaSJPJrKoout56nfW1e3SnLdECLSX9Cr7VR5nXRYU10yaTAdpukyTJe1Lb60j4pfCrpeh4PdeTbFqVA5DzfqiOf0EKdOMgxBkLzSwOkQiJJQ7JAaGEEJNMp3tI5EoIwalf1cFBEBxS6HhTCAeZOyQzB+dQBqs3CSCg0KIOJBJbpHkSUC7+qbhqfdjLKo8RZBRDJB8kdKwzPqwbxqNllIbHhbgIIXlikMZJjgJRiS+yWg0DSNoAMQdfVtdyxlPlgMIYzEahhBBKAkiTZCwQlci5lwqBY4cT2ZRD69YRn0iSi4OQuTOygLF0xYPlEh+Fd0IJFxlICSLE4iSpBAgmqSA7QP5eBAxCRGKOCpKt3UGGG5iNEl48IZQAwkkazz2GvAQQcxASvKxku60nKQAJ/u/aHGS81hmFkr4WQ7gIJ0EOEYo6bBL7dI8glMAx5iBchBBIMIg6OAcZoniucwwokKBaQsgckkaIFS1ikLKGlDEkXEQhv4TXsWviUBwH8L9AOClW2qOQtjZIS7mrcB26Kgj+BQ/l4OZsDtnyH8jbM2XrS4YMb8jgFnAyUZMhUzToZgehIifO93vvXvq0In2DLiJ8/P6+7xfhmwVE4Y6rkw6uaMrDMXuSm4eHIwhIlO8KfPm9hEjJUUdEInyT5JAfhxDLB7EV7TnI0IksgHBHT58ARBGBMIdrmma05e0QjBmdTp1tt8NPt9ttNp3F45GEU56EQ0AUWfZjyOFoXQAESiIg4OAQKbGQYZfLkTE4zyEbo+8h9Mogzx8Q4WD9MDVngPAWGNwBaQBklE7b4qCsM0rdJoRyMF3HEgVOnsizkBy3XS4SmchvlsivA4iNDMMrl+E1ziGDfrFo6ZPbEpkQDlEUdzW7+mav7NVPDrm8bODhteouCcQxmrkZQMK/rdYidFv1kDqLdjjtNqczMq6oxHKXWyYRmTwJiYTc70OOJHK1i0QE5M8nSGQYxqBsIXizBcTDURFOycF9POSQIXZQ/5urYWRDPxjkDg9VH8cofWzucErp2xtd1E34WFxPKcpaNGy7dIfQuILQDuGGnK4nkIhIJAQcpxKRkAvxKC8T2b+1+oaByt6GACQSkFfHQI5VJLr7THTCIKZ7tdLGrrZik3Vjastlireq71YInS7oth0CJFnUsnUtS2q1JKvVadhCcXeEvQqK1Ya2FJGchnw1WqLspyGR5202Bjr3PI983L5WBB3x9FLpTJ+wjljQCc12NZtdWABJdxpRK70YITr1KUxTApB1de0gHFSrSQaYECJqd+L0Bfmqqi15T4REzJaEMIl0nI5EJpIv9k+PKHbs71++HmEd8X2AvHLIGA/Hqw/IpandNXCswm89WtBpRusAmc+D9XuQvYcACbJqFSBJ2Go76SPyKwDhjefDJSORkOOOiCMjOYTkt28OEQ+/hGxskOSQPrKKkb4hunfm6b0es8yuhjnkBiDX177mKtRr+jBaEIAZMMg6WLzHQaGATcCE1TStv9GwCZAKQMQtvB/JIeT5i0gEBCQA4X9zP0N40+O9RKyBoevD25Kn69j/X3ZdG3AIczCIeo/SF5/SFCqeJcmAQwpmEOyCeSEO4gJA5ihJ4nYH+S8AUeFZWBReRqKwIyByk5zc7QABCYeAg+11BpGOsmPAIft7/R9ldozaRhSEAdgXSBELWYaoCigssbMmCkGuJNAWArG1JaQmsJVLFTqFCbrBFgHFPoAL12ljcoCAdQRByAXyv/n3aXaZPFY7jUrz8c/sm/e8zbfuPNzebVut9+f4a8/Psi6eCoQHIU7zn78X06Tf3++iV6z9Xn528hNFu79JMl1OPvA80bULFPaWc5jeCuyN3U53XDzUjQrI1Wigu2+nc+8gX39VNy1uKC1XDsL1BJALgcCBc3CyEkcEhilKon5/unASPeIVUj8kSumgABlLb6XpiXtiRCKD+OCQDf4+z/3GqJI2ShyyoHhIAwcKkqQiQSSl5iKkrrd0T8HzFiWEZHhjBIOlC3xJooEQIg5ApLN6B8jSOAKSlTSXzrvpLYWYOwkoB8il7y2BXM1GcQyHgahDINwZNRCMCC8hmBA6FkmijgBEJNVIdE/RSARCSSARQsaApDEg+PiiseJUHWd0WAgchJzLDg8HIRIIG8s4bHFMVhONhFd4f5TY3nodkhCC3orTk+IVPr7xjABE8mirA4kIBA4HYSB01FU5EkIosRAGYh+FVHIpveVm5BMhNwqhoxbCWW8YCKuIhJCehWhvOQckpCiEtxIPuRbIl8/ZzAWyke+VdxgIHLazOCJNA9FI2FvFWwSvilwcFYISSCCRMzxSO0iMRLJs4CFgmECqibQU4hxliAmkdkrQW7UQOigxEEjkMXs4BASBOMiGkFAgTCQ8IvxkTdVRH8liqRBUGfIGEjg0kSDEJTKW1iIEgWy64ri9tRBKCEEFITaQ+t4yicjFvXpvdw4nUQjLQOAARBxMhJLwmxb/meAhvV6TEWFVIZBYSHlGUHAEIMWwZw0htrVwrjvIqhEkkiH5L8S8pNBxNKTD1gpD2gZSOQ6PnHU6qpC3BmKG/ShIrIlQUgvxb4yE9BSijvohEci7EuTwSmeH3Y6IQmRrBGTGRK6Nw7SWPUYsJGoG4dFOByH+tbHFOhISEzIgRI8Rrep5aL9ap4Rw2JtD9GSHw3y0to9P85eHXCF0mNYiJCOEn18TiTlHuPwiEUIuFNJ42CcBiE8kn69fHp7W68dgIIQMBfLNt1ZXEwmsKAbykYnIyQ7IogEER/uSEH60/GO2dwByN59/R2PlP9Z/ArOO4tKYpiMm4iD/KLd/16aiKA7g/gPW2kRMNXrUKorFGEWtWsGhQaFI4U4+FEFw8oEQh4hDhu7h7U4dhDQZkjcJfcujkCENWDs2gRJICpE2dggtXXTxe+7N7e3zpZVc0Ne0te3Hc879XVPswdQKD4hqoatX7OfMFGW4AREju6l16QhCipmcmjR6DiDh1DKz30eJBEPecUT+N9dCGwhBbiEiw+aWqXV2hEpEHSxYxYiqdOxtHjVnBORhH/KVIQmGoB0zIqqQMOSmlGiIrvarQ0JmVa0biDnrUQFZzGz0O9+8UxsMQUTULF5DphTESI6H3AxBDg2JQ0zjNUQ70Mz8hDcC9frQcwIOE5HDkLdcJE8h0Y4jl7rsMBBV7YBMcpEMFZIbJiCXQ5mF/TKVWZ53sGJfyy4eBZEOLNkB+YqRJMEQLTmy/9UOQKQEEEgmJzm3wmPi8AFhRwHdbTMHx2qmdrBjms9+GxlUImg6IE9OvJUhgWT8uJAoBwQx1eDQIQFkuCphhw4IIHAYSMFyvixbTi4SWc4smp0HzzptGPgTgCAgiamngHxF/zslIQPrXUPgkD++7FRMRKRkmI4LDtll6b43uVAqHOyg/MrkLsVyjlWrZIoPDGQ5WxoYkDggss8CZB572HKxC0RAcuDo9B2d9SoHARKTWQqi936PXO7u7QYcOrEY8tOxbbtYUI5LlseVnvMyzre8ziyTW9IRhMgtlMTU1EtAcAuQcyuqIdzSZT+tKGlXAJI6s+4SkWiPSkqbqMoQlxo8kmwTbcl6r1MP611IApTvAv9yTzuCa6oNu7lRWnOa6uuWMj+C51Va4ll5IzHb8eNxhiQAeXJifl7dy8QmtqbkN/mHTiMo8BAJOCY6PvmuwHvld9wi2gYED8H9b51cGZIeCbXZGJQI6naprhnsMBP4ppVEiWzYG3KxXrG0I2Ic3BazlQUo1uQk0gQkPs4TLWTWk9uAYNNUQTQFCgVJ4+EDkpo4UyfRmYi45GMAwfcUVMaTP74FCF5dY0mb2re0xFD2Gt2TJ30KOB6rrvdc0l7jbd9Rp8KQXKYWCweE28i3rFUpOjjIrGSzyxqibgcl0PneBkSGJADxV9JpBRGb6RUSSCwOQSqVwrvXz3OhlEmgTMqAtMeufMbf8s6fS73Ht3rfb8329lu7N27stvZ7fUyXGlBwWhkHAjK5YZdkn/XFXr5wYbXp5GIsYce/RwoLxabl8YkNzpyKCyqx0NiBiNzHXZR5dWYFiKbkx8cZokoeEAjW8XpuZGSVaCfCNx5QFanYeZdcKl8cwwdbDGmRi4IX1KgDKHpdHw93Vzrw7Ifj1WHHZM1W29ernm01HQcVcjMUkND0BNFZkPFAe4RS56u/7+R9LZlcUSNRENV9HUDWufiJNidwDTBWxetIB59EYnR0m/xrlwEpUxsVL4h8pgiqN/B2FwDEYxcKhAPjB9e5dox5nj5P+FWp1HLcs0sHWshhut4Fq6khCEj/TuMneX0ZIYnqZiC8RFGQHaLOWUgASckbWz5tT++QG/Npa9Sl+jWWCNl3CRK/n79uEDVwVIJu4O7dBrn7+/t7Myochx1Ju6bPRcwOYygg4dlJocAObv2AKMgbeRE7apqC8OdJyNzcHCA5jg8gI0spTK1dWplYoU2Uf/s6UDyQVOHBA5WPkbGFdJudnWmQmJkh2VrM0FvwyjFWskt3gmduSnJsQEylo8lKB0Te+30zDwlDTNOQuIIkGQIVQ04tjSwtLW2SmBC0Pr1NK0iz6hVIyqrkAcEyiyGvX70CZHb2u2y/wTDhgENeYUlqR/DwMAwxZ1XM0I7oC3S9fBEbEEg+cHKFIVICSDIZTwPCAWIItyXuv8ifnq6SwJujF7Fz6gv+j2YIhsYqIM+ffwREX3SSN7aMY4yb1wQjADGpZSCDAhKPS0eUAwLIW/zaBUM4uUIQpJiKSDIeR7H/wcs80c779/zVVonqVH82Pe3j6V6HpE1leSkDEFQKQ/CTl0moa2esUAyVVhJSsGshSITbMZllxkI4AGEHIPf6vwiD5Ir+5eNOXpsIwzCAx3/AKiYaSSTickgUjWipMooLY1BKx7ZRclFJyEFrDBUiSS4psY2IFgoGt0OjRoxbUFBR0daCtupZcbkrBT30rOKCz/steTtOyEOttaEwP595ZyaTL/UjNggk/rCAuGvPA5/xT+qhr48o3T0BoCKRyJsAWvJB8inwWmwiILiEpP0NexggIADRdPXcrSM3tYMWATKEHQyxX/aCISBbO6SDIBU5Jn5/OBwmCkNgsyTEjXP6sLuGI1KfTPfdAFCAfKOLANzo+hrooT4EBDNPEOxhgKzQgcK+CPDSkUvsWMorfgFpcchiB0EwIeQApAQJKkkXwWAJQcjRZtKwQzJMF13482uRkmD8e548iUSmAbEMnw971jINwaQQBM+2AKHnXLbly3q1GRyKwasymyz5bVUIGlGQooRkD6bT4bCFkIQhYYsgppCIq99jizUEQ/KmO4L0BO4ZhuG7J666lgkIrusJgk0XEF4az8v/HA4HZH6rY690ILFYezs5DrhKpUqpks0KiGkqCSJ3LDOUSCRCpgmJuzY8TCfLoITs2tWNREQAmQ7cw8DL/+1VCEqhaANiW9+/bp5yLGGHlDT2rOUsaeZgCAopAnKuBMoIJBoCiaKgEE8ikc+DIiS97qB7cTCoHCwhyvTHaUDgYAllJXnwmd86AgYiHMxgh4QsdzoYYm8kuT4OSLqoICOAqH1LS3oBMRck8qdOncoLCb7jDgIS3LlzJ0skxcCU4OYQQbREv/tCGxB+eg6HYmiHbdabvCStLNrBEJqQdDrtKulGcNTSAUU1QpDz5yFZYIlvgUESBA5ktkTcHLJLOMwQeXkJDAQKjnQgywnCDMRWiK2RdlFI+qBrbEf2zBlqxN8IIEpieQgiJFQJQ1iiKQbOJUTgoB9G2BfCKwVig/gMgxxG4wVpZthPhyxJXlsfJwcg1WoxO5Jtj8ttx+4DBUnUsANCEjUmQSVhymwIKnGGF8EzgxW2PsihIbYBccyIXL0sIHFADmazrmhlc6FzzUCmStMs425Uw5B8wmP5MSBuhjgkS2Ql68RdIg4rpMM2GbY+fIYXDMOwO6SCJQggMgQpohFAXr2qTxXKmdGCdFy4cAESSVnUZnoYEjLb/GA074SnRG4sXu5lAJehGE4H2vB5DSiaQJjCGEBkrl3bQA5AxsfHo11jg4Up9CQgmoKDGAoRM6KmxFqESlpLKPS2EiWxMdjRtA18yFFnSBOFNdey2jDEDIkLyAnXnTvj4/XKpo0xMSGIktB+ZXpmQxaYbSxx7F1PhERv5Dw1+I46bA5vYzhI4uWjlsf5oqG+XahOdW4K/mLIY0he1eupuHhAtkJzgkLIAYjetxIecyEgLSXYNEysAQndFWaMZgjJUj790Wf8BJm8+uqX34PYcDDEJIgeZ2xyNdkRg2NkxPWYJKBEa2p81MDLQtCIkOCkKCrxQ8BxSEARkYcwetahLQyhZx6KgdBo0JRDwe+4QCBxQshhohB3r05ttDyY6UrPhqR++P0Lw9waFeLREoTGXU5JL0P+k4AiLWiGIDpEYQc/PZcU9WqeeCCB+0HeEAKJZ76zkPmAoBA5ysifDdVMZqK6HpAPkACSO/F9OBxuXKKIL02mMKRVJYim0LGYrrjU80FctUPSaEU7GAJHHknohELUiYJwAMH5rFdDLs/JpZKxqUIhTRBdyfqfNYskMhZCP6YkDOFCuBJA+gARERIscRaQlYiUAILQDXwh0RQoFCSvICxpDQHjxpx6vZ7LpToGdux2PQZETUkqvWZj11S1um8PvQN8W+fU6lgqGs1FK2u7xgqDnR3JZPrp0wcPHrxA7oucplylnDx5cmhoqL+//+jRw/h1I7fxy0YeHT/77svkzMzk25mZv79/4wt8XHx2/d3bycnJZ/jq4sVnX768e3ToEXIFD5T37y1fvz5QLg+OZjKjE+/fT2x/SOl/+HCoc2h/dd/Alr37x0YnJgpdyRI2LJery+TaxwpoRHeS+9fO2bUsDYZx3Igiqo8yPKmYQbO5szDxwDkJPBA8eWCJBzcYEffNw1wRO9hgz8CDLcaGJ3UWUtAWnjQ/gGKfQD9I/3v5QvgRun+4TXTC9fN/XZviizmpGvwrNr009SS12S4kGfsD0548dgMzCBzHOaocRS5Nrq6uSpN3UNnMfq13O175DJds/SubWz4E1usZ1lji2a/dt02cZdksnM834WY+n8OGhEsQcZF2ezxuTqc5Zb5FE/yyXmGRlb+0TZgc6ARGUvnN4SYr89MjOQ1QduCkkpQkhSoZrmnijZdtmqWPeWFyVoEITKBy8/oUClJ5hVg2u9n61xpK63g249WGZDnbZhlSiEsd3BlvsziOZ3EW+z6lfhRmW2pZ/T7jiUynzZypkipJqp631YZFoqT1HC9NHIcfeV3bTtsHEZisTDuwbYh0gh+eKhWJIbV6rok4TIAOKxVPJuDUW1zkbDK+uXnNQ4HK4Y9gvr3dxLtst92h1DAMd1jieBnHWWiROARlQnG4Jro+9xWF9fsk3nKWW2JZyXhMqSp5/GsN0sLv54S2Xmr1p1rRfFHTwFPZ6Fa+g78iGBvUiqd9ZNRaNTVRDW/glFHw9DhorgAiR5P9fn9I5MO/JkiFq8CllCl9MAf+N99H50QEnRPOfQwCjwe3hDHYhtFm4zeUECK+wtBYGBWKhZCckQVLal7RZYkSkch6wc+BzuRFMRjhtH7d8xZ65fZqtfoCMCToNdsZDpEED7EoJFWtD4+9WIqUJj+OJvuvgGuAUgRwkbMJ+Hzm45F3fZ1Spvd1nfFGmiMgBEMZ9TcMImxOdZ2iXsuKAAFLK2JJTqylpSY0qV9DA93jtgrNkF+M3FRhlfs/V6gQo+xep72qYbS0nucNU9mopoOhVqjak4AfHI5xQeSUyf4ggdVZ5RBJOSmcQ+1XR3D7zWug9BtYYz9Fpz4iIhYX8XFhJMoVxGIBWERkuYy3S7QY2SIm1u226xMUMXIDe9AsrntFU20kDyp3bpuG0Zt0zNQz5LpkaJorjzodx5AdM7AfFVqrOnw2wJw4LmzPzQX2eyi8V9vTDycuVcBZgnMDeP0fy2vj1x91XjxlfYCNz6IoJDklFsysEGYsZzwZi4MdcG7QJrYzSBL1hVZ73HnjSM1GcrdSufPwU+fNCqeRSco/ppZTpz7C02+XHRU8leue1mq2JFmWeykidV3nxyjdexgQpPB+Ou4m7feXJmV7gUsH8PdObLC9ajQYVXANj1l0lUUj7y8alBCLMMWnudqqGdWq1OzmOY6jGhpmiKlwbTd9/uh6FNgm2qVz697dikAgEAgEAoFAIBAIBAKBQCAQCAQCwf/GH72WNe3P//9sAAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_solar_radiation_chart_card_with_background.png", "description": "Displays historical solar radiation values as a simplified chart with background. Optionally may display the corresponding latest solar radiation value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEX////SgwPOewLNeAPPgAO0ZQHNfQK2ZwLThgTCcQK5aQHnszS+bgK8agHBbwHquzvIcwHUhgTRgALFdAHXjQXVigfmrjCzYgGkWQK+bAHmsTHKdQHKegLRfQHotTiuXgHquDvtw0HlrC/akgq4ZwLrvkCwYAHFbwPkqCvZjwfLdwLEcgLViATIeALgoh7swT/rvzvgnhvhoiXgmyPuxkPnrzThpCDclw7elyPpuTfemxjotTvjpSvvykbbkw68ZwKrYALhnybdmBWwYwG3ZAHwyk3nsTjXjAvUgwSqXQGnWgLipibPfQe/aAOtYgKnXQHBbALswEThoiyiVgKfUgK7bAHZjw6qWQLblROyZALdlh302VHotjTlqzTlqS6WTALy1U/krCv13VTemxHtw0fHcAPxzknhnyHjoyj//+nx0U3gmijfmh7HdgHIcQjTgAPuxkrUewzKdQiyYAL//+HQewOfVwLbkhr772Druj+aUgL34lf6613dkyLXiRCNQQLblQrEbAfhnSrkqybfnhScTgORRQLxzk7iqCLCaQW2YgGtXAHbjx7GYRL++IDZjhWIPwLRgQf///jjpTLDXA7y1EvKaBPBVgzTiQaEPQL99XLTdwXXigX+/Jf451vmryvdogrWhgnMbxT+//DVgwjZixr1207VfxHWgxXZnAfYhxnMbwX//9bhsA///8zgqBLJaQZnLAOVRgJeKATQcwP++4/GZAf772b88WT45lX02Et/OgL88WzszB7uxDrrvTbiny/CYQP+/aD230///8P661f++Yjy0Uj+/af341HeqQe8VAj+93ngohj+/rXu1SjktRvTfhmvXALQdhf+/q/oxCSoVQPy3SjmvB22UQZ6NwL99GzntSucSAPktg/szi3Qdg3jrhy7YgLVlAjAWwT+/rv05S7kvRTxzUPwyT/pui9xMQPKgwmkSwPpxBawTgXCdwmqTQPPjAvx2ze2WgL37j2vVAL88nj47S/rxS/1427364H69k38+mD47Jbx1llRHj+PAAA5NElEQVR42mTXXUuTcRgG8GZz2twmrtZeWDZHRi8ToSUsNmJrNbcVrmZGW20VREk2DMKkIA88qJPBEAk68EQwCj+FH63rvu7n/7zUZQ4V45m/Xff9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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"W/m²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_solar_radiation_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"W/m²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json index 6645b0e427..24014bd81a 100644 --- a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_temperature_chart_card", "name": "Simple temperature chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAe1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHHx8c8PDzj4+Px8fGQkJCsrKx0dHRaedXk6fhYWFgvLy8+Ys7I0vGCgoKsvOry9PuRpeN1j9yenp5KSkrV1dWfsedohNkwV8tmZma6urqDmt+RpuNMbtLW3fW6x+65ubn1i4vJAAAABXRSTlMA7yC/r1EOHTEAAATQSURBVHja7M9JAcAgDAAwytEX/vUOGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh979q7qOAxFYbhasPZFEkjgxnJhV3n/JxwfJwzKSQwDw3iUg34wEtuNvsJg0ID01oD01oD01oD01oD01oD01inEpohP6hSSkzYSD0cbuu0UorGGBpJSZUoRf5yo4crOIbcc0BZ4iOJmgJhE27eAy7EA+wCwRQQeo8Fn3twFMIHLsgESBW2XQbZ3ECtV1UHdl5qZIdTMBKwlc0YqXE3zSlkq6xIJBEVkqQgl64SmyyCpvoHkDJQABmzcMBPCBYG+0RAUSQ1LAGqC0PAbYjDGY9R0DcQLmV4hqjmXhONUgkjIcUgJJWclUgYwr1q+QQBhzpWCpmsgiXvyCllFxL5BFkqg7B2QSPH8BhJFxNF0DYRfpRfIpIb5GRKR1IUzZD4goZhperxffL1DvEzwgLZrIIV70wvEV1KfIcoyA4Esd4gpS81wZfSv7R2Cm5L/42OfSRbDa/48FJr5fe54ZP5Y7k8zbrsIgpgmw2ktBF10QP4iC53cSvz8v99Pa0B6a0B6a0B6a0B6a0B6a0D+cb7Ns/jHQ36xa25LjoJAAH3qAgFFvBITo1k35v//cMHWwR3NxBqtmVjleZjh9tAnDaSpCpfUEmdi3yIli31PCE9SxvcswtkQfxkzsWMRGXP3kva3EkmLMKyu6qPbmG6u3HxehTn06GuFs6vgNHOdKBabiKiQdNR9sH+xm7SA4ECD7Wvdz17XJYRyQDAlW4joxDhUlflL0iHs0HZr3YuSRKs7aYfJ+t6ZrzJhEhCXknUiGFuiAEyopOq9bGoqQk7QkdqY824wtwLGT5+c51LEWUYZx3ZAPRjh0fMGIkmfidQIAcDD5AMMrQkVOlorWHSLkg+7EFvL4YyyiOImEozBf0RsvYgmhIBFYaMxEQ6Cagg6ScgdXYexnJiR53g3xm4BIH3snrHJqPR4wGj5aTn9sz4jSmFsKYYWdjsLG4/etajrRtuTbrOFqKIovjrLsbyx8c3kU97/N1inzynhK0UcBZ7fEHcaGk2XNLCADHeQ70w4lYAILyhhQhkzvokIHhH1QmTZwcCoUUgAwhh/WbHI0mpKRulF8uUiqkN/dPGy2kTkTPs4BM2GkWBRDWkkYun7t5hKvlSEdIQjjwY2ErlE0JPhverFtyWJDDLpe9j0mVH5hoi+E1LAS5FikUjpPn4R0cj3I1fgLgRVskUiaUeLncpdptXk1nI0VhfRSqmnR30UdnChlPkCHMtVzq9FpgEmenx5We6YmjG5WefuhhrmYRFsjxN5XaQgV0KK4YsS5Ry6Rjn0rWAWz+2sHxZxHr1ArVAonE2dGsqA/NlLQ8AKVhWNpDghDzwbySO1o/lspZyc8rypJ5pzNfnPioTEUeBNjJxggpskoZ73GD9cf1cEVPHFy0mdkk5jflZk9PIDv0VZTtsqeIpKWw2zeIxmAhy/L/ItRDYpa3cpMpeOPYr4c+nYo8htLh17FJnhEDlE9sIh8m4cIu/GIfJuHCLvxiHyr507NwIghIEgKJ6TdfnHSxA4ArozWH9rqjGkmoz2XSFjFDm37/nnPRGk6DNP10YPAAAAAACA1yz9maqJM0bCeAAAAABJRU5ErkJggg==", + "image": "/api/images/system/simple_temperature_chart_card.png", "description": "Displays historical temperature values as a simplified chart. Optionally may display the corresponding latest temperature value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json index 9c8d069c8e..6925c82ac7 100644 --- a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_temperature_chart_card_with_background", "name": "Simple temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_temperature_chart_card_with_background.png", "description": "Displays historical temperature values as a simplified chart with background. Optionally may display the corresponding latest temperature value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card.json b/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card.json index 2f8c155768..b931baf045 100644 --- a/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_uv_index_chart_card", "name": "Simple UV Index chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAXVBMVEUAAADg4ODf39/g4ODg4OD////g4OAhISHj4+PHx8c8PDysrKzx8fFYWFh0dHSQkJAvLy+Awyzf8MrV1dW6urqCgoJKSkqdnZ2enp5mZmbv7++43Yj3+/KIxzmg0mFA+mXkAAAABXRSTlMA7yC/r1EOHTEAAAOxSURBVHja7dztVtpAEIBhQIeZ2dkvyRdo2/u/zG6wNJSQhlAbNzjvOUKC/PBxd5McQVaapmmapmmapmmapmmapmmapmlfrs3Terv0njfJsX6FxWfXm9WzhQfo9Wm1hYdo/SiQrUIySyG5pZDcUkhuKSS3FJJbXwDSFLCkhiFO4Kxyn25EbOB0XwRKt5RuuwgZ5m4cUgYAIaCDhV9509ocRHfaAUbOHkK1tcwgHi4hISab8SdISSzUbsuRxVIClOlLZlKNTy0yiB2jgzBKKzhBjKlNolXo6rQX0CWjYCFIMNZMkBpT+z4EnG+3f0M8EAqlZxbIdEQSOGcqGGsOSIkOsM0XGC8hIVrjO0gAQGEskocZ6+PAEEYL480wImTfR0TS1iXEYkC6gBTvkCKRmC0Izrbwx6dWYRCd7fblOG2k1WANFxAbK2iQ2zsbgExI4rHmgdDBUskgoXuoQsQKUg3KJQQkqZGP+nYJWYp7GGsWiPj380h9NiaWLAxm6feknL/xM/uSGoYEhiX1Ba5+F5ZCckshuaWQ3MoBYqmwy4dQMJgynpYNCRFdI9IcEMOSIR69hWOUNpcLqc6HIaBfKkRax7lkv0wIGQN/5CItEuKRLmTRLRFCWF2ZawuEGGOvrH5eHCSgQC+bdAuDUPRwJcZqYRAfaeDUUuYL4X0IJcF5zeCydpE+C2JZuBj+boh4zMn54ckNzzn3ORBx+LfLVzbo2tEoGoOnp9gKawtDNbj/BAjV6JqSWA5o5BoTDXfHKTzsuRQfsbIw3AGL2SEUI3ek/rQv4vmvnrzBVKwYuiYdg6dDdm/fdzddLVG357HsOQxdricmGIv718GFiPBkyLe3Hy8vL7vJV0t1tH3nPYU/5h61k7Et+nIaJClughCG/tns3x2t5LTibFmZViBERelNa5kA+f62290C8Zc/aIUy3TF0sIvO+xrTXVN0D3eWm6YWwC0Q7q/uswXPJhL8Q1w5Yw6BLXT1LCMQuA3iDPSq0OyLdlo7NAQfXmexHwcRFOhXOjwWg4X/GH3giBgDV6MyhHzewjEOEczqRca7IWQM5NS9EDKRIKfuhEiMmb3B7h6IDQZdXuNxD8SGiC6/1+CnQviAOTJ6kJHYYQx5/pfcBIgNJlvGFEiT5dK4A3LImdFCPv/FUIUoJOcUklsKyS2F5JZCckshuaWQ3Nqu1vAQbVdPD/DRQQD2ebVZ5/r3hAm9rtuPc3reLr3102alaZqmaZqmaZqmaZqmaZqmaZr21foJlfySPp88UEgAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_uv_index_chart_card.png", "description": "Displays historical UV index values as a simplified chart. Optionally may display the corresponding latest UV index value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card_with_background.json index 966b0c5463..9592eb96d9 100644 --- a/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_uv_index_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_uv_index_chart_card_with_background", "name": "Simple UV Index chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC8VBMVEUAAACgl2Tx0o7vz4+pm2bx0o+1pWekmmWbkmLs0JD10oz/9Nr/9d7/8tP/8s//8tH/+OH/89f/9Nz/8sz/8tX/9tr/+ef/9Nf/9NP/9NH/+eT/9eH/99798dP/9tb/9tz/9NX/8sP/88j/9M7+9OD/+uv/88X/8cn///8gHxv/++7/88r+9N7/+/H//PT//vr+8c3//ffy6tX98NH57c/98MP/yFH878/+9eL169Tn2sP679Pd18v47tX37dL+1H/k2snh2sz27df/9Mz8x1L779H00or88NXk2sT16c3/2H/7x1X47Mv77szr3sP3wk3/1ob/3oTw48X/2nr4w0/404r/3IHGql7MrV7w6df67cP7xE/t0Y/604SyoGL/237bslDo3MbHwa761Ib70nvz7Njv4MP/1Xz+0XH/zFz8yVve1cXh18T36sP5y2Px69ju6dj204v/4In/14Lz0H7AqGK7o168qGfCplzz5sT/1nf16Mn5zWz+0Gr/ylXw59H/4Y7+1IKun2bz0o3r4Mf71Yn91IX/zmTgt1T3z3GzomasnGP/7br/13n/5Zn90njIqVnKqFHx5sv+6rL/45PEpVXUrlHw5Mn20oT/2He/o1nOrFY8OjB8wyK4pWewnF7HpEv+6ay2n13Pqk8vLSb/6KT+5p/v0Y/GrWbRsF/679X3z3bjtUjr4crm3cqspZX10IDovFJYVU3y0YW3omHWslr00Xu+oFLPqEY9OzXNtniQiXTrwlvZvHPxzmqmmWKcloXyz3h0cGXYrkfk2bn61Y2onGaspIpzbl23nFXFtH7QtGzbt1xLSUCPin3oxG2BfGzj2bJZVUb88tuql1vsvkbVzry/sH332Hne5qe5s6THvqLlu1lmYlnxyUfe5af33Y7AnEL346j43Zb224ntx2X424HvyV70zlXx5bs2NDCuqJvHvZm5sJUqKCVBMwitjT/VzKri2bymhjmZeTPWzLChnZSWi1ql0lm+23y12HE//selAAAAC3RSTlMA/e8gIL+3v7CvrwEsfwEAABdKSURBVHja7NS9btpQGMZxBMrQ8mFUih05leIFUaEmgcESG5sHJlBkpiIGhsw2GxMoMpPtDjDAyAC9ktxXn/ccvz5poVeQ81eUjOGn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", + "image": "/api/images/system/simple_uv_index_chart_card_with_background.png", "description": "Displays historical UV index values as a simplified chart with background. Optionally may display the corresponding latest UV index value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"UV Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"light_mode\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":null,\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_uv_index_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"UV Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"light_mode\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":null,\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json index e19ff918be..2043bfde29 100644 --- a/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_value_and_chart_card", "name": "Simple Value and chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAflBMVEUAAADg4ODg4ODf39/////g4OAhISHj4+M/Ut09PT2srKx0dHSQkJDn6fvHx8fx8fEvLy9XaOHP1PdYWFi3vvKenp7z9P3V1dW6urqCgoKHk+pvfeVLXd/b3/lmZmaTnuyrs/DDyfWfqO5jc+Orq6tLS0ufqe5LXN97iOhKSkrA29V9AAAABHRSTlMA77cggcfpsAAABRRJREFUeNrsz0EBACEIADBBedu/7RlDua3BBgAAAAAAwO/MjHpdzvOIvZ63Y45s8DiTHLVaiC6RErmMyG0+9stdRXIYiKLJ5RZ6IBUIITlx1A7m/39wq3A3y/ZqN5jA0/M4ILnqWhYc5MD+EXk1vqZIlTv4fPwhUnin4B1IHLie9YnEGFVtEryDwozLWYs4IZxOPUcAJVoxIT0LIFGmpY5dzyB2oOQ8feY+MWIFZrQxRxZPu2DNJSKiVB5AYgjkzkAdiAyqbEA9LAjiAQOyr8nYlNqsKUAj4EsLEpWeLLhCxGdBZkeyIeSwZkPkXtFYsHmqzUWK1JBgaT1frd8i3KRGi0QDVlwiMthEBpOJyBmJNZERmGZ0qIgcegZAHaVRnkV8n51FxPdYcYVIIZ22EPGCJ3eRrhp0LdLofKDIYBJnIVK4QYM4jyAB6V8nMsTAkitEoCpArM8iGyyZNm5AGadIZAbaQ6RbVMNDJPsTMrHiGpEbQwuczyJsB70JXmynSLVGlQOVemDQu4dIfbOF+oYL+Eukdziy7VsBZq5nVPNEZN92DyB9Tzdg5OGNhV7htifL7M7Mj3086xX/5fqPRj+Al+VbipRU8LJ8zf+Rz8wv9ukYBWIYBqJoO40KCePCjhBJYe/9T7ikCCHJBTTg32m6B/aCZGtBsrUg2VqQbOWD+L5bpYdIbDjrhRsS2KK426HoQgxpiOtRlalCCwkc9yGqlRRip+POEaSQrs97QCghjvIc6vxRQtrnTwwYIUTQ3lOdnRDSIJ9twOggf3bNqElVEAzDNwx+CpggUimW5s457f//g0eWU5gszTi7hRc+F/lmTuMz34eQZgvil2T1IkJeeuZfovySrFuk02ComZv+bEH8kqxBhAnRBsZD0zPVnrnubx6afW8MIraIumgY4Z0KL0UYh7odNxd9M/LgTWQRxqHphJBX8BZ/0i1F1BkMT5a6EkRUEca5sElwzuYfTd/1l0vXojADVzFFrq7n2d/GmzAW0MIwNVFCyp69TUSA9K+hrrEWIV1zKtFoMAzyTSI1D11DGR/QQgSHq2wZ688a9LlnTHQD8At7tYg/TXfQuZbXbPnX/eFg0LW4y9VuFgqIHI6E5jbuMpcNFcmQJafkmCVPuqFFU5pbO6nGOi2m7aUU6sHOqIigSJJiQ7lzmZhsOOJPTExISvwFRQGGWfuoGngnTG/o7jfvuHCoAyK7FBc0I+YcjUda2WwdcYUo3lnBE6XjaxX+iTRDDjCiG4Z+FdkFRDL7d4sSF4/ZsMc5ys2u0S23z9CLXXBF7sGEbBV6Db7ICX+aTYWxyaXJdMyWNCVpOm4LTOxoskI+vEZvxm+tJLGjIb1nMmZLQlIy7soxPtiDKd3/YFXxShE34sk8OzJbiDCcowh4IrYIySx74yhMBxK9k7AItb3j8iIRAVcUASPie9CH7Ivsn9WDMxQBX+Rjcu6Vy47DvUh5Pi+NaKBRKAK+yB7j4+SUKfLY3Y7I522nzsB7FANfZF9gMsseJS7shXk2WKSGc5xy+CKJWXdkhvwrZ//zA0mB0yrPysd6tQ00LYqFv0S5QRCd5Ef2qd1/nN5qAN2hWPgiObnxgQ6TPCP5OJWn46RQPf95V63hqa6EQaCFrFKESRSdtdzE3kQ2kbWyiayNTWRtbCJrYxNZG//auQMaAEAYiIFZwvxbZjLgd+egBirkNUEhdSJ0znInZoI0W6r+Xc2WCgAAAAAAYJsLnGVmvd/WiIIAAAAASUVORK5CYII=", + "image": "/api/images/system/simple_value_and_chart_card.png", "description": "Displays a single entity historical telemetry values as a simplified chart. Optionally may display the corresponding latest telemetry value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json index 7309e1b1a9..65fbbb0895 100644 --- a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_vibration_chart_card", "name": "Simple vibration chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAh1BMVEUAAADf39/g4ODf39/f39/g4OD////k5OTYGDjg4OAhISH1xc3j4+OQkJD64uY8PDzdNVFYWFisrKx0dHTiUmr98fPy8vLaJkXnboLsi5vHx8cvLy+enp7V1dXwqLSCgoL409rkYHbzt8HpfY9KSkpmZma6urq5ubni4uLumqjtmqjfQ13gRF1p+9dsAAAABnRSTlMAIL9AEN/GQiaNAAAE7UlEQVR42uzPQQ3AIBAAsBswFgyg4fwrXOZgTyCtgwYAAAAAAMB/7dpci08t+Wwu7xpx5ezbm1mjHPDofZYY/QhDZDEiqxF52a133YZhGArD2xkIEgQlgIMu0BLb7/+GtRu3zdAARQeDafVPkjh94KJoTUi0JiRaExKtCYnWLyDOCNgTCOcjebgXAGvmkSGEbyo3x2X9HDJM9mrHR9UAmGJr30AKMXoOCOH1vgxNK86kOpwGtgShIgkorTR4kxWcaXAXB9oxcOEmjMt6DimbnhBR7ucbFSRiZIOQLSSQWjNXy9TYaOnH0DSrgalmVVzWcwilL4hk3LOMxXCHAFLfd8QJsAWF+FAW6uhU+DT/qOshUp3SJyQRiwIQVbIPSCIAJMEhToP4AeKi7x7YA8QBanEgXL4g7jgzMpyQxnrDAWm1FzV0Wj0Rex28a+NA4P2ErB2fJU0AxoJ2W0gZzQA30sXgStumjE2pbmAt+ykEBBi3vFc7XqYnEJajhNfpP38aYzYh0ZqQaE1ItCYkWhMSrQmJ1oRcGa/F/wCEjfbk9SFapZdM49Uhb+yabZOiMAyAv2UyLZairQVB3sS7Uff//77bNJbDWbrj7I53cufzAZTYnTybBBh0Lda0a0SycJFsAGIrqoWLlBvep8dli+yps4imXLbID7EPs7JfpkhVimPChQhDskiRtdisSnoamwGEIVmkSJYCVCIteUR4SL4poiyMWAWPZJelAyeeiIbKkh13kxrtvyBiz0b6feEQdQGe3iC6XE0c9RX4jIu28Bt7cPjWRwY73QyiimQdHZK4iKWM0YsYRO0QD/S6RnQacZKWxCvwCRJzmJCjKZyz8+20fd+U/HIunFCRxLC+V8QhITn3E8CB32jsLLQOCwj06KQHPiHHHiZ0BqDD2RXcTmLHnfWBfZkeB5E1g1jdKYLm3HPuHV6oQj75HrEFstIQOFP4Ftv6HJVs4YrTIWCBUU7b2WvfT+qgNK2qtExmf8YwZFSNlWjubC0AGYpw8F2OHUCB7tpgnIWXMrf/++5EI1Urak2tgKh9Z9kO3zGKJ8v10Wsf37YPe4hDJps7hz2IIBac4YU2+hpRY5ugKTpzVqMI4sXQJDmj0UuGNnpDl3faz1frdAtzNOKuX7uwyfaLIpo3Y4Qx6AmJ5T5UczE6LqBCPS6SNHHSuVpKNTfrGXyN74t0zvSyQNRBhIpgeVHNlat9c7a8iARYvoCPlM1fE2EKPhJE4EbEcCNSp50lkJMk1Mwoi+oPiJipSAs3KMQ6JqLwwp/JfQ/2EGcndg8TCWctg2Y8a/WIFiZw5jGRM9ZBt891KF1k1rePE+k4NYeHkNl4HWEnxQPQx0Q0d5asJbk4ikRI0gweJ3L2u5PfWq+jNOYUL5Q/kntbVBERyUeomvz5uMhQJg8UsTSkb0j5eh9tHKeE2I1HKPGISE6dxX9H5wdNayOsRAUPFAHV4TsHC0ThENG0nBjfR2pEdCeIiegwT8ogr41QiRU8RASUCilIOQ63Hc+bNqTUyvZ3WKmwlN9Mb3wVrY2RlMNTP/ttawX3kKRp8tQi97IR+3/jaXxT/R9fK7xElshL5Nl4iTwbL5Fn4yXybLxEno1f7dwxDQAgEATBwIcC/4ZBAuVzmXGwBlZIN0K62TnLncqYII27pVr/b6lmJY3CAAAAAAAAnhww9gaQpe5WwgAAAABJRU5ErkJggg==", + "image": "/api/images/system/simple_vibration_chart_card.png", "description": "Displays historical vibration values as a simplified chart. Optionally may display the corresponding latest vibration value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json index 21cf352901..5b6226c406 100644 --- a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_vibration_chart_card_with_background", "name": "Simple vibration chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_vibration_chart_card_with_background.png", "description": "Displays historical vibration values as a simplified chart with background. Optionally may display the corresponding latest vibration value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAAAflBMVEXe5e/d5O7Z4Ori5/DU2uTc4+3b4uzg5vDX3ujV3Obj6PDc4ujW2+Pl6fLf5evh5e7h5u3V2eLe4+nf4+zb4OrZ3ubb4Obg5ezY3OXj5+7v8vfx8/nq7vTn6/H29/z3+f309vvz9frl6vDs7/Xt8fbo7fPk6vTn6/T5+/7i6PLvsfbCAAAtr0lEQVR42myZiZqqOBCFVUa7b2ghE5YYFlu2b97/DefUEiPMHBWifb+2+Tl1quCe/k76ebii1bV+8pPfTQM98CT9eTRhCXnLavCA8qErHJSLim4tSI5U2H7x/NaHabCqobcenwxLQQqDLUSmyFUOK9X7F9ckfDVWUU3Tsur68v3dNHV9Y12aP3++/3x/46+9Xa/X20VFy9sVOp+xiYtTZozJvs5AkQQUzc+OBVDcGxGT+NM0dp3zvFUaBCMfe+tY8pdvk1UU2PjhpQfqlylYFqjMtJtX/pE9onAgcUShLOibI5WqxrfX/GhBRUlcLrfL9+PxDRB4CBslcRMSt9tZKZwZyVdmsiwrjyj8HsUPo3goCpAA52LZcpJwoJMU+llJOHqE11iwHG3CNHp5O782RWHXhfahM4Ii7FEwROVQ1zsUaeWqik2hMC6X77a61tEURAJqbzh0/GMlccWGdAUBvARFBRQmK0/nfYEUtjkUSHsf22iL5kEo3DLkwkKFkhhiQbC3Y0043i69nnS7whaiUVbLwJ9vc6Gwipx4fqJw+wKhHS3AoYYpGETNG5iiUgs8fkCBPIEDhwciCTKEksCDNoIiM4zitHMFo/iB9D0W7RxRPICC1A6LUxQqty6ucCqgQE34hCK84pGOr9GKQj8wkc4SinGMKKyUByImFcjBFMqkwhsiQWoZSw4SpLph+77L45JMQRiIiLiChIUHCqqPPYqmsCgQRkEvWgFF3kApOttt9QmF5mZ0RawQQcEw/Np5L7boJqsa2BZGKmTebEThSAmFO7gi7is81RTsikvdtFUtJNoHKDCLRki078xkY0hWKgq8LTPKitOp/E+BJFMwi8aMrlGJK5p5Dbkoopinufi0RY+znTQ/Z1vw6Z+fY5AaMdOGyAjLwhGxWEH1icJprUDJC4wHFCo8QUGelAXYMooLmQIYONVqQUOmQKJGFGCgoUm6VSCRUKTjLgKyIpHA8rFHQU+7jrlKUdh+K0hqi2JD17CRhrf9Km9s2fWEorSA0KcKCYv5LwomwGte1PQQODVnRSVdrJZQbPL6hsOl1UNRNMjMhEKSQhuo7ggHmwKt9HTO9ih8IFdgxTxo2YTNJxJcJdWy7FDQKCEVoip0hFAWdnvOymJ+DSHLQhnCOG1cISN9vIz64+BYWKobFAVUA4F0KDgCqtOAcUGN5ByYeAGEJEVTX7k8mmSKq5iCe0cMTa8oTjsUfwNFqyQEBejYze4KpGncsLoPFjg7bug9R4OqWCcmobJTZ0mcFiaEkJXBrH0GfwwdfToMhceumE0hJBQF6eCKhEKbB0RU2BI3MsW3sqjrlJk1sKSk+AhNrQ9CcXBFKa4QW3CAPvwWmrdgO/TyrfORhKCQsCiovkXjc/RQLJHtGbyFyBZLgOAMtJMSFdIHaiGLumLW0cwG2n1OGByVjlWRnFpCUPBaSQAFTRVN/c7MepcUu/ZxO2dGXFH+HwpaMQtGUWxmhwKauzmPanmL8br4ZKE+YBbXwgfkqGp5ziZkQBF4yggYtmgbiJOdtati6Q4oqkgi/z8U7ABJCnZEaqTte9CEoinOKnyIqVtS8+sDxQ+hMC0RkHd4QW57DxaE4hsL2w0JBb9QEV6DU6JueFKnEGdUHrZIM3dvAmRhi8GyLQjQ6KnJmLFwEYX+KkXBWVnsXJFYtC3nREoKkFAU0GGmkNnqukfxpSiiBIUg0PKA2hEoVDTbY+e6xSUSJLe9gpAopJ2G12IhRnGtigCXqMbfLWRUI7CFyazpKT6HRVrs2xXBRXEvESsUDEKE2hQU4v/PyzC8mASEn6b6UBDSOdJUEVGYPYpwbwUAjPHXX39xbo6ba5IoOPOlLyIKhRFeW8HSs+mX19sW5wpN5He2otC95ixkEHIDTAayxdwF/lmctQLA8mHrhIGodIyiihIOGpuuUhSSmUBxEVPEzIwj93vcTlGhDQQXIscCybFLNGCNZhyAIgnma+HqNwoRpipfqBxpfm7RFnhaO/VWNT87wyjM8jJZmPuN+IwyhEYUhrZxwhBVTlBggU1qpMkU9TfXh5rikq5IWWmsgCKKUwYZjN0JhcRDkwkKLFlki2YebNM2O5X9cEDhBlSIiP9c53XI9p6bKOpitKrhdzMZaZ465OdCtkB6Uo/Z9JcYo1cwikLq48MV+SeKSg70gvqIphAOKuWAh5oioSiZRFaiPg6uyO5OUCQ9whCag1y3pgqRV3gNRRT/2einaouy4pFzsqrQo0RIZnuOANJvJcZOwyjGhIIRHFAUSsLl9TspckZBNmgaDYqGSKTM1Oah9cFKUcEq4Q5ziE2gUEUiDzuM7cEW+dr7dMWoFdJrDyEUfPuqj12jOAPF/LtZ1fzqjLDoJywoLeaewY2bogiMIrqiEhJQQqEkZArnA62FBNTG8tCR+4AipeZZUSArDige5b3ao4CKYct3uYkha5xGl1CkChE5fm5UEmqME92tQJCqxufALNBQlwBbDDYsK0OSsLBA8Tl3VgzX71GoaOSQ1Gy/ozQ8BAWgqKSRqgRJJjpRTz26wgMAPzgq6MN8GPL2EBa213aqRSIV4pWEnNGUlN6fT95zf1Wtz9GgjQSzoETMMBnMF4a66ZJQQIwCOz565XCYKnASlEQyxeVj5MY6YjiEptzW1GETprjvsgKusMkOQEGLdlvcEYXrejpr+wqZkieYRUpKoDh7xOUMX8CSdI0+zZKcfW+wWYLMF2EJMoGbgqRZUbEKW0VxUNWq6o2CSOCpR68oUmT+DwoQgA4ofhRF9pMkk0WzLZZRfODIhym4PYsK15+FVRr4TrZFUFeccI/IBrwvQaLUjpoZQ8m5YDPNMl+EQXJzniMKy7EpUVGp/AHFjdU24omIAqXBEk/EO5qMAGfmjNcNKCCau3coNCtC84FCWsi8zi2kFPBdoDJPw8cNJpr0c/vqvKLgydZ5pEVEUZYe/QGzBud1WXJHJRRUIsZ0XZinkVrIYI8osBNTJBQukXDv+mjlOkxnCiiRkKvz5ImTbK5nQWGyU2nuhwLxd/NfFGHdwKFNIxbeYKTCFJh8ARTF+gyCQo2BcXvSAgGJkgapZ8iUBdZ3Q7r302zG1xaAA4EqeRJR5AWhqHYo/GdUVIriihkbFNQUon0nJRDKAhblF6JCXfGVKYrEorrPguLPR40UK3ITiqaQdooKyemRblrMz8FbG+MOX4smslE1lCWeRARlERgFNE9AAAFDB29MZiNbzCvSM12i5gXTFRReQPgiuaKCrpW73aqqPbSPWB5X1i3eqPhAwTe7E4qDK6r72CRDCAu0kNW1rISixXkUFCx8JwXnK92wuUIF5qoQS0JK5HfUt1k5Ii5Yw3MzY79SlSA3R0FhxRaEQlhwU65IeKdThaDIb0BRtwdT1J8zt4ZmcgUEMOXBFZ+TN1C0P0c1wxoSCaiRCvksD5r6HIbHeL8G3wPoHgOEFRAKo3th4KcPvsow/A5SIh3iYniNZIsg16h8D9wSCsNbTygqFgORmBBX8Cmv8ksyxQFFcsWuPk7Xc0TxVWb3DxSs+j7m6oo0fjf/IDdJBIJetHOYmIQFXgBBvgivnk6dpdy8Mgs6dDUBiTrHGgLPd2VpMF1wXoyolbnrZ7LFuFDXMUDB8kAhhWFRILIqC8LgYoFo5zyg+OykZ2KhUXFEoRJXqCciCvfQjBAUmpt5ywIJFSpk4IivHdmCn255zoTCFgwD8nToGUtZDFoiX8Rimgxre3XgscIZWiFhCDCFVRSeAIRAuzOhqLSDViJ2RUSBK/IUmrJWU6SkiKl5TiR2rpCbuvNYSWz+pSIUxbpIWEhuypjv6aLDQTmz4LQwz85DhZcSgeyCQ1eVp5MvQ/8y7Aqw+Lr/dlIiw3O5D6+h7wIqpCQUBkApae/cQfA7Q0lIzmdFQQfphASEqBAUiA+9IJfMTPUhHE67BvIukOQKLgdF4WNcJhj50vk8Bmd0Rb6+0PHekwW+F8HZ/c4eSigKFE3ItCJOXyd0jt8u6BXQVxbjYl5+h3s3DeipI9/F2WaQIGHPZH3GKLxHYwYCKQMmoSiOplAUeCSBgLripL1UUXypK3C/iitE/i/sX8LNRUtxGwiiBgW8IwJyYBhjW37bB/L/P5jqhyRDNic9s+aVzYwv1dUlmXVoECRY5aB5s65OW99EtPj5mYZZSKQhcp1IFgKDSRxpVeYVBVgAhdEWyVHOwDFZFlPdPduxqRsruzgrDoICSZyFZhwOjKKMKMoNir2IAg+2KCIJbtgoincUNqEgTciG/908K6B4MImgDeTNev0JdRe/wAwZx/L6NkVYFlVZ0vrrEraWi6az0S1yaKHCE0EWSBfDWXTRYIQMEEY1zxBEuyqKthAUBVBIGUJxY8lnuGUSVwyQhOIAQEoiTVH6UlVIIWsqiugVjEFV8TBPe1ev+PoDBzyHPxfa11UUMcqckAeuyiK5Rb8oCiaB7+SczlCLZA7SCbKgB41lGM+hmZauHqa2tiDgq3dVVFZROEFBAG5BFRywFAUZBVTDKG5BDmKaicQOvwgtxjR3O0EhitBp8XBre38IClEEo/hZklmg1C3sUEuHqFtw+ka2BgpUWPzdHJzTKgtGUXjumZzL+X4WXaxd3TbDWE+1B4HZSkJtFUVhCyEBFDJCeZbcdqIKQbHX64GKIuiBSlZhURTvKIyiiPmK4+bant68gpvn7sksBEZCQae9YUFvA9yiXwrUpYy7IzcsRWKL5GBRVnV/Fl3gCbP0q7AAlHYYB+8hCzufMT4UBYcV65yIglBQC0ja2pEuShql+NzNHve5GIUEiqSKDQoZqIribBnFEyj0Qpgk72d7emzHB/7gxUkuAml/aJ3abmOckmmuZYNsQVOQMfChbPvFSJUki8zZYbRBFpnF3xC7ABTfjWPbtJWdn+oV6BZAcJWloyMUHCWoKxC66IbOnCQBGAEFu2ZYlasmIoocJMQrrKBgVTyf8AruAa3v53rFpQ4VhdxAMtearhh/mAUZZ6EodJ7KEAGIbYscykXDBV5wGcqs/YyUpdXCJc5inV27dF1T17byfovCMQrpD3NRh0CsVatgFCAB0xTb5AlyFFHIERUCVq6qEBRWVaHDNGXLfeuLr9QfAcV9boooixBx72qcKEaBr5Nki3At6KKyqMbBCoqC2zQz8I9Kp0huoBppkXYc2qbr6rGtEMAFxcQoSmsd1xaFuxzlzC8sSUZBzygK7Y84ReWYUY/ioKqw5pwaRNpBzeI++Qqq+GDx52Nt2n93yE81IHEmFAjfLIumBAtgIBSszRIOUjEKlgJapEJXVCGBA4xXFl2zDl03LuiWaYuiEBSkChcGCFCwJBSFnjyjkOWHooiiiCjosGNVWIqZJhcULArmQIe79dOdGoSnqRSc5FE182nLQlbrV5xQmKbH75O8M5flxWdR0g/WcV7611OzN6HAcRpGE0aqoaQVxsjiO7CY7NxuUMA1z0EVTtIbRlPBp3nEql1FcVOLPDAKhRDmxwYFiu4aQaFeEXOFHh/Gt0CBYRqLZPOgfV1FgdoHWcAYLro+PWrs/77abuQhgh+nRVOktzIzxCvzXL3UMR0bkpaFQOa+7xbrfaUoHGqL4oCKKFARxTG65pFNM6FQEtsGwT1DDQIUf+OGbDNu0ggKt64/X2gR5aD19TOPE18Ik0+uBhSQBYadfoo37LZf5ldbUCaQnCtdSlFKGkJZoCvWpAt0Bo8RY5durfse0TPsZyUUPECso2jFKNwt221RxPNWFGoSfEwoWBQu26CgG4lYapohWPjTu29yr9zbcJn0PXGuPE+v0iE6UU9FN1A8cixDnWPF+pqNUWHIRG36cwgbjmaKoMAYWcdXv0w1QShaRXEWVTAKsGDXdAesVDl0RqsQFLzNG6foO4o85974RBFtMyXO4+pvX1TvqniU2NeNKPbROMtxSJ8gIx4kiyvCUiKhfVosL0zUIAzuimEMQslyO7+8sEDM8t2ra+e5wmtQRfGJAoX/IVCI7ABG+mOnKGRBJuef4/ChCjo4bRCGIEfKFWQHcc9i//QVgWAUqR4/9VgpiO0UwW7NKrLgnVegQF0vY2fEHlFBF9XYWSMlr8Auan6YSdLq27+FRVf7/lV7vrA6wTKc+RcKkChNIO2OIoosotjjKwwNWra9N0hEwZVUof3BHHD/V4sRAhTvukCHrCM6JK5O46Zq1dE8hSZQ/BuxLOgklUREkbV9Y1UWwsn4l2cyVI6t09CEhaiWVz/XK6OwisIwCaCgpTotQHCHsUQUpaCQPT4Cs1M9EAqGoA2SVIH6bBApmaYtUKA+ZFFgXzfIIsWs/Q1zUKPFMV7JP17q15Q7ARFZlHzmVYLhKsRQQaHWaQpHal1637zGZbG4LyjcBFXQrbVYdwBFRkvUUngoipuefHlQFKhMURySHjhWmNQgdoPirzcUxq/fnywI1il1yB4Xw6Jx2q7Rj0IcD/KBWtS16sfKZVqMApUDkKBQWVBX2DBVHDmrtfx71Z0fXmMzEQryTUMoDDARCncrqUEMo4AqFMV3mfHPURSZYxT5VhU7QZFFFGhHRmEFBW1J4KA563Hz/vgl9aaKux99UMVJSeg8nRQFL4NUFjMUkMxCo5YdBiu6yB2/mJ+HoapyTuDOVdE6p3HwXT/OaJh1ZaVM1CDsby4DiawkFK6koegyEuPxKJkOKFgUOxfXoqoK0NdYsXOGsBAHgnAOqkjrMQ4Wx+dcJhQJx6MaeYYwCnRIWp9uZYGSqFcMnezhKQpNF30tKJxy4q4wTrZ9DUTyZBbmOdRIWs3ZVK1nHU1PFoWxNtuVVI5VQfu+ZifXfVzGewIu40c3VgWeg07yTYPkSRUJhaqCSjY3uU/261xtSCQUmw45/drM0+vYVYICJLi4cdfXAkmXvAqMLAqv6cJAFWKd+O8IDg1USZ3SI2u/wDrXCusyKyhEFTRJNigcDdUbi2InKKAGRlE6PXsUHyVhZmaD4qws7BYFKUJC9r2dn7+UBb43M8QP82f21phVl6yLtMUK/yzr/hksQTiQYAusW4WFvuYM6BRhiuQIpWfpkZmsEyNnWqBfYmMNo5gciSHLCCdFCwqdkiOcNIM8ZD3gbDMZHcklPlCgNd5RgES8FGJnv//SektZRdNwh4h1Ruf8KVkWgHFAMQpmYfvRGUVBJXutBu/7hgWKtrG0Z1ArLdjZ2eveD70Hk5VHXosnoyocypJXQHUBRemkCd2BUUh/EJ6EAtMsvAEcOdUwGX5EkepRzvN3RLFlcaqH6aS10cX+hF+fLlUICZS4GFpkFhRphoAG24VmTE3gNUZqHi+NsHXSSZN1jmfrZ1EFEXQBBVzTAgedLVDEjuDHBx6lgsJwfxhFgeOHKtgwbVJFksVfNELmpQwgPjtkSRuZqUX25dBVhEJYxClSjGgGlzpEkxbOVYYIQPCv5WikKhxkDYARFu3Q+K62bT3htQooVBUZy4JROEAxTtza5REFvpyqYoOCAkVE4RgFRLFpENrVTFeLYY/ffrHJLBIJpKxxLKVBTnscklv4brmgJP5HYRwmbhEiwXNd140OuUrjtmqGrobY0DI5wEyEghP43PlpWYvC2S0KXaJmmazawQEdYaIqDjxOPlDoRklCkUmu+LRNhAoU36EL5+39d2bxta+HVlGcZOdbUagsUouwKjRc5HGIaItYWoxUspmX6WqkG60TnfCujrKgBN6t9DlGNEi7QVEyCtzKBgYlmpuioIcRhUkoIgReCnL+M+dPFGF2BFnYBev037G4t0N9U6ug5XiSxdwvF6ogi8OevZM2bPS9321YYExUlYpAyoFF2rygxYq1IYEPfplIIgEF7/ZIg4g8nFwpCyiyA5X4paJwqTWSVzAKm2yzFRRcNE9592aer1+JxebyKba4q/hRze0mJ2RhSgKB0g6RFnk1csaKQipb9ZpQYpE/+zqt3/1r0Qs1tHkx1LR0adcNChogdrOtlVBgfHLWVBQmoBAIu6iK/0IhIOK1EL9UvxKJTYf8LEPcwPn1li385xDh+i7RIuF0BYXaxWtlFlmoXU7zplJuBn/tb0OFZlmHbgGX1oerFkLAWu0PUx5ZBiaMT86aiiKnp3JDi0JB4RhFUsXnMBUSPEJwH77Z4vQCjG20mIYYLWiIRBT7C9winmtKF6dq4BYJKEKLFDIz8igMloJPy/c6/OuAta8xUidASSjKgMIJikNAkRGKG5EpTULBetGm0AYxhEVQnO1vULCBct7EhfNHdM6tLK5NiBYUst5lQZEzsAjK+L5hiuDkkltEuxgrGZ9KAtKdX2uuY4U3ciASfENvGFAVUEjqfLIqMGisERTaIDmrIuNYATCMwokq9BVxif9XBYmCwzd/4Gi+/tPXGTA4S8NguAw3dtXK6e78XAsFBgz2//+gaZI2XbczU/FueNrne/MmTdlnIgEApJ6eZ7/8HVssCDyeQ1m0o9eUIGIXyGLeZ3aLPEUu/b6QTSYUVWtRQegWyviJqmdIlsX3Vx1RsBreoKDVM4qKUJA2+AtVvdqmERTRKqjRQhR/QvmCR/xFFgKjGafP1GXlReQryELFtYpznn65/cbrjW3WiTqtVVDQjOfqvI46kZmXtn51o9HrFlHUKUHqhKICFOGHMJin3qqmIff13R4EglEYREEsUo783tk+J5FlyJf1K2eIwKCWE3rLiiI2naiLo/a4QAh5G5C0NPDmSkvC0OOU6DRdPHSGBmwdnd7ILDae7IUSQ6qo0Dbra/AKcIELfsUdd8NywOUjkKyk1oTgfk8o0tEodt/YZNnuH8JQ9hbfYTqBmmAOIgswOFWxW5ySLnC7bttGiS7oljDHuTIK7sFQCi2hoDKCKK54fGi3GUfTEYVBFHVAcaTF47+kQKFKFNJdpHmFoIirpJ0IrleLWZSy+HMar4LigF7BRcQNRpyRdMGDTvRDQpGzGFyZIk2PzsIsqORCrME6LaLAPBEUbURR1bjSqm44QRSh4JEVXDJVNAikSigMofgQENhXhAVXy/LJGEoWBzJOhsHWyeOswVEOSD2lTSpU1Fp6Tuk612GW5oJHb6GMRKU8Qhl5BF3MwzoPdsWNSUBRIwokgSgqqJ5XWCKaAIPBDktxBckMs2YUuEk3EIRCp5N05IB2gZ2FvX3/kCE6GqekiMhiUzmKCOsIkHB9BQs6JWogBEVtB5OEoqeRrdONvR1mRLHWLaHAC6GAkkSqUKQK3nzUnBPkIoRCB/jsFWiYEUXyCrzEKnLeXPfPuawgdB8YZ/c3HQAVOXIIPURcKO9E6FXN+yIo+IbYaTUU8b3r5OskFDNMNbEYJzPhBxEBBXfgggL7bkyGhKJRhKJS6BXPqhAUpkCBK00DToh/tbWX8JsppRCzOPej4w9klLr40w5dniFiF59u7/PZHqJg6yxkEQ6aW6X4lHflB17r3i8bNuC3UFNb2owQFPyRrSYrEBQhA7KiEVURn2OIKCBBtjuhwMfx4hFyXPBxsVf8PbYkEouj8z2iiDkistB+rAWFCAMq6iBHh4iCn7vucaksC4ax7l1i01AZaZtgF53vAEUYchKK4JuMomp0UEDYp7KJkipEDpIgJQqz3U1E8W/0zVRNDp1bD6wKDjHObrR/vrjFAUd7y2D5OAxRiC6gu3TFvgxD4YlZm6OA5Q8m3VlbPkDT1m/LuAGKwOAHFLxPrRQmSGol2ryMklcwCm4sHj+jOG92/io1war4UKGe/s2P5IkqQilp/VCLG2CwXfy5yK81pggH7F37TBUYjfNpKKroIZWmgU2qu7nxpgUFho4ocE7KCaKwm0RtEIMyQXQd/pZEISigrXxB8dFY28b8KGH8g/UUjgRzXdBfYFfmVOEWFKdm2k3cbjALmrxht/3EQmnvyCyqYJ2eWlCwi7kHHOv2HkWsFuFHkz387BV0t6DgBMFFCgmK02xv4puv9fTKn3xgFln7vW+lc/IIPBhJUUbQPTUtNZeM6oeOb4XXNiyU37PfOr+sa4aizVC0tOzwA1qxzbeqoDSpEUQqIYziI1ZTKCJkCG7GD26+k8XJ+vnEj9iIKjC++mEs+yyO47o7lRotSRFYt5UU4aci5oH2cNJ2QVzdaBZoPDWi2FgVjxwFwMF6Ql5RoOA+M6JoPrXB2Kj1VvIIGpHg5Rq7/HmGQBpFx3m++RE+1SerBBDSZ+2zsEiiCLeiXcgjF0/WGUmIXYyRDe3c0Fpv3ho3LPCFoGBVwFUxCmowKUHaDIXGAVlSBYQ2GivIxqr4N0fxV1yuWpxGEu9G3ycHbZb8igsNLKg+c065CXC0obvI1ktmccKuM9lFRaH9IkcokENXNP5uWPvR96SK0itY/qKKiEJHFKp58gpAQSxMRCEPrGZucZhddy7GeiKL1YfPgsCTmqdIIsVp2S0keMqA1FtwdxGNU1gBi2l8wEpzTKobehl+9cNMNdCOphssoeCTQ0Sh4NoQClYFoyi9oqa+Ark0iIFkQSggfnuJs3H2AiQy7wwQmEU1+fVvEQVNs2Rw0VevW1ScdW771Mp60/vAyIlbULTW18lI23k3KBI92nAigCjMzyhq8opYVWpWBX7xQFUgCpNQoCqCKChHPp5QtNZdoyjwAjeILDrvLl9PLKSibsPYxDYLXogifoBp3pfCLuiwl85Xn05Y9Qh4opE204ip3qxDZyYPyaETCvxZ4aoaQnEkFGH1ryhyrzAxSBXxIeYiPr6WaT3QAdibFIHTc3P6oueNSusU5xRVxPgV7aJSPNyDAETVzHYhKCAr1ggNT53pTNX6++pHIygo5QpV6NhXCApcfURBeaLvzyiQxUehC9yd2r+/z9/vnfN3kMWRQIguojaufqjV0686w6LZxSN5QDbw+nRySsAY2wVThApv1e0bbVZHW8+7BRTcakExZRQQTyhUjqJhFPoZhU4o6oBCxtp/ZKsNGYLnom+nWZ+jv/3Odlh2F6d5d7giQZHidBtG8QAEwdbppzovIrhvtU0SSe1GSp91WI3buzqqwkRVYH3QzyjabFrDtUOzbWaquEfbpHLKKCQwQyhBzuIWUmEGW8VFlilSTfsaaohkiMSx211KgxORQhah02rTYfORUmRTSRfaL7StsqPuve+3LUOhEEUT2gb1VhX4FtzQap2r4k4osMdS4TH/EgVnyAQ1BOK9Lhqo7/LUqpRTHuL4psKIvYVEBZ0WyyK8l7pzsIs1znhZFmoZGhFJNxgcgAKTazdM66oZRZVQ/KgKiEIVtRIU1Hor+iDMhzTfslgXashPLedhGewlW+SZXtJccPPANYReGM209wUL3KS0js/dxSCu4yK7+iamSOd77Xa3mmuuCv2EIjplXkGoajCKcKkNotBQTe+kCoBRtlicIR1+8vrtlBPd4nj6QRa//N5HWZTCOD3AViVFEgpIgVHsAilW/W6kpOihwy9qN117vy+3+gkFSKr9AQVRekUBaqCGk1FAyBKLGnLhtb2RxffiXZWtUVTBzUWrchQHkcWp38dGdBEr6ilUTPh+GnOyEtIX1TxozIab7+pu92uGoqHn4YlBQqELFNhsc4IQigfKglCAKMgRhYcMLSbDi3s3zvoTZCEgCmEc7b5kBZNvE+u0RIIziEN1fGIizqn9TMhCtJNTIT5nryFFrM5RaPxkiaapf46iDeLg1QOKR5Eg2uiAwiAKKqZCQqrENH9FEomGnCUvg6tQ3IJCZFH7waQ0lyknP3fhaJOaNmUc7bLf4uERcKDHUur0Yyoz9ApnO+PSbn7vEEXzjKKqiIGgCBYJ8YSCxAF+yfNNRIG++T5Deud+4cIERq6a1nuDys5UIc65DqOgKLqLr2YUE8i7i8b74hGEZnJyBq8s/Uy1etMsuzf1NaEwdGiGk124yGa05XEmozD5JmQjFCALQVGw4PbaTv13aRYSB5IFbrQiComj25e2GOIkGifepMa3Ews9WJaFKGENU3KKepgRTOtccxt3ZwAFTe34MEA/EAUsO40oWp33mYICQjMKIyiyRT6fCk7LV2kWeAe3nH5Y8ww55zAOTUiRPAUOWZzCTCtjQfUWWMTRf4KoFh+IcprNHvNF9b5vVj/MYbMeVREqiNFUT3IUYJsoC1aFEEHf1CEiClnhH4UszIQDnCcaeQbNw5R6C9mIyNm6fy4iua9c7N49s6BbftndIAs5T/Sz3PQ5khs31jUP58ceFtEgiq2myiA9BKKgBIFgVcTNCqFAsxAUEQZ0GCWKox271Hy/ygKKyNDJIssUOVlqtPLxt0RLI/AcFVnnNDZPc/EKnJNKDapm0MjC+F4Z711A0QgKE4RIvSeKA22T9veYNMEwVULR3ELLzTlCKBhEGnNKazG6S5LEqy7OHbQPssSXFBn3XtaKuDIa2g+NKmUDOIzYBb2hJqdSmilnyTmXqWkW75ftzihY+JQuaJiokYa2HYrtAS6EQnMJ0fwEq1H029cDCIpie/rppl5880UY8LiF76TlLGVxMLvsRQpd4EzLtS8F9RDsYhMWoR/t901u6ocbDTzHTZlxGjtIEHRAjWcBBrsSrUkBNXpFZECZkV/0BoJgs1C/BwxBEwSDp/9SJEYwTgrhkNdbqASnH1kcl93lbsAey8OLat5npfIUIkTKDryPZxa/Fq9SilzcRLKYp6adx3HamkYhihZRIEStlWJfKFCAv2aNRUDAZrGpC2D4jgnykiNnM01tRAEvZiFucXDDImt8YaHGvSt3IsJNud3kU05Gcaq9U6IKeNVDJ7tcPZhQXFEW9eT8Ure4bFPnKBpFhkBDDBICMjOxhFDrjWZBKK70/wiCEBRZXErjLI9Qb4PXMsklEhIHPQxaUgC7zizqYWiKPoufTemeHLXqfJtwHu1EA88Z8qsb7Yi+SaOchMJQr/2QQsJTbpWqKQICFOlhxR7MAlAktyiNsxPjFBh5CtnBHQvnzFl0O+pZpt95nPps3iXi+sKNl1KCsBmXY8Kp/YbVpR63qnZ2srheajcTCjEEKq1KsTgYxYNQPDIU3e8oCmCBz7qD+pGGdNdu3HBxQuJpEBr6rC1vJc/PME5uX+QkoDxHuoQ5TjHYwO5immS7hrIYmoQLZQEo1OwqtY6z7xV6QNZYaJrkEIrUcDED84zizo9vqvkXquIDKIAwAotnFGCc9vJ+ewrYuM9SpXNyTn1g07nfxQ4YWPJONe0G1S6qQBY3ThHaxoMsJov3YFw9VRQ9mqq2i3W0n6hrdMqoCqXScOKRoagNK4bNYrvTR8juarlihlBBlYMyYaGn0ZxjZDmCL+zDxmE+FSlSVFSdULywqPm8Ofom64tSRN44buA5z7IA57S2qvpxHbuGUNQRBXdQRkcGquHvKSohyT7NllSx9P/8GwOdoozfrV8OUk9lXxZhnLfBX1OCiCo+YgO+gF3ku7JyM2IzXz1Epu0YUiRvrZx4bz0Y/HnG1+AWyzLVoZryb1ojKLB+IgqFF6wngoJuSdsQZecLN5w/jLO+13G6FuUUEdAFrl/Tbo9vd2UfiOMy7WkXUaAAaJXdVyWywBdcoa+ac+M8mt3IY03W0W8DZWeQxdRPM6GoSxSGvIJKCKIQBnChDHkYVgVkyBlhRBRlKOfnQ6GKmBz0gorZv6sizA+SYN+K5kFQQHs+1EXLiSxw3C3frnD5/K72+hiin9qqdXMHBbWOKPhjYZwEbBkkAEFB5QWtlWRRazXb/h/8v+MwilezCPX0VxK8OCe/grXafaoK53zajGy7r4uCKbOerxslkKQI9lkw3nGEQlormWtYi28otx5BFjdnAwq0SEZhBIXCL1REQYohJHwCgL/Ti+psdwnGeS5R5KcAvosrK7yCcfwa99w5iwTBw4BJjsNyZOGPU7fPYpBcQnCP0islKC7WiW7M2GBb1oGDNK4Lzrnhhszwnt1wEihRBRZV3JmHr1pzDygUNpx18JPNztdvKiKCopxxend5meAIi+Cc+3CVs1FmITl1Pk7BHIsMSTSqadfZaXI8NDm6QVqLQ5DFTQ7TXIe315OGXbyr3WTM9gjuSSUkotABxUNmFApejCJWVXqEta7VY7E9/Pf+n1l81NPYU5v1ukNl53TBOU/vnDP8ifv1riwiDAJnwr49VgnUiV/1sCQU8HW1TCKLflQoi2Wpjp9u2/xyz1HwFoNQsENyNVUgB2kwAFTYhuAJ42y7LyZRdhbSZnl7ikvLQ+xCD8Vsj2Hw/XB2uA/63ZjzjNYJFTXuPSMIOiQIs/zMLG9p2qXGHr+vJ8iUzjZ27LawfC4h7I30BaPg5FGP+CWLBX0TUHyvdvnEZwfiPv0Ni9s4mmJ/KiBQFudlH9vyrEyEBCw6uIFRlHYBi7b7Lew2iVNiWk2OAcUiklCcOodvKLeFY3azede9oOCjAZ11VVxpOX0kQwDFH2ax5kAF5MeDgIP1clCWBYLgntMPIUVKVQiLkwPrLDZl8vRS5Ye2Su8leRk8b0yV5zro9InextfYhq4ubFKXxvplq8EB7ndc7j0rIUBEaoaKZqE0XwEFJshfmCEyy3rvFmYcb1nzLYHeyUOcoX8uIk9VBzste3mzJ6MdXL/bPH/idt16JsS9RpLF4csu+EYzARLt6t6PK7SbCcWdS0jWaz8YBWcPIwGz2IwOKM6dXdrvM7KQo+QiTlbc4lyaBTunxfG3qD4DQWUVOq2VzotzTeAL6+1W5ZKhSz3MgiIUEZ3y6zYqlIXtQBa2a91AJ4f3UEDbu6GmgVHQ4IJQKE2SaVEltA9BFCFD+gOvrARRyiInUfZaymNzUWaIuMbBROs8Pd+HElLj0Ka35EyxG1q2EG6tktdU04a3GwdIetf0ftoaQsFJAA55x8XWcAkRvmLJkGZi/0ko/lKzi781wc8HZUf3Vhbce/PTnMNgyjYrF8b5MO8j2sULCfSFwT21Fuyco0Wz4DBDk2h1Fr9/cfBvba2pnZ9BFY/trhRDUA0uWjGKFpausNGI5XTDmwCNQRSQIbYFCDzYe6+L8330vawtC2FxsMOoZJFPqkAYaJ2xTRAW8gjXmgxS7lh3LWYBbdeS/vF6bPC7nT0dq26p1nECl7xu9/A4gwZxNA2hELNAxVBnIVai8Bg5oPi4La4HDHJi+JNbSBEpDg7ZLlq/L5dSFnkRDmPfWT5Zlm6jSzUNn/BmORefXP7Nm1dpXuw2/En1pE5QTxvoBOc69NW1gmkfucSdLrz2B3kq1w6FVsImax6A4q9qcfMXGsX/2MXZjH6TCpINv1N/wSkiligY+PURrLMvWgt4g5etB1o11w8OvRtRxeF316V/uHcE1QKSatmqbnT3gEKDKlrUQ/sQFCQSMgtGUd/JPVowTkBBGXL9TixKCCILd3wdZolv0hYVUuSly0o0IPods13ab3SKNBNeK6kw/N6Xm/7MWPQ+ZUg11fhGbytwEatqNy74nK9SVUOrTXJg38QMYZXIVeltQxS/GWu3UEO+4+reFhFwi1W66aK5oFdIESvj/SJBaNYZNqmvbRbFcaIqwsWUK+112LIm9TJuEcVp6fC7ytXwF6urZXLgf9sGqwNVEAO5MBLVUDlVAOERrgrt9a7+grgsbrl85PEOxcnKBrUwzvQKjdb2rv3mF21SF1lY4bB6xxRhFgzjYMfMOL+6Kenm5ir87txBvwJ/MZObA4qaSwilRLoUGYII2EiB1X8RobWCpdNOHwAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_vibration_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json index 1114718ef3..212ae5136f 100644 --- a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_visibility_chart_card", "name": "Simple visibility chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OTg4OCAwywhISE8PDzj4+NYWFjv9+V0dHSsrKyQkJCg0mDy8vLHx8cvLy/V1dWv2Xuenp7P6a+Qy0b3+/OIxzmCgoK6urpmZmaQykbH5aPf8MpKSkrA4Za+4ZSYzlPn9Ni43YhLS0vY7L2o1m7UZuoPAAAABnRSTlMAIL9AEN/GQiaNAAAEm0lEQVR42uzPuxGAIBQAsMdHpKCjdP89PTewBC7ZIAEAAAAAAPBfTZur8Sl53JsbV4lI42nbm6NEnu0AM0dvR+giixFZjcjLbr2rSA4DURjOTnCqCkmUJJTYDjry+7/gIvdlepcF98yAkcF/VMZKPlSBRuuCjNYFGa0LMloXZLR+BVHHI1f8pOMhGjKAOegUcM9vEXL/WBqSoK6Oo9uHeFvMQsarYgBMMDc8muoT0jaIBoUFHNk+pApLWMjgeJSKwzlhjkBOSYHUIa1Pcd4gyaOsMSegJsdeh0AqaV5VC1/rkpkRqQiGyCmwghFSFmOGhQ7J1FYk9YNBsNshECF1InMiEx5ZwGLokFQU6Q5ZAJm+IH1CmSAN+x0AySQ7JkXy9rZbjBtEpVjEBgnour8hSfq02xEQ3MjcKBrebsQ5Ue8Qr4nzE2LLP5DM9Yb9DoGoUNQ9kgGvjIYNsqyqJW4QqZnxDbKYAsaIQ9qHQI00YUn4KkoEMC39ZzGHzLAgXRcmNEMVReMNSIdt1j4EyCmE5vhJwfCNhnii/KePN2t8SMr4pPEhn3VBLshZuiCjdUFG64KM1gUZrSEhXrOfH+LJSHKNfm5IFVqLczNKPTOkFslPUannhaiIvs1+Wsgf9sywV1kQCsDf2A4gooaaoL1at1r9///3AqZmsS7eNqebz4fQoI3HA+c4Gh1cpDharQgJ0ROhSFYqwvFufOQZrVQkIC/3IlmNyI7zPgoU85dOHK1EZEewpstUIaZvIVqgCK2q3asHJpymnAjepqzoTRTzpYmkAdYQ/lI1krbFQVQGOHTtmuRLESZRj2Sop47v6A9UWERpWh1HD73slxI/YhFw19rD5Tci8qQAioy1Uy8AVNa5ZPAPTYcKkjwqXj586TPJCJfJ8ItkmggrtIZWOZuo/GgNe/2NyLCNA4E6CKFexZ5waiTsW7E48AkiGajGGtRaCuAu0R7g1It8VbF3fc3LMffeXYIIjIOS5yHRXt4iCrKuMQpmVcUQO0XkpbExbC4fsyyuUMfxEYdUhN6JIg+Hf2u4UfETkVlmZ1fAFaErnO1GAfUsEgNc9EdWm710YzHohn1YWeQ5VYkopWkktNBUBpVqQvplAPsuFDYwg8j10QVw1h+qUHEB7Tg3o4dPQ2wIE/RnODlOEMmgQG6RH4BTFxZUt8GIQfm+CyJa5dxozHL4YGZ7c4tYj75LAtT9ADcHghzMJFKb2TpFFMAdPXUB7D+LUFfJnkvk1uXb+5uIoZkikuMUOZhF5KIgG6XbGqC7h6yAQvqLUGeenUeEFRAPS0za+Z/7YokagKu3CHUX8FlEmH3kLdJOmo0qu00EniK5cJ9PzSJyNrXBcrE1I44VFKwXsSMU8xGhAQ7c8ZhFpICOxuZhTTx++2UKYg+RXIgczYN7afVIpJFNM8xRMvZouks7yt68kBw8w7Hw0/jqczhWI1L+Eo71iPwSjtWIfGYT2UTWwiayNDaRpbGJLI1NZGlsIv/buWMaAEAYAIKBhq0O8O8TJDCW5s7BG/hqhFTTKKTNcieyQcnOcbdU6/8t1YxOozAAAAAAAIAnB7h9+fIl+d57AAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_visibility_chart_card.png", "description": "Displays historical visibility values as a simplified chart. Optionally may display the corresponding latest visibility value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json index cc20374470..784a3f09d2 100644 --- a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_visibility_chart_card_with_background", "name": "Simple visibility chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_visibility_chart_card_with_background.png", "description": "Displays historical visibility values as a simplified chart with background. Optionally may display the corresponding latest visibility value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"km\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_visibility_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"km\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card.json b/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card.json index 5729a2166d..f452a513ec 100644 --- a/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_volatile_organic_compounds_chart_card", "name": "Simple volatile organic compounds chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAilBMVEUAAADf39/g4ODf39/f39/g4OD////k5OTYGDjg4OAhISHdNVH1xc08PDzHx8fmboIvLy/j4+Px8fH64uZYWFiQkJDiUmrsi5t0dHSsrKxKSkr98fOenp6CgoK6urr409rV1dXaJkXnb4LpfY/kYHZmZmbfQ13wqLTi4uLzt8Humqj19fXgRF3tmqjcQRJrAAAABnRSTlMAIL9AEN/GQiaNAAAEn0lEQVR42uzPwQ2AIBAAsBMQw5cpSNh/PxMn8Amk3aABAAAAAADwX7k2V75GTuPZ3LhzxDVm3V4fOVKvB5gpWj1CE1mMyGpEXvbrZtVWGAbD8OwbBBKS0kJbrHTS+7/F4w9nOXHtqXHvPoiCo7wYQb2ZId7MEG9miDczxJu/EZI7bgTDyTz9kv0U0ql8hqcGQKjAIhGvADoTcYcXtyGmglJKTb0FnCIDyGRglj60w3RYr+rmodyGhBqLxsgtfwZdSAAeWPdr0IZEBggLJNZseNxtCIJqAYyoX3fSsVmJsIkVg3EwasIRj7sPQWJsRsVHrGgK5DOE9+PQaYEJHvclJPACdNJrQiHjDCQKe0hEZpySUnS7WoAQs6Z0lQQdJIDsJ9N8FgmtwSBV8bhvIQuLjBxix3+NGJvK61rVELTKWhnr1pIZj/sSIrSc638RbthYJjryrBJFO1arOn5HkgEoDnZ/fmu91QzxZoZ4M0O8mSHezBBvZog3zkPMwi8ICUmJKMrbQ4xplJKY0stDWAW7TPLqkH/smeGOqjAQhf9NJqVVoFCqKCyKEM3d93+9O23XCd5AJO7NihtPsuGUNpvz7XTKiht+87zdvjTISQHw69pXBoktN73IXxhkNShDFr8eSPrxEYz14XlvvRrILhZCJc6p04Au3r8YSC5stVGOZBfOLN5biwdZ5XkFLGX992XqlInt7VG8+q8geuhLuCtj+jsP70yQVHKbN7FK5SmweG89AlJ+GhmcLLqQ3CDi9WbRIEYF3BHinSUqrii+UunXUMGEbJw8AlKeXWjpXEEu8hwRGX+XdERsCOX4TZCV2PCrf1JFwwklSlVuZRYLZZPZIJQxRJbeeJA1Rhp0hx156RMWtOR7IHsRrnHG3xxPkwiVKRHvcyvi3VwQNJ/nANKsZRtAEC8BofZQnndYklLW7LXzAYS8hill2fU5kQOkey7IqDanzO7S0Fg2mbm1fGLpXUjNY8QeoMMWSK0rT6jW4egq5+JHeDTOaw+ydr6dQElFzqWJs5hG80TgqpoFwsGdGKTm3UJheSYYxI4iN5rmnO+IpAQg23R0w8CoKrFiazO7gtlK1PZRkDOiHoAU/4JIv4T4Il+Mwu9E9P5Is1Mt8rgeBemnQdgYd4nwAOAu7bXZy2bieNtmCwUpED0I3wogrqUmWuQJIPIW5DgG0k+AGDQTLfIEkJpPrQuHbdFMVqS9D2IVPAHEEfDtNXYAnJlBWuwGPWIYZLxHdiL/YRDuZO3/0Dx5QTzzqVX7oh0cQaP9XH89tQpaN8axhaeA1A1GpqF8gQrNH/oBBqFxiB1dPYTniPdjnzyy9DkgICOX6+K9XiOpLYGXDJ7spnUs2oNcIu9HOCzAj4CA1mUwpb7mqGVd8rSUzjMI/39FPeIW8u+opR6rx344XMxL7K+iMcg9WdfnvwBk7zl+A8gOSEsEkf2Z/bmXMEtLBFmC3iBL0xtkaXqDLE1vkKXpDbI0vUH+tnNHNQACMRAFSxtOACouwb8/LBC+SjPjYAXs68aQbgYNyQHpoLWujNptTpHf3fuIqPP/WaqsSaEwAAAAAACAVx6ocPyABDUGtwAAAABJRU5ErkJggg==", + "image": "/api/images/system/simple_volatile_organic_compounds_chart_card.png", "description": "Displays historical volatile organic compounds (VOCs) values as a simplified chart. Optionally may display the corresponding latest VOCs value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card_with_background.json index d98b64afc2..9fc6f740a4 100644 --- a/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_volatile_organic_compounds_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_volatile_organic_compounds_chart_card_with_background", "name": "Simple volatile organic compounds chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_volatile_organic_compounds_chart_card_with_background.png", "description": "Displays historical volatile organic compounds (VOCs) values as a simplified chart with background. Optionally may display the corresponding latest VOCs value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"VOCs\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:molecule\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppb\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_volatile_organic_compounds_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"VOCs\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:molecule\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppb\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json index ee1c935255..b09bade66d 100644 --- a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_wind_speed_chart_card", "name": "Simple wind speed chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////h4eEjTMchISHHx8c8PDx0dHQvLy9YWFjx8fHI0vGQkJDk6fisrKxaeNWCgoJ1j9w+Ys7y9PtKSkqenp6tvOrV1dVaedW6urqRpeOfsecwV8tmZmbW3fSDmt+rq6tohNhMbtK6x+0xV8rw8PDW3vVvo8R5AAAABXRSTlMA7yC/r1EOHTEAAATVSURBVHja7M9JAcAgDAAwyvXEB/4NbjKgJA5SAAAAAAAAnlNbzNv1+j9ij+utqKWvkcBuZY4UIktkihxG5DQfu3Ww4kgIRWF4dS7n6lVEXCjiIpD3f8ZxqphM6GSgpxeJAX9EQd18FEJtyGptyGptyGptyGptyGo9hUjGl2LqQB6ANrSGu1w6ll58EvwzZjz0Aog6DI24zwpgFQgB5QmkMyTn4nIQdlpw9VKa4MwHKBlhaRqhqlkBaJYT4g2IbDFLHpidxzFnOW+974vQw3MkJpw1Qws2OhVhHlkNVGRWd95IbJjJ4QeKBSaIc8E6Emt9JyReWC43SGcPyZfBeEAq4DyqR7TzRqHzAuGAUueY8ugdEDysQN4FsU5Xfcr976Fl01xLxQEJx8J2e+yQqzMRKsCcGUKlBAtzCPWdjz3iS6EaImu5h9gN0gYQmW6QoaoIYc5dON4JeSjxAjiOe0ioIpYOputQXoUFjTJJkIZkgmuHXaALQZRXoFDuIeLo3AGJnuTcYCATcHXH4knrGI7V1oE8T/CnKBEQaoznQTw3b/NjL4BIwc8SKv63Jf+1YhJ8s7Uh329DNuRT2pDV2pDV2pDV2pDV2pAXpC0l/XxID/ydyx8OGUYrqTgyfTREjCVilkj9ZMgv9sx1V1EYCMC/hhluBVZoFREQ1kv2/R9wh1bkHAIH2E0IJH4JtIDE+dJpB9QlFwwh+XsW8aiNS3hk71fEpiO0xBTvV8Sl+IuUtzcRy/wNwTh0hjcO2fsSiYmJhR4EBzpCcnclEpPnXqkJWhy/hS7IE1sWsV3neL10kRBZun44Pm/fovLptGGRkDRhr3JYDhH534M6kf/PIkFdBsBkaEjhjSqyA/yIfM5ZYCk+n09Epy8Dojnb/ZCE9/a1rCUiKm/i1yKyLxIkJeLPIg9MYBLfxHYhrxuQUX4TuRbLXz0iulqzRVATmG4aNSgw5MhMiCR86xSCSHRrqxmQiTz0GgvH0SvbTJEyCQIjokzTkR9ylb1FFAtG6SPiXpAG7UmUuq3SdFzo0qZ9qCe2dZxYYi3XY5VQcC9kncvM1AJ4iVSIqn8JOpEEbzUyxR/JexlBQ6ozK8qQkdVo6T6B4Uh05I11JrBE23GIXDFHBIyIafK7zFJ40xPBMrk1AZfJATF7Xa705JJ1LvGpoEe/WouYGN9auOLZy0QKNNSjIpH+rFT6gPcQoTT3V00fCxjCIg867LNY/DADC0fkIIMouPPBsIjpIeY6pTDSTaFzUjd6lRjgF13h/1goYlAlJrNF7rw3BUjWDxjhSr/XF2FueJ8rUr0uqlrP/2L0vWldEU6NhSLJl9pZsEswnFlHWFdEYg26uc0VkSazHnlhcjIf+lKHfq8sUuOz0uU85VPJY1okeCkX+GShqBxatWyPYlhZRElEydtdz+LntIjJLHNjdit1kexxIl3F1xWBKEHEMld6dJJpkVIC096Ih2iomIXArCDSI2qDUTBJ2srCWBGJqfeWtM0fsavgZ1vhk3fRvY2LTOGQcwbDrkWE1z3k7loEhICWfYu8+Yh8RPbCR2RrfES2xkdka3xEtsbfdu6gAEAYBmBg26174gP/BrEB5c5BDETI2wwKyR7hxBqwDuq+dlQOmAfdWRG1z9flqgAAAAAAAPibBywlq1F+6U0fAAAAAElFTkSuQmCC", + "image": "/api/images/system/simple_wind_speed_chart_card.png", "description": "Displays historical wind speed values as a simplified chart. Optionally may display the corresponding latest wind speed value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json index 52a1570847..3b4433c201 100644 --- a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "simple_wind_speed_chart_card_with_background", "name": "Simple wind speed chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/simple_wind_speed_chart_card_with_background.png", "description": "Displays historical wind speed values as a simplified chart with background. Optionally may display the corresponding latest wind speed value.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "", "hasBasicMode": true, "basicModeDirective": "tb-value-chart-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/simple_wind_speed_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/slide_toggle_control.json b/application/src/main/data/json/system/widget_types/slide_toggle_control.json index a533f1d026..ad65ffaf5f 100644 --- a/application/src/main/data/json/system/widget_types/slide_toggle_control.json +++ b/application/src/main/data/json/system/widget_types/slide_toggle_control.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.slide_toggle_control", "name": "Slide Toggle Control", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.slide_toggle_control.png", "description": "Sends the RPC call to the device when the user toggles the slider. Appearance widget settings will enable you to configure how to fetch the initial value of the slider.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/snow_depth_card.json b/application/src/main/data/json/system/widget_types/snow_depth_card.json index 7f7867190d..dac9f6769f 100644 --- a/application/src/main/data/json/system/widget_types/snow_depth_card.json +++ b/application/src/main/data/json/system/widget_types/snow_depth_card.json @@ -2,7 +2,7 @@ "fqn": "snow_depth_card", "name": "Snow depth card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/snow_depth_card.png", "description": "Displays the latest snow depth telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json b/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json index a241428c02..dc28ff225a 100644 --- a/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "snow_depth_card_with_background", "name": "Snow depth card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAACuCAMAAAB9TAOwAAAC8VBMVEUAAAAJCQnR2OO90Ny4xNSr0+aq0uS5wND+/v6m0eSs0uX////Y4Oz+/v/y+fzw+fz8/v/v+Pzv9fnw9/vu8/ju9/vy+Prw9fny9/r3+/3s9Pn////y+v32/P4iSsH1+v3u9vr0+/35/P76/f/w9vr4/P7s8/fr8/jr8vf3+fzp8fb1+fv7/P3r8fbs9vr9/P70+fzu9fjq8PX5+vzp8vjn8Pbt8ffy9fno7/Xw8/i21uaz2+yw1Oa12+z0+Prk7vWz2uu23e2w2Oqz2er19fmx2uvi6/Lm7vWu1+n6+vz19/q01eW43u6y1ea52Oiu0+X49/qw1ujj7PTg6fKx0+XX6vO01ueu1OemqavT6PPy8/jT6vXa7PXB3uu22OjO5fHQ6PPR5vC82unm6/MhISHg8Pfq7PHk6PHG4Oy61+bG5vTV5/HK4++y1uis1ujBxMfp9PnO6/fe5/Cr1Oep0+Y7X8jl8/nh6/Te5O7K6Pa93e3e7/bP5/JVddBVVlfh8vnM5O7j5u2Hn92+4fC32uq1zt/y8PW74PCouOcvVcX++vr38/fK5fLm6+7D4O7a4uy43OzT3OjY3eCvs7Xb7/fX7Pbs7/PC4/LS3PLc4OOtxtjU7/rG4vCpwtS1ubugpaekt+agtOSqrrDu9frA2ueMot5yjNegutA7PDze9f3Cz+/Y3unf4uaQpOCnvdLH3enFys2doaT89vjT19o8YMkgICG60uGyydvY8fvc5vbO0tSgtsy8y+y7v8HS6/fY4fTw6/GsvOesy9ytwddISUrJ1O/C0+PJ0t++zN23ydw8YMjk9/3p5+59lttuitaWmpxwcXPq+f3p9vv88/TO2ufJ1uWXq+Kcs8eanqB9f4C5yeql0OWkxNk9YMmXscf37vDAzO20xNovVMWUrcObtM5IaszV4eygv9NiZGUuLy+PrLqIpLiMjo9/gYGJjI6zw+pkgdTJztEtLi5gftJ4lKBffYp5kqpqi5ggICCAnK8tLy8CabYEAAAADXRSTlMAB/4i/e/BwL+xsK+v0vfBvgAALWJJREFUeNrs1r9u00AABnAISCCBnWsTSm2wHNs1Ce6RS5MQkilL5YgNxVvWE/FaZSBes2RBKMpSiZkxTDwBWxg68gw8B9+dXbm9Bmj4s/HdnZ2qQ/vTd3fKjf/5n//5t7l1p7Bcfvu2ShaJzEQmivAIwzAKoyjCeyiWSD/sD/piPkfaz2tB8MSsmvW9g3r9aL+0WxLZ0xuNhm34rkYtX8b1GCOEYKWhRPtFmHbd4M/cu3VFdfvLElksksUEpkSQgJKBSk6kO53CFMrV73ehEq6g3W4H7Wq1alZ263BVKgcHpWJJ1+HSDbh8PIDCdCmjJA+D62/F87RXquv++utyuV5LVhaA8ABIiCJAwiEG3lMM6NAVkvZ1SKuw1WrVk6OKhO1W8r5s2zEkTMajLKuKEgzG/thDslpdqt1VWAlQt9doS1YlPEgY8fi8pz7HQ6imUTidhlBJVgZ7+mhXFlY7qVaf1OsVZHdnp4TC9qRLsHJXvgflR+0nefSLn5FsK1ONuNoLhbVarwvrwmqZTDhKEhOJUxFvDvEIh5gi0fThQ/lB0LAEKzDbOGIB9mGtapqiLuRBqVQsFnXhsqCCKwv6EkO2RTVti50Iloojmsvk20NdhsKCaVkorHCw4kkYp1WJeno85LzZ5AOoBETsx2mwP0BhKK0/fP5c1pWmjbqOQDOPKqZwlURhcAmY71+AufS8L8wtWWo8Qql8a5Q4tsJaTFarBZJM4jiKY44VhzHnXc75mHe7fDgYcN7HwYqmw2kI9jQSB2y/mu3DtmAhQQAWjpcJFVxF6dIbtu8aDlgpCpOxzKXJ97Vl7Ooe1AwiyiIN5rvq2eLxYp3ESQIOJHHceYa3SBc57Q6a3cEAlYVoCTTBkjdi0MdpywtrB7VA3IlHdVPeHDtFuHRDh8u24EphHmiuR1KY3Im5a+u4BqW+RsDybcNQ24rjpIBHmjHnpx3ebZ52xt1mp9nsdJvNbhPNyVtjgKOHgbqiqQyE5zLAUFlaWEVcHdIlD5jv2zZclp/FEyzYYMpg5He2IbEfe4bgMc23rcuqm5MwWc2SRJrmvVGvNxodvxgdj14gx9nq9crlcq9cK1drwbNarfas1jFxpyNmuWyaHyofcK8fPDzY39vf0/d05FA/tB3nKTSI67mI53oyxJOstCbyiCDXU6ksrbXjOkwjYidajtIWrnTx1SKexZ3WyzT0Jb2cly9baZ5eTctoGSL4rZuFUiwAMgVhgqFG/qcYmHJsG4k0sL11y7Fcq660NUj4bDWboatUlZNUVo46VGBpwJIyioAlhoxksU0qcqmA7VmEOFbJsXAPab7SVjief57hpjg9zoraFIUlYDkNRQGVNZazUlUOU11KtnYJFbEenOg+Yw3mKiwez9/O352N56+uiNhGFkyHUKkbUSarS8ouqsiGbGRp25VF/JPXdb3hG7rCupkUzubls/F4fiwgjGKw/HWei0cLpizKRmxdOGDSlcM8tsG24arbsizmv2n4O9ShOlXaipMxH70/+zx/yzYlb0vkvCzVZTzNdiGismSuw0JVeG7HKu3YmkUtxycKK5mNxyOh+jULUVliZMlYuezcld+Im11qtlCxgwdFSh2jaGgKq/fx/ej4bP7q7aefsFqbWTKXNiKW1GWFue4F18b8CKZdh0W80kndoEX9wXfW7OdFiTAOAzj9AWm/tJ3YFJ0kZGRc2CC6ePKiJy8LQ+wlmJGgw3iygzTWZdkSLy5EHpIOtQxLEghzSAgMplvhYJc8hEsnBbXYU3TqeefHvvrq2i70+BoSJH143vfru26Abet5vt7Z+ZyrDL4ShffG86zMShaFcW7oCePnk1wFo6ZTspCboi8SWA9cDkSYkfHkyU4+PYDqGUxweaEsxiUsizfqj2GcI7MLm8EtZy2nrQ5YSZ7nxFsRMeL3Fdg7Yf7z805lMBhANR9H5bj+qRLYwui0Bwqws+9EZJXKYfFidCNw7ZovzLKefN7pEFeLsNxZRFlQvT84yCQYVmrBRcOwSOZGx3+RkYqhSnDiJre+fj3Cs2erk85VOoOv2IPOlnZkM33th0IJerIcFFYKa7YuYVlhy1gnwvBYdmk/sSweG1wU8VN4JBI5z7DOfe6QcQHWzL/3VM2mw8LR2t33xgU4bqq16lxtG7QyyqqP6wQ2/+l8oT1e3Rl7Zz+JdUsRxWJAvBhl74S4NA0qLouBNUOhZsJpazcU2ndVx+kbhmFV51zHMM6DxVRZZcZiXeJ5SU6efjdSpLebnJMFlq9UVAp+f3g9wLJ27laASiYXWS+ewmW3BVXoDcOSDDXVHk3xas7FbsVjFu+6QCJPCM4AozZXhbJ4vOm1YlEs+EW/ssWw7uYqldbXZ8/Yto5dYFGVw8pms6k1y6gG16RusN/v61otJUiabtWEqRWPD9V4Q6sSWVc3J2DlJ7rZiOa1b5o55iVd1tqS/A1/dZJrKc2pyUOBRVxiSbkoBooXRZFhYWBUWs88FlV98lxYnuoQLBu1hnwwdKkWDAY1YyqN+iivv6ebQveoqspW3NJIYXXZapiyGtP0xkRu12VdmsiNtiVLdUmeNMwRf+GsnVFVMglWYuPBdqGHW3xhnWGlOzutVmuhrWaoSaYGXK4K2Q3tpwRXhdSGhtGvrmkaaBpWKqUaas1Q++bRhtmPI2M5TzZhW25Eo6NvdVmKRnWLbEL3+XYl68Jq1gUe4ZStcrmoYGowLHxoVeBiWDe+Y/uB5brebBIVXhxSFYF1jSlYa4RmWsFgzZAEvWvujfYMNYxjZunxOFiqTDK2WZo2w6o7u+nCGUuDiXRls/xKsacoOGAsK53JLTlbD21X0nZBtemoXs2otCH5w/RYQ5SGtlJ906ha2pGwgfHR/wOW3RaH2CxzGAUp6rJ428Sv7oyhOfPCza13yv1yT/QXFlg7+JkEKnwcL7rcj2N8EjMqZPq7+2HvyPJYktFVTT0Y3DOGgmpoAnGp8lgdyiqn66qq4WyZ7YksgdR47rF4wBgVC7MXo7K7imL57ynbOFm94sLIQOgmpDnvugiLqjzWbWSq/z7qP7lqoTXynOqGhhFS1aVU1ZSccT8ejfq6ytU1eTTJ12VNH02i0bwuqw2d5xt6nblUrQjRUBZATnzFd1tbxUKhUGZY+bubFbjm23rxEWlC8uXj7iMM+N03eP3oFXJITFAhV2nWvATduB9jkIXjCOduQi6Gm4cXnr1T/ZsGEgllXSyU7j8Aq1diWbnNSsVh0TsKREsDG1SURF1XGZdPSNkwxHZhERZCvq+mmYFh/TNUFSOPWKCkvHtcuNgTFYaFo5XLZVrkmoGcgkVRTJjGEKexcBiNIflx22FRGdvZGVgcR95H3FIev9wqFAtsW3fS+Nozl5tnPfyE7JNNeHDwKxQ6OPz5FKJD5BOjuoSHmxtsY/jiGnWRhJkrVQyhssQsDI/TsGLYzlgBRVHuPS73imxb2XSOsFoZsBA6Mj5C1UzYV138f178wJzPoipGReLRbgC2IHN2IhrzXBSGnL0yyoKKQ0/F8vbr7QVWOp3DrbCSaSXcixejyvwirKzwibioChI8Z+PRbsyfMR9gdmEOjcLY1vhT23jCggsrUNpWlNLjd+Uye7bSd3N2SFu0LkeFONdcIZu1XZ4Kv0HxNFdOgmF5sg0njis876KnDIt18UtRYNkuLvaXT7t5VSIKwwAO0drIzNJFVlhaUt2s1FZtpKhVFAOjDJSIVhQYQRYY5ARFEXLRMamNA0M7B5phosUlCYK+IAiiom0t2vcf9LzvnLnHTh+P4zReutCv53jOOOOhiz2td7PXu9hXWPUT1WoVfZ08vsgq36NFS6ho+CHker6JcjhURU/FxTCm7XkkYNxY1FnY2GCiFKa2JvJ3FbOw39jraUZP07TGHzMhVNXq/SoGoQzO3aVKuMqvvt8qM4oz9xJQSVdQWXRxZY/skFVakZUlPG8XxQqiwiCjqDCZxc4YhYjf2NZt9VqGYWiaum6Rq3oCl+D3LbL2HcaJE6uebtlylVx4WzXLQEHFmXaos4pbAcytxCv2CljFwSZsg6xbzGaL7sjevHliJpOPPgxisfYAd5ILbcuZo7B22woy+Ai9iTorD8qTHTvw/IeNLNGAJBWzhGtdtzWGq3VRYb1vv8cH5Dt37pzch0QoRKjuYiZ8cVVOFySSLNO3bNe0p77X+aqjrpFNm6M79mBg67qd9eypnbQ+zJMd3faosoI3X8oEvuUHqCzQp/qmie44ego/0suyNQlTE6IEK5VZ3zWMRkPTVJbZnhy+08bFQvUydag6ANYJdokBKFm5XMINTKvjfjXNUdofpdMRayVu/QyceGBnR+7g62DwIWn6A9Pn6QOsJcddcgLMjK450V1vmhrpKX2Qmq7sENn+bxyhZGIfL3dbtVqj0VcHITJx221qS5I4D+9BxSxy3ZKqUiKfyxMrF+hzvZP76fijHLHSq6zOtDPF4VZP94i1OfhgWdYeuJjlt5esALOH53i+O/dSrp76MEl582g9U+eRf7BSqQ03u92xZvT7PYVlTsxHrgkb39/CQ+b4w7vHjzOrWn7xBe+q1a7yuCE+7WA/neetzqiT86ycH+AOufs1Hdhpp5PWV0Zf0VbcDgbMwj7J8yJYsZjlxZxgCa2NEr67YmVW9JTjppxAzI0plSbXgJDFfyeFpFtYtgwNUVjnJtcfwfUeLOnBhhw4QPuQVQYq6iqfx5af+77vPfJ9p9Oc+vqjnPdhhPqsr5aTdvSvTiU9x2H8p23po6Kt401m/0xugOtnJ5k0bXs6wtT407esUWLqW07G1PW5slQLGW8yxBKoXZnLmC4uaoZmqMuxa1La59o4hwKGwyYOH50ES6BKAvVncsjOXBhnJZemxCk4V8yKLJ4GxyjhlB8sdaxMGEGSNplFlkBlCnsNY3xRe2CM/xiEe0rN9mSCeSNE/HaHjmEnQxahkHxJUe0Wfx4ETWSO3gBLpEMV8htswwYJA23n3LHaWKn/L5M0OmDVUiHWvYHluPVg3DPUQdg813TPtXGrP8REopO8C0NjECgRkuwGRqhEDjLtILPoEM0Ri0iSJWyQIQIma1Npqk3ICMWsQjJ5+QyuPNV63ZsthTVbM1yeXW+fW56cZAXtmXSCorLCqorFIrsESrroyTq82om+wMJJPViAMQ1fGmIZu5glo8j+gwtVS7Fksne+16oZXVxUU1jXP8/WwNWcvce/nyDY8ORUEXpVpUHIrD0IoWQOcegoBGE7yEq4EvtJBReHVQjLNmTJRYn9ppOyELdtESdVSKYQS26+eEE73x+3WuOxwvq8ZvZmOLw+W26fUMNfeQpTrjMLJoQwlcohGekCbBWc36myhCuqjBuDjSNhLGObAP4+QaaEilnahdv9nlbD6a7a1mxonr5uLg+bVSVA1et1AavXD7OKURWg8Pgra/ciKyFZfABWHFvUmHCJ1iQMNBm4lE9pYgxyW/3HTwycFGpqW0dPzz7PhqeHs0kokUFDFMCkqwgRo5BFl4CwSrzck9+5E6wyrlOxilnZeHwBtplJMgInI10qClXG8N661qg1Hjduag/OKKzm9eaV5aOV5rLJEt4JFE/q0iVZx6IQTqjUtpjFo7AsWNxbHAFKsEgVLWYbOHApMlzkKchbZrsorGLWkYu1m7XHLx8/0RQWvqaLL7V+Gn66Xq+DwDkswrNfAi5RF41CqTrCe1bJRWyVhbkFrARAq6ykcKEwLg0s/qFwoUyyqTB5b5pMjGIVs7q1Pi/I/QsK683yj9eYMz6/XT4sI1HSBVaC62JSGMgUFZ6SxXXBRSNRZPECSDYLCx5RwMrCFbWWRBZdEiVUSLd26cED42xvfEmdMj5d+fT229vPb4cJRFXtQUol0aJwLarAIhUAeZmQhfCkwS6wqBRiEWz//v1ghQ2uotAWJXLJmQQqKQMJKKg4vTOPH589U6sZhjrBD398+vTu27fXM/RSWoAJVZFgiVVXfs/uCrFOMYuHIE6a8B8CmUjkIplwSRa5gMIvCJZMqML3sqPIy6gLsEJBqsBq9J+97Ncu/cF69+7t0TVrh6/f/SghsrCEXKdWGytvIhexRHgEsgoukvEOdA5c0TAUrMiVQH7RbccuTsNRHMARnB1CtJK5eKJUbBCrS9wUFdw6FBtyLQg5zOTg4g1duokiqEOxk4UOQm67Dt0M1N7u0e3gsPgnOPt9L+/lpT/xe9rWntJ8+l5+v5fKtb2Guqxa9LMBl/9xRZGycAOTsV4PDg/jtJ8k7pLxe73+/Xh1cnL+AQyGKctXFsIV46t+/zrasPyZhUemqgWwlrm0DTvGIhW4YIk10hWjAZXC1MVusCx11ote0utm8Wycugv8zfXqw4eTQllQNe43Glougt1DQnbRQfmt8BFcrKI9t6Zql5UwVmguFsje7CPCusIsBXvMsj68SuFqRTUWfl9SVhIP+oNnT7/PHNbq4XmRrz6cFj9BomI1OJCVLiwSmCqQ1t37DZzhHSzzKJd04F6J8ugwgaJQKRyWuDgdoetgxTBV/Z9lLmOhZA+SJPmYDNO3PYeVF8v5pkATggWUqCi+XmGh65B7LR+sKx2Ui1nUgFB5lDZVStKmaqnLWIKonVv6lLEaOjEqC0uIuCgqs2rRvhX3uvFw310yil/5PN9uiuUPQvH2KauwXwYLW8kKr/udq9HVjn83xB9LVaAq396Nf1kamqM4pBKpuXTExx1A+EK1wNpxRbjGMhVYaZr1emmW7jus7dl8cj5fzvNTYnk6mzLKWFquzpMOuhDlA0tU+gbUqgWXo3LS1pZVWHnXlJSaK+xStjs3gsbXWzGz4syt1nxbjLfb/HxFLB1JrVh7JYu23vCuT7Mis+6JqmnvgLGwdbVYZay2Otw/qczCq59Y9DkXRyoedbNu/2N3cJSMHNZ8khebYvFr+QqnlrLqPUisqlz3GzRqYG1EC/oeVPwGAFJz+eyCTMZCdiDSeS7L/S9a8Tguh4dqcbnwCeEo+ZQko567HS9OTsfj9SZ/byxzgYXwZSMS0q7GAy9tV0BRPA8MRF28KwF2TeK3OfU9wHqw3aiAFcpirp2yskuqhQ5MR0k6cLbjC8XR+LxYbIpv/l1zNXnN8Hym2aQX8lp5F3WAyvdwjlO7MkPqYiyLX6muMcx8JOQoC80VRVduuqzGTioXbrujfneQjuJ04FbreF3MJ0uMUK0WbcbsQm9JPETPMYSnP9xfo5GuVqyy3wATwB6l4pUmfSisykVsXqpk+IuMZSqqKo/H6sJHIPh1Z4SBMMtmmTs8HY+X+fJk+Ss/xYgku3ETwS19Xa18gNGhSoRF7LJYfBnihsG4UZXLknehYkXMipizo2pXodctXZRbH0cHw6wXp6nDmo0X81/LSX5+MfzMk599nmLjKcLd5gdBpfJAlVpquXYOnf+mfsNSPqsuWUl0kIKLNqfyNWU3E730r7j09Hr98XA/xUwYHzisxWoyWRwtNtP1ZysXIirZ2SO8ACkCcjBLo/3VkigrCODa453ZYBZmeaRCoLKxl2tFkfEXLysqDnWiletNb7Sfxt+f/bPATyb5Ao24zH+EJeu+V2NFfJFzm13ccf9jmQtLIFBeQK7g2vUbIU+GbrhGiLGEwqlt0qKiKx7rk6aeXT+z3v67WZwlmcPKF/PpeLoF6zM1oR4yWFIsdjGrWUICY/Fjq1Yo9fIDCapFPzIa/qdcouKpVyMseobvUVJ9CVV5tht0jw/SZJjtv3NZ49V0O93k0+laqiX/VptQRuboap2FSKlcFgHom8q6ga3bdbV21n08UpbhZJtSlrk8ec/F1U9n37Nh93A4dFn5Yjo9yYvpKV8sXjOWTpkwcZdLE/Ih2yOs5XKwiKzzxsKEQsGna4aiaLlYRU1o2d1+eR80VltUTenRftp7GWfPs2Tgnltn07PNYno2+cksdlWbUunSj088N1yvQFymEjBUJesRXYXWWTdEbyx2efhiTU3Y1JbYq1iySjfpkN50P+0PZkfpsbsSHuSb5XIxHo/B4sPSYomLY6bAdWm1rleqtrDICxYnrOqFGRifdxvLioC0BeiyAp9eJpBiwaXjfv9LN+4n6UHqso4m+dmfyfR4vMYpYCyFaYPvqr5+xQfO2of1YtEh6tMIjVzCIldLPr5RFhJoO3ptqCie0Xg289AP1OvBni5UNdbL7F32KRkedt+51frLxbmFKBHFYfylZ6UmuwxZY1QTBlLhQwRR70UPXR6i7CIEU+1DBRZdJNCGWoguUCS2wspuSUH5Em5SIBlFFwqKLrDYEm0ltA8F3eit7/ufc5xtPlGPx3Hm/OZ/Occ5R59U7k5U7pbHH9BVcGzzYTktlEDZFLEkrkAlswS6/WIs8xXf0LJahv+iZJLXRumAFLd0kf/VOVEdMm7kYlnAeCeVnCCbN33GZLrFUlzHMt6OLX0rdxwfDg11G75fKdcmxsceM2MFWAEYdz2duzYSa/Gb7GSsJGSw8AbbQirDlWTJCJBwSVe0iKZQYMpcUjTHFy/XMl7kwJGYL8QJ12d2br3kZbJe+BLNcHukMj5R+fR6hTEXFXgim+6K7AAM1tpw7969w6ASgNGbhcL9g/StZcQSWDJJfQnfztJCGIgpRNxU9qvNRbDg2IHZNf90usfMIDjohF7f8R19xzPZcL/1zvf3+I13E7+nEEu4RK7auzOkqRZrMFewYK0Xc7FgzRGu+7m5ogKtxc+wEqp+VPUvDgLLUKXVE6nMNDqwSGWwyGjiWO2JDkGz6gk/PpBKsIY9DAkzmRDWr8r4+Lu7Y2N3BYtcaAAftD8ZKjTASMx1by6x5LhvUdLtR6AEbSn06j83e8ZKp8EiToiZS8qYa1oIy6Z6WHJ8HFbnZJPmj3l9GOmuz2TC1vpZro1VarXGyBtzAVfFNXZjOiDulfvFo8EacnIKC+USirnR0mgeFaOLbEo+8xCv86j/QTum9YxekhhkBBaYDBcUYJHRVlJ06hMuXpILD72EuNvLDHjZldmzW8LdsY9B4a2Rkca55UZJoZOvisHZMkora8ESBus+CiWc++ZHmkuHoLt/fx60+103nUQhj6lyUhELIhVcMOCS6DJUlMEyLSAWvVCwcBUIQcyR/CEMCJHj+3ZuDWXCdyNtv1yu14e/ECaQjFjDWJS0uwXHMlggzEk2f45KttdWwvtV297vprH8/CNab7Cwx40Pq/cfKq5mqdR03VK1Okqnn843kPmNdNLoHdiBUAEqcsEJ+7xdW7zjmZPh64QTt/xGzb/VbT/6n0pFv8HSodHDgt+1BGu6wpI0XwiwxDdzuVExXFWwkj2swwVJJbmqC6wqPlTKy+uH9mhOCiVXpB1zEpVNKsdelIToTLOODXiZM5mzZ3aEu+Ov45WRsfKjPXXGViBNFViLVOSSoyFJFBZMcsL+wzbGOHk4oaZKDUGpoZTjpGwbOTPP/ECudJqxqFVgtsSndUW/yT25jRLFqiehsZBmzGtoOrDIBazNGcjLZrNHw1h3K+WvXyuVxutJUElNFeZCTJAKi+JzCyyTCaflgNNaIOFWkm6Bczkii+Iay6rrChgCCZQAun+fTgxrViWDVquoDQoFbiypSVxQluj0sFAlWPTCzeu3e30D3tG1Xhir7E+M17q1WhBbZrSghxEmZkGl0z6OPGgJFoeiC9ju/vxTvH7LcQEvoUcjgRByOdWrSn4ocTvmNWYShfUWP+lx88TBsVj4kab266RK/1XmMsG1yGDtPpttb/IyZzObw1gTv379fVRuVy4IkhnGq6EXe62AS1MtGMRZxZw1f3yn5q0/oEi9XaJX+ujlLwn+vxM9a9CCM0H7gUVKSdejOBkKS3r5Al6yIBsYrCFWSHcn9jLBZS8mFl5s2zGQXXlm56uXz0KZ8Oufn1/H/Ea5pmNLXYvgORcsKuCSMG09nfu0FYnMQ3tucM593mA/iu/5cHW2/sFxvKcSq+dFIgBLpWxllecusQ5j9NXDkkJODlRQWC6NlWJFWnNJWIu56JiLgTVt29mdO3eceHb9+vWQtf78nOjWvJFatz45VciEOzzMSIEJ1YxrOPtcPkYsIjTnsqHz57+lvRYuNEwLFRVor8XjCYBNjcXA5eYYOmyiAw0JVirAggwWoFIpcULhYg3kUAw4caljAxdfXb9zBQp3x+1yt15vjHXrSUXF6zpwMdxmzEJ/bsQBjlB9g7PcoEhx48bsODDz87k4+Cre6a0PVljN93gTz+CaMyc61YEfEkv5EzVNWyuMhQ1SlHjhJKyUo7goxtbF61cOiMJYjXeNer3+qHxYfQ1EwxEfatpZrykIjIbpyKUM7UDvFy7sp5G4+plmK2kopeZt9EppVU6AKxazbWIpqpgVc5z/sIYMllA5MUe4iKX6cfQYqFR+KEOOV3cOHDly5szevXvDXyMrte4jv+wP1+UiCBuuA17WIVqzrFlKcrUHf0wRworHuVpeWFy6pWIIqG43E1q0F9zwBxKOomq1WpYzqLFYyKUgg8VOQvxUmUs5ZUxJwEBlnQDTQLFYvHw5lDL8brvdaPh7hvepyXdmMcY87r01OGauTP6n9MZpLeaC09/icbT9udjnRggrja7paZMZ0WBFojGHGU888B4KlqWxHGI9dZhXiEVvY69HhhTMBdlgmiqyAu0euFwsHj0FsBBWu+OXO8P4yrVZLoNHCEUq4dKatPxtoVFcUga2Y2z1N0nxHg1LJOKJb9dOC8d3vjFnHm4Q4ebQXofZPzmOtRrQ36NTDZZFLIuGUFjqLyktSHG5dmxqdJIU1rbiqaNH1xWLp9aFnLDTLXf2dNp+Z5+EFKDiZAoU+rVVEDuSCVWyQwOvPpcMDxr2YoOgeI7np3mt56gQsIjF+nxBNm9FosQihGBFolYswELjIxFUIUEw1qZG5yhFKMW1+fz5VefhgsVT4SnxTs0f7nxqb33FNaQJthNkvPMptFob0lCzDRZoT7OFFKnmzRtkAUcPgpAcCYgJEY5ILqp/EE3k1ikYL0qsOWwtsWRtBqFIQS5wgkqLVNGpdNEtJ9ecLwLqVBir849yM1ZxIorCML7AhBAUlJExLyAWWgriImwhSAoJsoppbIIIQQhkXRlhtxyCRZYUSWElxHqLpBnBMqliYWdprY/gf869J2fyZyP4zc64q8nM/eY/c+5dIeDDtxeTyfqmo1I4mIyjgnACP3/+lCIEi88XMsr3X5qide8C0zUu/vmiwp8MVkBnsE+/9OVfU/B7uVyKVfL74gLuGPGP5fK9WDUgJY+lNpoQlvwENCst2M6Ds4/HjxHZfdI6L4tytsarcVVHRktS9hkjm5VCbFaxdxcLDFm1spTIUjl9jEtbR3ZvsfA2gjHKkFUa1qABarAKb0Fc6CD1ZMsKTmibJ2f37x88ePDo4CFpYd2xTter1ayalkupD1sZJqU0q1pJmoAdPyAvUcOKpcYS76ecIAnEgJtpAwq3GnJrNlLB6sbLA9BqHT5krXK1Xs9m8/m87zpyMCmGtMzKtDJg9W9ijCV3EwcQDY3repY7uAf2l2kCr3otkbBiumKlWq1Wu91+++bwkLTWKyypSqw+cs8JVuB/rJrXLQG3wq5HvcGpPvxkBiMG6atoZlbiLQ2ykaSSbOyBMiHLgvFDGzx50z58Q1o9rD4GnVHev8oliGYePi5lMgZbYSj25FgNgtoeUmcrJbEJLRjEQgWhy+BRMy33gtjL9pO37dZh6yHPW2W+Wq1RiOsa3TeW2LQKW517VmSlWlWR/WLIxEMJe2yYwP9Fw5dSSCINIGIowtbBwYP743KnCGfzGTrG7DtpRcRlD+Zk/COseq0eIDuKTKzUjrS0e8YKr5ph3voIHnfLAWlN5rCSnrGyc+hJ2QC7LamiUjiYlWnZfJlSVqrFYkmMjK7mXl6GiBVkTqjGp8enw9PTQdkjrSvzGZzkF7G+nSKiwzeDypLKuroeyMr7RY2ok1b8A/5ABk2h+UhIZ/OTtqTnYyBWnNZqJk5l2cvj2eSNdhnJR1AxxrqFSWUhLC7BVC0cfO9equVT2iWZZbGwM9kM6a6q9f286A6k6XVJS6R6Qt6MtZ0ZuIyqWTAMpeVZCUEoVbZrMO5ehy7GHT9O7wk2PUSSDflkfl52x+NuwZ1QnQaq1QSmFI7CtgW2fVL2YPkUZVrVGpTNSRLqi4CspE0Q6PdhJfyuKE465WC682ukJjgAeVMTB552k/ByFzs3kqpVKVs34ahwWjVme5WFK+NklBZIqmCVYdTeFdPh6fFx0W1RWl1YgUEvzypLn4oWyUUP9/SbIaiRS3FatV0SwMvG0I2vY1e2xBpVng+nw+HZ2fj4jLTG3UCvrzFVL+ConMnId9jMOQukDmelaXkDQWWSGL4E9wpXogpnMYAGD6ZFUYyoCMfjENakz8ttIphs2TVZKCYVR+iY1n6SyO6V40UDbNZptR6e9o7y/JyLUK3KySRPmWwXl1HYynu790EKh2azRp3FQseBQHYp8eMl1+CE97yaDnvl+ahTTFlLo0KTz2MfFTZiJLhHyMOBlOE26V4paMnWILHtzgcVVkuM/tFJcXQyffmM00JrL3XmyhNDK4nGTHZcd7ojqf/A/3NME2uo136sID0y4VXnqBg+7Y+eFdzgFTT4UYLTxjN7SzMtVyWSxNv6fzhJ/akUdoO1mDsWm3vdxsfeUYKvhy92GzxAKY5qAVXzQROW36ZaVIgWTLqM0C/l0qhMy7k0r2vYKmImZWnlf9s7lxUngigMK6KgCxeKF1xl4VpcuLK7IRcCgdgGIXYIYzIxK28JQrKxDSgYcCMhC8WND+K7+DJ+51SVpSdJe9uJf1fVVLp7Yn35T52umXRGZtWmLKd3x8YtgBDrj4ClVGx7sUKis3PAjjrKgnna4JL2onah2HlZCnRg3YQJfTv6YFROy2fDB8Njm+AhQm/efDA/L3isannE721SJiN/SCs9UKJTxrEfmKDx+7/7K1hyyOvi/dGzyf37x5uRDUJ+eYjevo1YIQijE1IOyQbfIemVy3Ug0roH6uJ5bAk+GSiwAHNH/QHuJ9xsMGw6Hhust2/vvFV9iMESk0Ycs9JVUemIq6XgPqkfMIsK0PlAIwXQQKVOBaarcofaZsS8KopxabDuqBQrUvl0DYhRQNkTf78sRdKmWvaD/jBFKphE90flCO3ewNBAcEW3RNEGq4AVVAF1SbZLB7h+mcrkEHUPJlWt9nQ6Xa+LfHbXYJ1sJCiD7MPhXGzIYDFQAcuCWSrNFb/q1G6yR/jkoWqiIRHY783G5ca4lah2sYwNe3yLy6KDUCga5olo41TaTyQAe5hQgKp5PSzytJevNy8me7Aa2AWWS1dxtLu/gzgojhkmT/VbwReuT3uRolPghLePj/u9dL1ZvdvYudVO2mAlYO23KqoK65BXyGCZfGGdOsgEMO+WRiiY0Ot0zI9bn8pybbHabfGrEYOwasL8GReFSlttGKndrjGcripScOoCBaccVlEK1Ha9F4tM+MZh+YFXXle1vVjJpFRRIHk6sYpabdWej0eGKeXvogl6uGFJuEb2cqz54u1HlrrhimkvrG5Qe2WozNQy0gOHqcKs2kWKRmFTZOLOodqDT+V6jHaw2kLFCsq5dfHwi15hXrVbUeEQvzzfbxZhF3AUKDL5W3SjVTCh+yVGiWYG6167sX0rOqoYXAXXz5hsMHIMLvo0sgF43VEFIDZD5O8p05vTgmqqIfHXQjOL1Ux08XTnzpG7xlQPz+/+IyqrGoXNrpSUhvKdlEmoDBRYYlYxy9PUYEkS3DYgG1pXoNwrfb3/jqumG8OiiWaR70SR6ApEMIn8HZsW6+F6PJvl9/I034PVyECLWJfs2G5QeevPwjl2Skzgu8PHE2owJ6rmFWaW4xGkGHhRDspSgcWsQnk6MGtCUkaWJVnWmMR/1TLdEBkmqsib6lqLJW5QfY+NYsXSgQ2kSOQ88lSa/gKUpQJrVgjVThDWkyzRMomvphFMyiX1NwSE/IefziZ6+ySfWAJMjAqf4YYJqKCY+napSIcPicBUtZPg6/UEKrBQBRYyfv1UP6AAxoa0dfOKLKhOifTmZfkYofcpWrWfSu8MfYZRqJcOLFa73mzX5eL1/EatgsmSVYsTpfEUXrB83wcKJBSuSl6hZ1YUXtCwlye9BtattVIN0l7PzK2k3Ww2WcE3sk/PzaD91Pp9KI3miEDHKGAhoITKKmY/K+cUdFA9Sr/JXrfaTewiCutJ+W4yGR4NjxCN12SymlClrGjljCg9zzweDocTqZQVm2gV9fDYaSV/Ovb+0wo9/E7HD/WhNvIM2rx+XYCT5+m9AYbtYInqbEwyUuI2a1Al5Ts1kraTnsgCUnQniIsDjVPmSpawoXpWb7kNNbklxGk+QIvy5YpfrqC7dx/ffazFiR1O7LvtVBTF3fHtIi/GqMj7aU7uy2epMuUagoPdlNHsdDpNBFsCmYxLy50tw2acScJBTqFpq60Oi6ahVdkSRaJmCOPZWoojRE1uTBJBNligZefZ0euRADxG2roelE63owqG3i2KPAULKGEBS4Duaaro9Xopm8XqzFFH1GzVGVFdXl+4xDQ1AbsEa94RfsHSNX8wSFuVc4qnaOmTiGbqTwccoXFIy+WX8sMxUEoVBg+UWMUWdnW7Xdo87/fzAioHlQPVh2GG5AFgVNgGPYM1XyzmCyWT1CHjafMSqymUREaKoZygWNglEpsEL6M4e7cSuPAkguSdmrmg4/kHSxVIX75sPwwfYQeWQOClXcyCk55CUW93+71+9zZQoLHyS/sgYE4OVpHPNA57eY5l6cDOrSUv4AI0qERyW1ST2CEe5WLWZr4RegpG7dB1WDTSgyOTE1lWJtC0XdzxNKqBBN1y4YCWX9Cy/DAcAdX1KChQwOlIu6hwTP2im/b7vTxVa/o9JDhiHpQqonCArFunl4KlcXhPDKEnbIwQJOYbgEw64VIqJIEGS6udUJ05JJmMSSRfmzoTQZoP5hJ4zqJFp77dluXx/ZVCdT2NlKLb7xYwIVh4QO3nfQRcLihChEUOStIGms00VVDBolqsM1AtwQJHxFCYZDjWpBKQ0BGFfJE45GKgWGzkR8hgorTYIbFaz7ZvM/k+HG818Uk03747ev/+/dHk06dnk3ej6dj7AYJ0dPiOsVAoHiJSxe0xVGJLXnQLB5UW4zVUMOGfYAGGBOucwTqFXeqXcwzLCEfp0OKOZGjUrLcEFCqNz0w94giuEXjS25I5UQJTBw3my0X25t3k6Gj1DKDNdPTu+FGJKQw+7woLIr7oKIa6pZApFR4w8ZE5BZ53aswPVwURGBMGcl6dPnXCcp1VLBwbqGUhipoU/KrjAsIZvLuHcYkm8DrA2AMfUHpL31buss/aMrc6nVbjyedXn3lXdzQlvT2+PVod0xF7NLwwBbc8EYkdXOdcT2pK9tALGM4IlERiv1hPp1hFENLMZH0r1aWL02dOnbRYJ/8JAfIPgp34FSy7p/oIe3navxmSebLYpfwh1C6kNnaf7doz7GHtV51pD9hvqjrjv/7rv/7rvyr0FbHz1QOAXxg5AAAAAElFTkSuQmCC", + "image": "/api/images/system/snow_depth_card_with_background.png", "description": "Displays the latest snow depth telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"cm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\\n\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/snow_depth_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"cm\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json b/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json index 7442ecf6ec..8182b1cfee 100644 --- a/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json +++ b/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json @@ -2,7 +2,7 @@ "fqn": "snow_depth_chart_card", "name": "Snow depth chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/snow_depth_chart_card.png", "description": "Displays a snow depth data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json index d2b9a6f342..e9d679093b 100644 --- a/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "snow_depth_chart_card_with_background", "name": "Snow depth chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/snow_depth_chart_card_with_background.png", "description": "Displays a snow depth data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/snow_depth_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_card.json b/application/src/main/data/json/system/widget_types/soil_moisture_card.json index d5053e8a87..bdaf8cae80 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_card.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_card.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_card", "name": "Soil moisture card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/soil_moisture_card.png", "description": "Displays the latest soil moisture telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json index a5d42b7593..a3be0ba992 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_card_with_background", "name": "Soil moisture card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/soil_moisture_card_with_background.png", "description": "Displays the latest soil moisture telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil moisture card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/soil_moisture_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil moisture card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json index 501f62b8c7..4ae700645e 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_chart_card", "name": "Soil moisture chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/soil_moisture_chart_card.png", "description": "Displays a soil moisture data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json index d7179ebdc1..9012d5425b 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_chart_card_with_background", "name": "Soil moisture chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEV6dGBdWU9XVUpSR0J/eGNYVUlfU0tUV0lVS0g6NjPW1NPY1dTf2tnd2djb19bS0NDU0tHa19Tb2Nfg3Nni3dvh3NrZ19XV09HPzs7k3tzl4NzZ4dDn4d/X4NDa49Hd2Nfo49/q5OHb5NIiSsHe59Xc59LMzczi69bi3trl4N7g39fa4tPk4drk7dbb2tXf6tPd4dTg6dbs5uQ0MjHW19Lh4NnY2tPf29dVSkjm59tPRUPk5tQ4NTJSR0bm69vk6tji5NnV3NA/Ojjl49zj5tnf49fd5dJfUE48NzXm7d/m5Njc5NVegz/Z4NIxLy3t88/h49JfiEDY3dNLQ0Ht9MssLCrh4NTe3dTn79bV3s1Zgj1GPzxDPTpmVlNIQT9rWVbf59PU2c98ZmInJyVjU1FYdzu8t7Xp8OHj49WBamfs8dXk6tJwXVnk7drS2stzYFvg59jh7NO5x6vHxMOvraxaTkpbfD7o6NXi7M/c3tbp5t/a39TNysnKyMa4tLLv6ujn79rm7tOop6V2Y1/s8OKsqqljkT/R1M/u8ubc3NK9vLm0sK9aTE3f5c/i6dzDwL4cHRvp6Ny9y69Vfjmko6GIcG2HbmdrmUKcgXnP1s5UcEDr6uBWWU3z7u3Du7jBx7eBgWKUe3Ts8dvr69lOZz7q7d3RzcqPdm5JXzzJwL1iYWDo78/JzrZ9e3lyiVRDRT1FUzxQdzdokEdPVUSzuqzM08KEkGV5g1dshU4/PjyEhYFng0iws6i4wK+KhGx9iF6prqJKS0ZaakOYqc3S0so9YMRnbl90k1RPTklUYUM+TDmkioGgnZ0bGxuLjYiMqnt7kF5LcDZwflPGyr7A1a6UkZGUgWOqnVuwlo1jdUd3eXScjlqZlpVvcWu2qVnSyMJ7hXKFmcy7w9N3jsqcoJicuY+Lik3g5sMuVMKzuJulq5h/m3F6dkhcZVNtZUvb0bnV27iboY5qhchsiMdScce6oJyQlouIelqrt9DGrKWhs8tifcYaGhoWFRXFu1VnAAAACnRSTlP+Fe/vt7C/v7+vjUWCeQAAO5xJREFUeNp817FrU1EUx/FUFP+I0g7Bh8NDolicilUwAcnLkE6mU4I4GlQwIC5ODg6lJIpGhDpkKFJiUqutbdOqQ1odJFYXCwVXBQcXZ3/n/O5594WAX62NebnJ/fS8l2hqbOxoqt9PpVLb29tP8PVcWlvb38dv19rOzuCNtbOz1l5f/44+fPjwUcL3lvYUXavNRcX7qIjmUKPR1b64ut1GoyEHorlarXaN6aoV9FiTW1geRZE+sIhwC8mCp09bS0udziet0+m8whaOjY2lxlKuR9uMEskg7fYAEbMjkPb6pkEkQpYMUhQILQJhpBiElFosaQgkKcFi7n5UAkhrCCKSI2Opo8/peP7cO7BZ7La9v7/O2mgXGkrahHxQyNLSx48tdRgkIsRThiVd5CQRIH4iJlHLMEQkkUQJIQwQ9OzZ8ZRsHYxYIuMApI05gLC5vqkJhpLBQBxuIi2RWC3vSEoEY5IhCDZGSLd7rUYJloJCiUGGJGLHSJITUcezIwKxzCEpA5BNWRpFYmnvDqQ2IZyxQXBitZIQ3Qwp92VDvB66X2DxEEqYvAiW6mKu5Tp5pB5BXOBH4iEotf3GMdbsu+QYdDjKCiR0yAF5PhSPQwJkDhNwDmRzidz5DQRHwu0hB5GX0OLVXGXkopYciQSHh/ACRms4o3B52Dg2pWJUazTkYpQrDpBdMsRByFLcCMQoOO+xp3jX3VGIH8kcIV7SoMQgCQkpo5DBzs/6MlrU6q5byerM7u/1eqvD9Xp82LeRbNlQdtfIvX5R8m7/aP/SWz/UYZCBSJbzp7PZ7GkWSuMTUqlUquILt8Ynw1COFNDExEWt4ruI5EGTgZTJZG5mUBCUT5zIBbl0Lp1Oh6gw7prU5NaET+9PpwMtjcN2t083MDt78dxUZWpqaisJkTP/T15LOsaVYcmzhZo6IGFJh2rTdACiEjggyeXy+RwgGh0GGZH8DzKpeyjcnZ2dPYeXBuUvJLDcBmRXWs4zMuiIIVVCKOFESGEJSEiHMlBGKbBIeHahYPd0pBFuSiOQnEGGHbJUdkAJBlKZegfGHkrBYRC+0oijCgcleCKDUBLn55E2Ryw5A0qZFCS7FwVT1BAlAeHRmEF+qInknJ5cW533CJBdg4T21CHXewdSiY6WFfD8wxi3h0ByjlPo5MmTZxAUpKgF5ZiNxEsKhRBH8dAgp04jOIZ1lxJCJEBW8Gu3rgYr6WAcyUgTLjL8eUUGJUaxAlwuAW8m9uqmXBBIPq8HA9mR7t8HZYifBSUKeSkBsgIHAsQzEB0Xq+ZISCYTJYdup5V3eAol1LCyfuW4V3s3UkeInZKJo0OlUd4lEkJYCgyFxDsjg44KDEZBuNcgcLtXiUcZIDrIuKIphZIzyCz8S7kc7zWUkg6eXfI6LmPwHM3mVQLI27cK0X/6rxTrprB3PDA4j2ZzGCJbZwErlwPmxyEMdg+J5IwVMyixn3pag8IcN3h2+eTCygd6SMJn3t27uEoSEPnoL9YTZ/3Gol4eeE+tNh8eHDwgpbSxuvoMkNd/e3jaX78C1q9i847iGU4Bh3R9xo0kOY2TSEbCn7l80iB85OLPrO7VoRM/Ki7Gofn5eaHcgWTVTi39f1htDhCT/Fg4uwhHtVJpNreubhxc/aqSysHiu7OALC7s4TmnpwN2uHzqFN5ll6f9PNRBiYOcmgHkhEWGQXLKKJflqtEzJ5sVxszMjBtgRjpR9o55dgGSO7OrHQeJatotIcg8xjcWFhbOvtbro9nceIuvrebB+xcPKocGmd4K/r6cDqo/9g5fB/1S6WDvMNNf6Mtw+qVfn3+/rv/eWySEDjcRu8rVwTKAaGXkHgHFpUvz58+fvz4Pi5Rh6kBAXL6sFEh6rzqE/CPL7mJbCuM4ju/aO6Mk0l0IIS3TpWun0bQVrYSlITLGnRMJi0YzRmxqUg2ZVsax9GYsTkLqwhou9ATTUtIUF0Y0IcZkF2Vhynozt37//3NOj5evraPrlufT5zynTw9t+3nUTMGi7JfRuMSOwYT9yWhicNSeGH8StucBMQMyMbFqaNy9ojiUG5pokNMTFbVSzcrpfjm9Hv9yfxtwZ6q7eJ2zAnnJAQKFEQvIOn1KmLG+SdSJwKC2evCjGljUxI7Dh7dSYlKUCl7a8VpSxwwDYr4lKw/GhuSENCj6eMteejIymHipQcyKnNtfsufdDXfyDWU3IF/dxWp3Wu7XIMUjmV3Foqyuo0jBE6I7cLxrEnyXIFwTXv7FsYZwUAEhwg/z447oEDyGHTVKqVipVGjTiLd1OoRX+gN5aGRGfjkTZsbo6ODgg9FbI1gsEkH2EkR5fusWQcrm8hOznB4Y+OaupuVVMK1iyIBbVeGgxOg4OGjR8kHEwxbjYxWkteA4DMdBqkbRdzvsAMSQlB6PFymG0BphBj6G5LGZ8fGXyUEuuX9sfH8iaR95MCbZY3k79iKA5GVaLiP2EfsMIKN3qu7qXnm8wV4sEmT9EXdxtLIaGQpaGqsofTmsRoDg+6vXeaNRkuhw72FA2MGUKEPgQPALiUFRpyY4QFiCGRHn3hl5SB56Ygeijz4TIyOJvr7EWFKSyoneMiDqjKqWl6tlszk/lt+7d0bt/vbo6/CZ7GiDMpH/Fs5l169Xq6MqHwgriSDaYgQITm8Mwe26PalUCoMVgYMJYQg7olED8r8EkPAUN1H39ClTABFtGpPll/Zs37+JvTpVeySSNpmX9w+3tQ0Pd2/B8yDeVhknGT5l1vaJRixBNAt7rl+/noquMzJmhOIZEWvEWCZY7zXIKzT1agoQphwNUjt3YmyJmXJvH7ds8G+HkOzcaTjwSRBIuvsbcCdJ/qqVErtqIREiQEgCBhxnr6e8/0KMGcEaoZOWEZ+5EDu2AsIxBBepcsTg913NktSnV8AHM/6G0BsSmAGRdAhPiZCsMDYVnBWJbQgYnJgTzMcedpxNebyrQ39KPFFNQotdnH1Xaa3k+FWRY8jnz5/rfrx/j6ui7wcikQg5eI+/tA/N76u1tJnDyJ0ID4uwmlQE6W4jSai/QZf8zUDLEUlqAdKE+RCOg+QQEO3ERUeO4WgSCiOmaBaVHAz5fo9SIiju1CBLFyzA+BfQ7VJECqeRgHA0PRpkOLQluJwdWg0C0kB7WoYgDcYQmpAoOTAhIaQzmkhSeyHhvQ29WzQ2qq2iTk6d0iDff32hlPb29ni8sdFpMjU3z4KEI8UsoTCKx+MREVts/d3DYkr22YJBhtBSYEiYvlitDGGJVat138rV9MJ//SAfWBs3hkKagvNCcpg3KRfhWCXe29MBatW381aBCQRKU0JS9+vLByptaW9vpBaaTLObZ4OCoLhw7Nhsk8nZKBKQSE8pYuNIY9sRYsh0KBPGlQttSXO5LP3NuhwQIRHXciL46ZVN3sPRKBhnUymvdyMZsDgI0onEDpf3uHTWswbNXBBZa0WsrbhVbj+DhCAfPrxD6d2YEoYg02y9AwnT6d6uxpuFwqVTXYnmrmyhuev0qUK5ZLOFSxk1l7A5c0pocvro5HR1OqcoZputNads2VLKhTEf1VKrkgvvVXKQiHRHoNPrSdF08IQA4tUC4a+YAQedZFBwZ5CKWCN6A+8f3n499epz3VsB+bnb0t7SMrdxETUPFlFy6bx5i2KNXYnE6YXJrkKskCyUC0lnUgoE1GyhLMUiWSmnpAcmv05+7c6lFaVjJXwlDP+bzbalGg4r4Wz4WzioSXgQBPHBAcZ5XuncOr71d3b6OrGPDyAwAvzuPChOK2zh+LDGB5W78v79/dtTU3Vv4fj06RMglhZIqEVzCcOk2M25s2fHWgDptcQsvckLFwqx9pglHwj4VMWf9+edMX88m55u+9r2dfvRftzns+XzUia8I4+5KbeGs0o+nLHhSTXmo6cn4PN7UmCcB2SrywWAhwPE7/MFatF1NhrvJu1inDjV/JnTmeOXj9uv6z5okG0WSKg5oNTqOjc/Nv/YqQPXAMlb4tlCbwEMyznJ58egs65sPC8paQEZJojLXyqpGTVTyODyazmgZFSGWMXhDYYNjoD/MjsAueoCBIYoSwiiS3rwYevRLvsYGRYnl6H/MqsU39SRgyFr19TX17fM+adTB061LDjQu1SSOgodHdKBQrzXctMhKT6/baer4Cr4fCX1Rv9k23Tb9ORk98Y4xqUk2n2lA3FLINCLtwtqKajiHEAOZENwuMjBEI/L5Xd5PKlolBwuQBwUntUejh0MMSRG+AYgQy8qlWLd2xpk7Zol9VQNUV/LsrtjI+ro6MARaHE48LT5/X4M2nMV3Ti0vY3afmjPjcsu1zY8qxgJF6AweEjwx6Y7tuqOqxg6Q1IpQICCA78fDEcPU3D6EQ6jPx2A8DXsSgVrRINsAwTVQyNaorfG4YDjhEZxIB9iyEmCpA5BQpDth25chgTPiUOT0FdAkD4dFgcGnqo5NvPv+RfiqOcpERCT09SMZs3SJSahEHefvouAwemXp4QhixcvMVosWoPWbtt4IkQxxbd2rU9IdMgNA5KCZLMBwReW6OEkAUdtgZzcjN9DEEjI4fKtBUKrBTVSeI2ebWRCsCG6v/n08w3P0fG633TaX0ybVRjH8V5vYw7Khqvounghq7WbOlYqbiW+xcUaI4mGsgtEcUHYUHSwQKsQEY2pTglmEJcZzEaEIBBv9EKzJRqGMdF4s+iVxmxLRM0y/y3ZojHx+zzPORRi/LlNoNCeT5/z7z0v1ygJEQgSr1DCVkskHs/2H55jW4hEIUg8pFBY07cOvfceJQloDu2x3k5KDulXNvESHHyDlYToD8Zra8Ilic6hFbJGr5X48NnQ0aN1/Hc0JCsiFAepFIIVQw2aIJvtHxbIABem9ZlsNggCrQn/LxD61sNIFHJaJVkkxEOaVxeELborCI4wRXM1STkHXXstBYiT+JQYCiFApCTk12wQ2boViY8xpgerq8sHs/39c3PzAtlZX38mRSDkRne/FgTRocJoodS3gNBHkEgf+U9FmnCk2Na6joWD3hOzohDmCAq5OhuISIyy1uEh+y2h9olvJT8EkQiSyq1uZFg9dnS8VF39el+q86Plud/mlp85sPPO9JknzqVqY8G52nNVQ/HwdF90utB84I2HH11eXgbiJbIeeEfOGPfv0o7lIAyQeDhZhoTvoCgNBAY0mS9LM6ZK2GpgKTnKie9aBzX7Q10OgkMpriwe0jdd3teXYlmb+2Xul/lf7r8tfebs2XPnp4NXdg9VDa1/Zfp49Hjh+Ee/zB357ci89q3TLyJxK0LMJp9SQdKrHEFNsqwikUjm8yvTgttaQPGzpkoq1khgaKwqHQcPtra2ApmYmPkPROcqgwz2jVb1pc6/C2Pu5+GzB4DsKw4JZD2Q3tFIX/XxwpkptlqP/uYhRNbozkYUuXyCv8+b49mMOoDoQE9KEysSJJfL53LJfNK2ekgMQkOEYjWxpqsjIXEUIEjWQCwrEi1JxzSdq6/4Yf2nArnj7E3p9Jnnz50/P1hUyAtDkZeqj0fPTJ1Z/nlOIF4i2yZWQtYBsocNnkHS+5zjqZNBDR3L3uuED42jmRuNYhAkriYbzaIOuXgyChANECQzM0Ccg1AOP0wGb7hhsHo0mDx7du7I3FvDHz2efvr8u6/F40OvzSZ7k701Ha8PRTqik1Pzc8tHfl4LeRZH0V/CCASHFsQPdDe30hj7Q6znsOHWmniISaAYRhhOQjq0Y+0/FurqUskPQihJ1k7AgU6/w8Mtdug0xpQbrebr0gF5NJoamzr025Gfl2XeMog42Lhi0D0FNcGRWTPQy9wVA633Wbdu3WoJEJPY3EV4YKPUo7m5WSmk40qbhyCZGP9hq8YkBjEKkQURyXCLQVJjSKIq4Vvj8UgQAHlYLhO1JCVIAoYESH5XY6ZUkMIOHBsJDgWUYpBtZb4iSMIq0Wyr2GYOYpLJK1fagNC1DDLrWm0lcQ7rYLZFGSYCSaeZ8aOkGokqgaSmbLvlIfu0Y7FvtS0SfYtrKS3IU9axaso22iQKxBw+qwqyUhEknsJ03dzMjq+pyYpSfPfylSutAsExPj4xAcRT+LuGUllDSTzkNoEEHhKJEyT0rVWLOzvyTAZIQhxAtpQnirnGhtQDUhAcTxXiyQoAEpVAKdUDhnd4CA6fcNLtxJsc5d3Ll4HYGMEBpLSce4qXKEQlQJhXWdarJREvsZJ4CA7Ww1gskaCN2rZEIh+zgviRnij3I0KLovEMFMZwkDXXFWzFO2kMW3Gq0kzmLyPZf7QuND4zc+rUzPjsZuIl3oLBZuHAQ24zSMRDvCSLxEOmWNgbgCQrrIlbZL6MNbzpC/LyWCaWQ2IVoCP5idUxUEiX9g4HwUADN9M9aAvRopD5H4EcBXLqbXJqZjbsJREfP/xpNfNSCdIQj6yCyGQdFyl9y23lp3T/G07aMiZrHhuqzJtuLeS4IdOYKwJxI4LJyMXWD50KI9bFfUF8jcRhEJN4CJtGGAaxtdSavmPHjghRFIxoYWysv8UgmUzcQYjnxiNWEn9NAoRdbFLnTBmh4dqGN21RpyCnX0zXN+WKe3YLBMe2sm0uZTRXFKUnR6K7LXnEuj4QcyCRzP/44+UrB/cfDX0pDgexbyYmMQiO7YXC2JRADgskAFotvJIk4ksChGuSsUI0iCDZoEmGcVAQIKdfxnG6peVwfdMuJNKxBKpN1dZW8tJRC8++QySbeVQK5Yewr0gJoqNdKyJjRB0rECTaxFWQfhxApGftMAhB4iJriYecPFmIRiKly7QaHPvkns1pyaFDLTxTU7FIv5MxYVHP5q28XIGYBYmVhIR9b/ElyfZnPYSV5GBIyjEz3jXrx9OKRFdGJwHSz8Uud2bSmbhBovjcJGx10xnY5t+TJ7dvl1XGwhgK2L0DaeExgRziPXm8SdYzloWwX++AVG4NxOEhVhOrrI1fg2RBWDo7BdLT3XowJIyJrvbJFQjxk7D7UBqdzXLOTEGARBSCg5iFRA1imxS2INutWBYc+57G0dKikBZ6qUia5UimRvbqBmGcu4KowvcuxjsRiHaTuEo8JDv/47WQQkC0j/T0KIT4opiDWFECICqpXw256667zCKf6KW7h9y13QEJjhR3zLm7xpLagkchev2fjZMaGQUMeIWw1sIIiA15kxCD8BkSR4l38uH8tWvtPW1trSEY3QSIi5+8/M9D4YdrOzuB8OINbtKi6UCMQvhYIA8rhL5lPIs6nuaO5jCSfQQJoZ+nUnoKFYZhkK3sd6KiIH6OlznYRi8SeiqpjbvU1sxeCxlkZKSnu9sq4sccHdKCyWNizU1N9Tg4Q+HVpCLegcRMegZBbJCoRDtfAYdAnhsYOAxEznq1NlNkbEwgG9gMVgikkvILgzKtTMMKIUBwAFmT2GyISrS1toZ61GEQnlCf0S7RrDxm4ayxuelxPdbyL6HNt95lOTk15SRAnIMUxlxBgAyw60yp5H8gNjppoFtQcKyCEIXQKv6lVWSWgQHk4BoIz+eWWOUQo/A3maMkAonF6Hi2THoBsRY7CBMw/bwEYaSLQyCHcagkLQw5zguA2BARSI201FYgVG7roBv5sBu6cc49Y3JGwdc4qEhOdne3yT4+hII/I7MGAeH3PnC2ARGKQnK7mkhzjqeoVIpG2xslfBj0e8hUIaqPeccdt584cfOAgwRBNpMxyZjbAyDRxVsh6vALB/G7FH1ZxgWQJLFxUNEhF4jHjtWFRhgkQCbdVZiHsIPTVVch2D2E21rw9EXcAuKmSZ3hkRjk4qWlpVsXkQjkwQtLt5KlxROsQzhk1smkxiSFQCG2eNN9rN3AVFJTQ3nUIU75gh1yikQQG0nHfvbwdXv3htqJdS29AJMyuEMLg1jKEoliEcmuYkK+LhQ3k0T8HMmMkO2fU8iNV2+VLO7QbdpFZSjlhC6opCGbSomjENBXKv2+cM2+3Z+iqIOWSclq+Uk9nuHABUa5HtAB2XvPPaGudkoCRKvrNm50WtGKyU1lwPYg2cW+QjbmQrQ3DQlxc328f1ggf/10q0F4IJraJI6flrAheUjvf9AckxSYanXF8y3fTLzDEnYOudxiE40jIwM1n7BLs3VAKAiQma4RyWSZRiD6RoTLXKxO3OndXSS2Z2XTqhMCFjeZ6JX15tr6fhzXpclXF2/U1TRI/cFnl27eufOEfHABCJHzXiSyhrNk6Gj2Ka1mEvsCzdI31l8dUpIct5/XSYbqjtXVIQmNj3dRFDdG/A7Uv0sghFGut6t3UxO9jKiyIwLdgfseoE2JSd86sEQBrtPzJbXxvBRCfutx4ACFWqJ/h3FIAiBIWCiQGCXp2uAhxgBS4Q6CBMJdeSBcfirk9b3iEAiSEYMQnTuA6JPrfMxTiGPTJoUkEgJBohTrYT4szJ1A/qTl17Nxa1xtw8WlpaXF53YOvDEw8DePNMb4ogSISLRzxWWx1snIdWmjEGn+eoNw7JUoAjmQrs8wSNZCGOxdhAl4cqWuSZ2RdPaQ6ZgnEgdZxyUrBQViEutfFrqknHA018+9QWv/7GcTJf09Fs/sY3N1BxBikDwSC9f6uq/S62WBcDApZ3V2HKSWTdPEIC8sPDmayH197+/p9IHzK5CqFUj3SHt7d1v3rOuRQHSnaZAKGOa4Ach6JBsNgsQ5hMqH+klZrPPwX7T2iZZXFxevr+dtzqbTLS26qJMlhk5jXhKrtftygYvNqiA5sNDzdkcJTw8ODvZu0Jl29KW7RxOvfMB5ZWZh4dxXFQrhVzPqVkFGWBBlxtDFf2Xq07lLD2u0IlU6LOhmBpGpyw0gd4zA47nmenrWkpt+L8WzGRweckEmskaqmndJMp2C4D+5k8jvCugRkt1ns0uucO/o16OjG6QhtATIwsdf3PtE5vPvv+t1kCogBEhPezujvR1IJRAkLJkyGxGVlJukSruSFEghUo8yNy9SMYVSpfJikwx1ZZCr2fQdAnnu4uLiJcFdaKRL0Nd9oNhGlvsjAnGnk9pvtSajHZ93dPA6C198I5At73+964vvGhtfW/hmdKOHoCChtp72CTmgc/OGQbzELfb+cLmi3I0wHBXShbXoWyjYDZpN64pNKKD8cUGLcmEYBxDKJF9dvLMxr6eo7mZmOccrMSeRiCTP71qpRJfdT776ou/7Da4kQD5ZyL9zvDG2sDC64Ctyz14ZJWxR2sflYndWpzr7U2YQf8hnXVRnKOrjHNtECsQmNSCaqj1Nuu7dnspWL0rTbxfI8AAQyR837tqzu2qT/uaUDoWESiT826iYWC6HhAepCF3rvn+e7PB3rT4b3fLCOx+/k8+f6/3m+28UsmlT32OPGGRi5pQco8xKgykG8Rs4f9oISG2gtlEcq80GG0S2LaMkDrI7J45bDnMdWX1J5uFhvYi6+NciJZLRs4fXJm5MscYhcdFlMqNDnmK5fVDvxx02neq2CbkOsQTreglyT13dsWOhcRxSkTIfg6jDHXJFIpW2jd6MhFToa1AvZrX1Fp5RulbVHoH8OdcPJHpRxvuwZEAjJbq6W8wMKCC2mxNIOEl0vASpgCWThro306K1twkyYdF7KTgMsrfuGIfY/7JxLqFxlVEcv+vOTOaZm4fBqGBJS62Pa01MJj5GaQYXQyFMRPIYzYSQkEAXmUEXSYoJg2RiSIWkRHyAC1MciK4UGtyUqAht4qoQSkWTbNyJ0YKvhf/zP+f2juJBmzsznXu/33ee3/m+VEDWRz9s9/OBcjQSw1oPrehkEERUE6aoZUFBGgRcP9UQ5M2pl9B8DPOSHCqiokMjtujdDgA6pibUMxKKWaVb5OQYWAEzOXNbiGchyOGDgGTMKYyuX70yuvhhfWoL+wqR1kMb2ksAUZVA0J6ngtS0XMYXqIaRzT07AGf/682eiTOYXAWZ8jmmRCU70EiMGgEGHmUg5MC6ipkRCgo6UyokiQAEJCohIyn1QyPdXX3OSO/bwxcXL37IihHqAwg5VHQJ1Yox0/21bjcFtWimYcAHiXTTE53nfoMnCEjHGZrW1OHxr7++WwcC3sOjoxPEp3o7raqy5EUz0/fq9wfwLJJQFOSEgYhGAOKlMyNjo5MSfmWFCBB2w/h96oQXuE3SOKxoZyuAgBQENETMSPLMgdhPz8S50xM74uw6egU5ljcwgKPDvw4PNHUriDmCxUErq1UEhc1CMWvK7PJsYn7ejYWsRBGNdJX7nHw+n+4fW/wBq6MUahIfxFb+bDZKNynFe9oeKYFgckCx0MYRSCw7c1Zq3HfRemv+GhdTPc9zQSUg78onosLf/zo6OGyPJFUP/pJWUDQuupoMNbP56wQFkaplfC5SKY03m3EtK8ewgvQPb6Ib0tbCBhNI4OrWi5ELdmFxQRxbTrdKF8V6cAKqykmmzry0IyM/+PPgJ1EFOv9H8vr4z50jeeMgyTzafLDTnLRlFHWLNSZnw0zU8jpdhyx8sFj96lxqdS4crY7PNUDsLErf2HDBSWcyQ93ljzouXRIS+esQIVEQyAPo+uigEYZhQkhV4dQpv4ciH2qXtsO2YSz70UOwyn8NmvHlGE0xkd8ODo9oT9avwr3VTqW4sz04PCUQvzOSiMYbARKZX16d0f7COI4LFCBOua9c2Nj/+YlLIHkA4YmpAiMVEChCQSCC0toYibPsam/Eu+R7gqKkrSI4EQU30YpEdg8eW1lh74FvPP0CmyuH0YPDY9qSgShHMkIOjeRNQpJUkxUCrfrieFNAZquVKLuTkQ+nIWhp4SzK4tU/fv75AYwGM3sqBRDcgg1+GxybijrSZCKENIB0EW5pUwgTQ4Wg5z/17s7R8dHO81MAGQDIyit/Hhwf7xxig956XW1tv0f9/QK/QYshN9DqrUwAiXg8lIS3oCFb0UnposrR9ekn0rzGEhdN7It9kzf247YhkTKN0AsIAmfXPQRYVsQ9weIwFGmUj00X9TDcf3gVXSNU9ACZQFtvZeXhh1cexdl3gLCHal0XjVBszGm44oqaCbO5uVlIkJhhy6zkYiAMUimXQA2ov1OpH5DPZTfXwa7VYO83333FXreZlvo7nbwV+pcQTO0neVMIVJJSkxMtKIqRvAPbuqAgPdiNmRAQ+aWSqaln3nnvPfkCbgQK2owLYSeQlsMFnGBQMHbJtA2wAb6Sz4QvChT1InrAD7LldnV93ckODQ5e/OLTKuitPGSA59Id7s1+prX9GiOuqh0GnBDj4rAghDH7ewH7DytoSJ4GSI/sxFxYuR+y8ugjz3z8HslbU6w3OPZAtHQihQonHy5DDhLYBZjEi1AbIIJDI1cKFwmSzZYXR3tL8USEla9p2rIiwhTNke+GEyHU4E109waCgEM3Gqkyxp6OAXZWT6N9j473GR/kPEDeUZAWOjU0ARL/DJY6h3GcPHnSRgwxMpPg/SZ4CwYV/mSyq9fru/KRM1woXxmdLi+DXruL7QSx6lDrW4YLWY6Qgc+OpKgQmh5XLZqek+it+iD8Ez8Act/95x9/1gdB7MPqjsUWtMKa1lAAQgySQMj1/yAs1qQnOt+d7e/qm/zIuXt3f7+rHyAUXcJq/Q8JDiVwIzmua0NJJeFTTzxhmYeHrqhQMXu0bAjCYy84KVAHgg6ppJyWlAZxfoVWIDAK0lwPYi/UrgIoc3lixEPLuXwex0wnnf2N0atdhcX5JtEtl+Z4gGafOAFcrpwQ9/CGAcHYkm3MPG0t4URcQWUNL0QKQo4l6aldOP+QguAsDpyO5urCHfgNyRSs8ejrgUIMI+CoRyEIHwfNVvLFYj4ztO6Mbiz2Dg5mK9QHXMDO58hRNpcGIEt2Bgk+jKSYf2jk0geXLj0IEPeEcbAaFh34IE8JyGP0EQVh9RmBZUnDjzMmdkxNqlsHo48alelAo3JAcsKFRvBogIBksH/Emf5oo88r5gHCBhZJ7gnTD90EdAlMAFHlVST14BNS1ZxKck3iNqBqYWDtOKcgExOwLLj00mMr8qt7r3JDobUD3HJfhh2rqMwVjcNGz5HbsAONBJRNcBHSV7xcMTeYzjn7N9YLGc9TjbAPpyB8zciApzDGECSGe/CDyCnJHm12ggzRmGBwZsRfgJAjTpDzADlPEKRBWlWTgPBJ7LqKjlx6eiBB3ghEIY2TeZEg6fy1dL7o3FgfG05nhiqiiiam0BBjonkMu1e2WwLTamJCoquGmSNtvRNpFFP7AMZ26b13XrxwYQIyYCAr55FGcIL7uY4OuEcoRhMXENW+NEh1igwBYj84HEAHGPUgIjCtXLGYhXU565NdXm5wqIK74xsEAUmceZahhYrHkOj0mCYSYzoTYVvr6EqEIBCQvNgjMnG6E1MmTnL+/hWAPHe6U/yTIFQJRZuvcU6RcQQ2RV+QpwZmNUsOZktKUyUHCojTV+7NZfO5UhS3xDdWF2aaqgvLoVKJARkqsXaWCmBZv7E6ZdwEKOzeTTSeEttSjfggCYJcWIHIVgBPhYZEGRYirUwACedNNaFJ0HcFKMzchxTksMBFiS3kezNd6XTeKXT1XZwGCO4nAzxZrUbXYpXZtdACVUPn0IYvH8+eL+YvxrihK3Y6cCKcQnEpNcqLPdz+FRB830AE7Kxvs74bmgkwotsrNYzmwILcBlo0QQIOisxIrJLOIrV7GWexf3G9kE6XJGVjwNFqtflmVEDW3LgWc/Uu4zJkWkITBMmEAFHdSXbHRgeiFsY90ElAib+wrKlnXzzXyfhnhQLDOoNXXFZQqnXTlYDMGomqy0ACDiOBRoa6e730SJdzAzI53EsQlyAn15ormwuhtQapI28uVEOWFe28m+R9aYVDB7yQVO8ycIf03PEA4i8VgnyBYSwJyNQUtkwawe1qIUQRe0Jmk6JO2gVEAWJIQUByZ01IUOzWg2iKWbt5kyBNC/l03stls87G/t27N7rfnmcIESepniwtlGLLC/OJMEr7Ckpe3l5JQq6S4KnghEZYfcUleOKZIXyIHihBBhTkRB1Ih7aP7Hg4iKjISGMLlwhhxC4gSotMQWa3dnd3r9W2F/5Tu5g6fJBiZmQwm804I2W0tboKH/IXcwM3g5dFkliDzrWEtTAhCK+0qmpX56A1uAKCL4nbhAlCheBTA3lDQWQjWtMGbUznBmGi7UEsTZPcupXVn4Hs/b138uZ27RppxutSjMq4eslCMVvuzsJHhqb7ckPl7LIEVg3XhJZE0ciOUpgOoTUdbZg7CkDBfwnYlK0a5AkSyUQjE5IOO+HAkjmXlgTk9Z5zp21TTE1TKh0GQy4IUEr6Bzna3aaoTD04zJDWhObaHlmMw35gyJV8eai/O512ct7wSO90fyVGsRgeleiq/UYxLbJbTDGdqMB7GQDcJ6ERhpgEii0FgTEKPbZQxbLE+VFWQ7hGiNPfSRqXcNcGELwtKA0hTAo4dm+TwxLk+La3e31v5j/FI2ShOJIrpgehES+fzQ5lShpbNflgSPRlbVSHaDYqohqeDKVb00OBFTkrtsXNOckcrE+AISDY1V66T0AGlvCR/WoIUyxrJQFJJGWVzf1wcCTiNNPS7u264bJMXK55u7U7xDAhCLJ5Lpf1nNHekcxgd9c860JLEZz3RITNGAYRiHLoagSjgA0Bs7Yqi0cBCTFFhzjFUAnKk5CbgAXF8O8sbH//494vX1aq3HhUD7MjSHGcQ4ifhQ1rb8j2jeCqpeLt6L8kxpX6Ws3zamv/IkHUymRzXtqZHB4bW5yc/EQPZjBFMJjTtBAw6zlikjt8T23vTN65fHkrQhCQ+MtubPYMsGCMJFNhN/bW2vXiN99++1n68rU5kkTYa6NGAIq9K/E5PeMmGqbnLAtHzDdnCgsjvL5T2/VqpYBkvoCNnu5C2enODI69/fb6J66RiP9q4SvNWXg6damhzgoWzjtIkumtW563yna/OgR3cZ48+7IsqbAYfqAlUX1/9/bnNK1NrxbEvAatQl2eqODRFjlSs+VLcQsfQBRELihRysze9V3P9/zYJ1f7e8dGuvqdTLcc4Zj8QQcHu9V8QZXACeJNyqGGw7+gKRi2dyvdmJypXd7iL+XQHzh1sh0vHCjz3a3i9eprSysIWhOdq8UtKgS+RRLLiAx7eD+Z2krXTLb5kABELwJPH9+b8SvM8XWcaEznsk52cf/uzTvT8/6usxW6JKGlxdTV5Gm0H45Yxrvq3ZH+mSjFf1cdJQ5JJFEOV9Legnj7hR5kkdORyuWKZExYkWZUmTN/Y9tNhEuXZ9oxfioNereJiZou6kgCwbhKmQLa8UNZJ7e+sTE5OVzSwpruaNUD+xzxIIzReCi6vvs+DY3heVUohTqUr9hvtyCbnpr/Nr8VdkNIiS9PTLx0DmrYLq6yZUZvEI3YMQySrHpbEYYxupGtoAkTcNQ3iMxQxrvT2E/oGnJ6B0eyXs4r2eRgahK6U6s7lrM4QkGZo9i1/D//963NTXwM2c55y3OzuJ69J5sz3+/WZqKbvN78CrIJef8avoKf0Sh++iL3wO1rGV5D5Ct2aU8NRF+tQmYMZGM0k8+PZJz9SS+XTw+N0zYw8aIFGgrDrc0K58yfILus1WxFDNxVKEXygh6FFI1sFb+tRDRdYObP2r/CsOl9T21J45crZJt73Hbbq9IoraSznywyXU0JInhLc515CECuFHqHujLII1em0c8eW7ZduZBLsxIOa1fck9C9C5Hly1V7ySQNT5mxNgXutOB5t3A7rdftl0hYLs4Xb6FxIXkDOUOLZY341eKeluyuTGhwZyZf2K8JLd8liiWE8auTFxcXM1lshvaNjV4dXY7bbOh6x7dEOkcgrgiGhTF5tXtvsqUq4QtDkthdvV68PSc3UZ9x5Q88nRO9XayGEsmUHmwzECkLvBpnjWWbZWSbVzYN+IuKGjb11Mi9ZVip/NHb5cLisPNPU1fv2sgVxHWEhCTyh+zcyU4IOGmC02YLL4u22WZVuVmu2i/QLQKBQIWkTlYhoUYS6Ar5cBEc1Nj44Ejtg0CuCQEr6QzmcHBz/8IV1+U3v3kreUh0upX27fvN15s3M0/X7TqVoBX3tZayrk8oEOUS2apTzjvcbq3ZFtPoIJP0vof7AjdP3r98N5ZBCESh6n6VfvbXayafV639jDxL7622WLJ6Er4BeF0RNIPJ+dNnM/stKPUJk6qD3fo0K1Tj2EfG8WqX9ROa/BoIw3ky3GSv8q5mrIWmJZivLFpyTSm+fXE9MPtYAwQvzC5owN+z/ivSNgQH1Q0PHfwzlkmZxZstVfoB/bJ2+RCPem01TTXXeu0Op0bOzgphFr86Xdw9YLYKREi+RSQQyOBvpXe3PQgWJNN4Y6lerEk4vHtrvXjxltpneh8fS2RPF6P+y4HmZYXHur7PrPcQAq3TxFWCFSZHJsgX19UgUX/jfPhy3rhBfWTYLPhRELcazTp4owGbagBidwOk/8YQ4rWZnqndmlm3FBPVXElDwdnbC4lXNM9K0hyl5kTVymAmfMiOkGjnzuvrPeqQqU6J5ERtkRHWOgDVF4Z1+Oxos0ypURikfpamzdTxCgHasdObWl1dH6NxMl6DRThgo1tYGm/f/fPulpHYawtzNftVYze7lDu/SInkyydgaFCyq+aK/9+9M2usWt0uPK+x6oOymDrhM7Wi+mxOHWgdSoyN5mRoZHmu4zhJIYwyN+5WOxqE7xl+7J50eoxN2gKEJAOMEUb/Oy6NX07kanmdjdSwVTcZuvsjFpCkMA7hbvkVlcqJ9Z/xnQzeZi9uOXFYKTRHUZAFDDDypL12JahkqVkzBdLBKlix7LTQ9J1qWK10qHC6usv48605/ceSElkny9v/Ynfz62uJiJgdBDHDTznkQOhvBb82dnHHzE5P1bfS/J+343F9PB7PhODIuUYZ18rQRXfQ6rcwhPaLEAd3MQJ2boBUUSCxgm7B7rrYu1c7FMWa5lsDWv7tvA7pwwtQe7lEDl6/FFVg6oTah6X6Gw3MacF8I8QynjbFCBDtiGQc+PYf0kuS1dOQEyp9QI9MK89TN+KsUWHWRAuDAW4kRvO5CqZuB1HFOj4uIBPvBk6zr7Je0Wh3wAXVpLGlerhKcDIBpok0AikDiLrSDZb410RWmgaPLbri1SjkuckN4Tq3czQHrTKor6eZU6YikQ3ux8QnmM0PCD2NSVStAEiQVKpRXCOQtVCKy/acQIRLUrUnK5nVVpaYpYtLJsZmnRbPlEfiKBRJWm+IA8qdR7PKDgxEO+BqQWe5CkDY8MvEkCkzr88saBZpB8VzIjcsGVUqlaqH3G8U2Wn6anFeMkiERA7tIiZPS9b8DVmoKQnxHQYJLZbi5sM3DvUQGekHYMh7Gkx/PZnI9WQVK1AoXGu439GZ7h4ABltUtJeKA+juTb5gUt4KBCby/Pj4eaFaiRevaourovKKJHZ3IJEDsw1ULZMylewj85vyWPoP5rIxF5o2a72okmqp5Be23pnGSkInUWu47KhbY5la1FIEnbd4sxlGmj1EpcRGeafazmMce/1pxLpCoWJ1z1APvaIVGBI56JZKMNGMlSObcsBOWExT1mgXQNXlyvunUiMlDoHy48+YBMg4Z3Jcs67S+5UX7cgGXJLUk6lisv+IQJDv4t0rIAzlqaIaW57XWu6xAHFg6Yubm4cNE54QSJl5/rX5a5yAKTNlZ3pIdC1nLKE7YEhnQwpyayDwVRpZ8nuKCFOn+lPj8uu4wmSgIikyhQPzUgvH2MIx4SkhiAcXolX13XjoRyiG1pp2ULu7e4C6EK9RLS2zlWgIYs+svWN0+p8842JmwqQ7by5uHrLXRpGweM1wVWyYfYpMyFOP1tENHR1XTUybSKjD8DF4FpVK50M8JoYxOHCpPo0bp7XGsNAYdpOMDcxEoucS9Ba+YdQiiWDjQOjBKH+uTbrTYGGJPm7jUFRC64m//AwWMxMJKGj9I9NFDzVWgP7kraTatioBAGQC3uno8B+51SgQzmZtyaR65jfRKNsoBFhPkmFal8etAOdRskqmRCCHhwJDU3ZCypGy2d7vHB0diBVIdAf1Fv36BV0nB6I62qZOeYpA6W+ZLZH46fC779D1BHU1+iYWn6dBtnRsylsJuAwQvHAxqqd2PGygqeYaqYeKY0++1iTQWL/Cvql94QvGFaNBNap3wV7s0tcmt9TebrcBheAFCPpQMEOaAKCIw9H97Dd0dOZk2coZs4tfr8lSA3j86zeiTKa6rMue4hCm0ea5Duq2hTSZulnt9HRRePPX78fHFWtkEg0SwezPSqWfZj/9tNwvbkHv90v77d7uxsXs5NlFabM9QDFI0mPL2/1JH+Nvz7a3e7PtraOL4uERVYFdEEKyssH/fCfxhWm1Xa8KKyt/CiQAAvWh7ADE7HbXXTDcQmul0dAqmTqqeKHfApA/PryOvMrxwIQfc+jHcrwsLesfTu7HxZ12vXh/cju+3xrM5iezzqjd/9Ce9+97ADLvAEixN5iMTu7r9zv9qxGQwGlTLWQLolYu9SI257ERCsv86vSDbmEBFE2mFAkLSKsTETntwBQ1oMmXEy1ZayJ3ElY9O0V30G8fXjsIVkZyEagHyNv0J8u9EcrUc+jJrF6+781Lg96H3XF7f9Tpn4z2bwfLMYC070f94lap01+O+6X518uDq/NvD4/Kq93Cah6iaflR6lU7EUwdjlCAACf0EACfwUQOuN4zin7UYKVBBvcSjJLYV6c5hfPTlpMASeHPN3YSRkmHkQmAbBxdzIvLryEI1HWLO7N66b633Jvvz4ud2aA37rcH+7f7vR5qeCe9f+ubm7PxybI9Ks33lsX6Fc4UbhZXKcG91SIkvoxIpI9VyyNi6uzzMp7hR5HXt+j+ZKqRFQ1CkbuxNFDHNM4RzYWbXgG5TCNvWiu8HWbTrhvXGXEUy6PJZK8/6OzUO/3dWX1npzTvdC5uO5NSezBqnwzm4/1Buz0fYYT+9tb45OlTuaM0Gd3vtQf9bzDbw11NFhsiIJkM42A2xaqjp0XgUIT4aukzAhZp0YH31aIfmhCJBFoqFaXyKjjhBmVjNwcyceNm1x8uCmma+o6bXjFRwiCurPs6Ew3BBi/malur7h1u5llXh5nuwipGkwGYcPAM/Zo/bxRN2X9NjNA1QCcJEITV9G4Cg8ReI8QXQA14Yk1S2QPB7x1tEgKRaF38oGhC7041aNYal2cFBx3MjuOfa2S4s95eMvlfpGltA4hiUNLgnVxWIHs96vKz73785YenZdOvAnqMhVaj+n9g4nHoFeWhhCDzKYQAvTrUsx65SLSVb48xYFkmd8TdvS7d/cBtDnHerVAN0UjnJH3ZBhIIt5kqkoO8fJW3UDwCUmTExKCCHGfIigDle0X2OFcMWqc4mQJgOA6HRiAriYhAtmRYAKHHZgikWft1oGGqTXnL7HncjdM4swuVauIk1eMOk2j8mSjGZbqBMXkmTIM4cqJmsXcdMhaHa8oJDPJhryKNx21fuGCcDBCbogW3URsChMSo/9lumaYDJLJK0qAYaRogDHzlyfTR5MVWfWr70KmkUAVZz18M9vjMfKXOA0c+f20eBg4EoqVd5vQEt/KKHgaabYainhrm6ECCP79HaiLcvxDIykLKusLrr/6YsxgChUhW4zL9xya6iRcFAdNBYUU6ngYMdPPgBGQCxsdFeiEDBIMomeBSb9aN8EE+/wNwTjMRLA1rA1/eZ4C7xGwRywjRM8NCTAafcc3PbD3Pz3FLi7xx6CYhywAKQDxAcdxCAL0CkqWJ2EmGewpETYJ6vgJClEx26XZX0ZPhmD2Pn4MECGgTBP0zn9N38T5WlbRfWH+xcy3LMlMnIALRU/q6YTJ+oyREbvada/QJAMg1cGCH9YZAth8D0SYbBcKwYG/VR7XKs+stJu9Njou+MdRQ0jMF7OEG3lVVl1PmjEG7OVFl1kgIgwJh3ClISivaNtHYWxtxSeTaBaSELACxOo8lYgxT23IIBPG5hAVr7wvSO9bde2sgYOAKi8TvqA4bY5UvaM9EmYwwJM/SNUyBCGCRlW756ehF82RChgyQCTxVBRKZAoho1rEXvp/0J53RqDOR18FggHd428Hb+QDhYf386nwyGsxB+Ag0AvFjfFX/NhhN6ufn53W8XIHwVl7rfdyL1wnumWCcOq4+XFw8yAfyxIHSiDfXQfLaB8n7vt4sNz08PFxd1XFDB8S5YcK3oSfZoMSeFqKqQPGCIAwdN7SQfMzcyJOL6D2NoiRESvIYLtqOW007rOCD51bV83iXVYGlVfAnhnICvHSbtZbvBKi7xK1WM2vhlxOHU68aurYbhpHnhW6M09qvFnd3dzcNPwnhbTxL0jnPMUaQNmrNOMUZ6NowjaduILdUIzdrxl3Hbr5ayPmKln19nYSB3xrG7jROsyDyZFh/is4HbKyqoROEURhEFnLbdgIAmB4Gh/K5gsQKbcd2JQZAgBmFAlQ6uY8jv1Ub2phK1enaMl7a7IYVwIuSbtZ1ulhzW24F4whVK5VIAu5XjVeLm7NFw48qwC8JTwu3hGHQTXHKCO0k/MXFRmuKcjM+CpF36wYIcOV49Nll08HobuvyDL+6kWZYypNEGDct2NJ+FoWYvAdGY0TIRfhsUeHcLPO7yEUGXTtJ7Kzp226QJJEHHKDjsHVzd7dw8M3Idt1uio89MEBklYBXYTasNZ0KWG6RAAQSaTXTIX7mcpglFkTdlQlEiWs7oTCiVTttYMZnNzeLxvQa91wHWPBsx8nSOIVUFsNpVPWc5ik6GC9rsQsQXXvqZ37hs0QACARLNAWysZ1AdiiiXME0bQ0hRGeaZk4yRXzpQnTEIWQ5tZtPH29a1+ghdv14iIGrxyIpKEsFgvCgSakr6XLocbUKtjsovSJr7oP1GLGKTXazlgVemDiuzMPxW43TRrNZY4MikHjXLjjk2N142MymwNlKfUwu8WuLMyBJMbNYfjcTp6e/CCByoBBVEiBR4jg2sIRJGIZ2BiC1pg+dnzq4J7NhSx5yxmCySMTBE9GTnlWhW1nr9FLYDyDP8R+kIpbly3MtC8MmkBCYkMAsvGDa9bPM9ipVAEmdCKoYoLYhaoTMTuyni7tPnz6e1aZB4MrvnmS4XIttx4+zDJOIQrCidomzPHYAKcqvB31eePKZTAswQFaE2fN8OMBkcdf2eTIutt3p1MWlKapbmAfmRd0TfuKnaaHuUy/s+lD/YUDbAQHGNfgfwDBFFyFoJwDbQxGMZcEiABLm50FlMl71wmtw0YGVYcJ27ebjp093i5YdCC+gVMhdiWIABw4W+wG8EBJzEE/gdAUH/hHtJ0++UibiBUDksTB7+AUAiNNhqxn7bhBAvGJUNoHAN7huEl1HoR2nadw6rflJAoHhjV21VK8g3DBxYVkeXFYAlgNQIH5EvyD24tiBJ9ehrVBsAMEtUHm/G3iRf3r3MRfJVObRoETAyrR2edqyPZiB24S6uRjU/uzLJ0/+B1H/TB8l46k1AAAAAElFTkSuQmCC", + "image": "/api/images/system/soil_moisture_chart_card_with_background.png", "description": "Displays a soil moisture data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/soil_moisture_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json index 946390b231..b1567290fe 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_progress_bar", "name": "Soil moisture progress bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAq1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OAjTMf19fUhISHk5OQ9PT1YWFh0dHTx8fGsrKzk6fgvLy/Hx8e6urqQkJDI0vF1j9xaeNXv7++enp7y9PutvOrV1dU+Ys6GhoaDmt+Xl5cwV8vW3fX39/efsee5ubmpqamCgoLLy8tmZmZKSkq6x+2RpeNLbdGRpuPCwsKOjo7c3NxohNl+fn51dXXU1NSxsbHb4O/m3dkHAAAABnRSTlPvIL8Ar7DvmsykAAAEw0lEQVR42uzPwREAQAQDwDiGp7f+G702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in9062JUVhMEAvOvib6GkyIaErTHj+7/fpeKNnmPOLMks5l8wENH0i3Tip+UL+bR8IZ+WdxBNpSx0T4pMCXEs1nRezCnRFY6JZuc9hAU9wnTlhfWCBCCTRwC60rDTlVLpTeZABEW1INxtjX5ANv/NuEF8rXQFQm8yBwLzcRftgBIL+2kqfIfIsSNCDsgaNz9rWpJrtpiYWoGVNl5LLUqptK3PtY7H0RyIodLIYhBY85rzHbL1JSleDtEdZn6JEYg6YIfoKoCs47UImAIMgXg8bhokAVK5T1SMqZnpb0iz4NtWhxQU76F0QNRL31BpGG6QV24kyNQQpkGII4CotHjpjnhAXlAKQg7ZweTlDYhZJmV9Qpr31It8v86CeJIgUEEl6mP6DckZlfsSOIv10SF+n4VED4hrF4zwJEgruY9q0IRyQNYHhCxs4ANi5ruxDwjpGgXLH5CQPDoJkhFGy+uYCfgJ8aYmAsbKrx2QHBcvOJ4Gwx2isG5gpUkQ78ya+uCzmCIiPSEKpAHJkFoNfPaIpCUiuaG28/7/ENoQUpV5za7RAIvqs9H1T8goDRjtBMnn328TwPxAVqAQCxDkhBwSIPAsiIdZT9SYvA8zPW9VHqs/t36/fr+Qf+zPMQrAIBTA0O3zVxcpFErRA3j/21Wws64Z8qasYXOExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhGa80gp8btrrUF1GOlvyywrr5yeEUz7kZHTGuktlyuQ5sj242O/jlkbhoEwDG/Hl/EWSaBDCLvabGXwkv//yyo7anBbEBhjuBA9WzLlRb5TPMSJaRWA6IkDoPPxaoUwEJiexnoUE2BJo1aIA5gqL2K2uDcM2X4zG+NpxwCRNGqETEByKO67uICB6xmRKo2QGT8SbaILwDDSxmY3kiKNEAsMJSEB8HVmioVpZRyZhVjPLm6HSD2ZRCsjyQJhqzKWRkd2Ii3aIUyF2S8qqcPuwxSjKFpg7ZDx/8YdEGjFc2LHpEYjJAHy2rjGWlNv+OFVKmZW82w1QjzgXrMi9Vi4fllw5iBZSIdGCC1AZH8HQqkagDuTCWvVU2CZadIyJq0QH1DUq0NQOXpKM0kk0XLPt0KILYp68bHbouZfpUvQMu+NkPpS6Pcf+G+qmj8qH/TO/iZ6iDY9RJseok0P0aaHaNNDtPmAEHa4Rn7cTjgeknEVdybk63AIrnM743CIw1XymY7jJ8IZ13CPMx0fvLXeTA/Rpod8t3fHLAzCQBiGY20/EYcuWc7lOBDELYrV///PWkvmQlxypvdC9nvIcONpyyDa+gEJs3hkbggjABIRigOlQ4gJsiBrLe8MYAyYBAsPtFI6ZOsBn/1L6IAwoV0RdmCc0iHTqAby+j7vDaIFwgSsCCchtLboN2QtQmTBJlgE4C4dAs+zIG8R0rEcgn2e/amFOAzQEsWB/nuzXyuDaMsg2jKItgyiLYNoyyDaMoi2DKItg2jLINoqCOJQRI27FXB6Gng+XOUKOD5NH0Zd3Zur525V/QaCIDJe0ogfNAAAAABJRU5ErkJggg==", + "image": "/api/images/system/soil_moisture_progress_bar.png", "description": "Displays soil moisture reading as a horizontal progress bar. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json index 5747df6085..5da233a2c7 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json @@ -2,7 +2,7 @@ "fqn": "soil_moisture_progress_bar_with_background", "name": "Soil moisture progress bar with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/soil_moisture_progress_bar_with_background.png", "description": "Displays soil moisture reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-progress-bar-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-progress-bar-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/soil_moisture_progress_bar_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"%\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"18px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_card.json b/application/src/main/data/json/system/widget_types/solar_radiation_card.json index 0bb644cae5..d8d3bbaa6d 100644 --- a/application/src/main/data/json/system/widget_types/solar_radiation_card.json +++ b/application/src/main/data/json/system/widget_types/solar_radiation_card.json @@ -2,7 +2,7 @@ "fqn": "solar_radiation_card", "name": "Solar radiation card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/solar_radiation_card.png", "description": "Displays the latest solar radiation telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json b/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json index 14bed780e3..2edee0c427 100644 --- a/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "solar_radiation_card_with_background", "name": "Solar radiation card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEW/cAWSRAPLewq4ZwHBbgKPQwTOfQjLeQPAcwP////67tD57M378NH57c/46cr358r78tP46Mz35sb25Md8wyL89NT35sj25MT46Mj56sz56s7999b///n14sT568v++df++9rv1sT89db78tHUhgT///Ty28f578r14Mf//ubx2cb//+/25MnViAf//uP//Nz57s3z3MPShAT//eD24sjTgAT468j//+z+/N/468b99tTx2MTw2sPalAz//+ny28SMyjn14MXRfQPblg7s1cPOfALTdwb03cfWiwT03sTakQnZjwbXjQXVgwTt18LQdwLnrjH68cvWggzz38LKeQLSdALlpinUeg7ZiBXflSXnrC757cfkpCbbjBrcjx7YhhDWignUegbWiATLcQPQfwLosTTekiLCZQLjoSPPcwLEvqbq1MM8OjLYjQzhmim9ZAL89dDdmhP7882iUALlqSvbkwvEbAPRgQLjnSThmiLsxX8hIRzoszncoQylVgKppY/GdgKEPgLtyYHqwn3GcAT89dnKawLpvH20YQPflByrWQLRewHSiQTn08PYnga1sZruzITgmRnGZwLl0sLjoCvuzCPcmQ7YkwnXhAi/aQLqvYLpv3yt12ye0lfeqQ3BYQKdTALw9eGdmYXvyo66XwHUz7PerHuOiXfptTy5ZgKZzkzq5MbinR1XVUnTlwfVfQevXgLv6sri3cDe17vQkAXf8cerq6W52XjLgQbz2Znx0JGExy4hHxvqxBbirBbmuxLOiATP6au64IrsxIjy1ZPv6cDKxqxKRz6aSAKLQgLMzMTCwr+zVgL4+/K/3YD47C7ktRvisxDn5tvRonqpTgF9OgHy8tS/v7W0tLDd6anisnpzcGEvLSfn57Xwz43GnHqBfGzY4aDmt3tybV/03izv0ivZ7rnF5Z7K3o/x2oTy8uzT086goJnXqXrm9NXx9Mj025r39dL5+eDirVVlYlX4+uj691by31buz0qvfFMgHxveyLaVUhoSesfDAAAACXRSTlP9/vwVv7ewv6/8oWFpAAAj8UlEQVR42oTUsYpTQRTG8YsRFTWYJZAlAbstTRO8D+CFgI0gbhCvxERkEmxMJVwXLAQLWawEC9HSxmLBWlt9Dp9ByAv4nTNz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", + "image": "/api/images/system/solar_radiation_card_with_background.png", "description": "Displays the latest solar radiation telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEX////krC7otzfptzvmsjbrvjvgox7rvj/jqSrgoB3lsDDjpyztwUDquzvipCntxELhoijquTzmszLmrTLntDXotDjtxEjgniPhpCTotDvux0PfmyPfnRvlri/lqS7hnynipyTtwUXnsDLvx0vdliDswT3jpinx0E7quz/fmCLnrzTclBPTgQbsvkPhoSHUew7lrCrWhAbvyEXblAvkqiXhoC7emxLy1FDwy0bajBvgmSfwy07bkxvWhA7aixXYiw/y1EvipiD341jSeAr451rwzknfmhz02FD77mDquTfdlxbTdwX121PQeAPckiDfnBjpvDnioy/fmRjYhxTOdAP6617bjxngnhb231XhmyrYiBrWgxjakQzy0UnlqjTLbBTVgBLmrTfAZgLmrC7bjx////j//+njoSX02k3otjLhnCb13lHclxPSdALdlx3JZhP//+TBWA23YALhnCHFZQPekyPLbAXUewT99HHfliXz1027YwL+9XjosjbQfQTinRz88WzGYRLDXRDmsCrwy0r//7rinyTUfgbkpjPZkBT+/+3tw0D+/q377mXxzk3NcAL88WTXhgnZhw7dmA/Zjwr34VHlpiixXQP+//LWgAr//8f45VP56VX88mjhqhT+/qb//9/JaAf//ZrkpCTnri/CYQLlqSr++IHBXAXGawPOchb++HzvxTzAVQz//83++YbTfBn+/JX+/rP77VnwyT/Vign//9njrx3fkxvOcg3dpwrbmArQdxbGYQr//8DeoA/++4usWQPBbATHcAO3UQatTgTswTbXjAf//9P//qDntSrckBTgpBS9UwrZnwe7WASgSgPovyeyTwX010js0CzpySHmvxu0VgKaRgP+/JDyzkPltyDkoR7irxHquTHJdAaSQwLsvDX+93TqxivitxOnSgT23kzUmQf99Wzw1Tbu2Sny4S7UkQbNhATKfAWlUgLGdwL88V715zLQigTtyDb+94/9+KD89IX48EP37jb79k7x2mP8+l3253f47Zb14z/6IjwPAABAGUlEQVR42lzXz0vTcRzH8cxRpjSsZRHmVjakrZIiOxjL0WWHoMkSFkpEoTDw4EU87LB2szxOQujSxeF/IAw6dOzgv+DfEP0JPd+v9+fjZ/ns67Z+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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/m²\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/solar_radiation_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/m²\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json index 0ae573af1d..e162cfe16f 100644 --- a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json +++ b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json @@ -2,7 +2,7 @@ "fqn": "solar_radiation_chart_card", "name": "Solar radiation chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/solar_radiation_chart_card.png", "description": "Displays a solar radiation data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json index fdc8d33b07..d998d4f967 100644 --- a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "solar_radiation_chart_card_with_background", "name": "Solar radiation chart card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEW8awLAbgKzZASuWgCbTAG/aAC3aAD////57M714sP25cX68NH358j67s/5683679D46Mv78tT46Mnz4MP35sr46sz35sb89dX46sr78dH25MP999b89NP///r03sP04sR8wyL46M325Mf///T78dP35cnw2cP14Mf++9ny2sb24sX579D//+j//+z///D24sj++dj++db57cjw18XSggP14MPr18LQfwL//N3ThQP36Mbw1avWiwby3cP25MX46sjz3Mf138X57Mv68crMfALKeQLy28Pv0qv//d//+9vu1sTq1MLUhwTHdgH//uPOfgL//uXEcwL46sXQgALw28Pu2cL//eHPewLm08IgHhrMdQPe0LX57svx2Kv99tXj0cKwXQO0YAPUiQirWgPWggjTewT68szlpynkoCHhnBrSfwO+awPXjwvmqyvkpCPglxnVfgfMeQL++9/k2r7nrjDbiRXXhA7QeALOw6pWUkelVAP79c/13bbJcgPBcgPf1brcjRrepwvekhy+bwPm1brDbgT79MvahxHSyK735Lrt18LDu6PDtJ6+ZgK4ZgTlqCS8YwG4YQHszqr89tvayrE7NzHlz7vJvKO+r5ry2bDaoAjCZQHr2cO5qJfUiQO9tp6cTQTSdQLg8crn3sGu2nTflCLWmQfp4cSqoI3hmiDhrBUuLCbRhATz7M1+dmjcjxPy4sWNh3VJRDzgy7jX0LWd0lnekxXQkAXr3L/IwqiyoZPZiAru5cjs4MNjXVE8OTLhoRfbmQ+GPwG1rZbpvxSKQQL899Dz58myp5KLgnHuzR7JgQTv9+KORAP3+/LYwrDRvKqmm4iflYNxbF726Cnz3SWUSQXJbAPP6ayMyz3isxHPgQ7gxarJtaaZj3zgmCTkyKu13YKDPQHBrqC+4pBvZFvZ7bj14zK4spv57zQ6Ni/v1Cv57rVwaVv046+He2/CeQnI5px+OgH89bil1meVzku94YrZo1rjwJTpxpLnwin3++royZ7FjUspJyKJpBaoAAAAB3RSTlPPvyDPvyAgC6rIiQAAKVZJREFUeNq021tom2UYB/B6oabm0DZrbHqQ2FpBjIcWqnVOK0jFCWqVwSQEvZCJWo9rnHwBMTInRlLwwoZWLxZY1VVr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", + "image": "/api/images/system/solar_radiation_chart_card_with_background.png", "description": "Displays a solar radiation data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":48,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < -120) {\\n\\tvalue = -120;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEX////VhwXRggPPfwLVigXThgTmszTptjrnszjRfgLqvD/krS7msDHquDztw0HWiwjPewLjpSnswD/ThAPTgATkpyrblAvlqi7XjQXhox/sv0PnrjLNfALakQzhoinpuDftw0fYjgnrvjzwy03fmiLuxkPkqC3otjTLeALpvDrOdwLHdgLvx0vfnRfblg/flyXosTThoCTclR/gnCTgmingoyXTdgPz107goRzZkgncjx7y00vdmBPvyEXfmxzhnivclBPfnx/wzEf13VPjqiTxz0njqyrfmhjEcwLemxPx0E7SeArjoiXipiDipiXUewTdmBf77WHelx/PcwLKcwLrujj02VLbkRnioC/ekyL34lfVggTinibnrC7Uew7hnRuyXwPZixzy01DdmA3YhxPbkRLZjg/BVw3nsDfdlBvYkAX45lr//+XYixb0207mrTblqjT24VL+/qvBcQP99HHKawXhnSDVgBPXiw7///jWgxjDXBDJZhPXhAfFbgOFPgL88WzGYRK8YwHBbAPSiQX+/aK2YwS/ZwLVggv//8L66l3IZwWkUwLswDiuXQPuwz3jpC/cjRjAXAXLaxT+/rr+/Zu9VAr//+n++YbmqyrMbwP+9XjkpjPmry7772fXgw7Zhwz//9PgqhT+/JTnsy7DZgKZSAP45VPUhwySRQP+//LFYgjCYgL++43JfAT+/rPXhxrSexj//8r++IGrWQL+/+2LQQL//9qpVgK2UQa4XwG8bQLVfgzNcQz010nlpiSeTgPlryf88WT//+D23k66ZwTboQf661jPdRbdnQ/dqAj++HzqujDjrxn77lzwyUDmvB7goxb56VXfow6vTgTbihPjoR7ryirvxzru0ynNcBby3DPyzkP982j15jTowyOpTAPjtA7ryBvktRu4VwP57zTx3CX88WD15yjhrgrSlAbluxLYmAb+93TtzyB+OgGwVgKhSAPmtifMhQbqwi3XnQbu0TTowRP99o759Ub992v460X7+FXy3mr36oT58JokoBOXAAB6ZUlEQVR42mzYu2tTYRgGcK13o9jSesMYKEgpisY2HSRI2qFYhyghSy1NKcELjRAchFiETjpkNGMHsThlku4KnRQcHESaP0Lc/Ad8nvdy3nMan/Od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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":48,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < -120) {\\n\\tvalue = -120;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/solar_radiation_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/speed_gauge.json b/application/src/main/data/json/system/widget_types/speed_gauge.json index e6853629ce..ff355b2945 100644 --- a/application/src/main/data/json/system/widget_types/speed_gauge.json +++ b/application/src/main/data/json/system/widget_types/speed_gauge.json @@ -2,7 +2,7 @@ "fqn": "analogue_gauges.speed_gauge_canvas_gauges", "name": "Speed gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/analogue_gauges.speed_gauge_canvas_gauges.png", "description": "Preconfigured gauge to display speed. Allows to configure speed range, gradient colors, and other settings.", "descriptor": { "type": "latest", @@ -11,11 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Speed', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}", + "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Speed', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-analogue-radial-gauge-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-radial-gauge-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 220) {\\n\\tvalue = 220;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":180,\"startAngle\":45,\"ticksAngle\":270,\"showBorder\":false,\"defaultColor\":\"#e65100\",\"needleCircleSize\":7,\"highlights\":[{\"from\":80,\"to\":120,\"color\":\"#fdd835\"},{\"color\":\"#e57373\",\"from\":120,\"to\":180}],\"showUnitTitle\":false,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":2,\"valueInt\":3,\"minValue\":0,\"valueDec\":0,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":1500,\"animationRule\":\"linear\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"colorNeedleShadowDown\":\"rgba(188, 143, 143, 0.78)\",\"units\":\"MPH\",\"majorTicksCount\":9,\"numbersFont\":{\"family\":\"Roboto\",\"size\":22,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#888\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":28,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"size\":32,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\",\"family\":\"Segment7Standard\"},\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\"},\"title\":\"Speed gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" }, + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 220) {\\n\\tvalue = 220;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":180,\"startAngle\":45,\"ticksAngle\":270,\"showBorder\":false,\"defaultColor\":\"#e65100\",\"needleCircleSize\":7,\"highlights\":[{\"from\":80,\"to\":120,\"color\":\"#fdd835\"},{\"color\":\"#e57373\",\"from\":120,\"to\":180}],\"showUnitTitle\":false,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":2,\"valueInt\":3,\"minValue\":0,\"valueDec\":0,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":1500,\"animationRule\":\"linear\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"colorNeedleShadowDown\":\"rgba(188, 143, 143, 0.78)\",\"units\":\"MPH\",\"majorTicksCount\":9,\"numbersFont\":{\"family\":\"Roboto\",\"size\":22,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#888\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":28,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"size\":32,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\",\"family\":\"Segment7Standard\"},\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\"},\"title\":\"Speed gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" + }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/state_chart.json b/application/src/main/data/json/system/widget_types/state_chart.json index a78fc06f64..de5699189d 100644 --- a/application/src/main/data/json/system/widget_types/state_chart.json +++ b/application/src/main/data/json/system/widget_types/state_chart.json @@ -2,7 +2,7 @@ "fqn": "charts.state_chart", "name": "State Chart", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAB9VBMVEUAAAAhlvMilvMymeE+nNVDoetInslNq/VZqOdpuPd3d3d5p5Z5suB6enp8fHyBgYGDg4ODqoqEhISIiIiKioqKuN2MjIyNjY2Ojo6QkJCRkZGSkpKUlJSVlZWWlpaXl5eYmJiZmZmampqcnJydnZ2enp6goKCgr3KhoaGioqKisXSjo6OjvsmkpKSlpaWlwdempqanp6eoqKiosGOo1vqpqampsGOqqqqqsWOrq6usrKysw9Wurq6wsLCysrK0tLS1tbW1wbK2tra3t7e4wau5ubm6urq7u7u8vLy9vb2+vr6/xbTAwMDAxbjCwsLC3ejDw8PExMTFxcXGxsbHx8fIv3jIyMjJycnKysrK5vzMzc7Nzc3Ozs7Pz8/QuDnRzcHS0tLT09PT39HU1NTU6/3VzLLV1dXV3sjW1tbX19fYuTHY2NjZ2dna0Ira2trb29vc3Nzex4De3t7f39/guyvhvCfhvCvh4eHh6Nbi4uLjvCTj4+PkyXbk5OTlvCTm5ubm693o6Ojpxl7q6urr6+vswTTs7Ozt7e3uvhju7u7vvhjv7+/wvxjw8PDx8fHyvxX0yTv09PT19fX29vb39/f4wyL4+Pj5+fn6+vr75J37+/v8whP8/Pz9/f39/v/+/v7/wQf/xRb/3HT/5JH/9tz/++/////APs7XAAAAAWJLR0Smt7AblQAAA1RJREFUeNrt3dlT01AUBvAEd8UNl2oLrdrFolZArUul1hWlVhQXFAUF1xaxIqi4FUQUrDsUClZi4nb+Th96S9NQkjDOOKZ+3wuZw8md++M25OXMlKOccJQnTUYocdRqdw8UAqTfOjG4lvr7uowOqbtAtG6o5OiGFoNDapuJHO8tFK4xOKS9msTVgoUiaQjPclnSl01snZ/y4ly2yBNZbRarbc+3yvdpt/hLawOPJp9ur7O0mRiEmzFkY1M6N/4I8qJpulzR2sBx1sgRjQuyA2pk+STdylw2VqR/FPFfWdcCvjhduiM7kVF2db1Nuspu7JGes+I76SRba7f0Wfnn/6F6It+mfo7m8TvYvh7KTiT3PQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggPwXkFa7e7AQIP3WiUFzdl7LuBDFvJZxIYp5LeNCFPNaBn7Yc+e1KlheSYcrFCniL7LZqPl8cbp0TjavNcqu9rZJB9gdPdIJVnwjbWG1ndI95UzWM9V5rS9Ti3P4VWy1+5jXAgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAMK+FeS3Ma2FeC/NamNfCCxEQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA/hZkTKSkwSGn7VUJOmOLV241NiRSRZ2uYcvt+Io+Y0N83USm+MqGWEnU2JCqXqI1ZE+QhYiIy36tXR5INpOQbB5kftcmK85mtdey2iJekeWqX6/3kc+TLCQTrq6eEuZCgKTsbnNXBsIZOERJMedNQnry73XpW8UAKVhIyBPScVfQE9RqEaP7iMT6g+pdw7vKbxKl3IJqV8K7OUqXPHvG9UMGykk2lz1d4g5yvNXo6QqZiA41aHT5OwQTUWBJSrWrvlMwj1jFU2f1Q8K1dCysCUmVhdenNLvMRKZt3hGNriEnxfxlGqt9aPYRkb9bP6Q1SMFrmltMukKuMT2QpckWjc/WhP2lYB/TgjzdHyCKVM/gGXnsp+qY5hbba+hIVA/ETL0+9SepsoNiTs/igGpXZIhKqVv9QVJARIfXIWqfiM1nS+qBnHdae1V7Qss8ngEijRO5a6sMCAtdqv+HfgPwpNPbU6ipOwAAAABJRU5ErkJggg==", + "image": "/api/images/system/charts.state_chart.png", "description": "Displays changes to the state of the entity over time. For example, online and offline.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/switch_control.json b/application/src/main/data/json/system/widget_types/switch_control.json index ee66563b8b..41469e36db 100644 --- a/application/src/main/data/json/system/widget_types/switch_control.json +++ b/application/src/main/data/json/system/widget_types/switch_control.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.switch_control", "name": "Switch Control", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.switch_control.png", "description": "Sends the RPC call to the device when the user toggles the switch. Appearance widget settings will enable you to configure how to fetch the initial value of the switch.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/temperature_card.json b/application/src/main/data/json/system/widget_types/temperature_card.json index 0e3c7b0530..ee0873caff 100644 --- a/application/src/main/data/json/system/widget_types/temperature_card.json +++ b/application/src/main/data/json/system/widget_types/temperature_card.json @@ -2,7 +2,7 @@ "fqn": "temperature_card", "name": "Temperature card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/temperature_card.png", "description": "Displays the latest temperature telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_card_with_background.json index c7de39d536..cf96ba131f 100644 --- a/application/src/main/data/json/system/widget_types/temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/temperature_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "temperature_card_with_background", "name": "Temperature card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/temperature_card_with_background.png", "description": "Displays the latest temperature telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":52,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/temperature_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card.json b/application/src/main/data/json/system/widget_types/temperature_chart_card.json index 235a24eb15..50fe2e92db 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "temperature_chart_card", "name": "Temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/temperature_chart_card.png", "description": "Displays a temperature data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json index 613a9d71f1..6368c62425 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "temperature_chart_card_with_background", "name": "Temperature chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/temperature_chart_card_with_background.png", "description": "Displays a temperature data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/temperature_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/temperature_radial_gauge.json b/application/src/main/data/json/system/widget_types/temperature_radial_gauge.json index 1f5de24fec..3106e9e9fd 100644 --- a/application/src/main/data/json/system/widget_types/temperature_radial_gauge.json +++ b/application/src/main/data/json/system/widget_types/temperature_radial_gauge.json @@ -2,7 +2,7 @@ "fqn": "analogue_gauges.temperature_radial_gauge_canvas_gauges", "name": "Temperature radial gauge", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/analogue_gauges.temperature_radial_gauge_canvas_gauges.png", "description": "Preconfigured gauge to display temperature. Allows to configure temperature range, gradient colors, and other settings.", "descriptor": { "type": "latest", @@ -11,11 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}", + "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueRadialGauge(self.ctx, 'radialGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-analogue-radial-gauge-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-radial-gauge-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":60,\"startAngle\":67.5,\"ticksAngle\":225,\"showBorder\":true,\"defaultColor\":\"#e65100\",\"needleCircleSize\":7,\"highlights\":[{\"from\":-60,\"to\":-50,\"color\":\"#42a5f5\"},{\"from\":-50,\"to\":-40,\"color\":\"rgba(66, 165, 245, 0.83)\"},{\"from\":-40,\"to\":-30,\"color\":\"rgba(66, 165, 245, 0.66)\"},{\"from\":-30,\"to\":-20,\"color\":\"rgba(66, 165, 245, 0.5)\"},{\"from\":-20,\"to\":-10,\"color\":\"rgba(66, 165, 245, 0.33)\"},{\"from\":-10,\"to\":0,\"color\":\"rgba(66, 165, 245, 0.16)\"},{\"from\":0,\"to\":10,\"color\":\"rgba(229, 115, 115, 0.16)\"},{\"from\":10,\"to\":20,\"color\":\"rgba(229, 115, 115, 0.33)\"},{\"from\":20,\"to\":30,\"color\":\"rgba(229, 115, 115, 0.5)\"},{\"from\":30,\"to\":40,\"color\":\"rgba(229, 115, 115, 0.66)\"},{\"from\":40,\"to\":50,\"color\":\"rgba(229, 115, 115, 0.83)\"},{\"from\":50,\"to\":60,\"color\":\"#e57373\"}],\"showUnitTitle\":true,\"colorPlate\":\"#cfd8dc\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":2,\"valueInt\":3,\"valueDec\":1,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":1000,\"animationRule\":\"bounce\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"colorNeedleShadowDown\":\"rgba(188, 143, 143, 0.78)\",\"units\":\"°C\",\"majorTicksCount\":12,\"numbersFont\":{\"family\":\"Roboto\",\"size\":20,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":28,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"family\":\"Segment7Standard\",\"size\":30,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\"},\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\",\"unitTitle\":\"Temperature\",\"minValue\":-60},\"title\":\"Temperature radial gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" }, + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":60,\"startAngle\":67.5,\"ticksAngle\":225,\"showBorder\":true,\"defaultColor\":\"#e65100\",\"needleCircleSize\":7,\"highlights\":[{\"from\":-60,\"to\":-50,\"color\":\"#42a5f5\"},{\"from\":-50,\"to\":-40,\"color\":\"rgba(66, 165, 245, 0.83)\"},{\"from\":-40,\"to\":-30,\"color\":\"rgba(66, 165, 245, 0.66)\"},{\"from\":-30,\"to\":-20,\"color\":\"rgba(66, 165, 245, 0.5)\"},{\"from\":-20,\"to\":-10,\"color\":\"rgba(66, 165, 245, 0.33)\"},{\"from\":-10,\"to\":0,\"color\":\"rgba(66, 165, 245, 0.16)\"},{\"from\":0,\"to\":10,\"color\":\"rgba(229, 115, 115, 0.16)\"},{\"from\":10,\"to\":20,\"color\":\"rgba(229, 115, 115, 0.33)\"},{\"from\":20,\"to\":30,\"color\":\"rgba(229, 115, 115, 0.5)\"},{\"from\":30,\"to\":40,\"color\":\"rgba(229, 115, 115, 0.66)\"},{\"from\":40,\"to\":50,\"color\":\"rgba(229, 115, 115, 0.83)\"},{\"from\":50,\"to\":60,\"color\":\"#e57373\"}],\"showUnitTitle\":true,\"colorPlate\":\"#cfd8dc\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"minorTicks\":2,\"valueInt\":3,\"valueDec\":1,\"highlightsWidth\":15,\"valueBox\":true,\"animation\":true,\"animationDuration\":1000,\"animationRule\":\"bounce\",\"colorNeedleShadowUp\":\"rgba(2, 255, 255, 0)\",\"colorNeedleShadowDown\":\"rgba(188, 143, 143, 0.78)\",\"units\":\"°C\",\"majorTicksCount\":12,\"numbersFont\":{\"family\":\"Roboto\",\"size\":20,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":28,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#616161\"},\"valueFont\":{\"family\":\"Segment7Standard\",\"size\":30,\"style\":\"normal\",\"weight\":\"normal\",\"shadowColor\":\"rgba(0, 0, 0, 0.49)\",\"color\":\"#444\"},\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\",\"unitTitle\":\"Temperature\",\"minValue\":-60},\"title\":\"Temperature radial gauge\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" + }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/tencent_map.json b/application/src/main/data/json/system/widget_types/tencent_map.json index 342c5d1782..f7bd58f817 100644 --- a/application/src/main/data/json/system/widget_types/tencent_map.json +++ b/application/src/main/data/json/system/widget_types/tencent_map.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.tencent_maps", "name": "Tencent Map", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/maps_v2.tencent_maps.png", "description": "Displays the location of the entities on Tencent maps. Requires the Tencent map key to work properly. Highly customizable via custom markers, marker tooltips, and widget actions.", "descriptor": { "type": "latest", @@ -15,7 +15,7 @@ "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-map-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.24727730589425012,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.8437014651129422,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.7558240907832925,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second Point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#607d8b\",\"settings\":{},\"_hash\":0.19266205227372524,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.7995830793603149,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.04902495467943502,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.44120841439482095,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"tencent-map\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"
    ${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details
    \",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\",\"data:image/png;base64,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\"],\"showPolygon\":false,\"polygonKeyName\":\"coordinates\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.5,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"Tencent Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"First point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue || 15.833293;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.24727730589425012,\"funcBody\":\"var value = prevValue || -90.454350;\\nif (time % 5000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.8437014651129422,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.7558240907832925,\"funcBody\":\"return \\\"colorpin\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]},{\"type\":\"function\",\"name\":\"Second Point\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"latitude\",\"color\":\"#607d8b\",\"settings\":{},\"_hash\":0.19266205227372524,\"funcBody\":\"var value = prevValue || 14.450463;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"longitude\",\"color\":\"#9c27b0\",\"settings\":{},\"_hash\":0.7995830793603149,\"funcBody\":\"var value = prevValue || -84.845334;\\nif (time % 4000 < 500) {\\n value += Math.random() * 0.05 - 0.025;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"temperature\",\"color\":\"#8bc34a\",\"settings\":{},\"_hash\":0.04902495467943502,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Type\",\"color\":\"#3f51b5\",\"settings\":{},\"_hash\":0.44120841439482095,\"funcBody\":\"return \\\"thermometer\\\";\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"provider\":\"tencent-map\",\"tmApiKey\":\"84d6d83e0e51e481e50454ccbe8986b\",\"tmDefaultMapType\":\"roadmap\",\"latKeyName\":\"latitude\",\"lngKeyName\":\"longitude\",\"xPosKeyName\":\"xPos\",\"yPosKeyName\":\"yPos\",\"defaultCenterPosition\":\"0,0\",\"disableScrollZooming\":false,\"disableDoubleClickZooming\":false,\"disableZoomControl\":false,\"fitMapBounds\":true,\"useDefaultCenterPosition\":false,\"mapPageSize\":16384,\"markerOffsetX\":0.5,\"markerOffsetY\":1,\"posFunction\":\"return {x: origXPos, y: origYPos};\",\"draggableMarker\":false,\"showLabel\":true,\"useLabelFunction\":false,\"label\":\"${entityName}\",\"showTooltip\":true,\"showTooltipAction\":\"click\",\"autocloseTooltip\":true,\"useTooltipFunction\":false,\"tooltipPattern\":\"
    ${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}
    Temperature: ${temperature} °C
    See advanced settings for details
    \",\"tooltipOffsetX\":0,\"tooltipOffsetY\":-1,\"color\":\"#fe7569\",\"useColorFunction\":true,\"colorFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\"useMarkerImageFunction\":true,\"markerImageSize\":34,\"markerImageFunction\":\"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\"markerImages\":[\"/api/images/system/maps_v2.tencent_maps#marker_image_1.png\",\"/api/images/system/maps_v2.tencent_maps#marker_image_2.png\",\"/api/images/system/maps_v2.tencent_maps#marker_image_3.png\",\"/api/images/system/maps_v2.tencent_maps#marker_image_4.png\"],\"showPolygon\":false,\"polygonKeyName\":\"coordinates\",\"editablePolygon\":false,\"showPolygonLabel\":false,\"usePolygonLabelFunction\":false,\"polygonLabel\":\"${entityName}\",\"showPolygonTooltip\":false,\"showPolygonTooltipAction\":\"click\",\"autoClosePolygonTooltip\":true,\"usePolygonTooltipFunction\":false,\"polygonTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"polygonColor\":\"#3388ff\",\"polygonOpacity\":0.5,\"usePolygonColorFunction\":false,\"polygonStrokeColor\":\"#3388ff\",\"polygonStrokeOpacity\":1,\"polygonStrokeWeight\":1,\"usePolygonStrokeColorFunction\":false,\"showCircle\":false,\"circleKeyName\":\"perimeter\",\"editableCircle\":false,\"showCircleLabel\":false,\"useCircleLabelFunction\":false,\"circleLabel\":\"${entityName}\",\"showCircleTooltip\":false,\"showCircleTooltipAction\":\"click\",\"autoCloseCircleTooltip\":true,\"useCircleTooltipFunction\":false,\"circleTooltipPattern\":\"${entityName}

    TimeStamp: ${ts:7}\",\"circleFillColor\":\"#3388ff\",\"circleFillColorOpacity\":0.2,\"useCircleFillColorFunction\":false,\"circleStrokeColor\":\"#3388ff\",\"circleStrokeOpacity\":1,\"circleStrokeWeight\":3,\"useCircleStrokeColorFunction\":false,\"useClusterMarkers\":false,\"zoomOnClick\":true,\"maxClusterRadius\":80,\"animate\":true,\"spiderfyOnMaxZoom\":false,\"showCoverageOnHover\":true,\"chunkedLoading\":false,\"removeOutsideVisibleBounds\":true,\"useIconCreateFunction\":false},\"title\":\"Tencent Map\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"showLegend\":false,\"actions\":{}}" }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/thermometer_scale.json b/application/src/main/data/json/system/widget_types/thermometer_scale.json index 0dfcdd3a42..22ddd3c4a1 100644 --- a/application/src/main/data/json/system/widget_types/thermometer_scale.json +++ b/application/src/main/data/json/system/widget_types/thermometer_scale.json @@ -2,7 +2,7 @@ "fqn": "analogue_gauges.temperature_gauge_canvas_gauges", "name": "Thermometer scale", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/analogue_gauges.temperature_gauge_canvas_gauges.png", "description": "Preconfigured widget to display temperature. Allows to configure temperature range, gradient colors, and other settings.", "descriptor": { "type": "latest", @@ -11,11 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueLinearGauge(self.ctx, 'linearGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", "settingsSchema": "{}", + "controllerScript": "self.onInit = function() {\n self.ctx.gauge = new TbAnalogueLinearGauge(self.ctx, 'linearGauge'); \n}\n\nself.onDataUpdated = function() {\n self.ctx.gauge.update();\n}\n\nself.onResize = function() {\n self.ctx.gauge.resize();\n}\n\nself.onMobileModeChanged = function() {\n self.ctx.gauge.mobileModeChanged();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n\nself.onDestroy = function() {\n self.ctx.gauge.destroy();\n}\n", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", "settingsDirective": "tb-analogue-linear-gauge-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-thermometer-scale-gauge-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temp\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 30 - 15;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":100,\"defaultColor\":\"#e64a19\",\"barStrokeWidth\":2.5,\"colorBar\":\"rgba(255, 255, 255, 0.4)\",\"colorBarEnd\":\"rgba(221, 221, 221, 0.38)\",\"showUnitTitle\":true,\"minorTicks\":2,\"valueBox\":true,\"valueInt\":3,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"colorNeedleShadowUp\":\"rgba(2,255,255,0.2)\",\"colorNeedleShadowDown\":\"rgba(188,143,143,0.45)\",\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\",\"highlightsWidth\":10,\"animation\":true,\"animationDuration\":1500,\"animationRule\":\"linear\",\"showBorder\":false,\"majorTicksCount\":8,\"numbersFont\":{\"family\":\"Arial\",\"size\":18,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#78909c\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":26,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#37474f\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":40,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#444\",\"shadowColor\":\"rgba(0,0,0,0.3)\"},\"minValue\":-60,\"highlights\":[{\"from\":-60,\"to\":-40,\"color\":\"#90caf9\"},{\"from\":-40,\"to\":-20,\"color\":\"rgba(144, 202, 249, 0.66)\"},{\"from\":-20,\"to\":0,\"color\":\"rgba(144, 202, 249, 0.33)\"},{\"from\":0,\"to\":20,\"color\":\"rgba(244, 67, 54, 0.2)\"},{\"from\":20,\"to\":40,\"color\":\"rgba(244, 67, 54, 0.4)\"},{\"from\":40,\"to\":60,\"color\":\"rgba(244, 67, 54, 0.6)\"},{\"from\":60,\"to\":80,\"color\":\"rgba(244, 67, 54, 0.8)\"},{\"from\":80,\"to\":100,\"color\":\"#f44336\"}],\"unitTitle\":\"Temperature\",\"units\":\"°C\",\"colorBarProgress\":\"#90caf9\",\"colorBarProgressEnd\":\"#f44336\",\"colorBarStroke\":\"#b0bec5\",\"valueDec\":1},\"title\":\"Thermometer scale\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" }, + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temp\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.7282710489093589,\"funcBody\":\"var value = prevValue + Math.random() * 30 - 15;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"maxValue\":100,\"defaultColor\":\"#e64a19\",\"barStrokeWidth\":2.5,\"colorBar\":\"rgba(255, 255, 255, 0.4)\",\"colorBarEnd\":\"rgba(221, 221, 221, 0.38)\",\"showUnitTitle\":true,\"minorTicks\":2,\"valueBox\":true,\"valueInt\":3,\"colorPlate\":\"#fff\",\"colorMajorTicks\":\"#444\",\"colorMinorTicks\":\"#666\",\"colorNeedleShadowUp\":\"rgba(2,255,255,0.2)\",\"colorNeedleShadowDown\":\"rgba(188,143,143,0.45)\",\"colorValueBoxRect\":\"#888\",\"colorValueBoxRectEnd\":\"#666\",\"colorValueBoxBackground\":\"#babab2\",\"colorValueBoxShadow\":\"rgba(0,0,0,1)\",\"highlightsWidth\":10,\"animation\":true,\"animationDuration\":1500,\"animationRule\":\"linear\",\"showBorder\":false,\"majorTicksCount\":8,\"numbersFont\":{\"family\":\"Arial\",\"size\":18,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#263238\"},\"titleFont\":{\"family\":\"Roboto\",\"size\":24,\"style\":\"normal\",\"weight\":\"normal\",\"color\":\"#78909c\"},\"unitsFont\":{\"family\":\"Roboto\",\"size\":26,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#37474f\"},\"valueFont\":{\"family\":\"Roboto\",\"size\":40,\"style\":\"normal\",\"weight\":\"500\",\"color\":\"#444\",\"shadowColor\":\"rgba(0,0,0,0.3)\"},\"minValue\":-60,\"highlights\":[{\"from\":-60,\"to\":-40,\"color\":\"#90caf9\"},{\"from\":-40,\"to\":-20,\"color\":\"rgba(144, 202, 249, 0.66)\"},{\"from\":-20,\"to\":0,\"color\":\"rgba(144, 202, 249, 0.33)\"},{\"from\":0,\"to\":20,\"color\":\"rgba(244, 67, 54, 0.2)\"},{\"from\":20,\"to\":40,\"color\":\"rgba(244, 67, 54, 0.4)\"},{\"from\":40,\"to\":60,\"color\":\"rgba(244, 67, 54, 0.6)\"},{\"from\":60,\"to\":80,\"color\":\"rgba(244, 67, 54, 0.8)\"},{\"from\":80,\"to\":100,\"color\":\"#f44336\"}],\"unitTitle\":\"Temperature\",\"units\":\"°C\",\"colorBarProgress\":\"#90caf9\",\"colorBarProgressEnd\":\"#f44336\",\"colorBarStroke\":\"#b0bec5\",\"valueDec\":1},\"title\":\"Thermometer scale\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"decimals\":0,\"noDataDisplayMessage\":\"\",\"configMode\":\"basic\"}" + }, "externalId": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json b/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json index ff9c7971f0..80034ecaf6 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json +++ b/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json @@ -2,7 +2,7 @@ "fqn": "charts.timeseries_bars_flot", "name": "Timeseries Bar Chart", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABOFBMVEUAAAA3oPR3d3d6enp8fHyBgYGDg4OGhoaNjY2RkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqcnJydnZ2enp6goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6wsLCxsbGysrK0tLS1tbW2tra3t7e4uLi5ubm6urq8vLy9vb2+vr6/v7/AwMDBwcHDw8PExMTHx8fIyMjJycnLy8vNzc3Ozs7Pz8/S0tLT09PU1NTV1dXW1tbX19fZ2dna2trb29vc3Nzd3d3e3t7f39/h4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fH09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7/xx////8KXFhiAAAAAWJLR0RnW9PpswAAAvtJREFUeNrt3GtXElEUBuDpZlAqylVHCyMwyi4SpkaWAl4qk8wwUhJlmOn9//+gLzbKbc6AAm5991p82WvPOedZZw6zYM3aGupCQ4tYkZDSsKDrocNVvz8jHQKYY1ZiT/6OAJllRPSpsnzIqIG9SjYmHpKfAzI4CIuHjJeBtyHfZwCatiI1/m+BYV2Dw35NniOEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQUp/6Wx+DgbRbxOAhEb/fXJ98akiH1AIAHtSWlqRDSvdDGcOHnYR0SPV7zVsaQyHeO0jTJapEV5C9bUz9fIjsvHRIefhRxHqpjxzA3ftajXOudHGJOtHV+1rV04/wHenDc2QQkFbLJISQwUDaP90IIYQQQgghpAvIxRO9gFxG4lZ9XBFIx6sihJD+QVRjEEIIIYQQcoMgahkhhBDSe0iLX3ydQdSLIKR9ghCJkIYEIYQQIhPS8d+AhPQboppFw9HMxBrs/lqCIbObpgezP67YjnQ8iwagHDzrryUZUgsUz/prCYZY05vn+msJhiwM6XrR7q/V9OJU4xQuEpcxRsezNPbXEn3Yzz9Hulg3IYT0C3LxxI2CNCQIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQlpA7P5a0iF2fy3hkLP+WsIhVbu/lvRby+6vJR1i99eSG6ffu1XHxlRNcfWq3I0iIK4tJK2nXVyV0lOqEmvjGWAtvnCu+jMzkQWMiOlYdRSd3MAH/UnVPWR/ApFfSkcpiOBvRc3XtAeYW1ZUJbZMD5C8azhWLX4xvZVR692Se0huHm9ySogxkhs3lFVewPM4WlFUlUMoJEYUox1+jAFIbLuHrKaQWlMu8TicDp+4gdw7/qS4t2qBohk4UUF2nieBfLyDM/ItgXhBucT113i14QbixW7M+SRNb6EQ0u8kHavyZQxj2/kgNUCsYDRoqXfEF/Mdu4G8D43uOtakh3R9H1DsyKZvOmneDjt+D/0DTzolrPMHmggAAAAASUVORK5CYII=", + "image": "/api/images/system/charts.timeseries_bars_flot.png", "description": "Displays changes to time-series data over time—for example, daily water consumption for the last month.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/timeseries_line_chart.json b/application/src/main/data/json/system/widget_types/timeseries_line_chart.json index e83b213ae0..f801be33b0 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_line_chart.json +++ b/application/src/main/data/json/system/widget_types/timeseries_line_chart.json @@ -2,7 +2,7 @@ "fqn": "charts.basic_timeseries", "name": "Timeseries Line Chart", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/charts.basic_timeseries.png", "description": "Displays changes to time-series data over time—for example, temperature or humidity readings.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/timeseries_table.json b/application/src/main/data/json/system/widget_types/timeseries_table.json index d267d42763..deb97d20b9 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_table.json +++ b/application/src/main/data/json/system/widget_types/timeseries_table.json @@ -2,7 +2,7 @@ "fqn": "cards.timeseries_table", "name": "Timeseries table", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.timeseries_table.png", "description": "Displays time series data for one or more entities. Data for each entity is displayed in a separate tab. Columns are configured to display entity fields, attributes, or telemetry data. Highly customizable via cell content functions and row style functions.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/trip_animation.json b/application/src/main/data/json/system/widget_types/trip_animation.json index 9ef5751385..ca9b7e19c8 100644 --- a/application/src/main/data/json/system/widget_types/trip_animation.json +++ b/application/src/main/data/json/system/widget_types/trip_animation.json @@ -2,7 +2,7 @@ "fqn": "maps_v2.test", "name": "Trip Animation", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEX5+fnH+cv7+/vN6LD71aOq0t39/f2t0J0wVoDa08za0copef/w6+Xw7efY0Mnq5d7UycHWzcZ2dXXVycOq4Mrr5uD9d2nb1c7VzsjcycPXyMHe19Ds6OLRxrzZzsf09PPg2tTYysXO4q3z8vHm4Nq9vr339/bt6eN5gbHSx7/o6Ofj3tji3NX39fTJ88ngzsnO6bTr6+rb2drk4+N6enrv7u7o4tzz8O7e3t7Sx7nc1Mxubm3Rz83e99/P2avO4sDAmlHV09Dw5d7J78rI28fb68nPy8aw06jzzJfF4rvJysnH4sfm4t7x7enlz8n1977JnFbo9+bV+Nfv+e731tDdwpuCuXvk8dfM+M/W6c3R5sepqKf8v5bb4snX7sPn7ffZ0MLl9dzh8M/T17TZzqju083Lxr77tI9xtXDc5NPQ79Kt0tK5uba0o5X9gnDE9crK6Mna3b/s8+a81rDL78Pi++TO6MC2sataqlxHoEvh6Ove6N3R3MTW3NXa19SvtK7R2KWCgoO14LiMi4uYgmnj7OTX6L+7tJ2fvo/LsIzb4urExsSiyZjsxpCzo4vm2NLS3c88YIa97clEhfPH59TR5dHU67rjtprjvYXa6dbo6NP03K7ZtHq1r2/J1L7n6bjWz7fh1rfHzrLGuq+TxI2EY0Lj8eC11t7CwL7O4LbcxaZzkKa5wpfc79Wr0LzHtJnqmoTD19703NSImre4zZ79knrPoVv59+fi18Sqx63Swav8q4mpmYP9inXmuahoaWnlrJKJwISkknTO18z8yJzrpIzb8tu549P45svc16f8noI6mkC718pvg5nXspjIxYTXrm9osGi3xNKZmJO5o1S+xa66u4GLdFeMcFGEsfultMXuyLh9fnzMp2dhnP59rdvF2qgslDP38ODmxqzN0ZNOco3M3//O3+JTcpVISEgciyTanoqqpYTBqWL15+HFoWC2kkSurF+fvfGeosCMp6dtmuL5y6vokXQ3NzeWxMtUXWC+0/dVjmWkblwiIxuD1eZZAAAwP0lEQVR42qSZf0xbVRTHe9v1dTEaNdGoU9KlhZrV0dDWhk5hDWvxCd2M0FBaDIuuhQDVUGjXMVqYot1wYCzEWplaB+LYgEFxiwFiECRsJmOYbaLJpsnmXJhO5z9LNEaN5777Xl9/0C1zH2Dt4G15n33Pufe8OwElKLchlj2lFMfnaxi2Ix5zbgmwbt2M0WgUAxFpObodBsaXo1VGxOHWtueJMLIF2XCFrGJhViSTRZzO/mxdP0JeLyL4zK5pxOCYPbpx40a7SqXKyspyowRs5QpKIGA0Tp5EqNxCcexE7xOR9xHPE0+U0H88DqjVSiySJS1Ed4K2XUQ44uwfjmzevLlCJpPZndnZtfBDVfwDYN/NbgTAwwkiD6MkbAJBOX6ZmJhAOyneA6zWED5CHMNStX9KzDA0xLxIy9CdMBMgHrKLF5c2Y2QyH9LlZ08yCTgRwEkQZuWRSESlqtqUBYRQEuUQiA3l5JS2chL35lMUlvsoNRKTVGcSJyFVoDshT0Q4d3FmMyvijSmVNQerqrEIY7DAulxGQK4BUAWyCFUpkUASK6V6OecxOX2QoiwIeD9NRD2dLPJIrt9tVN2JiGxWJvpesbCLiEhk1dt0QaPXO4OAxEAMjshBVFbebDcYYlkcZpSIQE/xVFoseXl591DUQWi17YntrvKBSHBRjBmjXUTkZIOgLGwyu42N6H/gFRGWtiieJiKiUo2mVPe4vck560tsEfBwRLbkGo3lG6sDu7LiGJJEeA3L9jyGJgW1Mz0SlUnqJyISyZiYNemNmUymkF+nCbnR7eLczIosvfkPWPwKXxrg8LVrzsiCl0/E54wYHNVb78WLJTR7VgKGVUSklaDBINo7idudjyRVZExCi8UrrMvQoikWjWo0iv/bIyCy5IqSSHLHCzSaddegE+zIqyKJOJwLjtmntm6dAZHATO7CfYkmgWQRUlI8cvimLTUSEAmzzU6DSKs4kZUVcWuuDd0eKtHxCqdMJPp2yeViPKoPGeexCYgcHPYhgsMRQxe2bu0zDBsDWWkYeZGdy1EDGwV5CeqV0PrlRATzUaqIywVJiFOYeDsQvl0Trk0edi1ikUNGI2Oil2e/6AARFXz2O6qGh5VPNMH2sT7dY4OKF0FePopoVK/bWW4zH9xGCW14BSZwq1bINCTOTOkmrb/hFnfuNrfLg31v25P63akQCA6Ah9SIWYQ+2bVhg893FAH9w2XXnstuAI/eG6ev9Kxd23Pl9I3DnEeU9ahGDXoBSjCRy/VmHJahCVo/NRKz1BTsFd+MFa02hNIxGlWMxPz6J7Tq9tra2rfftiWaOEVN0+DRJC1kTMIaTW0tiPhmFxzO8ueee04OaXSMgESc0y8ndEjHudde0+tBhMGSH5o3vDTvRiw7mS7ZnrgpqvR67ybxTZnQag80pGqYMH4dsB5Ygas25fNLl4gBL1mPS6Wgwpi0Hz4c9V1eGHY4HOqC6zXXoiOsAa9SC3mQO30NOKd/XYBsDX16gUCgm08qcVi4UtsdRLziOGMSYHTZlWSiFX/6Kf57+FI60SAPhvEaDQYsrgQRH9bI8yJACsjLGohJ7Uyfg6FAUVSz58raNK7ksP0hz9kjLXqt9F9BsE+vbytSC/woCRgg++KReNNEaAlhfJTfVYAvxDOf5ufn+00MJ2C63D8EEZgWE5urFkR4oG4Qg9RiwSonSHVpsohIbq2gAKoqnZ4xhCmUy//c85de/6RgPmwrtEAi8ylDGEU9XoUj4ZvE5AcRLo5kaBcrcn3b6xOtYCLHPAKI0zhc9JgbpfNQtc3WoAYVS2GDUQkmUUf1hRp/bH4/8Ug36UXILcd8oVDU95EesRX65cbUSIQBWLj42mo0+RVdYoJkFY7nuGjJ9et/wT955GPgsHhVFu9XJHqoEGFyS5XNdkKp10oZsMmUryYbajJeVyNnWwWC1rMj8epq7LDswSJPU54+EGEpNKdFUo+Ql9RWHrORBHViQo4kA6PXt4AI4IK9ZnW0cjdZyRpLPHt4Zh4tt9mCSgaci06pLyiQQ32OcBrx+byV+9YNreILJpE9hYbhuIhenxy4qpBZgd/DHs/+xIjoFsSE4xlFxiW4ZzIysU7uNyNk7srJ6dIKBXKdWqn169vatHJFvgIWHKUyqASbgJ/kotmyZXEt4TxF7T92tafn6rH9FHWeLS6NUFMqn+8rLEwUadClRNJAURcQ+vpZLPI1AtwazUSmyiK8OQqKySonhxI92h4sMJtffrm0TasTCNMBNbVSeSIWblA1HMImWzaOcB7CY2tZjgnBhCDQPCkHjb4w3tnvQ4T5cHKXhClKoEI/YZE175EryrgWyWjCJcMWVm8jwLmc3dTW1tY7FRKuDgUfgLxgVyPDIyAS7u0hdUUJTydsIkJqhI3k5z8VhQcCATcW4XAHkyMJURSUcx5pEhVzxSF2I1ilprgX9nWUdqWJdIFHl0bIkdlFbYY/VTgP+yOaIrfeSpE8KIpkQrWyQfm1f1LIHVDxIoBGgxLpp6hmE0IfJE4pE/wmwt6wZDWOQ4nR7BMLX1sr4KEWslSKjgwsRwP1j0lj+zAfOyp5IVAJP+QHDzTCBrJ/LS8C7KfYH/j9T1IIYETCRWajKl0EUVQwitDzTG19RkTMS5kqix5zjdE0SeXNa0CbOImzSzoIhLOwWNhTB5lMFLsAzyTLMM4vh0CTY327VIoQImvvWRIIgURyltSW359jQ4ATi7j75Axad6pIfSBV5GwmERcBdspYbGHXdM2+c8ki0/X1nIdluwgDt16BX2MxeAfg31TfdXdcRfEQQqiHrayrySJXqVZOxH+QEwGM4VAolNLrXiitkBtE1iSIuMWYfVwFJSbCmUzPzIz/pdfWnjuZJFJfX892eYiRkBEXYMHKeHwtwn6VMHlxNZa/2IjIfSuonuTS6qEU5A3iABGeNBHcRN8kivSJMdc6O+HWuyVv/jE+mlhci9hk6Y3x8XfekQCJHrVBU1QIKEJ2cv+chrMiIkoleojNxHRLkQ1Rd0YRfpJXIJQiEmQ6d6wbRDo7uyWSgXHYOpI75eNFzi5xA4FZIygE6vcSBfiYjVWIZBX9FRW8AfvWZ1YICRa+tFiRlNIKbHjmViJ9ZJBH3yaK6BgRSKObiEB5gUcGXLxIdraplLkxooGpiMVicEZ6WbQKkYiHra+rfLPzInyzX3FveMZ4C5EgeW5Hx9fwOyIiw9a4pLsTQoFYCL8///u3knTG+MLSmbqYQLaDBkkEiyw4ZUCahjOCD4oKGJFbLL+nfbMJPdKIHwnSoCghwlxkRN4iQ/KDZEPs7gQkEAnDh88Dq5jQcZEZnYlZWaPHQeLVCtLos5HNoCEZxndNzplG2d5xDsOvsxdxKOdvviHe8B2Ji5gIxrQOIZWFvMzy+4EXAQ8uiRmmsMjoKCvyPOb3VeaVuEgoZFJikfYDl+OlJCMsRKDZS8QusWuopEKUDJhoM48omOUIfspMPmnMVWqiUUGZjXjUq6UWRHgLi3y9Gc+/nMhYJ4YV+RY0VouEHnfFH+VDLwsxL/b3x/uaFamurt4hYlbqkiSJvcREd9Oh8fSSI/3IlCAkt9+4Xq0OI4AM8gAe5MPtRWLCPvDgO2T1SI6P53CBqNu6GJG6OsdX07BTwBnjjh1EpK6uTiS6IYZIkjzeJZuL50hBxjEemPIiXgTu3AJfNhv5fx6BAf/QpFaviyAG1W+MCB7kQ0VEhGTikdyc8fFxMSGmbpvHHua64qqvluzAXtFLLxGT3TQtkgQwzTsuXCiGXRHAnvDGB3tO4FjmB6uRDrT6hthUA5cdwiZhtXqebSMvEfmQFeFNuNEx8zwvjouQ6eRUTTFQR4PJ4OApn2+hv3hwcMfrfXNz1kDAarUeGG1p2Q0WLVbRSy0W0VyJvbvlzNTVhEddhSLxUbejF3E0PpCy/FYrsIlzW3P5MCKUEJEfcGkREcIyP8BDFRkM4ykqvIjLoC5gev3MGexht8Nni6eY9i1Eiq2DHo+nZW5bYBBEfmxpoa102alJoEXRUlJlb2nxz3dlOnwY62hELL0PpIrYJyGTmcuwhXAiIiLyAa6yomeWF23sWH5DwjPt+NLgySiyCCLYw1BSJynpnpu0zzUPSoqLd8OZVvHuFtrj+aWp6ZR9AIvQR63WslOVk5PLg80eSORSU9MR69+rHwdNkUCIR5oIwp2yLZdCiE+E3xG/gweH+DG8Xi+h56O0Z2BgwG7/ZDluQodKaDKuwFE3npbNVWoNFrFXVc8BBsPu5jNVxfQgIyIQ7LBam/aesdutdElL1dFfKuesk76yusFDR+fCilOVTcVW69RqB3RjHR18XfEiPKpqvJBdQHGIyLNMQxUU6PSf4AH9/Av1+s/fgMOnhx/eNzCwbP/k81fqPZLOz7+UDBRJJH1BieSNromhldJSuNZQpdZikW5P1aWS7u5uenfzpWLoDjgupa3N2ysrZ2Z8NE3XlZS0HAURTx2IXGruo634OrhwamAqNRTo844OnENvI/EAkf8oNbcQJaIwAKvTbg9F9RBURCzYBWprsRbBBcvMzCbrYRTH1tDSJMZhI1PaHLsoNWpMJl3IZSO6re5iZTf2oUJiK9oIu1JhFFFR0IWeq4eC/jPjNM5ORX0yMMddZD7+859z5j/ntlrO9hNzQUQt8frXy25opXFnPF6Dob/ITgiFcrnc5GeTN7CnThXjxaJHNWt+pVL5sdFcLKZS0ehOI8txXe+RiGkOP6/v2WPzlcvXo+l0AHpWFgNgyMJ8gQDW3V2w2UqjR3vLbrcbRmSCjJAQqM2bC1ZrOfb90fXsvQaVA/eu8B4yVE0jTEwn1okisokkDSKtk4oLeBF2ZYQXyTybzGZqmUq8yBqNxbrIsz57KvW+iRvHcewALxJqAY9Idymvw/JpHkzA6uOH2q9Y/mQJ8XU9tHUgEMTyL05ipc1WwJd/PTg4eP75mQ/1bQWwiO6COChF4JhBI1vkIlARAo4jkdbWG/FaBkT2EyybA0DkRSWzLF7sQyLFvr4NZjPb3pRKQZ/aCDTxIv0aYMdLbCTaC2iOHy1MgXAlk+uFe2jIQCbL2gEIBQ+uVooot2RXw7Zum9RMLhfKpnTr3AmTavHa1ZCX7R9m2czG3KneIvtiajEev5FbxovkjILIsplNAwuKRY4ftcADOHUfk0CTu5I7yeRb7Hdota8HnyKRNbwGyoyDI0UOqhXATvvchhh1j+J52dpaqdWGaXMtM7dv4fBNlp3T19tbOXbsFIjkcoat3ABXq9XMk56ByI27TRc5FSdUXdYIryJBaaFewtN5TMnpZDJgxSR8kgioTJ3T3t4FFvwTK0VMaiVOqW9J+9RH3+mB4f3mEGwS6w2G+YhUaPt+qI5caolz3MDAAMdxFy+maAtN000cp6oXUDQIHyZBUFQh7dMpetCtzWmrtVsX1OnyPhgD3IwYPy1SOQG/slItMvFfRBzCGl780/H6AOxIzdfrzWbzzhnT583jPVqAHUCLSuVyHbYjll61WHpTNG00bmUFEbNQx2oUseH4m+iRI0cC0P1tWPAID0EQHh6/CJOXIoJpr2qAP4vIFaSQeBtyZhTPYnQ/xYywNwAl6DlzWubNN6Ts8+fb7R1Xw6n2BdvoKUajBmkkhIWvmBNJuEYTzsPhN1EbxTBuL8PAbFIlyf5YjNoFFj5P4RHux2KxmNvPBHR1D6Ty+P9FUEiOKPvWA7H9VV7tprfNCYUMBv30OvDVjlkGcDzcdHHt3hZFQAJZnLpOpeC5SZuXeRQhrweQCEUxnZffOD1ZiMUbUyFWxq4LCZPWAtiioUaRTf8gosgScQfuidg+LR52WQ0fB00THaHQMyKTGV6KCKMysd2g32a3iyX3BZhcxBSgqEjV4yEpL+Nxk9kAaeuMjd7FhG2xWZ/czihJemC9gvEMXXgrRGRR4P9FUEiGLVLTJYREK45jyANwRODjONVHhJDI54xjU5vFghYNamDZTo2IVeu6w/er01pe5E0gEK7OApEsWpm4yaiJgQVxp/9TOFbAq+txD0naPDGPDhMqkUMntTxYg8hBpQgaaJWM53faRbTi0QEJ5DIciSARgnhaFxEPJm2y2Pev0Ise7kGtK4hMTruCvMinbJbBPdXBQaZso667SesjpjNLRfxkuIDjVRzHSVje2yBfMERHD4Tk7IWeRVf+LrL+tyKnUTVIYrn8PJ2LD4kfPCobnLMIouIVRdogHJva7iYSW8SdAreODwYU4lzBZNCFRKhCNgqPS1FHVvVSVD8OdOO4398fxj3Wbooqo74FuKFjgUjHUEcHBiCRLZv+KPJ7gmObVaulZnKUtFHdAw5AXaTytIUgbhwTRZAKvQ0SXMSNKeBT+OSiF1Yr2OWt4ACAbl51WRxv81+s167lMR0fEcR6LDiERDTRP4mA5GpHv0Nhsk7V7JSvHBEPpX4lhKRcLvfJRCx0ZKSFVu4hPCycdagXSaV/8cJXSjoEhkogAvxJpAveQvXAU3xEEdvb3Lxenu7APq1aAnKkH0S2zyBubBdEZu7QSxYRcTIPYr9jT3rgoniflrsqRVBIcEkEUIgkujRdCf2CNe3Ns7Y4RiyCt8jnEikkPUgxqF4NAaHpcm7hDZQjE1qnSxYoNf5ID5oWSyWO61V6KHnLi/A5Aqw5WB9/G2Ny8OAmVddHzTfDxzWPE83ANotaohRpNKHrIXnAZ1CP7PiwY+HCm/sbYtHsdMuXUUPyoCQxIFByMwxuKqF8QW0k/mYJfytfhelAY1qPSyaiRNX+8fHuxOM1e7/phSO/UoYHoRARrN9L52df8hlyGi7x02Zp6+rappJiIT2GJHLu1aFDY8YcOvTqnNibPLHOXhPgRxAE8QIvxJgIUCpBK4D9otQB3Loliqj/IOL8+FGTSBhUGrCQq7RtblZ2Lihnj+TY/sb0/u2bxiuQEDn0CkN4Cp2dJkSVxP0ehiH1DLBk/KNHo70MXq2+lifJWW3Q5dIAs8NqJau3OOHA60/OzT22pSgM4HW6kFu3t22kihYzNYltTCSdSjyjU4mFmZpKW3SiCKJZJFs80j+qI7QkS6S2jq1jHhFLsGFDmEc6hE4YIiNm8Yd4jMRE/OP7zr3bbXtNwm/ZfWxZ8/3O933nnp2mhwsLG2YOzTywW6KCO9mSlBzpf7RPpbbLi4hIpksuYEs4/uQ1RJWf+O/6A7u9dNimuSeqSt8Wlq90LSqzWB4sKui41dGx4MPiYw8SJjszkgEQIDsq0bCw8HMZLfIdQ7DRlxelqKzCy4FlySqxtoS9osbGqRWE5FSspZPUlttT5LnJCcmg6Rgu4c2ZukVldvvqE5PLYYPuVmG5y1KKIgWLOjpOHL36ecWKD3KREioyhxfJO5uSDBxJQURkewNqiG0/WzSB8Xf11xYuFQv9zzJhpWskpL7N6Xe7t0YtPAF5Mt8lGsD32kVlF+z2Dyhy4lbh24a5pWWHLB8KOjoOHj169cIK74CIM9t7hp9/S7IJpWj5KqFkioqohSyHkNkgkqIiE1WSTFCEElJMvadUKv3+vImAn/hDO0MBd3t7e9Qftbx48cIlSoj5kOTE/XYjMLkc3sdbvLjcXVpaLB+20X2w4+gue9nhFZ9lcoGsrLm5ZoGE6R3WRZmEJwYbCt1TpUuUXfqhAg2bYTIQTaJpPEoefwg9OK/B778WirrPtdc5G4pPVlW0hY4MEz1+Dh+En3LwKHVG4U2WxYtt3rtU3+WWH9xnv/rw1OYGuYBq/ib5yjMl5pbGxhYjQbq7qcnl7lisutoa6VpG30FPFJEW2N5jZiOcZEWzly8vHNrdLzIdvpR+HXjUm2ET6vnzUAVkxNtWXHzSWxsKJaaE7/NfLyUilfC0cGWsj7pgsytpe8UVCJw6tXnz4wGRGb5IV7yrpqams5aOf3NzPJgmgYpIVXb2qxhBZAB+AkYLFKmFnboKr9fpboMtLiriBpGKUOiIpLBerlkjUXkjH4SeHocn/LjmKY+qORaPhINWaehSkb+rSEXQo6rkeT2IQD42uUs+nrTI57RHUcQJu3a5yQlB1gApKpVCCizritiSxzJK3jIg6EA8klD/TwQfMhIRYbl1Wql0+nxXigPOwJyKaxbLnI8ZuRnAORBxRUOXRI/zELCQEqnKBnitHJnsc5/H47m/baSAg6f1+sh/QxSRkmQyfsb80xEqElYqq3w+nzcjIzfgQgKoQYHrzh5a3bkuS/G6uosYsJASicobeC2IwIMkxr1t2/VtA9dwc/16kwBcwg/+UQS5ZxfafmL22BuTFs5tppVqXVA1xwdA/KASOAIngZ54/CvS29sbuxzr64tXDhdTIlGp7A8W4C8g5Pv3W1s9Hofjzp00EasVv639d7b9lMzMLz9GUjxLly79qwishIrR42Z9vRE+5WcDEcQn8KWnLob31bHuvrgjGAxH4uGm+2k8dwAPiIgpEVVEkW0YOkSOgadgDQaF2MORSMSKr46T1dkulGhsMSsyMxXALL1epRpEBLfnp3Z2gghwFnvQ6dvU9bi4rpkP0edbH/wE9DZDbTdBHI47aX8ubdEDUiJRSfsT1nAY4w12zaNcqSYkErHVZstMowF2Ghxa9q9VcCNMVMSoQo4PIrIePiZXgzwV6Ozs7O3tusvPJJ4BWqFHJaU9iMhrsd3evxZFYKSDeI4RMm9eDRAO22rVZBbDMDq9ngGIjOPUY9WzRiMFh/A40WAwZOWhyCzqoW0XROr6Xtkicat1WT+QS0cirQjtNbEHU7oORaAfscaxxPlSSSit90kaSGWMVLc8Coc5CiH5Ji2iUavVBBRUcJ2FIuM5bpT6kIKKyIx4NBlU4zTjUESHHsb0HhBphgclhGoVGDkwjzSNHBT0wJgxaLG+JQRtosjrFA0U0RCiVrMsq9WDiIzkM1SEQZF0hjHiDZzJRPitBhOCIlo8TjMYOI0mB0QYFElPxx7BSByepuRAgdSxxqgdtIlTe3JgOglGllGwTqBMoCe/JycENUS+U5FsFgCTHJK/h6ZEjyKQiiy8UTG6gjwOEUQK6MlgYDSaAuwRUUSsbWngCaOduEYIx96Z32FdX64OL5uH1DSaOaKhZCkV+fmEKJC1v8SEJGsgT1AETLQsa0KRPbp0LZCFIksYBm4AnV6LIjoty4vkYEIWGAwKjUaLIiYqUgUiQuTiBJ46A6JBBKNta9ufhsRUKrMZhoIbRQg3Zq2e4yHw2qP0pgJWoQERHQwWy06uFBMCGklUoi9nZLWQEwPHTZTpdDoVJgFFtAyjpyJwwtJKZwURGR4PGbQ4ZMkiEDjESuMVHzg2OgHiaCNDh44AsvVtbXxyQEQNf68YJSMcxzCTVdSF6GCQYB2mUoyDCPUKhgW+CQlBjRS+jcrHCcnAApM5Li8HRGhfTAARA0xaeG2EUw4HmNhpgghiMIKIXph+Tenp2SDym4+7C5VnjOMA/vSkqXnaMy/GNHP2mZ2dacasMTNtf+wOg+IUSWcX4UJuuDiKUrhR8poiiXNDIUJu5EZRSKJceLlBlJKXC6TcEHLlxvf3PDO76/VbZ8/+ze7Z57O/3/M8O3NOTnrkEwSd/clJH/z89EvPn/TGdW++/KZpCDybXgLrBgPERcvKd59QkO/scypAwrBQEDxIEkRqSC4ESpUIMUJO1yX5tWfsFuTCixVEjiimtcoAqakic0BOmHrZkpgr3KLMjreQPJKAWASpFCQhCLab5+FynKlh0qiWgYkYgWXRUHzczwARPnK13hHtIoGjCsNMQ/AcgiSumwBSCRFwXgtB7/UeSvJvgc0FpKB3ixJYJwgiqQhzz+ErvCymfm0JLFumZVELaghmuzzAFEGKTkFsDdETnyCHBJmNkByQxLI6fddcGZbn2iTpP6PYFBmGK05oqhtBKtcVgIAgOa9ojlD+41T3i1ENCHWNrZetGbVWh9c4poq0plp/c6yyJke9KzwGW8jbCnJ8ELkKgrLXGEndQ5Y2snQcsYHI0DRqLBW4m+C/+UbgeXIHUkQ2zfUw4iZBEAEI9e1IQUTB8wES/uvFh2/oiIbkIySxIhbo2S5jQBoNMSm8wlCqaFRjojKmV63AtNygqIRQvZF8riA5QSrHsw28vxG1U1kGRq7bN6CfaEjPs3Yg7ISaIuEh24UcAhJpSMsPN5DwX2ry+8Uq2LTpzUZqy+cSELTT3AOk0JCOZii39SSJARlWLTzUjYqlhuS7kMRxFcSnGhLEVhWZmUhiJK6XKIi+svX06SghIEkxQLD3ch8QX0Mi7gvh95Dgj79foPsVv/o/HZnqlRXJrUNe62VrngJCpa40hHNqXHlAjo6xiiSoSFm+XUTo4h1IRRDpxApCb6NdlqUR0Zswsk0kMKrQWxLkAgW54IJEt1bQbCEXc2pcW0MqHkHTQyx+Oi6Z7jDugEHlBEHkSK0WObd7CCQKgvtSQRa0/B50gKwZyzQkcMoviz0NWSZvPkuQmiCdggTmcoQQZE+9WblJYYeWVe9CntOrljU1iYvCEeTEtiIBP7GFhHzPND/94ht1EfuLH05AMISGKEaIbVV8NkDmDme7kExBjj2kYSUlUrdFi1dSFfnwQ4IkBBGOs4W4gLQWUicK0vj0o/4GSbwwbAniYxwEWek5UgFi8ZUQswFS0GK6h6BwOZ9uHSemFkLgyEp4u4Wsmn75VZCpghwQZPEXSPMvENdxOoLkA0S9hhkoSBYRagciqBlLJ1yYQlUkJ0irIUs4zuOLHci07SGocsX5eYdnDgUprH7ZmgHSaMgxIHWjN8SlguBR8cHBgQAk2kLcF4piLEy1aj2vILKHOASphtZqLGSkIa3qs7/NkaVXum1gqkW6psmeATLDRxQFyXYgbbaFJICcd7ZinHk649awkViSM71q5ZgkHZ4h9M4OCMeiCQj11pJ9uT+kAsQVV43HMpGAmCL4B8QBhCtIoiGLv7bWz5WN1GXYVnr5THA8a/Q+MlOQZmeOtM0WIglyHhiV5Tgtl7Q2UtKAcw3x5wieMc9Rkco0b+AFTfM0TvGtZmd6vcOZADJ21+NxmiS3XsakhsQ9pB4hohQa0k92dUqwM9m/XlJnmmWYZQDSboMR2oWG7HU9ZDlAssZ0J3IDwXR0XYdS015na0jMuSX0B0WCSNysibR/Q5F5m3TsTHNSjvf3x5MJQXQktnaW6M8opjoLCEy1qs9Ky2AK4msI+qzagTxEW09A3Q9uriFhzQCZY9lKCELL+gBpmFlOJhoSoFGcIS6f4ekaknLuOfMhzWqCW7KUN7DpFhKzM8+e6BDk7X0FEck9Z7JaxARJCDI1NSQInX6OzDSkwHiXyy2kpmdgiIz3+//FYVJPCXKsPv6eR2dWwQBhHNvXOJY2Vi2xhSBN0wnZdXIJSMEtJ56nsQJwXhKDCoJzgngDWbMzz7SU4tTfXj3ttJOHPHwWy4Xbf9ZSq7ccIZHnZFMFGUmCtDzwcDzf02dWr71p2kgYumiHTlSzZU1pCYKSzIRbMual+xRrvX8DZ+V4k+kuhPEuVUnStOGVQ6/ipfP5MbjkOT52rZbzdpDcfiY788SpZ312g5+dhgAy5EJ2KFKbMikdXvQQlOcw05CZghieg3TN1fpUd9+jkliux3knaSOv66SuF4DQi6+PynLa9JA4BaQpnQ3E5snGkXO+TIcwXgSOiicw+FW+XBV8yDRjnHLWmWed8Q5y1rUKctZ9939287W3vzCpz2IRKkKJPWGgIqofLM+RfUXaxYnEbBRk7ThX62umeG+SCmuii6rH4mhy89HRxNUVoazLMsMEJUcKD1XE20Ai7Df9DJlhZIWAIe6E8Dn9a8r4kKZhfBuWjexKivTHCz+7+YUx5VS01njItU+xUV8RjMsw9CenKPQcc6jIYrEwmdG/9hNP9OcjNSwKIuI4BWR/UtaFBYjK2GPM9cBIPQXhh+FYRyw5MvXzKt9jeoSrVYPbhiPZItuM3j8+Fp7KgvtdnOpce+FZZ4+HSJ4Od8+4jK16SNJDgsRPYkBW2BvW2G2EFGNmxMpRXv00Oa5+CJfRPMRUEGeiIvnMSec6eHujdN/OKsvzrBn/e5opo1umIXZedyhsyysXifcRsLxNqiwdctbZJ1967bhPnPNuuP/MZawVaSxzu4oJsjhbOB7iOGKFA3I+VmkM4ai8qSAfDRD0eBLHnnJ4EYbmH9Mk8Ru+SaH7nFGTD8mvu+46M7jOva5FcUTcR7LQdfd1fEzwDeRCgqznBCnTk09WkP31el9EvKa7PaQRqacDyNln9z3kWcxIN3Ru9BP0nEfUHAHEc12RMxr7qmDNtM34/8V23aCL85bainM4xPXv3XTLnbSpxJs0cPRZK0g/sIu5TNOrrlISQE7G2I+uQswFX9J9fM0BKQChZ6QEOfNsr5+ItmF0g2NlGE2nD4CB8P9MlqNLuhysRbrJlHaYkhIkwZkKcuNjN9302PvPcoaeIsQaXwWm2ProaE0Sai2qgoIUbeph4OsjDSEEcmQWfEYzRQIDyGa30a3l6CwNwxilQCR+y41t/gJh9GVLUwgsPW8knNe3xn0ifvYr8wESrQC5ar8sYzzybAW5/pSbbnp/gPRBa831EAFhljdfr9dzgmRQrenAWkHmR1dRRTpUpIXDth996613L2NGi6kmOimlMP4WPm2nbPvPYlVZGvLBc8izYWji3NxK+9yQZZNzrotVLJNd+MorrxwdHeEmrVpA1leJGT6GiTMU5PXX34PkWc5Rv1FUxRQu8DAa8HG3zxuY1efqHuItDwjy4mm05q7X+cGBad7Ni7GJj30Pasjfw5usnXIauHR04j2DPgCo9VdLnnvuqacACSV6vHfEN2TtZHKrkEJJFoD0iSWaJh2/gs9aUoi7ewj+tukmQALTpI/+ChK4rrWMogiGJsNNPUIGSB0doLV+AwQz/fgAEHEe45dalW3nTvLxh4CwbC+XeFqLu3k/9UVmGHDouB0f7l+uP2w999S3rxMk4MGaFB16K2DNZELnrZIg7YXdMcpx8BOd9WOI3ngPqYV14QA5//rrn72ywNEIBxKCSNclhx0IcYIgS6pI0F08JUgQRX7dvaohuYZk/NIwsSnff8x47QwpDOkN6YzCGRJbjSpH5z93wSUa8u3rrz8LieRmjGLgkoOIU86wCo+QDpDm7AChIWKozHfHCpILa6cit1z0XoOjPg4sCZK4VoTkiRA5IOqEJnZdDXEjChybiljntYBIBbn3Y7ZyNlkZuhzp0dpLWeYMca1M0rdo9vQFjyjI668T5NnrJBcilnQSEnQd52FoEcSOLas4vYcEdM7f9hB/B/LYY6c8/liGo0sciAhSuaGC0HW3BhC/hzSAmPZqnxbOc889dwzJpiKWqSDPf8ymnjPEpoqMvfHRVWvP20Lo/W3xvZrlD/UVGQ4FHD0Z7SEYNQNEjCh0AbXYhbAeMhLn7UDef+yxBY7mdAAQusJnA+LnQphFP0c6QApAPnhqtT/uIQhBzPMaHlpCQZ76GKtW56AIInWc2mhxAjTGwoElmTM8bTYKor0A769B5+Mz2/kb5E7uow16SMMtDZlZWLX4TmtlXABC6UINwa+YHqNciaP1AMG2WUUUIIp+1ZKAMECue3a1DwlBJgPkwoJjbEslAQSzmtJ5sTQMdDmtf2ksGkO43h6iLlADYs0QdWa1C5kKIXtIC4hqLZ/OCgFJCHKozme6HiIJYsZx/pSGTGvTTAZI5LqSHD4QTYAbOqMAhBPEU9v+DQQpe4iJCW5ZuYI8wwx2upSJPcOPEtyw9Clphx9iSNOk7s8tKzQGyDM7EHlwcCdn54lOjTAITgASzmiOqJPgQOYEGdEZJpc9pLYuVBDpv36NgrShKXtIhit8giA2DNNETxJUpAQE6Y5JQpDJAOEEqQbI2ZWUeAZBmIE3oNbrfW4kekHBYy8miLuFvHb++Vfc9vr1334LyKWWGGmIz0UY0pK5BGTBzyxLx9a9dQKQVEFyYfaQby+jOVKgywkyA4Q+AIR+D8ly3NgDxFRnfHCMT95pLWztyRbS3IW+GmlIY9RUULy4EAlBljQQK7x0A3logOjcydiloZjRo4Ig50EYql9kAHKCn9dfArKx5XHpuXiUunqHPhNx7l+GP0Z/cgMZEWTh6tm+JAj11+FoZBKEdhv84GNAvlKtdaQhZ3C5hSzO2EIyo8LTZwpiql8R03u9A1k+dMlfIDcyqoiqWxDUXGJn6SERQWjs1FsRlxiiUglR867rALkZeYxxai2kEskeXeHLh9Y6gZscowIkUxdQUWlA7teQVxTk7gaTve4h7dlbSLsDESzX83C3IscPqX3kiQHyJMMcGSASEDXbK0AOCYIDSGDavMOmTfcj+sGAJL6pIByQeq9PoyBIgMm+UFv70gWkmmrIASCfEaQ8QjpApsG2IlOqSKQhKwUZaUiD9UbqOaIgZjSb+Q/pX4c+0EPeY0xoSBUEJk8gQF/X+JYTBEVATPOQCwxxgDSHXSf9mym3E0QdGCVVxNx+/c3xIL21JwQRPWSGSXKtguwDsqaKbCC/sOnZUk92yxV7Rr2FTG1TLVvVALFRkjf6/yfdUBJW9JA8CC7k1FPYxchT8/OEuewhObcwxAGSRXWXbCHWrK+byQOC6JIUjdpHBEHiRs8Rmu23K0g5hgSQApM97yHtCUBsPMrxsOQmurWkej0NwfJL5+YY1nYj0ZD3bpT0eiLSkPO4H6pJIukbVSTvIRVHqyd0X20R0WGw7CFTHoYQ6sWNLQeIVH+MVVNn5SPPKnBQEmRcvnDuuaeVlPVR1d7NDrEh5nef9/ClgPzZ3vnzpg2Ecdi6wRKoAZWqsltQzxW2oRhUYUxjERYWBsupOnRj9+TOSB1AiC0M/RBZWKMs3fIJsjRblS/QrVK+QH/vHVenLR4q1CpCPFLIq5wS7rl770/uCHEzkYYQoVNPEmnIDd2bUhF7DMR2JvK9BqjHjuvS/KhMIl0YlKSIwUYQ2IhYlDRVOWtB5Gkcly0vIZEeG5ZgCGyINDCSNqmlMTrONx7TzYzBjktPsOcgkpNriBDJyj9m3HSmKaiVNa5DhGZ/bKpqOnVFWYpwWsoQlyFSdxG374l8plmSztiP74scm0CKlEjEUiIcIoaoLg32chzPvLgNkUnMZqWaEmGPcMECyJaxWZr6wzRdlUpHjIUhXUU0JcmTQRtHBewXtA6J2CSCZVU3aPaW12edUyVSKvQpS617Ir1zPCH1mBJ5SiKuCWqPYhNoRiZSpfmoQLFFdazFsZN4NjymLovJ2kzQqhGrO1FYX618IcL8DT3E89CfKZEvbBuaq0QoqYQIMtsjkWMSkWOkxhFXM5F3ZZonLaQbl7PDUYNEWMGkTUprjE+c8nojUqBZ6wVC+sG4EfLMCfgwTThj7mw463Hm9vvs49lH9faNAWd8rkRSlkYLQoq420U0EvEgMsC8LVKrLdatorv5XaENEbv+u0iVUpmyPxMZMdYWqTWdnmPXiCE2aNgWXnIy67JGaZx2Wv7QF2ejtsf+5OKyCRaBYILKj04kldG30eKeSJ8RQp3odO1BtfZYYyTSliK2GOwWrcZI5Y7sEcxwRauzERkoEdoT4fLE0LyicUTQOsIaEFmvp9NpYrNOYTU2PNwTMsDPzj7WZVvjI2Xyaxdf7y4XJxua4DpQoPKqwE95ijHS64VShLdGJjIRz7JmzEjxztjFp7XP2MaPDCXSFgsiJYSVicQQqTJDDPZqokTKNGeNE0vrF1BxEBkGWsf08FfuqPuvnN2JWi5UW0cLwXWTCCpBoESUxrwX8IBuS2moBJzzufhfA3KIcNN8+YkOcOmFBc+fD8pigpAiFpZN6gs9xqMh53tx19049TwLIroHqYaVKBG0yBDFLU3Tuoo5R3vLsCkItja2ShSVKpd3Xy9a4AK2+oY4jnlId7++b5rjPudhOAXn+KDWMnHyBRMpUpVLz0+RNvWFforHQsPGqQfmDVoQ2wXPw92eXh+t0jRJSn5TwCRBXevPW37kzG+Wi0nAl5Mrgag5KWQit4EkCkZBn8ChDTKr+YXud5E4qDZjY8IZhkIkNM3CyMRjzHny+PUzOq87hwizzLev3+IcT4q8sDIR7BrfFEFB7xTBK4Gup2kvKNjePC4ZuoDX/Y3Icnl7e3sV+EEr8G8VaOurTOTkZLm8uZnPoyjK1OHe0ls3JIKhD/RWGDkbhMjMjgGJzMz4FDRMAyJvJc9IpG+a78FrErGevxxIkQMHDhw4cOBhwP1ovY58rj0M+CQLfqNS0fLKQG/tCNYtbScmPHu+3DIV5NNbVrIgTyQry+g5zrDrut2h4+xmUln2ckVUmQryiQJ8twq2iOSW8bUTyih01nwnkUqwUlFemQry06oCVLBNJLfMd4YqHDr+TiJgwmWUV6aC/LQiRJAjklsWOV0Vdp1oVxFkjojyylSQn1YEBXkiuWVrx1Wh6/wVWyuLzKEot0wF/1Sk8x9F9ju19mew78/0u0cL4g5blNbD2qLsz6bxwIEDewrT9gKm6dpeoGu6vgd9wnT9B3pJtaz6GhaSAAAAAElFTkSuQmCC", + "image": "/api/images/system/maps_v2.test.png", "description": "Displays the trip of the entity on the OpenStreetMap or other map providers. Allows to scroll and animate the movement of the entity. Highly customizable via custom markers, marker tooltips, and widget actions.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/update_boolean_timeseries.json b/application/src/main/data/json/system/widget_types/update_boolean_timeseries.json index 7054be76be..d443a7679d 100644 --- a/application/src/main/data/json/system/widget_types/update_boolean_timeseries.json +++ b/application/src/main/data/json/system/widget_types/update_boolean_timeseries.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_boolean_timeseries", "name": "Update boolean timeseries", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAIQSURBVHja7d3PSxRhHMfx+VcWgmg3ltKD7BJshyBIQusQ3vIYCILCRMyhH6xShlGWMGq1p1gIibxFULRR1F4ixcNqdNhmUXFipWnTYvfZ/TrjJqFQ13ge3p/L8MztBQ/P8/0eZr6WNHyvrHk8vy5WoxIo0TwqqDQsPxADEviWp0yAKM8qixEpAwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC5H9DSiP2noyUNIXsc9j2qKYQ2/732lzI7LyukN4jUV7uLrtndIWcuP4lzKYBELf9rD66/bzZhqw9vFcM37ReTzz5pR3kc8fAWPriDmT58NDl5F0R51j2zOm6PpB+13VfyNNbIm8O/Iwg430iz87Lu/iaNDKz+kB6Hcd5HH60PDedjfkR5FXi2oeWyI3j+Xy+56puW2vh6KXcnTZEFq90pQripAbC5HSDDDoin9qQjxVRkwk1dUrLU2v4bLAxGFuNIEPnanK/s7WSeNDcct7rBvFOxg7djBUjSLX/YDJdEHmbiccv1PQrUb7++T/B9/Xfd8sPikbK+L81VqP7HEu0ukCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAADEUYsyAYDNGNn/zrboZQ7SVZcZYcyXbTFGWg8aBYQQAAAAASUVORK5CYII=", + "image": "/api/images/system/input_widgets.update_boolean_timeseries.png", "description": "Simple form to input new boolean value for pre-defined timeseries key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Timeseries key type and boolean value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_device_attribute.json b/application/src/main/data/json/system/widget_types/update_device_attribute.json index 0a4608ef54..84eb1be320 100644 --- a/application/src/main/data/json/system/widget_types/update_device_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_device_attribute.json @@ -2,7 +2,7 @@ "fqn": "control_widgets.update_attributes", "name": "Update device attribute", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/control_widgets.update_attributes.png", "description": "Allows to send shared attribute update when user press the button.", "descriptor": { "type": "rpc", diff --git a/application/src/main/data/json/system/widget_types/update_double_timeseries.json b/application/src/main/data/json/system/widget_types/update_double_timeseries.json index 38b5a8e501..3cfde06d01 100644 --- a/application/src/main/data/json/system/widget_types/update_double_timeseries.json +++ b/application/src/main/data/json/system/widget_types/update_double_timeseries.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_double_timeseries", "name": "Update double timeseries", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANMSURBVHja7d3fS5NRGAfw/SsrhSCKKIugburCi6KCLrropi4izME0c1kLUxquHybmKNPAi4qMJkm9hOkswhVkpaLMfhmlbjHYu+3Vaf7a3r3fLjad5nZh6NiZ3+diO+fAe/HhOc85Z+/Fjg4R2T0ieLjlMHQRT0iF4KGGPBGdHEIWREjWudVsgKhu3QiyIkYIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQghZS8jbbwDQOT9slJc/5HGJAOmoAaAUjKWERCO9z7RI5kPGC8cBxy3A5/wUBoyy1qNirg+I9jtlAPBcvGkt7xWgRmyvgKpu9JR3NF4HjHLk9DSCBmi2eqnsFwCEK8vGRSj2j9fgM85h0Ito4VgC0m/R4GwEgHZ72xMRIOHiwIv7wJ/HN6oKfAmIdL62tsoCAMps1CvE8vuwvWIIaHgehTEGmULQgPYGv9+vCLWP/Cg1a4ClG18LvDDKKPmJPgNGzwXgdQkF0S5JAPrPXqgzDcAo402R2WYAukorzUMi7uzR6YWqmY0BJzQeUQghhBBC1h9kZllDDIj2cumBaKZaijWk6hmRIFqLybl0RDJJi75EgWitJse/Y20mKf4hDkRrWe4AJJOUPB8ZC0mWj1hOUjgyDjJ9zw1Ae5rcsUKIbK9rmVzovatv+hJvfh5ec4hirfidYl6teGp1bd1/Km9XfDhasOnksZxGAIGmA/rWtU/J2NXL7tT5WEmxz+0sUqHsNsR69lwXcDc3AC13b0U6IFCsZanzsZLld1D/AYApP/5wDYBBfTfwPupPCwSKNbnj/zbE44WLOvYcLwCkCYLpVTyiODb2zDe/P7qypQnphKzioXF0myUxMw9t3+MUFBLcd2LxP1qo1bnDQkKmjhydWjqw4YGIkMiJ/MT5ufggAL9eEhCilWzudLlcLgWvbYBDfyfoPpOnCAiZ1MeiGeYdKtCcp9cfHhB11YoXeewFo2+Cv9kJIYQQQghZf5DbaQ1mhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEkMyFZc0FwdlzZPC7rwtlxibaqy45rzVX8BUWnY6Q1/jMIAAAAAElFTkSuQmCC", + "image": "/api/images/system/input_widgets.update_double_timeseries.png", "description": "Simple form to input new double value for pre-defined timeseries key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Timeseries key type and double value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_integer_timeseries.json b/application/src/main/data/json/system/widget_types/update_integer_timeseries.json index 52039b96e9..17497e5fff 100644 --- a/application/src/main/data/json/system/widget_types/update_integer_timeseries.json +++ b/application/src/main/data/json/system/widget_types/update_integer_timeseries.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_integer_timeseries", "name": "Update integer timeseries", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANBSURBVHja7d3dS1NhHAfw/Sum1IUQBZYJIdSF4VVQIOSNXZiJg5nmWi18CXG9WJgSqd1IBUWu10PY1EBcIFYqyoTCLOZWA8/0uGmbbjs73y7mS+Z2YdjYs76/i3Oe88C5+PB73jhwnkeHiOxyCh4uOQxdxO1XIXiofndEJ/uRBuGXdS41HSCqS+dEWoSTEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYSQfwl59xkA+teqDfLWl9wOESC9twAo5QsJIdHI6EstkvoQX4UP6LsNzNo/hgGDrI2oCI0B0XG7DADuSzcttaMC9JG2t0DTMEZqezuvAwY5UhbEvB5a213J9A0Awg0mnwid/cM1zBpCmPQgWrGwARlv1GDvBABbd88TESDhc3Ov7wM/H99oKp/dgEgXWlqaGgFAWYl6hBh+H9rqp4COV1EYYpAA5vWwdXi9XkWoeeRLjVkDGofxqdwDg4zqrxjTY+b8HDwOoSDaZQnAeNXFVuMEDDIGKs1temCwpsE8JeLMHg2u95qVGHBR4xKFEEIIIeT/gyxvKYgB0d5sXhAtN0uxgtS8LBJEsxrtm2sko/TbTRSI9tzY92ddj1FavYgD0axbHYBklOLnI2Uh8fIRy0kCR8pBgvdcALRn8R3bhMjdrdYlAFh62mpd/Uk81J8ciGKp/56gXW27aQ3uPVqac9AJTOUePpOfMw1gom5/VpJSsnC1zpU4H9vp7KEDlSqUQ3qg6GQI4cKzwIvMU6eTBYFiMSXOx3aG38mM9wCMBUDDAIAr+YDzB9qTBoFiie/4uwmxuGJ1+CgqAYBkQhDcwSVKX+YIANi6SvKmkw7ZwUXjzL5GAEDlsT2l8wJD5o+UrO1o4S0sFhcSOH4isP7wYFdAVEikpEABgGBWF4D27KigEK06u9/hcDgUlOUNLQ7lmkRtWksZsXiEhaqsjN3mgMij1lqEPcJsY8OPD4QQQgghhOws5E5SgxkhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCElNSNocEJweRzb7ZF04PQ7RVnXpcay5il+KVmW7YpZ2rQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_integer_timeseries.png", "description": "Simple form to input new integer value for pre-defined timeseries key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Timeseries key type and integer value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_json_attribute.json b/application/src/main/data/json/system/widget_types/update_json_attribute.json index 3ca5f234ee..c8d5b63b58 100644 --- a/application/src/main/data/json/system/widget_types/update_json_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_json_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_json_attribute", "name": "Update JSON attribute", "deprecated": true, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_json_attribute.png", "description": "Simple form to input new JSON value for pre-defined attribute/timeseries key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. JSON value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_location_timeseries.json b/application/src/main/data/json/system/widget_types/update_location_timeseries.json index f8902c3f55..e68773af53 100644 --- a/application/src/main/data/json/system/widget_types/update_location_timeseries.json +++ b/application/src/main/data/json/system/widget_types/update_location_timeseries.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_location_timeseries", "name": "Update location timeseries", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_location_timeseries.png", "description": "Simple form to input new location for pre-defined timeseries keys.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_multiple_attributes.json b/application/src/main/data/json/system/widget_types/update_multiple_attributes.json index 69a44074f0..0700d76738 100644 --- a/application/src/main/data/json/system/widget_types/update_multiple_attributes.json +++ b/application/src/main/data/json/system/widget_types/update_multiple_attributes.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_multiple_attributes", "name": "Update Multiple Attributes", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_multiple_attributes.png", "description": "Allows to create an input form and set multiple values of the entity. Each input value may be stored as an attribute or time series data.\nEach input field is highly customizable via input types, value conversion functions, etc.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_boolean_attribute.json b/application/src/main/data/json/system/widget_types/update_server_boolean_attribute.json index cf5d300751..52e5719679 100644 --- a/application/src/main/data/json/system/widget_types/update_server_boolean_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_boolean_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_boolean_attribute", "name": "Update server boolean attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAIQSURBVHja7d3PSxRhHMfx+VcWgmg3ltKD7BJshyBIQusQ3vIYCILCRMyhH6xShlGWMGq1p1gIibxFULRR1F4ixcNqdNhmUXFipWnTYvfZ/TrjJqFQ13ge3p/L8MztBQ/P8/0eZr6WNHyvrHk8vy5WoxIo0TwqqDQsPxADEviWp0yAKM8qixEpAwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC5H9DSiP2noyUNIXsc9j2qKYQ2/732lzI7LyukN4jUV7uLrtndIWcuP4lzKYBELf9rD66/bzZhqw9vFcM37ReTzz5pR3kc8fAWPriDmT58NDl5F0R51j2zOm6PpB+13VfyNNbIm8O/Iwg430iz87Lu/iaNDKz+kB6Hcd5HH60PDedjfkR5FXi2oeWyI3j+Xy+56puW2vh6KXcnTZEFq90pQripAbC5HSDDDoin9qQjxVRkwk1dUrLU2v4bLAxGFuNIEPnanK/s7WSeNDcct7rBvFOxg7djBUjSLX/YDJdEHmbiccv1PQrUb7++T/B9/Xfd8sPikbK+L81VqP7HEu0ukCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAADEUYsyAYDNGNn/zrboZQ7SVZcZYcyXbTFGWg8aBYQQAAAAASUVORK5CYII=", + "image": "/api/images/system/input_widgets.update_server_boolean_attribute.png", "description": "Simple form to input new boolean value for pre-defined server-side attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and boolean value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_date_attribute.json b/application/src/main/data/json/system/widget_types/update_server_date_attribute.json index 3a1cdabc86..a0f6fb7593 100644 --- a/application/src/main/data/json/system/widget_types/update_server_date_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_date_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_date_attribute", "name": "Update server date attribute", "deprecated": true, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_server_date_attribute.png", "description": "Simple form to input new date value for pre-defined server-side attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and date value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_double_attribute.json b/application/src/main/data/json/system/widget_types/update_server_double_attribute.json index ddfe7b36d1..9cc66539d5 100644 --- a/application/src/main/data/json/system/widget_types/update_server_double_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_double_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_double_attribute", "name": "Update server double attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANMSURBVHja7d3fS5NRGAfw/SsrhSCKKIugburCi6KCLrropi4izME0c1kLUxquHybmKNPAi4qMJkm9hOkswhVkpaLMfhmlbjHYu+3Vaf7a3r3fLjad5nZh6NiZ3+diO+fAe/HhOc85Z+/Fjg4R2T0ieLjlMHQRT0iF4KGGPBGdHEIWREjWudVsgKhu3QiyIkYIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQghZS8jbbwDQOT9slJc/5HGJAOmoAaAUjKWERCO9z7RI5kPGC8cBxy3A5/wUBoyy1qNirg+I9jtlAPBcvGkt7xWgRmyvgKpu9JR3NF4HjHLk9DSCBmi2eqnsFwCEK8vGRSj2j9fgM85h0Ito4VgC0m/R4GwEgHZ72xMRIOHiwIv7wJ/HN6oKfAmIdL62tsoCAMps1CvE8vuwvWIIaHgehTEGmULQgPYGv9+vCLWP/Cg1a4ClG18LvDDKKPmJPgNGzwXgdQkF0S5JAPrPXqgzDcAo402R2WYAukorzUMi7uzR6YWqmY0BJzQeUQghhBBC1h9kZllDDIj2cumBaKZaijWk6hmRIFqLybl0RDJJi75EgWitJse/Y20mKf4hDkRrWe4AJJOUPB8ZC0mWj1hOUjgyDjJ9zw1Ae5rcsUKIbK9rmVzovatv+hJvfh5ec4hirfidYl6teGp1bd1/Km9XfDhasOnksZxGAIGmA/rWtU/J2NXL7tT5WEmxz+0sUqHsNsR69lwXcDc3AC13b0U6IFCsZanzsZLld1D/AYApP/5wDYBBfTfwPupPCwSKNbnj/zbE44WLOvYcLwCkCYLpVTyiODb2zDe/P7qypQnphKzioXF0myUxMw9t3+MUFBLcd2LxP1qo1bnDQkKmjhydWjqw4YGIkMiJ/MT5ufggAL9eEhCilWzudLlcLgWvbYBDfyfoPpOnCAiZ1MeiGeYdKtCcp9cfHhB11YoXeewFo2+Cv9kJIYQQQghZf5DbaQ1mhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEkMyFZc0FwdlzZPC7rwtlxibaqy45rzVX8BUWnY6Q1/jMIAAAAAElFTkSuQmCC", + "image": "/api/images/system/input_widgets.update_server_double_attribute.png", "description": "Simple form to input new double value for pre-defined server-side attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and double value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_image_attribute.json b/application/src/main/data/json/system/widget_types/update_server_image_attribute.json index 79af76660c..616a838527 100644 --- a/application/src/main/data/json/system/widget_types/update_server_image_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_image_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_image_attribute", "name": "Update server image attribute", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_server_image_attribute.png", "description": "Simple form to input new image for pre-defined server-side attribute key.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_integer_attribute.json b/application/src/main/data/json/system/widget_types/update_server_integer_attribute.json index ea4fecdb42..c8a09b18ff 100644 --- a/application/src/main/data/json/system/widget_types/update_server_integer_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_integer_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_integer_attribute", "name": "Update server integer attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANBSURBVHja7d3dS1NhHAfw/Sum1IUQBZYJIdSF4VVQIOSNXZiJg5nmWi18CXG9WJgSqd1IBUWu10PY1EBcIFYqyoTCLOZWA8/0uGmbbjs73y7mS+Z2YdjYs76/i3Oe88C5+PB73jhwnkeHiOxyCh4uOQxdxO1XIXiofndEJ/uRBuGXdS41HSCqS+dEWoSTEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYSQfwl59xkA+teqDfLWl9wOESC9twAo5QsJIdHI6EstkvoQX4UP6LsNzNo/hgGDrI2oCI0B0XG7DADuSzcttaMC9JG2t0DTMEZqezuvAwY5UhbEvB5a213J9A0Awg0mnwid/cM1zBpCmPQgWrGwARlv1GDvBABbd88TESDhc3Ov7wM/H99oKp/dgEgXWlqaGgFAWYl6hBh+H9rqp4COV1EYYpAA5vWwdXi9XkWoeeRLjVkDGofxqdwDg4zqrxjTY+b8HDwOoSDaZQnAeNXFVuMEDDIGKs1temCwpsE8JeLMHg2u95qVGHBR4xKFEEIIIeT/gyxvKYgB0d5sXhAtN0uxgtS8LBJEsxrtm2sko/TbTRSI9tzY92ddj1FavYgD0axbHYBklOLnI2Uh8fIRy0kCR8pBgvdcALRn8R3bhMjdrdYlAFh62mpd/Uk81J8ciGKp/56gXW27aQ3uPVqac9AJTOUePpOfMw1gom5/VpJSsnC1zpU4H9vp7KEDlSqUQ3qg6GQI4cKzwIvMU6eTBYFiMSXOx3aG38mM9wCMBUDDAIAr+YDzB9qTBoFiie/4uwmxuGJ1+CgqAYBkQhDcwSVKX+YIANi6SvKmkw7ZwUXjzL5GAEDlsT2l8wJD5o+UrO1o4S0sFhcSOH4isP7wYFdAVEikpEABgGBWF4D27KigEK06u9/hcDgUlOUNLQ7lmkRtWksZsXiEhaqsjN3mgMij1lqEPcJsY8OPD4QQQgghhOws5E5SgxkhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCElNSNocEJweRzb7ZF04PQ7RVnXpcay5il+KVmW7YpZ2rQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_server_integer_attribute.png", "description": "Simple form to input new integer value for pre-defined server attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and integer value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_location_attribute.json b/application/src/main/data/json/system/widget_types/update_server_location_attribute.json index 0cd032f8c1..adccdfd8e8 100644 --- a/application/src/main/data/json/system/widget_types/update_server_location_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_location_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_location_attribute", "name": "Update server location attribute", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_server_location_attribute.png", "description": "Simple form to input new location for pre-defined server attribute key.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_server_string_attribute.json b/application/src/main/data/json/system/widget_types/update_server_string_attribute.json index 193300cb06..2ab5618a13 100644 --- a/application/src/main/data/json/system/widget_types/update_server_string_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_server_string_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_server_string_attribute", "name": "Update server string attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAOkSURBVHja7d3bSxRRHAfw/VdG6yklCbPsRk+GhVLYDSXMohC1tczVUkxFXDULzW4a+SA9VIZRm5haIJqBmMqW2cUoddUVR1sved2dnV/nuJaX3X0Q1pjZvj/YM4fDmYfP/uZcdvbhaMgmmnpVHibRShpb/4REKg9pot+mESfIC2JC1Jgkb4BIJk0veUX0AgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAsp6QN194+epPs1Z0vqm/Uw2QuuussMSOuYXYbe3PZJvyIeNx40T1xUTDTe+sHCK3STTfwQDGpgVU/+Vr+ox2FYyRktdEuS3UllFXVsAhtrMz9DOe5JI7htQfvIM1K3VcDYO9NZ+GtfP00Uz2uLEliDFHpqYy3qG2suaxGiDW86PVFURTD6/mxg4vQQwpRUW5ObyDZc5uVsX0+6A2s5uo9LmdtA7INIfUlo6MjFhUtY58S06TiXJa6HOsmc9aSd+pI576Lo6SuVNVEDndwErjhUs3dO85pCExrSSeqDE5K61bjSu7febvqJlzACdlbFEAAQQQQP4/yKxTRR0Q+eXKDdFsocFRMRTOqgkiP9E1rWwx6AzLLmqByE919avbajihxqVDsRCWj3rnVpYM1/lQLMRVPhw5ceNQHGTmnok7qlw7PAuJOrWOEIs+c8DNc+XxR2tdITSWd8XkPh8eHezrC2E5SXWfjzVNvxUdRn0Bf29V3sZvq2GVD82FuUYy5ukbFiBdN7MbeU+pOvvuV96xoyrT4kGJa8eaF8Sg/cHaEN9WIr/ixe9/8+7QxD0bsgITDgqPWMu2refChXIi28mApIiNzOYX7B826MEB76EtStC+SbLuSFkOiZZoaos/ewcUdYh9AodJ1gX8ovubekhO2Ms6hk8pcdMYlM+KmBPLIUWscoy1UF7Q4hjpEpopTMsq9cKYo6NCIacjV0MiY1hRELgImRQqKUBYiC5VQ4aEatqZ2MljWvGQYP6C9LAz5CirvBA+UUyYndXmSPGQ2GDjwG0fZ4hQPPh21xH2l5BP+oCoD7UrHtITIvgej3CGnIkWhAN9fELfLggh7YrNyLIQp92sWUOOq31QxG92QAABBBBAvBNy658GMgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAokyI1xwQ7B1HNo+LGqt3HKItabzjWHOJfgM5tA7UOw6xeQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_server_string_attribute.png", "description": "Simple form to input new string value for pre-defined server-side attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and string value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_boolean_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_boolean_attribute.json index 765c6381f2..b18f7ddb41 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_boolean_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_boolean_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_boolean_attribute", "name": "Update shared boolean attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAIQSURBVHja7d3PSxRhHMfx+VcWgmg3ltKD7BJshyBIQusQ3vIYCILCRMyhH6xShlGWMGq1p1gIibxFULRR1F4ixcNqdNhmUXFipWnTYvfZ/TrjJqFQ13ge3p/L8MztBQ/P8/0eZr6WNHyvrHk8vy5WoxIo0TwqqDQsPxADEviWp0yAKM8qixEpAwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC5H9DSiP2noyUNIXsc9j2qKYQ2/732lzI7LyukN4jUV7uLrtndIWcuP4lzKYBELf9rD66/bzZhqw9vFcM37ReTzz5pR3kc8fAWPriDmT58NDl5F0R51j2zOm6PpB+13VfyNNbIm8O/Iwg430iz87Lu/iaNDKz+kB6Hcd5HH60PDedjfkR5FXi2oeWyI3j+Xy+56puW2vh6KXcnTZEFq90pQripAbC5HSDDDoin9qQjxVRkwk1dUrLU2v4bLAxGFuNIEPnanK/s7WSeNDcct7rBvFOxg7djBUjSLX/YDJdEHmbiccv1PQrUb7++T/B9/Xfd8sPikbK+L81VqP7HEu0ukCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAADEUYsyAYDNGNn/zrboZQ7SVZcZYcyXbTFGWg8aBYQQAAAAASUVORK5CYII=", + "image": "/api/images/system/input_widgets.update_shared_boolean_attribute.png", "description": "Simple form to input new boolean value for pre-defined shared attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and boolean value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_date_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_date_attribute.json index 2225111ff7..5d88274f4f 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_date_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_date_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_date_attribute", "name": "Update shared date attribute", "deprecated": true, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_shared_date_attribute.png", "description": "Simple form to input new date for pre-defined shared attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and date value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_double_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_double_attribute.json index 29c96f71b4..4ee520a429 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_double_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_double_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_double_attribute", "name": "Update shared double attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANMSURBVHja7d3fS5NRGAfw/SsrhSCKKIugburCi6KCLrropi4izME0c1kLUxquHybmKNPAi4qMJkm9hOkswhVkpaLMfhmlbjHYu+3Vaf7a3r3fLjad5nZh6NiZ3+diO+fAe/HhOc85Z+/Fjg4R2T0ieLjlMHQRT0iF4KGGPBGdHEIWREjWudVsgKhu3QiyIkYIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQghZS8jbbwDQOT9slJc/5HGJAOmoAaAUjKWERCO9z7RI5kPGC8cBxy3A5/wUBoyy1qNirg+I9jtlAPBcvGkt7xWgRmyvgKpu9JR3NF4HjHLk9DSCBmi2eqnsFwCEK8vGRSj2j9fgM85h0Ito4VgC0m/R4GwEgHZ72xMRIOHiwIv7wJ/HN6oKfAmIdL62tsoCAMps1CvE8vuwvWIIaHgehTEGmULQgPYGv9+vCLWP/Cg1a4ClG18LvDDKKPmJPgNGzwXgdQkF0S5JAPrPXqgzDcAo402R2WYAukorzUMi7uzR6YWqmY0BJzQeUQghhBBC1h9kZllDDIj2cumBaKZaijWk6hmRIFqLybl0RDJJi75EgWitJse/Y20mKf4hDkRrWe4AJJOUPB8ZC0mWj1hOUjgyDjJ9zw1Ae5rcsUKIbK9rmVzovatv+hJvfh5ec4hirfidYl6teGp1bd1/Km9XfDhasOnksZxGAIGmA/rWtU/J2NXL7tT5WEmxz+0sUqHsNsR69lwXcDc3AC13b0U6IFCsZanzsZLld1D/AYApP/5wDYBBfTfwPupPCwSKNbnj/zbE44WLOvYcLwCkCYLpVTyiODb2zDe/P7qypQnphKzioXF0myUxMw9t3+MUFBLcd2LxP1qo1bnDQkKmjhydWjqw4YGIkMiJ/MT5ufggAL9eEhCilWzudLlcLgWvbYBDfyfoPpOnCAiZ1MeiGeYdKtCcp9cfHhB11YoXeewFo2+Cv9kJIYQQQghZf5DbaQ1mhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEkMyFZc0FwdlzZPC7rwtlxibaqy45rzVX8BUWnY6Q1/jMIAAAAAElFTkSuQmCC", + "image": "/api/images/system/input_widgets.update_shared_double_attribute.png", "description": "Simple form to input new double value for pre-defined shared attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and double value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_image_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_image_attribute.json index 895ef845c9..3b207a35a8 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_image_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_image_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_image_attribute", "name": "Update shared image attribute", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_shared_image_attribute.png", "description": "Simple form to input new image for pre-defined shared attribute key.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_integer_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_integer_attribute.json index c4dd5b2dba..6d6182e81d 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_integer_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_integer_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_integer_attribute", "name": "Update shared integer attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAANBSURBVHja7d3dS1NhHAfw/Sum1IUQBZYJIdSF4VVQIOSNXZiJg5nmWi18CXG9WJgSqd1IBUWu10PY1EBcIFYqyoTCLOZWA8/0uGmbbjs73y7mS+Z2YdjYs76/i3Oe88C5+PB73jhwnkeHiOxyCh4uOQxdxO1XIXiofndEJ/uRBuGXdS41HSCqS+dEWoSTEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYSQfwl59xkA+teqDfLWl9wOESC9twAo5QsJIdHI6EstkvoQX4UP6LsNzNo/hgGDrI2oCI0B0XG7DADuSzcttaMC9JG2t0DTMEZqezuvAwY5UhbEvB5a213J9A0Awg0mnwid/cM1zBpCmPQgWrGwARlv1GDvBABbd88TESDhc3Ov7wM/H99oKp/dgEgXWlqaGgFAWYl6hBh+H9rqp4COV1EYYpAA5vWwdXi9XkWoeeRLjVkDGofxqdwDg4zqrxjTY+b8HDwOoSDaZQnAeNXFVuMEDDIGKs1temCwpsE8JeLMHg2u95qVGHBR4xKFEEIIIeT/gyxvKYgB0d5sXhAtN0uxgtS8LBJEsxrtm2sko/TbTRSI9tzY92ddj1FavYgD0axbHYBklOLnI2Uh8fIRy0kCR8pBgvdcALRn8R3bhMjdrdYlAFh62mpd/Uk81J8ciGKp/56gXW27aQ3uPVqac9AJTOUePpOfMw1gom5/VpJSsnC1zpU4H9vp7KEDlSqUQ3qg6GQI4cKzwIvMU6eTBYFiMSXOx3aG38mM9wCMBUDDAIAr+YDzB9qTBoFiie/4uwmxuGJ1+CgqAYBkQhDcwSVKX+YIANi6SvKmkw7ZwUXjzL5GAEDlsT2l8wJD5o+UrO1o4S0sFhcSOH4isP7wYFdAVEikpEABgGBWF4D27KigEK06u9/hcDgUlOUNLQ7lmkRtWksZsXiEhaqsjN3mgMij1lqEPcJsY8OPD4QQQgghhOws5E5SgxkhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCElNSNocEJweRzb7ZF04PQ7RVnXpcay5il+KVmW7YpZ2rQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_shared_integer_attribute.png", "description": "Simple form to input new integer value for pre-defined shared attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and integer value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_location_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_location_attribute.json index 7df35d28a6..9fbef649e3 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_location_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_location_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_location_attribute", "name": "Update shared location attribute", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/input_widgets.update_shared_location_attribute.png", "description": "Simple form to input new location for pre-defined shared attribute key.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_shared_string_attribute.json b/application/src/main/data/json/system/widget_types/update_shared_string_attribute.json index 4c5333ec59..16aa5bd3b9 100644 --- a/application/src/main/data/json/system/widget_types/update_shared_string_attribute.json +++ b/application/src/main/data/json/system/widget_types/update_shared_string_attribute.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_shared_string_attribute", "name": "Update shared string attribute", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAOkSURBVHja7d3bSxRRHAfw/VdG6yklCbPsRk+GhVLYDSXMohC1tczVUkxFXDULzW4a+SA9VIZRm5haIJqBmMqW2cUoddUVR1sved2dnV/nuJaX3X0Q1pjZvj/YM4fDmYfP/uZcdvbhaMgmmnpVHibRShpb/4REKg9pot+mESfIC2JC1Jgkb4BIJk0veUX0AgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAsp6QN194+epPs1Z0vqm/Uw2QuuussMSOuYXYbe3PZJvyIeNx40T1xUTDTe+sHCK3STTfwQDGpgVU/+Vr+ox2FYyRktdEuS3UllFXVsAhtrMz9DOe5JI7htQfvIM1K3VcDYO9NZ+GtfP00Uz2uLEliDFHpqYy3qG2suaxGiDW86PVFURTD6/mxg4vQQwpRUW5ObyDZc5uVsX0+6A2s5uo9LmdtA7INIfUlo6MjFhUtY58S06TiXJa6HOsmc9aSd+pI576Lo6SuVNVEDndwErjhUs3dO85pCExrSSeqDE5K61bjSu7febvqJlzACdlbFEAAQQQQP4/yKxTRR0Q+eXKDdFsocFRMRTOqgkiP9E1rWwx6AzLLmqByE919avbajihxqVDsRCWj3rnVpYM1/lQLMRVPhw5ceNQHGTmnok7qlw7PAuJOrWOEIs+c8DNc+XxR2tdITSWd8XkPh8eHezrC2E5SXWfjzVNvxUdRn0Bf29V3sZvq2GVD82FuUYy5ukbFiBdN7MbeU+pOvvuV96xoyrT4kGJa8eaF8Sg/cHaEN9WIr/ixe9/8+7QxD0bsgITDgqPWMu2refChXIi28mApIiNzOYX7B826MEB76EtStC+SbLuSFkOiZZoaos/ewcUdYh9AodJ1gX8ovubekhO2Ms6hk8pcdMYlM+KmBPLIUWscoy1UF7Q4hjpEpopTMsq9cKYo6NCIacjV0MiY1hRELgImRQqKUBYiC5VQ4aEatqZ2MljWvGQYP6C9LAz5CirvBA+UUyYndXmSPGQ2GDjwG0fZ4hQPPh21xH2l5BP+oCoD7UrHtITIvgej3CGnIkWhAN9fELfLggh7YrNyLIQp92sWUOOq31QxG92QAABBBBAvBNy658GMgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAokyI1xwQ7B1HNo+LGqt3HKItabzjWHOJfgM5tA7UOw6xeQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_shared_string_attribute.png", "description": "Simple form to input new string value for pre-defined shared attribute key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Attribute type and string value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/update_string_timeseries.json b/application/src/main/data/json/system/widget_types/update_string_timeseries.json index 43a96d6f69..7e8ed5de9b 100644 --- a/application/src/main/data/json/system/widget_types/update_string_timeseries.json +++ b/application/src/main/data/json/system/widget_types/update_string_timeseries.json @@ -2,7 +2,7 @@ "fqn": "input_widgets.update_string_timeseries", "name": "Update string timeseries", "deprecated": true, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAAAAABslHx1AAAAAmJLR0QA/4ePzL8AAAOkSURBVHja7d3bSxRRHAfw/VdG6yklCbPsRk+GhVLYDSXMohC1tczVUkxFXDULzW4a+SA9VIZRm5haIJqBmMqW2cUoddUVR1sved2dnV/nuJaX3X0Q1pjZvj/YM4fDmYfP/uZcdvbhaMgmmnpVHibRShpb/4REKg9pot+mESfIC2JC1Jgkb4BIJk0veUX0AgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAsp6QN194+epPs1Z0vqm/Uw2QuuussMSOuYXYbe3PZJvyIeNx40T1xUTDTe+sHCK3STTfwQDGpgVU/+Vr+ox2FYyRktdEuS3UllFXVsAhtrMz9DOe5JI7htQfvIM1K3VcDYO9NZ+GtfP00Uz2uLEliDFHpqYy3qG2suaxGiDW86PVFURTD6/mxg4vQQwpRUW5ObyDZc5uVsX0+6A2s5uo9LmdtA7INIfUlo6MjFhUtY58S06TiXJa6HOsmc9aSd+pI576Lo6SuVNVEDndwErjhUs3dO85pCExrSSeqDE5K61bjSu7febvqJlzACdlbFEAAQQQQP4/yKxTRR0Q+eXKDdFsocFRMRTOqgkiP9E1rWwx6AzLLmqByE919avbajihxqVDsRCWj3rnVpYM1/lQLMRVPhw5ceNQHGTmnok7qlw7PAuJOrWOEIs+c8DNc+XxR2tdITSWd8XkPh8eHezrC2E5SXWfjzVNvxUdRn0Bf29V3sZvq2GVD82FuUYy5ukbFiBdN7MbeU+pOvvuV96xoyrT4kGJa8eaF8Sg/cHaEN9WIr/ixe9/8+7QxD0bsgITDgqPWMu2refChXIi28mApIiNzOYX7B826MEB76EtStC+SbLuSFkOiZZoaos/ewcUdYh9AodJ1gX8ovubekhO2Ms6hk8pcdMYlM+KmBPLIUWscoy1UF7Q4hjpEpopTMsq9cKYo6NCIacjV0MiY1hRELgImRQqKUBYiC5VQ4aEatqZ2MljWvGQYP6C9LAz5CirvBA+UUyYndXmSPGQ2GDjwG0fZ4hQPPh21xH2l5BP+oCoD7UrHtITIvgej3CGnIkWhAN9fELfLggh7YrNyLIQp92sWUOOq31QxG92QAABBBBAvBNy658GMgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAokyI1xwQ7B1HNo+LGqt3HKItabzjWHOJfgM5tA7UOw6xeQAAAABJRU5ErkJggg==", + "image": "/api/images/system/input_widgets.update_string_timeseries.png", "description": "Simple form to input new string value for pre-defined timeseries key.\nThe widget is deprecated. Use \"Update Multiple Attributes\" widget. Timeseries key type and string value type can be selected in widgets data key configuration.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/usage_info.json b/application/src/main/data/json/system/widget_types/usage_info.json index 7dfe641aa9..fbb2a64f8f 100644 --- a/application/src/main/data/json/system/widget_types/usage_info.json +++ b/application/src/main/data/json/system/widget_types/usage_info.json @@ -2,7 +2,7 @@ "fqn": "home_page_widgets.usage_info", "name": "Usage info", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/home_page_widgets.usage_info.png", "description": "Display statistics about the number of entities and API usage.", "descriptor": { "type": "static", diff --git a/application/src/main/data/json/system/widget_types/uv_index_card.json b/application/src/main/data/json/system/widget_types/uv_index_card.json index 25b150d79e..e5eca2194d 100644 --- a/application/src/main/data/json/system/widget_types/uv_index_card.json +++ b/application/src/main/data/json/system/widget_types/uv_index_card.json @@ -2,7 +2,7 @@ "fqn": "uv_index_card", "name": "UV Index card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAnFBMVEXg4ODf39/g4ODg4OAAAAD////g4OCAwywhISGqqqr5+fm/4ZXj4+Oenp7P6a/Ozs62trbz8/PCwsJ0dHSkpKRYWFg9PT3n5+fv9+Xx8fH3+/LIyMisrKyQy0ag0mDu7u7f8Mra2trV1dWwsLCv2XsvLy+8vLyQkJCIxznn9NiYzlOCgoJKSkrH5aOrq6tmZmbX7L3H5aK43Yio1m6jslkrAAAABXRSTlPvIL+vAC9A4IoAAARXSURBVHja7M9JEQAwCAPAUA4PvPDvsjYCk3WwCHuo7dwChsn1GgbvPGAeKk/AlUgpQkYRNoqwUYSNImwUYaMIG0XYfGbraMVRGAyg8NUhPzTKQogYHaUUs9rqtLPM+7/bpo6zinVKb1ZyQDExNx8RyQuQvKsKou8FSKrUkej7z5C3Kz8UEUTLG5AZJz1wGu+YjGXW8qSdIIcDY0fV5dzLm3QLgvVALzpSyFGpZnoqvhyVUsUWJJEShoEJ4szvm23BtdYMAVLerHG0LZiEud0gRaXUgUUXpS5sQZy0YXD9hmjJkluwGd8asWFoksxSStmKZm43CHk1bUlRTJBLsQnBZiSiZ8jbeImBwd5nwlvHLfMti/aDkH8UcG46paomD8O0YBvyS/RgWUHG19Zi5Z7GiWfZLpC5d/VVdWadlgSQHpw3cl1DnCQj5DboELQ+TCzaF5Kq77qcdTY76X4U9N67NQQ76DKzXCWhTMJM23vH3K6QvFL/qlmnBxGfECrF8AA5ZeKthfa+KqhxvmduV0iqFh15yGmepd20yvHYLpDzZ13XZ/hcQv7Aex2K8wS5DWlUqIF6CTnARYVSYuyHHblUVXUOoPWOhPk6J8YC5IWfbyj2s/xzSNHNjoqou0Ne25I4v6hXIRwmRvdB3P1lzwxWG4ZhMHxShgzGkhGkNFATu5htp63v/3CTGxGWlhV6yJpDfoJi2X+IvhhD4jwCObZVcTg1jMvB0iflHPwptrH/ePu9TI2Dvf2eF+OJboru4U4h2lj65cvTLWlcH8Q4lpWfbvLe20O30OMC6xpCnMZGsi61CYaWGIgZrbnSF+Ln0WZkJjvegQTEAB1SZfFV8xj0YCkyAAtihKFgTqIpIfYAkwWCFFSQdiUBowo6DW4FEDifp7K/3t4N6PQN9yCcBOoA2fUIM4h3LKy9Q3QNE0ZqR0cziDKVBjImkJRr82AHFF6wi2IgsVYPiXCABUgrlUYIUQ10BQmCOIM4b2skY5Q+hnaxZ7W/DISVwkNOLGkGqdcZ8VyVKSaB/gqSSd3zjIjNCHbazKSe1hWH14AgosNSvMtYCJy0MjpfREFIk4QFo0MiUW9wFSXPIBlJxmmJSaeeorBYiNcE+Xi898stOG7BgUX2YB2zwVlqssTOiTM15+Z24xXkGbmCJe2/FXaQbWoH2Zp2kK1pB9madpAf9udYAAAAAGCQv/U0dpRBNyI3IjciNyI3IjciNyI3IjciNyK1d/c4CMNAEIWdH2cLS9TEElZKUkRCcP+7YTpSpptdvVdM/51grrbt+ZxLyL08rORz/iD1aGbmHrK1p5l7yP7+KQJAilkkSPtEgLSj5pt7yKvUvgEgPSBA/gICBAgQIECA9IAAAQIECBAgTgOiFhC1gKgFRC0gagFRC4haQNQCohYQtYCoBUQtIGoBUQuIWkDUAqIWELWAqAVELSBqAVFrSSmHaEljiMvmdUpDCiBZO2MepsV7aRzmL/oPrqtS4mUjAAAAAElFTkSuQmCC", + "image": "/api/images/system/uv_index_card.png", "description": "Displays the latest UV index telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/uv_index_card_with_background.json b/application/src/main/data/json/system/widget_types/uv_index_card_with_background.json index 3f9da213ec..242f202f1a 100644 --- a/application/src/main/data/json/system/widget_types/uv_index_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/uv_index_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "uv_index_card_with_background", "name": "UV Index card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEW6o3DUs2IAAADs0ZTfvGTnz5Pvz4/20o+4qHP/9+D/9d7/8tL/9Nr/9Nf/9NT/9eH/+OP/+ef/993/883/8sj/88v/9tr/88//8dD/+uv/8sP/9Nz/8cz//fj/9dHz6tT37NP///7/++7/+/F8wyL169T//PP//PX/88X+8dXv6djx6tb//vr/9tf27db/1n/99ePz7Nj879D57tb57tH91ITz6ND88NPu48v679P789zv59P+2n7k28j99d7/1YPz58z61If67c38xU3r4s/n2sP/6q//3ID36sv778Pw5c7/1Xbi2sv98tjs5NLw0pD/2X3j2MPr4Mv68Njt59b/x0v90XL/1Ybh2s3x6tj8783/3oXrwWD/yVT26tDe2Mz/7rzd1sj88Nf504r/02r+0Gj00o3/2IHx5cb/zF3n38357tPl3cz/5a//4Y7903//1HD+zmT/1nv80nvg2cj06Mbv4MP/5qP/5Zzb1s31yWn2x2Dt0ZL10orp38nm3Mj47MT/0WD+zVXa1cn/45Xs3sP+0G3/7LWno5n/34n/yE/p3MTu4sjp0JXm4NGynmDxw17/yET/6ajxxWbCqGL+3I/3xlusqaH304z80Xbe1cP5zW3lvV8hIB/twFr/0FngsUJcPwPs4Mb/3pj+xj36y2barkzitlH+zU35w0z61IzTqEbbqjn9+e+4tKratFbLnj3+xjP65La3oV/878jctmCtml7Rrli7pGHHqlnhvGjpwGa+pFzDv7TLrWDSpDTJo0xAPzz40oC923Tyw1Tqt0XmsTSemo7zznx0cmyPyj3wuzrBmUDNyLvVtWhYV1XirCj91orXoiLO4Yjv78dMOAyTXwLz7d/k496e0FLTu30pHwX59erJrWr9wyTMy8XDkyaHVwDf6a+2kEX/zD4+Lgau1mnQwpovLi2tgyrutSWEZCDP45iQj42JdkPy8e3F34q93HrVz76gj2KceC6hbAfo7LuCf3j/2XZqZVtvVyXa5qPZyJifg0jRlAKlAAAACXRSTlP7IAC1tSAgv7+sbVSmAAAhlklEQVR42qzUP0tbURzG8Yui5cbEaCNNjLZQBbsEbpdsl16yGDIZ6JDBJRCIkw24tIPZhODQxSl7NsfgG8k76nN+589z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", + "image": "/api/images/system/uv_index_card_with_background.png", "description": "Displays the latest UV index telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"light_mode\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"UV Index card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":null,\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"light_mode\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/uv_index_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"UV Index card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":null,\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/uv_index_chart_card.json b/application/src/main/data/json/system/widget_types/uv_index_chart_card.json index b9abca1467..0d7f56e119 100644 --- a/application/src/main/data/json/system/widget_types/uv_index_chart_card.json +++ b/application/src/main/data/json/system/widget_types/uv_index_chart_card.json @@ -2,7 +2,7 @@ "fqn": "uv_index_chart_card", "name": "UV Index chart card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAk1BMVEXg4ODg4ODf39/////g4ODr6+vCwsL6+vrj4+PIyMjz8/POzs6Awyw8PDzn5+d0dHSQkJAhISHx8fGsrKxYWFja2trV1dW8vLzu7u4uLi6enp7U1NS2traCgoLb29vh4eGv2Xu6urpmZmZKSkr3+fWwsLCIxznv9+Xi8s82NjbE45243YhwcHBhYWGg0mBRUVEZGRmTJ5KiAAAAA3RSTlPPvyA4toccAAAGm0lEQVR42u3diXLaMBSF4baHSrpSJXmVvGBcoPv+/k9X29CW1ixdQab+IQkxcWY+NJIIk0kePHq4uIMePHrwIMEdlDx8sMBdtJghgTVDQmuGhNYMCa0ZElr3DUkT/EQuqGebRyGZwJeqBmiqagMI7fp3+JomBNQYsqngIHSCocgCNqI4QdobRIwkSdwwHpr690i6awBjM4YkrsqsIxxCkKXYRDtIVG51habMShJ6q4nKZBvh5o0hSOM4zvA9JMqSWOwhG1QbEQuU1NjuJpqtxu37EeJ0FXUQLXR0CEnKKsMeYpFmTgOarM6yBi4OYECOjQh1EIt9VYZEp0Cm0wNIPz5JSVEGIZDZMsg5ItapjVyKXYktddODYnEI6WdKScmm1OtUo2lw88YQu8Y6SbIAHuS/so9MrqOQoHa6+bnWRPt/INzgpzOjAy1OdmWIUSuPcXREnGOJH/I43ZUhHjCcsChqJhlxpgrDqDapAWrGiGrUqgYpz9WSP1cewIKIL5iXQPu8WJDntS8w6tqQJboYcqOK/kNtvMnBhsOqkAqeM9SGYZFLhSWUBFRuOn9Bw4mmZf2p464NYRw5HyASDLUyxTeIlAqM0wAx3yCF8fwrhIq6P3XctSFySQqOLXcQvqTVAPHmCwROMfQQ7vkO4piXK/JygDi/bIOATKYZElozJLR+A1LgS5wPnwbRJYhSAFPoc9i1/AIyuQHA+AoBdBGyBLxC7QvkUFQDeE6EnBfGdBBOivGcK2pRk+K4WZchzuROcSMZGDx8D0FtmDR5l6kLzmR3wZJ7kMTNugwpPJNKspZhdwGWMO0XCEn0EIWlJKigIVI52WmU/wapvVwpGiCGqT0EbPU8ZAjvrxySS/DhAkjJgYIPQfLdYQlT+JDnyM+3Ui1+oXAhv9YMmSFTaYaE1gwJrRkSWjMktGZIaM2Q0JohoXUdyKu3L/Bj04O8evPiyZMn+LGJQZ69+dAp7gDSEe4G8uLthzuAvHj6Cnj6+xD+rAv7kgSAELeZI8AfQWTRhSFhSwKibA3Q+uoQ/CGkEF0cfQllhLV1CdCkIp0YxKzerVYcECSADhLpjU4QdZKJQUT9vq45kNr1AGkq2BQQUSqmBUmrj6nl6OshHQhbAqII0bQgePeprLGvcd3bttr93vt6YhA0Loh9ZAe5gw1xhsyQwyYAKXx+HxBu7gJSr3AfEOB+IIW5AeTZy5cvcaTJrVpHmiEzZCrNkNCaIaE1Q0JrhoTW/UJyUqhVi6k1gqzAhsvUGkEg3X1AuOegPcSzFjfN4WQtc+chS1LSKYWum4+LjeOtrSjB0czPr1o1bprVgiqbdZpNRRglp7L8dg4MubTJytKuJ7qPDI5vkS21pQlCescPrQfL34ckVYKfKY3SNTnxx46+dBN3lr8MiWJNuBhlZZbpspuxyR87+pI0i3Xj/iJExGkUW4GziSyOdgCh7U+M3b5N5zid6C3rvwaxFhBapzhdEsWZwD6hI5yvKrN9m5FjZPlrEIoFus4NSlRmhG+5Mr00xLd4Gq8bDInsxKDQaLSq0uF0iW7wryDF45NVr9W3m+/r0f3rrGwWPx60ujt0Kvv68a/1V3Z2cfhoC1tWP9xtY5tgXJbhVGkpbvETYqNxWKoPl5lkmByjzk54UVa4AUTENBqC6Ntjq+n0EnHiLm1xC4i12DUeFMrOPrZVKY6PcHILSBoLjEqauElEVkYJzrXZnviG/xaytvvSBN/S0YkZUO43wIur7Hjq/GMIRft0aR32VRonqgjHO78vbu0VX9ciG2/T8dJ7ucvTJNLiH0FkLdFX4DARaW0FYDX+LPv9zKbY4XeSlyGen3jxYb2Js+qPJ2ayteJb7ncniLkMYXvCUpnRvLTa4k8TOj4o+z2Gchch9/ECXR8VdwKRLcfUCvZVlBky9WZIaN0thBucrJY4rAWKcJbpHyGS9Ro5vHHGgf7KdweYhORY1MAgWiqo/obcfUl/xlW7DOFsxbBc+eK5AXIjlVk6D79KpVt5Tgxq1XOZkj2kJWYKcv0ZDNfsMgS58lAkwbCH5GCcwGRB3picpyyVAOO+h0jFclWAmRwkccUuQ6SC5y33O0hb7CAMXna+HsIgATC0g0eavDacFQqM40aNIZyUAmMKjhzcCuDMtcarFVqleEtU8A5Jq54IKA4UXg1/Uw9OOdyuHnIxk+N8hjrazfp5CDjO9/sr1rwhzpDQmyGhNUNCa4aE1gwJrRkSWosHD6f2H6uOljzo/h/44g56+OgzyILPyXEfCb4AAAAASUVORK5CYII=", + "image": "/api/images/system/uv_index_chart_card.png", "description": "Displays a UV index data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/uv_index_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/uv_index_chart_card_with_background.json index 30ede11c0c..ed4463be8f 100644 --- a/application/src/main/data/json/system/widget_types/uv_index_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/uv_index_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "uv_index_chart_card_with_background", "name": "UV Index chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/uv_index_chart_card_with_background.png", "description": "Displays a UV index data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = Math.ceil(prevValue + Math.random() * 2 - 1);\\nif (value < -2) {\\n\\tvalue = -2;\\n} else if (value > 2) {\\n\\tvalue = 2;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEX/2n7///7/1H//2Hz/3IH+1IP/14D/1nj/2nn/yAH/1Hv/3oX/4o//03b/5Jj/yDL/ywL/4Iv/45P/03H/02z/xj//x0P/xx3/0GP/5pz/8s7404r/yDb/6q7/xyT/6an704X/56H/02f/78L/8Mj/7Lj/x0f00oz/67P/xjn/1WL/xyz/1nT/2XT/6KT/89T/1EH/4Yf/ySj/9dr/7r3/333/0V3/3G//2HD/12f/22r/0jb/zV//yTv+xUn/9uD/yVP/1Uj/123/zkv/z1n/+ez/+Ob/3XT/z1D/yBb8xUr/4IL/yUr/z1X/zFf/ykD/0S//1Fj//fj/3nn/zyL/1l3/0Cn/2mX/0Gn+0G360nv/y0//1k7/11P/1YX/ykT/yBD/0zv7xU3/x0z/+/Luwl3OqU3/1FP/yQr/zUf/2V3/2WH/2FjBo1b/yy/Mq1f/zRHIplD0xV//007SrVP/0Uf71Ij70HK8o17/zhr8zWbovl7x0o9XPAK6oFfVrUvarkT/zTTBpl7/0DzWsVfGp1ft0ZHZsVHHql7/ySH/zDr+xDPds0zitEWynV3/zkLswmP/4otrVSujaAKXYAFzWSedZALisTzQr1331IaOYA/dtVjyw1fkt07otz/vv0rCoUzzxmX3xln4yWXXtF/2y23tv1bqtzXLggDluVfvvT7MrmHTqEPgumHgtlO2oWGJWAGAVAOrmF3puUeHXxXp0JXxvC+YZhD6yl5KNweQXAHqvFH0w1CJajhgQgP1w0TLpEdgTyq0m1T/yht0TwL/wyqqbgOEYiP2wjnkvmc+LwQxJgTZqzmhbxHSsme7mkuHZjBrSATAfAF/Yi1URCG1dgLuxWvauWp4VhfUozBwTxTmsR+BXBu/jyqtk1D+uwLCmT7frSyPZR/MnjjXoxzKmSb83I2yhiGseQzxvB2fj1jRjwHuznm9iQ7bmQK2kT3npAMZFQWrhjbErGllShf2sAD935n1zlb646rxzmLJlhb136H13JOZdC725Lqaf0R3Kl58AAB1O0lEQVR42qTdu25rVRDGcWODYxkOEpcGECLcBAUXRXAUoEGKBCnSQZciFc9ARU1PmQfhrXgIvpnZ4/8az14QxLdtHxASlx/fuuy1Tdj82fJ75rfMJ5l3Ipe//noZeYlsh+w9u7NsyIuZl5dcvWZ5xfO68qryluX9t973fGF5T3lXeW/J8hv+x96PvKW86tGf5RXLa56rly0vZjYlO7/06341Lz2c51ePWURcx6g255i6ktMuC5qZXwVqpF0TTmWA9F8OeAbmwvlaBM5X4VximKHZk6ZKiCoroFcV9PkmckhSZa8U0we/KqVpPjinLjwteAJKaKdrfjJoOua0namJp33swCz1vErP1IQzMU0Tzk+7qKeCWv5DQ3fxofdT+pmgFDRIq2d0k3YaJu2snH2wo4knoH2sZz2vruB0TTgZ6F8YZmjWnHAbqXuOoi8HKKSYFthS0Hg96J+xaEYSk4aGJ5x99oQzSRfNywnn0TF1jZ6Nk8H+8qScjPMoJ5gtIymi4ywaDaWic9DkJMEpUAJo6edvxRNMr+Z87jyVE8+X8GyjvYCej/UrBnvnZJyD+XFNM3VSQOkooiPpxLPOoQLdAkpFLYD2frIWhegnCZrltClYOecE0/rpDYVzUs+lnYtnW4lMsy5CTfNrTIuoQLtoegYog35zEt35YNfFojRku0VUnLpaQ/GknbWfcJZ6zjn3ba+Uf5N9o8Ra1DVpZ9f8uqSSUlFm0Q5KP3tDY0XSuzR0+5JeloeRtIri2Yf7+WLE3Jmr0YP9y1pfi46FMyg7Z3h2zqmmguaMtA55S5tEp6sSNQ1OstX10gIqUde8dNC6yMsTTTjZeLa1vY92NHOc9D08mnD2ld01X03Otgi1cn74IaAeQPuqhCdTaOdks4wopgHa5lBE8Rw1c/Iks9He27mDE9Dd+tL+Wud0zcpZMIXYct5RGqpQ0ObJFEoWzSa69cSiFKJUFE8N48188pxwCnTKuQUTT+q5WTS5LWqcjHUWdcdE8yOliYIaohPQJ63xztlBg1RJVL1Z5Ktn4cSzaZqncZ5I2z37URdZ3yr1dipMncycYzXRJNCaJqAh+oUCKJ4J2pb4vC/2S/vnorn3gsIpz0th4KnIk3ai2Tm5MdILzcp51NXq2TyZPNtaBCcTZ9d8O2K/5b+dqtlRb2it6GQKnS9IIbtgTvqpX0yzzqCbftO+Uk84dU3WoliIjg2UnO08VzmVxpmY6ZmipPZUyTFPQ9saD2cd6WsT6FGexEHdMxpa+9knTzDna/vDQ1+L0CStnvSzT55wmmbn/Cg8M1/qpStAI5g66RzURSfTZ6bs6tPSrmhoeDLg6Sfd1HCfccZgtz/HQ++nYXo9nfRi0DzsprNnX4vgnJQTzp4AFWkVfY9bJUB1n7viedgcDsZJvJwhCymeilTcFE+TRNSD5mTn+dA5TVOvozDJodez7jzFqUw455pf2vXll6NmGfV12EdHAeWwqS9I1ZNjHUa7vQG1Aa8XniNmH+yfPG2nZJLOeaFMZ8/5Rl6Zc7Kqh2WmiJom/fx3UEa8Y9LQXcvRLgY9JQ1QhSUJT27aB83gfOQMWWu7r27Fc/wrn3keJnMnnEpb2hnrU02C6Mqy1MY8+yZA4cyG9qBZOQUiTwO9dM+1ehJGe+lnG+xbUeo6wskxcvdcuc1USjuLZljC+dWQghqgeLJxKhvRJqq0hm56Qbdd1BoWns6JZz9TQvPxcX4kH3t4j8p53AFaZ09uNF/Ds65Faiec7glnw+yi1XNsJ54NtG2c2IK2Yd9BI/K04OmYKdrKqajME87jdh8TZ/TzwhKWOdxbP+Esg71xzjW/HwKpieK5gE7OQ1mVimjZhraK2qBf9Yw84mmSGThJtHP1OF6Qpmm5EKfFOXO7FJylngvmfCmq5QRztPzxxx9H0qGheE4PR1iVOihJy9xYbxn0DbR4VszOGd0cPIkYl3JeRA6StBecba+E58pdJis7nGimpfKD3kqCOimgp/XIPNnW17MRBc5I86wFtVvq7imbAH2UpzjXjpTwfAx+m3npJ/X0ZYjhHqD6UNrsWTkZ7NSzDnaGOgP9x9CMBKkF0NWGumc/raefzXNXQaOg++bJnunyUdnUlWh1J79oEsoZnmkaBZWlv7KeeFLPCac8g7N4lnKmJRlaGmO+gKYoM+gTz+52raBbiQKqTo2gruSeidnbCafSOQWqRC8z0c34ZEs39+y3RakJZxnqofnLD7/oBWkTjQOnMuoF2nb1PJSfnCxTza1IfcBP1niJmqccp3eZ9atK/cxzp9cZqFPu4pPtUrlzt7TZs3KmJjNnYFLOXxSRgpqik3WJijKFFtDmWTdMy9nZNhak43RNop9wsu3UC83GGWcF/krNqKbentXp86p60k+WdjjRNEu6maGnQ0PbqD8b89nRfnY3X5Fsk51PPfHsoBtWotGTjTyDvY/2fWDWfirdM9I94SyejPXUpJgEU/PsoEptKKIjaH+aRPBMTFb4dU9ZznfxNth/BRPOemt0TExxpmf/Nl0/9WzDvdUTTrr5U0lwsix9pRRQiY4HzHgyi/5TQQN1ec4oyyjo+iKP59otex55zj2PoZn1PPzbwRKe3LhTTzipZwUVpnO+sGQRVcKTivZJlIKyDS2euioo32K0r4i5p2M+xfP8iwuPthR5PQU68czbBr8v2uF5MM1JOyec1NM46+wJZ4CKU6AkRRUaKk8Lx03lvJ41Cc/p18T2kV16Khg00M18aQ9OvSeex2X25Ixu1k2OPa+SU+nHIGe3mXVpr/Uk0VFKSkMBHRuKp1I9O+eL8tyEp7/0PiLadqHpieaQS09pZzv19BGf+ySOlQ5Vsz9uR7O2s4/2cT1Cs6aDnkTbiM9+wqlHL8UzJSnohvFur17R6rm+tF+u3BcF5/G41eW3mNwX5bJeGjpwdkzKCed4zw6nMKeagOKJKHMooP2oHs7Vx3P2Wjx53rmvnvm4c1M08WSjVD3ZyrunKMnB4qrNM0FTc22jRDct3BS1bs5Fcx+KKPsmgc48r5xzJppHd15MUjlPnmIk9RCknsjLEk/vZ1RzIJXmgYOlCagyzp3lvqi00znn3ZxXlDFf1qVoqDwBrcfKDfTFfVbUG9pjlumpyHQz2clfRqpnYuqdp0pgloLqhaelLO6s7YCOZ3Rwmo00FThnoIgGKQ2VJ6AS9U3T6jccZhX14FiCp2L95Onb47JZ0sFT89wOnru8NTr3vNDl4WipbJc6aJ0+8aSe0c6neZpoO3MKUObQHPROOt/WgxoDHsH6XXAw8WT6fNTL0gpKOR10OZc/8yR48gXF4JwVlH52TzjJfJEHlGVJiYK6KAf2htpPRyK9oL2kUPZ+inEp5z/Vc5eTpzTPPOPy7LyjfEsx+tn3S4By657z5+m+ve/i56CpST9ZldpDJWV4Srcuus9HSizx5EFX92T6TFHqyaE8e6V8YFQ17Z2Ypmkfz6Oid+mpzDwTVJ7Kfy0oMyj9xJMhD6iNekDH6bSI6u2isqyeWwq64vmol3lG0NRV1iKCJzkQq6deEqWf7an7pJ8UNBralqMZKKJ4wsnxHfeebO6DM8c9ontu5dEkJgpq72fk5CnOCqprXfOzz3LIZwIUTwb87Hbzw//lCWgUtK3w87M7Nk+ylCaJlu71IkXTQPGknadcuqdejHYwle1uoukF/Xzg/FkfFbQXFM/azzKDPtlTnNWT2ZN2wtk1E3HZ4T+8qDxET18EsZn28e7vdwbNe+PcluF+ZB+/mkNLFvRussL3e6TwZIn/L/2cDvfxeRLPPto5KJ0kaRm/kr4izfup616iXtD7XIngVGo340Pvzy/Uz9rQ8FSeMuC7Z2j+F07W98L5Ne0MzfK1ejgbJdfePifl3OMZnAJ1Uwqqhr50r3KGKJpK0VT0ocjz88QkP0sUzwqanhwnu2diumbbzc/Djik5y9Lej0R4EN9OQGsmwzw16WeOdF2pean4R4z1y61UcyOfnmiGaPzinurnxTDen2/wXHtanJ70M0BzrP8HUE5CA5TJkxOmPKOnm8K8AhPPlWjHNHHFM0DLWiTMmD7vXXO7Vs9nrpm9jN8wUKWUkxv56eM4POEsB/Mh+vTVnYKOnuLUrLJoKtKE0zMF3Y2Zr0m6j9+wT9JGPtrpr/tY3NXNbXYTUdr5zDCddIl72psZNDyf94LiyXrEk7h6koznEw9EGO9s5PM8GU7zBHR4ipRfBq2ac9OtNPXa8B1kyhlRPW2ou6Q+yIXX0z+fSRNM94yc6qnQTwqaTzzwLAt8O6+T1X+9ORpPlLUW+dzZBjues0O7+g3wi4t8ahZH9dsS8wzN6OZgqdhw12qkK0c7oKGplzAbJ0v8xkm7Z1uQcj1ixHNgxxL/xKWd8+TSz1zaAU3RGDhX+eCD5K378p2si0gouC8POz3pKc7QfIydkrZJbhqYtZ/609FPFTRAyYGGBmnedN5NPCloePYplIbOORfNSqkEJ8/guS0aD+j1GgJrmz9PpPEVxvMHnpt3fo1QTRYj9Tc1B8+QDM3PWj9PFR0iTvcEtO2YHFSegCLaGzrndExu2j3pyebTcn6gzBxaJtLFU29I9Y7RHpEPnqEZX1xgtOdO/l4NhZPFPTg/awNemMygrPCHyRa07pj6PSe3SICuc+LZv67c/wsvkU6fyZHyDInfMk3S+qmkp0Y4p0oa6FZRpXk6pnEGJJYklvjbxfT5csh0t+bZvyHSHsAz5BFd5ayecAZmcoYmu/n5Xh7F2NTbx3rop0G2h8NbXdLMtah4qpz+MtIlF+H5jVtiemqoD3gK2mfQsmeqQ76MeWWu2WZOceIZpjyCt376HMoTuep5WLKL5Ihf18TTLFnWF9XL8iyzcC5xTKJxbqASRZOGPldefO6eV82z3XO6J6Au2jf2aPaxnp6R/qWG9R80sIC6pH1k+CaRgiqP4wHdYMkRsi9FM81ncWm0j5jffCbJ5CRZUA14E22g028s9q8sAqqAaZzsOSspqtFRHsf1s8+TJ8VsieNdZUeO0hzHe7O0hd1FlfsArYOdnRIRp4O28X67iHo/y4D/ow341SfHTKLcKi2hmwmaHU1OusnBvHkiyneVX140VyHzGhL/VcvWt6BDPxnsw/ONLd+tsReaRzHa4k4/IW2iB6J+ytMG/N3aioTn9DvK9Wk8mukZlmAiGb2EUpauCWeUM8e6rnNNZXfqKMk9qEzxjGWdxQjLtrZHL2O4229h6R/LcNdHwno9Kahed5MZdPW/8OjfFuGBZ8Yos5gMdZ4WgclDTadk+nTOrGckSZlAs6S+pcdTqesRkESc2npyqMRg575IQTPaaTFPwVLR25hAfxaoEpv6Dsqmfg7aRe1XZs3A7CeeSamAWZ9ohufduGMCdBcfO/vQ24OodTRUBZTzZ+d0TAfNBenCw0ZpmD/fsOkzQUM1PVmTBIpnG/EVlDkUT0BdlEmzaq5+HaQXszzPDE+BVlFIL5IWTY8mwDHqqfcTzwfnLCkruyU4iUnq4w05krVpNEHvrgL0j17QCsquiS8vUlHW9KLJ0yI4+clBlTIw64+yvEMU0hzsMYGi6b+opJlc32s9a/rOM0EJkM3zQD83Ar2joH/0J/HKv3iaKJzjHkmi80fDcKKZknrn/aZemTKR8h9RhiemNTv3LJY9+/TkGCRAqafaWfvJHHq7mOYMGp4KP5+hLEmTLzco1DM12+QJJ551v6m45x9u6UdLHCjdQUk98WwL/M4n0IXSxvs+PC8v4zCpgu6X90o9HRVRgie5DU+BhqeLyvOPP+YjXqBt/sRTcc9+2Fk9289bhPMPUSrmaIq2+dho/HAM3regMeYRPdqb/8Daz5w20pz+p9gEzViUqmbW82bwvP78moL6Cv9ct0nK4qmIs3oC2gZ8/y+MIcWz/1dcyckxcrYTTluGnntGyPO9tD16bJGLLMkx1qPYcYJpi3peESg9eLKytwWJHCgonlZQQLsnBa39TMy282zDneWdAe+gOd7pZ4gunLeIHuztnxd6DaGk+VVGmxblaWcf2/geSPveQiZbGfmsDXZR3ryhet4oTfQ2PRnxuksaPJVS0HHLBCik4Qlnmz3dk/EO57DpZLyrnrpizG+oZ23ossKfZecFzTEfnpo6ddYpy3zytl3RFCXhXjMHuUNK1Dlv0hPRWw0kaW5yRcolKSfQ6W0nQ77eyWeYO5PTkqDhST0LaB3xyot6SfR5G/HlMIT0XWj000AZ7MfmSTHRXDgVQ9Rrif8ODc1+1oLeWRyUFQnQ9nMaAKWihHa2HxhUPdsRXYC6ppb2HPOxqJM8ecRykvS892fsuvTZzueM/lwzY5ZvpCFBtOxCf+am0zlziWfAr3oKFFEaqorqUsAsW0+3nGNWTYfUK5f3HoGe7gbNzn5pCU9/yu79xJI862M9LE+aetcw4q9tyOeAF6c8D6ebziwoC5LinOEJaNk2sc7rw0MzWYnK+Ue/x4zN0stgLumQlDQ1/e1Z9o1l3Hs/le2pnPFC81n3lGVoCtM/CAXNMIHqypt41vjw7MdMLtrv4xUTxZJ5Myix5DaTYkpTCc07JSl/Vth3gkjMM0wvUlbznpkGa7puhJmj/d496abefeJ8g7jkm00zhr8XlCG/zJ9sQfsM+lbZg3oAdVFKSrAE0zRrNymnYpyn84/gXM7AVjAB1fUNoq4oU72JPO8VYdqz4cjxPjRlWROUJPuJaCWloOqnN5R7JDyV8LQAqiwdNdBKqvA8g2JKs3aT/9dMPVEqoz04dcUnksvJo97+oYdjttcm/t2DHPLJedw83l/qclNA759RTXLuCWSNUy4FVfyGM6ZQVqQY8OE5/YHUSv/p3oz8unmv90MWYbpm5nXujTTcaaeShzamCGcPnNLj5psbnc39oyO66VJRyjnnVDO9mrqUc8/vbr6joN5PvcVpnoeloZyLsKtnlS+iIvVAWp9bYglmdJN21rUoJk80o5u3hzkmnP65HAkx0vUOT8Ub6u9jDPd7QEnt5ptvyNIg+fy2mNYp9NZQbUgpVNRIo6TmyTaUioYoLc313lD7ch4JTiX7yW17ruzpqWQ3b6FsmLYgIFoi1kXUSLOfJDWP1VJX4Rzz7Y039FvFPxGV57VEuU1SE0K07kP7mA9PFqYIAz/Ckg4ommCm5rgSueWyEmn8+EUxCVsWfSggYEo2f1XQo4s2zWJZOYWpGKOuMJXqKBqD/lqeCqDcKE3mUJFiqjTRcVEfKR2SePWNM5chJTSV0JwPcdbXMSNp/LLUdLM4XoamvZ/dr3ESEIlpQmqgMY1arq2j9uEVhTRB6Wf9MfQEV1AtPAUeOwmiwrwZnHeewFRub8Xp05H+FmMw6VcPhkNOHQpRkiUdxvsxPv59KWqaH7ioJtChpkNFr3Up19e34fmzh4LST/4nkZEqW0zbQ2AGeIGUpJJDPTCTU/F2SnNpZ2piGROYrRF1SKYoWTzr5KmXFbTPm6RhfvvBzbcffPCtRA2SnpZJVJdGvC6BMuQZ8IiSAFVQdVFiwiOmMlpSTCWbqYCpqJ3Oee2XAuQQGdaEQ+HEE1BbidD0dE0sPxCk3vb5bc13/hkFvQlQ5TaCJxv7NM0kqWchZei/55j90RDjO+O7TSjRNMvb22vLN/GxzFEjY7TECmOjkNzI0i4ip+ppEyeYs7nzpore6JKlk3qoqEi/k+t3NofmLApokFJSUJUummMfU1agMs7T8urUyrICgSnKtFRuHDNKUKN/ur8JsXsWp6IoCsPWgjZapLb0B0S0EwRtpkgRMle0DjjpRAL+et+9991Z2a5E1/mIgg5zH9a5R4fa8Jy81EZBQ2KKhqc0416HVJTMHJ2Fvy9JZmwp2YNMVMYHRD+8S1J11E49aVJEndTfpiww4ZSmmpmU7bh+yLLS309+g+T9HU2eD0721zOtqeA53p1g6uVZnLOcftpJn/m3b9+a6IeYHyotSiQ6TI1UpqDWTSVS/6k7MUyHVDVLk0QxD25Jui78ivKw2BUjHf1kK81zYBrnbOfUZL1HE9IboIjyXkpRQE0UUBclLWqmSh91nXPXLEhlQpLDgXmAc5q+jcnz1OO1aoMqyLjnixpIsp913CvLrXYqVDNW5L2BVkGZIapa6NhbR8f9NHoq0ZKUZnG65jzfxDEvlk+x8vvvR8mNFOclU7N2eZ4ZGTS/PseyNMWJ5/J6adDZzvfFmcmPauhAPbBCsyqKKYf+s71I/U0qUZG2aGOaJmnMwXmLMjExjI8n8vawPoAw87mYI9ZQ5ugnoFHMqub5XJrKwk3EvFNPgSrvvaQMiabm3Y4K1E1fVoqyNYkwycQkkpSmEpbpSdgURGOQyWlnXp5pmSMxWVXP8+XtuZBJGeOmp4480yrKXEWJLqa7HZ2mePadL0p10zS9mjckhbl3TT1QXrWea1b1MyizmvX6ZDEa84wnoteYlfHynJrkNimgKdoNNVG/mnQ5QZqoI7rT711C3s0J2Zw/9hG+cbY1/KJTon7sh+fS/WRBGKLCZMvMej4mpR12Zp8OnZG/PTMc+jUuKtAUddMmlaTdQqZ5G9Mkr1OYIWuiHReldeonk5GUsb0qUf5EjXnYWSO6ixS91ONtn+3MDdAQVQoUUjMV6eypEp01TOI3+u1i/sjI0YPqVk+0qQcdnNeiC+vZGc2spTTBrPbGXv1cqp1TE0rW1HRUXvNP8RDhCag0R0slKlCRqqedkryj6ZhElsL8j2btIp2aQlWW7OfazgTFMvq5vEhKVmqy3TrpCWmiHlChpKN15ln/ESVG6qb6Lzr590EXplGeTntlt5/Z7kMz1oYR4anNU6GfJCQTlKifXU6y0E3aqWzebMpwsy5lz8hPaTIjhzr6FSspok5aEWmgKtK0fx/5fS7MSEKeYu1i7Hb7HHzywSJo9kQV002jpoAu+UfzLFQW5Yy5sKVllfMxg+djazL5+uvIbcvgdYNjR6R6+/M67dBTEzVSTA0VwxpEmhPTz7ksCY5rdhlEv7MrAbrlY7uLim4hDU9mDwQYLQqpPFVPRjTzxXoRVfAsTDQZ5clozLLUnRiSMYk+ntKUrU4+qX2U1C6nz0Zq+d9r08756RIME/H4/Xg87o6IDtTsK/Piuc0H5onzozkfkxQgeWbS8rz0JcQqS1KcfeJ/l2fUvklTtA4GqDdf7U97dfSglg7TFmVaT11Vlt5Ne23+QHNgfj99z2DJigDKxPU6W+aacAzUTT0yq0BTBlFKiqc4Fxpat1GaKuEZrWa7qidJSbZtDkSZmALLsACq3AVV0FFkqgiTtKU0ZamIcw3d9OxGSnSfpFs4oVy3dFhN6CZOS3u+YgEJqhhfXzCZNX7niC/UAZLFCEamWbopD6iX6QA11Hs1tWKSQZm5tmxHJSW/HX+ysZjT9DhBu6SsfvJCjZIlaRYUzwaNASfVPKuZcCrxt/S1mEkZmgTLwuSVwxaLcSv5fKOnrnq3pyP83jBN86blN8vPn5MUz9g6EmVsRkIzTzzBs0FRRHKkENsSzJn44jM4MjtwMt2TucZQr0TL1K4py40faN66f0zy48fYYIRyRnV9APShRUc2jdq3PEBEnkVJOYXJvGRa8mZGs0Mzd8xdbdLsD5ZHplPUz/+MSWZGMSemW37EkqmE6kcz/XKsJOgn5qdLRUdHsWQy0nPpMYPlzEaiW1Z4ctoVSBl/5VSgp1UV1xO5V9P/q0Jo+XDv/lktmUkpzJFfMfW7QfqF8cChf3gIzQRlVhBQ+ghz3gVplso45bVUzmFppPsV9sS2P+3ZlVBVDNVfATKcp9zvn7L0Yk7JP5TYMY+MURTG8W1VlArxAWhEobESySpMMYNksySIUZltJptspjCdbDXbbOMriJZOg2I3UUmITigIQeELSCT+5xxnn7nvMZl47rn3HUTEz3Nndp2ZTCbsbrbXtiOX6SiigPYv/c3c5xJLnhY84SzlrJg3WEq+L6uZ7EJ57/Bxm2WmOixCbUiXqSowzlmSgFQazYYSyZKu6WT7soF6Q0G1CDQ4T81/KLnqimtOBSnOiolkLFmSS9lPpoFkKXyhzEaTbadQeQsoJRWqglxHk8mAGZGlND0LLPdYO6y9+NHeRFlb84aSvl/6a3hekygRpzGFJ3lkiOFJODMuKU71U/H3aQ7FKVkRf6E47W22L3V0DjTOBa7SlWS55pLMVMm7Z+7e5fS9k3FSIlE8HRTSKGimiHrwNM0phjWFUSUVZ+ZamPKvyOdhv6NovvaNHcseGTyZTIDItbKCdz1xeSXJQkkWWgIIJgHSZoeZT9R0zhTPQKWmIi0l9YpaP6dwWkE7mL6LKJaKQzK++gTJBMyjBE+ROsChqJsWV5Y9S9zcJTO1lhlZKudtds5bdnYYZc+TngK18NcVaH4oqZ9T15zeuDGdtpw1q5Zzq41m5tCyz1qS27Y7wSJR87k8opRllRQlI0zlweGzSxqgRJ6exXd+xd4vQxRSxi15Uk0mJeNEtGBGOcHs9xOTI7aybQff0zWo0lTkI12OwsiSJSnFlKWnUiYiyw6GxGNedHOymaBVNDFW5WmGvhgnPU5TO7207VnUTcYA47x8z3ZCEjuDk+e2/339x75v31qOWiNFpcFcTnnVtmfMjjzI7O42optzopiWr0aRQSk8sWTnMlDCqVvOcLCkqWBJkGTzp4Umw8KxDaAcBNtOQrXG0HzJkKmSgmwxG0lZttkYXx1vjDc27DkG1UV3MA3STRIdjdRLb0DpmdGHD3ed3XQTS35TaeY1aYJJYPRsQ3mZzZPpmEZDRSlfyvqfqd9GVssCmYy2zTEz9mM8zo66aIJW0baiHnnCGJi+4zWMoamrbr+fZYEyOP3dE0grZSQg2QsiSZGi6fPfksKs1/z8HGZDyShnbc6ur9uDjahIAxROgVrSU6LBtHIjOMMxBsWpOf4VdXfjZGNZrzq5rKBpk5oyrTefgYKJVGZH+6tXFVNSWVTMeclO1jfW19lkxiJn189KdJc4qCpaQFejY4Cap1FyvcPUNKOU+ZGeiXKuCjMc5ckocDJNJv4fYhy2/BUvLHM0yyNFHBlJYhlJSqbFnCMMQwVKm/3ZfmSWpIASgUYStPvJFJ7T1ainiaalQeYGM6oJpzQXlVOgtsXpgBwWaZpuk7CqxrWQSkpKU5LFsmTGzO4b5X0ke8Ph6NeXHqJjiQLqourozfKxtBqieALKckeL11KBkjFMFqN2SpNdMVn8f8LahCHm6aGniShKXhpTpdJPVkW1smC2mi3kfcv6/XzNQfZt9baGW6PRka0nP0fD/bNZUW/oFUDr51I/81cUrRUo1cUFCf4FV71Wc23NJNk2QEI4OQyirhoPhv0fihjGlJRmqpWCVEp6W1vD0bFjR0a/Dp7+ONKbJei8aFPRmzcb0ciKacbmrKrnVMvBIeegraYcfcih5YRJSN8lZ9xnaSTYpczvIqVZapmYW/e3SvLn6Caa5NfBwcHD3pAbL1EHvXJl745AiW69RL2fixO3XOm3N52tuGSciDJYrhmoRHPDwGY44iGukIsa5pW2rRdNWsy2m7K0JCBm/hzJtNfjhyPzHPV+4vnEPGcz88xLL1GRekdvGsVgkJ6gpWixZBNEB6x+CYRKKnIgqdTgt+eQPAPTTz2XR4yirNUUZkL+OwEL55Ejo9n46MHbt19nvfAM0aOApuidO0aapjSUOCiifTwXtTJmYDOI6963JczW04vJ6aSA2gdRRzFOYq+hZJz0/1MoF3z+iBJLRimirOFw2Nv4+fv3+xcvXj8Ynw1OQF306NETu7sXLjSicJIAHVigWll9VjgdEkee9NJEOSGMYsuz32mngWb+3UsmJFkxabrTEfuXIo4tJVM5Vc2lzWwrur+//uDX58+v3rz6cPDt46ddwzzpoqeNFNALkBooCU9ASYBGVjqcIFJHO/Oqow6rd5PN1C/gcbRReN/cbC1hJH6oko4IjL/gYFhpZr9kk4jljsfUiy5MUS7L1v7G+cdfv39A89Wr57/ffXj1+aV1dOaip0+fNtATAUrMU6AX/U00PIPx2SCe1HKApzcyCsxkmvdNYdZsMpsC/UO4/cPEXYdxHGftxAQspGOTphuzNozWnLIYFwcbWerC5uBwA3EChybeHQODjhCnu8RYuYQzDSc0aBOO8xI8aay1Ta9pUGNwISH1/TzP77nnvnyv8vn++WGbEn318/39jgMFkU0Z2cWMqd9mMKcA9OR8kUDMD3o0M+nl5ZxzTwdrzXrjeHt7++BA1sH5+VefGaiRLk2SWUy9ogJaKomotfQd83z3uzfmjdKGiLplEio6/878O+988A5/mJKz0UobST5hBSeW2kuTZGXBiMVkg3G8JW665Zb5Qb+smVdsv8IHivnei7Nqs/7Nnki+erXd3e7Wasd7x0fPB/883uDQXy1KaqKAqihBtADlUS9CeLqlt9P2PH7Q3TIpZ4hCSWRzTI3dLQ0TVh2CyAhPZprEMLdMmpk+g/zxk0uiGNFq/jqo1hto7h3XDg6Oa7Vat3tUOzrqH9WO+93zb/GU6KkP0OioV3SeqGcQohnXNE45z9BbsPVSL+lZlze0jRPMwtJA1TKJsTkkeoWfXyNZJbkapUcwh5x5XDIJ3fx1rd5oNI6OAWTb2+4e9/udTl9GrXbQ7z9cBXRlZkVNC1BEHbT0cakEppNOvMutsxjMoMyqKZDvMt6C0xaQWT6hmhpQ0bQAd9chg5Il31aU2+FnrDy5o26R/CvK0MyTadJNDjqa4nl0zLNom3SPivQlXDeW5q7OEAG9kYEiSoagE3DOf/fuu6zXYc5jyfDHkNwqWFRzDGdx0hX07pAT0DxYyvBcjplTRoLzUs3g/PTXwfo3muM9yYF71o5qfdrKtc9Hjx8tz62MA3VRAXVS+jn/xrzBGWke4Zy3885kEdXLOSPhaXipaSGp11Wu4w1tysh6CaeLJg/1yzjjoP96so6mZYTzoIajjRofsu2dP3wwLOicgxLzDFDzhBNQBnJxJfbPBE4qKqX0CCikNiMjlqLpCc3gXP5s2UyXfTEZHjvadsktGeHomsF56Z3zzq8n1fXgNE31PO8KY83T1f38MfdQ9yxAQ/Sai5onanRUdt805kremv+A3RAhNUq2MZDBGYFydciIol/0W902QpQNQSXULU/2rYpLMa8w0mrefvqw7pp7HjjR5LgrZ5ovav98PXmVJ1IOSryhRPsJnE5GsTkqzXTKiFXSuolkcEY12aKb8o1Xlgy1JLQTPN3FE0SGdJGNj2BjJbFGygrNiGnmnuEYmHeeDsTSMGVoujyLNHgeZ5rk4NHXN9AkeJpogIaoeJqmYkq0lSyJaY4RLQ2bKTOrZpRzlXoqKbDLqwROFfXdCiqcRCAvryUrsSw4M8o8d16c3Lu3/uSJaUY3SeF5IHjHYWmD1J788fmNFPS6ik4tTE9Pc+qvKegEfB4UldMcdYMyTRx1UIsHesb5YcG5ACZhU0mu4KVBkK2wNE354QIB1FamyW6axnlJNf3V0YuzwT2quf6NgQ41ZTmpHvfQZIXp9k+rw45GRaemqCigkIongsxieCejnLknf0gU0TRJQBNOllIyBDKybN1UU+gIdkrIBqJaMnLHXDKqmXNimXPKK00w4bQc62skFumSPfeMYjIjhvrPxqSB/qCigF4nkFJRA+W8Z6GVF895STd2to9LwKkmF4bmQyaDT2qWd1eZoxnfSwR1MFmYLTllbsnKuumel3WTLykF0z0bxxYF7aoompLoZphG7h/8xW3URCGdVNE3r1+nowXoRHLWo5e6BSeDKW+nMJSQmrJpOU2Sixx0XVRzYYG3s0c4GaOcMpaIchLIRtdccZtUSsa4ar7usOc3zTPTvMdZL7opMcsu0zm9nuJolnnO/3jgogL6eVR0QW6ieGYBMLIIJNOWYJackncCHJNectHcXSAiGZRJO5dkSdxSyFSRqQnNYMw5o5zk/zT/HDSbYEY50bTIMS804XTPfnbik4ae3n/1x6Ro4vnDjcnPERXQKTvzuacd9EXmB4uWUhooWaQkQzSVMzQDNBKao5JLhJ2BIDuXOa/kmFgjc8tIds6vnFXXm45psWOu5TRM8zTSeA4liAzd0Lx/elo7/2kSUMnnEkQdNPEE0SvJ5pRsacyTxYxikgWmJyjTbhphsWkvMZQrFxhHHVeySuaYKejFav7dq6aWe3BiySJoUlGPv1rqGyjDo5Y46mCyuv9sfI6mxkHDc1GXbsJIPSEtGWcepQvHwAzKUc3Z1eXZVJOAV9SRbU4pxXIOxPdX3pPBxHAEkmuOSe687gv0v8/uuaUn0YzQTEt35OkewZKpm8KSn+93//oayxB1UDw/wpGpqnLIraClcaBU0kyzOOZdVqq5CqfHQDnezDnb5IjrJpoqqows+SmYSMrpoHeG7Uws7whmWD5hQchSS+WUCWVgkoPiqEdBo59pED1/PHnRE1DtJ5hZ8nJeI6UPQ5NrVs/8YSSZVccIfBAusRjCaGtFNJk7n76HJJONmZfSMce389+zgZ/y9Sdi+WRvjylxSxj9rhmaUc+knaqZc/788xfbv0wGqHuqZU453lM23k/JE5pSzzetm3rWFXM55VRJXUQg40cG5cfcbITkDnX0jKKimdXztz9314s8IXAS5XTTg8hoNcHsds2vxmSkT6NUkyDKbfTGiCfBc5HznoHmmJ5xkGwRvgRbtfhBn1yaRNQtmSC6qD14GEoZjrIr3i3WTnGN4Cjt9HoOq3nYDEswmXs60BxlZKTFtKA4rp2MoLQJpuT+9l8bBoqnik4sfrSYJ8OMjK9laOIpoLNEPaGcnEzKacfdQMGUfhI4OegaWOFjuKZhskHIuF208yLnn4PhMU9yoJZsqWJ6zvu1/mmr1TntZ2deOEPTOXWTQ//4AZpDUOlnRlq6hihTKDPOlDIVNUzGm7O0c3ZyUiwvcAqlFpTzzSos39spzrqV9Jbi3TZFrtgRDOmlJjSJnvNBs45l4mhDHc/pJJMUV35ZGsl3iTqtLKenY+6e5siy+Ie17T+uB+iEWqakAAoilokmX6AmoNPjqmmgaBI81ZIVmtLLiFWTfSdyiyXthJHpmPAVgPpxyvmy2eDbauv3eDNOEqz6dCf3GL7zi8f99YcP19tC167u7jZa5XKrcijpVcrlcp1P1kH1vnHKdNDgDNXuq99nC1Drp+WmezpgKS4aCFkjBZ1mJKIeLOkn7RRPZhx1L+iKDOVkybbjpNZI4XRNFcTRBf0anieNdrvdXKsSNkmz2USFVCuWNWK/ye+025uSXrONXrux22twbfQUdKtc3jw8rHRa5f16tdlulYXMk2pu2aCjf31ZdHTiI7rJAJN189oig3mzdBPAJNO6TWszeXnEJpgsk5QtPC3GyfJuRhxVgmWUk3nrNpgy9IRbwjEH5bSfvHw5qDRV0j1Dc809HbrR2vT0qkLaoY9UtLrZazTxPOw1aWyz1eEXtyTldn2tyt9Pu39axu8iKJM3nhR0Asy3334bTjyJMN5ksIeoSTLhxFFM+XAB1mhmWDJdE0tZ5MYN1lx6+2QVCU4NohKzdM/Xx7+8vPLnyVrTNdsYNaOaxH6HNFqHmxG6WG9hqquy9eP+/n6nDWEd6MKyUtklFSaDfa3ZIEf909PylmV/q7v9eEo835YsAqqaULJsSzmJ7nD6RqSfVHOKfg6rGZxFhNMSzVy5yhmPdrIEcwdIw1REdouxATcktBGgnt9e7jZR4/x30LSknLSzAmOaXlNOPIA/avYhMksavjsMn4stze5atQ1nq9x9xYMJzyLGiaq2M+E0yDx23qcW9C3/OOkZJ5OYZ4Bm5bRiWrD0h9CVIZle3NNVdU/y78laA89Gyum3Tjibm2Oz1g5PQMuNZrld/FHZ4nMV+0haW2Uebduvzn8KT8X0E8+MZtqeRzGnCPVkBWd4Bqn1M3J1qMkGJlM5IwY6KuV0Cpn+ktez+PZ6pcnRJP5fH5z1TiNRPGTYRnY7P1o6zd5hr9doWatlt8/hUePIbqOMaPnn7drER+GpomHqosixdE85mXrUmazwzES5d7pncHo/Z9AE00CDMtXM47JjwwOqqpqeeOa3W6kl+yhsW+tZB5NU9qG0v4VGo15vXsyob5szv79f1n6GqHMy2B107Jmnm9NFPcHUjGKGJ5SWwJQUmjMzyikjNK9klJfA5r/6VA5kxsltErU0h6PpyYlv9Hq7kt5WXYpY/FkNrJHEta7PJl4vfZSLekejoAnnlGwwYkqsntcdVCDFM9EM0BAtNJl+2uNRJKRIsWXn3TeH9H+8mBeHcdLjFWm5t7n5Ukd01CNH/LCFpz2CQO20KlXzkhWmzEbKKh1tcNOdME428WQmnqxoaApKNaOdTA3vUztpxC3TfhLtpxXUPU2zMM2LGJsHdd3H5PZJ1THjWdTYfGkx0JAk+gjfl37arXe33tovd6r6dUFbwjVNmBppR/sZBV1MQSPTzhmgcOLpoAx97TkEnc1BWYKZeCKqUc/kBsqeSYVt7Ii6fg5aJJ5Fvd3Dw+SgOyQRxd0tXn9Wpdl83C7vl1sNKqqRZmoS18RzrY4niYrmoDcZaI4FdU097lhaLjyMsvvnVUAtaHriwOcdzWOQSHIZSXbmq2ujnu3OodiJVcUNPf4iSF7KV+TpXdntVVvlVqfV7FXkqWRsBd8YUAIonhLxpJ06F1NPOMn4l5+AWkSTqd/cv/zI41mYzozEQT0FUOKUiOlvBKY8xzLQ3ujNk6+LAEWOqXHKSKW+tdWgstrcaqexTqpwUVm/k1rVA1b2YUPx1MSJTyrqniaaqNJPpud6kvBMSYmYBujKjFU0P/IkPPXqoHE1Rv9iiuQdvXXSrPp5bfX8oPspTzEpLZ0sb9UhrwyeP3v2YunNSd7jWFhe+uHb358+e/To+fPnJyeDwUPex2oopt1T3ZMknibKuBaeSUYwZepZt9DLN72cUdDszEOZFpQvPNOG5qL+vDdFN9bdIJVy9LVWAvqUQhFunlUokUwPOowW6e3uydnDVvn5g9W7s7P82/4wNggT+S7x7IONjY3ff3kmzgO+qG932plndgvNPAOUXHdPjvtloObJEsvRx/zrRUdPs59x9yW3s8SXql7k22fm2akLp1YT0wiOzcrJo0fPNt7+rFRaOGu1zm5InO9qDuoxWQigYOON42n1dFJmZjp64C+IevQjNJmSWaYnFx3Wk+FRUNlu7bjoGCeLg4Wmv4eSl1vmlds7J3Dy/sjII11VrZD8n5pff3931d8jmz0xzxDNKUNTPKeSTAwtCYrBeY2ZFNQ4c9B4InnGecIZ0X4GKaCeWzNjOYMoS0gGaJqZQZ13h9uHcGp4Xu8+HJz9svE1/7/wrCqyJPz74vmUv3vhClIcmamlZSoRfaCeEZVU1EWjNNUwlWMeqAnnVArKGnfk0yd9HHkjVUw2yTi2nJHdOTNT+y22F+0O7w33Nqlkpffo2U9fTt9dwM4ya3HPAZ78kBc/OffaCCFDtshNhvczkh935kiyx3uATpmkqsZNNOknazRwJvfQcaDqEQ0s8OIX2ciM3Sfy2Kf7j7JzC5UpCgPwiAdlIieXnAYx1DChc5NR44Tc08ktD9RRJvdLQnkZxzU520nyMOX+diKJaCQ6o5ialAePknItHpQnD0r5/rXO3v9es4z41lr/2i5H+fb/r7Vn7+3YcpF9+NKXb5/f9J7P94a3GoxM9UlLWZ+vAzkIxGq9SLpBXarOcQuwkqizqdRd1cd1MuPTBY/eRZNX8XSHSVkK3zUayzHvsCH26/TLmZwr20/f3jxLcdswnpGammqUBH05MPA+BUFAQCiLZIogTUu8XiUmESUbTEJlekLBljvRv2ByhZr0l6E6fZ/SHKKShyhDpZnwV54ZgeEwUefIZuzaYVLW/DP2sMpdm7qAPhwY6E8ZZgBR8dNSlj90InIBXYjv7+hkeNdMfr0ziU2CI9TF35IgG7g6dY93/vKgdS9YeTB4Q4rAgcOzyKsSnStG9G+uFdem9flhoFiWSxRGPa7KCPt4SDp49a7ovVACEJzrT0ZjobJ+yuxtSUT1mdW7I5qiLlq7/w27nKWVjkoYFSeyqYzKis9IZR7G8jI31KWlNUm3oAh4ppkwHk3QBFWfBGs/np20UKoD1eCSkgFSXkpdvROcXck36kqycARMjQldtoYus45KX6f4rD4YKNaMSQmuRWlMFptgYdxqsT7VpnSGn6AG/QyvNh28ijfBL3p6XGlWi/4fbBrxIDYl6DrpYHMTmU6ZYzFe5tIiuhjBpEvFoppUlQx1qR6ZtvISje+zgkYmhtqkW0yp62P4/zAKWI2EBn+8i0fVg0pVra5J3OnSABIVPzsF+dNjde5sQcrY0OeoVnxypQJdtnchMY6IUOzLcwQDrySLT0VtasFbo1Gi6vIJrkvPZ4DRwPvcSQdvU1IaFC/OopRjcpEPBPqbnWrP+j41LdWoebYYtN4tDuRJT7XoyFSwSFfkFW9iQ5/+Jm98ctGqeELx6RsFm5spCVAvdPDjZ1j2uGi4seCnDlXrLKcItvg+wZNpdOa78HmvOEBF1fuMe6SDdak6LcZnRa9A4y6lRYyj03QnMqHRhuTXvKj07o8ok6o0sgl8odaLBfug75uExHezSSaEWJ+NdXZJM1Deqezz4it8Wp3dNCFyKQNQulWaQnKC1rsKddD0tJOunkbmAu+CSYIvNf5M3lUaxLLUX0BFi01O3aR50WSffWuPIF6NYYSGK0LdAmp+WW36PtFoZcpIBa+KrwJ8RjqtSAfVqC4toc8nK1WpJzTa55FqzxZWEbkApUwenk18qlC6bkuanzZHW1WoDA5CRCcSgaAnBaUQCRW8Hcn1ydrp5SaPboBpbFDlRlQwI99ld55ulenp3CRdctIhgUt769PfjkSnW/X4FLHE8BY9Q5kRzh4pIAqhDq/qZXGstlatULpisjP68E0PUalWqC4WTLTQp+qMRNK10uVt1nG0fFAWnzY9MenJ1CLHpvisR+9/mt44PYXoqt4U+gKt93/clgj6MDnwlFon2XiiOdlpjMqbuvJPHWjEUSCVHyWov/BmwReKz7DKx4lQk5/Ue3ng0T3rE5V1xERukmF1cuD5RGhFurWqIDOOqLTJOZYhMgm+T18o4NJbRv37eEipas27VtApuH+OMSrpKT5jd/z0K93dqF6moK9b51Nvio8eGJ9+neMRl5bQokdisM5ptupVpWCLnGZg1t2IH4g9H1Xor6O63Tcw6qyDyll73UMqhujXR8unkRk+AQmNar37PknLboXNJx+8Nz7HsXC6LlWlmcN1018/Hz++SmcMcv/69fv3r9sGEpTK4FS5fqviUqvJoIeMtRO3DqU3xpokRogDtmUC+7Wkm3muRGy1bzebN3DXE1ecXTGe7zRlX8JF4g77QBRCn+H1Z4Ni7wZH6NgZr8XnWIrdWJRBsPVNTtJw+TcShwyn6IYzp844nJN+jk6oo69PwlU7OVxz6fcpC7VyxNdymYc01Wx3alRv687F55fLfy05fNa8XG7E/JkjRwyfmcglOy4sa8ota1k2uaVj1e7krpYJszt2JdfN77gwf/fmjpaNyQ3Lhi/M5YZvOLxw3/aDG/bxzfN6z/dmEcljoNid9lqMCt2h9rH46EOYK0+U69HRleiAply5csXExP7Tp/cPYswSDWcYlh4wE5yxIQKVx3rOHSMKfcf6zjGASBdKYrRUKjEMKrhMIxqq5VpQTVVTQbW3O8jmu45vnzpv9MTZUzIjmpKTp4xsahm5auP89vZpTXPSmabZmfSSwpxCW3u6ua0zOXH67M7pLXs2NzVlOnbnDg4bPXrWrHn819SJgwfnHVzM+ckH5zlVwU5Mcg4rZeItS7+drjHuwzXGx0cvPjAJV2XEuHNHwtU7cPPmTYLpcFkgCom9e/eepp+m2xm9Bw7QJWw7cMMcbhMObTt0iMnQ08MgMDEbbt++fewYvYcW0leiHSthFdRpf6nfcqvWX+HvWJMuDxC7V6dY0t58+/l9zexFw0Y3TU9nMtOmpDMTJ2dGNrdPm9LWtrQwbcnaQqGwdm1hSGFJYUlnW3NnIT25uWXKwgm7dp3ceHDDsM3DJo9sPTxveWJNb++anb3540GNtolRrvXX5BxikrN6ixEhMvvw9w6ffXhjnJMGNt6hm0Gphlw2/ZRhsL4TR/ae2Hvi6FGjkojToxwe5WcQfODAjb2ikxHnBn0bkiMOPH267SmjB5nYxC3gFkrHEEjEKgeh12v9pVsitSw2F3fLQtvVxWI6d/mIuaPPP6nszOXWDD88c0QyOWFksjnTOad5QvuFznRzc2e6fVU6nW6b3rZ2bdvazqVz5ixdMnJaZnp7+7qNI1uSLckpHYs62nND5w39MXoN32tv+Ny53SvHBOQkVLBpCkNysmSqBvpKnPD7g+X09tGLX+csPRKQx9GZHiuQsmVsY5IlkmEjkxT2fkgcPfKbTbMPTa0O4/hGgwZFUVSw0Yql0iVaUq6XG4VQaVBEZERgRBDOiDJZGUkrtZPmKTZbf+nYixZuMnUTJknhSDGiVeP6T/S2ktXKmAxu3Fu+oK0+z9mKop5zzu8c3b2722ff5/k+z29XURSvC36QZK1UBCgvYCsBT5dr0jWJagUkIYBFuQlegpKDU2A6y/5A9lirZbQq51+xzTNrNLp9HEdC5fj++8LW43+V08dLz94E3NY1542ed811Q0PXjVx85djoWxfryPQTNqvFOmztt9n6+/sdLGZHv81qs5ot/Q6r0WQ436TX6/TDhvEr7xi5aPTiiy4ZvGRs7Kq77nvkqjsLT0oOpCHJiTCRJijhuIQoOVCm1CekKDwD3DWeYTjK5ZEVjgJQglzVEhiE3IEkJFl56ovkvITP5wXq3yRFsMePgtcXkmdwsjjlM3ERINXgcmoBUbhSBABKLdBgolKOY6Rg5NKwClgRaorvKp0uFFLyDafShXRqp5Da2dlJ7X+4f0X6hv39C59747nnrhkYOV83brH0S5i4tDCaRmxGm+WEzWKzWQ1j1w2/9cTFeNXouGH0ousM6PrigQf6Hrjqmpu2SvdcW7rnyGbIdsl1eBJxoSmOykGGQ/EMPCFJYmsu4QToUYgORYlhLve8iNIddLNC0hVS3W7VrSqukLfPm8sd8YRoyCtAYamA9rie+gQl7F0egr8sQhWiTg8YPUcseZCCCk+CJzEqP0Hig5YQsBwY1jFPYEJzWxNJlFtaitrWQioK1sffu6xUat5233UvXvPw2EVXtp685c7B60f1ugsMJp3VgiRBaesfHnaYrLZ+m+OEqNUybhk3m28euviZuwYMuitHLjpx1RN9zfvuL91313uXlC65Z+vZ9NbS5mY6vwLNPCBFkHR+xXgxPw1Imka8Zjq8Ljz9QJQTWYJPiuS8oGTxHBH0xNwxtwQ3RKmqMVVVMxm5+rwRUWikFuEBpl65UKVQJWQJcQjnY7cKSQFAoR7k6XS6IQrQMDf/3zDDLDxQA7gLSuyfm+BEEJzRfJ66lddOgM7gDymx24X01qWFB7a2Nu+6f+s8Q3vk/AfsI4aTFzx3wfCwwdC2QM8Kzf8Jm6bRJx+4UXfvBQ/cYrj44lvufWBgcKh+40Cn9fjWZipFbaF7zi/FwUlIovOFaM33DCy1WEWVwjOM6UyJhYdX11fn51fFuqEpclwLEu5YLBjzuINQTcYAorpZIerVeHpzUkGBKlGJRHwRnzeyQSmVp6OoVOAKYKFJLWVhJd2BSfBwrFIhzGMiIcZfRpZ+Doiy0lFJF5Xlyge4C1TeIO3Id+BuR1P3RGlkcOBW66arrrrrjtL5F18yVG9frH/+ubsH9QaT2WpxAHTc+h+WFrPNhlGZDCcefL01dl9p7oGBscdOjt53+dbOnVvvpEuFThz9L5W0xii+EF/I8yUwrwhPiMJzukjJLK6T779LvkOQ/md1FW0KSAlJb08o5HEBMhmDKLqMqeStSDOkhvCgXISa2cctF4lsaEU0EqlEFG/Eq8KXVwIUdPAUoCE5wCllmAXJCklZ5F6tJhLHOMWZiASGL5ffL4skffmokv5l/fIdkflL0XhcLIKSJis63SxtlZbeSZU2R2+6ZXTovKGnzjtPb3aYLhi2AO9fKC14k6Nr5F3TsANrGn/uGv3gQ9edf9WTJ/fj71315v5j6WIqlY++sIKf8w/yb0zNEOSJ+I1WMcPH+SRZvhj+4dPPzvjD0JRqSdnUSiZIY8c9EQ8Sa2trMS1QqMqqZiTnvUqub4OI5Di9yBKwPm9FWMPYqwASddZk1YopgUjlAbTcJl1VlJrA8NywBGZCAqIwdGqWX806ndWEX0ID6Yfk8TSFPKKS7ktAnGHBm95Zevampv2+TqlVn7MXUi+88NiVQ23DSP2hq65/Tj+ss1Auuf4B1WF2WExWq9HhsDocFqt++YL66PD4/ScNV93Vt9zqxDdbheX30o8wJnc25SfG+LySn0nnZ7IzSFLqJut0kdymsSxKd/4xPMOr0p0DkQWuAlI75knr45oJEJQJKJ9CeL1qxIsOAQpPUAKPZSOy0YjkfF7eklJKIM2NY4uq1EBZCXH5JPsh6oZm1VcFIsrU0r3KhTI1ttWq5D2NqciVNoqEd9JGiTSBKUs2IAY/gypljIItVZUCF3+kNVB/oe+5weboXOvk+brLW8+Mtq+/++k7Ot3WYOsi6zFNB1gpm6zDelt/16q3GIYNJy8+ec3AHeePDTXb3TdfvPIg/lLh2XTqYCn99frydjYwNZuNzqwEZpbE0GW4w9Olb/9r4EGi33762WmnBwea0lgClcvtDibdwSB5jjyhiSDdXkVFlmoyiQ8BNaMKVUXtazQACkGCBbKAJOc5lJBvoyK5LrZ0DDGkoEygyis3okW9tZqW/RRUuApYBMsdsH45wlqnXy1n/YFyOSB+T/ZPQ1WQaut2nFL6rJ1Nlq337PF4Oo4Rd16Md27pDVxyfv3K8w7mjKbmg7eYTBZj3do2H/uPw3H0cHwbab7Y7AzrBhg3Ow/Vn6di3DE3t9y1P25Pd+4pLS2kKJhfFLUpqLhKi5TPU9DJGW3+8WtTZLhMv/IVPCdDLoiGPU4RKRjRJ4vHrWU3+iRQE+qsADWT8WnSRJtnc+R7LreBNjF5VlQKVLCKMhWoQ0zZqLjA5hKiIZ8akUpawdL+whoSipi9J0zpJDxo1CNqFaZhqaLORDVRLSd2T+NRu2V/OcuKVbFQT/f2yL1oHpfKFvML0XgpHy+27AftVr05bjDVr7ly/KLRG+0PHerMzEU2i9FiI7XNZj0YTQ69YaxtmTM7zENG3bjxynrdctNv5+m2WoMDm/utq1pz53Qeu2u21bljKYr0J6ZWtP2yGeZyHF3yncCIgEkxTTjD6/RI38DTT7O55g5W8ZzJUHAyKPp0awyShFtRQ5ENBVookWLZyHGBjhqJMvsUJUdEIkhU2RCYjQgvSfQaVZMmlTrh8tVwMAjHXIoqvSiHohGuaGet6vLB15VwJWpaVHirVklwVhnVnAmnp5xIoFMWBCpEQbqbqHIjynsU1u3ACqU0vpT6fjrF//Ivvdi79hw7M+dHr17VGhwceuOBK/W33jrswICQJKLEh0zIEiOCrHXohK7fbBy36J7bPznStC+303OdleXZ3tyBvbWyWCTBv8hPRLdpJ2jdFjcDAeG4KM45XVxcXQ2Hnc5p3Ih0Ep6iC9kecoeCQfzc43FVkKOLnl1l0CG7VZ8v51POKqpCydzIKZGN3AZK5IY+Iwo0cxpfBaISXg0vIW0TdRWyeBNyrCjQ1NomH9R4q1bT5vwaH6o0GhrLmmb11E+5aUsZon5syQlTGn2m0tMCFK4olNaJChYgSMIvZgJ726nNpa+XtuKldrt5Yqx+nl4/dMHJExTOS0aMbdMJXXt4uNdz9FsYM4lxoxRSC9lvMjiG2ydvvrNzS31IP3bO6Li9ULLPfVFaXo4vbz5ODxGlvkwjf6p0cTHABgeKXAxQP/3rznUGHj9ZVv7108+q7AFpTZK0l64YBZRvOomskIwYM/rEitRTakZRVBWGGTWnKtyQ5tm+jUYjInoVhsIVzUr55FQiCpU05I0gQq39VFXxd7pPVldMBlaUmqjCHM8HboX2zMebLqfTxchEFdUaKpA6y1XU6eSpvHualRJADTgtgqXtn18sTiymo5vxxeI7spn9dnTpxfQL9Xrpzq3SXGfg1k7zyhPj44c6o75psrKzZDZJ4yRTES+MFqNN5zB3zp/r3lK4rlV/tXBr6/UnX3mv/UIv3Xrv+/TOcv7tdJTpYXYmXpylaC5mZXCjuktVx0Or2I+H6RKZTjv9n3/62SS1U2xozeNeFf9hLppfW0tSPNXMGlwzKt87wxBQWU5lWDNeReAiyL7cRoP8R7CE5k0w9FIlFblFXBtKxhfxVnw1qIVcsNJ4uoKIkicKDKplcWNHHuyPzolITPLngk5hKgZFaS1TTCmjYKwlJrnVak7ewmGzTv8n8/7AIuVUm57Wip2F+MTmRHyzU3yh9/hUq9Up3F4o7Rzst4psOj/1hok5SPN20txsk/l9vP/Qaq5De9DQPu+i/VSvfk0r2norXih10gW6+OgB+8F88mgciy87cXZngrOaKNNxTkvfHsbcgej3r/s/EJ5iP24O+sx5rUMKJpNrjD+xDAqFZgyHpxQCFriZDB/h0gZ34YkmyW4wanW0gdtL5KTHl/dFtD4JIPuYVd2hSgURel3a0E9+czY2XNoUJWnvpt2vScbjT1yeRIIvExWIFqfRRWLXHyDKp3/4bo/2hTH6nZkyPQzb3fHoXrmUjn+f+unZ5e559ebyoL7vut6P59/7wgXP/zjXevXGR3f22w7biOklrYr26haHqafv9tPK640j40ajpd1uDxns9v1Wa2EulV7pLLfSqfoXE0XcPa0NE6cpNGVSRZo7qjpCDYcnPeLuR/u88KQJrIRAimIyWDD7Gm4ghpJuNanS6WQySVqbjUxSA5mL4PNn8fKzmbNEpo9kB61US0UjTLbzwielVkHCtPd8wFehuSLdyX62SmqNSgioAIQkfWlFigAOL4UA0oz2nGFkebRTuEhrH9gtJxjwCa20oszTv35+Zu/Mxz9vf31mb/d09syZ07t722d+P7P33dfb2TPbpe9bWz/+9OPOfmH7x/jWLzudVr3Q+mV/Px0tfJ8vFc6de+ndl1Kbprp9v1N8bX//kjt39nvXjhxe8klvrN19cH8rfuL6zeWf4vbNg2fjszP5iWIx4P8E01lZCc4nnJjk5NrUFOkTZEr3rPJAbnkA+vKnn/p8bndFNOJ1bWRcIQQYqijoEG9XM6R78ssvkyo4ARvLnMoQZ71nyflTpzKnqJ9H9s4lWpTcj7AKX1oCrQbQGcifwMdVnB6Dg61YEPkvRROcsgNYrfBlUEcTCbcHz0IBaEAMadKFNKnx4bKfWPRPr8re4nzZj1KzM7u7gd0svzDJZunvt7Ob0ZViz26Pby7bm8PdueUvUju9g5mDzltNXX0LH2p3jVaTSWewGE39lm7PaqagmvutFmOvVW/ruuZmvWXou8A4ZD/ZWSbfD5udg07q6oP4J1Pb30XzxXwxsBenW8qeIdNX1k+fFqP0n3GyuYkA6DPX4RlMBIPiuOQ4h9sNx9gnPIKMGkrz+WWG65MvM5/EksnQKQLQp76k+wRUH+xwJHiJEx2XUPAqjQ1CEeHytszzSfzJ16hFROBejB2ekv2UTzTJz1ZafPF+T8gnO3uUSy3hyfugh3RHl+jVj5sGII1DZbWuvprIZmdXZhicpmdW4uw3dZ59od5tH44s2188v36tvd533on6CDtwL+iGcR+Hto9k6v9HmC2WlxyWQ4ep2zw0X7x1va15/gXd3gt2e3PkvfHezNW9g9nVGWxoMTDPXX6ZG5b5UpvfnbJXLPPy+iSzetCTQJ/vS/fs8cy7fbG1mJsVwYhXBMXNvRFVlSGTsYaZKFfzNuiXoNMgxdlN2qB+yr4I1qO9dfYsG02qqulVJfUVhZKZQdR8wpiixDIyUnHJJyXhM5LywtVV+4NKU+MFz86wU9tyDtF3ktoo1O+h8mss/aJS8p+5HkGsacNJYHaKbYndbGAx65Rdvak9f3FqqruUL0ZnTd1UurOQivcKE/XUg7rDQ7PN2DXprYfGl+xmG3FosbI5bzywDZfq7W57Zb+wsrM/252b6LSX4+lNRvUvos++8/biwsIXxS+m/OVVRsuJlYnFdQ9Qqed0nvAMTnIEnZjn+/Cs+YJBfvYok1kzGZOeGwtyVdQMKNRTSkwcHRTkuorojjpOlWYphz5JXtoiKifdk9x9PuQYoRP1gTRH9cyoHKEa+Pg0/KTUGHeV5j6m+Ej2hpIMYnfUWcYmGcwY1CalA3FXMUq3B5fn9GtHIksFE3sFrLNa9gT83NfL2cWieMXebnb9tRnPl4vdqUD+oEenNHc4bNy64HDkUK+zNu8z65vD1j4d9m6z6o8cnlW7D+sP+62HDuM1rxykO2Op5atfOrjp4GBmod7tdb9gujxAlwvxgHP+YHEqXFyQ6SjMFgjFB60yn4fX56eC6/PIFZ7SeXKBc82txpKuEBf9py/5yamkO/Mlr1WlEsps+GJkLY4DvgZp3cidPZvz9sHXq3k8DMl14CFPaTwRN62VNPYhLzqnpdcmJm9IwXS0vVGXto9K+ZY+tJJAn65aZTJR8zkZj+iJyJpJJ5nvqyZqJH+CFl6MIEFU8Vf2HdZXF9lslCl6XcZPZvvp6fx6fPGgd7Dy2uzXX9xbmps7WerqO525wx9bPWOrdUGzftjrl47JQPfZj7XrbSaL2cHJ75Ye3R9YbnbO6cQH24VOqtdb6NkXXnxv+cX427PFlfjmyjsTq1Mr6+GVifVicWJllU5+fZ6D7Y/ZVcbN9fXsp5+9z/bS2uwU1ZOQAsrmsZfUh25FkTbzy1NJmk4v+L48hbcr9Jrkc6MBzkgDPwIm2d7gJlKFrjD0wt6LJ0lF9TYqfBy3Qrk+RqYKPwyIx2KVGhWB5lbKTKOaXAvCjjGN4gpk6qXM8GVqp7Pq4TlB/uP4f/J1dqGNlFEYrnihoAiCIFYUtBG9UIJUUK8ianqhoLB31huRpl7F0BJscGq6xNQETDQIauI0NtXJyJjOCFZX4uhawipOu5u4/iSu1VqtW9c6mt22bhInTX2+qf+CZ3YySbZN0nfOz/ueM3yhQzsVClNjC8ZiDXWfWCykEkKlJMyAlTJNbfag1TXVlrNxvn1Z6w7v4IbnbHHS5x+46dYLLxh+ZcXp93T9SKLL+70M5PYNau+93unmbv7BueTQzedNDLdffKVVz7WHB9q2dVBNQWwBMGfmLVPVtBkxtpzHM8MajwKaDJCyTNXkIoPy0qd8SEEDszIRWGrEiXQ8VEnCO5WYW+SrtJY40vRsVIndGBw9sk3OrFYjr/U9BZCbILwvMUGX0HfzI1aK4a8iOcRImaEo6QIZTzbGealz9J8EtVUUFEQQqs89DgkZwuQq3kIhCIw1eqNwEdK9tpiYMsZCBqmL8NJ4QjOUlDFKDs1PiNprpgIzqlm08wumvTDenXn+xXdmM3brsuIh3LM73DVu93d7Zz2DOCTC/W/GtNPXl3Oc9ocX3nJ+9527bafVUrVGrvuEzVhDT6t5lX+mldISU7wjlchwZ78GxIncbhiuRl9FKTN+31msZfXQ2GoySSKrhKKFipKMhqrZUihUioi0STYsJSGK6PXVzZiAR1QedNEmEPYJb3TR5Hnhky6DF5yJ4CcpUsyBFoUEjiKFrkY3Y3hrlA4LoMeI9SwG9QRBFG44HgVZ8AvRhaoxD4XYh+l6UaCAdgrqDFHR8kaCDCq8JD7PRRfqjKma6Zm5GTOjouXr9fG54a5jX992cu3ORPHubt+GHy3kOQA96gggfb7fYXQ9k6LPkK7j8fmcLq3OlW/SCyt0jlEKpppOBaS6neE9UmrKxA1FU05hmjEqhmphtBo6iBouI9bhgGMF8KTdiHLnKW5K+CWHOGiuVvChIE5WLWWT1UosSdg3StWIgEGod4x6hH7fex2joLsaaX+cRO2PkUbZRNyL2hbkpEzjmlEMdw+WsGxShAF0KQKcxPw+xd+EfdbG4mCKDBU9UzEEDU5RlgxRlOZTCTKVOw4FWkkjoWn5eSquacZtMz9uSmktY05Odu3xges2PHQ/NiZ6AzAkr7eNKAK7axwmRnTjD4x4hgZ9Z53+J3r9jlPsPH7WN7ixccOrhybee0fLdSbue3HOKr5U1GYCzNs4ZQER3CaOGggQGZokZSRJ0jOZekLWLV20juXw2tLSsxRT+KebPC2LG3drWLo7xATdRpIch2BKKiRTnoEIhcCNticVnnh3p0eUIDxVgOqiG8GSoC5QRQAR7yh+OFIEEIE9tlmiO6BEoiUhm+Dx0RKhrsj4J/4qKyGQnI6KMhnm/JM24xKzZlnjMxPrpKwAEQhzycxpQjrzd46btqqmjYlAYC6gjhdN1VYXArnZlVcPzd54cf+13f5e98NDsw6NpMlOf/8B701dxzdwbq7YseqD7Z5tz56ut1ZyT/6gftPK24NXTV7re6L3RNuyc5qRn3VQRzblnB5ILZVPiHqIzpRk2KcmyQa7zLBoLBseA89nZANBQmue2aXwkliMnGYh2PVIUgjDbClG1oyBbGUTQpTE+ypZJRYE7G30EV/Yu+nmSmB2I3sbx2Nzx8ls5NAoVRxZKZ4HWOIcSQC+/IDbcwkln4plRXc0VMq6Y5EscMLYgHM6SJoi2ONyKBiXsekgyTVOowxLaOHRRGoslEA9raVM+xHTMrWModVftp3L652NdrtenGHaOet1ekMH/K1Jp99/jd9HQ7nngyVRkoaKPbu/5/f1vCNej8+xnU6m6+l5vYP+dm+wnavb8yndlBbX8ok3m7XFOOFhSBREgzeVOb9IDT4M+SgbkpEhwc1KcGtp6dO9SpAIXhWqmr+fizsI8SRaHoX5uuui2w0UJr3MmFCYsVIpRrfJnSCBYN8fC14ulVnHdueZHdayx1j7+iM2TCwmvlNmlTxIV0UUt2Q06Lq5CPdspBSpkIhJATgtZZ3mE8SeIIc5JcLRUHx0FE6aoopzNygmW7XKtAxBRYBQlGQrU5ckTc9oOvUJXLW5KUSfnZYNc/ZgvlP02D1/e8DrQxlxdYh3xNcaInf6bcfrck//kHsgi0I/hzwjsHt/z34xN1js5O2cqpqZjAUfkrS6nWjwIchBtYKEJoprEh+Gvo4SntZ16ir0KBufBs/ys9FphW06hjUUHaj4U2NARbJskDEFS48So3AlkUqFj1GhgdW9MKRveek4664/5horWHLvP8ay7EvLZ3gJqCpZwO2URtzxHT6N5tqO8SbwAF6+UmtGo5sR/DZKc5vzTpMbx4Q3JXBTweEF1TemmosJVRJaxYBKp6SApGUkIyCFZfKpndDyXChote3ZzoQdmOk8n3voxsl27uEr6NXZk/6R3oF9wekfFFCKjj37iO34PL3JdsfWh1/NLbRm7U764HgdzlsPz88nrKosa/FCY7UwHS4IrROHl0DiRXIchYDIipTlE+Ofn5CrFAXmTQCKUMQXOb4WBTmlUUUhsWctSKiSFQonROKknqPMwWH79b4zy2UAc3HjIBa0P3585zg3GAf+HcHAcy/IN3k/g9M2a2N7z+wsffrMLquHNwtVpbbapNECv4i+XsbTy3xD0Ce7u1u0jFaxmphyYEcZY67/tNWs1eg0FZpN+spbWzWijeiXMmAbkCRZ3JW0gG07KVW1Z+bsYbue6w52z3be8ziddldg51zrtM/x9twCjwB9c4hGqEB6OGfPLNzebh0a6uWsdNpqhEJTjVFmbQR4XXDMjBHWjUQc/SZaCuGsTqXUKfYhnaqk6xLMWOAZlnS8VZZ1xdJ1i2ZSJGkpSrXaaOgNOnIWWAKmQtknTHc/393aq0xTxSk8Yt5xxrU/1rjdhxVc2YWVy2SC5WXxI2+8hR3D9g/uvRdYDv8tlnh/4a1vj73Bt1Mfe2yZFQn55T9/3TVeGvvz8WNlHi8ffoPVtT5/49uvTp78/qsT6yeOHl0/+vzBtJk2TbX44gmudyieKJ04+rw63ulvbwwMeVqvjj86fNHAoB8gPU5vZOim30nogYGhEa+31+71ejOdbnvY6fbnOmz2wUY9/X0j1ZChmzbhwAmTJEOOi8mlqydlHdwyWeombkp915rguUg6SBVqnOywLCklK6lYlqU02LM6lQPpbgl0q7jvduzZMwDnoke6ZKV68OQxiP2PLbv//6ULJTfswl744vDOF3wttYCTHUzfeuEtVs8sHxF2/B925N92+LHlw8ewU6f29+eeO/XZ76vGneKWZfk/YJ1O7OefT58+/Qv29dfsrj1w5T3Fd66867ZLv77y/jvvu/rB2y9+6OlHb3+/dcv19543u7Jy+uefv1v49eOffvzp1HPPHROL9b597NRJVvB64/uvsJMnOH8n19fXvl9f/2qt2VxbI46aW82ptebW1u6X4OKefBeUcnlnd3ePicJqZe/dd5tiPIFPrtIC1kW7U7SGPjmz/NjnR4584RqR3cfjv4zX2Tfw3vfXw/v2G19n0OImEIbhXvtDCz3vvbR/oCeDh6FQ2MPSQw8KwmAKXioeEjx4CIhYWtJDheA2W+wx0Of9nEi23fRdRx1dk/H53hlDMJ/59qEVSuQyhy2LnIBM09R1U8G87fush2gX0mNz3AIx/UfwzLevaqgpNkmZ+DhyJTn3BsGskjQZxoPRRDPQRV+f0LLzeP/7eLzXYYfDnMjXElcpT9AqTdbkTJTYxEyyqiWyLbvUsddtN+VODXOZAkyk/Sprzh3TYZ9u4rTx0X5/Ou37U44/iyYIUOJJ37wi2xN4TjUo+6zteEVgTq3WJntC+kQF9X0/AVOxDbKOPo/M/C0B21rwx5GTHYdwakNVD2b7pkydR/h2GMfxIJ5HZpKhfQonRTI7Q9N4YnZKoAayNQGrzpnqbC0mctoKbfqQx87ZdjOlqY985l2knhNFZiK2+KR1spPBblGmrlU8mHSqdqJ2PfofTzTzzOGIePxCPjsTGUeWsicr/b7ldUOogGfsTH8BbmRvWiuDmk0RrUNJmtYfgLHbnf0JUDGaYcqp1/155ADpgMjoaziHXVQD0Ckj4HrlVj6K/RqesQpiQICnp8kurit4dhrK0rR1dTX3SIcSpwaG4t0MFbU5LHNdYYIueV4FC5zNQ96bIYEqv4teL0/OojppKO2w5/VRM52lJU4dd8r9iDMHkawoPinLjIoZk/HTZCgDTRSAPpcucAp5oMmKxPFmz8phTwZogK5ib2IdhrXSpqoANE6bZs2OUjyzrs0g5hdBb6ldbqdSqL8XZj0bdp+Fvgoq1D1SqGI289O+76kFhq1NC9Ks76gzrGJADSeU61gFtshzr7iXRVEmijUV/rXF51mWLH7lsmKafYoCzZefzz/dugR6hKTB1MDJND/gRBGLfBSdM35WiPhFCHsiWTVpyhVv2m02JZtrY2U9T1ZUtnRDSplnarG1sQk8Jevvb2bphsK3Jt2BbTe8LT/E0pJbpD/d8R3Ci3fv0d3dzc3N7e2tvunWvcd8qHv98fs3Lp8/0Bf0k0LtkX4xURDGtI8JAwX9oersQ5OIwzhua2nMLNZZXVTUJCrC6I9qWEisJhW9COuFfAEDwyD6K1sJN+j1j6A2EIosvLKdeeVqxWhsVx45qMCggiIEKWnLeSuYBQXOhKDvc2dCX9i9qQM/99zv5fH53pVKOIY3/6EV7WAMVa1WscyX3pdIVQrX74STaOKW9Sf249aJdaIUud/v1YMTotgkoLWeByCvXrl6DSQJKfVB6gaFJm44C6xP36E/1Hhqoxhi9mlgcGCQaA6gu9KADg/Ssq5h4gmcdelUHmQLIV8IVbseR+Ido+zuixpglapm0aFyc00i/GKx2D+DmL/mEANqshaQan6pW7Rb38/0kSWAjBYwby14eRmuUzJCHvLa7XaW5SR/Ou1kuQTn5uwO1p2YnJzMZidXlkmK0lI2Gpub5zbP1qPiZqFWWLe8ZW+lbc+arR07vM5QwpNIJHoD2UTCQ58Mh5ED7ElSdQ0CBLWnowUol8sVSfmSesryGCv9/IoA+Dr8aXgYrcybF89eoGfUenMKXjz5BB0kRisDKj5tgENbGs43L9DA/YvPJ8Qzmaz7vzqRI4o+rJWSkhmMXCMASgIO4FSNnqIoIouOWO0SkVFMimAp8Lyo0U3DaoZ/hXQtMrXkPLgFiKCaqVk/gRIg512GO5b8k4dXYOl1kuwca3cxbraVdbnMjFWvLLuxaFmowaf4DGt8itG41ViuKKd8Ze/Cly3T6qIp/NqllSWrLhzo6NjqKzNNp5R92xnOzRh0G3YZhJ1Sw4wmq4lxta5u53nOxbJsXOAltnWPnGnviPcU83++/Cx23h8tjHSOQ6UvHyJpux1PbT90VO7tDciYo4UpBZWK8XwgII5VR0e6xXA223/7SDecIbgqNf3AIBYDWN0dpKUo04+81K+3/UnNOZeEUik6t4g4EII0HGRlFEGSiHcFgsEAfmeJIlWIj6j5xRS8soAK0bIm2U+S1VWbX9Ph3fDw7va2rTi6x2F3eA/t9jrtDnyPPQ6HczeOOR2sSd/YaDVbmKbphhBjtbA6k2Q1H7UZ169vWY66Oq2Ofts6m6RsPLS5rd3iUxDGxrnWGOaUyUihGDl7t/9VeMrCw4bQl/bLKdjKpFb5t2EqPRQZyowV/0yMPD62ydZVyOdHRwu58Y8xv39o4l013XbY6ZQQGamgNCVxofj1zlzk7utcqTgW4+Ji9CIVM08luh5298iCLEDhLDKlAfHI9aju/vnTj35RpShAJpMAA5gPqdwRlTM0A4uRwBZ5RIpMmQREaDshmQ/2BgOBgNqayjwOEnKgS0ExvJ0syTJElnAYueGd3zl/Jz2z34sbIqxQKUKsywxujBqcJpPVZjDY9A0NvsbpobggcKd8DYqiNM1snslYplf2TvtPsw622y6d3HLukn6Nxexm9Y36mTrFc6NcxtpmUHiU73T8jj7I3Yr1wZgz9DHSh+aLs+5wyHcfC1zr0Ph4bLXeajVLufxEcSSVKQ5+6hmDd4FzMSaJD8ZyuUjQZEqIsgCuIbeL4zi3IEgcF+8uFDApTskP8hM/C4Vi7uzN2M0zI4hPEnj2J6HoHcz1VbAQoi0lplQBJV8TrnbNSivQNlYkP/7oNUq3Yy2gCfD7eYhelkiC+hB0QYhznBSX4kFRDARxhbPuEGM2m5sMDGO2WFiHw+V2OVhmut7jMSgzlCXluS3btlWMTGOzjvFV5jrmdGzftGadBrWGdvm8b5+fL26/0G726BVGZ5jZZPDpTSGcg/Lq1Zm/ZZ1tTFtVHMYRZmuqdZnttJo5tW5Gt6rxrU7TZQid4hwlahbpMGhQpsSosU5rLol0ikERYr91ZrSsdKUBCzHB1BrQ9oOLJXbwwQS8Np29tgWrMhY0aJqQ+Tu34OuT9XJ6y0h49vxf7/mfKYVSKW5i0NA/GFBigdSj90lSs9NoPNDW8aqZp0y+gpKRZ+anJ8SknlIuL37y4/KIhzOmc3RultNBvVuvd0u45jmvHyEXs+nOuU4/PCePMrHmS3u6kmJrG+vJQRRVRQ+F5tAp2isCtFZoJovuAK0VxNrNgzzRY4emYegaQIpeb2d7u7eTC9/uRZqqQIMCrEEQrcLsuBiIQu2TiVpE6BCwO2zNzU6nFCL82Pg3drulkIufwL+3ydSMQJudhnDYNRA8bDEaazRbNrWurr5uWb3bYD78+sVOezz0esJ8WcdVW0U7+YqaGwWZdTse+6MUO71tYQizqKl2NrSl7KsLW3C1u0IDoVAiNRh3S4n2zHk5XxybKRYUOV/O5vIeXyZTOFcsY+ODqVHoI06VQeHTL5aUBIMLQ3HHaM+RcnZtJQuL2Wh7yDjgSWfXll/JraxduHDh7EouPZGWPf2j8fhAIDDkZyM5438jVfPzNKLgbn7meDfqGtmglYe+b3x0amR4YBiI215BJCROT3uDUAAqwnS5EJ8KujesQ3iAAVfcEVfhqBVoqbWFQhKkckdYi5O4YIRavcFp0Ot0eqNBo9HqnZBLfHbrtZZmd7XGqa+2aBc2VdUsLBBdLEZrY6Op9vRVD6es7F3afzgubboBje68Yucjr27attXe/MCh5hab07J69ZZLdpkNFq3WeMkmS11dnVZfYzHEJ0ZjhWJ/hAFH8gx7qpRR5GhejgyaDVPDbGRUlKnRgFJQiktffpJlKlKB4mJ60trQKLmGzc4hJePz+5M50YRM8tBrLhiR07TEkkTsoy+uZPtIGaPLuWi+imYeTT0aevOn5hHpcAWwOKXGMyAu8AhQpbgS3dAilgyXoFNoGZbRqKrOoHe6sz0IfeuUDkExfXL8h384KIXQcSjEnbnw3Nw0CLslVygcNlksBoPe7dbp91hqNDp9TeuCRqNzS3GpuVlvNEkmo62jd9stV9ab76Zhd+MOns+JNvJ+/lPpp1pOd5gbtrYZLM812XSrC1qzedOmQ9IUh0g0vVYfj8VcoVGlUAhMRAKxVGd05DjTZG2jipKJDAbd4RTbSu9sIVGbCkQyS19++fGZJTkw0Py7klbY8UQreqx9aCrl8pXZfyszgNKWiJUXcyO+YjY/6JBqp/rZV93Zk2NmrZuHk1X8pvP09lT5CbRXRIj5w2Y7GBDgq7jhqqA9yFLY/tC6Tl0qR/E4f9AgbIHQEMEqZLPFh1yYthQO8vOpA9ApcOp1yBLfpINCdxi+Q2IZlsL4AD7VtGq0Wp22psYk6d1Oo9YQJwgetOzp3XwrbP4Xtw/9sVBz0+qNN7TGp35vfMpmamtLHUy02V/9/femSLm8hAkPJkoRRYlEROo2FcPYCTQDiRjDc3I+SnxfzGYy6e5T0e++/nKpGGUvlUcZdKUIxcFwS6pNGprsixRkvy8ZlYlosVhgctgluYhzSu5zXMJwVzA4Ghgh563C0MEYZIGKCtv/Aa93ndCNdxukig0pLNW/JNzpWKdX6DMIpSq1cSku5BsiOwdEGczb4HaHuAWDeie27jY4nSYyd6fTYNDpqqsPHz6s1xv0NUCjqdLqNRqjqaW+xbH1KVKKITfp0F03dDDJ+b/ZzZvv3NuyesnOa1cNWq35UP0BvFAc87C1zQWHEr9j3CVRkcRKpVRiSpzOECulUoEJX1FOvnIky2inEjvgSJQyjJTJ2d++OkOlVpSVYjZbzsuB0UKUHf/dns5gZ3fP2MSgJFFtDKHb6MhERMkoikxvNa0Ui6MTbH/urhIkdao8CWn+jQHAPQHWAiqRcARQ5DpU63URxhGeukateE8BpMlFUlMMN6wGUTWuAhAt9Ych1SBBfTjsPgyfRHin2Ww26AWqNRrxeY0OSzdbtmj0eqdkr2/ceQ0jh3/jun0qnejTYN634+6bbzDoqo1Wq82Bj9C7m+2JuO2pUqaUKRSy7N3zKZlSqeDzDfd4mI2dlDOyTNaZLhBv8kr65ItRefHM4plveEKTTEZJ09luNfvT2VnP4CBjux6fUu759ezZNXrPXfmiMj4yRIoT8M/wnen+0YFJtN39DjMxVcOiKhcRexpg9mhNdYfcq2B9yV0+FOzjKr2CFy+AT4Az5ALgNLwBwZUkLkGVwWAw7Cbg4EO8RJywyxsMI0eM3qDVIUx3eC6o1xkEdK2trTXOuDB75Go2OVqeOdBi3bPLaWrcvfnYluuueWzHXSqN+2++/SLGZh67487vH77/sssv+2NBe2m8zR0fiAQOSMNKNOwNTMx9+Et8aCqjrCy/fDKXzhZKA52BiNzvWypHj/b4CplMKlMuFHyjhezij0vlQimmfPJZNt/fR4ma7vfll+lDiMpUDqSTOZBnAz4PmpPpfDY6kluhtPKxE4UZKrmYi6ajw53oEwgnCgSP87wAnEHjBjBryEOgoHIDQKPqU0OAtTeI1FQI0YGgymcQFyAgbsCpU6TtQQh2t7ZW6w4bmk1GJwKtdocBztOg0+otfI8bVi2SRBIlkQ5oFrZcdkndoV237rzuGnj8Y19ljpMheC77m957eDsnW9Q3Gu32A7FMUR5pZ8tNpBgYmIwSqXGWyuAk0XgwMtL94uxyTlYiMiSKNgvulIouhf1HYokE72KL3y6urTAatbw2u/L57MtdUTmafGV57Uw5ElEC/cm0zz+SzMujkXKWoTTPyDSOzt853tPuZTB0uH26SjAnntjBYyWCs7eEAAVQI2oFagDn6z/zJJeI2dys2DsQrIlIDgS9UAZUZfIOojaodgLe8AlXTL6ZzBOSjQR3QhRJjsmglYamRkXvhOEZpo1FQeCQ9E6b+YVDdS/c9uw1116hWbhWWPpdd9910Y4tD+xt6qjffueeOutNz7Q5jGabLSS5panXSoXRgaB3pCs9OupTsPlMLFAoEJXTfuU8rrPPx2NADjdgdC4xNZg62Diaz9IQ+WptWS4o/Rnqy3y+q6fPoyhpz/jYWN/IcKBEIJM5CuXEkbUzRSXm6+9sH/cQ3z2UXnQ74G+6Ss02AXsaRVoP37y8AmoQ8v4TFdcp+h8bYX0dlQjk4hXCwnkL2TAJhMVLKkySUwDNSRAowNqprkhD3W5sHoKvX9jE/bhER2SP0WjB3IljRsvC3ft27rH3vn1bzWvs91YfuIMbN2H4mPwVex8+ZjXuaqq3mqgcTMY6a29jY31D6lFbyMU/TWFi2J+Wlax/5JTYz983PFEQuVJElqnZUW/aQ0z58dNFH7TkTq59Qfm4yOwJSEfoSA4OOWod8cH+nmind44KsH98bP6EHOX4IBKqzuQyswD5I0dyJ+dJ4uerhttVVUKh+FLxjkANSMJpEvlZEHFE0NkAbhA/SE6JiwDIe3oOTAvMYdcuNZIFBZsoV+gSSHhSseYFd25BpV5LsYnHxPIFoWEMgFxUr6G10UrwN+4ymc3UpGD1moXGl9T/r+/eyxd2PHZzY8cV9Xu//7503+VX3EWA36nf/NINeyymFofk1BmsDZRiHOtyZW2cWOkrYvIKTS8m4k6Skgc8/YO/JyZIv/PQWQKpAqFIvAn0pz/97dtsnnYRzT0mIZEqAUfxBQpyz/G3TippHCWB/5XlrOzrj/ZFIvyuitzXXyh42FAqzl8S3SKRaFauXkwdMtX4cwK1egVgTuVHpPWuSs7JFQkCNRJx5cuGgUOdKIvImNQyUw3yIsqH14GTkBCnqJEsmtaLdUQd4TBVRnVuXKi2xiIqebvJqNXCOaHaZrfuamw5aK+vb9hz83Vo88FLjb1P3rGb/97otTvffvvYk088dO9zu0wG28XVrUZzy1aHyWS2dthvgqtMhuZroZCJ9Bx98Z1f2UN8AbChlee93TkCu1zMZMh4soVMWiksfroUWfk8t7y4uMx35Y70yT9cEFgRPnDm7IULn19gfIoWRSg85QsMTEXIY9N+l0irXRPtbMYjXxoGKp9IEVDHiK/rUQo/cGqDVkGa6y9A40bahHkLbLBLCgrW09BKRirM3aZWmpj/erHejG1i+IIwuksms9Ogo34nxsOe+KTZ2sCRcpwcd7Cjxd7YaG/p3W1afe3O+25cT5mw+Uuf77iNVcf3t7y/+blHOxrsjfWNdQZbvW3rB8/VN8Sl2oTDloqJprbwfBFfOkuJTddjYrKPIzYm1TaewxRPBDB9RpBxs4tr4iHH2vKy7Jv0iSNN+rrf/fXXmfm8jyN4KKRw6T5PXsa3Hj1O2j6b9/ScSC5H/RPpQUbBPeiTKqjCKFinUV1BL1pVxVpxB3BLHen6G5XohCNQBQtr8MWLTwSZQLVzSRIkkoziNYXDdOsPA/1hPeZMBCKYGykodRqNpkaLUKEZCMLxnWazxcLnBh03HeZNV9ccfF9a3bz99oueve2eO5697oXvt+/YU7OwZY/N1NjR23ts97bepqccBlN9h54UFD8aOZcZTZF+ihZSER2eU/LFc3jMckFWCnIfe//oEQUihWKORzUKacBk19oPPyyLvSHFIt6VNhzAt+ajSabKZZG753kOxA/D3CfSTPJGk91duR668J3DXi8FdZUoKyexZZXEDX8JNpJ6sF4k/aVLbwUqt9ytQCUUVBoeFUKxe5tImTb+Jq5VeFO3mjtBtVNUTQbkCaUo1qKHWyN6ra7WUXACrbHOYDJpLU4ch6nO/OhrTfUNHccu3//Yztsf3HfjPkaPbjPiU6+6avehzZx612A3me1NVqO9FGvb+1RHS701lomlhpQflwoZpZCJFX4ukyedyaajSQZK6AdlZSUt3OsSi1FBvLy8/MqJN9lZzTZKXybdlcwzO85I8iSteHZTJ/snccOk7ic84z35NOKcF4eB0P+YV3Gim/iuoh1agegRC9APUcncoBYI5lSj5w8XgeCGUgGqFGwCPKYI8hi6KIhgUaVP8Eh4DxPJKZZCYbIm5Mm7iv+kzIQ/XQ3XVhW84T6VvK7ZLrrP2zbvPr1773O7tn9w1TV/l5qPP71bOi1O/jx9y/bt7wv3UN9Rb20qEWZiiafa2t4vKcpowuFIxArlIs5UDDCmsH325CgBJcO7qUQmEiFnSlF/losRpUitSW/Z0/Py0f50NtcN7zy+ibJ77R0xgdrd5cnic8lCx17GpYL5mZe7p9l5CZ1E5ioUqa5AJxgWmOQlAMUqk//AEIDZfxWdLOOVrF4lnM4SfhOEgbjLjwi5w142XI0Pu+JqjekWINKIHIn3glqNDtM2WakXsXaz2YidW7RmxzOih99sdzRrr15dvfaxi3ZctI/G5/oZIi/0Hnuax5sPN1x714OXWvfu3rut4yDPTxz1dFxraw/W4mzwoplz59EerZDM0lIkQJ+S8lMpRHx9Jz5iv2GXnFcHiv0T+EaoiuaWLzAZ9O78PEddvHiSrKmoDCXEAU6BtH+8czLt72ecoS8d7etmhKWrh2mbfv8IwyAzx4laQp9j03CqztuwENXl//FvQlX8pU0uQHWXcyqC+FxuCIT5jfgAx8kVFiWXKOFZ6N3c1avSRLWsmolAkghdhCjaGqJ5RxrFR5T2zTWXWO21oYv/2Lf/ocv/3V+iYfdw753fX9XkNKyuHty6bdvWgw7Cme3K07c0NfIQikTjQCISOx/gGIbh2LlMhCPCBgYjPA/3k+8cOU6YP3X0yOwK41BylAzJU5ZHs4vZE6eYlhM666LfGY1OBEZId8S27DdnZ9+cOQV5YhbhOISJPaF840e/snueyAWf68rEIbJct/5OkUsJisUdQed6lblBqEtkrSAoIAS64SEJ8LA4JypRFysJEIMAbLFQGRfq5JuQp0ii1OYynhTqKFExfzwodm802ewONZlHrFaTvZak2tpiveLvGRlU+uDt++94+qotO/bffs/uY689euumOrPapW50XFkqnSf0FAIJNimPdTF22+enkUTepIiOG54zI9J3zxjt3wpmxjxH3p359Y2Vk7Q1ZmcZqjqZXSync7muvm72N6b7xCPb9Al/8gh0noKeTnbYz8y/fFx05NUd9Qj0FPm8atUiEo3QnwcsUWnFC6iBiBRVrTxdQGW00kqGXvCXWiFSJZcrCKtQCY1vFEi8miGOF45REnXmerEfAi6xOZuen/v613GeOr2Wbl3dwuql9Evu23XIatSY6w+2tBqsh169/W9t7nz2wd5XL3vw7i2414Ztm9/nGfRNNzltVzYbTB1N9S21qdL2VC2Nw+Ccq610/jzlOVT2e8iM0n3Mlrwyy0zs0ZfPnu3y+AqF8o/nIpP+VzgMJVccZ4pbHNDxjjj8IJnPln39I+TjqBHqZjDmbqaRYZL5Qba7q6OG6BPgPwUqNVIlbeKianQD/JoqoYDw8o863sWNyhrEN3iBWbFch9q3s5kkwAK9mQjVfBW8wmqzUC2mzdIpOeFQTzVK43NhddVos9vNRt3CpQvGS1c1NcBoJ7hzavK/x4tbtvfWH9u7rWEPf6darSPa2giNjgPiFMyDDg7Z5pF14efzIq+PjQ6yjyCiRAZ9vmgnU9qzK1n/OBUQbI1j4d3jyaOzucUcEykYP3Vn7ijTU8wdJ3lE2cPkWb+ni9PCOJeG82iY8DjRQ51eAVuXwfyf0/+roOsYt+gAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"UV Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"light_mode\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"UV Index\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":2,\"color\":\"#7CC322\"},{\"from\":2,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":7,\"color\":\"#F77410\"},{\"from\":7,\"to\":10,\"color\":\"#F04022\"},{\"from\":10,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.ceil(Math.random() * 4 - 2);\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 14) {\\n\\tvalue = 14;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = Math.ceil(prevValue + Math.random() * 2 - 1);\\nif (value < -2) {\\n\\tvalue = -2;\\n} else if (value > 2) {\\n\\tvalue = 2;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/uv_index_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"UV Index\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"light_mode\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/value_and_chart_card.json b/application/src/main/data/json/system/widget_types/value_and_chart_card.json index 93300135bd..4b13f20820 100644 --- a/application/src/main/data/json/system/widget_types/value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/value_and_chart_card.json @@ -2,7 +2,7 @@ "fqn": "cards.aggregated_value_card", "name": "Value and chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.aggregated_value_card.png", "description": "Displays a single entity telemetry as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/value_card.json b/application/src/main/data/json/system/widget_types/value_card.json index 9abfb9a2f8..f158b100be 100644 --- a/application/src/main/data/json/system/widget_types/value_card.json +++ b/application/src/main/data/json/system/widget_types/value_card.json @@ -2,7 +2,7 @@ "fqn": "cards.value_card", "name": "Value card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/cards.value_card.png", "description": "Displays a single entity attribute or the latest telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vertical_bar.json b/application/src/main/data/json/system/widget_types/vertical_bar.json index 31d3b3fdd9..a73c574291 100644 --- a/application/src/main/data/json/system/widget_types/vertical_bar.json +++ b/application/src/main/data/json/system/widget_types/vertical_bar.json @@ -2,7 +2,7 @@ "fqn": "digital_gauges.vertical_bar_justgage", "name": "Vertical bar", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABQVBMVEVqampra2tsbGxtbW1ubm5vb29wcHBycnJzc3N0dHR2dnZ3d3d5eXl6enp7e3t8fHx+fn6BgYGDg4OFhYWHh4eIiIiKioqNjY2Ojo6RkZGTk5OWlpaZmZmbm5uenp6fn5+goKCkpKSlpaWmpqanp6eoqKiqqqqrq6usrKytra2xsbGysrK0tLS1tbW2tra4uLi6urq7u7u9vb2+vr7AwMDBwcHExMTFxcXHx8fIyMjJycnKysrMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXX19fY2NjZ2dnb29vc3Nzd3d3f39/g4ODh4eHj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT1fAD19fX29vb39/f6+vr7+/v8/Pz9/f3+/v7///8uFkw3AAAAAWJLR0RqJWKVDgAAAkBJREFUeNrt3ElTE3EQhvGebKMIiUExGkSNuCEiKAqKRKJsIuISN0giwQFC5v3+H8BD5uDBE2WV9tTTp1x/lTyd/6lNKRkDAgQIECBA/jtIHEXx4FOv3fMMWTSLJOn9eN4+OoZ0zg4gjZxduvXDMWQim7FIaoe5hutGXtn90CJp2mZcx340cv44tEgas9kLufKyW8ht21BokVSwTPWKBdtOIdvBDSm0SH2zFWnaxn1CeqPB03o9b88+9C2IpV0r+YTsWDJ3NWQdqWNDPiGH9Xp98I3ous1Ji1b1/NYKLZI+FzKTd3LBG/cQbZXNii9T8frttGKe8UCAAJGaS5J6j2/O96TuzOTz2CfkxZhVJF0tTY1MqF++eK/w0Cdkar5akdrBa60EnTXb04NzXn9a1yrSln1V094+yUvLduQYsmp7+m5rs2ekhrUdQ9ZtV99sYy6UGrbvGPLJdvTOmkvBsRay8T+CtE45v0NOirVurdRvZR/tX67KMUSbwza8KS2ENvrFKySZA0lSfMgTBUjqIH+pESBAiB0IjQBhawEBQuxAaAQIWwsIEGIHQiNA2FpAgBA7EBoBwtYCAoTYgdAIELYWECDEDoRGgKQK8vOUAwQIsQOhESBsLWIHQuxAaAQIW4vYgRA7EBoBwtYidiDEDoRGgLC1iB0IsQOhESBsrXTHnlws9g8ZXCz230hysdg/JLlY7B+SXCz230hysdg/JLlY7B9yUqx1a8V+CtZvcrE4Df/sBzxRgAABAgQIECB/mF+DKtRemhqPQgAAAABJRU5ErkJggg==", + "image": "/api/images/system/digital_gauges.vertical_bar_justgage.png", "description": "Preconfigured gauge to display any value reading as a bar. Allows to configure value range, gradient colors, and other settings.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json b/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json index 39abea9b47..e5d1197c2d 100644 --- a/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json +++ b/application/src/main/data/json/system/widget_types/vertical_capsule_tank.json @@ -2,7 +2,7 @@ "fqn": "vertical_capsule_tank", "name": "Vertical capsule tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vertical_capsule_tank.png", "description": "Widget indicates the level of liquid in Vertical capsule tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json b/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json index a2bcad3b23..8f0deb498e 100644 --- a/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json +++ b/application/src/main/data/json/system/widget_types/vertical_cylinder_tank.json @@ -2,7 +2,7 @@ "fqn": "vertical_cylinder_tank", "name": "Vertical cylinder tank", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAABU1BMVEXg4ODf39/g4ODg4OAAAAD///96i//g4OCHlv/i5v/e4v/j5O0kJ3AhISGRk7fg5P+trsmQkJA/QoLIydtaXZN2eKby8veqtP+Lmv+foMA8PDzx8fHj4+NbXZSKmf/IyMieqv+srKz6+v0dHSF0dHRYWFjw8PXV1uRNT4sxNHloap2st/+Ehq6Tof+Wo//39/oyNHmCkv81Nz1/j/8uLi7j5v/M0v/t7fPV1dXq6vJOT1hISEq0vv+YmqylsP+Ehq+7vNKCgoLo6v/KzeOdnZ1/gY/w8v/v8f+bqP/09PjV2fFmaHTS1//Dyv+8xf+Onf/Hy+O8wNW6u9Kenp5mZmZPUFnEzP+6uro+QYGjr/+wssdydIJaXGa8w//d3unFxtmjpbqrq6tiZJhWWJCPj48pKy7V2//T1vHX2OWkpcS5ubmLjZ4yNXkxNHhaWmaXmLtJTIgyHu8DAAAABXRSTlPvIL+vAC9A4IoAAAa4SURBVHja7NbNaoUwEIZhT9uPrmaR7WQgBJI7yCKQleAdKLgudNX7v4COtSD9o8sznpMXNYlufFDB4enyMDyfvcfL03AZPE6fV8bjDThUoq8VbqLhViDPHWKsDrFWh1jrbiFBjuGXJOAK/YS85H1oFd8a2z6SO4ZfcoQrpZCf91GT4FtxPiNEogfCFOr6MfVREFYAb5McED09iR6qwuO+MgeJFPBKzIURdCoUkRjI1MoBES6ZJuSMba+lcKkWIbwA7Qsk0Aw5IKkIxuJfyW/XuW0egxChGchfII48cEAaO7eQeIov2zE719gkJP4DYU6aR05LhlDWxWgQ4kv6hKyoOyRupgOyFHXpNpWi5pJ1IYYgWav7x54WYvjCI+8Qz5zaAamFXW6AJ1LOTMvIdp5IcFtSnQAxucyApLS6ircZkDGFKezi8LF0SsAUoa1jmoHgcJV2yJ8p5DTdB6RWnKa7/Y03W4dYq0Os1SHW6hBrdYi1OsRaHfLOjh2rOA4DARiuphoxiJElUKHGRSQLQ9yFrew27VWpEtg0u7DH3ftXN3aSu3CQYned2AH/nYSL+eRKmlv3hWDna5uLPlv7LsJVzwPBumqSbb0eIsqhYYtw6XkgSVn8n6YYLj0PhNugqiJb6qttTlUT8vNBUFfkIBpNZCUi/QPB1R86wqlngKC3cvptUinXpM9RnVkFCg3nATN3yIDI3oDkjCebw5C18k8cSMbnHoMzhjhTcxMEcarsW/9tWII0YIJi27k5QpwvKm7NqlxvnVttXqTNZrO6Spb9ruy5rbBMm1ShcV4QpOLn8ddbP/+mH3Ndwq1KkW7d6cu396NKHucCcaJ49XsRyPyfqFyLZ+9fVdI4A4gp1NHjdg1frNyiWAo9LcRR9ZteSvhm5f59xxongwgjHGCkDmFHq2kgh10wMGIYdnoKCDUdjJxmejyEGGH0kP3DITsDd8h8PByiEO5QVI+HENwhmgCiIoxeVBNASHkYOV/RBBCMnBBGzBQccQoIAHHRjcdoyMFEEEDNbM0YN7IqCQMmg0imZVWQcV9HnG5kIE0KkVDbpFKmLrpPEaImy4qtR1nNAXI+2DY0/UNWTdqYiHAjRNNpqm1i1STrzWCfEeRyyMaTDYEbpVTFzMW/kiwr2W445f5JJZ4Js4RchxiNpM8ZKSJeT/8kkBstkAWyQBbIAlkgf9ipexZJYTCA410wNk95Ux1hUg4jTAYtHJNiRFl8YbW44uYFtlmuWNjvX54xWHgJM3IsJC75gwkEBH+ERw9ZFWRbQtO09ywTgkRjQaB2IUSWtW0TQrl1GVKGyX0XvQaLeiXinsDZNcg5ycgk2Px43u9gSmTJ2RFImYjZLTR4Qc3sdoTE2IVs2yiYR7AsxrP0g39fi9rSIqTMAi2CtUwiEmhlpS1IYhpsMr+B2GRREL3WDqQJTBFdoKcgeokViHgAiZ9wYjOEWIHsH0BkcV7JrepzA8kM2VuBbJ5AOP01rAWltJaiJZCNFchPdHgEyZmEcHrNC1osghyQLQhSFDOkZmyA3GiOMTtp/19iYCBrENnxYIZcKJeQ9B3LRRHUtJgghyNCViHKMmA0CKvxCGESQtUd8RPmc4hCSIULkEkzcggAyBlnuQa5VWmupgWAjITJ4BJk4kQg6+iN83fGq5QBQEpB1t8+0gpU0SRwFILQHmScqrqaVgCnE6iKouYwtkfOQ8IhkA+wVIqucKE1jHXXa//ZQTi0EoiKpcPySSllnTp464qP9E+4OsilH1f+pr5dWfpwfRBzHuIh/wfZfBcI2i1x7JD7EHQMnnZEa4AsyUM8xEM8xEM8xENcg7x8PeTFAuRve+eu2jAMhlHnIgJSCEKWjT04QxZfA+2iydDgRZ40ZDD4BfL+j1BZFTRZ2tKY+LfReQDBQet3pJzg0T0iOcE2PqmQjEa+D4mq4OUiZIhWRDSiBkaoYuSlItaEUYRwOYrLe601fJaQSWIxykyq1nR99JRE22FTlr7Fk+V7NLGVqryp/vwPh3PZNbaPTS6TBpVEu2SBDbsb3NV9e/yDwLEta3GTXyeYVDlE0yeuvq7Uc159r6pPEmMhlFLlA7VSnRC4kSdkIH5c8aF890MAiaslvR6KbJ9nfFiUp+THS0wvVHfuLN+z4oMSUPW0xTyNECQZ08txlnFeBBr75oOm4Nysyu2m3CjA69kfCYlZk8eHO2JKr356Nyqfg8hvOBEnMhecCDScCDScCDScCDScCDScCDScCDScCDScCDScCDQWJOKhRbDz1sv4snmznE+0t6vNbu5469X2E/jIZcQWRBJVAAAAAElFTkSuQmCC", + "image": "/api/images/system/vertical_cylinder_tank.png", "description": "Widget indicates the level of liquid in Vertical cylinder tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vertical_oval_tank.json b/application/src/main/data/json/system/widget_types/vertical_oval_tank.json index 55da0eb66e..3fbc9620be 100644 --- a/application/src/main/data/json/system/widget_types/vertical_oval_tank.json +++ b/application/src/main/data/json/system/widget_types/vertical_oval_tank.json @@ -2,7 +2,7 @@ "fqn": "vertical_oval_tank", "name": "Vertical oval tank", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vertical_oval_tank.png", "description": "Widget indicates the level of liquid in Vertical oval tank.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vibration_card.json b/application/src/main/data/json/system/widget_types/vibration_card.json index 9b3149c406..eb76e31ff9 100644 --- a/application/src/main/data/json/system/widget_types/vibration_card.json +++ b/application/src/main/data/json/system/widget_types/vibration_card.json @@ -2,7 +2,7 @@ "fqn": "vibration_card", "name": "Vibration card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vibration_card.png", "description": "Displays the latest vibration telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/vibration_card_with_background.json b/application/src/main/data/json/system/widget_types/vibration_card_with_background.json index fb31375edb..9911ed87d3 100644 --- a/application/src/main/data/json/system/widget_types/vibration_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/vibration_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "vibration_card_with_background", "name": "Vibration card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vibration_card_with_background.png", "description": "Displays the latest vibration telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"vibration\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s²\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"vibration\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/vibration_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s²\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/vibration_chart_card.json b/application/src/main/data/json/system/widget_types/vibration_chart_card.json index 9fd9bf282b..d3b8fe5671 100644 --- a/application/src/main/data/json/system/widget_types/vibration_chart_card.json +++ b/application/src/main/data/json/system/widget_types/vibration_chart_card.json @@ -2,7 +2,7 @@ "fqn": "vibration_chart_card", "name": "Vibration chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vibration_chart_card.png", "description": "Displays a vibration data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json index 1d69ed9e86..791788a395 100644 --- a/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "vibration_chart_card_with_background", "name": "Vibration chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/vibration_chart_card_with_background.png", "description": "Displays a vibration data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 200 - 100;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"let factor = 1000;\\nif (prevValue < 1) {\\n factor = 1;\\n} else if (prevValue < 10) {\\n factor = 10;\\n} else if (prevValue < 100) {\\n factor = 100;\\n}\\nlet value = prevValue + Math.random() * factor;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 200 - 100;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/vibration_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/visibility_card.json b/application/src/main/data/json/system/widget_types/visibility_card.json index 83fe6c5e9d..fc8b2fe8ba 100644 --- a/application/src/main/data/json/system/widget_types/visibility_card.json +++ b/application/src/main/data/json/system/widget_types/visibility_card.json @@ -2,7 +2,7 @@ "fqn": "visibility_card", "name": "Visibility card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/visibility_card.png", "description": "Displays the latest visibility telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/visibility_card_with_background.json b/application/src/main/data/json/system/widget_types/visibility_card_with_background.json index 0a30559124..59f27f3655 100644 --- a/application/src/main/data/json/system/widget_types/visibility_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/visibility_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "visibility_card_with_background", "name": "Visibility card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/visibility_card_with_background.png", "description": "Displays the latest visibility telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"km\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/visibility_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air quality card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"km\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/visibility_chart_card.json b/application/src/main/data/json/system/widget_types/visibility_chart_card.json index 00d4626132..35db8160c9 100644 --- a/application/src/main/data/json/system/widget_types/visibility_chart_card.json +++ b/application/src/main/data/json/system/widget_types/visibility_chart_card.json @@ -2,7 +2,7 @@ "fqn": "visibility_chart_card", "name": "Visibility chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/visibility_chart_card.png", "description": "Displays a visibility data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json index d36cdcebdb..64b86e5806 100644 --- a/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "visibility_chart_card_with_background", "name": "Visibility chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/visibility_chart_card_with_background.png", "description": "Displays a visibility data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -4) {\\n\\tvalue = -4;\\n} else if (value > 4) {\\n\\tvalue = 4;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -4) {\\n\\tvalue = -4;\\n} else if (value > 4) {\\n\\tvalue = 4;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/visibility_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card.json b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card.json index 4a6fec9e2b..a61b90e96f 100644 --- a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card.json +++ b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card.json @@ -2,7 +2,7 @@ "fqn": "volatile_organic_compounds_card", "name": "Volatile organic compounds card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/volatile_organic_compounds_card.png", "description": "Displays the latest volatile organic compounds (VOCs) telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card_with_background.json b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card_with_background.json index 3ffeb76022..dd285ff4b2 100644 --- a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "volatile_organic_compounds_card_with_background", "name": "Volatile organic compounds card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC5VBMVEW1x9IAAAC/0927ztqxw8+svsq90dyvwc27z9qvwM3s8fTv8/bt8vTu8/Xr8PPeI0Pw9Pfu8vXr8PLu8vOxw8+wws6+0t2tv8vv9Pe90dyuwczv8/Wvwc3x9ve+0tzy9vnw9vi6ztisvsrs8PKyxNC80Nu7z9m90dq70Nq3y9W1yNOzxdG0xtKuwsyswMq5zda2ydSvw83r7/GwxM2xxc64zNWzx9Hc5uy0yNKyxtC2ytO+093W4OXU3eTgPVnz+Pm1ydPY4ui+0tvV3uXmipzkcYbc5+3q7u/n6+3W4OadoKLfME7w8/TiV3C/097X4efr193u8fLb5uvqvsi2ytWsv8m0uLrno7H0+fra5erZ5OnU3+Tz9/jy9fbc4OLs2d/T19m/w8Xr7/Dt5urE2OKSlZfB1uDlfZHa8vrp7e7G2uW4zNfovceorK4fHyDh5ujW2tzKz9HFycvhSmT+///w8vKjpqjhVm9SU1Xrv8nopbLjY3rr5OirvcrA1N6usrT1+vvg5Obt7/Hml6bfPVnx8/XP1dfmo7AsLC3N5O2Ym53p/P3Z8PbJ3ujz9ffR6PLh5efqytOprK6foqQ4OTrd9/3L4evI1ty4yNGpucG5vr/nsLy3q6Hl+vzs9/rV7vbQ5u738ee4y9O5vL7psr3omKdsbW7s/v7l8fXU7fTg6/DH3OetvMSks7qZpqzf9Pjp7O3t2uC8zNSzxMuPhHzj9/vi7vLT6fDO3uTK2uLszNOwwcjQyL+ot77opbOsn5dFRkjp9Pfd6e7S4ejGz9Kdq7KrsLHAt6+Voqmek4uXjYaDe3PjWHBgYGA5OTrd5+7t5tzd29nZ2NahrrXJvbTFtau+s6u4sKeLmJ6vpp2mmJB4e3x6cGlgWFM4OTv3/v7x/f38/Pj69+/Y5+3i2M7Hysu6v8KPnqSGiIk5OTvy+PnZ3+LV3eDK0tW9yM23w8m9vLmmpqWFh4psZF5TTUdFRkfE0doRS6F8AAAACnRSTlMgAO/v7++/v7Cv98z08gAAJGhJREFUeNqslj9rFGEQxldQxCss5F4Wlq02Vp57EEl5VqmustrKT2AhWBx2Af0KNrG4xsbKMo0QuE6JQdBgIglJYT6AKIq1z8wzc3MvonKez747f3YJzO9m5i7FheLypWarkVM2ZdmI6EtYMfq8KquqKiGxQ1iItlYDy8wcHsgpa1HinXin9Qfv3j07/3S++4pPqH6q6fupD1vDw8Ga66skDl3HJboCjOJS0zWhErJAw0pq10MQrx+OQY2jhlYRxIhvkSYNDQFCtD2ZPNv9OJ0ev3mYQrXWLxwSpCAQA0o4KZvZ9UQOCaH+xaK4siW92FKLq8MNaZJJGPDMMczLh86GqKWiB2H9htpbAJnuf3v+5vjkhRTrh2LlFsglh4YiQoJheF3M5WKrUQiMlotjVXGyWPkQGUPvDk/tJylKSpKxDRrBw8RRlI3JZPJu7+33s52joyeL7bCCvRlkoJwppikyhNKSRYSOO+HtII6rIoHNFKliIeJ4C4yprX2qEGiFNyeTTx/2z76fnb6Zfa2tZAchEdOUtWAhZqIERMEdIPBGAMs5CwZ2YqiJqmQrnAM225AkYWsIrJ97jXzj0eTZ7PTs2+nOzt7XddZsNBuKpOIj9oIYMPS0SXI4WHlWEKMUk605Yiu7QdUdQHS+6qqsuRaEsIsNEIVP6/Ne4KLR/PH57t7+/s7J7GTvPhlooAzBJ2iDOwEAtEDtvBk0YgGi6jo0gEfFupVQxqhhM+yLStvj+61MLXtgzUlI2gTPgUqi1vYZ7vPux+OT2fTwcDp7kdazyYKzhvBwbvywHawc8lh5Cg4RBc/v3CZ2QoL47eDn7UE1jIlCIHdbpdhrdkFsaztN+2V6dPT68MPh9BUBWDWmxLeBESlg+OkHk2EYIF8VXI1OTL19+0/axKV+U0JIYuiumRGcPmA4QjayEK9H49F4PNoca35w8B46OMBjkb4bw+O9ZTDyJxLdsfcwm7hwTC+fOt4AO8K9Bkn5495V6JoYCgmPJfC4ma+otVu41hD0erjF0EPu5KWHfphLzGxbKIABU8z7MUCRVmpwsO5IPV6dBGI5VqHhRAZjgfNF4vGtG0CQfhBEVrxrtlElC4cQUAyZrjH4f+qJyUsOFDJmMJS/k+jlAGtCEPvR6Ia3FwDgzYGE4X+C6JmlcgJWroGXmlEQOtOYG8KO2JYQhEcMNEdCSLsSQC7WHRi5+MbM73XHBgu/I2Vnw6Ugvyy0PlmDJ9Lq8k2IoWHBsRbZIvxFY6Xgt9aQ/3mwI94PRchoSLjyWOWfeD43dEuCYLIGQlL47zlBFruiLpIV5VMfu0q0rFyiLqExOKwjpW560ymIVh4E7M0/k8yXV0JT7ITFThMvltEdobg5QFMKG6whQZzDSRyJ4ZIbHfPiRffcOwcP9c8g0pABRgtXVbIjFDc76meHloGg4nM3lkDJGFcB+UmL+bu2DURx3PPhSmAXCvboLXU0dI+hEA/FhjiD8WAoR8FkcUWxCRbEi+Kk0dggbRkN/js8ZYv/AUO2QLIWsvf73pN1UZy0KlW/Ot0PZ3mffN+7O5sTCyicWvAEvYBIwHHoBoEnWcI3bpj21AZDkSHwLCBv30NUI12H77zpYjdmUPf6FvQylfHBzKgzEybJQ58IAg0gTJEC4fiNLwJzOR5fpaL2tfQ++tEo/owmykoCNeP2QZEPyQFVCFRHjWx+rOqnMisu+eQYGdt2y5iDj+buT4yhe22NItddXWMxCDARlFhmn5Jl3hwAIUuoK4ACj1N5UiPcJyxoNasEkEY6xzwP3c2DpSNP60WgLe2ufb1cqc3JlwLiFy1fAYT2XgFxIJAYkJgkdV25giG9dLncu9ry3YUVYlQ+/FkESql5NFKDKFpoczakJnmD1PkUwVvgG0ol5QhU2rcbHUw3LGe23bFKw6HhAMQAEHPET//66EbBInZh7g7ubr0cos+0ayU1grOwi9btpkAubdtuYpxNWGNeHdn2kdmoELhCZqnFSnGiYS2xA8T3tdpWGfo/joCmQBCOA0+42GtxdXQAMqEh0b5ltbjgIbkhDVw/WCu1CMgHcmSJkQjub11Pv4BRLOaOcsB2sCNdqhC8TuIIs+wjmXqlpm2fsYAw7QDkRBkQP/BcrTi9lHZDtQ58C6uRnqu75eMWR5E58geBBKQLCAdd33BQh7AbKPGxbLYzZFUT7/TpTdZzlwrT21UYRg9a6eBxHkZLFQbX2luqZyoW29X2cfmwVlN/UPmvQOp1QSmAoQsSFLvZe8UTm9SxRBNaNKgIzOE9j0KaYO8NOJW0F0Rrn1KL12mB47x9fHh6CpJ8t1+wgKZQcd7hcdgRc93FO21JwYuGBNKLOcxtj0fpfq9ysVo9PyeQD7mCUFoxCbZfeLILkj2ELxSxLlAYnU2UZMmJ+QZBk8w3JwF5U223j0+fg/xjyXyEF2g7BAJ1yZM+ExiVKPahzBWfJI1pDBUDCCRzZQAptjmzvuTriJyHcrLjJ2hYUgEIPdTQQZROk00uzXgLVlDq+mfMyUBSBgdKpGblCEKOQDuoEXYE6hODEUFhn5pJ4nTO7EYLmaa2g88aVhmqASQDRzHzXw8IgmpdUqtCz57su2h4BaqD2IesE1T6BapESNLxZwZR5VqufgiIcABEtAsQcYLf5MaVqGGpCar/khzKSvHj8+snxLd8zhFwoNS52HcdalzsQiBiY6YGpKfUBYamlDr09btK6RdtZuwaNwyF8c4vPnpZWzJ1viFLpnY4SkC8pZm8BAQeTCYh2wVlaMBDwQVPzo2XP7H/RL9POkU5SiFJyRcjvTzFoJ8/PcmX6+UvNXXqf3dPAOp0Xyv/oaqAUKRJS2uDn6/l/QRNElfTLwjO3IrckQd+JGnP1nSxMeJbz8jw8ocsQawVsx+RtotAk4v3WZ9ALD3z1himXkGzJUMkeQc3gLHZfLjONnxCm2BY4lfxnPjBt0Z5uEQDsUkgvY5qFq3V7ts6esCrHYOKxVAtbtRmCTot+C35ssN9YefaGI86SDOPcy/BafOaGiEEGzqyoeKulQhysTy8T7sWTEDZY1Xlw7w4Yr2duyHYzkorBcTK3I0NQtP5QWN29MOYQbpZDP88jWqH3LRDypSH/UxPvpEi1wgOEloCkPLpNuoSIPeH/+h8RyxZBaQJzdxJ73Q5AvGoINczDHUdQWoEzSOIphqplKOtR26An7N/RrkfY26BAQ40AMHK4vXlAFI8+cl3lMOBeIt9i0hFOnhvwmTmrm8Ejz8+z8FJTUeWednXCO1seoUdGDDeCgVAM3tPEDvLoJXbm9B3s7f6z3lXVZV6CP0RSOK4YI2cb6hrFAeusm9hm7q8z6f43c3NlRyROFWd+uDctDjnFqk5DxN03EvLpW8cw73WwdjAICQQ7lqNOkWI5BjEhqBwL2gnRVWJOP3TimJYBom05d5LcWnxBYUghxIvkvJdy8sO8dY//9yuZLJWp+Mc9Rivok4TBvXoDov9ghgsdiBkR8r80RSAlx/jOyMvkHe7QbKKCblffTxZr09WpySJLIkyYW0jBASQD0QBy+cnH8czSWZ6MxV38tRygy5hrNdnZ2cnqxURqOxGxX5LO4hCR1AjMOU8OVK+eskdM2+twxxzVwSOP5yaMW/CMBCFOzd2BdxoRRmyRQwhlVAGpFTqkAWpyoYUWNjyQ7ryW/oT++4uTgAnauHJMcJI8X1+fg4SxJckjp3tGXsv/DsO+7bMcgGBJwyy81/OFSb4Jf95mbnx8SAKAJaQscIRX07O0GuqifHI2r625VpMKSUjG26t92DIx+MiI5ovW7tJWYt2pygCyOW0p7QoipU8X8aE4IIjeYaWlXDEqx3/ePBsLLSeAEUXMhTiK8s+UT+8QM8c8el736Q1VLyR6eVDz2HP87w/tTYQ9tbnmHXJ+DMcMrmgqAWTWt5VzVcojDuAQHsq6q7r6iK9NVMzkglG5kHeN5t2CPf/A066RgMHHzALJRnFB6edVjQrZ1kOJE5AfkIQCCAlIBQEGBKTnR62f2EQ0XUirK9aOY5VkoBkQFhO1c6XfwkJlEGlJKY51119XqVkAhDmKGFL/sK7SkhaH47ZpGvtAwlTOOcGFBuB41B5kAHipmK80wHr9LNJGX9LGykJhz1F2EOQ9VYeiDlvLd1c7XDmzkeEFIR6EMd7mGvRSRdJdThUR0zM6uvU8tG8ZkuXDk3lSTjvuCMROIhCkDwrJe8KgoioIz4ks4YQq1EmhzkEBJIpAVLBEb+cNzLSPSrmSBJBMTQFkmUg+eCMaNKhnRqBNi81pGlI/JBou94OmbKqqmOMEboiWQblPwqiJL+cm7Fr20AUxjVflVD5uh2lhpscKMiSh1bTbe7gJZCp1JB6y1rIn9A1dEuGLv4PTMgY6FIoTZcOgVLoUki9lfRP6Pfe83GSXGqdvuhiKcSWfvred+9iYsNF3QZxaCLYHGXkaQlPABK82OGIgOyZOd8pZa1KpXcNcU5/89K2yENsAqlxLIfqvxzIHV50yCR74WUDCNWVcwh8In4wyG5pFnFonmvnRhfUqhTdOpGcsHFKvmItUhhM0dWQ4RC+86xu+G60Syt3z5xzOUpLVEaA4GoUJeTsDBwn3KvAJZOnoVLTQWyAkuf4H3QVTIfLlENfxDTNNEGODqrL38fHHy8SocAgkE4sGBIRLILs9AV0MrUgAQNkJNJy38UKfqQnYSdGGSVkSPMJkcisrtoZceer5XL59ReHvQRKVxDGgBhE2xMBKYiE5EHwC2DgPRqilBRpyBAc5gGDiNet0rp8hQ9x3F1/S0pgAKUESITYkTkcYZDVFCRcvh5EYZMke5QeM5YYAgBpJjJBth05x4c47j5cXSXj/iCP57PDxYodmS6slV4v3SJ44b/joZ8hvKiszfR6C+Tn7dWPLwlzYPQBOXuISWu1woIOJIXdFxJfWmm7nuINGbIhWOv4kGyBVJfvlnffb24+wxHSpKsjYaVL/RAhwXqOORaLYmBVAMEIFH1wQmGlDCK7JFUDyfM317f4vNb7hDmiSksmc1mgGF0sQEFCTgqQZMLBX0H0rHhDKOl88VshCY64i9d/PkFJOY4EgTYVDBltCzID8iSirXwrFc0hCeEDWQ7B7S0QkNyv1+t7dmQ8KSeT7o4IB698jdYEYa0dFCyrSBKRHhxUR/WkiwkZHT3hkIh0zRGXO3dxUCWAGEtGojjQ/tDGcV5tCQNrzQ3KwKP0S7gxZtZMiMeqhaSeEVdBeV4lYMCGEQdiDGEwCKRI9OZ3MYCs3SeSfhwAoa7ne6H3J6S9oZeE4fKqGnFpPSo7lVba4CCKjHqtgKSEQiXGUlAfDjRZ/KOH1mQBc2xANmnnt4BF2mekAgZsSeAGYQAkrrDoFBw+D5KKLfDFF5iOB5kzyKHWBlOWcAQQWJK1S2skteVLC6MFkv7TDDzW6irLGiAirSxHZRBfXmgXBHJ6ij94agmph2Q7IyOHgEAA4a/y+Q5HUtlIwQ+oBZKlKLCQ+iiSjB2ZEcgMIHWODYgs5LIsgCAdABlVeTKBSgyA7ApHqKsAAgv2Kdxa+ffemiRxjhjzVgwxc8k2LrmZ9owO6iBHIGFHhCNkZBuAdxtnA4ioXVqZeKTsQEhsNMlsBo6/lJtL7wthFMa7NoZOJCIRl4agRNqE0ro0SC2kGpcSIaSLEUTsRMQlNohIiFgQImFDQtjYWBAW1j6KD+F5zvNeZkzH5fz7bzu3zvnNc85533n79srB5eIoRh00oiQ6SyG0drTb+GeyD0Dx52RXKs/hyKypU7k1ExtWAUWJ8l8o6cGDS2DG8RtIUmgSVS9xHlMEBhgLrQH/5ipCAr3wUdGD5bcIElRC+UIhJsq/VC+FikUrJkMdZD4US1YJRJK4bUuQI8iPdruLHBlsWbuFLLvmlqx4VyFLyxwOhHdVAqmSrPkjSRbfZXQQn88gKrQhNnIcOyk8qQb0VH5hAIEiEgTPB2q+0yietSQIzuxBjFgg4UJiHVD+Oef1xU4++5ivWHV6lRMkEwg2GAhIyCBF8CAI5UBkMdmJgseBeg6JEgMr13WX3TSQJXz34vp0JhAhPr734hJ7LWWUTE8VELqHOQo/TtvoWOJcxkNmIMp2DbCqavXa7d6Odo+KDAZEIUi8bxJFSRBysKOYX58sNkGM4vZk6HLk8GQxbTLzILfHXB6O6kWJZO4yJwRZteq0bnAB5xLEtoGEIACWUcPd2wxDyU4MgBz6rUgFiFJ+TM/TPafHpQkWhpYjnK0iG3/W1T6/2Nl+arKonClplSaCSA+6L3+JErM9s7ASXfbzwx5IQmsMjIKKlKtV0XyDno+ct5TjsCF5kCVDvLs9vc4XAzlBhNdTzmd5wR7x76IgtQvvva8EUQueWkrL6xKIzMl08vnmrgPZQhCaqla8SQ00UY8ZHaf7GeUwCjyWMEm4dBgfPcPm19z9Mjj4CteuqkusTIpqZEUsupUIpJkwEdJgPEIgShJYiK/vra8DJEkPICYHbNsuJUgkEFDkIMhwNJ3C5YUGcnV0+ITNtQEIPLhhp9svgMOcWcTdHpNQvXuRMLM+T2/6ggSXuJwax2ocPWmms+ljgRRDa3mQJDM4Qzl59tnzPWjYCUKIwbZtg13R8+q4mgpWfg3HepCbUwYQFVkCEAhw2873DWuwgb+ckadjm8HtSMh302Jy/+EMdoLVwarE+TxpCuTaZasRAINZFMkiCBgAwvWnWme/HIck7V5DGHg+4EAs04MgkYOWRhDZCR9adNca4NfYjAs2wu8DtIshsrEhC0HoJ11FJPL48VDLl/Nmk6FFSiNLZKIIo3RxmdKcaq8/93xLuw0QQgwiiEpvpaSAI6kBkSLMaQutawFkol1wvUdqNwWCnLl9+8Zibb9uFfvNiDAjgUAsLV9bBiNJWZHlCiqqQpD2udbzfq/Xa0AOSXKoMPNG0hQTBB8ojioIM4sgU4FoM6dzFkGEYiA3FnC7DiDIKIFNIEWeJAR5DS/zIZPFDCQRRF0X1TOwEKR3dtPzbs+FFowgnoBWbggjSFYBoYcGkpVBJmkEyVynhSCX2Hwydc6nBkKOZdcoQZIyR1IaN+Q2Qtc0VQRiksSyBZBOr7fu3PHjliMOBSDFklvlSNSeV0B4reeBXM2sKhEkw3E0gVjryDLnQWiQ4E3qQbI0x4bPFMSjSBGBRDvVgy3d93wrQUhBkCpC5KBp+KcMct1AlizyIOUcQVkSiMol9hcIG/oRjkyTbwFkQoUEYoYN16FUczVMKFSkAtImydl1z7cpR/h0oBYkkal/VVGEIBZaJ1IPAvcdiFNEHe8Igt7ZbyDpBEleBBkbCEqyQ2kSZLWaxJIinV67dXbThwbF6DtFFtRwNJsCMccEAl+DIoytOzivV2QMgtv0M4Ox/L4JUW0gC9bAWJ/TlCCaTlBVhFlfQtE31dg52klwwDac/QJFwNHv92tAUpujQwxxSBGGjBTxIFfpB0/8Bg5i22vwcK80Y9D5sp/OuGRjeTfYFTCQoEDMEbdjqmggiYwgzTJIz1BurTRFjGVvXVyFEqhVlwSiUZkAwlCy7pJCxJJ1yngid76wCPKaw5OU8LbakVDUpwChTomvWqq6yhRxcGKFnInJTpbO2QbjCorMTfZM03MKCeJzJIMVFME9FJPTpciUu07gEjy5OcSV953uzEAmWG3tCCYS43jUNHAPGYoA4TIFscO8SRRyAGR1lETlt0NrNbYNoAbtUF1cFQOLOaJstkcaFFlynk3dCAEjB7LP7IWcP88mepYWQkurJ2zAEWD3rGUfWe/rukCwfH7/WIcFEqEQpCzJSaOgKI1+H5pspCJ1HE2rvJkfCnAgtKAISG6qC4XlGfdNszdaVKrLBDL2fS0HcodLDEiB3LDtEqZMIkl4+xhQTrU6rRZIOr2GyYGnKojiSpGlsUUT4fFweEctBHN6OJwQhF2BE+q15v76z+jSeDLNfgO5xp7UeJRTSIIc5vUfCvf8cPjNesOT12nZrB2RJKvlkxSBHCAhCGwjOPbsnZsfBMELvrUQCAwveiVLais4PQPk+SzX52c+JaBOyZmPBEmS/KPGKAxkDXr3N3F0weWZXY0KCjQhCEiEQpCegqvV2KgU2dOvgjgOgtzl1y8isSbE08RROoL4W4iyZcGRABKq4AmCuDsu7Rc/o0rSDCSrnSonWy5JOo3+RuMASIUjCRxn7mosUwBOEZMjgCyoAwn+BZC4j4FwFGaRSGpBYv+XICRRH+xkByQtq1qIK/yBJOYIPQ0NiAS5y7FlaiL/nTk//6JInNa4bJlA/Go1F7h99IOufwdZfVqCOJajYIggnKhZUiQr6IF3y5vgAMgRu2oBQrlQBElqnEiEgT8DScsgaOiBomHXepBw2376tGsd+bTdgzBHut0+ZwUSJJvDYXe5EEQghiAQ+6/kCGw+hnVg89FoNEujfcayHR5FSf4sifVSYGrptzOyYB3kiIFAEimi4IkcZuDA72wZWp4AJgg/iYZeRJAqBf5r/cuEwhmVlLyeI4LQPYJ8OruBJB2CdDkpEI9Twijlue+0Is99ioTqSotlqyZHHAYh6v1TJV6kgT6R1HDwloQgoSv58sH9c4bSIsgehpcUyWgkjyA0P1dV0VSECCBUJLhbxoAY9RSRxFJF1a/G6FcAYV+y+fbVhVdPb60jyB7kORTpHhPI7wmSyUIRIKe3CkhZEX82h1EiSeyp8iHgoCb1IIkHSXWNjp57euHJu4c713UajKtjx/pQJJOJI/YUtVaENSbBQo4U1ZAe8wSpcFl8qUXBBa1PEg2l6BRHO+vOPrrw5NHFfQ2kB+xYdwcUqXCELMCL/uaa5UgMrchBOWT0td6iKPE3EFVsgRTGhNiyt1rrgXLhERTp9rvHut32XnJwc+TwrjsYj1U5RaavIbKkZKpUlbypUSWIIgPL7/sk5dgyI0hr3fr3ry409uw4hkkpSPi9DB/1MsOZldtFKWolkSJRgmW0yDFPEcsb0yoIprriUCpy0EK2B5AOUFY+bXRpe44d6zJHxGw3IKKABYp6U1X7Vcu5vDYRRWE8Koj4IioMuYjXBpm5k1WKGAPOQpxF3ciAQcFG3UgIJd26Dq6E0gRXvhatpZtqaysovhAXvsCdCzfuFFwIvv4Gv3NObm/iJLSxeDKZufM+v/nOuXcmnVvUm6hH+mLwNxUqdg2ZlOzzmw0wWdXFnVIkyLMFQeZM4cxoARyj1Y4e3XJYHHzXAsFppa5zTYcD6W7khImlcO67MRU4Vzjr3UI5hICMrIJUiiDhIUOJDoxjx6qsB0zkkA8PKUtVQQxCmchvG8O6OcRf66u7+jRynBaRikJiq2IbfmzStuM0YlAEaoCjmEGGjI6CpVAVDpgNqVRy2IAWE5/EQ/u2JjiE1EHIYCPM6WCXOMmcQWNLQii2gbKKuJZknDBEEahBVhit8hrbDLpU7ytIz7mFxPa94VNbitVEX9XF0dkRzG3YSwKzicLW27bDKsAgQ8teoAw5dgaKEEbWgWBIcYg7KeO4pnNwHyIbD93XuxctTYRxShMnyuq5YQ6EG8T8KggwkO2QZLzr/qpPNT/IpMEgkP3UTqHuFBJYb/w4EqF0GJbT8YgXvSSym4DIg66AiCZ5qrUKNPQDsVdrbdtPILSxPJqQoi4RZJrGERtALLWXkDCKrF5NEhdaoglARoFRKhQq3OWkp5YcaK5SckkCEp6yde4R1mVpBvfoYm9a7HsuAnKhC6QTWQRCpm+0Xh1kkMHOc+OAoZ+R/1ZA4lgTJK10v60lvpwokiQHObYciCgySiRzXy5fPgeMfiC5VDFl4r3covDZ10WyHsGdKFwRd0AuQJIUCOnx9PLnhS8j+/FsLzfe7ul0bXOnAwh+Ns/mXP0N2yCIHFu6cFrRDxy4cOFCR5KyTxCh5Eih+fnLvaXgPF5/Bi9u+zo2xJkFZM+O3MgISGje2b+ApK4S1yGdWxYoQt0ds2lFpj4/Pbr8/u0hvssQjnWJsasHhG+2RmC860ZA6Fqmr9M+CS/ugLr6W3a5G6Q0NzP67tunt+jwtYtlHeyzbdRl3o1Zf5wEP2myJLzNRkjSitufDaQn7RXq3JzNMYgJBaRUakyc/fbp09uTe7fvHFy92CaYh7Qke1iRHINgfkOi5AQkjWJBzl25coV+lM91hxZeEQqnjqx8IxBSxJm9zV1vbNETolVE7F9BYP1qeJgDOUdVcE5AwqC5lJmcLBS8+PbHd1cP76Z6h+NiVQc7M7C67wXJWZAUykZB5FjSe9eCIJXKiCtTm7p37QZyZHKylC8ceXR+O3HArMOWZ10mN/IAOdgD4pJlKA57iDTKfnAcPwf7Lsket5/em6sV5+czhcnSJKwwWeV2IPu3H0NUwJwjkCTlhZBsHASWFQ6kOh/17r22mZ9/GPgGoYVXB+jH0+oubtBgTpP1m7zbinakH4iIMkTti+gfxCFV1khW/nXNiVu3isb4CDAoUiiWJvFTxDjOJCBOlF1DgUBSp0haE3e03BogsFx/Dq56kR/ZPfxfIHZXTWDY6pliHoGVh1UIhC5pd5gPCZKzDUnaCGS9kgwGoX+PQVXvju0nYZcOVYPQhL6pz81AEeIo5fPjsqmQjCDnhyfZL4oMStV1SpwDSOr0LGMWIJwhB3ZSP3oCgRiqOTezMJ0pQRLoYUEoX/+JhF++T4HkhpFl9XZ1UI4AhO6zkOn7DnP34NPjxkRTjxemW40MQ0wWObREVyEZNrw6OZIKrbQsu9ZWxDbtOQy2lIWhnzPfw3PP2ku4OazoGw8WFlpLJkaOAIIVwdUaliT9Q8qaGfaXJinxSA8YJnaBfLIdu8h9ragbJzrMZJ9MTC88aMdBYFgRZnlmz4CEF5L/AeKaWOcmnOeJI8HHLqICBqHYD+OetTu538/Fg7MLj9tNow0UAYSA+Nt3dEkyfN2VAllblByZFOTLA0CIxEKwWY5ThEJvlOykfj/Hjz+ea5pYhyY2maJEFksi5kiGe7ba40B6dswNJGGOnPgrc4zhnol6QbgbryXJgmPkdd2AQcOgCFnA4+TZeKUyXimXy2NjY6/vzr568qEMq/DgrNIZjcmsLVQWr1bLY0+w04cxHKBCi6lQlgI+btuxSnW8yifilWMycba4WOE9YB9oVN45Mv7rR6VcIcOKxd0/d32ffV2LjdGRotAKkOzWQh6FAQZ8w+Ta9Ym2Cv3Qx5yPiXxQ4hnl+yoMDWaMUZhT/pv3R43fnpjShmaN0kphioJnMIYp7RtPa2208sIiHoRQMIpMK1qovAhrPdhSI09TrTDGLs/vVpZXHhmUcBzsUp9bXH7QamgT42CeoV11xmEEGPIhhlBc9kByI/GFAgbXAyrBvQBluICvr8lJ9ufNu0fKX5qYioDm+9pTPgF4niILPUUlo0Ot4Td4AjwJBcYDJq+JtUmwD0o6Vku1QIEjjgm8vnj3xfv7WBBr4tIJatzqy4ZBVMWx5yG0vFh5AiIGAkQZXEWJxnrq+sRUvSODUcxi8MUHUpD7BEPSGJLg+cv7nmqQIpgl3wTB01xmf8nt0NNGk7+mBFF8OEfua9YCCvCnUcsTIulU/zo7v7JcBBCRaa9548H09Oyzl1rRwWISGGPDIIgkCik/tEbh5PtYMjUBEkWShIp5SA9xHhg0pnngkDL1F7cVQK5JvMALYsAUs5h05slQkL2CfGG+FDGyNrRNgnUM0qA4ggTJm9mb7z7e0hFWYH2ctCdmph/c+HrzvvYSUEAUIMZKS2gRR8g0UmLPiUu38affesKeWwwjnrM0KhQKDnP1e1mpWutaU5FbZJQOFL8EAbyIgQgJQBFcjiLEVyngdCAEUoSt0YgJyDx79QbJEWF71itZas1Mo8aNXz98oROcRSG4QKTBnNkSgIMGViLAB2MqSmYwiadIIXKYot8LQ4p5n51XLLFPE+/mO21qE/eadPEkjlCKsQmdSFMmc+zohDPYAwwA6KWxsInNhYHWE4g2GN9dvL3yItZMH3tx497M9MzTOmaePHoUR5CJ0iZJcKBIZ7YitCSqAhtYsCCwKd7AmwW1yPc7+aC1suHFymgjU4WjPV8xXn3iDjyWiPYEB+7HKEmSO+MFmJhisZBHEOkoUV4SAVN7tYaOkeOPVl4GOFjCktSePgZGTceR0nfv34oT7AKQCIbc2ZbJbKHqikXAoHjSCSRD37B25/qdGtyhlOYxJoZcEADNunAyPHtf9Op37jRJAofCXkReYshFFLA0Ir4EZTiJYoAXE4OIALAmSaIIOVIfn324svwQ7mqgNHVtDhitNm0Az1+9nMeYDgwQLzLx5kxmU2ZbIBj4kg6AUdJsKHw936+3rt9pNJXpVKciiJEE5QqJDZM37+dVs9WC9pGNE+SvIvc0OcwnppSOEkkGYES0bRzgYcKQSx54YLWvI88/fpyPyU2NhfUpVFWtdhPbQrIkmV0uJpFHGIquy+atmU1/ACbirGOC0j5kAAAAAElFTkSuQmCC", + "image": "/api/images/system/volatile_organic_compounds_card_with_background.png", "description": "Displays the latest volatile organic compounds (VOCs) telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:molecule\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Volatile organic compounds card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppb\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:molecule\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":32,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/volatile_organic_compounds_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Volatile organic compounds card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"ppb\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card.json b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card.json index fcad265637..28c7b0a848 100644 --- a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card.json +++ b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card.json @@ -2,7 +2,7 @@ "fqn": "volatile_organic_compounds_chart_card", "name": "Volatile organic compounds chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/volatile_organic_compounds_chart_card.png", "description": "Displays a volatile organic compounds (VOCs) data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card_with_background.json index 01c2280163..50e3c1ef5d 100644 --- a/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/volatile_organic_compounds_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "volatile_organic_compounds_chart_card_with_background", "name": "Volatile organic compounds chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/volatile_organic_compounds_chart_card_with_background.png", "description": "Displays a volatile organic compounds (VOCs) data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"VOCs\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:molecule\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"VOCs\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":500,\"color\":\"#7CC322\"},{\"from\":500,\"to\":1000,\"color\":\"#F89E0D\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 2000) {\\n\\tvalue = 2000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 50 - 25;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppb\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/volatile_organic_compounds_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"VOCs\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:molecule\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json index d6734f8516..1515793b7b 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_and_direction", "name": "Wind speed and direction", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/wind_speed_and_direction.png", "description": "Displays the latest values of the wind speed and direction.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json index 32a54a29e3..a17cd12163 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_and_direction_with_background", "name": "Wind speed and direction with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/wind_speed_and_direction_with_background.png", "description": "Displays the latest values of the wind speed and direction with background.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-wind-speed-direction-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-wind-speed-direction-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Direction\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Direction\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"layout\":\"default\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/wind_speed_and_direction_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null},\"titleColor\":\"rgba(0, 0, 0, 0.87)\"}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/wind_speed_card.json b/application/src/main/data/json/system/widget_types/wind_speed_card.json index f2960bd039..20631fd888 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_card.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_card.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_card", "name": "Wind speed card", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEXg4ODf39/g4OAAAADg4ODf39/////g4OAjTMc+Ys6rq6shISHI0vF1j9zz8/NaeNXk6fjj4+OsvOqRpeM9PT3IyMjCwsLu7u4wV8vn5+fy9PutvOpYWFjV1dWenp75+fm6x+7Ozs62trbW3fWwsLCDmuB0dHSQkJAvLy+6urqCgoKesefb29tMbdG8vLxohNmkpKRKSkqdnZ1mZmY8PDzh4eG6ZDFOAAAABnRSTlPvIL8Ar7DvmsykAAAF40lEQVR42uzPwREAQAQDwDiGn6/+O702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0ibD57dbejNgyEYfjsU/BAwDAuLExS2grHNqUoP/d/bU2Mlg1C0FbVZkHaV0oGfPbITvIJebRuQdbTwxp3S3V3S+OP1KNfUIilWYY7GZu+P2ScJPM/QCgHhAFPWUEavdjGUTki1riZIj0UZDzD7di2GEoRHJDhGmKogC7lISBJkhymu/32xxrXWYYhpyA1jCAVJRwALWxdhCgygCmgasulBjJhaYc5jYrLeiBIMkFybjU9LjaXG1RRGsQGUA5F0FT6QAbc+IoiJG240AAKCqZhaBeMtKP9VwpUtzgQZDfrIKPxZnF8Ax0WeC0jI3nF7ThBVHdlpM7PiLYNiUbB8RRVZLSiLDjdDl03Qx+tEYBZJ9jud4e4TedcQZmmnNCDGDJnSJtqJELa5UBdxp6GyEdBpgA2lxBxDmAnfYh+25FQxnMVIZ6yitK46uKw/ECQimrAUuhDIGwCRYghazyXrSX33EC72uRlaqg2hcBQ4flDIKPF5LC6hBhWgGff3aDZny5xUgd0eXFsNQpnncS3luMc8CWJR7vKBQ8DOW47yGq/O47O767DZI5/rWDcbBDIaofktdFxst+cvibPB5kD3RbsNtsZ/qfM40bDQdZ4mu5CnqlPyF+VLnGzl4eBfF+i39efuOrbF8SWLz3Ar2U05g8D+c2OGatWFIMAdLMgrXS5EYdErjiGkOX9/681efe1pUuhQ3kOHoKIxsAhmYKyI+2ooiCNdqZ7kV7VLcIMeoxVZoJFLXP1lOUSYd6BVHd8psiJA5V9OJd2XHewVhvu8DIHFvCBVRxvhGvP1xyat3u+uvuM2QkN6xNFmGRKdRaiBt8iAJOtwlFU6MRdOgat+JgTvJ6WMp22toL3PoCnPvFG/JwC3fCnyO5aX6niUe4ixUs5P+e6XSK0ugaNwPq2bPQckU6keKMptcKo1HQV64CyRJYWHcdKeULFu54B0acIT5ItIgjVwbtiF6eO//C03t/eXuF3DBFv3c1uZGYEBVeRHO2AVrA+0oLFgb1qQeNrTgBOvO/WR9exr5JxuA+6Bn+hM6PE/Gk0+Atso+aXaYpEJUWikSLRSJFopEg0UiQaKRKNFIlGikQjRaKRItFIkWikSDRSJBopEo0U+WDXblZeB4EwAO/kHVAy6GYwG0FchZL7v7vT/Ew+IT3QNNQvh5N3UYY6tX3UhYReLTfkavnPIdH+VFv4RV82R2JtbgqxTjqtE7aEXV8ROjQv4NtBbBAAGyT8DRIDATgEcUBsBUkdgBpSnnVYYqu+PPUdhRCcaQUJAIQqyPj6OPRTX3cMkoDUDiLFGldBOsC+gkhnY7+DMHM0Jq9/wI1pLjRu7taB/F1InF5qCAHZ7MNTYw3Z2H4QPOOiCXNRtqkBVx9L8l+DaGoIAMMpWbPPawhhSecA1BK/7i0L1oSGEMaz1vV7CwIa0kCoiqhjpHv8sJxHALkdxGJLeA9CvPqJ188nXZKiSzONRAGGthDX23ll7VsQNxekcAG8nixWSJ6n7vuGO2JiSnqwu08gpJAHHkZp5HmpG0I0AZAzEAZ8fekhZ38HkgHwCUj5+TjrrYB/A8InIVRPyd4RAIntIMW5PBf2HGR/8fUChHaQB1D0PTKfQ9y2/IUo6IyuHSQAMm1JluVrY3H5OKS++A6AsK5RO0gkAGNwAhAvQxKPQxJgqxkp9EMHgNtBDBOWSF5v9fgAMlaNmbBmMF+GFKLRaKJ/TIzC66+QYDSJaAVrHFFZRESDFsnw7NOwW2bM7Z+icDSn4nf3Q47/5OMgH8L9XOuGXDU35Gq5IVfLDblabsjVckOulj/t3UEVwCAMwNAWtnLbdf6dgozQlzj4CiKElhBaQmgJoSWElhBaQmgJoSWElhBaQmgJoSWElhBaQmgJoSWEViNIVItWjAbr6arvjYwG8+n/MGY+6/Zi5NyqFFIAawmPtAAAAABJRU5ErkJggg==", + "image": "/api/images/system/wind_speed_card.png", "description": "Displays the latest wind speed telemetry in a scalable rectangle card.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json index 933d349b60..9141fc759b 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_card_with_background", "name": "Wind speed card with background", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAACuCAMAAAB9TAOwAAAC9FBMVEUAAAAHBwcQEBCWcVGwjGiOaUvI0tycdVGyvsmiflexvsipg1zg5+/f6O+wvcn4+vv3+fr7/P309/j2+Pr8/f75+/36+/v9/v/y9ffw8vXz9fjx9PYiSsHv8fT5+vr3+Pj3+/3W3+Xb4urZ4ejT3OO7xc/y9vq9x9HJ09zCzdbe5e3k6/G5xM7H0drL1d729vbp8Pb29/jR2uLN1+Di6fC2wcvz+PzG0NnEz9j5+Pjo7vTz8O09YMn29fTs6urP2eDw9fnBy9WkfVjt7Ovw6+aed1Th5uni6OsgICDt5d/o3tWddVH29PPw7++zv8rc4+f49/b08/Py8fDr6Ojz8vLd5Oy4wsz09PW/ydP1+vzu8/fY3+ebc1Dg5+/v7eygd1GdcUzu8faie1Xs8PPe5emYcU3b4ebq4dmpueZyjNeZb0o6OjuedE+sh2Pm7fOgeVTZ292YbEfAwsOieFXl5+nOtaGngFygelnn3NPf5fXs49ykflzKsp718u/q39bk6u7t6eWmmJGkeVHDzu3y7emNot+cb0np7vLv6OLBytOYmZqng2KadVWVbUuTakfc3t+7vL6rhF7HyMovVcWrgFqhc0+lpqikpabs8fhVVVbm7PDp6+zr4trY4eaPZ0bf4ePRy8mkmZegcEiVYjvr7e/P2eKzs7SwsLGnfFWbbEefdEycakPOz9BXds/QuKZYdtChnp+acU2WaUNzV0KMYj1/l9q2t7ihkouQXTXMzc+jpaZwcHHR2vG2xOrWwrK8yOjUvawuLS3JsJuKi4yjtOK7j2JKOS/U1tirq61oTz5JasyefWKrf1VWQzbWz8yspKK0o5e0imK3iFamdUqDXDTS1NSpqauNbVSbruNwidRkgNN9fn+9vb+loKKgmpeDZU6ib0BAMivX3u/o4drax7pjYmOXeF9ISEmjs+Gse0l/X0V2Vim9yenb2djGv7p8fH1eSTxVdM6EfHewvuaWqd+Jn9vd08ytkn9Yds+ViobAmmy4lHaSxKBOAAAAD3RSTlMABwb+/iQgtu/vwMC/r69sDufmAAAfp0lEQVR42uzUvW4aQRTF8ciFFUX5sOwGg1IEsHASNlIwVugQTdLFVVbIaAvkaF/DpeVXiJSS98w5c3Z12bnM4hTu+M9dqH+6O/vi0KFDz9vxq5c/q66v+eR5jh80zsfsIjRiy9FyuVgsPqIZ+8Yy/c04Gbus+6Ku2HxzNVeT+SQ0nAzVh7rVCsMGA8xW/e1+hT6Fqr83x05FlLlQzoEph4gjFkDLRz5CkQVGVKZkwkilapZMJJkqciVEMvVxqMJYg9j1NkIpkBqrwsAF1COXpbgsTfjJUquSi6KNXLYpJk8YgGIUjxUtyypeR6yahFF5jmUFkjY10gELKO7KWPTYkgxlq4JJwYQAs1VBNEwsaiVTeKJVeRJVRd+zaphUdqvIokuFF5BVKEbRLNtyVSipjAUVXQCBZa6GqjbZuvo+mOjyrMKzuCihpCIo+lgstayAWhCltCq7UhlNFMnEkSrsaUPVkKaJv1RMW9qJ4p74sAaITacJFlH6XARVTpJUYgUVtiWUqSiSiiRlrCpuSrtyb6Ch/JfCuTj6VJiJD/Msu1bjgMJAZSiMPhfRG4gv4c5b1UBpUeFObUjSoOha2bvX1098p7QvYxU81tSx7LOOxgooW5XeQrHkCqbMPuh2qexWCUUX0rJU4lqZiqKBW1V8rQptCyKqItYRUGJdlmX5F4/rprxhv+u+V/2Iut/dH9dDs7t9re/Waz6+24cCGcuqVXn5vqXzqF6jTq/TrNvFo05xuqfpzvZ3cnbieofwczstePy2ZMLLV/63ylgplWCtqq84CYyCybtACrYeQBjktiWVsbyp3dVxKrpMlV7W/jXplyoHw4AllGfpQ9HO8vXSMIDw86RNtbqIoSvC2LoQWOzesY5gwkmzzj2rh0mZWhdlHp4we2A+I2lbcrltjcduW/uWFakaMDMFEh6Peuo7mDCBw8e2xT5HrGBqv1utFwvHo1TCZNtKcfTDs3NVHGNJFbMAIuvCsdKb8q+goTre5WUUJVEipT4UOsYS6h9pdqziNhCEARjyBEEisBFOGVKkdRVcpNwub5FmwQihN0gVNS4CNhv3qty6cBQIQq78BrFTGYxSBMxxd33+3XG8ccYjYfIfOuHrPv7ZwewJLPet4r1g6tsWcleJcKbo6Z68K2udNKQKLIfibT0hFRtCGXZdhe0nNcVxnU2J8SZKYMHkVEJbL9EWW39C5CUYSKEtVhe9maZP5ZviLGcShhAoxmIyYV+Iy4KbgAkRmuqAkYqxIEKGjAUUZxGqh3WBUh0jyCu7jXQ+USxvhyfX+J+z5UScNbzbDLtZeQpNnuNJVV4mdLIIdJxFPvlqJexBn6yaX7rkBBM/WwRjbRHqlWOFsr4NBj9FFLF0oZQ1SpV61eiUUOQylQcUtdYmZSyEXFM9uSiryyTAwPImzgKJLpYYC7/3MkuZSuVa5+pYK7W6OFLEynQTpa0VRpCxOlRPZdZbHKswhIz1klhkQog1GAw2d8uH+w9DrlKVUT90/UXZg8psktuZNccoSq2pas+a6Qy2JpoeKtOitIU1No3iDC9wCtMeAgumbhciscS2EGrrObGorcF3sP7k0932cf1tf0Yhhc6PtjoqDOMXnaS6LXeAGFMW2rPmxjQp3o3eZcZEab2DKE7xqbVoCn90LEKJbRGonzX+zFlU2LvQlWct9441+rV+3Abe5vH8/XalM1sUBq/Es77gma30jIYQSSuj0U9jomiq00Jnk6le7OoJXpODCUMIUecORPpZbAj91RK1RX1dDOEIH/bOc/+w3LgKw2avG71KdaETamvmnkxnxKJMjfUs/HmnXbKKXtYGFlS3jh8fQs56Sax3MHnSVdYdMGtiQeVjaywLU9u/WWloa9f6CfSsUi8KPXdrcFf7rV5RWxD17sBeFoWxTnkP1U2sQh+wOPQxSYgVucca9HLahFVWmhayosTZmtSHrGjnmT5kjY2xJksDlkPJXTHVTSy6jkZbyAuBNXr8vvnkWOrMyswsUaUpk6Q0SWrKyD+2todd5FLa2lQ4W3VVuxW4wMcijstW2zKOm9o0ZiIvQOLQq581ZiyIKO8IdGZt7x3r08NyOzrvw833Nb+OoURSGiN9bWcisavbV4britrCEAYWDMuw4Efb7w/rr6+Fm4t+FlfRmYqluphIYo0dCb8Y66QC67KtNYYQ9SzX93vpnhMaFUxCFmUcSIwlhbFubMub8MNYOFvD513XnIl39bKcKeKozjCTzBr7vBFYV9qCo/s6MAxgp0to6r9Nz/wQnlhvrrEQzoJJRhGJcltVtNFjQXTLBBILJoSz0NVH/Peqh6WupK+peS5fLf0m3e5ZnYbCOIB/hMZEi63UuwkOUi+C+IJVqVQEBVsLVYeCKM6XklHRQRC7NGRIxAx1KGbp0Clgv0C76XILgi7O6mfw/5yTmJqnT9LqkxevIhd+/J9zctKkY4mFvTgo7MfoVNUdyFkUFVhvOEv+MFBlFbY0K67Hh5zlOvouxB6nonFkU1yTocjaxkUqOqqXLpGKs4CC6c3960/Wb6t+gCVkVY1jmo/oHIyINKqZo2GAn2o12oPaiH4euw5ItlUbRBWrYk9INXVmYwN/GWuWbdNpUqnQWVotyaxSVZE2sCBSjxlFFgWFI02KwkpY7jyaP26tolXLGQ50PtiH0WplHswi37GWkT8dL/2DiRctdUt6aD8vXCqWF3lTw/Wi2WLihd6URtZ2JNWF6MVrAKELz/K03mjVaYEFClQsK2KZ1WorGM1GH1etURAMzZRlmjM7/GgOnNp44voWUhtEE5zRfsQa+7oJkaAbGjPbWC4WkWHPKtsGRSIlO6U7kKeFrAAT0xKuVDotMFbubGQehvMsyx+Hh+DU/IGjWM7ScdyEdRhq1sQbfA2N4cT4sHC/lkrDyVYqlROVYglNSKJME574w9q0ADQT1mEQPJ4fBEjroxl9DIY1sD5GpgMWkMFgYDmOPbOmiuWG1mRCLAMsezZRY2vsGdMloqp4i/FysvAKQbQDo2yolHX2bHZsZVkqpO9fvvzgrLVnVlUznM/nB4erMDwIwjAMTGdOU/pqHg7MoeNPrWDlh5D5ztKyl9OK44c2qYwQY8v1v/rUhF/9r0vDXi69Rcn1PtjFScUu7AkLImJl00qGVjK20qUFbkEYSpnis3wFHlq85PuqhW17Yz4DyvNfWmkTZtPSJlRrLazExQcWaeiUW6FlMpXssj9E09JfZaCYiA7OoqDOYt+elR1UOMxtipny4+ICw9qzrD327/E0wVk4OAuq65zF+4/O+Rz5gRxAoopfgS1rH0X/PY0Km9o5i1ScBRKp9NgSFxYcxUm65If22y7ZjT2g6vX6/t6ewdJCMRZQnEUqnZb8BL8gKys9IyyxA2UTc0EF1z46kYlYE6I463TydlYrvbtiK1v2xEp+HiewRNQmFrl0UStCJbNiFGehSAVW7us+hSI5KyNHBZbs6vUA04mJrEvbsPgFK5kDqxIqTUkBGQmH6EpQ3IVZg1gaJriK07oAVu7j+/+aLYpQYmC9Ith5mUUqkVXVLBn1N20XlUIVw9qQadh/sviSPfdCBYsUVcGsbuSvaw2LXG1UkpjIeruBpd8mbkmfLxWnRX8QbicVNsmjVxPxVN9bh6WgI5m0JNZNPlskcQlJYVuHMVMOKzcpmOJgqBMpsG5XwSiw1EVlxWG9fZtladSFmMXCKlwzaY6507IiF7VeOjDk1YVMD7HEpI7zioQezLKUCq4zLaEDiSXFtW5jLhmWf++xGdZNYZqlZBZQj2h7xFlAgXVzY1hgiWHJ84Whtp2zgogXDTHt6miYAVj5GEwYXtbbRw/1O9YZFkzqjXawYOLr27ysNGrXtxzlnKSLLgXW68EFGAWmXVTWI10sLagIBdZx4d0ssfksDZNNvHKndLmSwDoJrFQqK9YDHRUS42lBRayCx3EcJ7CKFoFyVGKV48DaHSrA4NJpQaRhLK34CxWKxZ+IiFOFLLJklRyVhDpC+5GygtXhuoPqtOEqlymth7o4K/mG0k1+N6wq7znIPnfJLHlZofpMMCVTeblcOonAunf6zaZynQRMZlFSUGVY2mTKWcljaueoJBOKVMqGQmIn9+rtO81Go9EnF/0+S2aRK2GlKtoyKrZU3/UmmIuKWZqUuPZ7nWbj3r0mXD36UMDUptdP3cz7hFqFepGYqnqnYijKSpjVFShPZXBVcpZVfxXi0iy40Ii36/XjIB24H/xvn7JpJV8nIxaf2BlM/rgiZxXISGwKFJLCvs4q7dW7/cZLVINg3a7tfvj06dNnVAELQQksK41MaD8pK/kBDzOJUWmXUW9f7t94GcP6d95/pnr26/3PDCtGaRZAxJJQOKjk/pNLiqpoULEuvNK+/AquGPb+2ftR8BB1jbFAonpR1S51MsES0xKuVbvcWhUPKpZWOhl2LsN1S7Ga13RxFkqzyJMsbqvStE4bZ+VHJc4VuWltrGNw3b39XOfV6N+pKRTCeiimRWFxVMbHRHJMxffApWISz6t88e7tzqvGy3uNfr9TUahNrOSLp2DFLhnFYUZRTDgJ978SCUdewVXv0kWZLl7H4xZkl2Mi6bTiBpSjAktYUuyelRhTrumonjf2sdZokqpuXkuKsaBCWOf0lCGjpPdh/uGzpbxFbXGB1SPWnU5v3zwls1DEki9WrPm2yUpaKrHFkth+MqutWF2wrhWwrr6jsMSZYmcWb8DiDtxCdVRdk7OsU4z1m5T7eXEaiOIADv4DVq1RMbZdV8XbdhUKq6kKgqdd6i+QIgiyRZKbiJecPIQinhR7KYqoIHhR1ksVIT0r3pUi6p/gWW9+37yZjs3LNKm+TW3Uuu5nvzNv0qTb6bsJ3FnkJ2mFSKKca5UjK/oolxaOoOwgPHIEKJHWNo06fuwR5pX00CZNJdp6ZcHnVsUke2DYBosa4ZWVnVCxTKYFFepR+avBJxIDaCbTiuUz+2Y6K2KTswcmSVpqatXXL14j1gY6IURcGdZp88Y3j8qOvyQavDaAsT+tfrZXJKNBILJyqVCJ74fFM4s7BlinMLkoLScLKGzlWEl/AMKU1RcsrWr2A/xZkOmDcw9sI98flggLHQOsU4p1pYCFkiypGr9WAssaYb/PlXDzU65UPy5gUMFqpSdW4EdFYVWrZmqBRT1jr4vFqkO5LNHXKZxB8BfrKwZOTk8P6XGggWUHH7ucxxYYz2M3iG9VNQbV1OKDJxdrG3KCCptkyeOK/mCUVKK/WPjSE0uiHWYNfiXN0LJ0WHEcD3fvTsJxTJrhmHf0Khz5gTbQX6T5WSGtyuoFw9qQLFNAoQQr/6cMmlivZlhILmXKzDoVN8k2kxaFtYVsJwMfFQ1399XOyCzDQ1+PwXSLx2+Y69qB5/2KhbqGyeVkmfeHuVuUFVioWRb+/0o8HifbZVkWTGqCESvwubYivTPSYYXIne5jaLn6syRmeTVMrZPX4FI9Y7+LxSrJypgquayY2gd/b/NZhLETi3IIJuMJbHZHd78tPQbxR5+SOMWk9ePM9Kry1GpfvrhhJpeTxShmuVVsEqzkr/7uSItN7KK0YppjpIoRU+KbPhEjN75nzhChTSyJTGZqrSsWXJhc+wBq5bIgkiznq5YkKwoT9V1PctNC2dYOVqR28Pi+6oEDswSH0BiWahdJGKbZQcin1MDScYHFKtkJNWqJWe6GQQo5t5rjMQloQrx2sQBzsDDkDOuT/0ndEzQIIZwl8SDUp57oCp5eufYRqtWSaR0SableOSdZ9sRmH+tU9vCPWBpUyIr5HjXmPhglMx3QjEJvbbW9fgGwjbMqrgMtmBBYy8FaWrorVuDiuTVlpDQlMlcLClj4ei1rZBtEvOWzLJ6uw6aQVuX8OpVZuojFMskCyrLcUUmWdcXEyjyj4kHoTsuw+H7LphOHEU3WwXAmKd3eV9rr7Xb7CkahZaEEi11gibBsb5csRo2iKFWWxLKggmwea4dISx68hwN6iPFY1ipM9Nq1y2ChNhysbWwiVu4Vbmp/cAkWT6tPaMtKEoGQOU53sNQxRZYVcTSoURDw30T02Kp1makF1Xl1+Y6unLhZjGKWRNmSLLioU1Bc6QBfBO6HoyhFVg7WDmIBJVn24H2CzxjT4KPvGCDWxEdO58Gqr+EAysniWsLEYpYYfm7WLz2tmjQHvvYjqIKYQxsMAZCsHbS5WOh+pvENA/yrfjihvhEbz8zUWlldq61p1iVidXNZ07Qcl4AdLN0qyIWi0FB0yJPHooGHK9g8CCXrqx/waotbGvi6JpCIMbiCIVijJ8gXmdXtFrHKni/D8P/KKMor/ESoUaymVRoM+tOAxkGwpVUoD7coCEZ8ABgEE7Mz3hFrLR/NxhF/xrSaLW97hVhrfLH1GrFetLrdRViLnK2Nm+7rivB4rHIXYk15fTINPR4yRIxBNEGEhUMozXrcnc968uRuydPQMJU9qWk8Hn14blafWrksOQbrKix8QsN66mY9WXqCWt4sCkv86MfcU0oeNmhoY5KzuI0Xw4A5j9cF1fBAnKa5uEGsm60uw7qCBRI2sGxW/39Z0QNFY4hWwGKUgIkxiBf8Iyyw1LUgsD6cAaoBlWAhLKjAsgNQepxjj1miGOUJkguGUr4C1vl6BWGBVdOsz3cbDYpLpAUTVMQqPLteVrXDozJJecUiDopvbhWmFoeF39SwcBHr1e0GXJDJtIA6fRUs9/uHzisZlGUVl4EUJMVhrdXrazWvqlirvB6/us8qwaKZtXz0UKejWdgWSUmquHhKeSVcEuRmVWoIa4b1uUElWNtItXzj3o3OZl2/FCErqrh7n+dAaVWZ0mlRYIUsZIWw9uypUodn1ntmNbJpLS93ljude0tg1XfVsyMw3+QxS6ksCJtZoPBLGRCrVF4l2rtXq3l4/J6qYq2rhevZt4YqwboBV+fg0uHOJkT1QhOzlEeYuLgFli3JcbtQeDilVUVazHrb5bCyrA7XrRubdTGl1E2izAsQJAklknKDTMMooO3RLJRSoZBWm1kvj0Al09rGqt6Hh5tl3+iLoiKYqlmTHYblUyqZFz+QWbweXzsL1pfrDa78tHoPwCo3BEmlNi2SrhK1qEmTgKLCeqxZ3x/NY/V67+/X89KqSRWbPKkyHm9+myipgYAcZo8wdGdZG4r1NJe1TaFQN27WVe2iX5wH65kZJVh6y/WYWjQl8pgyLLNwPXvzwZ1Wj+qFZlEZmUTRzCKQDMskRbvurBYWcUqGJFnvXSwy3frQ21xVpXGaVZFRCZJh7XYPQLtAldPQxgr2ZIoXLsX6ccvFguvD758/L62sQLVzlUu7RBPEh6NKNPSFYjLziIiCVdXr8bPnb7v5c6tH9erhu2dQ4fwny8CSLk9MKOEqyKrsGqUw7FK/FQVWm1kfW7lp9Tq9c6jem8+kMSVQvA7/K2rRPm7bno5Ksip/KLuD1iaCKA7gH8GkrmIobj5Cz0FyUrK0tJBKIFSkF8VCT7H0IKLFgAdPteRQD5WmKyEBCbKWkJKrl96Mh8ZTN5eec/Xsm3mTvGT2zXT233aSNG3hx9t5M9kNtAgdHlhfnrHVUv/qohZOqBFCpMrXSCyLVmGbCUplhWgmNdDBmJhchRVkxS0DqyTSH8O6JTA46rW6nx5ESbPwUn3Iw7LkwgWsqMkehKjqDsMmQCg+ZHFemWnWBRhAjiL0KAxOL3OyfnkTWTWWJVBBszMM95UHPu4QiUw8K0ssyysPdxbNKxgtUQvXWTgeGViQRr8ftaYoH3ZMOuuWbmGdVzA4o8gDd2zx/PL6xjawwoaR1Wx/7sQVycLoKjuJZ9GrQxcWUtRdh6iFC1hHbMsQrL1B6TiuilqRyd1lrhR8ugaro+6mYrW3DNWqHZVK8bCq6gSqKYymlGFWeZZ9rSMGgh3CvVq0Hj8G1t8lA+u6GbyKOks+lks/aUE7QNOWnTNhqbLu21lIOlahWJGs+AXHCkrdyyCoRf2qbIBC5c9MRs5sNO79xI0rSg2yvbiysvJ89Vm9HpX4anWDIBhF11WtBUoT1Cr1nMIyMSquKap2DgM+D3GbXNkCLFzbv+sX4YRlBSKDcWNZWohl3SpZXYqQQMBTjAuDKvy7nhNLXJGUrAHHCmQa426O6X73cNBJ9vObOohYnItqhecC8aSZC6u8Lln1PTPraDxaFi3QZ2wp9+3Tk7SsCn7BcNYFiwWtGFguh6Hn5xWrnTGyYKeby0Bw6YIbNuCe9Ucmht0gseQPMZNLooglXE4dvrIBrAvo8CZWZ9zM5U0pl2GAL0qmkCmoaHKLUx1irAs+IPMs73bWimDVL+KHRtZxtL9R5LJOgTcb6YFLuYsBJ0WD+r74HmI9NsTyXBYueNOuqFYkr3FxrJfxcL/1VORRmrzXovyKr0vlo7yUQdjmCXbqGWTzeFYZWWFtK7knrE0ml5NR/c+/mydsPswFHulPf1xMEg1KyiaIocDJcmJbBZRQUzGnaxrHEq0QWQNx/Vir1vfet/PeFeTd6jRv4YsezGWVyadkdDMQKUpK1SQioPCC433uRBXDKlYk6/rkpJXTWOevTw8Pd3/uPv9xI7PjlK+zIBhuGbvuVFLyzQHVcQq1TB6lJFxg5ZFVby/dfdDSWFCp3lWv1zv9tSbzRmTNmgNDdg6UmcJBdSDy8H2C/9uzctepgSjsiYidreC/IP4Lg2MzlWA5OGEgzZgQQjARY2OKNJsEAklhEzBaJFkRsgpaiQqKsuu5wnYeeICKBxaK2vjNeqyuN4KVX+Z4O2/mzXzz3sv+2J9uwQvENL7zj9hvaOGL6+Im/BC9lFua1uHDpw4Pz+39ORZ0/4D0R5oLt37Db0Fujp1Iv7nrNgOa2Zfc5viC1pYPtK4e2QhaX+POnbqOh8M79bv95z48wH6UPXv279+zf88xCBDnsh7+IKHgk9ZgBCIAcT4ZBYpje46hOYZu3mAYk2BdWwS08swcx/B8BhRnzpz+BvdRPuLVq7339m3btXMHfsrcuvPVszmt7Rs3LtMa3pnWd+5Mp9O6rlurd422NQxXua3oXcswrNLq4qgsY41R3LYKrZtV7igeuUjJqjqRZa6BJW42at1RPWphIW7rUVx6yrMs4ZZG3HheUXox5g2x7vDh0agd1WVrlCUmw15ZlvWwrMu6HQ6HdVNP66GuGocRSqdOHUbRFRgO27ZuW4+OB6+vXTsAXD165em9JVqx0elDu0q5buyxnhjMIIwzanJuKNX3WZpmWaYybnLT4+hUT02TppxTRlMtMuYxqpjnMKdnpsqUvg5DMEmFYsrw8BEDEGgQBAPmc5961HMo8bwwsBlhjhcyzyCksIuozJu8KYs1+fnreTFFLSbNtAQ/0PqEwxq6vXbo5BvQejaeJUu0OOMZDrM65Sx1e+X2HOdnYAU2VQVCZtWbppkw5qAQJm3pi474QkiHEM4dTxiMWZCltAiOyzxSdnCVdrFnGJ7rcs6tLGO95YQDPx8MbGDNGtvOcxsfiHYp96wSgRLXZVR6RdPkmHK9KNbYa9CfP38d9fwNjUePprrcOXXnzuHh4deHDu6e03o4XqLlCGkG1EyShPMkoEnAk4RCMCkPwsSUArfqWEIQ9HEkmslkOolVLKK666K4iKSALu5c14qEEQkErtVbAnQaz3csg8BRPfccx2McN2g1LCR27vug54fhIBwMiNUbvcoMlbkWYt91h/GwrqNJU+RgrmmBkCYFLjce3RxFUTQprq8R18+/Pf/61ssHt0ArTR8u0SK4Od+xfQIjeidH9lZXRoV0lE9CQoQsiGyKopnYRRFFxWQyqZsi6qK2c42ua8XI7QqlhNUaCg9u3pKWOuEarhEpSXwiLSmJxDYhFYzkwi8K34fCd6Q/CMMwqR5XNEQ4UkR1rzxVGaMSmEYFti3yQnvr/HVNbTJ5hIAajYYnTkhN9u3rl89fvnx54NqaaDkI16y5nuc5JUR1QiEjSOUqNzZOnRoSEhBKie0HQhSI+Hw6nUzySdT1Bs7u4kYJdbCQSF8y88OjToxMhRhmAuBCKIQtvO2HPgK1BDujafSKxtJ5Fdx+fOn445nOODxAkiZBsDpJVlcpTdOK0dXVicfHj186/uLy5QsXLty9cPnyC6zA0G2zO3FidPPJk5uoGku0NiBN4s6SLFWVmepcYqloLYNFYLvG922cAlJnRA0QRW4XScmkwyg1TTIYDODs0B7QMCRUOC6TKS4dNhwHYUtTZkrmmNJjhDOfIoUM6fE0xVEvXb50vEqCMAgpgKxDQCIsg/F4NjsOXLoMKnc/Mjn+GHkOy2nAeUA9nziiKZrYiJAN1EfsrFuitXY9XU1NvBh4YJo8Nc2MswD2cwQniSLf1tGiQ7GxRBd3SlkCr0xLOVnm+EJJuFn2nHLkIpVMKCIp5QOOXJRS+lTBofqVyJGtIerq6vglfe2Xbt9evTpIAHS6nT0G0xeXoQIuv4A/bs9mM2jTBJkOEC/0PFjgKDija2ZValb4C4mm+JJZu2KZ17owSUOHyE7kob5927fR2LgQAj6i86Xl0FSZHKEmOHOkGyGF/FzaeUQIDk8sgclwDWXEgXcZsUmINBowJ6SoPiFhgLPfhgfuakazh7MZmDwcP3yIsblTzt698AJegerhw/F4HIxxkvFYVyxMNRHTpLAWSOJwzipupvxEmp2oqio9sXrd2lXLtFatWrXyb/FTC//A+irN6ltin5TfsYf2J5tgyapFh0Z3S9KioC5pIXy1CfqFsBhcrFgsX8z8PivQmgPqj8DIEn6uWQGzCxt/Cqz9EgtLWlzofrLBit8AJqFZGlsW0f9w9bKM7pdzv130sxn/8R//8R//8RO8B5HntV+IjNJSAAAAAElFTkSuQmCC", + "image": "/api/images/system/wind_speed_card_with_background.png", "description": "Displays the latest wind speed telemetry in a scalable rectangle card with the background image.", "descriptor": { "type": "latest", @@ -17,7 +17,7 @@ "settingsDirective": "tb-value-card-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind speed card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"labelPosition\":\"top\",\"layout\":\"square\",\"showLabel\":true,\"labelFont\":{\"family\":\"Roboto\",\"size\":16,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"labelColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showIcon\":true,\"iconSize\":40,\"iconSizeUnit\":\"px\",\"icon\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/wind_speed_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind speed card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"m/s\",\"decimals\":1,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"titleFont\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1.6\"},\"titleIcon\":\"\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"14px\",\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"14px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":null,\"weight\":null,\"style\":null,\"lineHeight\":\"1\"},\"color\":null}}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json b/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json index 44d770721c..a26c4fdd94 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_chart_card", "name": "Wind speed chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/wind_speed_chart_card.png", "description": "Displays a wind speed data by combining the latest and aggregated values with an optional simplified chart.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json index bd7a1b472e..c3f8d3a96b 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_chart_card_with_background", "name": "Wind speed chart card with background", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "/api/images/system/wind_speed_chart_card_with_background.png", "description": "Displays a wind speed data by combining the latest and aggregated values with the background image and optional simplified chart.", "descriptor": { "type": "timeseries", @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"imageUrl\",\"imageBase64\":null,\"imageUrl\":\"/api/images/system/wind_speed_chart_card_with_background#background_image.png\",\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java new file mode 100644 index 0000000000..a07fca0f06 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java @@ -0,0 +1,212 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.install.update; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.hash.Hashing; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.util.MediaTypeUtils; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Base64; +import java.util.Map; +import java.util.Optional; +import java.util.TreeMap; + +@Slf4j +public class SystemImagesMigrator { // TEMPORARY + + private static final Path dataDir = Path.of( + "/home/*/thingsboard-ce/application/src/main/data" + ); + private static final Path imagesDir = dataDir.resolve("images"); + private static final Path widgetBundlesDir = dataDir.resolve("json").resolve("system").resolve("widget_bundles"); + private static final Path widgetTypesDir = dataDir.resolve("json").resolve("system").resolve("widget_types"); + private static final Path demoDashboardsDir = dataDir.resolve("json").resolve("demo").resolve("dashboards"); + + private static final Map imageNames = new TreeMap<>(); + + public static void main(String[] args) throws Exception { + Files.createDirectories(imagesDir); + Path imageNamesFile = imagesDir.resolve("names.json"); + if (imageNamesFile.toFile().exists()) { + Map existingImageNames = JacksonUtil.OBJECT_MAPPER.readValue(imageNamesFile.toFile(), new TypeReference<>() {}); + imageNames.putAll(existingImageNames); + } + + Files.list(widgetTypesDir).forEach(file -> { + ObjectNode widgetTypeJson = (ObjectNode) JacksonUtil.toJsonNode(file.toFile()); + updateWidget(widgetTypeJson); + saveJson(file, widgetTypeJson); + }); + + Files.list(widgetBundlesDir).forEach(file -> { + JsonNode widgetsBundleDescriptorJson = JacksonUtil.toJsonNode(file.toFile()); + ObjectNode widgetsBundleJson = (ObjectNode) widgetsBundleDescriptorJson.get("widgetsBundle"); + updateWidgetsBundle(widgetsBundleJson); + saveJson(file, widgetsBundleDescriptorJson); + }); + + Files.list(demoDashboardsDir).forEach(file -> { + ObjectNode dashboardJson = (ObjectNode) JacksonUtil.toJsonNode(file.toFile()); + updateDashboard(dashboardJson); + saveJson(file, dashboardJson); + }); + + saveJson(imageNamesFile, JacksonUtil.valueToTree(imageNames)); + } + + public static void updateWidgetsBundle(ObjectNode widgetsBundleJson) { + String widgetsBundleName = widgetsBundleJson.get("title").asText(); + String widgetsBundleAlias = widgetsBundleJson.get("alias").asText(); + + String image = getText(widgetsBundleJson, "image"); + String imageLink = saveImage(widgetsBundleName + " - image", widgetsBundleAlias, image, "widget_bundles"); + widgetsBundleJson.put("image", imageLink); + } + + public static void updateWidget(ObjectNode widgetJson) { + String widgetName = widgetJson.get("name").asText(); + String widgetFqn = widgetJson.get("fqn").asText(); + + String previewImage = widgetJson.get("image").asText(); + String previewImageLink = saveImage(widgetName + " - image", widgetFqn, previewImage, "widgets"); + widgetJson.put("image", previewImageLink); + + ObjectNode descriptor = (ObjectNode) widgetJson.get("descriptor"); + JsonNode defaultConfig = JacksonUtil.toJsonNode(descriptor.get("defaultConfig").asText()); + updateWidgetConfig(defaultConfig, widgetName, widgetFqn, "widgets"); + descriptor.put("defaultConfig", defaultConfig.toString()); + } + + public static void updateDashboard(ObjectNode dashboardJson) { + String title = dashboardJson.get("title").asText(); + String imageNamePrefix = title + " dashboard"; + String imageKeyPrefix = title.replace(" ", "_").toLowerCase(); + + String image = getText(dashboardJson, "image"); + String imageLink = saveImage(imageNamePrefix + " - image", imageKeyPrefix + ".image", image, "dashboards"); + dashboardJson.put("image", imageLink); + + dashboardJson.get("configuration").get("widgets").elements().forEachRemaining(widgetConfig -> { + String fqn; + if (widgetConfig.has("typeFullFqn")) { + fqn = StringUtils.substringAfter(widgetConfig.get("typeFullFqn").asText(), "."); // removing prefix ('system' or 'tenant') + } else { + fqn = widgetConfig.get("bundleAlias").asText() + "." + widgetConfig.get("typeAlias").asText(); + } + String widgetName = widgetConfig.get("config").get("title").asText(); + updateWidgetConfig(widgetConfig.get("config"), + imageNamePrefix + " - " + widgetName + " widget", + imageKeyPrefix + "." + fqn + "###" + widgetConfig.get("id").asText(), + "dashboards"); + }); + } + + private static void updateWidgetConfig(JsonNode widgetConfigJson, + String imageNamePrefix, String imageKeyPrefix, + String directory) { + ObjectNode widgetSettings = (ObjectNode) widgetConfigJson.get("settings"); + ArrayNode markerImages = (ArrayNode) widgetSettings.get("markerImages"); + if (markerImages != null && !markerImages.isEmpty()) { + for (int i = 0; i < markerImages.size(); i++) { + String imageName = imageNamePrefix + " - marker image " + (i + 1); + String imageKey = imageKeyPrefix + "#marker_image_" + (i + 1); + String imageLink = saveImage(imageName, imageKey, markerImages.get(i).asText(), directory); + markerImages.set(i, imageLink); + } + } + + String mapImage = getText(widgetSettings, "mapImageUrl"); + if (mapImage != null) { + String imageName = imageNamePrefix + " - map image"; + String imageKeySuffix = "#map_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(imageName, imageKey, mapImage, directory); + widgetSettings.put("mapImageUrl", imageLink); + } + + String backgroundImage = getText(widgetSettings, "backgroundImageUrl"); + if (backgroundImage != null) { + String imageName = imageNamePrefix + " - background image"; + String imageKeySuffix = "#background_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(imageName, imageKey, backgroundImage, directory); + widgetSettings.put("backgroundImageUrl", imageLink); + } + + JsonNode backgroundConfigNode = widgetSettings.get("background"); + if (backgroundConfigNode != null && backgroundConfigNode.isObject()) { + ObjectNode backgroundConfig = (ObjectNode) backgroundConfigNode; + if ("image".equals(getText(backgroundConfig, "type"))) { + String imageBase64 = getText(backgroundConfig, "imageBase64"); + if (imageBase64 != null) { + String imageName = imageNamePrefix + " - background image"; + String imageKeySuffix = "#background_image"; + String imageKey = imageKeyPrefix + imageKeySuffix; + String imageLink = saveImage(imageName, imageKey, imageBase64, directory); + backgroundConfig.set("imageBase64", null); + backgroundConfig.put("imageUrl", imageLink); + backgroundConfig.put("type", "imageUrl"); + } + } + } + } + + @SneakyThrows + private static String saveImage(String imageName, String imageKey, String data, String subDirectory) { + if (data == null) { + return null; + } + String base64Data = StringUtils.substringAfter(data, "base64,"); + if (base64Data.isEmpty()) { + return data; + } + String imageMediaType = StringUtils.substringBetween(data, "data:", ";base64"); + String extension = MediaTypeUtils.mediaTypeToFileExtension(imageMediaType); + imageKey += "." + extension; + + byte[] image = Base64.getDecoder().decode(base64Data); + Files.createDirectories(imagesDir.resolve(subDirectory)); + Path file = imagesDir.resolve(subDirectory).resolve(imageKey); + Files.deleteIfExists(file); + Files.write(file, image); + imageNames.put(imageKey, imageName); + log.info("New image {} ('{}')", imageKey, imageName); + return "/api/images/system/" + imageKey; + } + + private static String getText(JsonNode jsonNode, String field) { + return Optional.ofNullable(jsonNode.get(field)) + .filter(JsonNode::isTextual) + .map(JsonNode::asText).orElse(null); + } + + @SneakyThrows + private static void saveJson(Path file, JsonNode json) { + Files.write(file, JacksonUtil.toPrettyString(json).getBytes(StandardCharsets.UTF_8)); + } + +} From 55df765916c741173ad95a18ff3fe5221d4ee41b Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 8 Nov 2023 21:30:08 +0200 Subject: [PATCH 007/162] Upgrade scripts for images migration --- .../install/ThingsboardInstallService.java | 4 +- .../service/install/InstallScripts.java | 66 ++- .../service/install/update/ImagesUpdater.java | 219 ++++--- .../service/install/InstallScriptsTest.java | 536 ------------------ .../server/dao/resource/ResourceService.java | 2 +- .../server/dao/widget/WidgetTypeService.java | 2 + .../dao/widget/WidgetsBundleService.java | 2 + .../common/data/util/MediaTypeUtils.java | 25 +- .../dao/resource/BaseResourceService.java | 5 +- .../dao/sql/widget/JpaWidgetTypeDao.java | 5 + .../dao/sql/widget/JpaWidgetsBundleDao.java | 6 +- .../dao/sql/widget/WidgetTypeRepository.java | 3 + .../server/dao/widget/WidgetTypeDao.java | 2 + .../dao/widget/WidgetTypeServiceImpl.java | 5 + .../server/dao/widget/WidgetsBundleDao.java | 2 + .../dao/widget/WidgetsBundleServiceImpl.java | 5 + 16 files changed, 256 insertions(+), 633 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index f37d1f37bc..f95ffdf620 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -280,7 +280,8 @@ public class ThingsboardInstallService { log.info("Updating system data..."); dataUpdateService.upgradeRuleNodes(); systemDataLoaderService.updateSystemWidgets(); - installScripts.updateDashboards(); // fixme: can't work properly if widgets not updated first + installScripts.updateSystemImages(); +// installScripts.migrateTenantImages(); installScripts.loadSystemLwm2mResources(); } log.info("Upgrade finished successfully!"); @@ -323,6 +324,7 @@ public class ThingsboardInstallService { // systemDataLoaderService.loadSystemPlugins(); // systemDataLoaderService.loadSystemRules(); + installScripts.updateSystemImages(); installScripts.loadSystemLwm2mResources(); if (loadDemo) { diff --git a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java index 62232a1637..838d09ed5a 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java +++ b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java @@ -15,7 +15,9 @@ */ package org.thingsboard.server.service.install; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +31,7 @@ import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate; import org.thingsboard.server.common.data.page.PageDataIterable; import org.thingsboard.server.common.data.rule.RuleChain; @@ -51,6 +54,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.function.Function; @@ -80,6 +84,7 @@ public class InstallScripts { public static final String DASHBOARDS_DIR = "dashboards"; public static final String MODELS_LWM2M_DIR = "lwm2m-registry"; public static final String CREDENTIALS_DIR = "credentials"; + public static final String IMAGES_DIR = "images"; public static final String JSON_EXT = ".json"; public static final String XML_EXT = ".xml"; @@ -200,7 +205,8 @@ public class InstallScripts { path -> { try { JsonNode widgetTypeJson = JacksonUtil.toJsonNode(path.toFile()); - saveWidgetType(widgetTypeJson); + WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); + widgetTypeService.saveWidgetType(widgetTypeDetails); } catch (Exception e) { log.error("Unable to load widget type from json: [{}]", path.toString()); throw new RuntimeException("Unable to load widget type from json", e); @@ -217,7 +223,6 @@ public class InstallScripts { JsonNode widgetsBundleDescriptorJson = JacksonUtil.toJsonNode(path.toFile()); JsonNode widgetsBundleJson = widgetsBundleDescriptorJson.get("widgetsBundle"); WidgetsBundle widgetsBundle = JacksonUtil.treeToValue(widgetsBundleJson, WidgetsBundle.class); - imagesUpdater.updateWidgetsBundleImages(widgetsBundle); WidgetsBundle savedWidgetsBundle = widgetsBundleService.saveWidgetsBundle(widgetsBundle); List widgetTypeFqns = new ArrayList<>(); if (widgetsBundleDescriptorJson.has("widgetTypes")) { @@ -225,7 +230,8 @@ public class InstallScripts { widgetTypesArrayJson.forEach( widgetTypeJson -> { try { - var savedWidgetType = saveWidgetType(widgetTypeJson); + WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); + var savedWidgetType = widgetTypeService.saveWidgetType(widgetTypeDetails); widgetTypeFqns.add(savedWidgetType.getFqn()); } catch (Exception e) { log.error("Unable to load widget type from json: [{}]", path.toString()); @@ -250,28 +256,58 @@ public class InstallScripts { } } - private WidgetTypeDetails saveWidgetType(JsonNode widgetTypeJson) { - WidgetTypeDetails widgetTypeDetails = JacksonUtil.treeToValue(widgetTypeJson, WidgetTypeDetails.class); - try { - imagesUpdater.updateWidgetImages(widgetTypeDetails); - } catch (Exception e) { - log.warn("Failed to process images for widget type {}", widgetTypeDetails.getName(), e); - } - return widgetTypeService.saveWidgetType(widgetTypeDetails); + @SneakyThrows + public void updateSystemImages() { + Path imagesDir = Paths.get(getDataDir(), IMAGES_DIR); + Map imageNames = JacksonUtil.OBJECT_MAPPER.readValue(imagesDir.resolve("names.json").toFile(), new TypeReference<>() {}); + + Files.walk(imagesDir) + .filter(path -> path.toFile().isFile()) + .filter(path -> !path.getFileName().toString().endsWith("json")) + .forEach(imageFile -> { + imagesUpdater.updateSystemImage(imageFile, imageNames); + }); } - public void updateDashboards() { + public void migrateTenantImages() { + var widgetsBundles = new PageDataIterable<>(widgetsBundleService::findAllWidgetsBundles, 100); + for (WidgetsBundle widgetsBundle : widgetsBundles) { + try { + boolean updated = imagesUpdater.updateWidgetsBundle(widgetsBundle); + if (updated) { + widgetsBundleService.saveWidgetsBundle(widgetsBundle); + log.info("[{}][{}][{}] Migrated widgets bundle images", widgetsBundle.getTenantId(), widgetsBundle.getId(), widgetsBundle.getTitle()); + } + } catch (Exception e) { + log.error("[{}][{}][{}] Failed to migrate widgets bundle images", widgetsBundle.getTenantId(), widgetsBundle.getId(), widgetsBundle.getTitle(), e); + } + } + + var widgetTypes = new PageDataIterable<>(widgetTypeService::findAllWidgetTypesIds, 1024); + for (WidgetTypeId widgetTypeId : widgetTypes) { + WidgetTypeDetails widgetTypeDetails = widgetTypeService.findWidgetTypeDetailsById(TenantId.SYS_TENANT_ID, widgetTypeId); + try { + boolean updated = imagesUpdater.updateWidget(widgetTypeDetails); + if (updated) { + widgetTypeService.saveWidgetType(widgetTypeDetails); + log.info("[{}][{}][{}] Migrated widget type images", widgetTypeDetails.getTenantId(), widgetTypeDetails.getId(), widgetTypeDetails.getName()); + } + } catch (Exception e) { + log.error("[{}][{}][{}] Failed to migrate widget type images", widgetTypeDetails.getTenantId(), widgetTypeDetails.getId(), widgetTypeDetails.getName(), e); + } + } + var dashboards = new PageDataIterable<>(dashboardService::findAllDashboardsIds, 1024); for (DashboardId dashboardId : dashboards) { Dashboard dashboard = dashboardService.findDashboardById(TenantId.SYS_TENANT_ID, dashboardId); - log.debug("Updating images for dashboard '{}' ({})", dashboard.getTitle(), dashboardId); try { - boolean updated = imagesUpdater.updateDashboardImages(dashboard); + boolean updated = imagesUpdater.updateDashboard(dashboard); if (updated) { dashboardService.saveDashboard(dashboard); + log.info("[{}][{}][{}] Migrated dashboard images", dashboard.getTenantId(), dashboardId, dashboard.getTitle()); } } catch (Exception e) { - log.error("Failed to update images for dashboard '{}' ({})", dashboard.getTitle(), dashboardId, e); + log.error("[{}][{}][{}] Failed to migrate dashboard images", dashboard.getTenantId(), dashboardId, dashboard.getTitle(), e); } } } diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index 051c4eb054..e4b8defc56 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -1,9 +1,26 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.service.install.update; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.Data; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -18,86 +35,129 @@ import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.resource.ResourceService; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Base64; import java.util.List; +import java.util.Map; import java.util.Optional; @Component -//@Profile("install") @Slf4j @RequiredArgsConstructor public class ImagesUpdater { private final ResourceService resourceService; + private static final String IMAGE_NAME_SUFFIX = " - image"; + private static final String BACKGROUND_IMAGE_NAME_SUFFIX = " - background image"; + private static final String BACKGROUND_IMAGE_KEY_SUFFIX = "#background_image"; + private static final String MAP_IMAGE_NAME_SUFFIX = " - map image"; + private static final String MAP_IMAGE_KEY_SUFFIX = "#map_image"; + private static final String MARKER_IMAGE_NAME_SUFFIX = " - marker image "; + private static final String MARKER_IMAGE_KEY_SUFFIX = "#marker_image_"; + + @SneakyThrows + public void updateSystemImage(Path imageFile, Map imageNames) { + String imageKey = imageFile.getFileName().toString(); + String imageName = imageNames.get(imageKey); + if (imageName == null) { + throw new IllegalArgumentException("Image name is missing for " + imageKey + ". Please add it to names.json file"); + } + byte[] imageData = Files.readAllBytes(imageFile); + String mediaType = MediaTypeUtils.fileExtensionToMediaType("image", StringUtils.substringAfterLast(imageKey, ".")); + try { + saveImage(TenantId.SYS_TENANT_ID, imageName, imageKey, imageData, mediaType, null); + } catch (Exception e) { + log.error("Failed to save system image {}", imageKey, e); + } + } - // TODO: solution templates - - - public void updateWidgetImages(WidgetTypeDetails widgetTypeDetails) { - String imageName = widgetTypeDetails.getName() + " - image"; - String imageKey = widgetTypeDetails.getFqn(); - String imageLink = saveImage(imageName, imageKey, widgetTypeDetails.getImage()); - widgetTypeDetails.setImage(imageLink); + public boolean updateDashboard(Dashboard dashboard) { + String imageKeyPrefix = "dashboard_" + dashboard.getUuidId(); + String image = dashboard.getImage(); + ImageSaveResult result = saveImage(dashboard.getTenantId(), dashboard.getTitle() + IMAGE_NAME_SUFFIX, + imageKeyPrefix + ".image", image, null); + dashboard.setImage(result.getLink()); + boolean updated = result.isUpdated(); - JsonNode defaultConfig = JacksonUtil.toJsonNode(widgetTypeDetails.getDescriptor().get("defaultConfig").asText()); - defaultConfig = updateWidgetConfig(TenantId.SYS_TENANT_ID, defaultConfig, imageName, imageKey, imageKey); - ((ObjectNode) widgetTypeDetails.getDescriptor()).put("defaultConfig", defaultConfig.toString()); + for (ObjectNode widgetConfig : dashboard.getWidgetsConfig()) { + String fqn; + if (widgetConfig.has("typeFullFqn")) { + fqn = StringUtils.substringAfter(widgetConfig.get("typeFullFqn").asText(), "."); // removing prefix ('system' or 'tenant') + } else { + fqn = widgetConfig.get("bundleAlias").asText() + "." + widgetConfig.get("typeAlias").asText(); + } + String widgetName = widgetConfig.get("config").get("title").asText(); + updated |= updateWidgetConfig(dashboard.getTenantId(), widgetConfig.get("config"), + dashboard.getTitle() + " - " + widgetName + " widget", + imageKeyPrefix + "." + fqn, fqn); + } + return updated; } - public void updateWidgetsBundleImages(WidgetsBundle widgetsBundle) { - String imageLink = saveImage(widgetsBundle.getTitle(), widgetsBundle.getAlias(), widgetsBundle.getImage()); + public boolean updateWidgetsBundle(WidgetsBundle widgetsBundle) { + String bundleName = widgetsBundle.getTitle(); + String bundleAlias = widgetsBundle.getAlias(); + + String image = widgetsBundle.getImage(); + ImageSaveResult result = saveImage(widgetsBundle.getTenantId(), bundleName + IMAGE_NAME_SUFFIX, bundleAlias, image, bundleAlias); + String imageLink = result.getLink(); widgetsBundle.setImage(imageLink); + + return result.isUpdated(); } - public boolean updateDashboardImages(Dashboard dashboard) { - String imageNamePrefix = dashboard.getTitle(); - String imageKeyPrefix = "dashboard_" + dashboard.getUuidId(); - boolean updated = false; + public boolean updateWidget(WidgetTypeDetails widgetType) { + String widgetName = widgetType.getName(); + String widgetFqn = widgetType.getFqn(); + boolean updated; - String imageLink = saveImage(dashboard.getTenantId(), imageNamePrefix + " - image", imageKeyPrefix + ".image", dashboard.getImage(), null); - dashboard.setImage(imageLink); + String previewImage = widgetType.getImage(); + ImageSaveResult result = saveImage(widgetType.getTenantId(), widgetName + IMAGE_NAME_SUFFIX, widgetFqn, previewImage, widgetFqn); + updated = result.isUpdated(); + widgetType.setImage(result.getLink()); - for (ObjectNode widgetConfig : dashboard.getWidgetsConfig()) { - String alias = widgetConfig.get("bundleAlias").asText() + "." + widgetConfig.get("typeAlias").asText(); - String widgetName = widgetConfig.get("config").get("title").asText(); - updateWidgetConfig(dashboard.getTenantId(), widgetConfig.get("config"), - imageNamePrefix + " - " + widgetName + " widget", - imageKeyPrefix + ".widget." + alias, alias); + JsonNode descriptor = widgetType.getDescriptor(); + if (!descriptor.isObject()) { + return updated; } - + JsonNode defaultConfig = JacksonUtil.toJsonNode(descriptor.get("defaultConfig").asText()); + updated |= updateWidgetConfig(widgetType.getTenantId(), defaultConfig, widgetName, widgetFqn, widgetFqn); + ((ObjectNode) descriptor).put("defaultConfig", defaultConfig.toString()); return updated; } - private JsonNode updateWidgetConfig(TenantId tenantId, JsonNode widgetConfig, - String imageNamePrefix, String imageKeyPrefix, - String fqn) { - ObjectNode widgetSettings = (ObjectNode) widgetConfig.get("settings"); + private boolean updateWidgetConfig(TenantId tenantId, JsonNode widgetConfigJson, String imageNamePrefix, String imageKeyPrefix, String widgetFqn) { + boolean updated = false; + ObjectNode widgetSettings = (ObjectNode) widgetConfigJson.get("settings"); ArrayNode markerImages = (ArrayNode) widgetSettings.get("markerImages"); if (markerImages != null && !markerImages.isEmpty()) { for (int i = 0; i < markerImages.size(); i++) { - String imageName = imageNamePrefix + " - marker image " + (i + 1); - String imageKey = imageKeyPrefix + ".marker_image_" + (i + 1); - String imageLink = saveImage(tenantId, imageName, imageKey, markerImages.get(i).asText(), fqn + ".marker_image_"); - markerImages.set(i, imageLink); + String imageName = imageNamePrefix + MARKER_IMAGE_NAME_SUFFIX + (i + 1); + String imageKey = imageKeyPrefix + MARKER_IMAGE_KEY_SUFFIX + (i + 1); + ImageSaveResult result = saveImage(tenantId, imageName, imageKey, markerImages.get(i).asText(), widgetFqn); + markerImages.set(i, result.getLink()); + updated |= result.isUpdated(); } } String mapImage = getText(widgetSettings, "mapImageUrl"); if (mapImage != null) { - String imageName = imageNamePrefix + " - map image"; - String imageKeySuffix = ".map_image"; - String imageKey = imageKeyPrefix + imageKeySuffix; - String imageLink = saveImage(tenantId, imageName, imageKey, mapImage, fqn + imageKeySuffix); - widgetSettings.put("mapImageUrl", imageLink); + String imageName = imageNamePrefix + MAP_IMAGE_NAME_SUFFIX; + String imageKey = imageKeyPrefix + MAP_IMAGE_KEY_SUFFIX; + ImageSaveResult result = saveImage(tenantId, imageName, imageKey, mapImage, widgetFqn); + widgetSettings.put("mapImageUrl", result.getLink()); + updated |= result.isUpdated(); } String backgroundImage = getText(widgetSettings, "backgroundImageUrl"); if (backgroundImage != null) { - String imageName = imageNamePrefix + " - background image"; - String imageKeySuffix = ".background_image"; - String imageKey = imageKeyPrefix + imageKeySuffix; - String imageLink = saveImage(tenantId, imageName, imageKey, backgroundImage, fqn + imageKeySuffix); - widgetSettings.put("backgroundImageUrl", imageLink); + String imageName = imageNamePrefix + BACKGROUND_IMAGE_NAME_SUFFIX; + String imageKey = imageKeyPrefix + BACKGROUND_IMAGE_KEY_SUFFIX; + ImageSaveResult result = saveImage(tenantId, imageName, imageKey, backgroundImage, widgetFqn); + widgetSettings.put("backgroundImageUrl", result.getLink()); + updated |= result.isUpdated(); } JsonNode backgroundConfigNode = widgetSettings.get("background"); @@ -106,49 +166,47 @@ public class ImagesUpdater { if ("image".equals(getText(backgroundConfig, "type"))) { String imageBase64 = getText(backgroundConfig, "imageBase64"); if (imageBase64 != null) { - String imageName = imageNamePrefix + " - background image"; - String imageKeySuffix = ".background_image"; - String imageKey = imageKeyPrefix + imageKeySuffix; - String imageLink = saveImage(tenantId, imageName, imageKey, imageBase64, fqn + imageKeySuffix); + String imageName = imageNamePrefix + BACKGROUND_IMAGE_NAME_SUFFIX; + String imageKey = imageKeyPrefix + BACKGROUND_IMAGE_KEY_SUFFIX; + ImageSaveResult result = saveImage(tenantId, imageName, imageKey, imageBase64, widgetFqn); backgroundConfig.set("imageBase64", null); - backgroundConfig.put("imageUrl", imageLink); + backgroundConfig.put("imageUrl", result.getLink()); backgroundConfig.put("type", "imageUrl"); + updated |= result.isUpdated(); } } } - - return widgetConfig; - } - - private String getText(JsonNode jsonNode, String field) { - return Optional.ofNullable(jsonNode.get(field)) - .filter(JsonNode::isTextual) - .map(JsonNode::asText).orElse(null); + return updated; } - private String saveImage(String title, String key, String data) { - return saveImage(TenantId.SYS_TENANT_ID, title, key, data, null); - } - private String saveImage(TenantId tenantId, String title, String key, String data, - String existingImageQuery) { + private ImageSaveResult saveImage(TenantId tenantId, String name, String key, String data, + String existingImageQuery) { if (data == null) { - return null; + return new ImageSaveResult(null, false); } String base64Data = StringUtils.substringAfter(data, "base64,"); if (base64Data.isEmpty()) { - return data; + return new ImageSaveResult(data, false); } + String imageMediaType = StringUtils.substringBetween(data, "data:", ";base64"); - String extension = MediaTypeUtils.getFileExtension(imageMediaType); + String extension = MediaTypeUtils.mediaTypeToFileExtension(imageMediaType); key += "." + extension; + byte[] imageData = Base64.getDecoder().decode(base64Data); + String imageLink = saveImage(tenantId, name, key, imageData, imageMediaType, existingImageQuery); + return new ImageSaveResult(imageLink, !imageLink.equals(data)); + } + + private String saveImage(TenantId tenantId, String name, String key, byte[] imageData, String mediaType, + String existingImageQuery) { TbResourceInfo resourceInfo = resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, key); if (resourceInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { - List existing = resourceService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, base64Data, existingImageQuery); - if (!existing.isEmpty()) { - resourceInfo = existing.get(0); - if (existing.size() > 1) { + List existingSystemImages = resourceService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); + if (!existingSystemImages.isEmpty()) { + resourceInfo = existingSystemImages.get(0); + if (existingSystemImages.size() > 1) { log.warn("Found more than one system image resources for key {}", existingImageQuery); } log.info("Using system image {} for {}", resourceInfo.getLink(), key); @@ -166,15 +224,26 @@ public class ImagesUpdater { } else { return resourceInfo.getLink(); } - resource.setTitle(title); + resource.setTitle(name); resource.setFileName(key); - resource.setMediaType(imageMediaType); - resource.setBase64Data(base64Data); + resource.setMediaType(mediaType); + resource.setData(imageData); resource = resourceService.saveResource(resource); - log.info("[{}] {} image '{}' {} ({})", tenantId, resourceInfo == null ? "Created" : "Updated", - resource.getTitle(), resource.getResourceKey(), resource.getLink()); + log.info("[{}] {} image '{}' ({})", tenantId, resourceInfo == null ? "Created" : "Updated", + resource.getTitle(), resource.getResourceKey()); return resource.getLink(); + } + + private String getText(JsonNode jsonNode, String field) { + return Optional.ofNullable(jsonNode.get(field)) + .filter(JsonNode::isTextual) + .map(JsonNode::asText).orElse(null); + } + @Data + public static class ImageSaveResult { + private final String link; + private final boolean updated; } } diff --git a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java index af9ec8267d..26eead0ec7 100644 --- a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java +++ b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java @@ -23,9 +23,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.SpyBean; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.Dashboard; -import org.thingsboard.server.common.data.ResourceType; -import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.rule.RuleChain; @@ -39,7 +36,6 @@ import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.usagerecord.ApiLimitService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; -import org.thingsboard.server.service.install.update.ImagesUpdater; import java.io.IOException; import java.nio.file.Path; @@ -50,8 +46,6 @@ import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; @Slf4j @SpringBootTest(classes = {InstallScripts.class, RuleChainDataValidator.class}) @@ -78,27 +72,12 @@ class InstallScriptsTest { ApiLimitService apiLimitService; @SpyBean RuleChainDataValidator ruleChainValidator; - @SpyBean - ImagesUpdater imagesUpdater; - TenantId tenantId = TenantId.fromUUID(UUID.fromString("9ef79cdf-37a8-4119-b682-2e7ed4e018da")); @BeforeEach void setUp() { willReturn(true).given(tenantService).tenantExists(tenantId); willReturn(true).given(apiLimitService).checkEntitiesLimit(any(), any()); - - when(resourceService.saveResource(any())).thenAnswer(inv -> { - TbResource resource = inv.getArgument(0); - if (resource.getResourceType() == ResourceType.IMAGE) { - resource.setLink(String.format("/api/images/%s/%s", - resource.getTenantId().isSysTenantId() ? - "system" : resource.getTenantId().toString(), - resource.getResourceKey() - )); - } - return resource; - }); } @Test @@ -137,519 +116,4 @@ class InstallScriptsTest { .containsExactlyInAnyOrderElementsOf(Collections.emptyList()); } - @Test - public void testWidgetsUpdate() throws Exception { - installScripts.loadSystemWidgets(); - } - - @Test - public void testImagesUpdater() { - ImagesUpdater imagesUpdater = new ImagesUpdater(resourceService); - Dashboard dashboard = new Dashboard(); - dashboard.setConfiguration(JacksonUtil.toJsonNode(dashboardConfig)); - dashboard.setTenantId(tenantId); - imagesUpdater.updateDashboardImages(dashboard); - System.err.println("Updated config: " + dashboard.getConfiguration().toPrettyString()); - } - - - public static final String dashboardConfig = "{\n" + - " \"description\": \"\",\n" + - " \"widgets\": {\n" + - " \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\": {\n" + - " \"typeFullFqn\": \"system.cards.value_card\",\n" + - " \"type\": \"latest\",\n" + - " \"sizeX\": 3,\n" + - " \"sizeY\": 3,\n" + - " \"config\": {\n" + - " \"datasources\": [\n" + - " {\n" + - " \"type\": \"device\",\n" + - " \"name\": \"\",\n" + - " \"deviceId\": \"09bfc8f0-b376-11ed-af9a-5f9d1fc4febb\",\n" + - " \"dataKeys\": [\n" + - " {\n" + - " \"name\": \"temperature\",\n" + - " \"type\": \"timeseries\",\n" + - " \"label\": \"Temperature\",\n" + - " \"color\": \"#2196f3\",\n" + - " \"settings\": {},\n" + - " \"_hash\": 0.790442736163091\n" + - " }\n" + - " ],\n" + - " \"alarmFilterConfig\": {\n" + - " \"statusList\": [\n" + - " \"ACTIVE\"\n" + - " ]\n" + - " }\n" + - " }\n" + - " ],\n" + - " \"timewindow\": {\n" + - " \"displayValue\": \"\",\n" + - " \"selectedTab\": 0,\n" + - " \"realtime\": {\n" + - " \"realtimeType\": 1,\n" + - " \"interval\": 1000,\n" + - " \"timewindowMs\": 60000,\n" + - " \"quickInterval\": \"CURRENT_DAY\"\n" + - " },\n" + - " \"history\": {\n" + - " \"historyType\": 0,\n" + - " \"interval\": 1000,\n" + - " \"timewindowMs\": 60000,\n" + - " \"fixedTimewindow\": {\n" + - " \"startTimeMs\": 1698052629317,\n" + - " \"endTimeMs\": 1698139029317\n" + - " },\n" + - " \"quickInterval\": \"CURRENT_DAY\"\n" + - " },\n" + - " \"aggregation\": {\n" + - " \"type\": \"AVG\",\n" + - " \"limit\": 25000\n" + - " }\n" + - " },\n" + - " \"showTitle\": false,\n" + - " \"backgroundColor\": \"rgba(0, 0, 0, 0)\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"padding\": \"0px\",\n" + - " \"settings\": {\n" + - " \"labelPosition\": \"top\",\n" + - " \"layout\": \"square\",\n" + - " \"showLabel\": true,\n" + - " \"labelFont\": {\n" + - " \"family\": \"Roboto\",\n" + - " \"size\": 16,\n" + - " \"sizeUnit\": \"px\",\n" + - " \"style\": \"normal\",\n" + - " \"weight\": \"500\"\n" + - " },\n" + - " \"labelColor\": {\n" + - " \"type\": \"constant\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + - " },\n" + - " \"showIcon\": true,\n" + - " \"iconSize\": 40,\n" + - " \"iconSizeUnit\": \"px\",\n" + - " \"icon\": \"thermostat\",\n" + - " \"iconColor\": {\n" + - " \"type\": \"constant\",\n" + - " \"color\": \"#5469FF\",\n" + - " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + - " },\n" + - " \"valueFont\": {\n" + - " \"family\": \"Roboto\",\n" + - " \"size\": 52,\n" + - " \"sizeUnit\": \"px\",\n" + - " \"style\": \"normal\",\n" + - " \"weight\": \"500\"\n" + - " },\n" + - " \"valueColor\": {\n" + - " \"type\": \"constant\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + - " },\n" + - " \"showDate\": true,\n" + - " \"dateFormat\": {\n" + - " \"format\": null,\n" + - " \"lastUpdateAgo\": true,\n" + - " \"custom\": false\n" + - " },\n" + - " \"dateFont\": {\n" + - " \"family\": \"Roboto\",\n" + - " \"size\": 12,\n" + - " \"sizeUnit\": \"px\",\n" + - " \"style\": \"normal\",\n" + - " \"weight\": \"500\"\n" + - " },\n" + - " \"dateColor\": {\n" + - " \"type\": \"constant\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.38)\",\n" + - " \"colorFunction\": \"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"\n" + - " },\n" + - " \"background\": {\n" + - " \"type\": \"image\",\n" + - " \"imageBase64\": \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wCEAAQEBAQEBAUFBQUHBwYHBwoJCAgJCg8KCwoLCg8WDhAODhAOFhQYExITGBQjHBgYHCMpIiAiKTEsLDE+Oz5RUW0BBAQEBAQEBQUFBQcHBgcHCgkICAkKDwoLCgsKDxYOEA4OEA4WFBgTEhMYFCMcGBgcIykiICIpMSwsMT47PlFRbf/CABEIAtAEsAMBEQACEQEDEQH/xAA2AAEAAgIDAQEAAAAAAAAAAAAABQYEBwIDCAEJAQEAAwEBAQEAAAAAAAAAAAAAAQIDBAUGB//aAAwDAQACEAMQAAAA9/AAAAAAAXwsX42s7RHUMhntDzk8zlsOrsWZoeolQ8zbG7KF+Bf/Z\",\n" + - " \"imageUrl\": \"http://localhost:8080/api/resource/myimage\",\n" + - " \"color\": \"#fff\",\n" + - " \"overlay\": {\n" + - " \"enabled\": false,\n" + - " \"color\": \"rgba(255,255,255,0.72)\",\n" + - " \"blur\": 3\n" + - " }\n" + - " },\n" + - " \"autoScale\": true\n" + - " },\n" + - " \"title\": \"Value card\",\n" + - " \"dropShadow\": true,\n" + - " \"enableFullscreen\": false,\n" + - " \"titleStyle\": {\n" + - " \"fontSize\": \"16px\",\n" + - " \"fontWeight\": 400\n" + - " },\n" + - " \"units\": \"°C\",\n" + - " \"decimals\": 0,\n" + - " \"useDashboardTimewindow\": true,\n" + - " \"showLegend\": false,\n" + - " \"widgetStyle\": {},\n" + - " \"actions\": {},\n" + - " \"configMode\": \"basic\",\n" + - " \"displayTimewindow\": true,\n" + - " \"margin\": \"0px\",\n" + - " \"borderRadius\": \"0px\",\n" + - " \"widgetCss\": \"\",\n" + - " \"pageSize\": 1024,\n" + - " \"noDataDisplayMessage\": \"\",\n" + - " \"showTitleIcon\": false,\n" + - " \"titleTooltip\": \"\",\n" + - " \"titleFont\": {\n" + - " \"size\": 12,\n" + - " \"sizeUnit\": \"px\",\n" + - " \"family\": null,\n" + - " \"weight\": null,\n" + - " \"style\": null,\n" + - " \"lineHeight\": \"1.6\"\n" + - " },\n" + - " \"titleIcon\": \"\",\n" + - " \"iconColor\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"iconSize\": \"14px\",\n" + - " \"timewindowStyle\": {\n" + - " \"showIcon\": true,\n" + - " \"iconSize\": \"14px\",\n" + - " \"icon\": \"query_builder\",\n" + - " \"iconPosition\": \"left\",\n" + - " \"font\": {\n" + - " \"size\": 12,\n" + - " \"sizeUnit\": \"px\",\n" + - " \"family\": null,\n" + - " \"weight\": null,\n" + - " \"style\": null,\n" + - " \"lineHeight\": \"1\"\n" + - " },\n" + - " \"color\": null\n" + - " }\n" + - " },\n" + - " \"row\": 0,\n" + - " \"col\": 0,\n" + - " \"id\": \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\"\n" + - " },\n" + - " \"01ad2980-87c8-5813-18a2-47833d8f6df7\": {\n" + - " \"typeFullFqn\": \"system.date.date_range_navigator\",\n" + - " \"type\": \"static\",\n" + - " \"sizeX\": 5,\n" + - " \"sizeY\": 5.5,\n" + - " \"config\": {\n" + - " \"datasources\": [\n" + - " {\n" + - " \"type\": \"static\",\n" + - " \"name\": \"function\",\n" + - " \"dataKeys\": [\n" + - " {\n" + - " \"name\": \"f(x)\",\n" + - " \"type\": \"function\",\n" + - " \"label\": \"Random\",\n" + - " \"color\": \"#2196f3\",\n" + - " \"settings\": {},\n" + - " \"_hash\": 0.15479322438769105,\n" + - " \"funcBody\": \"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"\n" + - " }\n" + - " ]\n" + - " }\n" + - " ],\n" + - " \"timewindow\": {\n" + - " \"realtime\": {\n" + - " \"timewindowMs\": 60000\n" + - " }\n" + - " },\n" + - " \"showTitle\": true,\n" + - " \"backgroundColor\": \"#C32F2F\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"padding\": \"8px\",\n" + - " \"settings\": {\n" + - " \"defaultInterval\": \"week\",\n" + - " \"stepSize\": \"day\",\n" + - " \"useSessionStorage\": true\n" + - " },\n" + - " \"title\": \"Date-range-navigator\",\n" + - " \"dropShadow\": true,\n" + - " \"enableFullscreen\": true,\n" + - " \"widgetStyle\": {},\n" + - " \"titleStyle\": {\n" + - " \"fontSize\": \"16px\",\n" + - " \"fontWeight\": 400\n" + - " },\n" + - " \"useDashboardTimewindow\": true,\n" + - " \"showLegend\": false,\n" + - " \"actions\": {},\n" + - " \"showTitleIcon\": false,\n" + - " \"titleTooltip\": \"\",\n" + - " \"widgetCss\": \"\",\n" + - " \"pageSize\": 1024,\n" + - " \"noDataDisplayMessage\": \"\"\n" + - " },\n" + - " \"row\": 0,\n" + - " \"col\": 0,\n" + - " \"id\": \"01ad2980-87c8-5813-18a2-47833d8f6df7\"\n" + - " },\n" + - " \"6dc68681-97fe-dca5-5df6-b5006797c9eb\": {\n" + - " \"typeFullFqn\": \"system.maps_v2.image_map\",\n" + - " \"type\": \"latest\",\n" + - " \"sizeX\": 8.5,\n" + - " \"sizeY\": 6.5,\n" + - " \"config\": {\n" + - " \"datasources\": [\n" + - " {\n" + - " \"type\": \"entity\",\n" + - " \"name\": \"\",\n" + - " \"entityAliasId\": \"50e40fe7-fd33-e93e-88f6-212acfa1b311\",\n" + - " \"filterId\": null,\n" + - " \"dataKeys\": [\n" + - " {\n" + - " \"name\": \"pressure\",\n" + - " \"type\": \"timeseries\",\n" + - " \"label\": \"pressure\",\n" + - " \"color\": \"#2196f3\",\n" + - " \"settings\": {},\n" + - " \"_hash\": 0.38936754782620264\n" + - " }\n" + - " ],\n" + - " \"alarmFilterConfig\": {\n" + - " \"statusList\": [\n" + - " \"ACTIVE\"\n" + - " ]\n" + - " }\n" + - " }\n" + - " ],\n" + - " \"timewindow\": {\n" + - " \"displayValue\": \"\",\n" + - " \"selectedTab\": 0,\n" + - " \"realtime\": {\n" + - " \"realtimeType\": 1,\n" + - " \"interval\": 1000,\n" + - " \"timewindowMs\": 60000,\n" + - " \"quickInterval\": \"CURRENT_DAY\"\n" + - " },\n" + - " \"history\": {\n" + - " \"historyType\": 0,\n" + - " \"interval\": 1000,\n" + - " \"timewindowMs\": 60000,\n" + - " \"fixedTimewindow\": {\n" + - " \"startTimeMs\": 1698064891779,\n" + - " \"endTimeMs\": 1698151291779\n" + - " },\n" + - " \"quickInterval\": \"CURRENT_DAY\"\n" + - " },\n" + - " \"aggregation\": {\n" + - " \"type\": \"AVG\",\n" + - " \"limit\": 25000\n" + - " }\n" + - " },\n" + - " \"showTitle\": true,\n" + - " \"backgroundColor\": \"#fff\",\n" + - " \"color\": \"rgba(0, 0, 0, 0.87)\",\n" + - " \"padding\": \"8px\",\n" + - " \"settings\": {\n" + - " \"provider\": \"image-map\",\n" + - " \"gmApiKey\": \"AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q\",\n" + - " \"gmDefaultMapType\": \"roadmap\",\n" + - " \"mapProvider\": \"OpenStreetMap.Mapnik\",\n" + - " \"useCustomProvider\": false,\n" + - " \"customProviderTileUrl\": \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n" + - " \"mapProviderHere\": \"HERE.normalDay\",\n" + - " \"credentials\": {\n" + - " \"useV3\": true,\n" + - " \"app_id\": \"AhM6TzD9ThyK78CT3ptx\",\n" + - " \"app_code\": \"p6NPiITB3Vv0GMUFnkLOOg\",\n" + - " \"apiKey\": \"kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE\"\n" + - " },\n" + - " \"mapImageUrl\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyIAAAKqCAYAAADG2epfAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xd4VFX+x/H3nZ6e0ORK5CYII=\",\n" + - " \"tmApiKey\": \"84d6d83e0e51e481e50454ccbe8986b\",\n" + - " \"tmDefaultMapType\": \"roadmap\",\n" + - " \"latKeyName\": \"latitude\",\n" + - " \"lngKeyName\": \"longitude\",\n" + - " \"xPosKeyName\": \"xPos\",\n" + - " \"yPosKeyName\": \"yPos\",\n" + - " \"defaultCenterPosition\": \"0,0\",\n" + - " \"disableScrollZooming\": false,\n" + - " \"disableDoubleClickZooming\": false,\n" + - " \"disableZoomControl\": false,\n" + - " \"fitMapBounds\": true,\n" + - " \"useDefaultCenterPosition\": false,\n" + - " \"mapPageSize\": 16384,\n" + - " \"markerOffsetX\": 0.5,\n" + - " \"markerOffsetY\": 1,\n" + - " \"posFunction\": \"return {x: origXPos, y: origYPos};\",\n" + - " \"draggableMarker\": false,\n" + - " \"showLabel\": true,\n" + - " \"useLabelFunction\": false,\n" + - " \"label\": \"${entityName}\",\n" + - " \"showTooltip\": true,\n" + - " \"showTooltipAction\": \"click\",\n" + - " \"autocloseTooltip\": true,\n" + - " \"useTooltipFunction\": false,\n" + - " \"tooltipPattern\": \"${entityName}

    X Pos: ${xPos:2}
    Y Pos: ${yPos:2}
    Temperature: ${temperature} °C
    See advanced settings for details\",\n" + - " \"tooltipOffsetX\": 0,\n" + - " \"tooltipOffsetY\": -1,\n" + - " \"color\": \"#fe7569\",\n" + - " \"useColorFunction\": true,\n" + - " \"colorFunction\": \"var type = dsData[dsIndex]['Type'];\\nif (type == 'colorpin') {\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120 * 100;\\n\\t return tinycolor.mix('blue', 'red', percent).toHexString();\\n\\t}\\n\\treturn 'blue';\\n}\\n\",\n" + - " \"useMarkerImageFunction\": true,\n" + - " \"markerImageSize\": 34,\n" + - " \"markerImageFunction\": \"var type = dsData[dsIndex]['Type'];\\nif (type == 'thermometer') {\\n\\tvar res = {\\n\\t url: images[0],\\n\\t size: 40\\n\\t}\\n\\tvar temperature = dsData[dsIndex]['temperature'];\\n\\tif (typeof temperature !== undefined) {\\n\\t var percent = (temperature + 60)/120;\\n\\t var index = Math.min(3, Math.floor(4 * percent));\\n\\t res.url = images[index];\\n\\t}\\n\\treturn res;\\n}\",\n" + - " \"markerImages\": [\n" + - " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAwgSURBVGiB7Zt5cBT3lce/v18fc89oRoPEIRBCHIUxp2ywCAgIxLExvoidZIFNxXE2VXHirIO3aqtSseM43qpNeZfYKecox3bhpJykYgd2w45TMcyQHIAOgBcBbAUUJI5uOM/wcaHmf3g9UM7QAAAABJRU5ErkJggg==\",\n" + - " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA3vSURBVGiB7Vt7cFzVef+dc+/d90OrJyO/JSOFqAtyOKzKo83MLgAkgA2AAQB+ADgCfAzjBGIsPxfh/6wbDK7xbMFYAAAAASUVORK5CYII=\",\n" + - " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdg7EC8/8BoAc0AekgE+B/cAWpVTqSMb/AlY1WXIncMcxAAAAAElFTkSuQmCC\",\n" + - " \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdJRU5ErkJggg==\"\n" + - " ],\n" + - " \"showPolygon\": false,\n" + - " \"polygonKeyName\": \"perimeter\",\n" + - " \"editablePolygon\": false,\n" + - " \"showPolygonLabel\": false,\n" + - " \"usePolygonLabelFunction\": false,\n" + - " \"polygonLabel\": \"${entityName}\",\n" + - " \"showPolygonTooltip\": false,\n" + - " \"showPolygonTooltipAction\": \"click\",\n" + - " \"autoClosePolygonTooltip\": true,\n" + - " \"usePolygonTooltipFunction\": false,\n" + - " \"polygonTooltipPattern\": \"${entityName}

    TimeStamp: ${ts:7}\",\n" + - " \"polygonColor\": \"#3388ff\",\n" + - " \"polygonOpacity\": 0.2,\n" + - " \"usePolygonColorFunction\": false,\n" + - " \"polygonStrokeColor\": \"#3388ff\",\n" + - " \"polygonStrokeOpacity\": 1,\n" + - " \"polygonStrokeWeight\": 3,\n" + - " \"usePolygonStrokeColorFunction\": false,\n" + - " \"showCircle\": false,\n" + - " \"circleKeyName\": \"perimeter\",\n" + - " \"editableCircle\": false,\n" + - " \"showCircleLabel\": false,\n" + - " \"useCircleLabelFunction\": false,\n" + - " \"circleLabel\": \"${entityName}\",\n" + - " \"showCircleTooltip\": false,\n" + - " \"showCircleTooltipAction\": \"click\",\n" + - " \"autoCloseCircleTooltip\": true,\n" + - " \"useCircleTooltipFunction\": false,\n" + - " \"circleTooltipPattern\": \"${entityName}

    TimeStamp: ${ts:7}\",\n" + - " \"circleFillColor\": \"#3388ff\",\n" + - " \"circleFillColorOpacity\": 0.2,\n" + - " \"useCircleFillColorFunction\": false,\n" + - " \"circleStrokeColor\": \"#3388ff\",\n" + - " \"circleStrokeOpacity\": 1,\n" + - " \"circleStrokeWeight\": 3,\n" + - " \"useCircleStrokeColorFunction\": false\n" + - " },\n" + - " \"title\": \"Image Map\",\n" + - " \"dropShadow\": true,\n" + - " \"enableFullscreen\": true,\n" + - " \"titleStyle\": {\n" + - " \"fontSize\": \"16px\",\n" + - " \"fontWeight\": 400\n" + - " },\n" + - " \"useDashboardTimewindow\": true,\n" + - " \"showLegend\": false,\n" + - " \"widgetStyle\": {},\n" + - " \"actions\": {},\n" + - " \"displayTimewindow\": true\n" + - " },\n" + - " \"row\": 0,\n" + - " \"col\": 0,\n" + - " \"id\": \"6dc68681-97fe-dca5-5df6-b5006797c9eb\"\n" + - " }\n" + - " },\n" + - " \"states\": {\n" + - " \"default\": {\n" + - " \"name\": \"Images\",\n" + - " \"root\": true,\n" + - " \"layouts\": {\n" + - " \"main\": {\n" + - " \"widgets\": {\n" + - " \"24b26b1e-bdd0-8b2b-2a96-be150b21ae5e\": {\n" + - " \"sizeX\": 6,\n" + - " \"sizeY\": 5,\n" + - " \"row\": 0,\n" + - " \"col\": 18\n" + - " },\n" + - " \"01ad2980-87c8-5813-18a2-47833d8f6df7\": {\n" + - " \"sizeX\": 5,\n" + - " \"sizeY\": 5,\n" + - " \"row\": 0,\n" + - " \"col\": 13\n" + - " },\n" + - " \"6dc68681-97fe-dca5-5df6-b5006797c9eb\": {\n" + - " \"sizeX\": 8,\n" + - " \"sizeY\": 6,\n" + - " \"row\": 6,\n" + - " \"col\": 13\n" + - " }\n" + - " },\n" + - " \"gridSettings\": {\n" + - " \"backgroundColor\": \"#eeeeee\",\n" + - " \"columns\": 24,\n" + - " \"margin\": 10,\n" + - " \"outerMargin\": true,\n" + - " \"backgroundSizeMode\": \"auto\",\n" + - " \"autoFillHeight\": false,\n" + - " \"backgroundImageUrl\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyIAAAKqCAYAAADG2epfAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzscvuw4MRvxaz5gVL8owhtF0n7gs8zcmnLxWDL3sejVwbSPaER4uzt4fl4saeVj6pOIiIjcIP4fn4t1aCx7Vb0AAAAASUVORK5CYII=\",\n" + - " \"mobileAutoFillHeight\": false,\n" + - " \"mobileRowHeight\": 70\n" + - " }\n" + - " }\n" + - " }\n" + - " }\n" + - " },\n" + - " \"entityAliases\": {\n" + - " \"50e40fe7-fd33-e93e-88f6-212acfa1b311\": {\n" + - " \"id\": \"50e40fe7-fd33-e93e-88f6-212acfa1b311\",\n" + - " \"alias\": \"aa\",\n" + - " \"filter\": {\n" + - " \"type\": \"entityList\",\n" + - " \"resolveMultiple\": true,\n" + - " \"entityType\": \"DEVICE\",\n" + - " \"entityList\": [\n" + - " \"5a6c89e0-5ea9-11ed-8ee5-3570b5c0f66a\"\n" + - " ]\n" + - " }\n" + - " }\n" + - " },\n" + - " \"filters\": {},\n" + - " \"timewindow\": {\n" + - " \"hideInterval\": false,\n" + - " \"hideLastInterval\": false,\n" + - " \"hideQuickInterval\": false,\n" + - " \"hideAggregation\": false,\n" + - " \"hideAggInterval\": false,\n" + - " \"hideTimezone\": false,\n" + - " \"selectedTab\": 1,\n" + - " \"history\": {\n" + - " \"historyType\": 1,\n" + - " \"fixedTimewindow\": {\n" + - " \"startTimeMs\": 1697576400000,\n" + - " \"endTimeMs\": 1698181199999\n" + - " },\n" + - " \"interval\": 1210000\n" + - " },\n" + - " \"aggregation\": {\n" + - " \"type\": \"AVG\",\n" + - " \"limit\": 25000\n" + - " }\n" + - " },\n" + - " \"settings\": {\n" + - " \"stateControllerId\": \"entity\",\n" + - " \"showTitle\": false,\n" + - " \"showDashboardsSelect\": true,\n" + - " \"showEntitiesSelect\": true,\n" + - " \"showDashboardTimewindow\": true,\n" + - " \"showDashboardExport\": true,\n" + - " \"toolbarAlwaysOpen\": true,\n" + - " \"titleColor\": \"rgba(0,0,0,0.870588)\",\n" + - " \"showDashboardLogo\": true,\n" + - " \"dashboardLogoUrl\": \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wCEAAQEBAQEBAUFBQUHBwYHBwoJCAgJCg8KCwoLCg8WDhAODhAOFhQYExITGBQjHBgYHCMpIiAiKTEsLDE+Oz5RlQ8zbG7KF+Bf/Z\",\n" + - " \"hideToolbar\": false,\n" + - " \"showFilters\": true,\n" + - " \"showUpdateDashboardImage\": true,\n" + - " \"dashboardCss\": \"\"\n" + - " }\n" + - "}"; - } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 33fece3292..7240b1b742 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -60,6 +60,6 @@ public interface ResourceService extends EntityDaoService { long sumDataSizeByTenantId(TenantId tenantId); - List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, String base64Data, String query); + List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java index d8df5d61a3..6db79821b9 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java @@ -62,4 +62,6 @@ public interface WidgetTypeService extends EntityDaoService { void deleteWidgetTypesByTenantId(TenantId tenantId); + PageData findAllWidgetTypesIds(PageLink pageLink); + } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java index a836fb893d..224cb9511f 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java @@ -46,6 +46,8 @@ public interface WidgetsBundleService extends EntityDaoService { List findAllTenantWidgetsBundlesByTenantId(TenantId tenantId); + PageData findAllWidgetsBundles(PageLink pageLink); + void deleteWidgetsBundlesByTenantId(TenantId tenantId); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java index 2858293499..4170cc738d 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java @@ -1,7 +1,23 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.common.data.util; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.springframework.util.MimeType; import org.springframework.util.MimeTypeUtils; import java.util.Map; @@ -14,9 +30,16 @@ public class MediaTypeUtils { "svg+xml", "svg" ); - public static String getFileExtension(String mimeType) { + public static String mediaTypeToFileExtension(String mimeType) { String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); return mappings.getOrDefault(subtype, subtype); } + public static String fileExtensionToMediaType(String type, String extension) { + String subtype = mappings.entrySet().stream() + .filter(mapping -> mapping.getValue().equals(extension)) + .map(Map.Entry::getKey).findFirst().orElse(extension); + return new MimeType(type, subtype).toString(); + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index c896376bc4..a045a06290 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -44,7 +44,6 @@ import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.validator.ResourceDataValidator; -import java.util.Base64; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -222,8 +221,8 @@ public class BaseResourceService extends AbstractCachedEntityService findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, String base64Data, String query) { - String etag = calculateEtag(Base64.getDecoder().decode(base64Data)); + public List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query) { + String etag = calculateEtag(data); return resourceInfoDao.findByTenantIdAndEtagAndKeyStartingWith(tenantId, etag, query); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index 7700e71bc4..a821191629 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -225,6 +225,11 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findAllWidgetTypesIds(PageLink pageLink) { + return DaoUtil.pageToPageData(widgetTypeRepository.findAllIds(DaoUtil.toPageable(pageLink)).map(WidgetTypeId::new)); + } + @Override public EntityType getEntityType() { return EntityType.WIDGET_TYPE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index a5051a2747..2475da8fb7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -33,7 +33,6 @@ import org.thingsboard.server.dao.widget.WidgetsBundleDao; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -103,6 +102,11 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findAllWidgetsBundles(PageLink pageLink) { + return DaoUtil.toPageData(widgetsBundleRepository.findAll(DaoUtil.toPageable(pageLink))); + } + private PageData findTenantWidgetsBundlesByTenantIds(List tenantIds, boolean fullSearch, PageLink pageLink) { if (fullSearch) { return DaoUtil.toPageData( diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java index f4b3dec5bb..d85f486a05 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java @@ -76,4 +76,7 @@ public interface WidgetTypeRepository extends JpaRepository findAllIds(Pageable pageable); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java index 96d93a34f1..55fb5bcff4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java @@ -108,4 +108,6 @@ public interface WidgetTypeDao extends Dao, ExportableEntityD void removeWidgetTypeFromWidgetsBundle(UUID widgetsBundleId, UUID widgetTypeId); + PageData findAllWidgetTypesIds(PageLink pageLink); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java index 2e347f2b62..975e0cc9a1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java @@ -221,6 +221,11 @@ public class WidgetTypeServiceImpl implements WidgetTypeService { tenantWidgetTypeRemover.removeEntities(tenantId, tenantId); } + @Override + public PageData findAllWidgetTypesIds(PageLink pageLink) { + return widgetTypeDao.findAllWidgetTypesIds(pageLink); + } + @Override public Optional> findEntity(TenantId tenantId, EntityId entityId) { return Optional.ofNullable(findWidgetTypeById(tenantId, new WidgetTypeId(entityId.getId()))); diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java index 9e0d70dcd8..e83da6cc8e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java @@ -83,5 +83,7 @@ public interface WidgetsBundleDao extends Dao, ExportableEntityDa */ PageData findTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink); + PageData findAllWidgetsBundles(PageLink pageLink); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java index 87a507873d..82acae9fff 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java @@ -167,6 +167,11 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { return widgetsBundles; } + @Override + public PageData findAllWidgetsBundles(PageLink pageLink) { + return widgetsBundleDao.findAllWidgetsBundles(pageLink); + } + @Override public void deleteWidgetsBundlesByTenantId(TenantId tenantId) { log.trace("Executing deleteWidgetsBundlesByTenantId, tenantId [{}]", tenantId); From e1ceacedcaf2d5b5eb7f03265edc3bb2dcb17151 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 8 Nov 2023 21:40:23 +0200 Subject: [PATCH 008/162] Migrate images for new widgets --- application/src/main/data/images/names.json | 2 ++ .../src/main/data/images/widgets/doughnut.png | Bin 0 -> 4146 bytes .../data/images/widgets/horizontal_doughnut.png | Bin 0 -> 3957 bytes .../data/json/system/widget_types/doughnut.json | 2 +- .../system/widget_types/doughnut_deprecated.json | 2 +- .../system/widget_types/horizontal_doughnut.json | 2 +- .../install/update/SystemImagesMigrator.java | 2 -- 7 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 application/src/main/data/images/widgets/doughnut.png create mode 100644 application/src/main/data/images/widgets/horizontal_doughnut.png diff --git a/application/src/main/data/images/names.json b/application/src/main/data/images/names.json index 9b2aff0576..e9fd7c362c 100644 --- a/application/src/main/data/images/names.json +++ b/application/src/main/data/images/names.json @@ -76,6 +76,7 @@ "digital_gauges.simple_gauge_justgage.png" : "Simple gauge - image", "digital_gauges.simple_neon_gauge_justgage.png" : "Simple neon gauge - image", "digital_gauges.vertical_bar_justgage.png" : "Vertical bar - image", + "doughnut.png" : "Doughnut - image", "edge_widgets.edges_overview.png" : "Edge Quick Overview - image", "edge_widgets.png" : "Edge widgets - image", "entity_admin_widgets.asset_admin_table.png" : "Asset admin table - image", @@ -129,6 +130,7 @@ "horizontal_co2_card_with_background.png" : "Horizontal CO2 card with background - image", "horizontal_cylinder_tank.png" : "Horizontal cylinder tank - image", "horizontal_dish_ends_tank.png" : "Horizontal dish ends tank - image", + "horizontal_doughnut.png" : "Horizontal doughnut - image", "horizontal_ellipse_tank.png" : "Horizontal ellipse tank - image", "horizontal_flooding_level_card.png" : "Horizontal flooding level card - image", "horizontal_flooding_level_card_with_background#background_image.png" : "Horizontal flooding level card with background - background image", diff --git a/application/src/main/data/images/widgets/doughnut.png b/application/src/main/data/images/widgets/doughnut.png new file mode 100644 index 0000000000000000000000000000000000000000..726ea0a0375eed37030f9b488d01abd0e92836b6 GIT binary patch literal 4146 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/horizontal_doughnut.png b/application/src/main/data/images/widgets/horizontal_doughnut.png new file mode 100644 index 0000000000000000000000000000000000000000..3dfd15bd31d43cd0944e408b8430885b9e3304a1 GIT binary patch literal 3957 zcmV-*4~p=KP)j|f0004}P)t-s`T6<% z{r&&{{{R30_V)Jj^78if_W%F?|Ns98hb#YIYX1HG^Yiog`1t4N=lc5k|B#sM?Cc>S zA@T9?>+0(6?(Y2j{LjwL!otF~wzkN~$b-X`|JmEx+SFNK1i`LcE|NHzWmPX^_;|HH@s;p6|>+|lXSMWtZk;o*dYgtFPaMx|h6vwHup zwEv~7|M>a;=IH<4;MCOA|GB;|FE9VGxBqi}|4mx|>FfWSq8E-h|MvI)^7F8;ux)K^ zVPRoPN=pCS-~VZI|L^ht^7%r6b7hk>6o?)DCMu5-Gi_VicHJ~tz7*Oh zm6&Dpn-~T!n9`~YU|4i2c&D%7n4I&fxNq9JW1qmt3> zqTi&vesIH_=^frAN~TPr(%jV?Ik5@~qhL4MG9|7v82u*mQX8iCu-j&mVdaY%9jeU} z6#(3}LYaat7yTv!soB%N;+<)sqC|*m%`^aB7nW`2+b+<6R+D*@2C=bT$HNj1~b1d1g z%zUgW(I%-rjkT!(5QdRZDwfF&grrBvhGJO>!&Vi>V^fJXDR20?F$U+Mm#&IwOCe;P z@$HLe&OCMcbhTPt+)K53`t+$&Gsj9(yUD<^uRKy^^kIZ91y;AEWxd@F7)v(~9jR6ioAeglLKlX-J~>_IBYM0nI<<|!zaDwVxQc5Yd<^-xD; z^@>BQ#-~yRp}}NsvaUfNlOhTsW1C{A&76wsMky= zxL~TnREgc$dGxG`Wp$*AZ~z1%eCahI5t@LAfIb290yhIgtYlTR~Q7yDe-$p}!R%x5^@0k}{s=Jc5K&yhLvFc!!}_*}Sw!&N5mOn=F<$2*U1 zy?yucvCB7~9J_w~ectzxm3){?ibZEWTX(?;;JNGAI*lgf9+BB=FebqnJJd#)U%XK`#M{Y^4w4aUb}d`CqMmP4Is zuf__660b?m_IEuZh}im(%HE0!C9PN2%6p7wzi&c=4=~U@A8KByl z2VJOCSg1k=<0`nQmlAQBP$YxUhmqi>WubETvq~Cv9HEd2MKZe#eHccfWHuN^=oTD_ zFcfHpOem5C(1}th*k9Dw$}p5fY?)9b8=x1}^-QYz>g|+9igd$l8&8YgSivpU| zDUg!IWip_5ln~wLm)$Ui4)=s&shI+ekja9$BI(wb*)Xw*LV>XJT0E- zG#Yjxq2J`;IPbS|0ss$M49qzn0HQS}^6O*$g1hw@thy(V4*D%(7`XjzG$M z0&U83=MEsm0bIZr8Fa{G@B^HyKyLp!Cf4nDyC!St)H`+)$5Ss?nY7=EXcN^a7B$K) z*jCu`-J6hQWhi{f&P(ZY#+YE>!cit_$pOhA!P`FsASHm@y7>syU9z_>Ck}Q^W{;Yb z$6*3Lx6fnXxg3_%a^86nX;QFz#{4zpN5B7``?(y>wK7gCGn~mdZje>=8|Lo#OR~rg zyTWHJA6ce;!}bMGi1`5A0|F2Sx+c`{@e}b~a9oceEBHPz&+*BG&A)I!6c6s-AGA%@Yr7qae0WLv&$biM`xOp_BY1b&g@K@V zZIcBtZ-jfNJRKZYj`7?$EHNfRla!w8p=gu5v@k*@7MW<^r%cS{=-}saJ~}K{OB3IO z9>cOh17#B|$$qbie|%dJAqSi2xZ1T<@g%~NpB>$TR4IySG1Fm@TrK#HD=!;N!SSu~zr zdGX@P428_$O2QF_#Hs5L=_mp7n~FTU3BZ1Sf$UrN2mCzh4L- z!CzEbM6%Fv6|mN*^-1TKfDDQ$iUids^8OYHlpo3nGEzf44PPRt49!y!P~iB! zAb=mLK)v&XkQXH7bv+_!)sY~QPnC5UM+r?*ftzewS7SQ425Q}%E|)VHrG6NdwTK$3 zz_0ft3Zvo=(Fwc*j35IqA`(pA$BIZO41Z`t;(pUQUg!E-2E^4;@Ai1=tx)KCwmUJ( z`im+OH7q}q8~@T!pHT2RYeRzUTo;NnL$%1wGDWinY_o^;-&%cY@lq88mYt0TQzRCyACn#x%T_Q*k|vqTs7H5;2QPn`y9P`a+J<3u*hVS zzUt1dY`94m_EeMLCaZbT(1CrXh3gc(cw}Pm#+*^ub(0H{sqL#>B$_#ZBG;QTn{bfe zn9Jv>DeTZC!si&MKF>TJ*O@n^D_wFEh9NeQeB5K*6k}aIIzHaTeYSfmxWl+9^&KyX zL$0(4A|apWx`Q+B_i^`m=_Pl|yB=I5IOg9J0X)2R?a2(nab*`)MI^K-X69#KSB=lR zgL3Ki+%eZZNZJ&xIm*$Uv(DT7US9~;>6=@Sj3o08qkY}ltKZjP-Z3K>K!}9G7lVD# zmHi*L$79)L03i~}DGU=wy7~IJ%k_#JB0*WE@SKV11aW-T2n^aF!7-tHg*`p$@CB0w zk|VOOvpH;OzGwMy5KOW!BUSIeL z@SI>@7_w~<3z)zXGtrl3HH=lJ5~Vt2=B2ChZcuSFpvw7TCda zkI+ltl+=>FOwbm+RZD3Ae$>^g5*$3@a4?ebU8k4KPgtek64}y_y-^htfrP09e!W^# zt~y6N9XE~oV$>Qx01;CO9?KeQW>(#mA}}D9pb=YW>zG>ojzPw|Hv3I$5>GCcHCwv`fgQ9DGXVzsQ(!^&vZW ztNvXFiF%1Vy+oc~B2O=or Date: Thu, 9 Nov 2023 15:15:12 +0200 Subject: [PATCH 009/162] fixed save method to not put into cache --- .../dao/asset/AssetProfileServiceImpl.java | 9 +++-- .../dao/device/DeviceProfileServiceImpl.java | 8 ++-- .../server/dao/device/DeviceServiceImpl.java | 6 ++- .../dao/entityview/EntityViewServiceImpl.java | 4 +- .../server/dao/service/AssetServiceTest.java | 39 +++++++++++++++++++ .../server/dao/service/DeviceServiceTest.java | 29 ++++++++++++++ 6 files changed, 83 insertions(+), 12 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java index 9240bbc223..fd17c484d7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java @@ -126,8 +126,8 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService idComparator = new IdComparator<>(); @@ -75,6 +91,29 @@ public class AssetServiceTest extends AbstractServiceTest { assetService.deleteAsset(tenantId, savedAsset.getId()); } + @Test + public void testShouldNotPutInCacheRolledbackAssetProfile() { + AssetProfile assetProfile = new AssetProfile(); + assetProfile.setName(StringUtils.randomAlphabetic(10)); + assetProfile.setTenantId(tenantId); + + Asset asset = new Asset(); + asset.setName("My asset" + StringUtils.randomAlphabetic(15)); + asset.setType(assetProfile.getName()); + asset.setTenantId(tenantId); + + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + TransactionStatus status = platformTransactionManager.getTransaction(def); + try { + assetProfileService.saveAssetProfile(assetProfile); + assetService.saveAsset(asset); + } finally { + platformTransactionManager.rollback(status); + } + AssetProfile assetProfileByName = assetProfileService.findAssetProfileByName(tenantId, assetProfile.getName()); + Assert.assertNull(assetProfileByName); + } + @Test public void testSaveAssetWithEmptyName() { Asset asset = new Asset(); diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java index 1073f20be4..3e404f8d1d 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/DeviceServiceTest.java @@ -22,6 +22,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.jupiter.api.Assertions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceInfo; @@ -32,6 +35,8 @@ import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.TenantProfile; +import org.thingsboard.server.common.data.asset.Asset; +import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; @@ -72,6 +77,8 @@ public class DeviceServiceTest extends AbstractServiceTest { OtaPackageService otaPackageService; @Autowired TenantProfileService tenantProfileService; + @Autowired + private PlatformTransactionManager platformTransactionManager; private IdComparator idComparator = new IdComparator<>(); private TenantId anotherTenantId; @@ -305,6 +312,28 @@ public class DeviceServiceTest extends AbstractServiceTest { }); } + @Test + public void testShouldNotPutInCacheRolledbackDeviceProfile() { + DeviceProfile deviceProfile = createDeviceProfile(tenantId, "New device Profile" + StringUtils.randomAlphabetic(5)); + + + Device device = new Device(); + device.setType(deviceProfile.getName()); + device.setTenantId(tenantId); + device.setName("My device"+ StringUtils.randomAlphabetic(5)); + + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + TransactionStatus status = platformTransactionManager.getTransaction(def); + try { + deviceProfileService.saveDeviceProfile(deviceProfile); + deviceService.saveDevice(device); + } finally { + platformTransactionManager.rollback(status); + } + DeviceProfile deviceProfileByName = deviceProfileService.findDeviceProfileByName(tenantId, deviceProfile.getName()); + Assert.assertNull(deviceProfileByName); + } + @Test public void testAssignDeviceToNonExistentCustomer() { Device device = new Device(); From d06cfa9ae0799a9b1d3529b399cb75f15dcb9a6a Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Thu, 9 Nov 2023 19:19:56 +0200 Subject: [PATCH 010/162] Tests for referenced images and system image names --- application/src/main/data/images/names.json | 1108 ++++++++--------- .../install/update/SystemImagesMigrator.java | 32 + .../service/install/InstallScriptsTest.java | 55 + 3 files changed, 641 insertions(+), 554 deletions(-) diff --git a/application/src/main/data/images/names.json b/application/src/main/data/images/names.json index e9fd7c362c..e51dc621f2 100644 --- a/application/src/main/data/images/names.json +++ b/application/src/main/data/images/names.json @@ -1,556 +1,556 @@ { - "air_quality.png" : "Air quality - image", - "air_quality_card.png" : "Air quality index card - image", - "air_quality_card_with_background#background_image.png" : "Air quality index card with background - background image", - "air_quality_card_with_background.png" : "Air quality index card with background - image", - "air_quality_chart_card.png" : "Air quality index chart card - image", - "air_quality_chart_card_with_background#background_image.png" : "Air quality index chart card with background - background image", - "air_quality_chart_card_with_background.png" : "Air quality index chart card with background - image", - "alarm_count.png" : "Alarm count - image", - "alarm_widgets.alarms_table.png" : "Alarms table - image", - "alarm_widgets.png" : "Alarm widgets - image", - "analogue_gauges.analogue_compass.png" : "Compass - image", - "analogue_gauges.png" : "Analogue gauges - image", - "analogue_gauges.radial_gauge_canvas_gauges.png" : "Radial gauge - image", - "analogue_gauges.speed_gauge_canvas_gauges.png" : "Speed gauge - image", - "analogue_gauges.temperature_gauge_canvas_gauges.png" : "Thermometer scale - image", - "analogue_gauges.temperature_radial_gauge_canvas_gauges.png" : "Temperature radial gauge - image", - "battery_level.png" : "Battery level - image", - "cards.aggregated_value_card.png" : "Value and chart card - image", - "cards.attributes_card.png" : "Attributes card - image", - "cards.dashboard_state_widget.png" : "Dashboard state widget - image", - "cards.entities_hierarchy.png" : "Entities hierarchy - image", - "cards.entities_table.png" : "Entities table - image", - "cards.horizontal_value_card.png" : "Horizontal value card - image", - "cards.html_card.png" : "HTML Card - image", - "cards.html_value_card.png" : "HTML Value Card - image", - "cards.label_widget#background_image.svg" : "Label widget - background image", - "cards.label_widget.png" : "Label widget - image", - "cards.markdown_card.png" : "Markdown/HTML Card - image", - "cards.png" : "Cards - image", - "cards.qr_code.png" : "QR Code - image", - "cards.simple_card.png" : "Simple card - image", - "cards.timeseries_table.png" : "Timeseries table - image", - "cards.value_card.png" : "Value card - image", - "charts.bars.png" : "Bars - image", - "charts.basic_timeseries.png" : "Timeseries Line Chart - image", - "charts.doughnut_chart_js.png" : "Doughnut - image", - "charts.pie.png" : "Pie - Flot - image", - "charts.pie_chart_js.png" : "Pie - Chart.js - image", - "charts.png" : "Charts - image", - "charts.polar_area_chart_js.png" : "Polar Area - image", - "charts.radar_chart_js.png" : "Radar - image", - "charts.state_chart.png" : "State Chart - image", - "charts.timeseries_bars_flot.png" : "Timeseries Bar Chart - image", - "co2_card.png" : "CO2 card - image", - "co2_card_with_background#background_image.png" : "CO2 card with background - background image", - "co2_card_with_background.png" : "CO2 card with background - image", - "co2_chart_card.png" : "CO2 chart card - image", - "co2_chart_card_with_background#background_image.png" : "CO2 chart card with background - background image", - "co2_chart_card_with_background.png" : "CO2 chart card with background - image", - "control_widgets.knob_control.png" : "Knob Control - image", - "control_widgets.led_indicator.png" : "Led indicator - image", - "control_widgets.persistent_table.png" : "Persistent RPC table - image", - "control_widgets.png" : "Control widgets - image", - "control_widgets.round_switch.png" : "Round switch - image", - "control_widgets.rpc_debug_terminal.png" : "RPC debug terminal - image", - "control_widgets.rpc_remote_shell.png" : "RPC remote shell - image", - "control_widgets.rpcbutton.png" : "RPC Button - image", - "control_widgets.slide_toggle_control.png" : "Slide Toggle Control - image", - "control_widgets.switch_control.png" : "Switch Control - image", - "control_widgets.update_attributes.png" : "Update device attribute - image", - "count_widgets.png" : "Count widgets - image", - "date.date_range_navigator.png" : "Date-range-navigator - image", - "date.png" : "Date - image", - "digital_gauges.digital_bar.png" : "Digital horizontal bar - image", - "digital_gauges.digital_speedometer.png" : "Digital speedometer - image", - "digital_gauges.digital_thermometer.png" : "Digital thermometer - image", - "digital_gauges.digital_vertical_bar.png" : "Digital vertical bar - image", - "digital_gauges.gauge_justgage.png" : "Gauge - image", - "digital_gauges.horizontal_bar_justgage.png" : "Horizontal bar - image", - "digital_gauges.lcd_bar_gauge.png" : "LCD bar gauge - image", - "digital_gauges.lcd_gauge.png" : "LCD gauge - image", - "digital_gauges.mini_gauge_justgage.png" : "Mini gauge - image", - "digital_gauges.neon_gauge_justgage.png" : "Neon gauge - image", - "digital_gauges.png" : "Digital gauges - image", - "digital_gauges.simple_gauge_justgage.png" : "Simple gauge - image", - "digital_gauges.simple_neon_gauge_justgage.png" : "Simple neon gauge - image", - "digital_gauges.vertical_bar_justgage.png" : "Vertical bar - image", - "doughnut.png" : "Doughnut - image", - "edge_widgets.edges_overview.png" : "Edge Quick Overview - image", - "edge_widgets.png" : "Edge widgets - image", - "entity_admin_widgets.asset_admin_table.png" : "Asset admin table - image", - "entity_admin_widgets.device_admin_table.png" : "Device admin table - image", - "entity_admin_widgets.png" : "Entity admin widgets - image", - "entity_count.png" : "Entity count - image", - "entity_widgets.png" : "Entity widgets - image", - "flooding_level_card.png" : "Flooding level card - image", - "flooding_level_card_with_background#background_image.png" : "Flooding level card with background - background image", - "flooding_level_card_with_background.png" : "Flooding level card with background - image", - "flooding_level_chart_card.png" : "Flooding level chart card - image", - "flooding_level_chart_card_with_background#background_image.png" : "Flooding level chart card with background - background image", - "flooding_level_chart_card_with_background.png" : "Flooding level chart card with background - image", - "flooding_level_progress_bar.png" : "Flooding level progress bar - image", - "flooding_level_progress_bar_with_background#background_image.png" : "Flooding level progress bar with background - background image", - "flooding_level_progress_bar_with_background.png" : "Flooding level progress bar with background - image", - "gateway_widgets.attributes_card.png" : "Gateway events - image", - "gateway_widgets.config_form_latest.png" : "Gateway configuration (Single device) - image", - "gateway_widgets.gateway_configuration.png" : "Gateway Configuration - image", - "gateway_widgets.gateway_connectors.png" : "Gateway connectors - image", - "gateway_widgets.gateway_custom_statistics.png" : "Gateway custom statistics - image", - "gateway_widgets.gateway_general_chart_statistics.png" : "Gateway general chart statistics - image", - "gateway_widgets.gateway_general_configuration.png" : "Gateway general configuration - image", - "gateway_widgets.gateway_logs.png" : "Gateway logs - image", - "gateway_widgets.png" : "Gateway widgets - image", - "gateway_widgets.service_rpc.png" : "Service RPC - image", - "gpio_widgets.basic_gpio_control.png" : "Basic GPIO Control - image", - "gpio_widgets.gpio_panel.png" : "Basic GPIO Panel - image", - "gpio_widgets.png" : "GPIO widgets - image", - "gpio_widgets.raspberry_pi_gpio_control.png" : "Raspberry Pi GPIO Control - image", - "gpio_widgets.raspberry_pi_gpio_panel.png" : "Raspberry Pi GPIO Panel - image", - "ground_temperature_card.png" : "Ground temperature card - image", - "ground_temperature_card_with_background#background_image.png" : "Ground temperature card with background - background image", - "ground_temperature_card_with_background.png" : "Ground temperature card with background - image", - "ground_temperature_chart_card.png" : "Ground temperature chart card - image", - "ground_temperature_chart_card_with_background#background_image.png" : "Ground temperature chart card with background - background image", - "ground_temperature_chart_card_with_background.png" : "Ground temperature chart card with background - image", - "home_page_widgets.dashboards.png" : "Dashboards - image", - "home_page_widgets.documentation_links.png" : "Documentation links - image", - "home_page_widgets.getting_started.png" : "Getting started - image", - "home_page_widgets.png" : "Home page widgets - image", - "home_page_widgets.quick_links.png" : "Quick links - image", - "home_page_widgets.usage_info.png" : "Usage info - image", - "horizontal_2_1_elliptical_tank.png" : "Horizontal 2:1 elliptical tank - image", - "horizontal_air_quality_card.png" : "Horizontal air quality index card - image", - "horizontal_air_quality_card_with_background#background_image.png" : "Horizontal air quality index card with background - background image", - "horizontal_air_quality_card_with_background.png" : "Horizontal air quality index card with background - image", - "horizontal_capsule_tank.png" : "Horizontal capsule tank - image", - "horizontal_co2_card.png" : "Horizontal CO2 card - image", - "horizontal_co2_card_with_background#background_image.png" : "Horizontal CO2 card with background - background image", - "horizontal_co2_card_with_background.png" : "Horizontal CO2 card with background - image", - "horizontal_cylinder_tank.png" : "Horizontal cylinder tank - image", - "horizontal_dish_ends_tank.png" : "Horizontal dish ends tank - image", - "horizontal_doughnut.png" : "Horizontal doughnut - image", - "horizontal_ellipse_tank.png" : "Horizontal ellipse tank - image", - "horizontal_flooding_level_card.png" : "Horizontal flooding level card - image", - "horizontal_flooding_level_card_with_background#background_image.png" : "Horizontal flooding level card with background - background image", - "horizontal_flooding_level_card_with_background.png" : "Horizontal flooding level card with background - image", - "horizontal_ground_temperature_card.png" : "Horizontal ground temperature card - image", - "horizontal_ground_temperature_card_with_background#background_image.png" : "Horizontal ground temperature card with background - background image", - "horizontal_ground_temperature_card_with_background.png" : "Horizontal ground temperature card with background - image", - "horizontal_humidity_card.png" : "Horizontal humidity card - image", - "horizontal_humidity_card_with_background#background_image.png" : "Horizontal humidity card with background - background image", - "horizontal_humidity_card_with_background.png" : "Horizontal humidity card with background - image", - "horizontal_illuminance_card.png" : "Horizontal illuminance card - image", - "horizontal_illuminance_card_with_background#background_image.png" : "Horizontal illuminance card with background - background image", - "horizontal_illuminance_card_with_background.png" : "Horizontal illuminance card with background - image", - "horizontal_leaf_wetness_card.png" : "Horizontal leaf wetness card - image", - "horizontal_leaf_wetness_card_with_background#background_image.png" : "Horizontal leaf wetness card with background - background image", - "horizontal_leaf_wetness_card_with_background.png" : "Horizontal leaf wetness card with background - image", - "horizontal_noise_level_card.png" : "Horizontal noise level card - image", - "horizontal_noise_level_card_with_background#background_image.png" : "Horizontal noise level card with background - background image", - "horizontal_noise_level_card_with_background.png" : "Horizontal noise level card with background - image", - "horizontal_oval_tank.png" : "Horizontal oval tank - image", - "horizontal_pm10_card.png" : "Horizontal PM10 card - image", - "horizontal_pm10_card_with_background#background_image.png" : "Horizontal PM10 card with background - background image", - "horizontal_pm10_card_with_background.png" : "Horizontal PM10 card with background - image", - "horizontal_pm2_5_card.png" : "Horizontal PM2.5 card - image", - "horizontal_pm2_5_card_with_background#background_image.png" : "Horizontal PM2.5 card with background - background image", - "horizontal_pm2_5_card_with_background.png" : "Horizontal PM2.5 card with background - image", - "horizontal_pressure_card.png" : "Horizontal pressure card - image", - "horizontal_pressure_card_with_background#background_image.png" : "Horizontal pressure card with background - background image", - "horizontal_pressure_card_with_background.png" : "Horizontal pressure card with background - image", - "horizontal_radon_level_card.png" : "Horizontal radon level card - image", - "horizontal_radon_level_card_with_background#background_image.png" : "Horizontal radon level card with background - background image", - "horizontal_radon_level_card_with_background.png" : "Horizontal radon level card with background - image", - "horizontal_rainfall_card.png" : "Horizontal rainfall card - image", - "horizontal_rainfall_card_with_background#background_image.png" : "Horizontal rainfall card with background - background image", - "horizontal_rainfall_card_with_background.png" : "Horizontal rainfall card with background - image", - "horizontal_snow_depth_card.png" : "Horizontal snow depth card - image", - "horizontal_snow_depth_card_with_background#background_image.png" : "Horizontal snow depth card with background - background image", - "horizontal_snow_depth_card_with_background.png" : "Horizontal snow depth card with background - image", - "horizontal_soil_moisture_card.png" : "Horizontal soil moisture card - image", - "horizontal_soil_moisture_card_with_background#background_image.png" : "Horizontal soil moisture card with background - background image", - "horizontal_soil_moisture_card_with_background.png" : "Horizontal soil moisture card with background - image", - "horizontal_solar_radiation_card.png" : "Horizontal solar radiation card - image", - "horizontal_solar_radiation_card_with_background#background_image.png" : "Horizontal solar radiation card with background - background image", - "horizontal_solar_radiation_card_with_background.png" : "Horizontal solar radiation card with background - image", - "horizontal_temperature_card.png" : "Horizontal temperature card - image", - "horizontal_temperature_card_with_background#background_image.png" : "Horizontal temperature card with background - background image", - "horizontal_temperature_card_with_background.png" : "Horizontal temperature card with background - image", - "horizontal_uv_index_card.png" : "Horizontal UV Index card - image", - "horizontal_uv_index_card_with_background#background_image.png" : "Horizontal UV Index card with background - background image", - "horizontal_uv_index_card_with_background.png" : "Horizontal UV Index card with background - image", - "horizontal_vibration_card.png" : "Horizontal vibration card - image", - "horizontal_vibration_card_with_background#background_image.png" : "Horizontal vibration card with background - background image", - "horizontal_vibration_card_with_background.png" : "Horizontal vibration card with background - image", - "horizontal_visibility_card.png" : "Horizontal visibility card - image", - "horizontal_visibility_card_with_background#background_image.png" : "Horizontal visibility card with background - background image", - "horizontal_visibility_card_with_background.png" : "Horizontal visibility card with background - image", - "horizontal_volatile_organic_compounds_card.png" : "Horizontal volatile organic compounds card - image", - "horizontal_volatile_organic_compounds_card_with_background#background_image.png" : "Horizontal volatile organic compounds card with background - background image", - "horizontal_volatile_organic_compounds_card_with_background.png" : "Horizontal volatile organic compounds card with background - image", - "horizontal_wind_speed_card.png" : "Horizontal wind speed card - image", - "horizontal_wind_speed_card_with_background#background_image.png" : "Horizontal wind speed card with background - background image", - "horizontal_wind_speed_card_with_background.png" : "Horizontal wind speed card with background - image", - "html_widgets.png" : "HTML widgets - image", - "humidity_card.png" : "Humidity card - image", - "humidity_card_with_background#background_image.png" : "Humidity card with background - background image", - "humidity_card_with_background.png" : "Humidity card with background - image", - "humidity_chart_card.png" : "Humidity chart card - image", - "humidity_chart_card_with_background#background_image.png" : "Humidity chart card with background - background image", - "humidity_chart_card_with_background.png" : "Humidity chart card with background - image", - "humidity_progress_bar.png" : "Humidity progress bar - image", - "humidity_progress_bar_with_background#background_image.png" : "Humidity progress bar with background - background image", - "humidity_progress_bar_with_background.png" : "Humidity progress bar with background - image", - "illuminance_card.png" : "Illuminance card - image", - "illuminance_card_with_background#background_image.png" : "Illuminance card with background - background image", - "illuminance_card_with_background.png" : "Illuminance card with background - image", - "illuminance_chart_card.png" : "Illuminance chart card - image", - "illuminance_chart_card_with_background#background_image.png" : "Illuminance chart card with background - background image", - "illuminance_chart_card_with_background.png" : "Illuminance chart card with background - image", - "illuminance_progress_bar.png" : "Illuminance progress bar - image", - "illuminance_progress_bar_with_background#background_image.png" : "Illuminance progress bar with background - background image", - "illuminance_progress_bar_with_background.png" : "Illuminance progress bar with background - image", - "indoor_co2_card.png" : "Indoor CO2 card - image", - "indoor_co2_card_with_background#background_image.png" : "Indoor CO2 card with background - background image", - "indoor_co2_card_with_background.png" : "Indoor CO2 card with background - image", - "indoor_co2_chart_card.png" : "Indoor CO2 chart card - image", - "indoor_co2_chart_card_with_background#background_image.png" : "Indoor CO2 chart card with background - background image", - "indoor_co2_chart_card_with_background.png" : "Indoor CO2 chart card with background - image", - "indoor_environment.png" : "Indoor Environment - image", - "indoor_horizontal_co2_card.png" : "Indoor horizontal CO2 card - image", - "indoor_horizontal_co2_card_with_background#background_image.png" : "Indoor horizontal CO2 card with background - background image", - "indoor_horizontal_co2_card_with_background.png" : "Indoor horizontal CO2 card with background - image", - "indoor_horizontal_humidity_card.png" : "Indoor horizontal humidity card - image", - "indoor_horizontal_humidity_card_with_background#background_image.png" : "Indoor horizontal humidity card with background - background image", - "indoor_horizontal_humidity_card_with_background.png" : "Indoor horizontal humidity card with background - image", - "indoor_horizontal_illuminance_card.png" : "Indoor horizontal illuminance card - image", - "indoor_horizontal_illuminance_card_with_background#background_image.png" : "Indoor horizontal illuminance card with background - background image", - "indoor_horizontal_illuminance_card_with_background.png" : "Indoor horizontal illuminance card with background - image", - "indoor_horizontal_pm10_card.png" : "Indoor horizontal PM10 card - image", - "indoor_horizontal_pm10_card_with_background#background_image.png" : "Indoor horizontal PM10 card with background - background image", - "indoor_horizontal_pm10_card_with_background.png" : "Indoor horizontal PM10 card with background - image", - "indoor_horizontal_pm2_5_card.png" : "Indoor horizontal PM2.5 card - image", - "indoor_horizontal_pm2_5_card_with_background#background_image.png" : "Indoor horizontal PM2.5 card with background - background image", - "indoor_horizontal_pm2_5_card_with_background.png" : "Indoor horizontal PM2.5 card with background - image", - "indoor_horizontal_temperature_card.png" : "Indoor horizontal temperature card - image", - "indoor_horizontal_temperature_card_with_background#background_image.png" : "Indoor horizontal temperature card with background - background image", - "indoor_horizontal_temperature_card_with_background.png" : "Indoor horizontal temperature card with background - image", - "indoor_humidity_card.png" : "Indoor humidity card - image", - "indoor_humidity_card_with_background#background_image.png" : "Indoor humidity card with background - background image", - "indoor_humidity_card_with_background.png" : "Indoor humidity card with background - image", - "indoor_humidity_chart_card.png" : "Indoor humidity chart card - image", - "indoor_humidity_chart_card_with_background#background_image.png" : "Indoor humidity chart card with background - background image", - "indoor_humidity_chart_card_with_background.png" : "Indoor humidity chart card with background - image", - "indoor_humidity_progress_bar.png" : "Indoor humidity progress bar - image", - "indoor_humidity_progress_bar_with_background#background_image.png" : "Indoor humidity progress bar with background - background image", - "indoor_humidity_progress_bar_with_background.png" : "Indoor humidity progress bar with background - image", - "indoor_illuminance_card.png" : "Indoor illuminance card - image", - "indoor_illuminance_card_with_background#background_image.png" : "Indoor illuminance card with background - background image", - "indoor_illuminance_card_with_background.png" : "Indoor illuminance card with background - image", - "indoor_illuminance_chart_card.png" : "Indoor illuminance chart card - image", - "indoor_illuminance_chart_card_with_background#background_image.png" : "Indoor illuminance chart card with background - background image", - "indoor_illuminance_chart_card_with_background.png" : "Indoor illuminance chart card with background - image", - "indoor_illuminance_progress_bar.png" : "Indoor illuminance progress bar - image", - "indoor_illuminance_progress_bar_with_background#background_image.png" : "Indoor illuminance progress bar with background - background image", - "indoor_illuminance_progress_bar_with_background.png" : "Indoor illuminance progress bar with background - image", - "indoor_pm10_card.png" : "Indoor PM10 card - image", - "indoor_pm10_card_with_background#background_image.png" : "Indoor PM10 card with background - background image", - "indoor_pm10_card_with_background.png" : "Indoor PM10 card with background - image", - "indoor_pm10_chart_card.png" : "Indoor PM10 chart card - image", - "indoor_pm10_chart_card_with_background#background_image.png" : "Indoor PM10 chart card with background - background image", - "indoor_pm10_chart_card_with_background.png" : "Indoor PM10 chart card with background - image", - "indoor_pm2_5_card.png" : "Indoor PM2.5 card - image", - "indoor_pm2_5_card_with_background#background_image.png" : "Indoor PM2.5 card with background - background image", - "indoor_pm2_5_card_with_background.png" : "Indoor PM2.5 card with background - image", - "indoor_pm2_5_chart_card.png" : "Indoor PM2.5 chart card - image", - "indoor_pm2_5_chart_card_with_background#background_image.png" : "Indoor PM2.5 chart card with background - background image", - "indoor_pm2_5_chart_card_with_background.png" : "Indoor PM2.5 chart card with background - image", - "indoor_simple_co2_chart_card.png" : "Indoor simple CO2 chart card - image", - "indoor_simple_co2_chart_card_with_background#background_image.png" : "Indoor simple CO2 chart card with background - background image", - "indoor_simple_co2_chart_card_with_background.png" : "Indoor simple CO2 chart card with background - image", - "indoor_simple_humidity_chart_card.png" : "Indoor simple humidity chart card - image", - "indoor_simple_humidity_chart_card_with_background#background_image.png" : "Indoor simple humidity chart card with background - background image", - "indoor_simple_humidity_chart_card_with_background.png" : "Indoor simple humidity chart card with background - image", - "indoor_simple_illuminance_chart_card.png" : "Indoor simple illuminance chart card - image", - "indoor_simple_illuminance_chart_card_with_background#background_image.png" : "Indoor simple illuminance chart card with background - background image", - "indoor_simple_illuminance_chart_card_with_background.png" : "Indoor simple illuminance chart card with background - image", - "indoor_simple_pm10_chart_card.png" : "Indoor simple PM10 chart card - image", - "indoor_simple_pm10_chart_card_with_background#background_image.png" : "Indoor simple PM10 chart card with background - background image", - "indoor_simple_pm10_chart_card_with_background.png" : "Indoor simple PM10 chart card with background - image", - "indoor_simple_pm2_5_chart_card.png" : "Indoor simple PM2.5 chart card - image", - "indoor_simple_pm2_5_chart_card_with_background#background_image.png" : "Indoor simple PM2.5 chart card with background - background image", - "indoor_simple_pm2_5_chart_card_with_background.png" : "Indoor simple PM2.5 chart card with background - image", - "indoor_simple_temperature_chart_card.png" : "Indoor simple temperature chart card - image", - "indoor_simple_temperature_chart_card_with_background#background_image.png" : "Indoor simple temperature chart card with background - background image", - "indoor_simple_temperature_chart_card_with_background.png" : "Indoor simple temperature chart card with background - image", - "indoor_temperature_card.png" : "Indoor temperature card - image", - "indoor_temperature_card_with_background#background_image.png" : "Indoor temperature card with background - background image", - "indoor_temperature_card_with_background.png" : "Indoor temperature card with background - image", - "indoor_temperature_chart_card.png" : "Indoor temperature chart card - image", - "indoor_temperature_chart_card_with_background#background_image.png" : "Indoor temperature chart card with background - background image", - "indoor_temperature_chart_card_with_background.png" : "Indoor temperature chart card with background - image", - "indoor_temperature_progress_bar.png" : "Indoor temperature progress bar - image", - "indoor_temperature_progress_bar_with_background#background_image.png" : "Indoor temperature progress bar with background - background image", - "indoor_temperature_progress_bar_with_background.png" : "Indoor temperature progress bar with background - image", - "input_widgets.device_claiming_widget.png" : "Device claiming widget - image", - "input_widgets.markers_placement_google_maps.png" : "Markers Placement - Google Maps - image", - "input_widgets.markers_placement_image_map#map_image.svg" : "Markers Placement - Image Map - map image", - "input_widgets.markers_placement_image_map.png" : "Markers Placement - Image Map - image", - "input_widgets.markers_placement_openstreetmap.png" : "Markers Placement - OpenStreetMap - image", - "input_widgets.png" : "Input widgets - image", - "input_widgets.update_boolean_timeseries.png" : "Update boolean timeseries - image", - "input_widgets.update_double_timeseries.png" : "Update double timeseries - image", - "input_widgets.update_integer_timeseries.png" : "Update integer timeseries - image", - "input_widgets.update_json_attribute.png" : "Update JSON attribute - image", - "input_widgets.update_location_timeseries.png" : "Update location timeseries - image", - "input_widgets.update_multiple_attributes.png" : "Update Multiple Attributes - image", - "input_widgets.update_server_boolean_attribute.png" : "Update server boolean attribute - image", - "input_widgets.update_server_date_attribute.png" : "Update server date attribute - image", - "input_widgets.update_server_double_attribute.png" : "Update server double attribute - image", - "input_widgets.update_server_image_attribute.png" : "Update server image attribute - image", - "input_widgets.update_server_integer_attribute.png" : "Update server integer attribute - image", - "input_widgets.update_server_location_attribute.png" : "Update server location attribute - image", - "input_widgets.update_server_string_attribute.png" : "Update server string attribute - image", - "input_widgets.update_shared_boolean_attribute.png" : "Update shared boolean attribute - image", - "input_widgets.update_shared_date_attribute.png" : "Update shared date attribute - image", - "input_widgets.update_shared_double_attribute.png" : "Update shared double attribute - image", - "input_widgets.update_shared_image_attribute.png" : "Update shared image attribute - image", - "input_widgets.update_shared_integer_attribute.png" : "Update shared integer attribute - image", - "input_widgets.update_shared_location_attribute.png" : "Update shared location attribute - image", - "input_widgets.update_shared_string_attribute.png" : "Update shared string attribute - image", - "input_widgets.update_string_timeseries.png" : "Update string timeseries - image", - "input_widgets.web_camera_input.png" : "Photo camera input - image", - "leaf_wetness_card.png" : "Leaf wetness card - image", - "leaf_wetness_card_with_background#background_image.png" : "Leaf wetness card with background - background image", - "leaf_wetness_card_with_background.png" : "Leaf wetness card with background - image", - "leaf_wetness_chart_card.png" : "Leaf wetness chart card - image", - "leaf_wetness_chart_card_with_background#background_image.png" : "Leaf wetness chart card with background - background image", - "leaf_wetness_chart_card_with_background.png" : "Leaf wetness chart card with background - image", - "leaf_wetness_progress_bar.png" : "Leaf wetness progress bar - image", - "leaf_wetness_progress_bar_with_background#background_image.png" : "Leaf wetness progress bar with background - background image", - "leaf_wetness_progress_bar_with_background.png" : "Leaf wetness progress bar with background - image", - "liquid_level_tanks.png" : "Liquid level - image", - "maps_v2.google_maps#marker_image_1.png" : "Google Map - marker image 1", - "maps_v2.google_maps#marker_image_2.png" : "Google Map - marker image 2", - "maps_v2.google_maps#marker_image_3.png" : "Google Map - marker image 3", - "maps_v2.google_maps#marker_image_4.png" : "Google Map - marker image 4", - "maps_v2.google_maps.png" : "Google Map - image", - "maps_v2.here_map#map_image.svg" : "HERE Map - map image", - "maps_v2.here_map#marker_image_1.png" : "HERE Map - marker image 1", - "maps_v2.here_map#marker_image_2.png" : "HERE Map - marker image 2", - "maps_v2.here_map#marker_image_3.png" : "HERE Map - marker image 3", - "maps_v2.here_map#marker_image_4.png" : "HERE Map - marker image 4", - "maps_v2.here_map.png" : "HERE Map - image", - "maps_v2.image_map#map_image.svg" : "Image Map - map image", - "maps_v2.image_map#marker_image_1.png" : "Image Map - marker image 1", - "maps_v2.image_map#marker_image_2.png" : "Image Map - marker image 2", - "maps_v2.image_map#marker_image_3.png" : "Image Map - marker image 3", - "maps_v2.image_map#marker_image_4.png" : "Image Map - marker image 4", - "maps_v2.image_map.png" : "Image Map - image", - "maps_v2.openstreetmap#marker_image_1.png" : "OpenStreet Map - marker image 1", - "maps_v2.openstreetmap#marker_image_2.png" : "OpenStreet Map - marker image 2", - "maps_v2.openstreetmap#marker_image_3.png" : "OpenStreet Map - marker image 3", - "maps_v2.openstreetmap#marker_image_4.png" : "OpenStreet Map - marker image 4", - "maps_v2.openstreetmap.png" : "OpenStreet Map - image", - "maps_v2.png" : "Maps - image", - "maps_v2.route_map#marker_image_1.png" : "Route Map - Google - marker image 1", - "maps_v2.route_map#marker_image_2.png" : "Route Map - Google - marker image 2", - "maps_v2.route_map#marker_image_3.png" : "Route Map - Google - marker image 3", - "maps_v2.route_map.png" : "Route Map - Google - image", - "maps_v2.route_map_openstreetmap#marker_image_1.png" : "Route Map - OpenStreet - marker image 1", - "maps_v2.route_map_openstreetmap#marker_image_2.png" : "Route Map - OpenStreet - marker image 2", - "maps_v2.route_map_openstreetmap#marker_image_3.png" : "Route Map - OpenStreet - marker image 3", - "maps_v2.route_map_openstreetmap.png" : "Route Map - OpenStreet - image", - "maps_v2.route_map_tencent_maps#marker_image_1.png" : "Route Map - Tencent - marker image 1", - "maps_v2.route_map_tencent_maps#marker_image_2.png" : "Route Map - Tencent - marker image 2", - "maps_v2.route_map_tencent_maps#marker_image_3.png" : "Route Map - Tencent - marker image 3", - "maps_v2.route_map_tencent_maps.png" : "Route Map - Tencent - image", - "maps_v2.tencent_maps#marker_image_1.png" : "Tencent Map - marker image 1", - "maps_v2.tencent_maps#marker_image_2.png" : "Tencent Map - marker image 2", - "maps_v2.tencent_maps#marker_image_3.png" : "Tencent Map - marker image 3", - "maps_v2.tencent_maps#marker_image_4.png" : "Tencent Map - marker image 4", - "maps_v2.tencent_maps.png" : "Tencent Map - image", - "maps_v2.test.png" : "Trip Animation - image", - "navigation_widgets.navigation_card.png" : "Navigation card - image", - "navigation_widgets.navigation_cards.png" : "Navigation cards - image", - "navigation_widgets.png" : "Navigation widgets - image", - "noise_level_card.png" : "Noise level card - image", - "noise_level_card_with_background#background_image.png" : "Noise level card with background - background image", - "noise_level_card_with_background.png" : "Noise level card with background - image", - "noise_level_chart_card.png" : "Noise level chart card - image", - "noise_level_chart_card_with_background#background_image.png" : "Noise level chart card with background - background image", - "noise_level_chart_card_with_background.png" : "Noise level chart card with background - image", - "outdoor_environment.png" : "Outdoor Environment - image", - "pm10_card.png" : "PM10 card - image", - "pm10_card_with_background#background_image.png" : "PM10 card with background - background image", - "pm10_card_with_background.png" : "PM10 card with background - image", - "pm10_chart_card.png" : "PM10 chart card - image", - "pm10_chart_card_with_background#background_image.png" : "PM10 chart card with background - background image", - "pm10_chart_card_with_background.png" : "PM10 chart card with background - image", - "pm2_5_card.png" : "PM2.5 card - image", - "pm2_5_card_with_background#background_image.png" : "PM2.5 card with background - background image", - "pm2_5_card_with_background.png" : "PM2.5 card with background - image", - "pm2_5_chart_card.png" : "PM2.5 chart card - image", - "pm2_5_chart_card_with_background#background_image.png" : "PM2.5 chart card with background - background image", - "pm2_5_chart_card_with_background.png" : "PM2.5 chart card with background - image", - "pressure_card.png" : "Pressure card - image", - "pressure_card_with_background#background_image.png" : "Pressure card with background - background image", - "pressure_card_with_background.png" : "Pressure card with background - image", - "pressure_chart_card.png" : "Pressure chart card - image", - "pressure_chart_card_with_background#background_image.png" : "Pressure chart card with background - background image", - "pressure_chart_card_with_background.png" : "Pressure chart card with background - image", - "pressure_progress_bar.png" : "Pressure progress bar - image", - "pressure_progress_bar_with_background#background_image.png" : "Pressure progress bar with background - background image", - "pressure_progress_bar_with_background.png" : "Pressure progress bar with background - image", - "progress_bar.png" : "Progress bar - image", - "radon_level_card.png" : "Radon level card - image", - "radon_level_card_with_background#background_image.png" : "Radon level card with background - background image", - "radon_level_card_with_background.png" : "Radon level card with background - image", - "radon_level_chart_card.png" : "Radon level chart card - image", - "radon_level_chart_card_with_background#background_image.png" : "Radon level chart card with background - background image", - "radon_level_chart_card_with_background.png" : "Radon level chart card with background - image", - "rainfall_card.png" : "Rainfall card - image", - "rainfall_card_with_background#background_image.png" : "Rainfall card with background - background image", - "rainfall_card_with_background.png" : "Rainfall card with background - image", - "rainfall_chart_card.png" : "Rainfall chart card - image", - "rainfall_chart_card_with_background#background_image.png" : "Rainfall chart card with background - background image", - "rainfall_chart_card_with_background.png" : "Rainfall chart card with background - image", - "rectangle_tank.png" : "Rectangle tank - image", - "signal_strength.png" : "Signal strength - image", - "simple_air_quality_chart_card.png" : "Simple air quality index chart card - image", - "simple_air_quality_chart_card_with_background#background_image.png" : "Simple air quality index chart card with background - background image", - "simple_air_quality_chart_card_with_background.png" : "Simple air quality index chart card with background - image", - "simple_co2_chart_card.png" : "Simple CO2 chart card - image", - "simple_co2_chart_card_with_background#background_image.png" : "Simple CO2 chart card with background - background image", - "simple_co2_chart_card_with_background.png" : "Simple CO2 chart card with background - image", - "simple_flooding_level_chart_card.png" : "Simple flooding level chart card - image", - "simple_flooding_level_chart_card_with_background#background_image.png" : "Simple flooding level chart card with background - background image", - "simple_flooding_level_chart_card_with_background.png" : "Simple flooding level chart card with background - image", - "simple_ground_temperature_chart_card.png" : "Simple ground temperature chart card - image", - "simple_ground_temperature_chart_card_with_background#background_image.png" : "Simple ground temperature chart card with background - background image", - "simple_ground_temperature_chart_card_with_background.png" : "Simple ground temperature chart card with background - image", - "simple_humidity_chart_card.png" : "Simple humidity chart card - image", - "simple_humidity_chart_card_with_background#background_image.png" : "Simple humidity chart card with background - background image", - "simple_humidity_chart_card_with_background.png" : "Simple humidity chart card with background - image", - "simple_illuminance_chart_card.png" : "Simple illuminance chart card - image", - "simple_illuminance_chart_card_with_background#background_image.png" : "Simple illuminance chart card with background - background image", - "simple_illuminance_chart_card_with_background.png" : "Simple illuminance chart card with background - image", - "simple_leaf_wetness_chart_card.png" : "Simple leaf wetness chart card - image", - "simple_leaf_wetness_chart_card_with_background#background_image.png" : "Simple leaf wetness chart card with background - background image", - "simple_leaf_wetness_chart_card_with_background.png" : "Simple leaf wetness chart card with background - image", - "simple_noise_level_chart_card.png" : "Simple noise level chart card - image", - "simple_noise_level_chart_card_with_background#background_image.png" : "Simple noise level chart card with background - background image", - "simple_noise_level_chart_card_with_background.png" : "Simple noise level chart card with background - image", - "simple_pm10_chart_card.png" : "Simple PM10 chart card - image", - "simple_pm10_chart_card_with_background#background_image.png" : "Simple PM10 chart card with background - background image", - "simple_pm10_chart_card_with_background.png" : "Simple PM10 chart card with background - image", - "simple_pm2_5_chart_card.png" : "Simple PM2.5 chart card - image", - "simple_pm2_5_chart_card_with_background#background_image.png" : "Simple PM2.5 chart card with background - background image", - "simple_pm2_5_chart_card_with_background.png" : "Simple PM2.5 chart card with background - image", - "simple_pressure_chart_card.png" : "Simple pressure chart card - image", - "simple_pressure_chart_card_with_background#background_image.png" : "Simple pressure chart card with background - background image", - "simple_pressure_chart_card_with_background.png" : "Simple pressure chart card with background - image", - "simple_radon_level_chart_card.png" : "Simple radon level chart card - image", - "simple_radon_level_chart_card_with_background#background_image.png" : "Simple radon level chart card with background - background image", - "simple_radon_level_chart_card_with_background.png" : "Simple radon level chart card with background - image", - "simple_rainfall_chart_card.png" : "Simple rainfall chart card - image", - "simple_rainfall_chart_card_with_background#background_image.png" : "Simple rainfall chart card with background - background image", - "simple_rainfall_chart_card_with_background.png" : "Simple rainfall chart card with background - image", - "simple_snow_depth_chart_card.png" : "Simple snow depth chart card - image", - "simple_snow_depth_chart_card_with_background#background_image.png" : "Simple snow depth chart card with background - background image", - "simple_snow_depth_chart_card_with_background.png" : "Simple snow depth chart card with background - image", - "simple_soil_moisture_chart_card.png" : "Simple soil moisture chart card - image", - "simple_soil_moisture_chart_card_with_background#background_image.png" : "Simple soil moisture chart card with background - background image", - "simple_soil_moisture_chart_card_with_background.png" : "Simple soil moisture chart card with background - image", - "simple_solar_radiation_chart_card.png" : "Simple solar radiation chart card - image", - "simple_solar_radiation_chart_card_with_background#background_image.png" : "Simple solar radiation chart card with background - background image", - "simple_solar_radiation_chart_card_with_background.png" : "Simple solar radiation chart card with background - image", - "simple_temperature_chart_card.png" : "Simple temperature chart card - image", - "simple_temperature_chart_card_with_background#background_image.png" : "Simple temperature chart card with background - background image", - "simple_temperature_chart_card_with_background.png" : "Simple temperature chart card with background - image", - "simple_uv_index_chart_card.png" : "Simple UV Index chart card - image", - "simple_uv_index_chart_card_with_background#background_image.png" : "Simple UV Index chart card with background - background image", - "simple_uv_index_chart_card_with_background.png" : "Simple UV Index chart card with background - image", - "simple_value_and_chart_card.png" : "Simple Value and chart card - image", - "simple_vibration_chart_card.png" : "Simple vibration chart card - image", - "simple_vibration_chart_card_with_background#background_image.png" : "Simple vibration chart card with background - background image", - "simple_vibration_chart_card_with_background.png" : "Simple vibration chart card with background - image", - "simple_visibility_chart_card.png" : "Simple visibility chart card - image", - "simple_visibility_chart_card_with_background#background_image.png" : "Simple visibility chart card with background - background image", - "simple_visibility_chart_card_with_background.png" : "Simple visibility chart card with background - image", - "simple_volatile_organic_compounds_chart_card.png" : "Simple volatile organic compounds chart card - image", - "simple_volatile_organic_compounds_chart_card_with_background#background_image.png" : "Simple volatile organic compounds chart card with background - background image", - "simple_volatile_organic_compounds_chart_card_with_background.png" : "Simple volatile organic compounds chart card with background - image", - "simple_wind_speed_chart_card.png" : "Simple wind speed chart card - image", - "simple_wind_speed_chart_card_with_background#background_image.png" : "Simple wind speed chart card with background - background image", - "simple_wind_speed_chart_card_with_background.png" : "Simple wind speed chart card with background - image", - "snow_depth_card.png" : "Snow depth card - image", - "snow_depth_card_with_background#background_image.png" : "Snow depth card with background - background image", - "snow_depth_card_with_background.png" : "Snow depth card with background - image", - "snow_depth_chart_card.png" : "Snow depth chart card - image", - "snow_depth_chart_card_with_background#background_image.png" : "Snow depth chart card with background - background image", - "snow_depth_chart_card_with_background.png" : "Snow depth chart card with background - image", - "soil_moisture_card.png" : "Soil moisture card - image", - "soil_moisture_card_with_background#background_image.png" : "Soil moisture card with background - background image", - "soil_moisture_card_with_background.png" : "Soil moisture card with background - image", - "soil_moisture_chart_card.png" : "Soil moisture chart card - image", - "soil_moisture_chart_card_with_background#background_image.png" : "Soil moisture chart card with background - background image", - "soil_moisture_chart_card_with_background.png" : "Soil moisture chart card with background - image", - "soil_moisture_progress_bar.png" : "Soil moisture progress bar - image", - "soil_moisture_progress_bar_with_background#background_image.png" : "Soil moisture progress bar with background - background image", - "soil_moisture_progress_bar_with_background.png" : "Soil moisture progress bar with background - image", - "solar_radiation_card.png" : "Solar radiation card - image", - "solar_radiation_card_with_background#background_image.png" : "Solar radiation card with background - background image", - "solar_radiation_card_with_background.png" : "Solar radiation card with background - image", - "solar_radiation_chart_card.png" : "Solar radiation chart card - image", - "solar_radiation_chart_card_with_background#background_image.png" : "Solar radiation chart card with background - background image", - "solar_radiation_chart_card_with_background.png" : "Solar radiation chart card with background - image", - "status_indicators.png" : "Status indicators - image", - "tables.png" : "Tables - image", - "temperature_card.png" : "Temperature card - image", - "temperature_card_with_background#background_image.png" : "Temperature card with background - background image", - "temperature_card_with_background.png" : "Temperature card with background - image", - "temperature_chart_card.png" : "Temperature chart card - image", - "temperature_chart_card_with_background#background_image.png" : "Temperature chart card with background - background image", - "temperature_chart_card_with_background.png" : "Temperature chart card with background - image", - "thermostats.maps_v2.openstreetmap#marker_image_1.svg" : "Thermostat maps - marker image 1", - "thermostats.maps_v2.openstreetmap#marker_image_2.svg" : "Thermostat maps - marker image 2", - "uv_index_card.png" : "UV Index card - image", - "uv_index_card_with_background#background_image.png" : "UV Index card with background - background image", - "uv_index_card_with_background.png" : "UV Index card with background - image", - "uv_index_chart_card.png" : "UV Index chart card - image", - "uv_index_chart_card_with_background#background_image.png" : "UV Index chart card with background - background image", - "uv_index_chart_card_with_background.png" : "UV Index chart card with background - image", - "vertical_capsule_tank.png" : "Vertical capsule tank - image", - "vertical_cylinder_tank.png" : "Vertical cylinder tank - image", - "vertical_oval_tank.png" : "Vertical oval tank - image", - "vibration_card.png" : "Vibration card - image", - "vibration_card_with_background#background_image.png" : "Vibration card with background - background image", - "vibration_card_with_background.png" : "Vibration card with background - image", - "vibration_chart_card.png" : "Vibration chart card - image", - "vibration_chart_card_with_background#background_image.png" : "Vibration chart card with background - background image", - "vibration_chart_card_with_background.png" : "Vibration chart card with background - image", - "visibility_card.png" : "Visibility card - image", - "visibility_card_with_background#background_image.png" : "Visibility card with background - background image", - "visibility_card_with_background.png" : "Visibility card with background - image", - "visibility_chart_card.png" : "Visibility chart card - image", - "visibility_chart_card_with_background#background_image.png" : "Visibility chart card with background - background image", - "visibility_chart_card_with_background.png" : "Visibility chart card with background - image", - "volatile_organic_compounds_card.png" : "Volatile organic compounds card - image", - "volatile_organic_compounds_card_with_background#background_image.png" : "Volatile organic compounds card with background - background image", - "volatile_organic_compounds_card_with_background.png" : "Volatile organic compounds card with background - image", - "volatile_organic_compounds_chart_card.png" : "Volatile organic compounds chart card - image", - "volatile_organic_compounds_chart_card_with_background#background_image.png" : "Volatile organic compounds chart card with background - background image", - "volatile_organic_compounds_chart_card_with_background.png" : "Volatile organic compounds chart card with background - image", - "wind_speed_and_direction.png" : "Wind speed and direction - image", - "wind_speed_and_direction_with_background#background_image.png" : "Wind speed and direction with background - background image", - "wind_speed_and_direction_with_background.png" : "Wind speed and direction with background - image", - "wind_speed_card.png" : "Wind speed card - image", - "wind_speed_card_with_background#background_image.png" : "Wind speed card with background - background image", - "wind_speed_card_with_background.png" : "Wind speed card with background - image", - "wind_speed_chart_card.png" : "Wind speed chart card - image", - "wind_speed_chart_card_with_background#background_image.png" : "Wind speed chart card with background - background image", - "wind_speed_chart_card_with_background.png" : "Wind speed chart card with background - image" + "air_quality.png": "Air quality - image", + "air_quality_card.png": "Air quality index card - image", + "air_quality_card_with_background#background_image.png": "Air quality index card with background - background image", + "air_quality_card_with_background.png": "Air quality index card with background - image", + "air_quality_chart_card.png": "Air quality index chart card - image", + "air_quality_chart_card_with_background#background_image.png": "Air quality index chart card with background - background image", + "air_quality_chart_card_with_background.png": "Air quality index chart card with background - image", + "alarm_count.png": "Alarm count - image", + "alarm_widgets.alarms_table.png": "Alarms table - image", + "alarm_widgets.png": "Alarm widgets - image", + "analogue_gauges.analogue_compass.png": "Compass - image", + "analogue_gauges.png": "Analogue gauges - image", + "analogue_gauges.radial_gauge_canvas_gauges.png": "Radial gauge - image", + "analogue_gauges.speed_gauge_canvas_gauges.png": "Speed gauge - image", + "analogue_gauges.temperature_gauge_canvas_gauges.png": "Thermometer scale - image", + "analogue_gauges.temperature_radial_gauge_canvas_gauges.png": "Temperature radial gauge - image", + "battery_level.png": "Battery level - image", + "cards.aggregated_value_card.png": "Value and chart card - image", + "cards.attributes_card.png": "Attributes card - image", + "cards.dashboard_state_widget.png": "Dashboard state widget - image", + "cards.entities_hierarchy.png": "Entities hierarchy - image", + "cards.entities_table.png": "Entities table - image", + "cards.horizontal_value_card.png": "Horizontal value card - image", + "cards.html_card.png": "HTML Card - image", + "cards.html_value_card.png": "HTML Value Card - image", + "cards.label_widget#background_image.svg": "Label widget - background image", + "cards.label_widget.png": "Label widget - image", + "cards.markdown_card.png": "Markdown/HTML Card - image", + "cards.png": "Cards - image", + "cards.qr_code.png": "QR Code - image", + "cards.simple_card.png": "Simple card - image", + "cards.timeseries_table.png": "Timeseries table - image", + "cards.value_card.png": "Value card - image", + "charts.bars.png": "Bars - image", + "charts.basic_timeseries.png": "Timeseries Line Chart - image", + "charts.doughnut_chart_js.png": "Doughnut - image", + "charts.pie.png": "Pie - Flot - image", + "charts.pie_chart_js.png": "Pie - Chart.js - image", + "charts.png": "Charts - image", + "charts.polar_area_chart_js.png": "Polar Area - image", + "charts.radar_chart_js.png": "Radar - image", + "charts.state_chart.png": "State Chart - image", + "charts.timeseries_bars_flot.png": "Timeseries Bar Chart - image", + "co2_card.png": "CO2 card - image", + "co2_card_with_background#background_image.png": "CO2 card with background - background image", + "co2_card_with_background.png": "CO2 card with background - image", + "co2_chart_card.png": "CO2 chart card - image", + "co2_chart_card_with_background#background_image.png": "CO2 chart card with background - background image", + "co2_chart_card_with_background.png": "CO2 chart card with background - image", + "control_widgets.knob_control.png": "Knob Control - image", + "control_widgets.led_indicator.png": "Led indicator - image", + "control_widgets.persistent_table.png": "Persistent RPC table - image", + "control_widgets.png": "Control widgets - image", + "control_widgets.round_switch.png": "Round switch - image", + "control_widgets.rpc_debug_terminal.png": "RPC debug terminal - image", + "control_widgets.rpc_remote_shell.png": "RPC remote shell - image", + "control_widgets.rpcbutton.png": "RPC Button - image", + "control_widgets.slide_toggle_control.png": "Slide Toggle Control - image", + "control_widgets.switch_control.png": "Switch Control - image", + "control_widgets.update_attributes.png": "Update device attribute - image", + "count_widgets.png": "Count widgets - image", + "date.date_range_navigator.png": "Date-range-navigator - image", + "date.png": "Date - image", + "digital_gauges.digital_bar.png": "Digital horizontal bar - image", + "digital_gauges.digital_speedometer.png": "Digital speedometer - image", + "digital_gauges.digital_thermometer.png": "Digital thermometer - image", + "digital_gauges.digital_vertical_bar.png": "Digital vertical bar - image", + "digital_gauges.gauge_justgage.png": "Gauge - image", + "digital_gauges.horizontal_bar_justgage.png": "Horizontal bar - image", + "digital_gauges.lcd_bar_gauge.png": "LCD bar gauge - image", + "digital_gauges.lcd_gauge.png": "LCD gauge - image", + "digital_gauges.mini_gauge_justgage.png": "Mini gauge - image", + "digital_gauges.neon_gauge_justgage.png": "Neon gauge - image", + "digital_gauges.png": "Digital gauges - image", + "digital_gauges.simple_gauge_justgage.png": "Simple gauge - image", + "digital_gauges.simple_neon_gauge_justgage.png": "Simple neon gauge - image", + "digital_gauges.vertical_bar_justgage.png": "Vertical bar - image", + "doughnut.png": "Doughnut - image", + "edge_widgets.edges_overview.png": "Edge Quick Overview - image", + "edge_widgets.png": "Edge widgets - image", + "entity_admin_widgets.asset_admin_table.png": "Asset admin table - image", + "entity_admin_widgets.device_admin_table.png": "Device admin table - image", + "entity_admin_widgets.png": "Entity admin widgets - image", + "entity_count.png": "Entity count - image", + "entity_widgets.png": "Entity widgets - image", + "flooding_level_card.png": "Flooding level card - image", + "flooding_level_card_with_background#background_image.png": "Flooding level card with background - background image", + "flooding_level_card_with_background.png": "Flooding level card with background - image", + "flooding_level_chart_card.png": "Flooding level chart card - image", + "flooding_level_chart_card_with_background#background_image.png": "Flooding level chart card with background - background image", + "flooding_level_chart_card_with_background.png": "Flooding level chart card with background - image", + "flooding_level_progress_bar.png": "Flooding level progress bar - image", + "flooding_level_progress_bar_with_background#background_image.png": "Flooding level progress bar with background - background image", + "flooding_level_progress_bar_with_background.png": "Flooding level progress bar with background - image", + "gateway_widgets.attributes_card.png": "Gateway events - image", + "gateway_widgets.config_form_latest.png": "Gateway configuration (Single device) - image", + "gateway_widgets.gateway_configuration.png": "Gateway Configuration - image", + "gateway_widgets.gateway_connectors.png": "Gateway connectors - image", + "gateway_widgets.gateway_custom_statistics.png": "Gateway custom statistics - image", + "gateway_widgets.gateway_general_chart_statistics.png": "Gateway general chart statistics - image", + "gateway_widgets.gateway_general_configuration.png": "Gateway general configuration - image", + "gateway_widgets.gateway_logs.png": "Gateway logs - image", + "gateway_widgets.png": "Gateway widgets - image", + "gateway_widgets.service_rpc.png": "Service RPC - image", + "gpio_widgets.basic_gpio_control.png": "Basic GPIO Control - image", + "gpio_widgets.gpio_panel.png": "Basic GPIO Panel - image", + "gpio_widgets.png": "GPIO widgets - image", + "gpio_widgets.raspberry_pi_gpio_control.png": "Raspberry Pi GPIO Control - image", + "gpio_widgets.raspberry_pi_gpio_panel.png": "Raspberry Pi GPIO Panel - image", + "ground_temperature_card.png": "Ground temperature card - image", + "ground_temperature_card_with_background#background_image.png": "Ground temperature card with background - background image", + "ground_temperature_card_with_background.png": "Ground temperature card with background - image", + "ground_temperature_chart_card.png": "Ground temperature chart card - image", + "ground_temperature_chart_card_with_background#background_image.png": "Ground temperature chart card with background - background image", + "ground_temperature_chart_card_with_background.png": "Ground temperature chart card with background - image", + "home_page_widgets.dashboards.png": "Dashboards - image", + "home_page_widgets.documentation_links.png": "Documentation links - image", + "home_page_widgets.getting_started.png": "Getting started - image", + "home_page_widgets.png": "Home page widgets - image", + "home_page_widgets.quick_links.png": "Quick links - image", + "home_page_widgets.usage_info.png": "Usage info - image", + "horizontal_2_1_elliptical_tank.png": "Horizontal 2:1 elliptical tank - image", + "horizontal_air_quality_card.png": "Horizontal air quality index card - image", + "horizontal_air_quality_card_with_background#background_image.png": "Horizontal air quality index card with background - background image", + "horizontal_air_quality_card_with_background.png": "Horizontal air quality index card with background - image", + "horizontal_capsule_tank.png": "Horizontal capsule tank - image", + "horizontal_co2_card.png": "Horizontal CO2 card - image", + "horizontal_co2_card_with_background#background_image.png": "Horizontal CO2 card with background - background image", + "horizontal_co2_card_with_background.png": "Horizontal CO2 card with background - image", + "horizontal_cylinder_tank.png": "Horizontal cylinder tank - image", + "horizontal_dish_ends_tank.png": "Horizontal dish ends tank - image", + "horizontal_doughnut.png": "Horizontal doughnut - image", + "horizontal_ellipse_tank.png": "Horizontal ellipse tank - image", + "horizontal_flooding_level_card.png": "Horizontal flooding level card - image", + "horizontal_flooding_level_card_with_background#background_image.png": "Horizontal flooding level card with background - background image", + "horizontal_flooding_level_card_with_background.png": "Horizontal flooding level card with background - image", + "horizontal_ground_temperature_card.png": "Horizontal ground temperature card - image", + "horizontal_ground_temperature_card_with_background#background_image.png": "Horizontal ground temperature card with background - background image", + "horizontal_ground_temperature_card_with_background.png": "Horizontal ground temperature card with background - image", + "horizontal_humidity_card.png": "Horizontal humidity card - image", + "horizontal_humidity_card_with_background#background_image.png": "Horizontal humidity card with background - background image", + "horizontal_humidity_card_with_background.png": "Horizontal humidity card with background - image", + "horizontal_illuminance_card.png": "Horizontal illuminance card - image", + "horizontal_illuminance_card_with_background#background_image.png": "Horizontal illuminance card with background - background image", + "horizontal_illuminance_card_with_background.png": "Horizontal illuminance card with background - image", + "horizontal_leaf_wetness_card.png": "Horizontal leaf wetness card - image", + "horizontal_leaf_wetness_card_with_background#background_image.png": "Horizontal leaf wetness card with background - background image", + "horizontal_leaf_wetness_card_with_background.png": "Horizontal leaf wetness card with background - image", + "horizontal_noise_level_card.png": "Horizontal noise level card - image", + "horizontal_noise_level_card_with_background#background_image.png": "Horizontal noise level card with background - background image", + "horizontal_noise_level_card_with_background.png": "Horizontal noise level card with background - image", + "horizontal_oval_tank.png": "Horizontal oval tank - image", + "horizontal_pm10_card.png": "Horizontal PM10 card - image", + "horizontal_pm10_card_with_background#background_image.png": "Horizontal PM10 card with background - background image", + "horizontal_pm10_card_with_background.png": "Horizontal PM10 card with background - image", + "horizontal_pm2_5_card.png": "Horizontal PM2.5 card - image", + "horizontal_pm2_5_card_with_background#background_image.png": "Horizontal PM2.5 card with background - background image", + "horizontal_pm2_5_card_with_background.png": "Horizontal PM2.5 card with background - image", + "horizontal_pressure_card.png": "Horizontal pressure card - image", + "horizontal_pressure_card_with_background#background_image.png": "Horizontal pressure card with background - background image", + "horizontal_pressure_card_with_background.png": "Horizontal pressure card with background - image", + "horizontal_radon_level_card.png": "Horizontal radon level card - image", + "horizontal_radon_level_card_with_background#background_image.png": "Horizontal radon level card with background - background image", + "horizontal_radon_level_card_with_background.png": "Horizontal radon level card with background - image", + "horizontal_rainfall_card.png": "Horizontal rainfall card - image", + "horizontal_rainfall_card_with_background#background_image.png": "Horizontal rainfall card with background - background image", + "horizontal_rainfall_card_with_background.png": "Horizontal rainfall card with background - image", + "horizontal_snow_depth_card.png": "Horizontal snow depth card - image", + "horizontal_snow_depth_card_with_background#background_image.png": "Horizontal snow depth card with background - background image", + "horizontal_snow_depth_card_with_background.png": "Horizontal snow depth card with background - image", + "horizontal_soil_moisture_card.png": "Horizontal soil moisture card - image", + "horizontal_soil_moisture_card_with_background#background_image.png": "Horizontal soil moisture card with background - background image", + "horizontal_soil_moisture_card_with_background.png": "Horizontal soil moisture card with background - image", + "horizontal_solar_radiation_card.png": "Horizontal solar radiation card - image", + "horizontal_solar_radiation_card_with_background#background_image.png": "Horizontal solar radiation card with background - background image", + "horizontal_solar_radiation_card_with_background.png": "Horizontal solar radiation card with background - image", + "horizontal_temperature_card.png": "Horizontal temperature card - image", + "horizontal_temperature_card_with_background#background_image.png": "Horizontal temperature card with background - background image", + "horizontal_temperature_card_with_background.png": "Horizontal temperature card with background - image", + "horizontal_uv_index_card.png": "Horizontal UV Index card - image", + "horizontal_uv_index_card_with_background#background_image.png": "Horizontal UV Index card with background - background image", + "horizontal_uv_index_card_with_background.png": "Horizontal UV Index card with background - image", + "horizontal_vibration_card.png": "Horizontal vibration card - image", + "horizontal_vibration_card_with_background#background_image.png": "Horizontal vibration card with background - background image", + "horizontal_vibration_card_with_background.png": "Horizontal vibration card with background - image", + "horizontal_visibility_card.png": "Horizontal visibility card - image", + "horizontal_visibility_card_with_background#background_image.png": "Horizontal visibility card with background - background image", + "horizontal_visibility_card_with_background.png": "Horizontal visibility card with background - image", + "horizontal_volatile_organic_compounds_card.png": "Horizontal volatile organic compounds card - image", + "horizontal_volatile_organic_compounds_card_with_background#background_image.png": "Horizontal volatile organic compounds card with background - background image", + "horizontal_volatile_organic_compounds_card_with_background.png": "Horizontal volatile organic compounds card with background - image", + "horizontal_wind_speed_card.png": "Horizontal wind speed card - image", + "horizontal_wind_speed_card_with_background#background_image.png": "Horizontal wind speed card with background - background image", + "horizontal_wind_speed_card_with_background.png": "Horizontal wind speed card with background - image", + "html_widgets.png": "HTML widgets - image", + "humidity_card.png": "Humidity card - image", + "humidity_card_with_background#background_image.png": "Humidity card with background - background image", + "humidity_card_with_background.png": "Humidity card with background - image", + "humidity_chart_card.png": "Humidity chart card - image", + "humidity_chart_card_with_background#background_image.png": "Humidity chart card with background - background image", + "humidity_chart_card_with_background.png": "Humidity chart card with background - image", + "humidity_progress_bar.png": "Humidity progress bar - image", + "humidity_progress_bar_with_background#background_image.png": "Humidity progress bar with background - background image", + "humidity_progress_bar_with_background.png": "Humidity progress bar with background - image", + "illuminance_card.png": "Illuminance card - image", + "illuminance_card_with_background#background_image.png": "Illuminance card with background - background image", + "illuminance_card_with_background.png": "Illuminance card with background - image", + "illuminance_chart_card.png": "Illuminance chart card - image", + "illuminance_chart_card_with_background#background_image.png": "Illuminance chart card with background - background image", + "illuminance_chart_card_with_background.png": "Illuminance chart card with background - image", + "illuminance_progress_bar.png": "Illuminance progress bar - image", + "illuminance_progress_bar_with_background#background_image.png": "Illuminance progress bar with background - background image", + "illuminance_progress_bar_with_background.png": "Illuminance progress bar with background - image", + "indoor_co2_card.png": "Indoor CO2 card - image", + "indoor_co2_card_with_background#background_image.png": "Indoor CO2 card with background - background image", + "indoor_co2_card_with_background.png": "Indoor CO2 card with background - image", + "indoor_co2_chart_card.png": "Indoor CO2 chart card - image", + "indoor_co2_chart_card_with_background#background_image.png": "Indoor CO2 chart card with background - background image", + "indoor_co2_chart_card_with_background.png": "Indoor CO2 chart card with background - image", + "indoor_environment.png": "Indoor Environment - image", + "indoor_horizontal_co2_card.png": "Indoor horizontal CO2 card - image", + "indoor_horizontal_co2_card_with_background#background_image.png": "Indoor horizontal CO2 card with background - background image", + "indoor_horizontal_co2_card_with_background.png": "Indoor horizontal CO2 card with background - image", + "indoor_horizontal_humidity_card.png": "Indoor horizontal humidity card - image", + "indoor_horizontal_humidity_card_with_background#background_image.png": "Indoor horizontal humidity card with background - background image", + "indoor_horizontal_humidity_card_with_background.png": "Indoor horizontal humidity card with background - image", + "indoor_horizontal_illuminance_card.png": "Indoor horizontal illuminance card - image", + "indoor_horizontal_illuminance_card_with_background#background_image.png": "Indoor horizontal illuminance card with background - background image", + "indoor_horizontal_illuminance_card_with_background.png": "Indoor horizontal illuminance card with background - image", + "indoor_horizontal_pm10_card.png": "Indoor horizontal PM10 card - image", + "indoor_horizontal_pm10_card_with_background#background_image.png": "Indoor horizontal PM10 card with background - background image", + "indoor_horizontal_pm10_card_with_background.png": "Indoor horizontal PM10 card with background - image", + "indoor_horizontal_pm2_5_card.png": "Indoor horizontal PM2.5 card - image", + "indoor_horizontal_pm2_5_card_with_background#background_image.png": "Indoor horizontal PM2.5 card with background - background image", + "indoor_horizontal_pm2_5_card_with_background.png": "Indoor horizontal PM2.5 card with background - image", + "indoor_horizontal_temperature_card.png": "Indoor horizontal temperature card - image", + "indoor_horizontal_temperature_card_with_background#background_image.png": "Indoor horizontal temperature card with background - background image", + "indoor_horizontal_temperature_card_with_background.png": "Indoor horizontal temperature card with background - image", + "indoor_humidity_card.png": "Indoor humidity card - image", + "indoor_humidity_card_with_background#background_image.png": "Indoor humidity card with background - background image", + "indoor_humidity_card_with_background.png": "Indoor humidity card with background - image", + "indoor_humidity_chart_card.png": "Indoor humidity chart card - image", + "indoor_humidity_chart_card_with_background#background_image.png": "Indoor humidity chart card with background - background image", + "indoor_humidity_chart_card_with_background.png": "Indoor humidity chart card with background - image", + "indoor_humidity_progress_bar.png": "Indoor humidity progress bar - image", + "indoor_humidity_progress_bar_with_background#background_image.png": "Indoor humidity progress bar with background - background image", + "indoor_humidity_progress_bar_with_background.png": "Indoor humidity progress bar with background - image", + "indoor_illuminance_card.png": "Indoor illuminance card - image", + "indoor_illuminance_card_with_background#background_image.png": "Indoor illuminance card with background - background image", + "indoor_illuminance_card_with_background.png": "Indoor illuminance card with background - image", + "indoor_illuminance_chart_card.png": "Indoor illuminance chart card - image", + "indoor_illuminance_chart_card_with_background#background_image.png": "Indoor illuminance chart card with background - background image", + "indoor_illuminance_chart_card_with_background.png": "Indoor illuminance chart card with background - image", + "indoor_illuminance_progress_bar.png": "Indoor illuminance progress bar - image", + "indoor_illuminance_progress_bar_with_background#background_image.png": "Indoor illuminance progress bar with background - background image", + "indoor_illuminance_progress_bar_with_background.png": "Indoor illuminance progress bar with background - image", + "indoor_pm10_card.png": "Indoor PM10 card - image", + "indoor_pm10_card_with_background#background_image.png": "Indoor PM10 card with background - background image", + "indoor_pm10_card_with_background.png": "Indoor PM10 card with background - image", + "indoor_pm10_chart_card.png": "Indoor PM10 chart card - image", + "indoor_pm10_chart_card_with_background#background_image.png": "Indoor PM10 chart card with background - background image", + "indoor_pm10_chart_card_with_background.png": "Indoor PM10 chart card with background - image", + "indoor_pm2_5_card.png": "Indoor PM2.5 card - image", + "indoor_pm2_5_card_with_background#background_image.png": "Indoor PM2.5 card with background - background image", + "indoor_pm2_5_card_with_background.png": "Indoor PM2.5 card with background - image", + "indoor_pm2_5_chart_card.png": "Indoor PM2.5 chart card - image", + "indoor_pm2_5_chart_card_with_background#background_image.png": "Indoor PM2.5 chart card with background - background image", + "indoor_pm2_5_chart_card_with_background.png": "Indoor PM2.5 chart card with background - image", + "indoor_simple_co2_chart_card.png": "Indoor simple CO2 chart card - image", + "indoor_simple_co2_chart_card_with_background#background_image.png": "Indoor simple CO2 chart card with background - background image", + "indoor_simple_co2_chart_card_with_background.png": "Indoor simple CO2 chart card with background - image", + "indoor_simple_humidity_chart_card.png": "Indoor simple humidity chart card - image", + "indoor_simple_humidity_chart_card_with_background#background_image.png": "Indoor simple humidity chart card with background - background image", + "indoor_simple_humidity_chart_card_with_background.png": "Indoor simple humidity chart card with background - image", + "indoor_simple_illuminance_chart_card.png": "Indoor simple illuminance chart card - image", + "indoor_simple_illuminance_chart_card_with_background#background_image.png": "Indoor simple illuminance chart card with background - background image", + "indoor_simple_illuminance_chart_card_with_background.png": "Indoor simple illuminance chart card with background - image", + "indoor_simple_pm10_chart_card.png": "Indoor simple PM10 chart card - image", + "indoor_simple_pm10_chart_card_with_background#background_image.png": "Indoor simple PM10 chart card with background - background image", + "indoor_simple_pm10_chart_card_with_background.png": "Indoor simple PM10 chart card with background - image", + "indoor_simple_pm2_5_chart_card.png": "Indoor simple PM2.5 chart card - image", + "indoor_simple_pm2_5_chart_card_with_background#background_image.png": "Indoor simple PM2.5 chart card with background - background image", + "indoor_simple_pm2_5_chart_card_with_background.png": "Indoor simple PM2.5 chart card with background - image", + "indoor_simple_temperature_chart_card.png": "Indoor simple temperature chart card - image", + "indoor_simple_temperature_chart_card_with_background#background_image.png": "Indoor simple temperature chart card with background - background image", + "indoor_simple_temperature_chart_card_with_background.png": "Indoor simple temperature chart card with background - image", + "indoor_temperature_card.png": "Indoor temperature card - image", + "indoor_temperature_card_with_background#background_image.png": "Indoor temperature card with background - background image", + "indoor_temperature_card_with_background.png": "Indoor temperature card with background - image", + "indoor_temperature_chart_card.png": "Indoor temperature chart card - image", + "indoor_temperature_chart_card_with_background#background_image.png": "Indoor temperature chart card with background - background image", + "indoor_temperature_chart_card_with_background.png": "Indoor temperature chart card with background - image", + "indoor_temperature_progress_bar.png": "Indoor temperature progress bar - image", + "indoor_temperature_progress_bar_with_background#background_image.png": "Indoor temperature progress bar with background - background image", + "indoor_temperature_progress_bar_with_background.png": "Indoor temperature progress bar with background - image", + "input_widgets.device_claiming_widget.png": "Device claiming widget - image", + "input_widgets.markers_placement_google_maps.png": "Markers Placement - Google Maps - image", + "input_widgets.markers_placement_image_map#map_image.svg": "Markers Placement - Image Map - map image", + "input_widgets.markers_placement_image_map.png": "Markers Placement - Image Map - image", + "input_widgets.markers_placement_openstreetmap.png": "Markers Placement - OpenStreetMap - image", + "input_widgets.png": "Input widgets - image", + "input_widgets.update_boolean_timeseries.png": "Update boolean timeseries - image", + "input_widgets.update_double_timeseries.png": "Update double timeseries - image", + "input_widgets.update_integer_timeseries.png": "Update integer timeseries - image", + "input_widgets.update_json_attribute.png": "Update JSON attribute - image", + "input_widgets.update_location_timeseries.png": "Update location timeseries - image", + "input_widgets.update_multiple_attributes.png": "Update Multiple Attributes - image", + "input_widgets.update_server_boolean_attribute.png": "Update server boolean attribute - image", + "input_widgets.update_server_date_attribute.png": "Update server date attribute - image", + "input_widgets.update_server_double_attribute.png": "Update server double attribute - image", + "input_widgets.update_server_image_attribute.png": "Update server image attribute - image", + "input_widgets.update_server_integer_attribute.png": "Update server integer attribute - image", + "input_widgets.update_server_location_attribute.png": "Update server location attribute - image", + "input_widgets.update_server_string_attribute.png": "Update server string attribute - image", + "input_widgets.update_shared_boolean_attribute.png": "Update shared boolean attribute - image", + "input_widgets.update_shared_date_attribute.png": "Update shared date attribute - image", + "input_widgets.update_shared_double_attribute.png": "Update shared double attribute - image", + "input_widgets.update_shared_image_attribute.png": "Update shared image attribute - image", + "input_widgets.update_shared_integer_attribute.png": "Update shared integer attribute - image", + "input_widgets.update_shared_location_attribute.png": "Update shared location attribute - image", + "input_widgets.update_shared_string_attribute.png": "Update shared string attribute - image", + "input_widgets.update_string_timeseries.png": "Update string timeseries - image", + "input_widgets.web_camera_input.png": "Photo camera input - image", + "leaf_wetness_card.png": "Leaf wetness card - image", + "leaf_wetness_card_with_background#background_image.png": "Leaf wetness card with background - background image", + "leaf_wetness_card_with_background.png": "Leaf wetness card with background - image", + "leaf_wetness_chart_card.png": "Leaf wetness chart card - image", + "leaf_wetness_chart_card_with_background#background_image.png": "Leaf wetness chart card with background - background image", + "leaf_wetness_chart_card_with_background.png": "Leaf wetness chart card with background - image", + "leaf_wetness_progress_bar.png": "Leaf wetness progress bar - image", + "leaf_wetness_progress_bar_with_background#background_image.png": "Leaf wetness progress bar with background - background image", + "leaf_wetness_progress_bar_with_background.png": "Leaf wetness progress bar with background - image", + "liquid_level_tanks.png": "Liquid level - image", + "maps_v2.google_maps#marker_image_1.png": "Google Map - marker image 1", + "maps_v2.google_maps#marker_image_2.png": "Google Map - marker image 2", + "maps_v2.google_maps#marker_image_3.png": "Google Map - marker image 3", + "maps_v2.google_maps#marker_image_4.png": "Google Map - marker image 4", + "maps_v2.google_maps.png": "Google Map - image", + "maps_v2.here_map#map_image.svg": "HERE Map - map image", + "maps_v2.here_map#marker_image_1.png": "HERE Map - marker image 1", + "maps_v2.here_map#marker_image_2.png": "HERE Map - marker image 2", + "maps_v2.here_map#marker_image_3.png": "HERE Map - marker image 3", + "maps_v2.here_map#marker_image_4.png": "HERE Map - marker image 4", + "maps_v2.here_map.png": "HERE Map - image", + "maps_v2.image_map#map_image.svg": "Image Map - map image", + "maps_v2.image_map#marker_image_1.png": "Image Map - marker image 1", + "maps_v2.image_map#marker_image_2.png": "Image Map - marker image 2", + "maps_v2.image_map#marker_image_3.png": "Image Map - marker image 3", + "maps_v2.image_map#marker_image_4.png": "Image Map - marker image 4", + "maps_v2.image_map.png": "Image Map - image", + "maps_v2.openstreetmap#marker_image_1.png": "OpenStreet Map - marker image 1", + "maps_v2.openstreetmap#marker_image_2.png": "OpenStreet Map - marker image 2", + "maps_v2.openstreetmap#marker_image_3.png": "OpenStreet Map - marker image 3", + "maps_v2.openstreetmap#marker_image_4.png": "OpenStreet Map - marker image 4", + "maps_v2.openstreetmap.png": "OpenStreet Map - image", + "maps_v2.png": "Maps - image", + "maps_v2.route_map#marker_image_1.png": "Route Map - Google - marker image 1", + "maps_v2.route_map#marker_image_2.png": "Route Map - Google - marker image 2", + "maps_v2.route_map#marker_image_3.png": "Route Map - Google - marker image 3", + "maps_v2.route_map.png": "Route Map - Google - image", + "maps_v2.route_map_openstreetmap#marker_image_1.png": "Route Map - OpenStreet - marker image 1", + "maps_v2.route_map_openstreetmap#marker_image_2.png": "Route Map - OpenStreet - marker image 2", + "maps_v2.route_map_openstreetmap#marker_image_3.png": "Route Map - OpenStreet - marker image 3", + "maps_v2.route_map_openstreetmap.png": "Route Map - OpenStreet - image", + "maps_v2.route_map_tencent_maps#marker_image_1.png": "Route Map - Tencent - marker image 1", + "maps_v2.route_map_tencent_maps#marker_image_2.png": "Route Map - Tencent - marker image 2", + "maps_v2.route_map_tencent_maps#marker_image_3.png": "Route Map - Tencent - marker image 3", + "maps_v2.route_map_tencent_maps.png": "Route Map - Tencent - image", + "maps_v2.tencent_maps#marker_image_1.png": "Tencent Map - marker image 1", + "maps_v2.tencent_maps#marker_image_2.png": "Tencent Map - marker image 2", + "maps_v2.tencent_maps#marker_image_3.png": "Tencent Map - marker image 3", + "maps_v2.tencent_maps#marker_image_4.png": "Tencent Map - marker image 4", + "maps_v2.tencent_maps.png": "Tencent Map - image", + "maps_v2.test.png": "Trip Animation - image", + "navigation_widgets.navigation_card.png": "Navigation card - image", + "navigation_widgets.navigation_cards.png": "Navigation cards - image", + "navigation_widgets.png": "Navigation widgets - image", + "noise_level_card.png": "Noise level card - image", + "noise_level_card_with_background#background_image.png": "Noise level card with background - background image", + "noise_level_card_with_background.png": "Noise level card with background - image", + "noise_level_chart_card.png": "Noise level chart card - image", + "noise_level_chart_card_with_background#background_image.png": "Noise level chart card with background - background image", + "noise_level_chart_card_with_background.png": "Noise level chart card with background - image", + "outdoor_environment.png": "Outdoor Environment - image", + "pm10_card.png": "PM10 card - image", + "pm10_card_with_background#background_image.png": "PM10 card with background - background image", + "pm10_card_with_background.png": "PM10 card with background - image", + "pm10_chart_card.png": "PM10 chart card - image", + "pm10_chart_card_with_background#background_image.png": "PM10 chart card with background - background image", + "pm10_chart_card_with_background.png": "PM10 chart card with background - image", + "pm2_5_card.png": "PM2.5 card - image", + "pm2_5_card_with_background#background_image.png": "PM2.5 card with background - background image", + "pm2_5_card_with_background.png": "PM2.5 card with background - image", + "pm2_5_chart_card.png": "PM2.5 chart card - image", + "pm2_5_chart_card_with_background#background_image.png": "PM2.5 chart card with background - background image", + "pm2_5_chart_card_with_background.png": "PM2.5 chart card with background - image", + "pressure_card.png": "Pressure card - image", + "pressure_card_with_background#background_image.png": "Pressure card with background - background image", + "pressure_card_with_background.png": "Pressure card with background - image", + "pressure_chart_card.png": "Pressure chart card - image", + "pressure_chart_card_with_background#background_image.png": "Pressure chart card with background - background image", + "pressure_chart_card_with_background.png": "Pressure chart card with background - image", + "pressure_progress_bar.png": "Pressure progress bar - image", + "pressure_progress_bar_with_background#background_image.png": "Pressure progress bar with background - background image", + "pressure_progress_bar_with_background.png": "Pressure progress bar with background - image", + "progress_bar.png": "Progress bar - image", + "radon_level_card.png": "Radon level card - image", + "radon_level_card_with_background#background_image.png": "Radon level card with background - background image", + "radon_level_card_with_background.png": "Radon level card with background - image", + "radon_level_chart_card.png": "Radon level chart card - image", + "radon_level_chart_card_with_background#background_image.png": "Radon level chart card with background - background image", + "radon_level_chart_card_with_background.png": "Radon level chart card with background - image", + "rainfall_card.png": "Rainfall card - image", + "rainfall_card_with_background#background_image.png": "Rainfall card with background - background image", + "rainfall_card_with_background.png": "Rainfall card with background - image", + "rainfall_chart_card.png": "Rainfall chart card - image", + "rainfall_chart_card_with_background#background_image.png": "Rainfall chart card with background - background image", + "rainfall_chart_card_with_background.png": "Rainfall chart card with background - image", + "rectangle_tank.png": "Rectangle tank - image", + "signal_strength.png": "Signal strength - image", + "simple_air_quality_chart_card.png": "Simple air quality index chart card - image", + "simple_air_quality_chart_card_with_background#background_image.png": "Simple air quality index chart card with background - background image", + "simple_air_quality_chart_card_with_background.png": "Simple air quality index chart card with background - image", + "simple_co2_chart_card.png": "Simple CO2 chart card - image", + "simple_co2_chart_card_with_background#background_image.png": "Simple CO2 chart card with background - background image", + "simple_co2_chart_card_with_background.png": "Simple CO2 chart card with background - image", + "simple_flooding_level_chart_card.png": "Simple flooding level chart card - image", + "simple_flooding_level_chart_card_with_background#background_image.png": "Simple flooding level chart card with background - background image", + "simple_flooding_level_chart_card_with_background.png": "Simple flooding level chart card with background - image", + "simple_ground_temperature_chart_card.png": "Simple ground temperature chart card - image", + "simple_ground_temperature_chart_card_with_background#background_image.png": "Simple ground temperature chart card with background - background image", + "simple_ground_temperature_chart_card_with_background.png": "Simple ground temperature chart card with background - image", + "simple_humidity_chart_card.png": "Simple humidity chart card - image", + "simple_humidity_chart_card_with_background#background_image.png": "Simple humidity chart card with background - background image", + "simple_humidity_chart_card_with_background.png": "Simple humidity chart card with background - image", + "simple_illuminance_chart_card.png": "Simple illuminance chart card - image", + "simple_illuminance_chart_card_with_background#background_image.png": "Simple illuminance chart card with background - background image", + "simple_illuminance_chart_card_with_background.png": "Simple illuminance chart card with background - image", + "simple_leaf_wetness_chart_card.png": "Simple leaf wetness chart card - image", + "simple_leaf_wetness_chart_card_with_background#background_image.png": "Simple leaf wetness chart card with background - background image", + "simple_leaf_wetness_chart_card_with_background.png": "Simple leaf wetness chart card with background - image", + "simple_noise_level_chart_card.png": "Simple noise level chart card - image", + "simple_noise_level_chart_card_with_background#background_image.png": "Simple noise level chart card with background - background image", + "simple_noise_level_chart_card_with_background.png": "Simple noise level chart card with background - image", + "simple_pm10_chart_card.png": "Simple PM10 chart card - image", + "simple_pm10_chart_card_with_background#background_image.png": "Simple PM10 chart card with background - background image", + "simple_pm10_chart_card_with_background.png": "Simple PM10 chart card with background - image", + "simple_pm2_5_chart_card.png": "Simple PM2.5 chart card - image", + "simple_pm2_5_chart_card_with_background#background_image.png": "Simple PM2.5 chart card with background - background image", + "simple_pm2_5_chart_card_with_background.png": "Simple PM2.5 chart card with background - image", + "simple_pressure_chart_card.png": "Simple pressure chart card - image", + "simple_pressure_chart_card_with_background#background_image.png": "Simple pressure chart card with background - background image", + "simple_pressure_chart_card_with_background.png": "Simple pressure chart card with background - image", + "simple_radon_level_chart_card.png": "Simple radon level chart card - image", + "simple_radon_level_chart_card_with_background#background_image.png": "Simple radon level chart card with background - background image", + "simple_radon_level_chart_card_with_background.png": "Simple radon level chart card with background - image", + "simple_rainfall_chart_card.png": "Simple rainfall chart card - image", + "simple_rainfall_chart_card_with_background#background_image.png": "Simple rainfall chart card with background - background image", + "simple_rainfall_chart_card_with_background.png": "Simple rainfall chart card with background - image", + "simple_snow_depth_chart_card.png": "Simple snow depth chart card - image", + "simple_snow_depth_chart_card_with_background#background_image.png": "Simple snow depth chart card with background - background image", + "simple_snow_depth_chart_card_with_background.png": "Simple snow depth chart card with background - image", + "simple_soil_moisture_chart_card.png": "Simple soil moisture chart card - image", + "simple_soil_moisture_chart_card_with_background#background_image.png": "Simple soil moisture chart card with background - background image", + "simple_soil_moisture_chart_card_with_background.png": "Simple soil moisture chart card with background - image", + "simple_solar_radiation_chart_card.png": "Simple solar radiation chart card - image", + "simple_solar_radiation_chart_card_with_background#background_image.png": "Simple solar radiation chart card with background - background image", + "simple_solar_radiation_chart_card_with_background.png": "Simple solar radiation chart card with background - image", + "simple_temperature_chart_card.png": "Simple temperature chart card - image", + "simple_temperature_chart_card_with_background#background_image.png": "Simple temperature chart card with background - background image", + "simple_temperature_chart_card_with_background.png": "Simple temperature chart card with background - image", + "simple_uv_index_chart_card.png": "Simple UV Index chart card - image", + "simple_uv_index_chart_card_with_background#background_image.png": "Simple UV Index chart card with background - background image", + "simple_uv_index_chart_card_with_background.png": "Simple UV Index chart card with background - image", + "simple_value_and_chart_card.png": "Simple Value and chart card - image", + "simple_vibration_chart_card.png": "Simple vibration chart card - image", + "simple_vibration_chart_card_with_background#background_image.png": "Simple vibration chart card with background - background image", + "simple_vibration_chart_card_with_background.png": "Simple vibration chart card with background - image", + "simple_visibility_chart_card.png": "Simple visibility chart card - image", + "simple_visibility_chart_card_with_background#background_image.png": "Simple visibility chart card with background - background image", + "simple_visibility_chart_card_with_background.png": "Simple visibility chart card with background - image", + "simple_volatile_organic_compounds_chart_card.png": "Simple volatile organic compounds chart card - image", + "simple_volatile_organic_compounds_chart_card_with_background#background_image.png": "Simple volatile organic compounds chart card with background - background image", + "simple_volatile_organic_compounds_chart_card_with_background.png": "Simple volatile organic compounds chart card with background - image", + "simple_wind_speed_chart_card.png": "Simple wind speed chart card - image", + "simple_wind_speed_chart_card_with_background#background_image.png": "Simple wind speed chart card with background - background image", + "simple_wind_speed_chart_card_with_background.png": "Simple wind speed chart card with background - image", + "snow_depth_card.png": "Snow depth card - image", + "snow_depth_card_with_background#background_image.png": "Snow depth card with background - background image", + "snow_depth_card_with_background.png": "Snow depth card with background - image", + "snow_depth_chart_card.png": "Snow depth chart card - image", + "snow_depth_chart_card_with_background#background_image.png": "Snow depth chart card with background - background image", + "snow_depth_chart_card_with_background.png": "Snow depth chart card with background - image", + "soil_moisture_card.png": "Soil moisture card - image", + "soil_moisture_card_with_background#background_image.png": "Soil moisture card with background - background image", + "soil_moisture_card_with_background.png": "Soil moisture card with background - image", + "soil_moisture_chart_card.png": "Soil moisture chart card - image", + "soil_moisture_chart_card_with_background#background_image.png": "Soil moisture chart card with background - background image", + "soil_moisture_chart_card_with_background.png": "Soil moisture chart card with background - image", + "soil_moisture_progress_bar.png": "Soil moisture progress bar - image", + "soil_moisture_progress_bar_with_background#background_image.png": "Soil moisture progress bar with background - background image", + "soil_moisture_progress_bar_with_background.png": "Soil moisture progress bar with background - image", + "solar_radiation_card.png": "Solar radiation card - image", + "solar_radiation_card_with_background#background_image.png": "Solar radiation card with background - background image", + "solar_radiation_card_with_background.png": "Solar radiation card with background - image", + "solar_radiation_chart_card.png": "Solar radiation chart card - image", + "solar_radiation_chart_card_with_background#background_image.png": "Solar radiation chart card with background - background image", + "solar_radiation_chart_card_with_background.png": "Solar radiation chart card with background - image", + "status_indicators.png": "Status indicators - image", + "tables.png": "Tables - image", + "temperature_card.png": "Temperature card - image", + "temperature_card_with_background#background_image.png": "Temperature card with background - background image", + "temperature_card_with_background.png": "Temperature card with background - image", + "temperature_chart_card.png": "Temperature chart card - image", + "temperature_chart_card_with_background#background_image.png": "Temperature chart card with background - background image", + "temperature_chart_card_with_background.png": "Temperature chart card with background - image", + "thermostats.maps_v2.openstreetmap#marker_image_1.svg": "Thermostat maps - marker image 1", + "thermostats.maps_v2.openstreetmap#marker_image_2.svg": "Thermostat maps - marker image 2", + "uv_index_card.png": "UV Index card - image", + "uv_index_card_with_background#background_image.png": "UV Index card with background - background image", + "uv_index_card_with_background.png": "UV Index card with background - image", + "uv_index_chart_card.png": "UV Index chart card - image", + "uv_index_chart_card_with_background#background_image.png": "UV Index chart card with background - background image", + "uv_index_chart_card_with_background.png": "UV Index chart card with background - image", + "vertical_capsule_tank.png": "Vertical capsule tank - image", + "vertical_cylinder_tank.png": "Vertical cylinder tank - image", + "vertical_oval_tank.png": "Vertical oval tank - image", + "vibration_card.png": "Vibration card - image", + "vibration_card_with_background#background_image.png": "Vibration card with background - background image", + "vibration_card_with_background.png": "Vibration card with background - image", + "vibration_chart_card.png": "Vibration chart card - image", + "vibration_chart_card_with_background#background_image.png": "Vibration chart card with background - background image", + "vibration_chart_card_with_background.png": "Vibration chart card with background - image", + "visibility_card.png": "Visibility card - image", + "visibility_card_with_background#background_image.png": "Visibility card with background - background image", + "visibility_card_with_background.png": "Visibility card with background - image", + "visibility_chart_card.png": "Visibility chart card - image", + "visibility_chart_card_with_background#background_image.png": "Visibility chart card with background - background image", + "visibility_chart_card_with_background.png": "Visibility chart card with background - image", + "volatile_organic_compounds_card.png": "Volatile organic compounds card - image", + "volatile_organic_compounds_card_with_background#background_image.png": "Volatile organic compounds card with background - background image", + "volatile_organic_compounds_card_with_background.png": "Volatile organic compounds card with background - image", + "volatile_organic_compounds_chart_card.png": "Volatile organic compounds chart card - image", + "volatile_organic_compounds_chart_card_with_background#background_image.png": "Volatile organic compounds chart card with background - background image", + "volatile_organic_compounds_chart_card_with_background.png": "Volatile organic compounds chart card with background - image", + "wind_speed_and_direction.png": "Wind speed and direction - image", + "wind_speed_and_direction_with_background#background_image.png": "Wind speed and direction with background - background image", + "wind_speed_and_direction_with_background.png": "Wind speed and direction with background - image", + "wind_speed_card.png": "Wind speed card - image", + "wind_speed_card_with_background#background_image.png": "Wind speed card with background - background image", + "wind_speed_card_with_background.png": "Wind speed card with background - image", + "wind_speed_chart_card.png": "Wind speed chart card - image", + "wind_speed_chart_card_with_background#background_image.png": "Wind speed chart card with background - background image", + "wind_speed_chart_card_with_background.png": "Wind speed chart card with background - image" } \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java index 1cbb412af4..52ac77b733 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java @@ -19,19 +19,24 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.hash.Hashing; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.util.MediaTypeUtils; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.TreeMap; +import java.util.stream.Collectors; @Slf4j public class SystemImagesMigrator { // TEMPORARY @@ -45,6 +50,7 @@ public class SystemImagesMigrator { // TEMPORARY private static final Path demoDashboardsDir = dataDir.resolve("json").resolve("demo").resolve("dashboards"); private static final Map imageNames = new TreeMap<>(); + private static final Map imageHashes = new HashMap<>(); public static void main(String[] args) throws Exception { Files.createDirectories(imagesDir); @@ -196,6 +202,32 @@ public class SystemImagesMigrator { // TEMPORARY return "/api/images/system/" + imageKey; } + private static void checkDuplicates() throws IOException { + Files.walk(imagesDir) + .filter(path -> path.toFile().isFile()) + .filter(path -> !path.getFileName().toString().endsWith("json")) + .forEach(imageFile -> { + try { + byte[] data = Files.readAllBytes(imageFile); + String hash = Hashing.sha256().hashBytes(data).toString(); + imageHashes.put(imageFile.getFileName().toString(), hash); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + imageHashes.values().stream() + .distinct() + .forEach(hash -> { + List sameImages = imageHashes.entrySet().stream() + .filter(entry -> entry.getValue().equals(hash)) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + if (sameImages.size() > 1) { + System.err.println("Duplicated images (hash " + hash + "):\n" + String.join("\n", sameImages) + "\n"); + } + }); + } + private static String getText(JsonNode jsonNode, String field) { return Optional.ofNullable(jsonNode.get(field)) .filter(JsonNode::isTextual) diff --git a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java index 26eead0ec7..ee6c7f8b50 100644 --- a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java +++ b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.install; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; @@ -36,12 +37,19 @@ import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.usagerecord.ApiLimitService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; +import org.thingsboard.server.service.install.update.ImagesUpdater; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.UUID; +import java.util.regex.Pattern; +import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -63,6 +71,8 @@ class InstallScriptsTest { OAuth2ConfigTemplateService oAuth2TemplateService; @MockBean ResourceService resourceService; + @MockBean + ImagesUpdater imagesUpdater; @SpyBean InstallScripts installScripts; @@ -116,4 +126,49 @@ class InstallScriptsTest { .containsExactlyInAnyOrderElementsOf(Collections.emptyList()); } + @Test + public void testSystemImageNames() throws IOException { + Path imagesDir = Path.of(installScripts.getDataDir(), InstallScripts.IMAGES_DIR); + Path imageNamesFile = imagesDir.resolve("names.json"); + Map imageNames = JacksonUtil.OBJECT_MAPPER.readValue(imageNamesFile.toFile(), new TypeReference<>() {}); + + assertThat(imageNames.keySet()).containsAll(getSystemImages()); + } + + @Test + public void testReferencedImages() throws IOException { + Path jsonDir = Path.of(installScripts.getDataDir(), InstallScripts.JSON_DIR); + List files = Files.walk(jsonDir) + .filter(path -> path.toFile().isFile()) + .filter(path -> path.getFileName().toString().endsWith(".json")) + .collect(Collectors.toList()); + + Set referencedImages = new HashSet<>(); + Pattern imageUrlPattern = Pattern.compile("/api/images/system/(.+?)\\\\?\""); + for (Path file : files) { + String content = Files.readString(file); + imageUrlPattern.matcher(content).results() + .map(matchResult -> matchResult.group(1)) + .forEach(referencedImages::add); + } + assertThat(getSystemImages()).containsAll(referencedImages); + } + + private List getSystemImages() throws IOException { + String dataDir = installScripts.getDataDir(); + Path imagesDir = Path.of(dataDir, InstallScripts.IMAGES_DIR); + + return Files.list(imagesDir) + .filter(path -> path.toFile().isDirectory()) + .flatMap(dir -> { + try { + return Files.list(dir); + } catch (IOException e) { + throw new RuntimeException(e); + } + }) + .map(path -> path.getFileName().toString()) + .collect(Collectors.toList()); + } + } From 709329150bafcd6a243f8e2c3a20720a3363d856 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 10 Nov 2023 11:56:15 +0200 Subject: [PATCH 011/162] added fix for test cleanup method --- .../server/controller/AbstractWebTest.java | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java index 151e779ae0..61836fef1c 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java @@ -25,9 +25,11 @@ import io.jsonwebtoken.Header; import io.jsonwebtoken.Jwt; import io.jsonwebtoken.Jwts; import lombok.extern.slf4j.Slf4j; +import org.apache.http.HttpStatus; import org.awaitility.Awaitility; import org.hamcrest.Matcher; import org.hibernate.exception.ConstraintViolationException; +import org.jetbrains.annotations.NotNull; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -177,6 +179,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { * and {@link org.springframework.mock.web.MockAsyncContext#getTimeout()} */ private static final long DEFAULT_TIMEOUT = -1L; + private static final int CLEANUP_TENANT_RETRIES_COUNT = 3; protected MediaType contentType = MediaType.APPLICATION_JSON; @@ -330,10 +333,6 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { log.debug("Executing web test teardown"); loginSysAdmin(); - doDelete("/api/tenant/" + tenantId.getId().toString()) - .andExpect(status().isOk()); - deleteDifferentTenant(); - verifyNoTenantsLeft(); tenantProfileService.deleteTenantProfiles(TenantId.SYS_TENANT_ID); @@ -341,7 +340,30 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { log.info("Executed web test teardown"); } - void verifyNoTenantsLeft() throws Exception { + private void verifyNoTenantsLeft() throws Exception { + List loadedTenants = getAllTenants(); + if (!loadedTenants.isEmpty()) { + loadedTenants.forEach(tenant -> deleteTenant(tenant.getId())); + loadedTenants = getAllTenants(); + } + assertThat(loadedTenants).as("All tenants expected to be deleted, but some tenants left in the database").isEmpty(); + } + + private void deleteTenant(TenantId tenantId) { + int status = 0; + int retries = 0; + while (status != HttpStatus.SC_OK && retries < CLEANUP_TENANT_RETRIES_COUNT) { + retries++; + try { + status = doDelete("/api/tenant/" + tenantId.getId().toString()) + .andReturn().getResponse().getStatus(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + @NotNull + private List getAllTenants() throws Exception { List loadedTenants = new ArrayList<>(); PageLink pageLink = new PageLink(10); PageData pageData; @@ -353,8 +375,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { pageLink = pageLink.nextPageLink(); } } while (pageData.hasNext()); - - assertThat(loadedTenants).as("All tenants expected to be deleted, but some tenants left in the database").isEmpty(); + return loadedTenants; } protected void loginSysAdmin() throws Exception { @@ -465,8 +486,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { protected void deleteDifferentTenant() throws Exception { if (savedDifferentTenant != null) { loginSysAdmin(); - doDelete("/api/tenant/" + savedDifferentTenant.getId().getId().toString()) - .andExpect(status().isOk()); + deleteTenant(savedDifferentTenant.getId()); savedDifferentTenant = null; } } From 171f4ed4899680dd87aecb7d5abd13d00d2f5487 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 10 Nov 2023 12:00:44 +0200 Subject: [PATCH 012/162] refactoring --- .../org/thingsboard/server/controller/AbstractWebTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java index 61836fef1c..35f0c52c8d 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java @@ -333,6 +333,8 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { log.debug("Executing web test teardown"); loginSysAdmin(); + deleteTenant(tenantId); + deleteDifferentTenant(); verifyNoTenantsLeft(); tenantProfileService.deleteTenantProfiles(TenantId.SYS_TENANT_ID); @@ -362,7 +364,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { } } } - @NotNull + private List getAllTenants() throws Exception { List loadedTenants = new ArrayList<>(); PageLink pageLink = new PageLink(10); From 6551658bfc5a07074badaa3dc91348918b315e7f Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 10 Nov 2023 13:17:23 +0200 Subject: [PATCH 013/162] updated TbTransactionalCache with method that retrieve but doesn`t put value in cache --- .../server/cache/TbTransactionalCache.java | 25 ++++++++++++++++++ .../server/dao/asset/AssetProfileService.java | 4 +++ .../dao/device/DeviceProfileService.java | 4 +++ .../dao/entityview/EntityViewService.java | 2 ++ .../dao/asset/AssetProfileServiceImpl.java | 23 +++++++++++----- .../dao/device/DeviceProfileServiceImpl.java | 26 +++++++++++++------ .../server/dao/device/DeviceServiceImpl.java | 6 ++--- .../dao/entityview/EntityViewServiceImpl.java | 13 +++++++--- 8 files changed, 80 insertions(+), 23 deletions(-) diff --git a/common/cache/src/main/java/org/thingsboard/server/cache/TbTransactionalCache.java b/common/cache/src/main/java/org/thingsboard/server/cache/TbTransactionalCache.java index fc104ef7f1..219e89299f 100644 --- a/common/cache/src/main/java/org/thingsboard/server/cache/TbTransactionalCache.java +++ b/common/cache/src/main/java/org/thingsboard/server/cache/TbTransactionalCache.java @@ -47,6 +47,18 @@ public interface TbTransactionalCache newTransactionForKeys(List keys); + default V getOrFetchFromDB(K key, Supplier dbCall, boolean cacheNullValue, boolean putToCache) { + if (putToCache) { + return getAndPutInTransaction(key, dbCall, cacheNullValue); + } else { + TbCacheValueWrapper cacheValueWrapper = get(key); + if (cacheValueWrapper != null) { + return cacheValueWrapper.get(); + } + return dbCall.get(); + } + } + default V getAndPutInTransaction(K key, Supplier dbCall, boolean cacheNullValue) { TbCacheValueWrapper cacheValueWrapper = get(key); if (cacheValueWrapper != null) { @@ -69,6 +81,19 @@ public interface TbTransactionalCache R getOrFetchFromDB(K key, Supplier dbCall, Function cacheValueToResult, Function dbValueToCacheValue, boolean cacheNullValue, boolean putToCache) { + if (putToCache) { + return getAndPutInTransaction(key, dbCall, cacheValueToResult, dbValueToCacheValue, cacheNullValue); + } else { + TbCacheValueWrapper cacheValueWrapper = get(key); + if (cacheValueWrapper != null) { + var cacheValue = cacheValueWrapper.get(); + return cacheValue == null ? null : cacheValueToResult.apply(cacheValue); + } + return dbCall.get(); + } + } + default R getAndPutInTransaction(K key, Supplier dbCall, Function cacheValueToResult, Function dbValueToCacheValue, boolean cacheNullValue) { TbCacheValueWrapper cacheValueWrapper = get(key); if (cacheValueWrapper != null) { diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java index 1ec6fb3fb5..477c352b54 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/asset/AssetProfileService.java @@ -27,8 +27,12 @@ public interface AssetProfileService extends EntityDaoService { AssetProfile findAssetProfileById(TenantId tenantId, AssetProfileId assetProfileId); + AssetProfile findAssetProfileById(TenantId tenantId, AssetProfileId assetProfileId, boolean putInCache); + AssetProfile findAssetProfileByName(TenantId tenantId, String profileName); + AssetProfile findAssetProfileByName(TenantId tenantId, String profileName, boolean putInCache); + AssetProfileInfo findAssetProfileInfoById(TenantId tenantId, AssetProfileId assetProfileId); AssetProfile saveAssetProfile(AssetProfile assetProfile, boolean doValidate); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java index f94b709c97..5d325aa1a6 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/device/DeviceProfileService.java @@ -27,8 +27,12 @@ public interface DeviceProfileService extends EntityDaoService { DeviceProfile findDeviceProfileById(TenantId tenantId, DeviceProfileId deviceProfileId); + DeviceProfile findDeviceProfileById(TenantId tenantId, DeviceProfileId deviceProfileId, boolean putInCache); + DeviceProfile findDeviceProfileByName(TenantId tenantId, String profileName); + DeviceProfile findDeviceProfileByName(TenantId tenantId, String profileName, boolean putInCache); + DeviceProfileInfo findDeviceProfileInfoById(TenantId tenantId, DeviceProfileId deviceProfileId); DeviceProfile saveDeviceProfile(DeviceProfile deviceProfile, boolean doValidate); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java index 09bad2b48d..7a020767f5 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/entityview/EntityViewService.java @@ -50,6 +50,8 @@ public interface EntityViewService extends EntityDaoService { EntityView findEntityViewById(TenantId tenantId, EntityViewId entityViewId); + EntityView findEntityViewById(TenantId tenantId, EntityViewId entityViewId, boolean putInCache); + EntityView findEntityViewByTenantIdAndName(TenantId tenantId, String name); PageData findEntityViewByTenantId(TenantId tenantId, PageLink pageLink); diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java index fd17c484d7..075975cd96 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java @@ -90,14 +90,24 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService assetProfileDao.findById(tenantId, assetProfileId.getId()), true); + return cache.getOrFetchFromDB(AssetProfileCacheKey.fromId(assetProfileId), + () -> assetProfileDao.findById(tenantId, assetProfileId.getId()), true, putInCache); } @Override public AssetProfile findAssetProfileByName(TenantId tenantId, String profileName) { + return findAssetProfileByName(tenantId, profileName, true); + } + + @Override + public AssetProfile findAssetProfileByName(TenantId tenantId, String profileName, boolean putInCache) { log.trace("Executing findAssetProfileByName [{}][{}]", tenantId, profileName); Validator.validateString(profileName, INCORRECT_ASSET_PROFILE_NAME + profileName); return cache.getAndPutInTransaction(AssetProfileCacheKey.fromName(tenantId, profileName), @@ -126,8 +136,8 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService deviceProfileDao.findById(tenantId, deviceProfileId.getId()), true); + return cache.getOrFetchFromDB(DeviceProfileCacheKey.fromId(deviceProfileId), + () -> deviceProfileDao.findById(tenantId, deviceProfileId.getId()), true, putInCache); } @Override public DeviceProfile findDeviceProfileByName(TenantId tenantId, String profileName) { + return findDeviceProfileByName(tenantId, profileName, true); + } + + @Override + public DeviceProfile findDeviceProfileByName(TenantId tenantId, String profileName, boolean putInCache) { log.trace("Executing findDeviceProfileByName [{}][{}]", tenantId, profileName); validateString(profileName, INCORRECT_DEVICE_PROFILE_NAME + profileName); - return cache.getAndPutInTransaction(DeviceProfileCacheKey.fromName(tenantId, profileName), - () -> deviceProfileDao.findByName(tenantId, profileName), true); + return cache.getOrFetchFromDB(DeviceProfileCacheKey.fromName(tenantId, profileName), + () -> deviceProfileDao.findByName(tenantId, profileName), true, putInCache); } @Override @@ -163,8 +173,8 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService entityViewDao.findById(tenantId, entityViewId.getId()) - , EntityViewCacheValue::getEntityView, v -> new EntityViewCacheValue(v, null), true); + , EntityViewCacheValue::getEntityView, v -> new EntityViewCacheValue(v, null), true, putInCache); } @Override From 7559aa9fe37d32a62eca4a36ee2344d8a154cfe0 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Fri, 10 Nov 2023 14:45:48 +0200 Subject: [PATCH 014/162] Added gateways dashboard creation on tenant add --- .../data/json/demo/dashboards/gateways.json | 1315 ----------------- .../dashboards/gateways.json} | 26 +- .../tenant/DefaultTbTenantService.java | 1 + .../service/install/InstallScripts.java | 9 + 4 files changed, 23 insertions(+), 1328 deletions(-) delete mode 100644 application/src/main/data/json/demo/dashboards/gateways.json rename application/src/main/data/json/{demo/dashboards/gateway.json => tenant/dashboards/gateways.json} (99%) diff --git a/application/src/main/data/json/demo/dashboards/gateways.json b/application/src/main/data/json/demo/dashboards/gateways.json deleted file mode 100644 index f4eb275c3c..0000000000 --- a/application/src/main/data/json/demo/dashboards/gateways.json +++ /dev/null @@ -1,1315 +0,0 @@ -{ - "title": "Gateways", - "image": null, - "mobileHide": false, - "mobileOrder": null, - "configuration": { - "widgets": { - "94715984-ae74-76e4-20b7-2f956b01ed80": { - "type": "latest", - "sizeX": 24, - "sizeY": 12, - "config": { - "timewindow": { - "displayValue": "", - "selectedTab": 0, - "realtime": { - "realtimeType": 1, - "interval": 1000, - "timewindowMs": 86400000, - "quickInterval": "CURRENT_DAY" - }, - "history": { - "historyType": 0, - "interval": 1000, - "timewindowMs": 60000, - "fixedTimewindow": { - "startTimeMs": 1694085270425, - "endTimeMs": 1694171670425 - }, - "quickInterval": "CURRENT_DAY" - }, - "aggregation": { - "type": "NONE", - "limit": 200 - } - }, - "showTitle": true, - "backgroundColor": "rgb(255, 255, 255)", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "4px", - "settings": { - "enableSearch": true, - "displayPagination": true, - "defaultPageSize": 10, - "defaultSortOrder": "entityName", - "displayEntityName": true, - "displayEntityType": false, - "entitiesTitle": "List of gateways", - "enableSelectColumnDisplay": true, - "displayEntityLabel": false, - "entityNameColumnTitle": "Gateway Name" - }, - "title": "Devices gateway table", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400, - "padding": "5px 10px 5px 10px" - }, - "useDashboardTimewindow": false, - "showLegend": false, - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "active", - "type": "attribute", - "label": "Active", - "color": "#2196f3", - "settings": { - "columnWidth": "0px", - "useCellStyleFunction": true, - "useCellContentFunction": true, - "cellContentFunction": "value = '⬤';\nreturn value;", - "cellStyleFunction": "var color;\nif (value == 'false') {\n color = '#EB5757';\n} else {\n color = '#27AE60';\n}\nreturn {\n color: color,\n fontSize: '18px'\n};" - }, - "_hash": 0.3646047595211721 - }, - { - "name": "eventsSent", - "type": "timeseries", - "label": "Sent", - "color": "#4caf50", - "settings": { - "columnWidth": "0px", - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.7235710720767985 - }, - { - "name": "eventsProduced", - "type": "timeseries", - "label": "Events", - "color": "#f44336", - "settings": { - "columnWidth": "0px", - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.5085933386303254 - }, - { - "name": "LOGS", - "type": "timeseries", - "label": "Latest log", - "color": "#ffc107", - "settings": { - "columnWidth": "0px", - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.3504240371585048, - "postFuncBody": "if(value) {\n return value.substring(0, 31) + \"...\";\n} else {\n return '';\n}" - }, - { - "name": "RemoteLoggingLevel", - "type": "attribute", - "label": "Log level", - "color": "#607d8b", - "settings": { - "columnWidth": "0px", - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.9785994222542516 - } - ], - "entityAliasId": "3e0f533a-0db1-3292-184f-06e73535061a" - } - ], - "showTitleIcon": true, - "titleIcon": "list", - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "List device", - "widgetStyle": {}, - "displayTimewindow": true, - "actions": { - "headerButton": [ - { - "name": "Add device", - "icon": "add", - "type": "customPretty", - "customHtml": "
    \n \n

    Add device

    \n \n \n
    \n \n \n
    \n
    \n
    \n \n Device name\n \n \n Device name is required.\n \n \n
    \n \n Latitude\n \n \n \n Longitude\n \n \n
    \n \n Label\n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n", - "customCss": "", - "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n\nfunction openAddDeviceDialog() {\n customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n\nfunction AddDeviceDialogController(instance) {\n let vm = instance;\n \n vm.addDeviceFormGroup = vm.fb.group({\n deviceName: ['', [vm.validators.required]],\n deviceLabel: [''],\n attributes: vm.fb.group({\n latitude: [null],\n longitude: [null]\n }) \n });\n \n vm.cancel = function() {\n vm.dialogRef.close(null);\n };\n \n vm.save = function() {\n vm.addDeviceFormGroup.markAsPristine();\n let device = {\n additionalInfo: {gateway: true},\n name: vm.addDeviceFormGroup.get('deviceName').value,\n type: 'gateway',\n label: vm.addDeviceFormGroup.get('deviceLabel').value\n };\n deviceService.saveDevice(device).subscribe(\n function (device) {\n saveAttributes(device.id).subscribe(\n function () {\n widgetContext.updateAliases();\n vm.dialogRef.close(null);\n }\n );\n }\n );\n };\n \n function saveAttributes(entityId) {\n let attributes = vm.addDeviceFormGroup.get('attributes').value;\n let attributesArray = [];\n for (let key in attributes) {\n attributesArray.push({key: key, value: attributes[key]});\n }\n if (attributesArray.length > 0) {\n return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n } else {\n return widgetContext.rxjs.of([]);\n }\n }\n}\n", - "customResources": [], - "id": "70837a9d-c3de-a9a7-03c5-dccd14998758" - } - ], - "actionCellButton": [ - { - "id": "78845501-234e-a452-6819-82b5b776e99f", - "name": "Configuration", - "icon": "settings", - "type": "openDashboardState", - "targetDashboardStateId": "__entityname__config", - "openRightLayout": false, - "setEntityId": true - }, - { - "id": "f6ffdba8-e40f-2b8d-851b-f5ecaf18606b", - "name": "Graphs", - "icon": "show_chart", - "type": "openDashboardState", - "targetDashboardStateId": "__entityname_grafic", - "setEntityId": true - }, - { - "name": "Edit device", - "icon": "edit", - "type": "customPretty", - "customHtml": "
    \n \n

    Edit device

    \n \n \n
    \n \n \n
    \n
    \n
    \n \n Device name\n \n \n Device name is required.\n \n \n
    \n \n Latitude\n \n \n \n Longitude\n \n \n
    \n \n Label\n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n", - "customCss": "/*=======================================================================*/\n/*========== There are two examples: for edit and add entity ==========*/\n/*=======================================================================*/\n/*======================== Edit entity example ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form md-input-container {\n padding-right: 10px;\n}\n\n.edit-entity-form .boolean-value-input {\n padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n margin-bottom: 8px;\n color: rgba(0,0,0,0.54);\n font-size: 12px;\n}\n\n.relations-list .header {\n padding-right: 5px;\n padding-bottom: 5px;\n padding-left: 5px;\n}\n\n.relations-list .header .cell {\n padding-right: 5px;\n padding-left: 5px;\n font-size: 12px;\n font-weight: 700;\n color: rgba(0, 0, 0, .54);\n white-space: nowrap;\n}\n\n.relations-list .body {\n padding-right: 5px;\n padding-bottom: 15px;\n padding-left: 5px;\n}\n\n.relations-list .body .row {\n padding-top: 5px;\n}\n\n.relations-list .body .cell {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.relations-list .body md-autocomplete-wrap md-input-container {\n height: 30px;\n}\n\n.relations-list .body .md-button {\n margin: 0;\n}\n\n.relations-list.old-relations tb-entity-select tb-entity-autocomplete button {\n display: none;\n} \n*/\n/*========================================================================*/\n/*========================= Add entity example =========================*/\n/*========================================================================*/\n/*\n.add-entity-form md-input-container {\n padding-right: 10px;\n}\n\n.add-entity-form .boolean-value-input {\n padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n margin-bottom: 8px;\n color: rgba(0,0,0,0.54);\n font-size: 12px;\n}\n\n.relations-list .header {\n padding-right: 5px;\n padding-bottom: 5px;\n padding-left: 5px;\n}\n\n.relations-list .header .cell {\n padding-right: 5px;\n padding-left: 5px;\n font-size: 12px;\n font-weight: 700;\n color: rgba(0, 0, 0, .54);\n white-space: nowrap;\n}\n\n.relations-list .body {\n padding-right: 5px;\n padding-bottom: 15px;\n padding-left: 5px;\n}\n\n.relations-list .body .row {\n padding-top: 5px;\n}\n\n.relations-list .body .cell {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.relations-list .body md-autocomplete-wrap md-input-container {\n height: 30px;\n}\n\n.relations-list .body .md-button {\n margin: 0;\n}\n*/\n", - "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n let vm = instance;\n \n vm.device = null;\n vm.attributes = {};\n \n vm.editDeviceFormGroup = vm.fb.group({\n deviceName: ['', [vm.validators.required]],\n deviceLabel: [''],\n attributes: vm.fb.group({\n latitude: [null],\n longitude: [null]\n }) \n });\n \n vm.cancel = function() {\n vm.dialogRef.close(null);\n };\n \n vm.save = function() {\n vm.editDeviceFormGroup.markAsPristine();\n vm.device.name = vm.editDeviceFormGroup.get('deviceName').value;\n vm.device.label = vm.editDeviceFormGroup.get('deviceLabel').value;\n deviceService.saveDevice(vm.device).subscribe(\n function () {\n saveAttributes().subscribe(\n function () {\n widgetContext.updateAliases();\n vm.dialogRef.close(null);\n }\n );\n }\n );\n };\n \n getEntityInfo();\n \n function getEntityInfo() {\n deviceService.getDevice(entityId.id).subscribe(\n function (device) {\n attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE',\n ['latitude', 'longitude']).subscribe(\n function (attributes) {\n for (let i = 0; i < attributes.length; i++) {\n vm.attributes[attributes[i].key] = attributes[i].value; \n }\n vm.device = device;\n vm.editDeviceFormGroup.patchValue(\n {\n deviceName: vm.device.name,\n deviceLabel: vm.device.label,\n attributes: {\n latitude: vm.attributes.latitude,\n longitude: vm.attributes.longitude\n }\n }, {emitEvent: false}\n );\n } \n );\n }\n ); \n }\n \n function saveAttributes() {\n let attributes = vm.editDeviceFormGroup.get('attributes').value;\n let attributesArray = [];\n for (let key in attributes) {\n attributesArray.push({key: key, value: attributes[key]});\n }\n if (attributesArray.length > 0) {\n return attributeService.saveEntityAttributes(entityId, 'SERVER_SCOPE', attributesArray);\n } else {\n return widgetContext.rxjs.of([]);\n }\n }\n}\n", - "customResources": [], - "id": "242671f3-76c6-6982-7acc-6f12addf0ccc" - }, - { - "name": "Delete device", - "icon": "delete", - "type": "custom", - "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n let title = \"Are you sure you want to delete the device \" + entityName + \"?\";\n let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n function (result) {\n if (result) {\n deleteDevice();\n }\n }\n );\n}\n\nfunction deleteDevice() {\n deviceService.deleteDevice(entityId.id).subscribe(\n function () {\n widgetContext.updateAliases();\n }\n );\n}\n", - "id": "862ec2b7-fbcf-376e-f85f-b77c07f36efa" - } - ], - "rowClick": [ - { - "id": "ad5fc7e1-5e60-e056-6940-a75a383466a1", - "name": "to_entityname__config", - "icon": "more_horiz", - "type": "openDashboardState", - "targetDashboardStateId": "__entityname__config", - "setEntityId": true, - "stateEntityParamName": "" - } - ] - } - }, - "id": "94715984-ae74-76e4-20b7-2f956b01ed80", - "typeFullFqn": "system.entity_admin_widgets.device_admin_table" - }, - "eadabbc7-519e-76fc-ba10-b3fe8c18da10": { - "type": "timeseries", - "sizeX": 14, - "sizeY": 13, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "LOGS", - "type": "timeseries", - "label": "LOGS", - "color": "#2196f3", - "settings": { - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.3496649158709739, - "postFuncBody": "return value.replace(/ - (.*) - \\[/gi, ' - $1 - [');" - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "realtime": { - "interval": 1000, - "timewindowMs": 2592000000 - }, - "aggregation": { - "type": "NONE", - "limit": 200 - } - }, - "showTitle": true, - "backgroundColor": "rgb(255, 255, 255)", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "showTimestamp": true, - "displayPagination": true, - "defaultPageSize": 10 - }, - "title": "Debug events (logs)", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": false, - "showLegend": false, - "widgetStyle": {}, - "actions": {}, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "displayTimewindow": true - }, - "id": "eadabbc7-519e-76fc-ba10-b3fe8c18da10", - "typeFullFqn": "system.cards.timeseries_table" - }, - "f928afc4-30d1-8d0c-e3cf-777f9f9d1155": { - "type": "timeseries", - "sizeX": 17, - "sizeY": 4, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "opcuaEventsProduced", - "type": "timeseries", - "label": "opcuaEventsProduced", - "color": "#2196f3", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.1477920581839779 - }, - { - "name": "opcuaEventsSent", - "type": "timeseries", - "label": "opcuaEventsSent", - "color": "#4caf50", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.6500957113784758 - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "realtime": { - "interval": 1000, - "timewindowMs": 120000 - }, - "aggregation": { - "type": "NONE", - "limit": 25000 - }, - "hideInterval": false, - "hideAggregation": false - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "shadowSize": 4, - "fontColor": "#545454", - "fontSize": 10, - "xaxis": { - "showLabels": true, - "color": "#545454" - }, - "yaxis": { - "showLabels": true, - "color": "#545454" - }, - "grid": { - "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 - }, - "stack": false, - "tooltipIndividual": false, - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, - "showLegend": true, - "legendConfig": { - "direction": "column", - "position": "right", - "showMin": true, - "showMax": true, - "showAvg": true, - "showTotal": true - } - }, - "title": "Real time information", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "mobileHeight": null, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "widgetStyle": {}, - "useDashboardTimewindow": false, - "displayTimewindow": true, - "actions": {} - }, - "id": "f928afc4-30d1-8d0c-e3cf-777f9f9d1155", - "typeFullFqn": "system.charts.basic_timeseries" - }, - "2a95b473-042d-59d0-2da2-40d0cccb6c8a": { - "type": "timeseries", - "sizeX": 7, - "sizeY": 7, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "eventsSent", - "type": "timeseries", - "label": "Events", - "color": "#2196f3", - "settings": { - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.8156044798125357 - }, - { - "name": "eventsProduced", - "type": "timeseries", - "label": "Produced", - "color": "#4caf50", - "settings": { - "useCellStyleFunction": false, - "useCellContentFunction": false - }, - "_hash": 0.6538259344015449 - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "realtime": { - "interval": 1000, - "timewindowMs": 604800000 - }, - "aggregation": { - "type": "NONE", - "limit": 200 - } - }, - "showTitle": true, - "backgroundColor": "rgb(255, 255, 255)", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "showTimestamp": true, - "displayPagination": true, - "defaultPageSize": 6, - "hideEmptyLines": true - }, - "title": "Total Messages", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": false, - "showLegend": false, - "widgetStyle": {}, - "actions": {}, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "displayTimewindow": true, - "legendConfig": { - "direction": "column", - "position": "bottom", - "showMin": false, - "showMax": false, - "showAvg": true, - "showTotal": false - } - }, - "id": "2a95b473-042d-59d0-2da2-40d0cccb6c8a", - "typeFullFqn": "system.cards.timeseries_table" - }, - "aaa69366-aacc-9028-65aa-645c0f8533ec": { - "type": "timeseries", - "sizeX": 17, - "sizeY": 4, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "eventsSent", - "type": "timeseries", - "label": "eventsSent", - "color": "#2196f3", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.41414001784591314 - }, - { - "name": "eventsProduced", - "type": "timeseries", - "label": "eventsProduced", - "color": "#4caf50", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.7819101846284422 - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "realtime": { - "timewindowMs": 60000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "shadowSize": 4, - "fontColor": "#545454", - "fontSize": 10, - "xaxis": { - "showLabels": true, - "color": "#545454" - }, - "yaxis": { - "showLabels": true, - "color": "#545454" - }, - "grid": { - "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 - }, - "stack": false, - "tooltipIndividual": false, - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, - "showLegend": true, - "legendConfig": { - "direction": "column", - "position": "right", - "showMin": true, - "showMax": true, - "showAvg": true, - "showTotal": true - } - }, - "title": "History information", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "mobileHeight": null, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "widgetStyle": {}, - "useDashboardTimewindow": true, - "displayTimewindow": true, - "actions": {} - }, - "id": "aaa69366-aacc-9028-65aa-645c0f8533ec", - "typeFullFqn": "system.charts.basic_timeseries" - }, - "ce5c7d01-a3ef-5cf0-4578-8505135c23a0": { - "type": "timeseries", - "sizeX": 17, - "sizeY": 4, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "bleEventsProduced", - "type": "timeseries", - "label": "bleEventsProduced", - "color": "#2196f3", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.5625165504526104 - }, - { - "name": "bleEventsSent", - "type": "timeseries", - "label": "bleEventsSent", - "color": "#4caf50", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": true, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "var size = radius * Math.sqrt(Math.PI) / 2;\nctx.moveTo(x - size, y - size);\nctx.lineTo(x + size, y + size);\nctx.moveTo(x - size, y + size);\nctx.lineTo(x + size, y - size);", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "tooltipValueFormatter": "", - "showSeparateAxis": false, - "axisTitle": "", - "axisPosition": "left", - "axisTicksFormatter": "", - "comparisonSettings": { - "showValuesForComparison": true, - "comparisonValuesLabel": "", - "color": "" - } - }, - "_hash": 0.6817950080745288 - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "realtime": { - "interval": 5000, - "timewindowMs": 120000 - }, - "aggregation": { - "type": "AVG", - "limit": 25000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "shadowSize": 4, - "fontColor": "#545454", - "fontSize": 10, - "xaxis": { - "showLabels": true, - "color": "#545454" - }, - "yaxis": { - "showLabels": true, - "color": "#545454" - }, - "grid": { - "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 - }, - "stack": false, - "tooltipIndividual": false, - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, - "showLegend": true, - "legendConfig": { - "direction": "column", - "position": "right", - "showMin": true, - "showMax": true, - "showAvg": true, - "showTotal": true - } - }, - "title": "Real time information", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "mobileHeight": null, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "widgetStyle": {}, - "useDashboardTimewindow": false, - "displayTimewindow": true, - "actions": {} - }, - "id": "ce5c7d01-a3ef-5cf0-4578-8505135c23a0", - "typeFullFqn": "system.charts.basic_timeseries" - }, - "466f046d-6005-a168-b107-60fcb2469cd5": { - "type": "latest", - "sizeX": 7, - "sizeY": 5, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "displayValue": "", - "selectedTab": 0, - "realtime": { - "realtimeType": 1, - "interval": 1000, - "timewindowMs": 60000, - "quickInterval": "CURRENT_DAY" - }, - "history": { - "historyType": 0, - "interval": 1000, - "timewindowMs": 60000, - "fixedTimewindow": { - "startTimeMs": 1694085270425, - "endTimeMs": 1694171670425 - }, - "quickInterval": "CURRENT_DAY" - }, - "aggregation": { - "type": "AVG", - "limit": 25000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "eventsTitle": "Gateway Events Form", - "eventsReg": [ - "EventsProduced", - "EventsSent" - ] - }, - "title": "Gateway events", - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "dropShadow": true, - "enableFullscreen": true, - "widgetStyle": {}, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": true, - "displayTimewindow": true, - "showLegend": false, - "actions": {} - }, - "id": "466f046d-6005-a168-b107-60fcb2469cd5", - "typeFullFqn": "system.gateway_widgets.attributes_card" - }, - "8fc32225-164f-3258-73f7-e6b6d959cf0b": { - "type": "latest", - "sizeX": 10, - "sizeY": 9, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "displayValue": "", - "selectedTab": 0, - "realtime": { - "realtimeType": 1, - "interval": 1000, - "timewindowMs": 60000, - "quickInterval": "CURRENT_DAY" - }, - "history": { - "historyType": 0, - "interval": 1000, - "timewindowMs": 60000, - "fixedTimewindow": { - "startTimeMs": 1694085270425, - "endTimeMs": 1694171670425 - }, - "quickInterval": "CURRENT_DAY" - }, - "aggregation": { - "type": "AVG", - "limit": 25000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "gatewayTitle": "Gateway configuration (Single device)", - "readOnly": false - }, - "title": "New Gateway configuration (Single device)", - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "dropShadow": true, - "enableFullscreen": true, - "widgetStyle": {}, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": true, - "displayTimewindow": true, - "showLegend": false, - "actions": {} - }, - "id": "8fc32225-164f-3258-73f7-e6b6d959cf0b", - "typeFullFqn": "system.gateway_widgets.config_form_latest" - }, - "063fc179-c9fd-f952-e714-f24e9c43c05c": { - "type": "rpc", - "sizeX": 4, - "sizeY": 2, - "config": { - "targetDeviceAliases": [], - "showTitle": false, - "backgroundColor": "#e6e7e8", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "0px", - "settings": { - "requestTimeout": 5000, - "oneWayElseTwoWay": true, - "styleButton": { - "isRaised": true, - "isPrimary": false - }, - "methodParams": "{}", - "methodName": "gateway_reboot", - "buttonText": "GATEWAY REBOOT" - }, - "title": "New RPC Button", - "dropShadow": true, - "enableFullscreen": false, - "widgetStyle": {}, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": true, - "showLegend": false, - "actions": {}, - "datasources": [], - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "displayTimewindow": true, - "targetDeviceAliasIds": [ - "b2487e75-2fa4-f211-142c-434dfd50c70c" - ] - }, - "id": "063fc179-c9fd-f952-e714-f24e9c43c05c", - "typeFullFqn": "system.control_widgets.rpcbutton" - }, - "3c2134cc-27a0-93e1-dbe1-2fa7c1ce16b7": { - "type": "rpc", - "sizeX": 4, - "sizeY": 2, - "config": { - "targetDeviceAliases": [], - "showTitle": false, - "backgroundColor": "#e6e7e8", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "0px", - "settings": { - "requestTimeout": 5000, - "oneWayElseTwoWay": true, - "styleButton": { - "isRaised": true, - "isPrimary": false - }, - "methodName": "gateway_restart", - "methodParams": "{}", - "buttonText": "GATEWAY RESTART" - }, - "title": "New RPC Button", - "dropShadow": true, - "enableFullscreen": false, - "widgetStyle": {}, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": true, - "showLegend": false, - "actions": {}, - "datasources": [], - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "displayTimewindow": true, - "targetDeviceAliasIds": [ - "b2487e75-2fa4-f211-142c-434dfd50c70c" - ] - }, - "id": "3c2134cc-27a0-93e1-dbe1-2fa7c1ce16b7", - "typeFullFqn": "system.control_widgets.rpcbutton" - }, - "6770b6ba-eff8-df05-75f8-c1f9326d4842": { - "type": "latest", - "sizeX": 6, - "sizeY": 4, - "config": { - "datasources": [ - { - "type": "entity", - "dataKeys": [ - { - "name": "latitude", - "type": "attribute", - "label": "latitude", - "color": "#2196f3", - "settings": {}, - "_hash": 0.9743324774725604 - }, - { - "name": "longitude", - "type": "attribute", - "label": "longitude", - "color": "#4caf50", - "settings": {}, - "_hash": 0.5530093635101525 - } - ], - "entityAliasId": "b2487e75-2fa4-f211-142c-434dfd50c70c" - } - ], - "timewindow": { - "displayValue": "", - "selectedTab": 0, - "realtime": { - "realtimeType": 1, - "interval": 1000, - "timewindowMs": 60000, - "quickInterval": "CURRENT_DAY" - }, - "history": { - "historyType": 0, - "interval": 1000, - "timewindowMs": 60000, - "fixedTimewindow": { - "startTimeMs": 1694085270425, - "endTimeMs": 1694171670425 - }, - "quickInterval": "CURRENT_DAY" - }, - "aggregation": { - "type": "AVG", - "limit": 25000 - } - }, - "showTitle": false, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "fitMapBounds": true, - "latKeyName": "latitude", - "lngKeyName": "longitude", - "showLabel": true, - "label": "${entityName}", - "tooltipPattern": "${entityName}

    Latitude: ${latitude:7}
    Longitude: ${longitude:7}

    Delete", - "markerImageSize": 34, - "useColorFunction": false, - "markerImages": [], - "useMarkerImageFunction": false, - "color": "#fe7569", - "mapProvider": "OpenStreetMap.Mapnik", - "showTooltip": true, - "autocloseTooltip": true, - "defaultCenterPosition": [ - 0, - 0 - ], - "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", - "showTooltipAction": "click", - "polygonKeyName": "coordinates", - "polygonOpacity": 0.5, - "polygonStrokeOpacity": 1, - "polygonStrokeWeight": 1, - "zoomOnClick": true, - "showCoverageOnHover": true, - "animate": true, - "maxClusterRadius": 80, - "removeOutsideVisibleBounds": true, - "defaultZoomLevel": 5 - }, - "title": "Gateway Location", - "dropShadow": true, - "enableFullscreen": false, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "useDashboardTimewindow": true, - "showLegend": false, - "widgetStyle": {}, - "actions": { - "tooltipAction": [ - { - "id": "54c293c4-9ca6-e34f-dc6a-0271944c1c66", - "name": "delete", - "icon": "more_horiz", - "type": "custom", - "customFunction": "var $rootScope = widgetContext.$scope.$injector.get('$rootScope');\nvar entityDatasource = widgetContext.map.subscription.datasources.filter(\n function(entity) {\n return entity.entityId === entityId.id\n });\n\nwidgetContext.map.saveMarkerLocation(entityDatasource[0],\n widgetContext.map.locations[0], {\n \"lat\": null,\n \"lng\": null\n }).then(function succes() {\n $rootScope.$broadcast('widgetForceReInit');\n });" - } - ] - }, - "showTitleIcon": false, - "titleIcon": null, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "displayTimewindow": true - }, - "id": "6770b6ba-eff8-df05-75f8-c1f9326d4842", - "typeFullFqn": "system.input_widgets.markers_placement_openstreetmap" - } - }, - "states": { - "main_gateway": { - "name": "Gateways", - "root": true, - "layouts": { - "main": { - "widgets": { - "94715984-ae74-76e4-20b7-2f956b01ed80": { - "sizeX": 24, - "sizeY": 12, - "row": 0, - "col": 0 - } - }, - "gridSettings": { - "backgroundColor": "#eeeeee", - "color": "rgba(0,0,0,0.870588)", - "columns": 24, - "backgroundSizeMode": "100%", - "autoFillHeight": true, - "mobileAutoFillHeight": false, - "mobileRowHeight": 70, - "margin": 10, - "outerMargin": true - } - } - } - }, - "__entityname__config": { - "name": "${entityName} Configuration", - "root": false, - "layouts": { - "main": { - "widgets": { - "eadabbc7-519e-76fc-ba10-b3fe8c18da10": { - "sizeX": 14, - "sizeY": 13, - "row": 0, - "col": 10 - }, - "8fc32225-164f-3258-73f7-e6b6d959cf0b": { - "sizeX": 10, - "sizeY": 9, - "row": 0, - "col": 0 - }, - "063fc179-c9fd-f952-e714-f24e9c43c05c": { - "sizeX": 4, - "sizeY": 2, - "row": 9, - "col": 0 - }, - "3c2134cc-27a0-93e1-dbe1-2fa7c1ce16b7": { - "sizeX": 4, - "sizeY": 2, - "row": 11, - "col": 0 - }, - "6770b6ba-eff8-df05-75f8-c1f9326d4842": { - "sizeX": 6, - "sizeY": 4, - "row": 9, - "col": 4 - } - }, - "gridSettings": { - "backgroundColor": "#eeeeee", - "color": "rgba(0,0,0,0.870588)", - "columns": 24, - "backgroundSizeMode": "100%", - "autoFillHeight": true, - "mobileAutoFillHeight": false, - "mobileRowHeight": 70, - "margin": 10, - "outerMargin": true - } - } - } - }, - "__entityname_grafic": { - "name": "${entityName} Details", - "root": false, - "layouts": { - "main": { - "widgets": { - "f928afc4-30d1-8d0c-e3cf-777f9f9d1155": { - "sizeX": 17, - "sizeY": 4, - "mobileHeight": null, - "row": 4, - "col": 7 - }, - "2a95b473-042d-59d0-2da2-40d0cccb6c8a": { - "sizeX": 7, - "sizeY": 7, - "row": 5, - "col": 0 - }, - "aaa69366-aacc-9028-65aa-645c0f8533ec": { - "sizeX": 17, - "sizeY": 4, - "mobileHeight": null, - "row": 0, - "col": 7 - }, - "ce5c7d01-a3ef-5cf0-4578-8505135c23a0": { - "sizeX": 17, - "sizeY": 4, - "mobileHeight": null, - "row": 8, - "col": 7 - }, - "466f046d-6005-a168-b107-60fcb2469cd5": { - "sizeX": 7, - "sizeY": 5, - "row": 0, - "col": 0 - } - }, - "gridSettings": { - "backgroundColor": "#eeeeee", - "color": "rgba(0,0,0,0.870588)", - "columns": 24, - "backgroundSizeMode": "auto 100%", - "autoFillHeight": true, - "mobileAutoFillHeight": true, - "mobileRowHeight": 70, - "margin": 10, - "outerMargin": true - } - } - } - } - }, - "entityAliases": { - "3e0f533a-0db1-3292-184f-06e73535061a": { - "id": "3e0f533a-0db1-3292-184f-06e73535061a", - "alias": "Gateways", - "filter": { - "type": "deviceType", - "resolveMultiple": true, - "deviceNameFilter": "", - "deviceTypes": [ - "gateway" - ] - } - }, - "b2487e75-2fa4-f211-142c-434dfd50c70c": { - "id": "b2487e75-2fa4-f211-142c-434dfd50c70c", - "alias": "Current Gateway", - "filter": { - "type": "stateEntity", - "resolveMultiple": false, - "stateEntityParamName": "", - "defaultStateEntity": null - } - } - }, - "timewindow": { - "realtime": { - "interval": 1000, - "timewindowMs": 86400000 - }, - "aggregation": { - "type": "NONE", - "limit": 25000 - }, - "hideInterval": false, - "hideAggregation": false, - "hideAggInterval": false - }, - "settings": { - "stateControllerId": "entity", - "showTitle": true, - "showDashboardsSelect": true, - "showEntitiesSelect": true, - "showDashboardTimewindow": true, - "showDashboardExport": true, - "toolbarAlwaysOpen": true, - "titleColor": "rgba(0,0,0,0.870588)" - }, - "filters": {} - }, - "externalId": null, - "name": "Gateways" -} \ No newline at end of file diff --git a/application/src/main/data/json/demo/dashboards/gateway.json b/application/src/main/data/json/tenant/dashboards/gateways.json similarity index 99% rename from application/src/main/data/json/demo/dashboards/gateway.json rename to application/src/main/data/json/tenant/dashboards/gateways.json index b35b480ef2..972aed299f 100644 --- a/application/src/main/data/json/demo/dashboards/gateway.json +++ b/application/src/main/data/json/tenant/dashboards/gateways.json @@ -1,5 +1,5 @@ { - "title": "Gateway", + "title": "ThingsBoard IoT Gateways", "image": null, "mobileHide": false, "mobileOrder": null, @@ -40,7 +40,7 @@ "color": "rgba(0, 0, 0, 0.87)", "padding": "4px", "settings": { - "entitiesTitle": "Gateway list", + "entitiesTitle": "Gateways list", "enableSearch": true, "enableSelectColumnDisplay": false, "enableStickyHeader": true, @@ -55,7 +55,7 @@ "defaultSortOrder": "entityName", "useRowStyleFunction": false }, - "title": "New Entities table", + "title": "Gateways list", "dropShadow": true, "enableFullscreen": false, "titleStyle": { @@ -571,11 +571,11 @@ "padding": "8px", "settings": { "useMarkdownTextFunction": true, - "markdownTextFunction": "var blockData = '';\nvar connectorsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Connecotrs\");\nvar logsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Logs\");\nfunction generateMatHeader(index) {\n if( index !== undefined && index > -1) {\n return ``\n } else {\n return \"\" \n }\n}\nfunction createDataBlock(value, label, dividerStyle, mobile, index) {\n blockData += `\n \n
    \n \n ${generateMatHeader(index)}\n ${label}\n
    \n ${value}\n `;\n}\ncreateDataBlock(data[0].Status, \"Status\", data[0].Status === \"Active\"? 'divider-green' : 'divider-red');\ncreateDataBlock(data[0].Name, \"Gateway Name\", '', ctx.isMobile);\ncreateDataBlock(data[0].Type, \"Gateway Type\", '');\ncreateDataBlock(\n `${(data[1]?data[1].count:0)} `\n + \" | \" + \n `${(data[2]?data[2][\"count 2\"]:0)} `\n , \"Devices (Active | Inactive)\", '');\ncreateDataBlock(\n `${(data[0].active_connectors?JSON.parse(data[0].active_connectors).length:0)} `\n + \" | \" + \n `${(data[0].inactive_connectors?JSON.parse(data[0].inactive_connectors).length:0)} `\n , \"Connectors (Active | Inactive)\", '', '', connectorsIndex);\ncreateDataBlock(data[0].ALL_ERRORS_COUNT || 0, \"Errors\", (data[0].ALL_ERRORS_COUNT || 0) === 0 ? 'divider-green' : 'divider-red', '', logsIndex);\nreturn `
    ${blockData}
    `;", + "markdownTextFunction": "var blockData = '';\nvar connectorsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Connectors\");\nvar logsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Logs\");\nfunction generateMatHeader(index) {\n if( index !== undefined && index > -1) {\n return ``\n } else {\n return \"\" \n }\n}\nfunction createDataBlock(value, label, dividerStyle, mobile, index) {\n blockData += `\n \n
    \n \n ${generateMatHeader(index)}\n ${label}\n
    \n ${value}\n `;\n}\ncreateDataBlock(data[0].Status, \"Status\", data[0].Status === \"Active\"? 'divider-green' : 'divider-red');\ncreateDataBlock(data[0].Name, \"Gateway Name\", '', ctx.isMobile);\ncreateDataBlock(data[0].Type, \"Gateway Type\", '');\ncreateDataBlock(\n `${(data[1]?data[1].count:0)} `\n + \" | \" + \n `${(data[2]?data[2][\"count 2\"]:0)} `\n , \"Devices (Active | Inactive)\", '');\ncreateDataBlock(\n `${(data[0].active_connectors?JSON.parse(data[0].active_connectors).length:0)} `\n + \" | \" + \n `${(data[0].inactive_connectors?JSON.parse(data[0].inactive_connectors).length:0)} `\n , \"Connectors (Active | Inactive)\", '', '', connectorsIndex);\ncreateDataBlock(data[0].ALL_ERRORS_COUNT || 0, \"Errors\", (data[0].ALL_ERRORS_COUNT || 0) === 0 ? 'divider-green' : 'divider-red', '', logsIndex);\nreturn `
    ${blockData}
    `;", "applyDefaultMarkdownStyle": false, "markdownCss": ".divider {\n position: absolute;\n width: 3px;\n top: 8px;\n border-radius: 2px;\n bottom: 8px;\n border: 1px solid rgba(31, 70, 144, 1);\n background-color: rgba(31, 70, 144, 1);\n left: 10px;\n}\n.divider-green .divider {\n border: 1px solid rgb(25,128,56);\n background-color: rgb(25,128,56);\n}\n\n.divider-green .mat-mdc-card-content {\n color: rgb(25,128,56);\n}\n\n.divider-red .divider {\n border: 1px solid rgb(203,37,48);\n background-color: rgb(203,37,48);\n}\n\n.divider-red .mat-mdc-card-content {\n color: rgb(203,37,48);\n}\n\n.mdc-card {\n position: relative;\n padding-left: 10px;\n margin-bottom: 1px;\n}\n\n.mat-mdc-card-subtitle {\n font-weight: 400;\n font-size: 12px;\n}\n\n.mat-mdc-card-header {\n padding: 8px 16px 0;\n}\n\n.mat-mdc-card-content:last-child {\n padding-bottom: 8px;\n font-size: 16px;\n}\n\n.cards-container {\n height: calc(100% - 1px);\n justify-content: stretch;\n align-items: center;\n margin-bottom: 1px;\n}\n\n::ng-deep.tb-home-widget-link > div {\n flex-grow: 1;\n cursor: pointer;\n}\n\n .tb-home-widget-link {\n width: 100%;\n }\n\n .tb-home-widget-link:hover::after{\n color: inherit;\n }\n \n .tb-home-widget-link::after{\n content: 'arrow_forward';\n display: inline-block;\n transform: rotate(315deg);\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 18px;\n color: rgba(0, 0, 0, 0.12);\n vertical-align: bottom;\n margin-left: 6px;\n}" }, - "title": "New Markdown/HTML Card", + "title": "Connectors", "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", @@ -599,7 +599,7 @@ "actions": { "elementClick": [ { - "name": "Connecotrs", + "name": "Connectors", "icon": "more_horiz", "useShowWidgetActionFunction": null, "showWidgetActionFunction": "return true;", @@ -680,7 +680,7 @@ "defaultSortOrder": "-createdTime", "useRowStyleFunction": false }, - "title": "New Alarms table", + "title": "Alarms", "dropShadow": true, "enableFullscreen": false, "titleStyle": { @@ -1074,7 +1074,7 @@ } ] }, - "title": "New RPC remote shell", + "title": "RPC remote shell", "dropShadow": true, "enableFullscreen": true, "widgetStyle": { @@ -1485,7 +1485,7 @@ } ] }, - "title": "New RPC debug terminal", + "title": "RPC debug terminal", "dropShadow": true, "enableFullscreen": true, "widgetStyle": {}, @@ -1868,7 +1868,7 @@ "applyDefaultMarkdownStyle": false, "markdownCss": ".action-buttons-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n align-content: center;\r\n}\r\n\r\nbutton {\r\n flex-grow: 1;\r\n margin: 10px;\r\n min-width: 150px;\r\n height: auto;\r\n}" }, - "title": "New Markdown/HTML Card", + "title": "Service command", "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", @@ -1980,7 +1980,7 @@ "applyDefaultMarkdownStyle": false, "markdownCss": ".action-buttons-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n align-content: start;\r\n}\r\n\r\nbutton {\r\n flex-grow: 1;\r\n margin: 10px;\r\n min-width: 150px;\r\n height: auto;\r\n}" }, - "title": "New Markdown/HTML Card", + "title": "General configuration", "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", @@ -2145,7 +2145,7 @@ "applyDefaultMarkdownStyle": true, "markdownCss": ".mat-mdc-form-field-subscript-wrapper {\n display: none !important;\n}" }, - "title": "New Markdown/HTML Card", + "title": "Gateway devices", "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", @@ -4939,7 +4939,7 @@ "applyDefaultMarkdownStyle": false, "markdownCss": ".action-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\nbutton {\r\n flex-grow: 1;\r\n margin: 10px;\r\n min-width: 150px;\r\n height: auto;\r\n}" }, - "title": "New Markdown/HTML Card", + "title": "Gateway commands", "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/DefaultTbTenantService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/DefaultTbTenantService.java index 19d4126989..3267ed1c17 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/DefaultTbTenantService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/tenant/DefaultTbTenantService.java @@ -54,6 +54,7 @@ public class DefaultTbTenantService extends AbstractTbEntityService implements T if (created) { installScripts.createDefaultRuleChains(savedTenant.getId()); installScripts.createDefaultEdgeRuleChains(savedTenant.getId()); + installScripts.createDefaultTenantDashboards(savedTenant.getId(), null); } tenantProfileCache.evict(savedTenant.getId()); notificationEntityService.notifyCreateOrUpdateTenant(savedTenant, created ? diff --git a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java index 7f0b70cb27..96a6678789 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java +++ b/application/src/main/java/org/thingsboard/server/service/install/InstallScripts.java @@ -249,6 +249,15 @@ public class InstallScripts { public void loadDashboards(TenantId tenantId, CustomerId customerId) throws Exception { Path dashboardsDir = Paths.get(getDataDir(), JSON_DIR, DEMO_DIR, DASHBOARDS_DIR); + loadDashboardsFromDir(tenantId, customerId, dashboardsDir); + } + + public void createDefaultTenantDashboards(TenantId tenantId, CustomerId customerId) throws Exception { + Path dashboardsDir = Paths.get(getDataDir(), JSON_DIR, TENANT_DIR, DASHBOARDS_DIR); + loadDashboardsFromDir(tenantId, customerId, dashboardsDir); + } + + private void loadDashboardsFromDir(TenantId tenantId, CustomerId customerId, Path dashboardsDir) throws IOException { try (DirectoryStream dirStream = Files.newDirectoryStream(dashboardsDir, path -> path.toString().endsWith(JSON_EXT))) { dirStream.forEach( path -> { From e6473c9c171255b17d9ef57cf6e85950e9892077 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 10 Nov 2023 15:40:56 +0200 Subject: [PATCH 015/162] fixed AssetProfileServiceImpl --- .../thingsboard/server/dao/asset/AssetProfileServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java index 075975cd96..7cc251f9ec 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetProfileServiceImpl.java @@ -110,8 +110,8 @@ public class AssetProfileServiceImpl extends AbstractCachedEntityService assetProfileDao.findByName(tenantId, profileName), false); + return cache.getOrFetchFromDB(AssetProfileCacheKey.fromName(tenantId, profileName), + () -> assetProfileDao.findByName(tenantId, profileName), false, putInCache); } @Override From dd19d6086946ce00094f5996afede426792557d7 Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Fri, 10 Nov 2023 20:11:56 +0200 Subject: [PATCH 016/162] created entity view callback and removed it usage for save without latest method --- .../DefaultTelemetrySubscriptionService.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetrySubscriptionService.java b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetrySubscriptionService.java index df3a15e765..e66029a8a1 100644 --- a/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetrySubscriptionService.java +++ b/application/src/main/java/org/thingsboard/server/service/telemetry/DefaultTelemetrySubscriptionService.java @@ -175,20 +175,21 @@ public class DefaultTelemetrySubscriptionService extends AbstractSubscriptionSer @Override public void saveAndNotifyInternal(TenantId tenantId, EntityId entityId, List ts, long ttl, FutureCallback callback) { ListenableFuture saveFuture = tsService.save(tenantId, entityId, ts, ttl); - addCallbacks(tenantId, entityId, ts, callback, saveFuture); + addMainCallback(saveFuture, callback); + addWsCallback(saveFuture, success -> onTimeSeriesUpdate(tenantId, entityId, ts)); + addEntityViewCallback(tenantId, entityId, ts); } private void saveWithoutLatestAndNotifyInternal(TenantId tenantId, EntityId entityId, List ts, long ttl, FutureCallback callback) { ListenableFuture saveFuture = tsService.saveWithoutLatest(tenantId, entityId, ts, ttl); - addCallbacks(tenantId, entityId, ts, callback, saveFuture); - } - - private void addCallbacks(TenantId tenantId, EntityId entityId, List ts, FutureCallback callback, ListenableFuture saveFuture) { addMainCallback(saveFuture, callback); addWsCallback(saveFuture, success -> onTimeSeriesUpdate(tenantId, entityId, ts)); + } + + private void addEntityViewCallback(TenantId tenantId, EntityId entityId, List ts) { if (EntityType.DEVICE.equals(entityId.getEntityType()) || EntityType.ASSET.equals(entityId.getEntityType())) { Futures.addCallback(this.tbEntityViewService.findEntityViewsByTenantIdAndEntityIdAsync(tenantId, entityId), - new FutureCallback>() { + new FutureCallback<>() { @Override public void onSuccess(@Nullable List result) { if (result != null && !result.isEmpty()) { @@ -212,7 +213,7 @@ public class DefaultTelemetrySubscriptionService extends AbstractSubscriptionSer } } if (!entityViewLatest.isEmpty()) { - saveLatestAndNotify(tenantId, entityView.getId(), entityViewLatest, new FutureCallback() { + saveLatestAndNotify(tenantId, entityView.getId(), entityViewLatest, new FutureCallback<>() { @Override public void onSuccess(@Nullable Void tmp) { } From 316a09854cb23918afe3610a941e86b00bfed547 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Sun, 12 Nov 2023 22:15:57 +0100 Subject: [PATCH 017/162] implemented device actor delete msg and fixed assign to tenant --- .../server/actors/device/DeviceActor.java | 3 ++ .../server/actors/tenant/TenantActor.java | 14 ++++++++ .../DefaultTbNotificationEntityService.java | 3 +- .../device/DefaultTbDeviceService.java | 2 ++ .../queue/DefaultTbClusterService.java | 15 +++++--- .../server/service/queue/ProtoUtils.java | 22 ++++++++++++ .../server/cluster/TbClusterService.java | 4 ++- common/cluster-api/src/main/proto/queue.proto | 8 +++++ .../server/common/msg/MsgType.java | 2 ++ .../msg/rule/engine/DeviceDeleteMsg.java | 36 +++++++++++++++++++ 10 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 common/message/src/main/java/org/thingsboard/server/common/msg/rule/engine/DeviceDeleteMsg.java diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActor.java index 48425d58db..d69b9aec0b 100644 --- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActor.java +++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActor.java @@ -64,6 +64,9 @@ public class DeviceActor extends ContextAwareActor { case DEVICE_ATTRIBUTES_UPDATE_TO_DEVICE_ACTOR_MSG: processor.processAttributesUpdate((DeviceAttributesEventNotificationMsg) msg); break; + case DEVICE_DELETE_TO_DEVICE_ACTOR_MSG: + ctx.stop(ctx.getSelf()); + break; case DEVICE_CREDENTIALS_UPDATE_TO_DEVICE_ACTOR_MSG: processor.processCredentialsUpdate(msg); break; diff --git a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java index c9f5448df3..f508d967c9 100644 --- a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java +++ b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java @@ -53,10 +53,13 @@ import org.thingsboard.server.common.msg.queue.PartitionChangeMsg; import org.thingsboard.server.common.msg.queue.QueueToRuleEngineMsg; import org.thingsboard.server.common.msg.queue.RuleEngineException; import org.thingsboard.server.common.msg.queue.ServiceType; +import org.thingsboard.server.common.msg.rule.engine.DeviceDeleteMsg; import org.thingsboard.server.service.edge.rpc.EdgeRpcService; import org.thingsboard.server.service.transport.msg.TransportToDeviceActorMsgWrapper; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Slf4j public class TenantActor extends RuleChainManagerActor { @@ -65,8 +68,11 @@ public class TenantActor extends RuleChainManagerActor { private boolean isCore; private ApiUsageState apiUsageState; + private Set deletedDevices; + private TenantActor(ActorSystemContext systemContext, TenantId tenantId) { super(systemContext, tenantId); + this.deletedDevices = new HashSet<>(); } boolean cantFindTenant = false; @@ -221,6 +227,10 @@ public class TenantActor extends RuleChainManagerActor { if (!isCore) { log.warn("RECEIVED INVALID MESSAGE: {}", msg); } + if (deletedDevices.contains(msg.getDeviceId())) { + log.warn("RECEIVED MESSAGE FOR DELETED DEVICE: {}", msg); + return; + } TbActorRef deviceActor = getOrCreateDeviceActor(msg.getDeviceId()); if (priority) { deviceActor.tellWithHighPriority(msg); @@ -249,6 +259,10 @@ public class TenantActor extends RuleChainManagerActor { Edge edge = systemContext.getEdgeService().findEdgeById(tenantId, edgeId); edgeRpcService.updateEdge(tenantId, edge); } + } else if (msg.getEntityId().getEntityType() == EntityType.DEVICE && ComponentLifecycleEvent.DELETED == msg.getEvent()) { + DeviceId deviceId = (DeviceId) msg.getEntityId(); + onToDeviceActorMsg(new DeviceDeleteMsg(tenantId, deviceId), true); + deletedDevices.add(deviceId); } else if (isRuleEngine) { TbActorRef target = getEntityActorRef(msg.getEntityId()); if (target != null) { diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java index 72e8f44020..8682d18a62 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/DefaultTbNotificationEntityService.java @@ -112,7 +112,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS public void notifyDeleteDevice(TenantId tenantId, DeviceId deviceId, CustomerId customerId, Device device, User user, Object... additionalInfo) { gatewayNotificationsService.onDeviceDeleted(device); - tbClusterService.onDeviceDeleted(device, null); + tbClusterService.onDeviceDeleted(tenantId, device, null); logEntityAction(tenantId, deviceId, device, customerId, ActionType.DELETED, user, additionalInfo); } @@ -126,6 +126,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS @Override public void notifyAssignDeviceToTenant(TenantId tenantId, TenantId newTenantId, DeviceId deviceId, CustomerId customerId, Device device, Tenant tenant, User user, Object... additionalInfo) { + tbClusterService.onDeviceAssignedToTenant(tenantId, device); logEntityAction(tenantId, deviceId, device, customerId, ActionType.ASSIGNED_TO_TENANT, user, additionalInfo); pushAssignedFromNotification(tenant, newTenantId, device); } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java index ac2d656ba6..a3d04f6344 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java @@ -232,6 +232,8 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T Tenant tenant = tenantService.findTenantById(tenantId); Device assignedDevice = deviceService.assignDeviceToTenant(newTenantId, device); + + notificationEntityService.notifyAssignDeviceToTenant(tenantId, newTenantId, deviceId, assignedDevice.getCustomerId(), assignedDevice, tenant, user, newTenantId.toString(), newTenant.getName()); diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java index 103d2b68e2..75a1baa5c6 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbClusterService.java @@ -308,10 +308,17 @@ public class DefaultTbClusterService implements TbClusterService { } @Override - public void onDeviceDeleted(Device device, TbQueueCallback callback) { - broadcastEntityDeleteToTransport(device.getTenantId(), device.getId(), device.getName(), callback); - sendDeviceStateServiceEvent(device.getTenantId(), device.getId(), false, false, true); - broadcastEntityStateChangeEvent(device.getTenantId(), device.getId(), ComponentLifecycleEvent.DELETED); + public void onDeviceDeleted(TenantId tenantId, Device device, TbQueueCallback callback) { + DeviceId deviceId = device.getId(); + broadcastEntityDeleteToTransport(tenantId, deviceId, device.getName(), callback); + sendDeviceStateServiceEvent(tenantId, deviceId, false, false, true); + broadcastEntityStateChangeEvent(tenantId, deviceId, ComponentLifecycleEvent.DELETED); + } + + @Override + public void onDeviceAssignedToTenant(TenantId oldTenantId, Device device) { + onDeviceDeleted(oldTenantId, device, null); + sendDeviceStateServiceEvent(device.getTenantId(), device.getId(), true, false, false); } @Override diff --git a/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java b/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java index 76a8e3e89a..8986ca8b51 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java @@ -44,6 +44,7 @@ import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; import org.thingsboard.server.common.msg.rpc.RemoveRpcActorMsg; import org.thingsboard.server.common.msg.rpc.ToDeviceRpcRequest; import org.thingsboard.server.common.msg.rpc.ToDeviceRpcRequestActorMsg; +import org.thingsboard.server.common.msg.rule.engine.DeviceDeleteMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceAttributesEventNotificationMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceCredentialsUpdateNotificationMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceEdgeUpdateMsg; @@ -377,6 +378,21 @@ public class ProtoUtils { ); } + private static TransportProtos.DeviceDeletedMsgProto toProto(DeviceDeleteMsg msg) { + return TransportProtos.DeviceDeletedMsgProto.newBuilder() + .setTenantIdMSB(msg.getTenantId().getId().getMostSignificantBits()) + .setTenantIdLSB(msg.getTenantId().getId().getLeastSignificantBits()) + .setDeviceIdMSB(msg.getDeviceId().getId().getMostSignificantBits()) + .setDeviceIdLSB(msg.getDeviceId().getId().getLeastSignificantBits()) + .build(); + } + + private static DeviceDeleteMsg fromProto(TransportProtos.DeviceDeletedMsgProto proto) { + return new DeviceDeleteMsg( + TenantId.fromUUID(new UUID(proto.getTenantIdMSB(), proto.getTenantIdLSB())), + new DeviceId(new UUID(proto.getDeviceIdMSB(), proto.getDeviceIdLSB()))); + } + public static TransportProtos.ToDeviceActorNotificationMsgProto toProto(ToDeviceActorNotificationMsg msg) { if (msg instanceof DeviceEdgeUpdateMsg) { DeviceEdgeUpdateMsg updateMsg = (DeviceEdgeUpdateMsg) msg; @@ -406,6 +422,10 @@ public class ProtoUtils { RemoveRpcActorMsg updateMsg = (RemoveRpcActorMsg) msg; TransportProtos.RemoveRpcActorMsgProto proto = toProto(updateMsg); return TransportProtos.ToDeviceActorNotificationMsgProto.newBuilder().setRemoveRpcActorMsg(proto).build(); + } else if (msg instanceof DeviceDeleteMsg) { + DeviceDeleteMsg updateMsg = (DeviceDeleteMsg) msg; + TransportProtos.DeviceDeletedMsgProto proto = toProto(updateMsg); + return TransportProtos.ToDeviceActorNotificationMsgProto.newBuilder().setDeviceAssignToTenantMsgProto(proto).build(); } return null; } @@ -425,6 +445,8 @@ public class ProtoUtils { return fromProto(proto.getFromDeviceRpcResponseMsg()); } else if (proto.hasRemoveRpcActorMsg()) { return fromProto(proto.getRemoveRpcActorMsg()); + } else if (proto.hasDeviceAssignToTenantMsgProto()) { + return fromProto(proto.getDeviceAssignToTenantMsgProto()); } return null; } diff --git a/common/cluster-api/src/main/java/org/thingsboard/server/cluster/TbClusterService.java b/common/cluster-api/src/main/java/org/thingsboard/server/cluster/TbClusterService.java index 5b1eb1ae4f..5c3b9076ff 100644 --- a/common/cluster-api/src/main/java/org/thingsboard/server/cluster/TbClusterService.java +++ b/common/cluster-api/src/main/java/org/thingsboard/server/cluster/TbClusterService.java @@ -83,7 +83,9 @@ public interface TbClusterService extends TbQueueClusterService { void onDeviceUpdated(Device device, Device old); - void onDeviceDeleted(Device device, TbQueueCallback callback); + void onDeviceDeleted(TenantId tenantId, Device device, TbQueueCallback callback); + + void onDeviceAssignedToTenant(TenantId oldTenantId, Device device); void onResourceChange(TbResource resource, TbQueueCallback callback); diff --git a/common/cluster-api/src/main/proto/queue.proto b/common/cluster-api/src/main/proto/queue.proto index 6116411b2e..5000e3025f 100644 --- a/common/cluster-api/src/main/proto/queue.proto +++ b/common/cluster-api/src/main/proto/queue.proto @@ -1004,6 +1004,13 @@ message RemoveRpcActorMsgProto { int64 deviceIdLSB = 6; } +message DeviceDeletedMsgProto { + int64 tenantIdMSB = 1; + int64 tenantIdLSB = 2; + int64 deviceIdMSB = 3; + int64 deviceIdLSB = 4; +} + message ToDeviceActorNotificationMsgProto { DeviceEdgeUpdateMsgProto deviceEdgeUpdateMsg = 1; DeviceNameOrTypeUpdateMsgProto deviceNameOrTypeMsg = 2; @@ -1012,6 +1019,7 @@ message ToDeviceActorNotificationMsgProto { ToDeviceRpcRequestActorMsgProto toDeviceRpcRequestMsg = 5; FromDeviceRpcResponseActorMsgProto fromDeviceRpcResponseMsg = 6; RemoveRpcActorMsgProto removeRpcActorMsg = 7; + DeviceDeletedMsgProto deviceAssignToTenantMsgProto = 8; } /** diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/MsgType.java b/common/message/src/main/java/org/thingsboard/server/common/msg/MsgType.java index 0a39d8d51b..c3d3623d8e 100644 --- a/common/message/src/main/java/org/thingsboard/server/common/msg/MsgType.java +++ b/common/message/src/main/java/org/thingsboard/server/common/msg/MsgType.java @@ -93,6 +93,8 @@ public enum MsgType { DEVICE_NAME_OR_TYPE_UPDATE_TO_DEVICE_ACTOR_MSG, + DEVICE_DELETE_TO_DEVICE_ACTOR_MSG, + DEVICE_EDGE_UPDATE_TO_DEVICE_ACTOR_MSG, DEVICE_RPC_REQUEST_TO_DEVICE_ACTOR_MSG, diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/rule/engine/DeviceDeleteMsg.java b/common/message/src/main/java/org/thingsboard/server/common/msg/rule/engine/DeviceDeleteMsg.java new file mode 100644 index 0000000000..1bdab7409b --- /dev/null +++ b/common/message/src/main/java/org/thingsboard/server/common/msg/rule/engine/DeviceDeleteMsg.java @@ -0,0 +1,36 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.msg.rule.engine; + +import lombok.Data; +import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.msg.MsgType; +import org.thingsboard.server.common.msg.ToDeviceActorNotificationMsg; + +@Data +public class DeviceDeleteMsg implements ToDeviceActorNotificationMsg { + + private static final long serialVersionUID = 4679029228395462172L; + + private final TenantId tenantId; + private final DeviceId deviceId; + + @Override + public MsgType getMsgType() { + return MsgType.DEVICE_DELETE_TO_DEVICE_ACTOR_MSG; + } +} From deb19d24c0b4ebdcf8fdf07c5e94d6397fb413ab Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Mon, 13 Nov 2023 10:57:27 +0100 Subject: [PATCH 018/162] added verification for the corresponding test --- .../controller/DeviceControllerTest.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java index 778a11a552..b6afaa34e1 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java @@ -51,7 +51,6 @@ import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.alarm.AlarmSeverity; -import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; @@ -73,7 +72,9 @@ import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DeviceCredentialsValidationException; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.service.DaoSqlTest; +import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.service.gateway_device.GatewayNotificationsService; +import org.thingsboard.server.service.state.DeviceStateService; import java.util.ArrayList; import java.util.List; @@ -82,6 +83,9 @@ import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.containsString; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -106,6 +110,9 @@ public class DeviceControllerTest extends AbstractControllerTest { @SpyBean private GatewayNotificationsService gatewayNotificationsService; + @SpyBean + private DeviceStateService deviceStateService; + @Autowired private DeviceDao deviceDao; @@ -1340,6 +1347,28 @@ public class DeviceControllerTest extends AbstractControllerTest { ActionType.ASSIGNED_TO_TENANT, savedDifferentTenant.getId().getId().toString(), savedDifferentTenant.getTitle()); testNotificationUpdateGatewayNever(); + Mockito.verify(deviceStateService, times(1)).onQueueMsg( + argThat(proto -> + proto.getTenantIdMSB() == savedTenant.getUuidId().getMostSignificantBits() && + proto.getTenantIdLSB() == savedTenant.getUuidId().getLeastSignificantBits() && + proto.getDeviceIdMSB() == savedDevice.getUuidId().getMostSignificantBits() && + proto.getDeviceIdLSB() == savedDevice.getUuidId().getLeastSignificantBits() && + proto.getDeleted() + ), + any() + ); + + Mockito.verify(deviceStateService, times(1)).onQueueMsg( + argThat(proto -> + proto.getTenantIdMSB() == savedDifferentTenant.getUuidId().getMostSignificantBits() && + proto.getTenantIdLSB() == savedDifferentTenant.getUuidId().getLeastSignificantBits() && + proto.getDeviceIdMSB() == savedDevice.getUuidId().getMostSignificantBits() && + proto.getDeviceIdLSB() == savedDevice.getUuidId().getLeastSignificantBits() && + proto.getAdded() + ), + any() + ); + login("tenant9@thingsboard.org", "testPassword1"); Device foundDevice1 = doGet("/api/device/" + assignedDevice.getId().getId(), Device.class); From b14a304473c1bc8f8f8a859ef8cae2afbe153c3b Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 26 Sep 2023 17:05:30 +0300 Subject: [PATCH 019/162] Refactoring for edge proto to send entity serialized in order not to update everytime entity changes its structure --- .../service/edge/rpc/EdgeGrpcSession.java | 44 +- .../AdminSettingsMsgConstructor.java | 11 +- .../rpc/constructor/AlarmMsgConstructor.java | 12 +- .../rpc/constructor/AssetMsgConstructor.java | 12 +- .../AssetProfileMsgConstructor.java | 13 +- .../constructor/CustomerMsgConstructor.java | 12 +- .../constructor/DashboardMsgConstructor.java | 12 +- .../rpc/constructor/DeviceMsgConstructor.java | 20 +- .../DeviceProfileMsgConstructor.java | 13 +- .../constructor/EntityViewMsgConstructor.java | 38 +- .../constructor/OtaPackageMsgConstructor.java | 12 +- .../rpc/constructor/QueueMsgConstructor.java | 13 +- .../constructor/RelationMsgConstructor.java | 10 +- .../constructor/RuleChainMsgConstructor.java | 16 +- .../rpc/constructor/TenantMsgConstructor.java | 10 +- .../TenantProfileMsgConstructor.java | 7 + .../rpc/constructor/UserMsgConstructor.java | 20 +- .../constructor/WidgetTypeMsgConstructor.java | 8 + .../WidgetsBundleMsgConstructor.java | 12 +- .../AbstractRuleChainMetadataConstructor.java | 13 +- .../rule/RuleChainMetadataConstructor.java | 4 +- .../processor/alarm/AlarmEdgeProcessor.java | 8 +- .../processor/alarm/BaseAlarmProcessor.java | 49 ++- .../processor/asset/AssetEdgeProcessor.java | 16 +- .../asset/AssetProfileEdgeProcessor.java | 27 +- .../processor/asset/BaseAssetProcessor.java | 47 ++- .../asset/BaseAssetProfileProcessor.java | 52 ++- .../customer/CustomerEdgeProcessor.java | 5 +- .../dashboard/BaseDashboardProcessor.java | 65 +-- .../dashboard/DashboardEdgeProcessor.java | 17 +- .../processor/device/BaseDeviceProcessor.java | 105 +++-- .../device/BaseDeviceProfileProcessor.java | 92 ++-- .../processor/device/DeviceEdgeProcessor.java | 20 +- .../device/DeviceProfileEdgeProcessor.java | 27 +- .../entityview/BaseEntityViewProcessor.java | 47 ++- .../entityview/EntityViewEdgeProcessor.java | 17 +- .../ota/OtaPackageEdgeProcessor.java | 5 +- .../processor/queue/QueueEdgeProcessor.java | 5 +- .../relation/BaseRelationProcessor.java | 46 +- .../relation/RelationEdgeProcessor.java | 5 +- .../rule/RuleChainEdgeProcessor.java | 4 +- .../settings/AdminSettingsEdgeProcessor.java | 6 +- .../processor/tenant/TenantEdgeProcessor.java | 2 +- .../rpc/processor/user/UserEdgeProcessor.java | 7 +- .../widget/WidgetBundleEdgeProcessor.java | 5 +- .../edge/rpc/utils/EdgeVersionUtils.java | 4 + .../server/controller/EdgeControllerTest.java | 109 +++-- .../server/edge/AbstractEdgeTest.java | 61 +-- .../server/edge/AlarmEdgeTest.java | 60 +-- .../server/edge/AssetEdgeTest.java | 67 +-- .../server/edge/AssetProfileEdgeTest.java | 57 +-- .../server/edge/CustomerEdgeTest.java | 11 +- .../server/edge/DashboardEdgeTest.java | 63 +-- .../server/edge/DeviceEdgeTest.java | 131 +++--- .../server/edge/DeviceProfileEdgeTest.java | 108 +++-- .../org/thingsboard/server/edge/EdgeTest.java | 6 +- .../server/edge/EntityViewEdgeTest.java | 78 ++-- .../server/edge/OtaPackageEdgeTest.java | 63 ++- .../server/edge/QueueEdgeTest.java | 37 +- .../server/edge/RelationEdgeTest.java | 63 ++- .../server/edge/RuleChainEdgeTest.java | 32 +- .../server/edge/TenantEdgeTest.java | 31 +- .../server/edge/TenantProfileEdgeTest.java | 11 +- .../thingsboard/server/edge/UserEdgeTest.java | 63 +-- .../server/edge/WidgetEdgeTest.java | 28 +- .../server/common/data/DashboardInfo.java | 2 + .../common/data/id/UserCredentialsId.java | 6 +- common/edge-api/src/main/proto/edge.proto | 399 ++++++++++-------- .../thingsboard/common/util/JacksonUtil.java | 12 + .../common/util/JacksonUtilTest.java | 23 + 70 files changed, 1508 insertions(+), 1008 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index 7318b1eb24..277b8a3f34 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -623,37 +623,37 @@ public final class EdgeGrpcSession implements Closeable { case ASSET: return ctx.getAssetProcessor().convertAssetEventToDownlink(edgeEvent, this.edge.getId(), this.edgeVersion); case ENTITY_VIEW: - return ctx.getEntityViewProcessor().convertEntityViewEventToDownlink(edgeEvent); + return ctx.getEntityViewProcessor().convertEntityViewEventToDownlink(edgeEvent, this.edgeVersion); case DASHBOARD: - return ctx.getDashboardProcessor().convertDashboardEventToDownlink(edgeEvent); + return ctx.getDashboardProcessor().convertDashboardEventToDownlink(edgeEvent, this.edgeVersion); case CUSTOMER: - return ctx.getCustomerProcessor().convertCustomerEventToDownlink(edgeEvent); + return ctx.getCustomerProcessor().convertCustomerEventToDownlink(edgeEvent, this.edgeVersion); case RULE_CHAIN: - return ctx.getRuleChainProcessor().convertRuleChainEventToDownlink(edgeEvent); + return ctx.getRuleChainProcessor().convertRuleChainEventToDownlink(edgeEvent, this.edgeVersion); case RULE_CHAIN_METADATA: return ctx.getRuleChainProcessor().convertRuleChainMetadataEventToDownlink(edgeEvent, this.edgeVersion); case ALARM: - return ctx.getAlarmProcessor().convertAlarmEventToDownlink(edgeEvent); + return ctx.getAlarmProcessor().convertAlarmEventToDownlink(edgeEvent, this.edgeVersion); case USER: - return ctx.getUserProcessor().convertUserEventToDownlink(edgeEvent); + return ctx.getUserProcessor().convertUserEventToDownlink(edgeEvent, this.edgeVersion); case RELATION: - return ctx.getRelationProcessor().convertRelationEventToDownlink(edgeEvent); + return ctx.getRelationProcessor().convertRelationEventToDownlink(edgeEvent, this.edgeVersion); case WIDGETS_BUNDLE: - return ctx.getWidgetBundleProcessor().convertWidgetsBundleEventToDownlink(edgeEvent); + return ctx.getWidgetBundleProcessor().convertWidgetsBundleEventToDownlink(edgeEvent, this.edgeVersion); case WIDGET_TYPE: return ctx.getWidgetTypeProcessor().convertWidgetTypeEventToDownlink(edgeEvent, this.edgeVersion); case ADMIN_SETTINGS: - return ctx.getAdminSettingsProcessor().convertAdminSettingsEventToDownlink(edgeEvent); + return ctx.getAdminSettingsProcessor().convertAdminSettingsEventToDownlink(edgeEvent, this.edgeVersion); case OTA_PACKAGE: - return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent); + return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent, this.edgeVersion); case TB_RESOURCE: return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent); case QUEUE: - return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent); + return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent, this.edgeVersion); case TENANT: - return ctx.getTenantEdgeProcessor().convertTenantEventToDownlink(edgeEvent, this.getEdgeVersion()); + return ctx.getTenantEdgeProcessor().convertTenantEventToDownlink(edgeEvent, this.edgeVersion); case TENANT_PROFILE: - return ctx.getTenantProfileEdgeProcessor().convertTenantProfileEventToDownlink(edgeEvent, this.getEdgeVersion()); + return ctx.getTenantProfileEdgeProcessor().convertTenantProfileEventToDownlink(edgeEvent, this.edgeVersion); default: log.warn("[{}] Unsupported edge event type [{}]", this.tenantId, edgeEvent); return null; @@ -670,47 +670,47 @@ public final class EdgeGrpcSession implements Closeable { } if (uplinkMsg.getDeviceProfileUpdateMsgCount() > 0) { for (DeviceProfileUpdateMsg deviceProfileUpdateMsg : uplinkMsg.getDeviceProfileUpdateMsgList()) { - result.add(ctx.getDeviceProfileProcessor().processDeviceProfileMsgFromEdge(edge.getTenantId(), edge, deviceProfileUpdateMsg)); + result.add(ctx.getDeviceProfileProcessor().processDeviceProfileMsgFromEdge(edge.getTenantId(), edge, deviceProfileUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getDeviceUpdateMsgCount() > 0) { for (DeviceUpdateMsg deviceUpdateMsg : uplinkMsg.getDeviceUpdateMsgList()) { - result.add(ctx.getDeviceProcessor().processDeviceMsgFromEdge(edge.getTenantId(), edge, deviceUpdateMsg)); + result.add(ctx.getDeviceProcessor().processDeviceMsgFromEdge(edge.getTenantId(), edge, deviceUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getDeviceCredentialsUpdateMsgCount() > 0) { for (DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg : uplinkMsg.getDeviceCredentialsUpdateMsgList()) { - result.add(ctx.getDeviceProcessor().processDeviceCredentialsMsgFromEdge(edge.getTenantId(), edge.getId(), deviceCredentialsUpdateMsg)); + result.add(ctx.getDeviceProcessor().processDeviceCredentialsMsgFromEdge(edge.getTenantId(), edge.getId(), deviceCredentialsUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getAssetProfileUpdateMsgCount() > 0) { for (AssetProfileUpdateMsg assetProfileUpdateMsg : uplinkMsg.getAssetProfileUpdateMsgList()) { - result.add(ctx.getAssetProfileProcessor().processAssetProfileMsgFromEdge(edge.getTenantId(), edge, assetProfileUpdateMsg)); + result.add(ctx.getAssetProfileProcessor().processAssetProfileMsgFromEdge(edge.getTenantId(), edge, assetProfileUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getAssetUpdateMsgCount() > 0) { for (AssetUpdateMsg assetUpdateMsg : uplinkMsg.getAssetUpdateMsgList()) { - result.add(ctx.getAssetProcessor().processAssetMsgFromEdge(edge.getTenantId(), edge, assetUpdateMsg)); + result.add(ctx.getAssetProcessor().processAssetMsgFromEdge(edge.getTenantId(), edge, assetUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getAlarmUpdateMsgCount() > 0) { for (AlarmUpdateMsg alarmUpdateMsg : uplinkMsg.getAlarmUpdateMsgList()) { - result.add(ctx.getAlarmProcessor().processAlarmMsgFromEdge(edge.getTenantId(), edge.getId(), alarmUpdateMsg)); + result.add(ctx.getAlarmProcessor().processAlarmMsgFromEdge(edge.getTenantId(), edge.getId(), alarmUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getEntityViewUpdateMsgCount() > 0) { for (EntityViewUpdateMsg entityViewUpdateMsg : uplinkMsg.getEntityViewUpdateMsgList()) { - result.add(ctx.getEntityViewProcessor().processEntityViewMsgFromEdge(edge.getTenantId(), edge, entityViewUpdateMsg)); + result.add(ctx.getEntityViewProcessor().processEntityViewMsgFromEdge(edge.getTenantId(), edge, entityViewUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getRelationUpdateMsgCount() > 0) { for (RelationUpdateMsg relationUpdateMsg : uplinkMsg.getRelationUpdateMsgList()) { - result.add(ctx.getRelationProcessor().processRelationMsgFromEdge(edge.getTenantId(), edge, relationUpdateMsg)); + result.add(ctx.getRelationProcessor().processRelationMsgFromEdge(edge.getTenantId(), edge, relationUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getDashboardUpdateMsgCount() > 0) { for (DashboardUpdateMsg dashboardUpdateMsg : uplinkMsg.getDashboardUpdateMsgList()) { - result.add(ctx.getDashboardProcessor().processDashboardMsgFromEdge(edge.getTenantId(), edge, dashboardUpdateMsg)); + result.add(ctx.getDashboardProcessor().processDashboardMsgFromEdge(edge.getTenantId(), edge, dashboardUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getResourceUpdateMsgCount() > 0) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java index 79754b867c..888f203fb6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java @@ -19,13 +19,21 @@ import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class AdminSettingsMsgConstructor { - public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings) { + public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? constructDeprecatedWidgetTypeUpdateMsg(adminSettings) + : AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); + } + + private AdminSettingsUpdateMsg constructDeprecatedWidgetTypeUpdateMsg(AdminSettings adminSettings) { AdminSettingsUpdateMsg.Builder builder = AdminSettingsUpdateMsg.newBuilder() .setKey(adminSettings.getKey()) .setJsonValue(JacksonUtil.toString(adminSettings.getJsonValue())); @@ -34,5 +42,4 @@ public class AdminSettingsMsgConstructor { } return builder.build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java index 15d7c27ff6..2fbb4e6cd6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java @@ -19,14 +19,24 @@ import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class AlarmMsgConstructor { - public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName) { + public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedAlarmUpdatedMsg(msgType, alarm, entityName) + : AlarmUpdateMsg.newBuilder().setMsgType(msgType).setOriginatorName(entityName).setEntity(JacksonUtil.toString(alarm)) + .setIdMSB(alarm.getId().getId().getMostSignificantBits()) + .setIdLSB(alarm.getId().getId().getLeastSignificantBits()).build(); + } + + private AlarmUpdateMsg constructDeprecatedAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName) { AlarmUpdateMsg.Builder builder = AlarmUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(alarm.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java index 86ffc6dd5c..e3ffb71e47 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java @@ -20,14 +20,24 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.id.AssetId; import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class AssetMsgConstructor { - public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset) { + public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedAssetUpdateMsg(msgType, asset) + : AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) + .setIdMSB(asset.getUuidId().getMostSignificantBits()) + .setIdLSB(asset.getUuidId().getLeastSignificantBits()).build(); + } + + private AssetUpdateMsg constructDeprecatedAssetUpdateMsg(UpdateMsgType msgType, Asset asset) { AssetUpdateMsg.Builder builder = AssetUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(asset.getUuidId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java index f5b921a32b..c344adc15c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java @@ -17,11 +17,14 @@ package org.thingsboard.server.service.edge.rpc.constructor; import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; @@ -29,7 +32,15 @@ import java.nio.charset.StandardCharsets; @TbCoreComponent public class AssetProfileMsgConstructor { - public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile) { + public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedAssetProfileUpdatedMsg(msgType, assetProfile) + : AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) + .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) + .setIdLSB(assetProfile.getId().getId().getLeastSignificantBits()).build(); + } + + private AssetProfileUpdateMsg constructDeprecatedAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile) { AssetProfileUpdateMsg.Builder builder = AssetProfileUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java index 0465dd5a94..714cb60672 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java @@ -20,14 +20,24 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class CustomerMsgConstructor { - public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer) { + public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedCustomerUpdatedMsg(msgType, customer) + : CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) + .setIdMSB(customer.getId().getId().getMostSignificantBits()) + .setIdLSB(customer.getId().getId().getLeastSignificantBits()).build(); + } + + private CustomerUpdateMsg constructDeprecatedCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer) { CustomerUpdateMsg.Builder builder = CustomerUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(customer.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java index 50c2b46891..76a969e30a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java @@ -20,14 +20,24 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class DashboardMsgConstructor { - public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard) { + public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedDashboardUpdatedMsg(msgType, dashboard) + : DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) + .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) + .setIdLSB(dashboard.getId().getId().getLeastSignificantBits()).build(); + } + + private DashboardUpdateMsg constructDeprecatedDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard) { DashboardUpdateMsg.Builder builder = DashboardUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java index 78b785a5d8..9325fbc424 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java @@ -26,11 +26,13 @@ import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RpcRequestMsg; import org.thingsboard.server.gen.edge.v1.RpcResponseMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -41,7 +43,15 @@ public class DeviceMsgConstructor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device) { + public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedDeviceUpdateMsg(msgType, device) + : DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) + .setIdMSB(device.getId().getId().getMostSignificantBits()) + .setIdLSB(device.getId().getId().getLeastSignificantBits()).build(); + } + + private DeviceUpdateMsg constructDeprecatedDeviceUpdateMsg(UpdateMsgType msgType, Device device) { DeviceUpdateMsg.Builder builder = DeviceUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(device.getId().getId().getMostSignificantBits()) @@ -76,7 +86,13 @@ public class DeviceMsgConstructor { return builder.build(); } - public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials) { + public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedDeviceCredentialsUpdatedMsg(deviceCredentials) + : DeviceCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(deviceCredentials)).build(); + } + + private DeviceCredentialsUpdateMsg constructDeprecatedDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials) { DeviceCredentialsUpdateMsg.Builder builder = DeviceCredentialsUpdateMsg.newBuilder() .setDeviceIdMSB(deviceCredentials.getDeviceId().getId().getMostSignificantBits()) .setDeviceIdLSB(deviceCredentials.getDeviceId().getId().getLeastSignificantBits()); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java index d8e19ee854..802cadbe87 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java @@ -18,12 +18,15 @@ package org.thingsboard.server.service.edge.rpc.constructor; import com.google.protobuf.ByteString; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; @@ -34,7 +37,15 @@ public class DeviceProfileMsgConstructor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile) { + public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedDeviceProfileUpdatedMsg(msgType, deviceProfile) + : DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) + .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) + .setIdLSB(deviceProfile.getId().getId().getLeastSignificantBits()).build(); + } + + private DeviceProfileUpdateMsg constructDeprecatedDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile) { DeviceProfileUpdateMsg.Builder builder = DeviceProfileUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java index 235199d75e..2f71103ba5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java @@ -17,29 +17,30 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.gen.edge.v1.EdgeEntityType; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class EntityViewMsgConstructor { - public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView) { - EdgeEntityType entityType; - switch (entityView.getEntityId().getEntityType()) { - case DEVICE: - entityType = EdgeEntityType.DEVICE; - break; - case ASSET: - entityType = EdgeEntityType.ASSET; - break; - default: - throw new RuntimeException("Unsupported entity type [" + entityView.getEntityId().getEntityType() + "]"); - } + public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructEntityViewUpdatedMsgDeprecated(msgType, entityView) + : EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) + .setIdMSB(entityView.getId().getId().getMostSignificantBits()) + .setIdLSB(entityView.getId().getId().getLeastSignificantBits()).build(); + } + + private EntityViewUpdateMsg constructEntityViewUpdatedMsgDeprecated(UpdateMsgType msgType, EntityView entityView) { + EdgeEntityType edgeEntityType = checkEntityType(entityView.getEntityId().getEntityType()); EntityViewUpdateMsg.Builder builder = EntityViewUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(entityView.getId().getId().getMostSignificantBits()) @@ -48,7 +49,7 @@ public class EntityViewMsgConstructor { .setType(entityView.getType()) .setEntityIdMSB(entityView.getEntityId().getId().getMostSignificantBits()) .setEntityIdLSB(entityView.getEntityId().getId().getLeastSignificantBits()) - .setEntityType(entityType); + .setEntityType(edgeEntityType); if (entityView.getCustomerId() != null) { builder.setCustomerIdMSB(entityView.getCustomerId().getId().getMostSignificantBits()); builder.setCustomerIdLSB(entityView.getCustomerId().getId().getLeastSignificantBits()); @@ -59,6 +60,17 @@ public class EntityViewMsgConstructor { return builder.build(); } + private EdgeEntityType checkEntityType(EntityType entityType) { + switch (entityType) { + case DEVICE: + return EdgeEntityType.DEVICE; + case ASSET: + return EdgeEntityType.ASSET; + default: + throw new RuntimeException("Unsupported entity type [" + entityType + "]"); + } + } + public EntityViewUpdateMsg constructEntityViewDeleteMsg(EntityViewId entityViewId) { return EntityViewUpdateMsg.newBuilder() .setMsgType(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java index 253305a5ab..a946767088 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java @@ -20,15 +20,25 @@ import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.id.OtaPackageId; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class OtaPackageMsgConstructor { - public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage) { + public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedOtaPackageUpdatedMsg(msgType, otaPackage) + : OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) + .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) + .setIdLSB(otaPackage.getId().getId().getLeastSignificantBits()).build(); + } + + private OtaPackageUpdateMsg constructDeprecatedOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage) { OtaPackageUpdateMsg.Builder builder = OtaPackageUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java index 2644a5409b..3dbb8d4d05 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java @@ -16,21 +16,32 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.queue.ProcessingStrategy; import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.common.data.queue.SubmitStrategy; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ProcessingStrategyProto; import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; import org.thingsboard.server.gen.edge.v1.SubmitStrategyProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class QueueMsgConstructor { - public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue) { + public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedQueueUpdatedMsg(msgType, queue) + : QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) + .setIdMSB(queue.getId().getId().getMostSignificantBits()) + .setIdLSB(queue.getId().getId().getLeastSignificantBits()).build(); + } + + private QueueUpdateMsg constructDeprecatedQueueUpdatedMsg(UpdateMsgType msgType, Queue queue) { QueueUpdateMsg.Builder builder = QueueUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(queue.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java index 24786a4f7c..31b4ade4b1 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java @@ -18,15 +18,23 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.relation.EntityRelation; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class RelationMsgConstructor { - public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { + public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? constructDeprecatedRelationUpdatedMsg(msgType, entityRelation) + : RelationUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityRelation)).build(); + } + + private RelationUpdateMsg constructDeprecatedRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { RelationUpdateMsg.Builder builder = RelationUpdateMsg.newBuilder() .setMsgType(msgType) .setFromIdMSB(entityRelation.getFrom().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java index 8f91f5d19e..f51ee17c13 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java @@ -29,19 +29,29 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMetadataConstructor; import org.thingsboard.server.service.edge.rpc.constructor.rule.RuleChainMetadataConstructorFactory; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @Slf4j @TbCoreComponent public class RuleChainMsgConstructor { - public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { + public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { + ruleChain.setRoot(isRoot); + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain) + : RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) + .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) + .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); + } + + private RuleChainUpdateMsg constructDeprecatedRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain) { RuleChainUpdateMsg.Builder builder = RuleChainUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()) .setName(ruleChain.getName()) - .setRoot(isRoot) + .setRoot(ruleChain.isRoot()) .setDebugMode(ruleChain.isDebugMode()) .setConfiguration(JacksonUtil.toString(ruleChain.getConfiguration())); if (ruleChain.getFirstRuleNodeId() != null) { @@ -57,7 +67,7 @@ public class RuleChainMsgConstructor { EdgeVersion edgeVersion) { RuleChainMetadataConstructor ruleChainMetadataConstructor = RuleChainMetadataConstructorFactory.getByEdgeVersion(edgeVersion); - return ruleChainMetadataConstructor.constructRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData); + return ruleChainMetadataConstructor.constructRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData, edgeVersion); } public RuleChainUpdateMsg constructRuleChainDeleteMsg(RuleChainId ruleChainId) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java index 321a57970a..6f9aee29f5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java @@ -18,15 +18,23 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class TenantMsgConstructor { - public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { + public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedTenantUpdateMsg(msgType, tenant) + : TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); + } + + private TenantUpdateMsg constructDeprecatedTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { TenantUpdateMsg.Builder builder = TenantUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(tenant.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java index 9fdb1bf069..f56a781437 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java @@ -18,6 +18,7 @@ package org.thingsboard.server.service.edge.rpc.constructor; import com.google.protobuf.ByteString; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; @@ -36,6 +37,12 @@ public class TenantProfileMsgConstructor { public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? constructDeprecatedTenantProfileUpdateMsg(msgType, tenantProfile, profileData) + : TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); + } + + private TenantProfileUpdateMsg constructDeprecatedTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, ByteString profileData) { TenantProfileUpdateMsg.Builder builder = TenantProfileUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(tenantProfile.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java index fbd3b31688..e0829ead4f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java @@ -20,16 +20,26 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.security.UserCredentials; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class UserMsgConstructor { - public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user) { + public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedUserUpdatedMsg(msgType, user) + : UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) + .setIdMSB(user.getId().getId().getMostSignificantBits()) + .setIdLSB(user.getId().getId().getLeastSignificantBits()).build(); + } + + private UserUpdateMsg constructDeprecatedUserUpdatedMsg(UpdateMsgType msgType, User user) { UserUpdateMsg.Builder builder = UserUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(user.getId().getId().getMostSignificantBits()) @@ -59,7 +69,13 @@ public class UserMsgConstructor { .setIdLSB(userId.getId().getLeastSignificantBits()).build(); } - public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials) { + public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedUserCredentialsUpdatedMsg(userCredentials) + : UserCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(userCredentials)).build(); + } + + private UserCredentialsUpdateMsg constructDeprecatedUserCredentialsUpdatedMsg(UserCredentials userCredentials) { UserCredentialsUpdateMsg.Builder builder = UserCredentialsUpdateMsg.newBuilder() .setUserIdMSB(userCredentials.getUserId().getId().getMostSignificantBits()) .setUserIdLSB(userCredentials.getUserId().getId().getLeastSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java index 17a66a47d4..8d928e7125 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java @@ -33,6 +33,14 @@ import java.util.Arrays; public class WidgetTypeMsgConstructor { public WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? constructDeprecatedWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion) + : WidgetTypeUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetTypeDetails)) + .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) + .setIdLSB(widgetTypeDetails.getId().getId().getLeastSignificantBits()).build(); + } + + private WidgetTypeUpdateMsg constructDeprecatedWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { WidgetTypeUpdateMsg.Builder builder = WidgetTypeUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java index 5b615ca9f8..e52e44aa1e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java @@ -21,9 +21,11 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.widget.WidgetsBundle; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.nio.charset.StandardCharsets; import java.util.List; @@ -32,7 +34,15 @@ import java.util.List; @TbCoreComponent public class WidgetsBundleMsgConstructor { - public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets) { + public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets, EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets) + : WidgetsBundleUpdateMsg.newBuilder().setWidgets(JacksonUtil.toString(widgets)).setEntity(JacksonUtil.toString(widgetsBundle)) + .setMsgType(msgType).setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) + .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()).build(); + } + + private WidgetsBundleUpdateMsg constructDeprecatedWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets) { WidgetsBundleUpdateMsg.Builder builder = WidgetsBundleUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java index a720d0aab6..997613a42a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java @@ -24,11 +24,13 @@ import org.thingsboard.server.common.data.rule.NodeConnectionInfo; import org.thingsboard.server.common.data.rule.RuleChainConnectionInfo; import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.common.data.rule.RuleNode; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.NodeConnectionInfoProto; import org.thingsboard.server.gen.edge.v1.RuleChainConnectionInfoProto; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleNodeProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.List; @@ -41,7 +43,16 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM @Override public RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, UpdateMsgType msgType, - RuleChainMetaData ruleChainMetaData) { + RuleChainMetaData ruleChainMetaData, + EdgeVersion edgeVersion) { + return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + ? constructDeprecatedRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData) + : RuleChainMetadataUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChainMetaData)).build(); + } + + private RuleChainMetadataUpdateMsg constructDeprecatedRuleChainMetadataUpdatedMsg(TenantId tenantId, + UpdateMsgType msgType, + RuleChainMetaData ruleChainMetaData) { try { RuleChainMetadataUpdateMsg.Builder builder = RuleChainMetadataUpdateMsg.newBuilder(); builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructor.java index 51b7380e48..f80b30b3c4 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/RuleChainMetadataConstructor.java @@ -17,6 +17,7 @@ package org.thingsboard.server.service.edge.rpc.constructor.rule; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.rule.RuleChainMetaData; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; @@ -24,5 +25,6 @@ public interface RuleChainMetadataConstructor { RuleChainMetadataUpdateMsg constructRuleChainMetadataUpdatedMsg(TenantId tenantId, UpdateMsgType msgType, - RuleChainMetaData ruleChainMetaData); + RuleChainMetaData ruleChainMetaData, + EdgeVersion edgeVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index 882fd90c46..c15b79356e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -34,6 +34,7 @@ import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -56,9 +57,9 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { } } - public DownlinkMsg convertAlarmEventToDownlink(EdgeEvent edgeEvent) { - AlarmUpdateMsg alarmUpdateMsg = - convertAlarmEventToAlarmMsg(edgeEvent.getTenantId(), edgeEvent.getEntityId(), edgeEvent.getAction(), edgeEvent.getBody()); + public DownlinkMsg convertAlarmEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { + AlarmUpdateMsg alarmUpdateMsg = convertAlarmEventToAlarmMsg(edgeEvent.getTenantId(), edgeEvent.getEntityId(), + edgeEvent.getAction(), edgeEvent.getBody(), edgeVersion); if (alarmUpdateMsg != null) { return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) @@ -122,5 +123,4 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { } while (pageData != null && pageData.hasNext()); return futures; } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index 3fb086cd52..284b20d71e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -37,18 +37,28 @@ import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { - protected ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg) { - EntityId originatorId = getAlarmOriginator(tenantId, alarmUpdateMsg.getOriginatorName(), - EntityType.valueOf(alarmUpdateMsg.getOriginatorType())); + public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, EdgeVersion edgeVersion) { + log.trace("[{}] processAlarmMsg [{}]", tenantId, alarmUpdateMsg); AlarmId alarmId = new AlarmId(new UUID(alarmUpdateMsg.getIdMSB(), alarmUpdateMsg.getIdLSB())); + boolean isEdgeProtoDeprecated = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); + Alarm alarm = isEdgeProtoDeprecated ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) + : JacksonUtil.fromEdgeString(alarmUpdateMsg.getEntity(), Alarm.class); + if (alarm == null) { + throw new RuntimeException("[{" + tenantId + "}] alarmUpdateMsg {" + alarmUpdateMsg + "} cannot be converted to alarm"); + } + EntityType entityType = isEdgeProtoDeprecated ? EntityType.valueOf(alarmUpdateMsg.getOriginatorType()) + : alarm.getOriginator().getEntityType(); + EntityId originatorId = getAlarmOriginator(tenantId, alarmUpdateMsg.getOriginatorName(), entityType); if (originatorId == null) { log.warn("[{}] Originator not found for the alarm msg {}", tenantId, alarmUpdateMsg); return Futures.immediateFuture(null); @@ -58,10 +68,7 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { switch (alarmUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - Alarm alarm = new Alarm(); alarm.setId(alarmId); - alarm.setTenantId(tenantId); - alarm.setType(alarmUpdateMsg.getName()); alarm.setOriginator(originatorId); alarm.setSeverity(AlarmSeverity.valueOf(alarmUpdateMsg.getSeverity())); alarm.setStartTs(alarmUpdateMsg.getStartTs()); @@ -82,14 +89,13 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ALARM_ACK_RPC_MESSAGE: Alarm alarmToAck = alarmService.findAlarmById(tenantId, alarmId); if (alarmToAck != null) { - alarmService.acknowledgeAlarm(tenantId, alarmId, alarmUpdateMsg.getAckTs()); + alarmService.acknowledgeAlarm(tenantId, alarmId, alarm.getAckTs()); } break; case ALARM_CLEAR_RPC_MESSAGE: Alarm alarmToClear = alarmService.findAlarmById(tenantId, alarmId); if (alarmToClear != null) { - alarmService.clearAlarm(tenantId, alarmId, alarmUpdateMsg.getClearTs(), - JacksonUtil.toJsonNode(alarmUpdateMsg.getDetails())); + alarmService.clearAlarm(tenantId, alarmId, alarm.getClearTs(), alarm.getDetails()); } break; case ENTITY_DELETED_RPC_MESSAGE: @@ -109,7 +115,24 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { return Futures.immediateFuture(null); } - protected AlarmUpdateMsg convertAlarmEventToAlarmMsg(TenantId tenantId, UUID entityId, EdgeEventActionType actionType, JsonNode body) { + private Alarm createDeprecatedAlarm(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg) { + Alarm alarm = new Alarm(); + alarm.setTenantId(tenantId); + alarm.setType(alarmUpdateMsg.getName()); + alarm.setSeverity(AlarmSeverity.valueOf(alarmUpdateMsg.getSeverity())); + alarm.setStartTs(alarmUpdateMsg.getStartTs()); + AlarmStatus alarmStatus = AlarmStatus.valueOf(alarmUpdateMsg.getStatus()); + alarm.setClearTs(alarmUpdateMsg.getClearTs()); + alarm.setPropagate(alarmUpdateMsg.getPropagate()); + alarm.setCleared(alarmStatus.isCleared()); + alarm.setAcknowledged(alarmStatus.isAck()); + alarm.setAckTs(alarmUpdateMsg.getAckTs()); + alarm.setEndTs(alarmUpdateMsg.getEndTs()); + alarm.setDetails(JacksonUtil.toJsonNode(alarmUpdateMsg.getDetails())); + return alarm; + } + + public AlarmUpdateMsg convertAlarmEventToAlarmMsg(TenantId tenantId, UUID entityId, EdgeEventActionType actionType, JsonNode body, EdgeVersion edgeVersion) { AlarmId alarmId = new AlarmId(entityId); UpdateMsgType msgType = getUpdateMsgType(actionType); switch (actionType) { @@ -119,12 +142,14 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ALARM_CLEAR: Alarm alarm = alarmService.findAlarmById(tenantId, alarmId); if (alarm != null) { - return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm)); + return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, alarm, findOriginatorEntityName(tenantId, alarm), edgeVersion); } break; case DELETED: Alarm deletedAlarm = JacksonUtil.convertValue(body, Alarm.class); - return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm)); + if (deletedAlarm != null) { + return alarmMsgConstructor.constructAlarmUpdatedMsg(msgType, deletedAlarm, findOriginatorEntityName(tenantId, deletedAlarm), edgeVersion); + } } return null; } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index caa03af8a5..8b04d838e8 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -29,7 +29,6 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.AssetId; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; @@ -41,6 +40,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -49,7 +49,7 @@ import java.util.UUID; @TbCoreComponent public class AssetEdgeProcessor extends BaseAssetProcessor { - public ListenableFuture processAssetMsgFromEdge(TenantId tenantId, Edge edge, AssetUpdateMsg assetUpdateMsg) { + public ListenableFuture processAssetMsgFromEdge(TenantId tenantId, Edge edge, AssetUpdateMsg assetUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processAssetMsgFromEdge [{}] from edge [{}]", tenantId, assetUpdateMsg, edge.getId()); AssetId assetId = new AssetId(new UUID(assetUpdateMsg.getIdMSB(), assetUpdateMsg.getIdLSB())); try { @@ -58,7 +58,7 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { switch (assetUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, edge); + saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, edge, edgeVersion); return Futures.immediateFuture(null); case ENTITY_DELETED_RPC_MESSAGE: Asset assetToDelete = assetService.findAssetById(tenantId, assetId); @@ -82,9 +82,9 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { } } - private void saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, Edge edge) { - CustomerId customerId = safeGetCustomerId(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()); - Pair resultPair = super.saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, customerId); + private void saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + Pair resultPair = super.saveOrUpdateAsset(tenantId, assetId, assetUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), assetId); @@ -121,14 +121,14 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { if (asset != null && !BaseAssetService.TB_SERVICE_QUEUE.equals(asset.getType())) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); AssetUpdateMsg assetUpdateMsg = - assetMsgConstructor.constructAssetUpdatedMsg(msgType, asset); + assetMsgConstructor.constructAssetUpdatedMsg(msgType, asset, edgeVersion); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetUpdateMsg(assetUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { AssetProfile assetProfile = assetProfileService.findAssetProfileById(edgeEvent.getTenantId(), asset.getAssetProfileId()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); - builder.addAssetProfileUpdateMsg(assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile)); + builder.addAssetProfileUpdateMsg(assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile, edgeVersion)); } downlinkMsg = builder.build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index fb55edd8c5..c9b9329531 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -40,6 +40,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -48,7 +49,7 @@ import java.util.UUID; @TbCoreComponent public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { - public ListenableFuture processAssetProfileMsgFromEdge(TenantId tenantId, Edge edge, AssetProfileUpdateMsg assetProfileUpdateMsg) { + public ListenableFuture processAssetProfileMsgFromEdge(TenantId tenantId, Edge edge, AssetProfileUpdateMsg assetProfileUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processAssetProfileMsgFromEdge [{}] from edge [{}]", tenantId, assetProfileUpdateMsg, edge.getId()); AssetProfileId assetProfileId = new AssetProfileId(new UUID(assetProfileUpdateMsg.getIdMSB(), assetProfileUpdateMsg.getIdLSB())); try { @@ -57,7 +58,7 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { switch (assetProfileUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg, edge); + saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg, edge, edgeVersion); return Futures.immediateFuture(null); case ENTITY_DELETED_RPC_MESSAGE: case UNRECOGNIZED: @@ -72,8 +73,9 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } } - private void saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, Edge edge) { - Pair resultPair = super.saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg); + private void saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + Pair resultPair = super.saveOrUpdateAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), assetProfileId); @@ -107,7 +109,7 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); assetProfile = checkIfAssetProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, assetProfile, edgeVersion); AssetProfileUpdateMsg assetProfileUpdateMsg = - assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile); + assetProfileMsgConstructor.constructAssetProfileUpdatedMsg(msgType, assetProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAssetProfileUpdateMsg(assetProfileUpdateMsg) @@ -127,19 +129,24 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } @Override - protected void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg) { + protected void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile) { // do nothing on cloud } @Override - protected void setDefaultEdgeRuleChainId(TenantId tenantId,AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg) { - UUID defaultEdgeRuleChainUUID = safeGetUUID(assetProfileUpdateMsg.getDefaultRuleChainIdMSB(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()); + protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated + ? safeGetUUID(assetProfileUpdateMsg.getDefaultRuleChainIdMSB(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()) + : assetProfile.getDefaultRuleChainId() != null ? assetProfile.getDefaultRuleChainId().getId() : null; assetProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); + assetProfile.setDefaultRuleChainId(ruleChainId); } @Override - protected void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg) { - UUID defaultDashboardUUID = safeGetUUID(assetProfileUpdateMsg.getDefaultDashboardIdMSB(), assetProfileUpdateMsg.getDefaultDashboardIdLSB()); + protected void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + UUID defaultDashboardUUID = isEdgeVersionDeprecated + ? safeGetUUID(assetProfileUpdateMsg.getDefaultDashboardIdMSB(), assetProfileUpdateMsg.getDefaultDashboardIdLSB()) + : assetProfile.getDefaultDashboardId() != null ? assetProfile.getDefaultDashboardId().getId() : null; assetProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java index f8dcdbd8f6..343fd2f80e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java @@ -33,36 +33,33 @@ import java.util.UUID; @Slf4j public abstract class BaseAssetProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, CustomerId customerId) { + protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; boolean assetNameUpdated = false; assetCreationLock.lock(); try { - Asset asset = assetService.findAssetById(tenantId, assetId); - String assetName = assetUpdateMsg.getName(); + Asset asset = isEdgeProtoDeprecated + ? createAsset(tenantId, assetId, assetUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); if (asset == null) { + throw new RuntimeException("[{" + tenantId + "}] assetUpdateMsg {" + assetUpdateMsg + " } cannot be converted to asset"); + } + Asset assetById = assetService.findAssetById(tenantId, assetId); + if (assetById == null) { created = true; - asset = new Asset(); - asset.setTenantId(tenantId); - asset.setCreatedTime(Uuids.unixTimestamp(assetId.getId())); + asset.setId(null); + } else { + asset.setId(assetId); } + String assetName = asset.getName(); Asset assetByName = assetService.findAssetByTenantIdAndName(tenantId, assetName); if (assetByName != null && !assetByName.getId().equals(assetId)) { assetName = assetName + "_" + StringUtils.randomAlphanumeric(15); log.warn("[{}] Asset with name {} already exists. Renaming asset name to {}", - tenantId, assetUpdateMsg.getName(), assetName); + tenantId, asset.getName(), assetName); assetNameUpdated = true; } asset.setName(assetName); - asset.setType(assetUpdateMsg.getType()); - asset.setLabel(assetUpdateMsg.hasLabel() ? assetUpdateMsg.getLabel() : null); - asset.setAdditionalInfo(assetUpdateMsg.hasAdditionalInfo() - ? JacksonUtil.toJsonNode(assetUpdateMsg.getAdditionalInfo()) : null); - - UUID assetProfileUUID = safeGetUUID(assetUpdateMsg.getAssetProfileIdMSB(), assetUpdateMsg.getAssetProfileIdLSB()); - asset.setAssetProfileId(assetProfileUUID != null ? new AssetProfileId(assetProfileUUID) : null); - - asset.setCustomerId(customerId); assetValidator.validate(asset, Asset::getTenantId); if (created) { @@ -77,4 +74,22 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { } return Pair.of(created, assetNameUpdated); } + + private Asset createAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg) { + Asset asset = new Asset(); + asset.setTenantId(tenantId); + asset.setName(assetUpdateMsg.getName()); + asset.setCreatedTime(Uuids.unixTimestamp(assetId.getId())); + asset.setType(assetUpdateMsg.getType()); + asset.setLabel(assetUpdateMsg.hasLabel() ? assetUpdateMsg.getLabel() : null); + asset.setAdditionalInfo(assetUpdateMsg.hasAdditionalInfo() + ? JacksonUtil.toJsonNode(assetUpdateMsg.getAdditionalInfo()) : null); + + UUID assetProfileUUID = safeGetUUID(assetUpdateMsg.getAssetProfileIdMSB(), assetUpdateMsg.getAssetProfileIdLSB()); + asset.setAssetProfileId(assetProfileUUID != null ? new AssetProfileId(assetProfileUUID) : null); + + CustomerId customerId = safeGetCustomerId(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()); + asset.setCustomerId(customerId); + return asset; + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index 67c8f8de44..378d229e06 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -18,9 +18,11 @@ package org.thingsboard.server.service.edge.rpc.processor.asset; import com.datastax.oss.driver.api.core.uuid.Uuids; import lombok.extern.slf4j.Slf4j; import org.springframework.data.util.Pair; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.id.AssetProfileId; +import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @@ -30,36 +32,37 @@ import java.nio.charset.StandardCharsets; @Slf4j public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg) { + protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; boolean assetProfileNameUpdated = false; assetCreationLock.lock(); try { - AssetProfile assetProfile = assetProfileService.findAssetProfileById(tenantId, assetProfileId); - String assetProfileName = assetProfileUpdateMsg.getName(); + AssetProfile assetProfile = isEdgeProtoDeprecated + ? createAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg) + : JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); if (assetProfile == null) { + throw new RuntimeException("[{" + tenantId + "}] assetProfileUpdateMsg {" + assetProfileUpdateMsg + "} cannot be converted to asset profile"); + } + AssetProfile assetProfileById = assetProfileService.findAssetProfileById(tenantId, assetProfileId); + if (assetProfileById == null) { created = true; - assetProfile = new AssetProfile(); - assetProfile.setTenantId(tenantId); - assetProfile.setCreatedTime(Uuids.unixTimestamp(assetProfileId.getId())); + assetProfile.setId(null); + } else { + assetProfile.setId(assetProfileId); } + String assetProfileName = assetProfile.getName(); AssetProfile assetProfileByName = assetProfileService.findAssetProfileByName(tenantId, assetProfileName); if (assetProfileByName != null && !assetProfileByName.getId().equals(assetProfileId)) { assetProfileName = assetProfileName + "_" + StringUtils.randomAlphabetic(15); log.warn("[{}] Asset profile with name {} already exists. Renaming asset profile name to {}", - tenantId, assetProfileUpdateMsg.getName(), assetProfileName); + tenantId, assetProfile.getName(), assetProfileName); assetProfileNameUpdated = true; } assetProfile.setName(assetProfileName); - assetProfile.setDefault(assetProfileUpdateMsg.getDefault()); - assetProfile.setDefaultQueueName(assetProfileUpdateMsg.hasDefaultQueueName() ? assetProfileUpdateMsg.getDefaultQueueName() : null); - assetProfile.setDescription(assetProfileUpdateMsg.hasDescription() ? assetProfileUpdateMsg.getDescription() : null); - assetProfile.setImage(assetProfileUpdateMsg.hasImage() - ? new String(assetProfileUpdateMsg.getImage().toByteArray(), StandardCharsets.UTF_8) : null); - setDefaultRuleChainId(tenantId, assetProfile, assetProfileUpdateMsg); - setDefaultEdgeRuleChainId(tenantId, assetProfile, assetProfileUpdateMsg); - setDefaultDashboardId(tenantId, assetProfile, assetProfileUpdateMsg); + setDefaultRuleChainId(tenantId, assetProfile); + setDefaultEdgeRuleChainId(assetProfile, created ? null : assetProfileById.getDefaultRuleChainId(), assetProfileUpdateMsg, isEdgeProtoDeprecated); + setDefaultDashboardId(tenantId, assetProfile, assetProfileUpdateMsg, isEdgeProtoDeprecated); assetProfileValidator.validate(assetProfile, AssetProfile::getTenantId); if (created) { @@ -75,9 +78,22 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { return Pair.of(created, assetProfileNameUpdated); } - protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg); + private AssetProfile createAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg) { + AssetProfile assetProfile = new AssetProfile(); + assetProfile.setTenantId(tenantId); + assetProfile.setName(assetProfile.getName()); + assetProfile.setCreatedTime(Uuids.unixTimestamp(assetProfileId.getId())); + assetProfile.setDefault(assetProfileUpdateMsg.getDefault()); + assetProfile.setDefaultQueueName(assetProfileUpdateMsg.hasDefaultQueueName() ? assetProfileUpdateMsg.getDefaultQueueName() : null); + assetProfile.setDescription(assetProfileUpdateMsg.hasDescription() ? assetProfileUpdateMsg.getDescription() : null); + assetProfile.setImage(assetProfileUpdateMsg.hasImage() + ? new String(assetProfileUpdateMsg.getImage().toByteArray(), StandardCharsets.UTF_8) : null); + return assetProfile; + } + + protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile); - protected abstract void setDefaultEdgeRuleChainId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg); + protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); - protected abstract void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg); + protected abstract void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java index f553d6d5a0..04d786022f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/customer/CustomerEdgeProcessor.java @@ -33,6 +33,7 @@ import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -47,7 +48,7 @@ import java.util.UUID; @TbCoreComponent public class CustomerEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertCustomerEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertCustomerEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { CustomerId customerId = new CustomerId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -57,7 +58,7 @@ public class CustomerEdgeProcessor extends BaseEdgeProcessor { if (customer != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); CustomerUpdateMsg customerUpdateMsg = - customerMsgConstructor.constructCustomerUpdatedMsg(msgType, customer); + customerMsgConstructor.constructCustomerUpdatedMsg(msgType, customer, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addCustomerUpdateMsg(customerUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 687e14a07d..4474b29b4d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -21,7 +21,6 @@ import lombok.extern.slf4j.Slf4j; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.ShortCustomerInfo; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; @@ -32,20 +31,46 @@ import java.util.Set; @Slf4j public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, CustomerId customerId) { + protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId deprecatedDashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; - Dashboard dashboard = dashboardService.findDashboardById(tenantId, dashboardId); + Dashboard dashboard = isEdgeProtoDeprecated + ? createDashboard(tenantId, deprecatedDashboardId, dashboardUpdateMsg) + : JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); if (dashboard == null) { + throw new RuntimeException("[{" + tenantId + "}] dashboardUpdateMsg {" + dashboardUpdateMsg + "} cannot be converted to dashboard"); + } + DashboardId dashboardId = dashboard.getId(); + Dashboard dashboardById = dashboardService.findDashboardById(tenantId, dashboardId); + if (dashboardById == null) { created = true; - dashboard = new Dashboard(); - dashboard.setTenantId(tenantId); - dashboard.setCreatedTime(Uuids.unixTimestamp(dashboardId.getId())); + dashboard.setId(null); + } else { + dashboard.setId(dashboardId); + } + + dashboardValidator.validate(dashboard, Dashboard::getTenantId); + if (created) { + dashboard.setId(dashboardId); } + Dashboard savedDashboard = dashboardService.saveDashboard(dashboard, false); + if (savedDashboard.getAssignedCustomers() != null && savedDashboard.getAssignedCustomers().isEmpty()) { + for (ShortCustomerInfo assignedCustomer : savedDashboard.getAssignedCustomers()) { + dashboardService.unassignDashboardFromCustomer(tenantId, savedDashboard.getId(), assignedCustomer.getCustomerId()); + } + } + return created; + } + + private Dashboard createDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg) { + Dashboard dashboard = new Dashboard(); + dashboard.setTenantId(tenantId); + dashboard.setId(dashboardId); + dashboard.setCreatedTime(Uuids.unixTimestamp(dashboardId.getId())); dashboard.setTitle(dashboardUpdateMsg.getTitle()); dashboard.setImage(dashboardUpdateMsg.hasImage() ? dashboardUpdateMsg.getImage() : null); dashboard.setConfiguration(JacksonUtil.toJsonNode(dashboardUpdateMsg.getConfiguration())); - Set assignedCustomers = null; + Set assignedCustomers; if (dashboardUpdateMsg.hasAssignedCustomers()) { assignedCustomers = JacksonUtil.fromString(dashboardUpdateMsg.getAssignedCustomers(), new TypeReference<>() {}); assignedCustomers = filterNonExistingCustomers(tenantId, assignedCustomers); @@ -54,31 +79,9 @@ public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { dashboard.setMobileOrder(dashboardUpdateMsg.hasMobileOrder() ? dashboardUpdateMsg.getMobileOrder() : null); dashboard.setMobileHide(dashboardUpdateMsg.getMobileHide()); - - dashboardValidator.validate(dashboard, Dashboard::getTenantId); - if (created) { - dashboard.setId(dashboardId); - } - Dashboard savedDashboard = dashboardService.saveDashboard(dashboard, false); - if (assignedCustomers != null && !assignedCustomers.isEmpty()) { - for (ShortCustomerInfo assignedCustomer : assignedCustomers) { - if (assignedCustomer.getCustomerId().equals(customerId)) { - dashboardService.assignDashboardToCustomer(tenantId, dashboardId, assignedCustomer.getCustomerId()); - } - } - } else { - unassignCustomersFromDashboard(tenantId, savedDashboard); - } - return created; + return dashboard; } - protected abstract Set filterNonExistingCustomers(TenantId tenantId, Set assignedCustomers); - private void unassignCustomersFromDashboard(TenantId tenantId, Dashboard dashboard) { - if (dashboard.getAssignedCustomers() != null && !dashboard.getAssignedCustomers().isEmpty()) { - for (ShortCustomerInfo assignedCustomer : dashboard.getAssignedCustomers()) { - dashboardService.unassignDashboardFromCustomer(tenantId, dashboard.getId(), assignedCustomer.getCustomerId()); - } - } - } + protected abstract Set filterNonExistingCustomers(TenantId tenantId, Set assignedCustomers); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index 291491a2fe..630416f775 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -25,7 +25,6 @@ import org.thingsboard.server.common.data.EdgeUtils; import org.thingsboard.server.common.data.ShortCustomerInfo; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeEvent; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; @@ -33,8 +32,10 @@ import org.thingsboard.server.common.msg.TbMsgMetaData; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Set; import java.util.UUID; @@ -44,7 +45,7 @@ import java.util.UUID; @TbCoreComponent public class DashboardEdgeProcessor extends BaseDashboardProcessor { - public ListenableFuture processDashboardMsgFromEdge(TenantId tenantId, Edge edge, DashboardUpdateMsg dashboardUpdateMsg) { + public ListenableFuture processDashboardMsgFromEdge(TenantId tenantId, Edge edge, DashboardUpdateMsg dashboardUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processDashboardMsgFromEdge [{}] from edge [{}]", tenantId, dashboardUpdateMsg, edge.getId()); DashboardId dashboardId = new DashboardId(new UUID(dashboardUpdateMsg.getIdMSB(), dashboardUpdateMsg.getIdLSB())); try { @@ -53,7 +54,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { switch (dashboardUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, edge); + saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, edge, edgeVersion); return Futures.immediateFuture(null); case ENTITY_DELETED_RPC_MESSAGE: Dashboard dashboardToDelete = dashboardService.findDashboardById(tenantId, dashboardId); @@ -77,9 +78,9 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { } } - private void saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, Edge edge) { - CustomerId customerId = safeGetCustomerId(dashboardUpdateMsg.getCustomerIdMSB(), dashboardUpdateMsg.getCustomerIdLSB()); - boolean created = super.saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, customerId); + private void saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + boolean created = super.saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); if (created) { createRelationFromEdge(tenantId, edge.getId(), dashboardId); pushDashboardCreatedEventToRuleEngine(tenantId, edge, dashboardId); @@ -98,7 +99,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { } } - public DownlinkMsg convertDashboardEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertDashboardEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { DashboardId dashboardId = new DashboardId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -111,7 +112,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { if (dashboard != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); DashboardUpdateMsg dashboardUpdateMsg = - dashboardMsgConstructor.constructDashboardUpdatedMsg(msgType, dashboard); + dashboardMsgConstructor.constructDashboardUpdatedMsg(msgType, dashboard, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDashboardUpdateMsg(dashboardUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index 8958db0c44..b43843580b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -32,8 +32,10 @@ import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Optional; import java.util.UUID; @@ -44,46 +46,35 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { @Autowired protected DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, CustomerId customerId) { + protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; boolean deviceNameUpdated = false; deviceCreationLock.lock(); try { - Device device = deviceService.findDeviceById(tenantId, deviceId); - String deviceName = deviceUpdateMsg.getName(); + Device device = isEdgeProtoDeprecated + ? createDevice(tenantId, deviceId, deviceUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); if (device == null) { + throw new RuntimeException("[{" + tenantId + "}] deviceUpdateMsg {" + deviceUpdateMsg + "} cannot be converted to device"); + } + Device deviceById = deviceService.findDeviceById(tenantId, deviceId); + if (deviceById == null) { created = true; - device = new Device(); - device.setTenantId(tenantId); - device.setCreatedTime(Uuids.unixTimestamp(deviceId.getId())); + device.setId(null); + } else { + device.setId(deviceId); } + String deviceName = device.getName(); Device deviceByName = deviceService.findDeviceByTenantIdAndName(tenantId, deviceName); if (deviceByName != null && !deviceByName.getId().equals(deviceId)) { deviceName = deviceName + "_" + StringUtils.randomAlphabetic(15); log.warn("[{}] Device with name {} already exists. Renaming device name to {}", - tenantId, deviceUpdateMsg.getName(), deviceName); + tenantId, device.getName(), deviceName); deviceNameUpdated = true; } device.setName(deviceName); - device.setType(deviceUpdateMsg.getType()); - device.setLabel(deviceUpdateMsg.hasLabel() ? deviceUpdateMsg.getLabel() : null); - device.setAdditionalInfo(deviceUpdateMsg.hasAdditionalInfo() - ? JacksonUtil.toJsonNode(deviceUpdateMsg.getAdditionalInfo()) : null); - - UUID deviceProfileUUID = safeGetUUID(deviceUpdateMsg.getDeviceProfileIdMSB(), deviceUpdateMsg.getDeviceProfileIdLSB()); - device.setDeviceProfileId(deviceProfileUUID != null ? new DeviceProfileId(deviceProfileUUID) : null); - - device.setCustomerId(customerId); + setCustomerId(tenantId, created ? null : deviceById.getCustomerId(), device, deviceUpdateMsg, isEdgeProtoDeprecated); - Optional deviceDataOpt = - dataDecodingEncodingService.decode(deviceUpdateMsg.getDeviceDataBytes().toByteArray()); - device.setDeviceData(deviceDataOpt.orElse(null)); - - UUID firmwareUUID = safeGetUUID(deviceUpdateMsg.getFirmwareIdMSB(), deviceUpdateMsg.getFirmwareIdLSB()); - device.setFirmwareId(firmwareUUID != null ? new OtaPackageId(firmwareUUID) : null); - - UUID softwareUUID = safeGetUUID(deviceUpdateMsg.getSoftwareIdMSB(), deviceUpdateMsg.getSoftwareIdLSB()); - device.setSoftwareId(softwareUUID != null ? new OtaPackageId(softwareUUID) : null); deviceValidator.validate(device, Device::getTenantId); if (created) { device.setId(deviceId); @@ -100,25 +91,53 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { } catch (Exception e) { log.error("[{}] Failed to process device update msg [{}]", tenantId, deviceUpdateMsg, e); throw e; - } finally { + } finally { deviceCreationLock.unlock(); } return Pair.of(created, deviceNameUpdated); } - protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg) { - DeviceId deviceId = new DeviceId(new UUID(deviceCredentialsUpdateMsg.getDeviceIdMSB(), deviceCredentialsUpdateMsg.getDeviceIdLSB())); - Device device = deviceService.findDeviceById(tenantId, deviceId); + private Device createDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg) { + Device device = new Device(); + device.setTenantId(tenantId); + device.setCreatedTime(Uuids.unixTimestamp(deviceId.getId())); + device.setName(deviceUpdateMsg.getName()); + device.setType(deviceUpdateMsg.getType()); + device.setLabel(deviceUpdateMsg.hasLabel() ? deviceUpdateMsg.getLabel() : null); + device.setAdditionalInfo(deviceUpdateMsg.hasAdditionalInfo() + ? JacksonUtil.toJsonNode(deviceUpdateMsg.getAdditionalInfo()) : null); + + UUID deviceProfileUUID = safeGetUUID(deviceUpdateMsg.getDeviceProfileIdMSB(), deviceUpdateMsg.getDeviceProfileIdLSB()); + device.setDeviceProfileId(deviceProfileUUID != null ? new DeviceProfileId(deviceProfileUUID) : null); + + Optional deviceDataOpt = dataDecodingEncodingService.decode(deviceUpdateMsg.getDeviceDataBytes().toByteArray()); + device.setDeviceData(deviceDataOpt.orElse(null)); + + UUID firmwareUUID = safeGetUUID(deviceUpdateMsg.getFirmwareIdMSB(), deviceUpdateMsg.getFirmwareIdLSB()); + device.setFirmwareId(firmwareUUID != null ? new OtaPackageId(firmwareUUID) : null); + UUID softwareUUID = safeGetUUID(deviceUpdateMsg.getSoftwareIdMSB(), deviceUpdateMsg.getSoftwareIdLSB()); + device.setSoftwareId(softwareUUID != null ? new OtaPackageId(softwareUUID) : null); + + return device; + } + + protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, EdgeVersion edgeVersion) { + DeviceCredentials deviceCredentials = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? createDeviceCredentials(deviceCredentialsUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); + if (deviceCredentials == null) { + throw new RuntimeException("[{" + tenantId + "}] deviceCredentialsUpdateMsg {" + deviceCredentialsUpdateMsg + "} cannot be converted to device credentials"); + } + Device device = deviceService.findDeviceById(tenantId, deviceCredentials.getDeviceId()); if (device != null) { log.debug("[{}] Updating device credentials for device [{}]. New device credentials Id [{}], value [{}]", - tenantId, device.getName(), deviceCredentialsUpdateMsg.getCredentialsId(), deviceCredentialsUpdateMsg.getCredentialsValue()); + tenantId, device.getName(), deviceCredentials.getCredentialsId(), deviceCredentials.getCredentialsValue()); try { - DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(tenantId, device.getId()); - deviceCredentials.setCredentialsType(DeviceCredentialsType.valueOf(deviceCredentialsUpdateMsg.getCredentialsType())); - deviceCredentials.setCredentialsId(deviceCredentialsUpdateMsg.getCredentialsId()); - deviceCredentials.setCredentialsValue(deviceCredentialsUpdateMsg.hasCredentialsValue() - ? deviceCredentialsUpdateMsg.getCredentialsValue() : null); - deviceCredentialsService.updateDeviceCredentials(tenantId, deviceCredentials); + DeviceCredentials deviceCredentialsByDeviceId = deviceCredentialsService.findDeviceCredentialsByDeviceId(tenantId, device.getId()); + deviceCredentialsByDeviceId.setCredentialsType(deviceCredentials.getCredentialsType()); + deviceCredentialsByDeviceId.setCredentialsId(deviceCredentials.getCredentialsId()); + deviceCredentialsByDeviceId.setCredentialsValue(deviceCredentials.getCredentialsValue()); + deviceCredentialsService.updateDeviceCredentials(tenantId, deviceCredentialsByDeviceId); } catch (Exception e) { log.error("[{}] Can't update device credentials for device [{}], deviceCredentialsUpdateMsg [{}]", @@ -126,7 +145,19 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { throw new RuntimeException(e); } } else { - log.warn("[{}] Can't find device by id [{}], deviceCredentialsUpdateMsg [{}]", tenantId, deviceId, deviceCredentialsUpdateMsg); + log.warn("[{}] Can't find device by id [{}], deviceCredentialsUpdateMsg [{}]", tenantId, deviceCredentials.getDeviceId(), deviceCredentialsUpdateMsg); } } + + private DeviceCredentials createDeviceCredentials(DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg) { + DeviceCredentials deviceCredentials = new DeviceCredentials(); + deviceCredentials.setDeviceId(new DeviceId(new UUID(deviceCredentialsUpdateMsg.getDeviceIdMSB(), deviceCredentialsUpdateMsg.getDeviceIdLSB()))); + deviceCredentials.setCredentialsType(DeviceCredentialsType.valueOf(deviceCredentialsUpdateMsg.getCredentialsType())); + deviceCredentials.setCredentialsId(deviceCredentialsUpdateMsg.getCredentialsId()); + deviceCredentials.setCredentialsValue(deviceCredentialsUpdateMsg.hasCredentialsValue() + ? deviceCredentialsUpdateMsg.getCredentialsValue() : null); + return deviceCredentials; + } + + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index bd35a42e59..a48a578e48 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -19,6 +19,7 @@ import com.datastax.oss.driver.api.core.uuid.Uuids; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.util.Pair; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.DeviceProfileProvisionType; import org.thingsboard.server.common.data.DeviceProfileType; @@ -27,6 +28,7 @@ import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.device.profile.DeviceProfileData; import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.OtaPackageId; +import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg; import org.thingsboard.server.queue.util.DataDecodingEncodingService; @@ -42,56 +44,37 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { + protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionProtoDeprecated) { boolean created = false; boolean deviceProfileNameUpdated = false; deviceCreationLock.lock(); try { - DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(tenantId, deviceProfileId); - String deviceProfileName = deviceProfileUpdateMsg.getName(); + DeviceProfile deviceProfile = isEdgeVersionProtoDeprecated + ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) + : JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); if (deviceProfile == null) { + throw new RuntimeException("[{" + tenantId + "}] deviceProfileUpdateMsg {" + deviceProfileUpdateMsg + "} cannot be converted to device profile"); + } + DeviceProfile deviceProfileById = deviceProfileService.findDeviceProfileById(tenantId, deviceProfileId); + if (deviceProfileById == null) { created = true; - deviceProfile = new DeviceProfile(); - deviceProfile.setTenantId(tenantId); - deviceProfile.setCreatedTime(Uuids.unixTimestamp(deviceProfileId.getId())); + deviceProfile.setId(null); + } else { + deviceProfile.setId(deviceProfileId); } + String deviceProfileName = deviceProfile.getName(); DeviceProfile deviceProfileByName = deviceProfileService.findDeviceProfileByName(tenantId, deviceProfileName); if (deviceProfileByName != null && !deviceProfileByName.getId().equals(deviceProfileId)) { deviceProfileName = deviceProfileName + "_" + StringUtils.randomAlphabetic(15); log.warn("[{}] Device profile with name {} already exists. Renaming device profile name to {}", - tenantId, deviceProfileUpdateMsg.getName(), deviceProfileName); + tenantId, deviceProfile.getName(), deviceProfileName); deviceProfileNameUpdated = true; } deviceProfile.setName(deviceProfileName); - deviceProfile.setDescription(deviceProfileUpdateMsg.hasDescription() ? deviceProfileUpdateMsg.getDescription() : null); - deviceProfile.setType(DeviceProfileType.valueOf(deviceProfileUpdateMsg.getType())); - deviceProfile.setTransportType(deviceProfileUpdateMsg.hasTransportType() - ? DeviceTransportType.valueOf(deviceProfileUpdateMsg.getTransportType()) : DeviceTransportType.DEFAULT); - deviceProfile.setImage(deviceProfileUpdateMsg.hasImage() - ? new String(deviceProfileUpdateMsg.getImage().toByteArray(), StandardCharsets.UTF_8) : null); - deviceProfile.setProvisionType(deviceProfileUpdateMsg.hasProvisionType() - ? DeviceProfileProvisionType.valueOf(deviceProfileUpdateMsg.getProvisionType()) : DeviceProfileProvisionType.DISABLED); - deviceProfile.setProvisionDeviceKey(deviceProfileUpdateMsg.hasProvisionDeviceKey() - ? deviceProfileUpdateMsg.getProvisionDeviceKey() : null); - deviceProfile.setDefaultQueueName(deviceProfileUpdateMsg.getDefaultQueueName()); - - Optional profileDataOpt = - dataDecodingEncodingService.decode(deviceProfileUpdateMsg.getProfileDataBytes().toByteArray()); - deviceProfile.setProfileData(profileDataOpt.orElse(null)); - - setDefaultRuleChainId(tenantId, deviceProfile, deviceProfileUpdateMsg); - setDefaultEdgeRuleChainId(tenantId, deviceProfile, deviceProfileUpdateMsg); - setDefaultDashboardId(tenantId, deviceProfile, deviceProfileUpdateMsg); - - String defaultQueueName = StringUtils.isNotBlank(deviceProfileUpdateMsg.getDefaultQueueName()) - ? deviceProfileUpdateMsg.getDefaultQueueName() : null; - deviceProfile.setDefaultQueueName(defaultQueueName); - - UUID firmwareUUID = safeGetUUID(deviceProfileUpdateMsg.getFirmwareIdMSB(), deviceProfileUpdateMsg.getFirmwareIdLSB()); - deviceProfile.setFirmwareId(firmwareUUID != null ? new OtaPackageId(firmwareUUID) : null); - UUID softwareUUID = safeGetUUID(deviceProfileUpdateMsg.getSoftwareIdMSB(), deviceProfileUpdateMsg.getSoftwareIdLSB()); - deviceProfile.setSoftwareId(softwareUUID != null ? new OtaPackageId(softwareUUID) : null); + setDefaultRuleChainId(tenantId, deviceProfile); + setDefaultEdgeRuleChainId(deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId(), deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); + setDefaultDashboardId(tenantId, deviceProfile, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); deviceProfileValidator.validate(deviceProfile, DeviceProfile::getTenantId); if (created) { @@ -107,9 +90,42 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { return Pair.of(created, deviceProfileNameUpdated); } - protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg); + private DeviceProfile createDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { + DeviceProfile deviceProfile = new DeviceProfile(); + deviceProfile.setTenantId(tenantId); + deviceProfile.setCreatedTime(Uuids.unixTimestamp(deviceProfileId.getId())); + deviceProfile.setName(deviceProfileUpdateMsg.getName()); + deviceProfile.setDescription(deviceProfileUpdateMsg.hasDescription() ? deviceProfileUpdateMsg.getDescription() : null); + deviceProfile.setType(DeviceProfileType.valueOf(deviceProfileUpdateMsg.getType())); + deviceProfile.setTransportType(deviceProfileUpdateMsg.hasTransportType() + ? DeviceTransportType.valueOf(deviceProfileUpdateMsg.getTransportType()) : DeviceTransportType.DEFAULT); + deviceProfile.setImage(deviceProfileUpdateMsg.hasImage() + ? new String(deviceProfileUpdateMsg.getImage().toByteArray(), StandardCharsets.UTF_8) : null); + deviceProfile.setProvisionType(deviceProfileUpdateMsg.hasProvisionType() + ? DeviceProfileProvisionType.valueOf(deviceProfileUpdateMsg.getProvisionType()) : DeviceProfileProvisionType.DISABLED); + deviceProfile.setProvisionDeviceKey(deviceProfileUpdateMsg.hasProvisionDeviceKey() + ? deviceProfileUpdateMsg.getProvisionDeviceKey() : null); + deviceProfile.setDefaultQueueName(deviceProfileUpdateMsg.getDefaultQueueName()); + + Optional profileDataOpt = + dataDecodingEncodingService.decode(deviceProfileUpdateMsg.getProfileDataBytes().toByteArray()); + deviceProfile.setProfileData(profileDataOpt.orElse(null)); + + String defaultQueueName = StringUtils.isNotBlank(deviceProfileUpdateMsg.getDefaultQueueName()) + ? deviceProfileUpdateMsg.getDefaultQueueName() : null; + deviceProfile.setDefaultQueueName(defaultQueueName); + + UUID firmwareUUID = safeGetUUID(deviceProfileUpdateMsg.getFirmwareIdMSB(), deviceProfileUpdateMsg.getFirmwareIdLSB()); + deviceProfile.setFirmwareId(firmwareUUID != null ? new OtaPackageId(firmwareUUID) : null); + + UUID softwareUUID = safeGetUUID(deviceProfileUpdateMsg.getSoftwareIdMSB(), deviceProfileUpdateMsg.getSoftwareIdLSB()); + deviceProfile.setSoftwareId(softwareUUID != null ? new OtaPackageId(softwareUUID) : null); + return deviceProfile; + } + + protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile); - protected abstract void setDefaultEdgeRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg); + protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); - protected abstract void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg); + protected abstract void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 910be10240..17eec5eb0c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -32,7 +32,6 @@ import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; @@ -43,6 +42,7 @@ import org.thingsboard.server.common.msg.TbMsg; import org.thingsboard.server.common.msg.TbMsgDataType; import org.thingsboard.server.common.msg.TbMsgMetaData; import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponse; +import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; @@ -54,7 +54,7 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueMsgMetadata; import org.thingsboard.server.queue.util.TbCoreComponent; -import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -63,7 +63,7 @@ import java.util.UUID; @TbCoreComponent public class DeviceEdgeProcessor extends BaseDeviceProcessor { - public ListenableFuture processDeviceMsgFromEdge(TenantId tenantId, Edge edge, DeviceUpdateMsg deviceUpdateMsg) { + public ListenableFuture processDeviceMsgFromEdge(TenantId tenantId, Edge edge, DeviceUpdateMsg deviceUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processDeviceMsgFromEdge [{}] from edge [{}]", tenantId, deviceUpdateMsg, edge.getId()); DeviceId deviceId = new DeviceId(new UUID(deviceUpdateMsg.getIdMSB(), deviceUpdateMsg.getIdLSB())); try { @@ -72,7 +72,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { switch (deviceUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, edge); + saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, edge, edgeVersion); return saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.DEVICE, EdgeEventActionType.CREDENTIALS_REQUEST, deviceId, null); case ENTITY_DELETED_RPC_MESSAGE: Device deviceToDelete = deviceService.findDeviceById(tenantId, deviceId); @@ -108,9 +108,9 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { return Futures.immediateFuture(null); } - private void saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, Edge edge) { - CustomerId customerId = safeGetCustomerId(deviceUpdateMsg.getCustomerIdMSB(), deviceUpdateMsg.getCustomerIdLSB()); - Pair resultPair = super.saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, customerId); + private void saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + Pair resultPair = super.saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), deviceId); @@ -228,14 +228,14 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { if (device != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); DeviceUpdateMsg deviceUpdateMsg = - deviceMsgConstructor.constructDeviceUpdatedMsg(msgType, device); + deviceMsgConstructor.constructDeviceUpdatedMsg(msgType, device, edgeVersion); DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceUpdateMsg(deviceUpdateMsg); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(edgeEvent.getTenantId(), device.getDeviceProfileId()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); - builder.addDeviceProfileUpdateMsg(deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile)); + builder.addDeviceProfileUpdateMsg(deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile, edgeVersion)); } downlinkMsg = builder.build(); } @@ -253,7 +253,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(edgeEvent.getTenantId(), deviceId); if (deviceCredentials != null) { DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = - deviceMsgConstructor.constructDeviceCredentialsUpdatedMsg(deviceCredentials); + deviceMsgConstructor.constructDeviceCredentialsUpdatedMsg(deviceCredentials, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 3ed75bdb41..523422bec7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -40,6 +40,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -48,7 +49,7 @@ import java.util.UUID; @TbCoreComponent public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { - public ListenableFuture processDeviceProfileMsgFromEdge(TenantId tenantId, Edge edge, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { + public ListenableFuture processDeviceProfileMsgFromEdge(TenantId tenantId, Edge edge, DeviceProfileUpdateMsg deviceProfileUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processDeviceProfileMsgFromEdge [{}] from edge [{}]", tenantId, deviceProfileUpdateMsg, edge.getId()); DeviceProfileId deviceProfileId = new DeviceProfileId(new UUID(deviceProfileUpdateMsg.getIdMSB(), deviceProfileUpdateMsg.getIdLSB())); try { @@ -57,7 +58,7 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { switch (deviceProfileUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg, edge); + saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg, edge, edgeVersion); return Futures.immediateFuture(null); case ENTITY_DELETED_RPC_MESSAGE: case UNRECOGNIZED: @@ -72,8 +73,9 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } } - private void saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, Edge edge) { - Pair resultPair = super.saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg); + private void saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + Pair resultPair = super.saveOrUpdateDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), deviceProfileId); @@ -107,7 +109,7 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); DeviceProfileUpdateMsg deviceProfileUpdateMsg = - deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile); + deviceProfileMsgConstructor.constructDeviceProfileUpdatedMsg(msgType, deviceProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addDeviceProfileUpdateMsg(deviceProfileUpdateMsg) @@ -127,19 +129,24 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } @Override - protected void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { + protected void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile) { // do nothing on cloud } @Override - protected void setDefaultEdgeRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { - UUID defaultEdgeRuleChainUUID = safeGetUUID(deviceProfileUpdateMsg.getDefaultRuleChainIdMSB(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()); + protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated + ? safeGetUUID(deviceProfileUpdateMsg.getDefaultRuleChainIdMSB(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()) + : deviceProfile.getDefaultRuleChainId() != null ? deviceProfile.getDefaultRuleChainId().getId() : null; deviceProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); + deviceProfile.setDefaultRuleChainId(ruleChainId); } @Override - protected void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg) { - UUID defaultDashboardUUID = safeGetUUID(deviceProfileUpdateMsg.getDefaultDashboardIdMSB(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()); + protected void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + UUID defaultDashboardUUID = isEdgeVersionDeprecated + ? safeGetUUID(deviceProfileUpdateMsg.getDefaultDashboardIdMSB(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()) + : deviceProfile.getDefaultDashboardId() != null ? deviceProfile.getDefaultDashboardId().getId() : null; deviceProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index cca0057707..3d13b7a044 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -35,42 +35,59 @@ import java.util.UUID; @Slf4j public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, CustomerId customerId) { + protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; boolean entityViewNameUpdated = false; - EntityView entityView = entityViewService.findEntityViewById(tenantId, entityViewId); - String entityViewName = entityViewUpdateMsg.getName(); + EntityView entityView = isEdgeProtoDeprecated + ? createEntityView(tenantId, entityViewId, entityViewUpdateMsg) + : JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); if (entityView == null) { + throw new RuntimeException("[{" + tenantId + "}] entityViewUpdateMsg {" + entityViewUpdateMsg + "} cannot be converted to entity view"); + } + EntityView entityViewById = entityViewService.findEntityViewById(tenantId, entityViewId); + if (entityViewById == null) { created = true; - entityView = new EntityView(); - entityView.setTenantId(tenantId); - entityView.setCreatedTime(Uuids.unixTimestamp(entityViewId.getId())); + entityView.setId(null); + } else { + entityView.setId(entityViewId); } + String entityViewName = entityView.getName(); EntityView entityViewByName = entityViewService.findEntityViewByTenantIdAndName(tenantId, entityViewName); if (entityViewByName != null && !entityViewByName.getId().equals(entityViewId)) { entityViewName = entityViewName + "_" + StringUtils.randomAlphanumeric(15); log.warn("[{}] Entity view with name {} already exists. Renaming entity view name to {}", - tenantId, entityViewUpdateMsg.getName(), entityViewName); + tenantId, entityView.getName(), entityViewName); entityViewNameUpdated = true; } entityView.setName(entityViewName); + + entityViewValidator.validate(entityView, EntityView::getTenantId); + if (created) { + entityView.setId(entityViewId); + } + entityViewService.saveEntityView(entityView, false); + return Pair.of(created, entityViewNameUpdated); + } + + private EntityView createEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg) { + EntityView entityView = new EntityView(); + entityView.setTenantId(tenantId); + entityView.setCreatedTime(Uuids.unixTimestamp(entityViewId.getId())); + entityView.setName(entityViewUpdateMsg.getName()); entityView.setType(entityViewUpdateMsg.getType()); - entityView.setCustomerId(customerId); + entityView.setAdditionalInfo(entityViewUpdateMsg.hasAdditionalInfo() ? JacksonUtil.toJsonNode(entityViewUpdateMsg.getAdditionalInfo()) : null); + CustomerId customerId = safeGetCustomerId(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()); + entityView.setCustomerId(customerId); + UUID entityIdUUID = safeGetUUID(entityViewUpdateMsg.getEntityIdMSB(), entityViewUpdateMsg.getEntityIdLSB()); if (EdgeEntityType.DEVICE.equals(entityViewUpdateMsg.getEntityType())) { entityView.setEntityId(entityIdUUID != null ? new DeviceId(entityIdUUID) : null); } else if (EdgeEntityType.ASSET.equals(entityViewUpdateMsg.getEntityType())) { entityView.setEntityId(entityIdUUID != null ? new AssetId(entityIdUUID) : null); } - - entityViewValidator.validate(entityView, EntityView::getTenantId); - if (created) { - entityView.setId(entityViewId); - } - entityViewService.saveEntityView(entityView, false); - return Pair.of(created, entityViewNameUpdated); + return entityView; } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index cd3a0b35ad..41996d8afb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -27,16 +27,17 @@ import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; -import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; import org.thingsboard.server.common.msg.TbMsgMetaData; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -45,7 +46,7 @@ import java.util.UUID; @TbCoreComponent public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { - public ListenableFuture processEntityViewMsgFromEdge(TenantId tenantId, Edge edge, EntityViewUpdateMsg entityViewUpdateMsg) { + public ListenableFuture processEntityViewMsgFromEdge(TenantId tenantId, Edge edge, EntityViewUpdateMsg entityViewUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processEntityViewMsgFromEdge [{}] from edge [{}]", tenantId, entityViewUpdateMsg, edge.getId()); EntityViewId entityViewId = new EntityViewId(new UUID(entityViewUpdateMsg.getIdMSB(), entityViewUpdateMsg.getIdLSB())); try { @@ -54,7 +55,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { switch (entityViewUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, edge); + saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, edge, edgeVersion); return Futures.immediateFuture(null); case ENTITY_DELETED_RPC_MESSAGE: EntityView entityViewToDelete = entityViewService.findEntityViewById(tenantId, entityViewId); @@ -78,9 +79,9 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } } - private void saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, Edge edge) { - CustomerId customerId = safeGetCustomerId(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()); - Pair resultPair = super.saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, customerId); + private void saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, Edge edge, EdgeVersion edgeVersion) { + Pair resultPair = super.saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); Boolean created = resultPair.getFirst(); if (created) { createRelationFromEdge(tenantId, edge.getId(), entityViewId); @@ -104,7 +105,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } } - public DownlinkMsg convertEntityViewEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertEntityViewEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { EntityViewId entityViewId = new EntityViewId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -117,7 +118,7 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { if (entityView != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); EntityViewUpdateMsg entityViewUpdateMsg = - entityViewMsgConstructor.constructEntityViewUpdatedMsg(msgType, entityView); + entityViewMsgConstructor.constructEntityViewUpdatedMsg(msgType, entityView, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addEntityViewUpdateMsg(entityViewUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java index fae6399e3a..3c710fd3ee 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/ota/OtaPackageEdgeProcessor.java @@ -22,6 +22,7 @@ import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -32,7 +33,7 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @TbCoreComponent public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertOtaPackageEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertOtaPackageEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { OtaPackageId otaPackageId = new OtaPackageId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -42,7 +43,7 @@ public class OtaPackageEdgeProcessor extends BaseEdgeProcessor { if (otaPackage != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); OtaPackageUpdateMsg otaPackageUpdateMsg = - otaPackageMsgConstructor.constructOtaPackageUpdatedMsg(msgType, otaPackage); + otaPackageMsgConstructor.constructOtaPackageUpdatedMsg(msgType, otaPackage, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addOtaPackageUpdateMsg(otaPackageUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java index 8562582940..0df98dbcac 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java @@ -22,6 +22,7 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.QueueUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -32,7 +33,7 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @TbCoreComponent public class QueueEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertQueueEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertQueueEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { QueueId queueId = new QueueId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -42,7 +43,7 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { if (queue != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); QueueUpdateMsg queueUpdateMsg = - queueMsgConstructor.constructQueueUpdatedMsg(msgType, queue); + queueMsgConstructor.constructQueueUpdatedMsg(msgType, queue, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addQueueUpdateMsg(queueUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java index 952affdc3d..d673b1a613 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java @@ -25,41 +25,35 @@ import org.thingsboard.server.common.data.id.EntityIdFactory; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseRelationProcessor extends BaseEdgeProcessor { - protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg) { + protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg, EdgeVersion edgeVersion) { + log.trace("[{}] processRelationMsg [{}]", tenantId, relationUpdateMsg); try { - EntityRelation entityRelation = new EntityRelation(); - - UUID fromUUID = new UUID(relationUpdateMsg.getFromIdMSB(), relationUpdateMsg.getFromIdLSB()); - EntityId fromId = EntityIdFactory.getByTypeAndUuid(EntityType.valueOf(relationUpdateMsg.getFromEntityType()), fromUUID); - entityRelation.setFrom(fromId); - - UUID toUUID = new UUID(relationUpdateMsg.getToIdMSB(), relationUpdateMsg.getToIdLSB()); - EntityId toId = EntityIdFactory.getByTypeAndUuid(EntityType.valueOf(relationUpdateMsg.getToEntityType()), toUUID); - entityRelation.setTo(toId); - - entityRelation.setType(relationUpdateMsg.getType()); - entityRelation.setTypeGroup(relationUpdateMsg.hasTypeGroup() - ? RelationTypeGroup.valueOf(relationUpdateMsg.getTypeGroup()) : RelationTypeGroup.COMMON); - entityRelation.setAdditionalInfo(JacksonUtil.toJsonNode(relationUpdateMsg.getAdditionalInfo())); + EntityRelation entityRelation = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + ? createEntityRelation(relationUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); + if (entityRelation == null) { + throw new RuntimeException("[{" + tenantId + "}] relationUpdateMsg {" + relationUpdateMsg + "} cannot be converted to entity relation"); + } switch (relationUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: if (isEntityExists(tenantId, entityRelation.getTo()) && isEntityExists(tenantId, entityRelation.getFrom())) { relationService.saveRelation(tenantId, entityRelation); - break; } else { log.warn("[{}] Skipping relating update msg because from/to entity doesn't exists on edge, {}", tenantId, relationUpdateMsg); - break; } + break; case ENTITY_DELETED_RPC_MESSAGE: relationService.deleteRelation(tenantId, entityRelation); break; @@ -73,4 +67,22 @@ public abstract class BaseRelationProcessor extends BaseEdgeProcessor { } return Futures.immediateFuture(null); } + + private EntityRelation createEntityRelation(RelationUpdateMsg relationUpdateMsg) { + EntityRelation entityRelation = new EntityRelation(); + + UUID fromUUID = new UUID(relationUpdateMsg.getFromIdMSB(), relationUpdateMsg.getFromIdLSB()); + EntityId fromId = EntityIdFactory.getByTypeAndUuid(EntityType.valueOf(relationUpdateMsg.getFromEntityType()), fromUUID); + entityRelation.setFrom(fromId); + + UUID toUUID = new UUID(relationUpdateMsg.getToIdMSB(), relationUpdateMsg.getToIdLSB()); + EntityId toId = EntityIdFactory.getByTypeAndUuid(EntityType.valueOf(relationUpdateMsg.getToEntityType()), toUUID); + entityRelation.setTo(toId); + + entityRelation.setType(relationUpdateMsg.getType()); + entityRelation.setTypeGroup(relationUpdateMsg.hasTypeGroup() + ? RelationTypeGroup.valueOf(relationUpdateMsg.getTypeGroup()) : RelationTypeGroup.COMMON); + entityRelation.setAdditionalInfo(JacksonUtil.toJsonNode(relationUpdateMsg.getAdditionalInfo())); + return entityRelation; + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index b3676e8d82..84065d1c8a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -30,6 +30,7 @@ import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; @@ -56,10 +57,10 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { } } - public DownlinkMsg convertRelationEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertRelationEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { EntityRelation entityRelation = JacksonUtil.convertValue(edgeEvent.getBody(), EntityRelation.class); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - RelationUpdateMsg relationUpdateMsg = relationMsgConstructor.constructRelationUpdatedMsg(msgType, entityRelation); + RelationUpdateMsg relationUpdateMsg = relationMsgConstructor.constructRelationUpdatedMsg(msgType, entityRelation, edgeVersion); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRelationUpdateMsg(relationUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java index ba6fc1ef97..d480f9e4cd 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/rule/RuleChainEdgeProcessor.java @@ -37,7 +37,7 @@ import static org.thingsboard.server.service.edge.DefaultEdgeNotificationService @TbCoreComponent public class RuleChainEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertRuleChainEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertRuleChainEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { RuleChainId ruleChainId = new RuleChainId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -54,7 +54,7 @@ public class RuleChainEdgeProcessor extends BaseEdgeProcessor { } UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); RuleChainUpdateMsg ruleChainUpdateMsg = - ruleChainMsgConstructor.constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot); + ruleChainMsgConstructor.constructRuleChainUpdatedMsg(msgType, ruleChain, isRoot, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addRuleChainUpdateMsg(ruleChainUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java index bbd9edd172..735c4de399 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/settings/AdminSettingsEdgeProcessor.java @@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.EdgeUtils; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @@ -31,16 +32,15 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @TbCoreComponent public class AdminSettingsEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertAdminSettingsEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertAdminSettingsEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { AdminSettings adminSettings = JacksonUtil.convertValue(edgeEvent.getBody(), AdminSettings.class); if (adminSettings == null) { return null; } - AdminSettingsUpdateMsg adminSettingsUpdateMsg = adminSettingsMsgConstructor.constructAdminSettingsUpdateMsg(adminSettings); + AdminSettingsUpdateMsg adminSettingsUpdateMsg = adminSettingsMsgConstructor.constructAdminSettingsUpdateMsg(adminSettings, edgeVersion); return DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addAdminSettingsUpdateMsg(adminSettingsUpdateMsg) .build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java index 9fd08b4447..f4b0c5a355 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/tenant/TenantEdgeProcessor.java @@ -43,7 +43,7 @@ public class TenantEdgeProcessor extends BaseEdgeProcessor { Tenant tenant = tenantService.findTenantById(tenantId); if (tenant != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); - TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructor.constructTenantUpdateMsg(msgType, tenant); + TenantUpdateMsg tenantUpdateMsg = tenantMsgConstructor.constructTenantUpdateMsg(msgType, tenant, edgeVersion); TenantProfile tenantProfile = tenantProfileService.findTenantProfileById(tenantId, tenant.getTenantProfileId()); TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileMsgConstructor.constructTenantProfileUpdateMsg(msgType, tenantProfile, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java index de40fdb1a3..3a3b00f4c8 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java @@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -33,7 +34,7 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @TbCoreComponent public class UserEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertUserEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertUserEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { UserId userId = new UserId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -44,7 +45,7 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) - .addUserUpdateMsg(userMsgConstructor.constructUserUpdatedMsg(msgType, user)) + .addUserUpdateMsg(userMsgConstructor.constructUserUpdatedMsg(msgType, user, edgeVersion)) .build(); } break; @@ -58,7 +59,7 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { UserCredentials userCredentialsByUserId = userService.findUserCredentialsByUserId(edgeEvent.getTenantId(), userId); if (userCredentialsByUserId != null && userCredentialsByUserId.isEnabled()) { UserCredentialsUpdateMsg userCredentialsUpdateMsg = - userMsgConstructor.constructUserCredentialsUpdatedMsg(userCredentialsByUserId); + userMsgConstructor.constructUserCredentialsUpdatedMsg(userCredentialsByUserId, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addUserCredentialsUpdateMsg(userCredentialsUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java index 877ece1b15..abef3a1ab5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/widget/WidgetBundleEdgeProcessor.java @@ -22,6 +22,7 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -34,7 +35,7 @@ import java.util.List; @TbCoreComponent public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { - public DownlinkMsg convertWidgetsBundleEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertWidgetsBundleEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { WidgetsBundleId widgetsBundleId = new WidgetsBundleId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -45,7 +46,7 @@ public class WidgetBundleEdgeProcessor extends BaseEdgeProcessor { List widgets = widgetTypeService.findWidgetFqnsByWidgetsBundleId(edgeEvent.getTenantId(), widgetsBundleId); UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = - widgetsBundleMsgConstructor.constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); + widgetsBundleMsgConstructor.constructWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addWidgetsBundleUpdateMsg(widgetsBundleUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/utils/EdgeVersionUtils.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/utils/EdgeVersionUtils.java index c9e6987a23..dc66e50748 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/utils/EdgeVersionUtils.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/utils/EdgeVersionUtils.java @@ -24,4 +24,8 @@ public final class EdgeVersionUtils { public static boolean isEdgeVersionOlderThan(EdgeVersion currentVersion, EdgeVersion requiredVersion) { return currentVersion.ordinal() < requiredVersion.ordinal(); } + + public static boolean isEdgeVersionOlderThan_3_6_2(EdgeVersion currentVersion) { + return isEdgeVersionOlderThan(currentVersion, EdgeVersion.V_3_6_2); + } } diff --git a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java index f0c47bb53a..1f7715ddc2 100644 --- a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java @@ -37,14 +37,18 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ThingsBoardExecutors; +import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.Device; +import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.asset.Asset; +import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; @@ -53,6 +57,8 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantProfileId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.queue.Queue; +import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.common.data.security.model.JwtSettings; import org.thingsboard.server.dao.edge.EdgeDao; @@ -78,7 +84,6 @@ import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.UUID; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; @@ -121,7 +126,7 @@ public class EdgeControllerTest extends AbstractControllerTest { } @After - public void teardownEdgeTest() throws Exception { + public void teardownEdgeTest() { executor.shutdownNow(); } @@ -204,15 +209,13 @@ public class EdgeControllerTest extends AbstractControllerTest { @Test public void testFindEdgeTypesByTenantId() throws Exception { - List edges = new ArrayList<>(); - int cntEntity = 3; Mockito.reset(tbClusterService, auditLogService); for (int i = 0; i < cntEntity; i++) { Edge edge = constructEdge("My edge B" + i, "typeB"); - edges.add(doPost("/api/edge", edge, Edge.class)); + doPost("/api/edge", edge, Edge.class); } testNotifyManyEntityManyTimeMsgToEdgeServiceNeverAdditionalInfoAny(new Edge(), new Edge(), @@ -221,11 +224,11 @@ public class EdgeControllerTest extends AbstractControllerTest { for (int i = 0; i < 7; i++) { Edge edge = constructEdge("My edge C" + i, "typeC"); - edges.add(doPost("/api/edge", edge, Edge.class)); + doPost("/api/edge", edge, Edge.class); } for (int i = 0; i < 9; i++) { Edge edge = constructEdge("My edge A" + i, "typeA"); - edges.add(doPost("/api/edge", edge, Edge.class)); + doPost("/api/edge", edge, Edge.class); } List edgeTypes = doGetTyped("/api/edge/types", new TypeReference<>() { @@ -395,7 +398,7 @@ public class EdgeControllerTest extends AbstractControllerTest { List edges = new ArrayList<>(Futures.allAsList(futures).get(TIMEOUT, TimeUnit.SECONDS)); List loadedEdges = new ArrayList<>(); PageLink pageLink = new PageLink(23); - PageData pageData = null; + PageData pageData; do { pageData = doGetTypedWithPageLink("/api/tenant/edges?", new TypeReference<>() { @@ -442,10 +445,10 @@ public class EdgeControllerTest extends AbstractControllerTest { List loadedEdgesTitle1 = new ArrayList<>(); PageLink pageLink = new PageLink(15, 0, title1); - PageData pageData = null; + PageData pageData; do { pageData = doGetTypedWithPageLink("/api/tenant/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); loadedEdgesTitle1.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -462,7 +465,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title2); do { pageData = doGetTypedWithPageLink("/api/tenant/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); loadedEdgesTitle2.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -532,10 +535,10 @@ public class EdgeControllerTest extends AbstractControllerTest { List loadedEdgesType1 = new ArrayList<>(); PageLink pageLink = new PageLink(15); - PageData pageData = null; + PageData pageData; do { pageData = doGetTypedWithPageLink("/api/tenant/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type1); loadedEdgesType1.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -552,7 +555,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4); do { pageData = doGetTypedWithPageLink("/api/tenant/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type2); loadedEdgesType2.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -572,7 +575,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4); pageData = doGetTypedWithPageLink("/api/tenant/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type1); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -584,7 +587,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4); pageData = doGetTypedWithPageLink("/api/tenant/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type2); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -613,15 +616,14 @@ public class EdgeControllerTest extends AbstractControllerTest { testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new Edge(), new Edge(), tenantId, customerId, tenantAdminUser.getId(), tenantAdminUser.getEmail(), - ActionType.ASSIGNED_TO_CUSTOMER, cntEntity, cntEntity, cntEntity * 2, - new String(), new String(), new String()); + ActionType.ASSIGNED_TO_CUSTOMER, cntEntity, cntEntity, cntEntity * 2, "", "", ""); List loadedEdges = new ArrayList<>(); PageLink pageLink = new PageLink(23); PageData pageData = null; do { pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); loadedEdges.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -679,7 +681,7 @@ public class EdgeControllerTest extends AbstractControllerTest { PageData pageData = null; do { pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); loadedEdgesTitle1.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -696,7 +698,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title2); do { pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); loadedEdgesTitle2.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -723,7 +725,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title1); pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -735,7 +737,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title2); pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?", - new TypeReference>() { + new TypeReference<>() { }, pageLink); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -784,10 +786,10 @@ public class EdgeControllerTest extends AbstractControllerTest { List loadedEdgesType1 = new ArrayList<>(); PageLink pageLink = new PageLink(15, 0, title1); - PageData pageData = null; + PageData pageData; do { pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type1); loadedEdgesType1.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -804,7 +806,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title2); do { pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type2); loadedEdgesType2.addAll(pageData.getData()); if (pageData.hasNext()) { @@ -824,7 +826,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title1); pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type1); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -836,7 +838,7 @@ public class EdgeControllerTest extends AbstractControllerTest { pageLink = new PageLink(4, 0, title2); pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?type={type}&", - new TypeReference>() { + new TypeReference<>() { }, pageLink, type2); Assert.assertFalse(pageData.hasNext()); Assert.assertEquals(0, pageData.getData().size()); @@ -936,8 +938,9 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof QueueUpdateMsg) { QueueUpdateMsg queueUpdateMsg = (QueueUpdateMsg) message; - if (msgType.equals(queueUpdateMsg.getMsgType()) - && name.equals(queueUpdateMsg.getName())) { + Queue queue = JacksonUtil.fromStringIgnoreUnknownProperties(queueUpdateMsg.getEntity(), Queue.class); + Assert.assertNotNull(queue); + if (msgType.equals(queueUpdateMsg.getMsgType()) && name.equals(queue.getName())) { messages.remove(message); return true; } @@ -950,9 +953,11 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof RuleChainUpdateMsg) { RuleChainUpdateMsg ruleChainUpdateMsg = (RuleChainUpdateMsg) message; + RuleChain ruleChain = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainUpdateMsg.getEntity(), RuleChain.class); + Assert.assertNotNull(ruleChain); if (msgType.equals(ruleChainUpdateMsg.getMsgType()) - && name.equals(ruleChainUpdateMsg.getName()) - && ruleChainUpdateMsg.getRoot()) { + && name.equals(ruleChain.getName()) + && ruleChain.isRoot()) { messages.remove(message); return true; } @@ -965,7 +970,9 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof AdminSettingsUpdateMsg) { AdminSettingsUpdateMsg adminSettingsUpdateMsg = (AdminSettingsUpdateMsg) message; - if (key.equals(adminSettingsUpdateMsg.getKey())) { + AdminSettings adminSettings = JacksonUtil.fromStringIgnoreUnknownProperties(adminSettingsUpdateMsg.getEntity(), AdminSettings.class); + Assert.assertNotNull(adminSettings); + if (key.equals(adminSettings.getKey())) { messages.remove(message); return true; } @@ -978,8 +985,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof DeviceProfileUpdateMsg) { DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) message; + DeviceProfile deviceProfile = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfile); if (msgType.equals(deviceProfileUpdateMsg.getMsgType()) - && name.equals(deviceProfileUpdateMsg.getName())) { + && name.equals(deviceProfile.getName())) { messages.remove(message); return true; } @@ -992,8 +1001,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof DeviceUpdateMsg) { DeviceUpdateMsg deviceUpdateMsg = (DeviceUpdateMsg) message; + Device device = JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(device); if (msgType.equals(deviceUpdateMsg.getMsgType()) - && name.equals(deviceUpdateMsg.getName())) { + && name.equals(device.getName())) { messages.remove(message); return true; } @@ -1006,8 +1017,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof AssetProfileUpdateMsg) { AssetProfileUpdateMsg assetProfileUpdateMsg = (AssetProfileUpdateMsg) message; + AssetProfile assetProfile = JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + Assert.assertNotNull(assetProfile); if (msgType.equals(assetProfileUpdateMsg.getMsgType()) - && name.equals(assetProfileUpdateMsg.getName())) { + && name.equals(assetProfile.getName())) { messages.remove(message); return true; } @@ -1020,8 +1033,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof AssetUpdateMsg) { AssetUpdateMsg assetUpdateMsg = (AssetUpdateMsg) message; + Asset asset = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(asset); if (msgType.equals(assetUpdateMsg.getMsgType()) - && name.equals(assetUpdateMsg.getName())) { + && name.equals(asset.getName())) { messages.remove(message); return true; } @@ -1034,9 +1049,11 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof UserUpdateMsg) { UserUpdateMsg userUpdateMsg = (UserUpdateMsg) message; + User user = JacksonUtil.fromStringIgnoreUnknownProperties(userUpdateMsg.getEntity(), User.class); + Assert.assertNotNull(user); if (msgType.equals(userUpdateMsg.getMsgType()) - && email.equals(userUpdateMsg.getEmail()) - && authority.name().equals(userUpdateMsg.getAuthority())) { + && email.equals(user.getEmail()) + && authority.equals(user.getAuthority())) { messages.remove(message); return true; } @@ -1049,8 +1066,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof CustomerUpdateMsg) { CustomerUpdateMsg customerUpdateMsg = (CustomerUpdateMsg) message; + Customer customer = JacksonUtil.fromStringIgnoreUnknownProperties(customerUpdateMsg.getEntity(), Customer.class); + Assert.assertNotNull(customer); if (msgType.equals(customerUpdateMsg.getMsgType()) - && title.equals(customerUpdateMsg.getTitle())) { + && title.equals(customer.getTitle())) { messages.remove(message); return true; } @@ -1063,9 +1082,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof TenantUpdateMsg) { TenantUpdateMsg tenantUpdateMsg = (TenantUpdateMsg) message; - TenantId tenantIdMsg = new TenantId(new UUID(tenantUpdateMsg.getIdMSB(), tenantUpdateMsg.getIdLSB())); + Tenant tenant = JacksonUtil.fromStringIgnoreUnknownProperties(tenantUpdateMsg.getEntity(), Tenant.class); + Assert.assertNotNull(tenant); if (UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE.equals(tenantUpdateMsg.getMsgType()) - && tenantId1.equals(tenantIdMsg)) { + && tenantId1.equals(tenant.getId())) { messages.remove(message); return true; } @@ -1078,9 +1098,10 @@ public class EdgeControllerTest extends AbstractControllerTest { for (AbstractMessage message : messages) { if (message instanceof TenantProfileUpdateMsg) { TenantProfileUpdateMsg tenantProfileUpdateMsg = (TenantProfileUpdateMsg) message; - TenantProfileId tenantProfileIdMsg = new TenantProfileId(new UUID(tenantProfileUpdateMsg.getIdMSB(), tenantProfileUpdateMsg.getIdLSB())); + TenantProfile tenantProfile = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfile); if (UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE.equals(tenantProfileUpdateMsg.getMsgType()) - && tenantProfileId.equals(tenantProfileIdMsg)) { + && tenantProfileId.equals(tenantProfile.getId())) { messages.remove(message); return true; } diff --git a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java index 2771a71eac..b2bce41bf6 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.TestPropertySource; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.cluster.TbClusterService; +import org.thingsboard.server.common.data.AdminSettings; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.DataConstants; @@ -38,6 +39,7 @@ import org.thingsboard.server.common.data.OtaPackageInfo; import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.Tenant; +import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.AlarmSeverity; import org.thingsboard.server.common.data.asset.Asset; @@ -70,6 +72,7 @@ import org.thingsboard.server.common.data.query.FilterPredicateValue; import org.thingsboard.server.common.data.query.NumericFilterPredicate; import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.common.data.rule.RuleChain; +import org.thingsboard.server.common.data.rule.RuleChainMetaData; import org.thingsboard.server.common.data.rule.RuleChainType; import org.thingsboard.server.common.data.security.model.JwtSettings; import org.thingsboard.server.controller.AbstractControllerTest; @@ -318,8 +321,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertTrue(tenantUpdateMsgOpt.isPresent()); TenantUpdateMsg tenantUpdateMsg = tenantUpdateMsgOpt.get(); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantUpdateMsg.getMsgType()); - UUID tenantUUID = new UUID(tenantUpdateMsg.getIdMSB(), tenantUpdateMsg.getIdLSB()); - Tenant tenant = doGet("/api/tenant/" + tenantUUID, Tenant.class); + Tenant tenantMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantUpdateMsg.getEntity(), Tenant.class); + Assert.assertNotNull(tenantMsg); + Tenant tenant = doGet("/api/tenant/" + tenantMsg.getUuidId(), Tenant.class); Assert.assertNotNull(tenant); testAutoGeneratedCodeByProtobuf(tenantUpdateMsg); } @@ -329,10 +333,11 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantProfileUpdateMsg.getMsgType()); - UUID tenantProfileUUID = new UUID(tenantProfileUpdateMsg.getIdMSB(), tenantProfileUpdateMsg.getIdLSB()); + TenantProfile tenantProfile = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfile); Tenant tenant = doGet("/api/tenant/" + tenantId.getId(), Tenant.class); Assert.assertNotNull(tenant); - Assert.assertEquals(tenantProfileUUID, tenant.getTenantProfileId().getId()); + Assert.assertEquals(tenantProfile.getId(), tenant.getTenantProfileId()); testAutoGeneratedCodeByProtobuf(tenantProfileUpdateMsg); } @@ -344,7 +349,11 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { // thermostat msg from device fetcher Assert.assertEquals(expectedMsgCnt, deviceProfileUpdateMsgList.size()); Optional thermostatProfileUpdateMsgOpt = - deviceProfileUpdateMsgList.stream().filter(dfum -> THERMOSTAT_DEVICE_PROFILE_NAME.equals(dfum.getName())).findAny(); + deviceProfileUpdateMsgList.stream().filter(dfum -> { + DeviceProfile deviceProfile = JacksonUtil.fromStringIgnoreUnknownProperties(dfum.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfile); + return THERMOSTAT_DEVICE_PROFILE_NAME.equals(deviceProfile.getName()); + }).findAny(); Assert.assertTrue(thermostatProfileUpdateMsgOpt.isPresent()); DeviceProfileUpdateMsg thermostatProfileUpdateMsg = thermostatProfileUpdateMsgOpt.get(); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, thermostatProfileUpdateMsg.getMsgType()); @@ -419,8 +428,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertTrue(ruleChainMetadataUpdateOpt.isPresent()); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = ruleChainMetadataUpdateOpt.get(); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetadataUpdateMsg.getMsgType()); - UUID ruleChainUUID = new UUID(ruleChainMetadataUpdateMsg.getRuleChainIdMSB(), ruleChainMetadataUpdateMsg.getRuleChainIdLSB()); - Assert.assertEquals(expectedRuleChainUUID, ruleChainUUID); + RuleChainMetaData ruleChainMetaData = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); + Assert.assertNotNull(ruleChainMetaData); + Assert.assertEquals(expectedRuleChainUUID, ruleChainMetaData.getRuleChainId().getId()); } private void validateAdminSettings(int expectedMsgCnt) { @@ -428,25 +438,26 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertEquals(expectedMsgCnt, adminSettingsUpdateMsgs.size()); for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : adminSettingsUpdateMsgs) { - if (adminSettingsUpdateMsg.getKey().equals("general")) { - validateGeneralAdminSettings(adminSettingsUpdateMsg); + AdminSettings adminSettings = JacksonUtil.fromStringIgnoreUnknownProperties(adminSettingsUpdateMsg.getEntity(), AdminSettings.class); + Assert.assertNotNull(adminSettings); + if (adminSettings.getKey().equals("general")) { + validateGeneralAdminSettings(adminSettings); } - if (adminSettingsUpdateMsg.getKey().equals("mail")) { - validateMailAdminSettings(adminSettingsUpdateMsg); + if (adminSettings.getKey().equals("mail")) { + validateMailAdminSettings(adminSettings); } - if (adminSettingsUpdateMsg.getKey().equals("connectivity")) { - validateConnectivityAdminSettings(adminSettingsUpdateMsg); + if (adminSettings.getKey().equals("connectivity")) { + validateConnectivityAdminSettings(adminSettings); } } } - private void validateGeneralAdminSettings(AdminSettingsUpdateMsg adminSettingsUpdateMsg) { - JsonNode jsonNode = JacksonUtil.toJsonNode(adminSettingsUpdateMsg.getJsonValue()); - Assert.assertNotNull(jsonNode.get("baseUrl")); + private void validateGeneralAdminSettings(AdminSettings adminSettings) { + Assert.assertNotNull(adminSettings.getJsonValue().get("baseUrl")); } - private void validateMailAdminSettings(AdminSettingsUpdateMsg adminSettingsUpdateMsg) { - JsonNode jsonNode = JacksonUtil.toJsonNode(adminSettingsUpdateMsg.getJsonValue()); + private void validateMailAdminSettings(AdminSettings adminSettings) { + JsonNode jsonNode = adminSettings.getJsonValue(); Assert.assertNotNull(jsonNode.get("mailFrom")); Assert.assertNotNull(jsonNode.get("smtpProtocol")); Assert.assertNotNull(jsonNode.get("smtpHost")); @@ -454,8 +465,8 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertNotNull(jsonNode.get("timeout")); } - private void validateConnectivityAdminSettings(AdminSettingsUpdateMsg adminSettingsUpdateMsg) { - JsonNode jsonNode = JacksonUtil.toJsonNode(adminSettingsUpdateMsg.getJsonValue()); + private void validateConnectivityAdminSettings(AdminSettings adminSettings) { + JsonNode jsonNode = adminSettings.getJsonValue(); Assert.assertNotNull(jsonNode.get("http")); Assert.assertNotNull(jsonNode.get("https")); Assert.assertNotNull(jsonNode.get("mqtt")); @@ -485,10 +496,10 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { UUID queueUUID = new UUID(queueUpdateMsg.getIdMSB(), queueUpdateMsg.getIdLSB()); Queue queue = doGet("/api/queues/" + queueUUID, Queue.class); Assert.assertNotNull(queue); - Assert.assertEquals(DataConstants.MAIN_QUEUE_NAME, queueUpdateMsg.getName()); - Assert.assertEquals(DataConstants.MAIN_QUEUE_TOPIC, queueUpdateMsg.getTopic()); - Assert.assertEquals(10, queueUpdateMsg.getPartitions()); - Assert.assertEquals(25, queueUpdateMsg.getPollInterval()); + Assert.assertEquals(DataConstants.MAIN_QUEUE_NAME, queue.getName()); + Assert.assertEquals(DataConstants.MAIN_QUEUE_TOPIC, queue.getTopic()); + Assert.assertEquals(10, queue.getPartitions()); + Assert.assertEquals(25, queue.getPollInterval()); testAutoGeneratedCodeByProtobuf(queueUpdateMsg); } @@ -500,7 +511,7 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { UUID userUUID = new UUID(userUpdateMsg.getIdMSB(), userUpdateMsg.getIdLSB()); User user = doGet("/api/user/" + userUUID, User.class); Assert.assertNotNull(user); - Assert.assertEquals("testtenant@thingsboard.org", userUpdateMsg.getEmail()); + Assert.assertEquals("testtenant@thingsboard.org", user.getEmail()); testAutoGeneratedCodeByProtobuf(userUpdateMsg); } diff --git a/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java index 259572851c..634b16e248 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java @@ -19,13 +19,14 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Device; -import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.alarm.Alarm; import org.thingsboard.server.common.data.alarm.AlarmInfo; import org.thingsboard.server.common.data.alarm.AlarmSeverity; import org.thingsboard.server.common.data.alarm.AlarmStatus; import org.thingsboard.server.common.data.id.AlarmId; +import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -46,16 +47,14 @@ public class AlarmEdgeTest extends AbstractEdgeTest { public void testSendAlarmToCloud() throws Exception { Device device = saveDeviceOnCloudAndVerifyDeliveryToEdge(); - UUID alarmUUID = UUID.randomUUID(); + Alarm edgeAlarm = buildAlarmForUplinkMsg(device.getId()); + UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder(); - alarmUpdateMgBuilder.setIdMSB(alarmUUID.getMostSignificantBits()); - alarmUpdateMgBuilder.setIdLSB(alarmUUID.getLeastSignificantBits()); - alarmUpdateMgBuilder.setName("alarm from edge"); - alarmUpdateMgBuilder.setStatus(AlarmStatus.ACTIVE_UNACK.name()); - alarmUpdateMgBuilder.setSeverity(AlarmSeverity.CRITICAL.name()); + alarmUpdateMgBuilder.setIdMSB(edgeAlarm.getUuidId().getMostSignificantBits()); + alarmUpdateMgBuilder.setIdLSB(edgeAlarm.getUuidId().getLeastSignificantBits()); + alarmUpdateMgBuilder.setEntity(JacksonUtil.toString(edgeAlarm)); alarmUpdateMgBuilder.setOriginatorName(device.getName()); - alarmUpdateMgBuilder.setOriginatorType(EntityType.DEVICE.name()); testAutoGeneratedCodeByProtobuf(alarmUpdateMgBuilder); uplinkMsgBuilder.addAlarmUpdateMsg(alarmUpdateMgBuilder.build()); @@ -72,7 +71,7 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Optional foundAlarm = alarms.stream().filter(alarm -> alarm.getType().equals("alarm from edge")).findAny(); Assert.assertTrue(foundAlarm.isPresent()); AlarmInfo alarmInfo = foundAlarm.get(); - Assert.assertEquals(new AlarmId(alarmUUID), alarmInfo.getId()); + Assert.assertEquals(edgeAlarm.getId(), alarmInfo.getId()); Assert.assertEquals(device.getId(), alarmInfo.getOriginator()); Assert.assertEquals(AlarmStatus.ACTIVE_UNACK, alarmInfo.getStatus()); Assert.assertEquals(AlarmSeverity.CRITICAL, alarmInfo.getSeverity()); @@ -92,14 +91,10 @@ public class AlarmEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AlarmUpdateMsg); AlarmUpdateMsg alarmUpdateMsg = (AlarmUpdateMsg) latestMessage; + Alarm alarmMsg = JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); + Assert.assertNotNull(alarmMsg); + Assert.assertEquals(savedAlarm, alarmMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, alarmUpdateMsg.getMsgType()); - Assert.assertEquals(savedAlarm.getUuidId().getMostSignificantBits(), alarmUpdateMsg.getIdMSB()); - Assert.assertEquals(savedAlarm.getUuidId().getLeastSignificantBits(), alarmUpdateMsg.getIdLSB()); - Assert.assertEquals(savedAlarm.getType(), alarmUpdateMsg.getType()); - Assert.assertEquals(savedAlarm.getName(), alarmUpdateMsg.getName()); - Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); - Assert.assertEquals(savedAlarm.getStatus().name(), alarmUpdateMsg.getStatus()); - Assert.assertEquals(savedAlarm.getSeverity().name(), alarmUpdateMsg.getSeverity()); // ack alarm edgeImitator.expectMessageAmount(1); @@ -109,10 +104,12 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertTrue(latestMessage instanceof AlarmUpdateMsg); alarmUpdateMsg = (AlarmUpdateMsg) latestMessage; Assert.assertEquals(UpdateMsgType.ALARM_ACK_RPC_MESSAGE, alarmUpdateMsg.getMsgType()); - Assert.assertEquals(savedAlarm.getType(), alarmUpdateMsg.getType()); - Assert.assertEquals(savedAlarm.getName(), alarmUpdateMsg.getName()); + alarmMsg = JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); + Assert.assertNotNull(alarmMsg); + Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); + Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); - Assert.assertEquals(AlarmStatus.ACTIVE_ACK.name(), alarmUpdateMsg.getStatus()); + Assert.assertEquals(AlarmStatus.ACTIVE_ACK, alarmMsg.getStatus()); // clear alarm edgeImitator.expectMessageAmount(1); @@ -122,10 +119,12 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertTrue(latestMessage instanceof AlarmUpdateMsg); alarmUpdateMsg = (AlarmUpdateMsg) latestMessage; Assert.assertEquals(UpdateMsgType.ALARM_CLEAR_RPC_MESSAGE, alarmUpdateMsg.getMsgType()); - Assert.assertEquals(savedAlarm.getType(), alarmUpdateMsg.getType()); - Assert.assertEquals(savedAlarm.getName(), alarmUpdateMsg.getName()); + alarmMsg = JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); + Assert.assertNotNull(alarmMsg); + Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); + Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); - Assert.assertEquals(AlarmStatus.CLEARED_ACK.name(), alarmUpdateMsg.getStatus()); + Assert.assertEquals(AlarmStatus.CLEARED_ACK, alarmMsg.getStatus()); // delete alarm edgeImitator.expectMessageAmount(1); @@ -136,10 +135,21 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertTrue(latestMessage instanceof AlarmUpdateMsg); alarmUpdateMsg = (AlarmUpdateMsg) latestMessage; Assert.assertEquals(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE, alarmUpdateMsg.getMsgType()); - Assert.assertEquals(savedAlarm.getType(), alarmUpdateMsg.getType()); - Assert.assertEquals(savedAlarm.getName(), alarmUpdateMsg.getName()); + alarmMsg = JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); + Assert.assertNotNull(alarmMsg); + Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); + Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); - Assert.assertEquals(AlarmStatus.CLEARED_ACK.name(), alarmUpdateMsg.getStatus()); + Assert.assertEquals(AlarmStatus.CLEARED_ACK, alarmMsg.getStatus()); } + private Alarm buildAlarmForUplinkMsg(DeviceId deviceId) { + Alarm alarm = new Alarm(); + alarm.setId(new AlarmId(UUID.randomUUID())); + alarm.setTenantId(tenantId); + alarm.setType("alarm from edge"); + alarm.setOriginator(deviceId); + alarm.setSeverity(AlarmSeverity.CRITICAL); + return alarm; + } } diff --git a/application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java index 0eb19a17fb..1e35b6266b 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java @@ -15,17 +15,17 @@ */ package org.thingsboard.server.edge; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.fasterxml.jackson.core.type.TypeReference; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; -import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.AssetInfo; import org.thingsboard.server.common.data.edge.Edge; +import org.thingsboard.server.common.data.id.AssetId; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.page.PageData; @@ -57,11 +57,10 @@ public class AssetEdgeTest extends AbstractEdgeTest { Optional assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class); Assert.assertTrue(assetUpdateMsgOpt.isPresent()); AssetUpdateMsg assetUpdateMsg = assetUpdateMsgOpt.get(); + Asset assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); - Assert.assertEquals(savedAsset.getUuidId().getMostSignificantBits(), assetUpdateMsg.getIdMSB()); - Assert.assertEquals(savedAsset.getUuidId().getLeastSignificantBits(), assetUpdateMsg.getIdLSB()); - Assert.assertEquals(savedAsset.getName(), assetUpdateMsg.getName()); - Assert.assertEquals(savedAsset.getType(), assetUpdateMsg.getType()); + Assert.assertEquals(savedAsset, assetMsg); Optional assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); @@ -77,8 +76,10 @@ public class AssetEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); assetUpdateMsg = (AssetUpdateMsg) latestMessage; + assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); + Assert.assertEquals(savedAsset.getName(), assetMsg.getName()); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); - Assert.assertEquals(savedAsset.getName(), assetUpdateMsg.getName()); // unassign asset from edge edgeImitator.expectMessageAmount(1); @@ -107,11 +108,10 @@ public class AssetEdgeTest extends AbstractEdgeTest { assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class); Assert.assertTrue(assetUpdateMsgOpt.isPresent()); assetUpdateMsg = assetUpdateMsgOpt.get(); + assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); - Assert.assertEquals(savedAsset.getUuidId().getMostSignificantBits(), assetUpdateMsg.getIdMSB()); - Assert.assertEquals(savedAsset.getUuidId().getLeastSignificantBits(), assetUpdateMsg.getIdLSB()); - Assert.assertEquals(savedAsset.getName(), assetUpdateMsg.getName()); - Assert.assertEquals(savedAsset.getType(), assetUpdateMsg.getType()); + Assert.assertEquals(savedAsset, assetMsg); assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); assetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); @@ -135,9 +135,10 @@ public class AssetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); assetUpdateMsg = (AssetUpdateMsg) latestMessage; + assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), assetUpdateMsg.getCustomerIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), assetUpdateMsg.getCustomerIdLSB()); + Assert.assertEquals(savedCustomer.getId(), assetMsg.getCustomerId()); // unassign asset #2 from customer edgeImitator.expectMessageAmount(1); @@ -146,10 +147,10 @@ public class AssetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetUpdateMsg); assetUpdateMsg = (AssetUpdateMsg) latestMessage; + assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetUpdateMsg.getMsgType()); - Assert.assertEquals( - new CustomerId(EntityId.NULL_UUID), - new CustomerId(new UUID(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()))); + Assert.assertEquals(new CustomerId(EntityId.NULL_UUID), assetMsg.getCustomerId()); // delete asset #2 - messages expected edgeImitator.expectMessageAmount(1); @@ -166,14 +167,13 @@ public class AssetEdgeTest extends AbstractEdgeTest { @Test public void testSendAssetToCloud() throws Exception { - UUID uuid = Uuids.timeBased(); + Asset asset = buildAssetForUplinkMsg("Asset Edge 2"); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); AssetUpdateMsg.Builder assetUpdateMsgBuilder = AssetUpdateMsg.newBuilder(); - assetUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - assetUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - assetUpdateMsgBuilder.setName("Asset Edge 2"); - assetUpdateMsgBuilder.setType("default"); + assetUpdateMsgBuilder.setIdMSB(asset.getUuidId().getMostSignificantBits()); + assetUpdateMsgBuilder.setIdLSB(asset.getUuidId().getLeastSignificantBits()); + assetUpdateMsgBuilder.setEntity(JacksonUtil.toString(asset)); assetUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(assetUpdateMsgBuilder); uplinkMsgBuilder.addAssetUpdateMsg(assetUpdateMsgBuilder.build()); @@ -188,9 +188,9 @@ public class AssetEdgeTest extends AbstractEdgeTest { UplinkResponseMsg latestResponseMsg = edgeImitator.getLatestResponseMsg(); Assert.assertTrue(latestResponseMsg.getSuccess()); - Asset asset = doGet("/api/asset/" + uuid, Asset.class); - Assert.assertNotNull(asset); - Assert.assertEquals("Asset Edge 2", asset.getName()); + Asset foundAsset = doGet("/api/asset/" + asset.getUuidId(), Asset.class); + Assert.assertNotNull(foundAsset); + Assert.assertEquals("Asset Edge 2", foundAsset.getName()); } @Test @@ -198,14 +198,11 @@ public class AssetEdgeTest extends AbstractEdgeTest { String assetOnCloudName = StringUtils.randomAlphanumeric(15); Asset assetOnCloud = saveAsset(assetOnCloudName); - UUID uuid = Uuids.timeBased(); + Asset assetOnEdge = buildAssetForUplinkMsg(assetOnCloudName); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); AssetUpdateMsg.Builder assetUpdateMsgBuilder = AssetUpdateMsg.newBuilder(); - assetUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - assetUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - assetUpdateMsgBuilder.setName(assetOnCloudName); - assetUpdateMsgBuilder.setType("default"); + assetUpdateMsgBuilder.setEntity(JacksonUtil.toString(assetOnEdge)); assetUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(assetUpdateMsgBuilder); uplinkMsgBuilder.addAssetUpdateMsg(assetUpdateMsgBuilder.build()); @@ -223,7 +220,9 @@ public class AssetEdgeTest extends AbstractEdgeTest { Optional assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class); Assert.assertTrue(assetUpdateMsgOpt.isPresent()); AssetUpdateMsg latestAssetUpdateMsg = assetUpdateMsgOpt.get(); - Assert.assertNotEquals(assetOnCloudName, latestAssetUpdateMsg.getName()); + Asset assetMsg = JacksonUtil.fromStringIgnoreUnknownProperties(latestAssetUpdateMsg.getEntity(), Asset.class); + Assert.assertNotNull(assetMsg); + Assert.assertNotEquals(assetOnCloudName, assetMsg.getName()); UUID newAssetId = new UUID(latestAssetUpdateMsg.getIdMSB(), latestAssetUpdateMsg.getIdLSB()); @@ -275,4 +274,12 @@ public class AssetEdgeTest extends AbstractEdgeTest { return savedAsset; } + private Asset buildAssetForUplinkMsg(String name) { + Asset asset = new Asset(); + asset.setId(new AssetId(UUID.randomUUID())); + asset.setTenantId(tenantId); + asset.setName(name); + asset.setType("test"); + return asset; + } } diff --git a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java index ebf0af1938..600895c230 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java @@ -15,13 +15,14 @@ */ package org.thingsboard.server.edge; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.google.protobuf.AbstractMessage; import com.google.protobuf.ByteString; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.asset.AssetProfile; +import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -52,12 +53,12 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetProfileUpdateMsg); AssetProfileUpdateMsg assetProfileUpdateMsg = (AssetProfileUpdateMsg) latestMessage; + AssetProfile assetProfileMsg = JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + Assert.assertNotNull(assetProfileMsg); + Assert.assertEquals(assetProfile, assetProfileMsg); + Assert.assertEquals("Building", assetProfileMsg.getName()); + Assert.assertEquals(buildingsRuleChainId, assetProfileMsg.getDefaultEdgeRuleChainId()); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType()); - Assert.assertEquals(assetProfile.getUuidId().getMostSignificantBits(), assetProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(assetProfile.getUuidId().getLeastSignificantBits(), assetProfileUpdateMsg.getIdLSB()); - Assert.assertEquals("Building", assetProfileUpdateMsg.getName()); - Assert.assertEquals(buildingsRuleChainId.getId().getMostSignificantBits(), assetProfileUpdateMsg.getDefaultRuleChainIdMSB()); - Assert.assertEquals(buildingsRuleChainId.getId().getLeastSignificantBits(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()); // update asset profile assetProfile.setImage("IMAGE"); @@ -67,8 +68,10 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetProfileUpdateMsg); assetProfileUpdateMsg = (AssetProfileUpdateMsg) latestMessage; + assetProfileMsg = JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + Assert.assertNotNull(assetProfileMsg); + Assert.assertEquals("IMAGE", assetProfileMsg.getImage()); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType()); - Assert.assertEquals(ByteString.copyFrom("IMAGE".getBytes(StandardCharsets.UTF_8)), assetProfileUpdateMsg.getImage()); // delete profile edgeImitator.expectMessageAmount(1); @@ -90,18 +93,15 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { RuleChainId edgeRuleChainId = createEdgeRuleChainAndAssignToEdge("Asset Profile Rule Chain"); DashboardId dashboardId = createDashboardAndAssignToEdge("Asset Profile Dashboard"); - UUID uuid = Uuids.timeBased(); + AssetProfile assetProfileOnEdge = buildAssetProfileForUplinkMsg("Asset Profile On Edge"); + assetProfileOnEdge.setDefaultEdgeRuleChainId(edgeRuleChainId); + assetProfileOnEdge.setDefaultDashboardId(dashboardId); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); AssetProfileUpdateMsg.Builder assetProfileUpdateMsgBuilder = AssetProfileUpdateMsg.newBuilder(); - assetProfileUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - assetProfileUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - assetProfileUpdateMsgBuilder.setName("Asset Profile On Edge"); - assetProfileUpdateMsgBuilder.setDefault(false); - assetProfileUpdateMsgBuilder.setDefaultRuleChainIdMSB(edgeRuleChainId.getId().getMostSignificantBits()); - assetProfileUpdateMsgBuilder.setDefaultRuleChainIdLSB(edgeRuleChainId.getId().getLeastSignificantBits()); - assetProfileUpdateMsgBuilder.setDefaultDashboardIdMSB(dashboardId.getId().getMostSignificantBits()); - assetProfileUpdateMsgBuilder.setDefaultDashboardIdLSB(dashboardId.getId().getLeastSignificantBits()); + assetProfileUpdateMsgBuilder.setIdMSB(assetProfileOnEdge.getUuidId().getMostSignificantBits()); + assetProfileUpdateMsgBuilder.setIdLSB(assetProfileOnEdge.getUuidId().getLeastSignificantBits()); + assetProfileUpdateMsgBuilder.setEntity(JacksonUtil.toString(assetProfileOnEdge)); assetProfileUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(assetProfileUpdateMsgBuilder); uplinkMsgBuilder.addAssetProfileUpdateMsg(assetProfileUpdateMsgBuilder.build()); @@ -116,7 +116,7 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { UplinkResponseMsg latestResponseMsg = edgeImitator.getLatestResponseMsg(); Assert.assertTrue(latestResponseMsg.getSuccess()); - AssetProfile assetProfile = doGet("/api/assetProfile/" + uuid, AssetProfile.class); + AssetProfile assetProfile = doGet("/api/assetProfile/" + assetProfileOnEdge.getUuidId(), AssetProfile.class); Assert.assertNotNull(assetProfile); Assert.assertEquals("Asset Profile On Edge", assetProfile.getName()); Assert.assertEquals(dashboardId, assetProfile.getDefaultDashboardId()); @@ -149,13 +149,11 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { assetProfileOnCloud = doPost("/api/assetProfile", assetProfileOnCloud, AssetProfile.class); Assert.assertTrue(edgeImitator.waitForMessages()); - UUID uuid = Uuids.timeBased(); + AssetProfile assetProfileOnEdge = buildAssetProfileForUplinkMsg(assetProfileOnCloudName); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); AssetProfileUpdateMsg.Builder assetProfileUpdateMsgBuilder = AssetProfileUpdateMsg.newBuilder(); - assetProfileUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - assetProfileUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - assetProfileUpdateMsgBuilder.setName(assetProfileOnCloudName); + assetProfileUpdateMsgBuilder.setEntity(JacksonUtil.toString(assetProfileOnEdge)); assetProfileUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); uplinkMsgBuilder.addAssetProfileUpdateMsg(assetProfileUpdateMsgBuilder.build()); @@ -172,12 +170,23 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { Optional assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); AssetProfileUpdateMsg latestAssetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); - Assert.assertNotEquals(assetProfileOnCloudName, latestAssetProfileUpdateMsg.getName()); + AssetProfile assetProfileMsg = JacksonUtil.fromEdgeString(latestAssetProfileUpdateMsg.getEntity(), AssetProfile.class); + Assert.assertNotNull(assetProfileMsg); + Assert.assertNotEquals(assetProfileOnCloudName, assetProfileMsg.getName()); - Assert.assertNotEquals(assetProfileOnCloud.getUuidId(), uuid); + Assert.assertNotEquals(assetProfileOnCloud.getUuidId(), assetProfileOnEdge.getUuidId()); - AssetProfile assetProfile = doGet("/api/assetProfile/" + uuid, AssetProfile.class); + AssetProfile assetProfile = doGet("/api/assetProfile/" + assetProfileMsg.getUuidId(), AssetProfile.class); Assert.assertNotNull(assetProfile); Assert.assertNotEquals(assetProfileOnCloudName, assetProfile.getName()); } + + private AssetProfile buildAssetProfileForUplinkMsg(String name) { + AssetProfile assetProfile = new AssetProfile(); + assetProfile.setId(new AssetProfileId(UUID.randomUUID())); + assetProfile.setTenantId(tenantId); + assetProfile.setName(name); + assetProfile.setDefault(false); + return assetProfile; + } } diff --git a/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java index 6cc15837d9..9f7e1b5641 100644 --- a/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java @@ -18,6 +18,7 @@ package org.thingsboard.server.edge; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; @@ -57,10 +58,9 @@ public class CustomerEdgeTest extends AbstractEdgeTest { Optional customerUpdateOpt = edgeImitator.findMessageByType(CustomerUpdateMsg.class); Assert.assertTrue(customerUpdateOpt.isPresent()); CustomerUpdateMsg customerUpdateMsg = customerUpdateOpt.get(); + Customer customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), customerUpdateMsg.getIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), customerUpdateMsg.getIdLSB()); - Assert.assertEquals(savedCustomer.getTitle(), customerUpdateMsg.getTitle()); + Assert.assertEquals(savedCustomer, customerMsg); testAutoGeneratedCodeByProtobuf(customerUpdateMsg); // update customer @@ -71,10 +71,9 @@ public class CustomerEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof CustomerUpdateMsg); customerUpdateMsg = (CustomerUpdateMsg) latestMessage; + customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), customerUpdateMsg.getIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), customerUpdateMsg.getIdLSB()); - Assert.assertEquals(savedCustomer.getTitle(), customerUpdateMsg.getTitle()); + Assert.assertEquals(savedCustomer, customerMsg); // delete customer edgeImitator.expectMessageAmount(2); diff --git a/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java index 6180ced49c..8db2e0390f 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java @@ -15,7 +15,6 @@ */ package org.thingsboard.server.edge; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.fasterxml.jackson.core.type.TypeReference; import com.google.protobuf.AbstractMessage; import org.junit.Assert; @@ -27,6 +26,7 @@ import org.thingsboard.server.common.data.DashboardInfo; import org.thingsboard.server.common.data.ShortCustomerInfo; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.edge.Edge; +import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -36,7 +36,6 @@ import org.thingsboard.server.gen.edge.v1.UplinkMsg; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.UUID; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -63,13 +62,12 @@ public class DashboardEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); DashboardUpdateMsg dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; + Dashboard dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); - Assert.assertEquals(savedDashboard.getUuidId().getMostSignificantBits(), dashboardUpdateMsg.getIdMSB()); - Assert.assertEquals(savedDashboard.getUuidId().getLeastSignificantBits(), dashboardUpdateMsg.getIdLSB()); - Assert.assertEquals(savedDashboard.getTitle(), dashboardUpdateMsg.getTitle()); - Assert.assertTrue(dashboardUpdateMsg.getMobileHide()); - Assert.assertEquals(IMAGE, dashboardUpdateMsg.getImage()); - Assert.assertEquals(MOBILE_ORDER, dashboardUpdateMsg.getMobileOrder()); + Assert.assertEquals(savedDashboard, dashboardMsg); + Assert.assertEquals(IMAGE, dashboardMsg.getImage()); + Assert.assertEquals(MOBILE_ORDER, dashboardMsg.getMobileOrder().intValue()); testAutoGeneratedCodeByProtobuf(dashboardUpdateMsg); // update dashboard @@ -80,8 +78,10 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; + dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); - Assert.assertEquals(savedDashboard.getTitle(), dashboardUpdateMsg.getTitle()); + Assert.assertEquals(savedDashboard.getTitle(), dashboardMsg.getTitle()); // unassign dashboard from edge edgeImitator.expectMessageAmount(1); @@ -112,10 +112,12 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; + dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertEquals(savedDashboard.getUuidId().getMostSignificantBits(), dashboardUpdateMsg.getIdMSB()); Assert.assertEquals(savedDashboard.getUuidId().getLeastSignificantBits(), dashboardUpdateMsg.getIdLSB()); - Assert.assertEquals(savedDashboard.getTitle(), dashboardUpdateMsg.getTitle()); + Assert.assertEquals(savedDashboard.getTitle(), dashboardMsg.getTitle()); // assign dashboard #2 to customer Customer customer = new Customer(); @@ -133,12 +135,12 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; + dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); - Set assignedCustomers = - JacksonUtil.fromString(dashboardUpdateMsg.getAssignedCustomers(), new TypeReference<>() {}); - Assert.assertNotNull(assignedCustomers); - Assert.assertFalse(assignedCustomers.isEmpty()); - Assert.assertTrue(assignedCustomers.contains(new ShortCustomerInfo(savedCustomer.getId(), customer.getTitle(), customer.isPublic()))); + Assert.assertNotNull(dashboardMsg.getAssignedCustomers()); + Assert.assertFalse(dashboardMsg.getAssignedCustomers().isEmpty()); + Assert.assertTrue(dashboardMsg.getAssignedCustomers().contains(new ShortCustomerInfo(savedCustomer.getId(), customer.getTitle(), customer.isPublic()))); // unassign dashboard #2 from customer edgeImitator.expectMessageAmount(1); @@ -148,11 +150,11 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; + dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); - assignedCustomers = - JacksonUtil.fromString(dashboardUpdateMsg.getAssignedCustomers(), new TypeReference<>() {}); - Assert.assertNotNull(assignedCustomers); - Assert.assertTrue(assignedCustomers.isEmpty()); + Assert.assertNotNull(dashboardMsg.getAssignedCustomers()); + Assert.assertTrue(dashboardMsg.getAssignedCustomers().isEmpty()); // delete dashboard #2 - messages expected edgeImitator.expectMessageAmount(1); @@ -169,14 +171,13 @@ public class DashboardEdgeTest extends AbstractEdgeTest { @Test public void testSendDashboardToCloud() throws Exception { - UUID uuid = Uuids.timeBased(); + Dashboard dashboard = buildDashboardForUplinkMsg(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DashboardUpdateMsg.Builder dashboardUpdateMsgBuilder = DashboardUpdateMsg.newBuilder(); - dashboardUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - dashboardUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - dashboardUpdateMsgBuilder.setTitle("Edge Test Dashboard"); - dashboardUpdateMsgBuilder.setConfiguration(""); + dashboardUpdateMsgBuilder.setIdMSB(dashboard.getUuidId().getMostSignificantBits()); + dashboardUpdateMsgBuilder.setIdLSB(dashboard.getUuidId().getLeastSignificantBits()); + dashboardUpdateMsgBuilder.setEntity(JacksonUtil.toString(dashboard)); dashboardUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(dashboardUpdateMsgBuilder); uplinkMsgBuilder.addDashboardUpdateMsg(dashboardUpdateMsgBuilder.build()); @@ -188,9 +189,9 @@ public class DashboardEdgeTest extends AbstractEdgeTest { Assert.assertTrue(edgeImitator.waitForResponses()); - Dashboard dashboard = doGet("/api/dashboard/" + uuid, Dashboard.class); - Assert.assertNotNull(dashboard); - Assert.assertEquals("Edge Test Dashboard", dashboard.getName()); + Dashboard foundDashboard = doGet("/api/dashboard/" + dashboard.getUuidId(), Dashboard.class); + Assert.assertNotNull(foundDashboard); + Assert.assertEquals("Edge Test Dashboard", foundDashboard.getName()); } @Test @@ -237,4 +238,12 @@ public class DashboardEdgeTest extends AbstractEdgeTest { return savedDashboard; } + private Dashboard buildDashboardForUplinkMsg() { + Dashboard dashboard = new Dashboard(); + dashboard.setId(new DashboardId(UUID.randomUUID())); + dashboard.setTenantId(tenantId); + dashboard.setTitle("Edge Test Dashboard"); + return dashboard; + } + } diff --git a/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java index e6fee370f1..429bb2e968 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java @@ -43,6 +43,7 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.ota.OtaPackageType; import org.thingsboard.server.common.data.page.PageData; @@ -117,11 +118,13 @@ public class DeviceEdgeTest extends AbstractEdgeTest { Optional deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class); Assert.assertTrue(deviceUpdateMsgOpt.isPresent()); deviceUpdateMsg = deviceUpdateMsgOpt.get(); + Device deviceFromMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(deviceFromMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); - Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB()); - Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB()); - Assert.assertEquals(savedDevice.getName(), deviceUpdateMsg.getName()); - Assert.assertEquals(savedDevice.getType(), deviceUpdateMsg.getType()); + Assert.assertEquals(savedDevice, deviceFromMsg); + Assert.assertEquals(savedDevice.getId(), deviceFromMsg.getId()); + Assert.assertEquals(savedDevice.getName(), deviceFromMsg.getName()); + Assert.assertEquals(savedDevice.getType(), deviceFromMsg.getType()); Optional deviceProfileUpdateMsgOpt = edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class); Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent()); @@ -146,9 +149,10 @@ public class DeviceEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg); deviceUpdateMsg = (DeviceUpdateMsg) latestMessage; + deviceFromMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(deviceFromMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getCustomerIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getCustomerIdLSB()); + Assert.assertEquals(savedCustomer.getId(), deviceFromMsg.getCustomerId()); // unassign device #2 from customer edgeImitator.expectMessageAmount(1); @@ -157,10 +161,12 @@ public class DeviceEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg); deviceUpdateMsg = (DeviceUpdateMsg) latestMessage; + deviceFromMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(deviceFromMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); Assert.assertEquals( new CustomerId(EntityId.NULL_UUID), - new CustomerId(new UUID(deviceUpdateMsg.getCustomerIdMSB(), deviceUpdateMsg.getCustomerIdLSB()))); + new CustomerId(new UUID(deviceFromMsg.getCustomerId().getId().getMostSignificantBits(), deviceFromMsg.getCustomerId().getId().getLeastSignificantBits()))); // delete device #2 - messages expected edgeImitator.expectMessageAmount(1); @@ -196,9 +202,8 @@ public class DeviceEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceCredentialsUpdateMsg); DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = (DeviceCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(deviceCredentials.getCredentialsType().name(), deviceCredentialsUpdateMsg.getCredentialsType()); - Assert.assertEquals(deviceCredentials.getCredentialsId(), deviceCredentialsUpdateMsg.getCredentialsId()); - Assert.assertFalse(deviceCredentialsUpdateMsg.hasCredentialsValue()); + DeviceCredentials deviceCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); + Assert.assertEquals(deviceCredentials, deviceCredentialsMsg); // update device credentials - X509_CERTIFICATE edgeImitator.expectMessageAmount(1); @@ -211,10 +216,12 @@ public class DeviceEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceCredentialsUpdateMsg); deviceCredentialsUpdateMsg = (DeviceCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(deviceCredentials.getCredentialsType().name(), deviceCredentialsUpdateMsg.getCredentialsType()); - Assert.assertFalse(deviceCredentialsUpdateMsg.getCredentialsId().isEmpty()); - Assert.assertTrue(deviceCredentialsUpdateMsg.hasCredentialsValue()); - Assert.assertEquals(deviceCredentials.getCredentialsValue(), deviceCredentialsUpdateMsg.getCredentialsValue()); + deviceCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); + Assert.assertNotNull(deviceCredentialsMsg); + Assert.assertEquals(deviceCredentials.getCredentialsType(), deviceCredentialsMsg.getCredentialsType()); + Assert.assertFalse(deviceCredentialsMsg.getCredentialsId().isEmpty()); + Assert.assertNotNull(deviceCredentialsMsg.getCredentialsValue()); + Assert.assertEquals(deviceCredentials.getCredentialsValue(), deviceCredentialsMsg.getCredentialsValue()); } private void verifyUpdateFirmwareIdSoftwareIdAndDeviceData(Device savedDevice) throws InterruptedException { @@ -244,19 +251,13 @@ public class DeviceEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg); DeviceUpdateMsg deviceUpdateMsg = (DeviceUpdateMsg) latestMessage; + Device deviceMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(deviceMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType()); - Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB()); - Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB()); - Assert.assertEquals(savedDevice.getName(), deviceUpdateMsg.getName()); - Assert.assertEquals(savedDevice.getType(), deviceUpdateMsg.getType()); - Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getFirmwareIdMSB()); - Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getFirmwareIdLSB()); - Assert.assertEquals(softwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getSoftwareIdMSB()); - Assert.assertEquals(softwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getSoftwareIdLSB()); - Optional deviceDataOpt = - dataDecodingEncodingService.decode(deviceUpdateMsg.getDeviceDataBytes().toByteArray()); - Assert.assertTrue(deviceDataOpt.isPresent()); - deviceData = deviceDataOpt.get(); + Assert.assertEquals(savedDevice, deviceMsg); + Assert.assertEquals(firmwareOtaPackageInfo.getId(), deviceMsg.getFirmwareId()); + Assert.assertEquals(softwareOtaPackageInfo.getId(), deviceMsg.getSoftwareId()); + deviceData = deviceMsg.getDeviceData(); Assert.assertTrue(deviceData.getTransportConfiguration() instanceof MqttDeviceTransportConfiguration); MqttDeviceTransportConfiguration mqttDeviceTransportConfiguration = (MqttDeviceTransportConfiguration) deviceData.getTransportConfiguration(); @@ -276,14 +277,13 @@ public class DeviceEdgeTest extends AbstractEdgeTest { loginTenantAdmin(); - UUID uuid = Uuids.timeBased(); + Device device = buildDeviceForUplinkMsg("Edge Device", DEFAULT_DEVICE_TYPE); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder(); - deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - deviceUpdateMsgBuilder.setName("Edge Device"); - deviceUpdateMsgBuilder.setType(DEFAULT_DEVICE_TYPE); + deviceUpdateMsgBuilder.setIdMSB(device.getUuidId().getMostSignificantBits()); + deviceUpdateMsgBuilder.setIdLSB(device.getUuidId().getLeastSignificantBits()); + deviceUpdateMsgBuilder.setEntity(JacksonUtil.toString(device)); deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); uplinkMsgBuilder.addDeviceUpdateMsg(deviceUpdateMsgBuilder.build()); @@ -327,12 +327,11 @@ public class DeviceEdgeTest extends AbstractEdgeTest { public void testSendDeviceCredentialsUpdateToCloud() throws Exception { Device device = findDeviceByName("Edge Device 1"); + DeviceCredentials deviceCredentials = buildDeviceCredentialsForUplinkMsg(device.getId()); + UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceCredentialsUpdateMsg.Builder deviceCredentialsUpdateMsgBuilder = DeviceCredentialsUpdateMsg.newBuilder(); - deviceCredentialsUpdateMsgBuilder.setDeviceIdMSB(device.getUuidId().getMostSignificantBits()); - deviceCredentialsUpdateMsgBuilder.setDeviceIdLSB(device.getUuidId().getLeastSignificantBits()); - deviceCredentialsUpdateMsgBuilder.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN.name()); - deviceCredentialsUpdateMsgBuilder.setCredentialsId("NEW_TOKEN"); + deviceCredentialsUpdateMsgBuilder.setEntity(JacksonUtil.toString(deviceCredentials)); testAutoGeneratedCodeByProtobuf(deviceCredentialsUpdateMsgBuilder); uplinkMsgBuilder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsgBuilder.build()); @@ -367,10 +366,10 @@ public class DeviceEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceCredentialsUpdateMsg); DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = (DeviceCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(deviceCredentialsUpdateMsg.getDeviceIdMSB(), device.getUuidId().getMostSignificantBits()); - Assert.assertEquals(deviceCredentialsUpdateMsg.getDeviceIdLSB(), device.getUuidId().getLeastSignificantBits()); - Assert.assertEquals(deviceCredentialsUpdateMsg.getCredentialsType(), deviceCredentials.getCredentialsType().name()); - Assert.assertEquals(deviceCredentialsUpdateMsg.getCredentialsId(), deviceCredentials.getCredentialsId()); + DeviceCredentials deviceCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); + Assert.assertNotNull(deviceCredentialsMsg); + Assert.assertEquals(device.getId(), deviceCredentialsMsg.getDeviceId()); + Assert.assertEquals(deviceCredentials, deviceCredentialsMsg); } @Test @@ -485,14 +484,13 @@ public class DeviceEdgeTest extends AbstractEdgeTest { String deviceOnCloudName = StringUtils.randomAlphanumeric(15); Device deviceOnCloud = saveDevice(deviceOnCloudName, DEFAULT_DEVICE_TYPE); - UUID uuid = Uuids.timeBased(); + Device deviceMsg = buildDeviceForUplinkMsg(deviceOnCloudName, "test"); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder(); - deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - deviceUpdateMsgBuilder.setName(deviceOnCloudName); - deviceUpdateMsgBuilder.setType("default"); + deviceUpdateMsgBuilder.setIdMSB(deviceMsg.getUuidId().getMostSignificantBits()); + deviceUpdateMsgBuilder.setIdLSB(deviceMsg.getUuidId().getLeastSignificantBits()); + deviceUpdateMsgBuilder.setEntity(JacksonUtil.toString(deviceMsg)); deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(deviceUpdateMsgBuilder); uplinkMsgBuilder.addDeviceUpdateMsg(deviceUpdateMsgBuilder.build()); @@ -509,7 +507,9 @@ public class DeviceEdgeTest extends AbstractEdgeTest { Optional deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class); Assert.assertTrue(deviceUpdateMsgOpt.isPresent()); DeviceUpdateMsg latestDeviceUpdateMsg = deviceUpdateMsgOpt.get(); - Assert.assertNotEquals(deviceOnCloudName, latestDeviceUpdateMsg.getName()); + Device deviceLatestMsg = JacksonUtil.fromStringIgnoreUnknownProperties(latestDeviceUpdateMsg.getEntity(), Device.class); + Assert.assertNotNull(deviceLatestMsg); + Assert.assertNotEquals(deviceOnCloudName, deviceLatestMsg.getName()); UUID newDeviceId = new UUID(latestDeviceUpdateMsg.getIdMSB(), latestDeviceUpdateMsg.getIdLSB()); @@ -522,8 +522,8 @@ public class DeviceEdgeTest extends AbstractEdgeTest { Optional deviceCredentialsUpdateMsgOpt = edgeImitator.findMessageByType(DeviceCredentialsRequestMsg.class); Assert.assertTrue(deviceCredentialsUpdateMsgOpt.isPresent()); DeviceCredentialsRequestMsg latestDeviceCredentialsRequestMsg = deviceCredentialsUpdateMsgOpt.get(); - Assert.assertEquals(uuid.getMostSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdMSB()); - Assert.assertEquals(uuid.getLeastSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); + Assert.assertEquals(deviceMsg.getUuidId().getMostSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdMSB()); + Assert.assertEquals(device.getUuidId().getLeastSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); newDeviceId = new UUID(latestDeviceCredentialsRequestMsg.getDeviceIdMSB(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); @@ -534,14 +534,13 @@ public class DeviceEdgeTest extends AbstractEdgeTest { @Test public void testSendDeviceToCloud() throws Exception { - UUID uuid = Uuids.timeBased(); + Device deviceMsg = buildDeviceForUplinkMsg("Edge Device 2", "test"); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceUpdateMsg.Builder deviceUpdateMsgBuilder = DeviceUpdateMsg.newBuilder(); - deviceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - deviceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - deviceUpdateMsgBuilder.setName("Edge Device 2"); - deviceUpdateMsgBuilder.setType("default"); + deviceUpdateMsgBuilder.setIdMSB(deviceMsg.getUuidId().getMostSignificantBits()); + deviceUpdateMsgBuilder.setIdLSB(deviceMsg.getUuidId().getLeastSignificantBits()); + deviceUpdateMsgBuilder.setEntity(JacksonUtil.toString(deviceMsg)); deviceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); uplinkMsgBuilder.addDeviceUpdateMsg(deviceUpdateMsgBuilder.build()); @@ -553,11 +552,11 @@ public class DeviceEdgeTest extends AbstractEdgeTest { Assert.assertTrue(edgeImitator.waitForResponses()); Assert.assertTrue(edgeImitator.waitForMessages()); - Optional deviceCredentialsRequestMsgOpt = edgeImitator.findMessageByType(DeviceCredentialsRequestMsg.class); - Assert.assertTrue(deviceCredentialsRequestMsgOpt.isPresent()); - DeviceCredentialsRequestMsg latestDeviceCredentialsRequestMsg = deviceCredentialsRequestMsgOpt.get(); - Assert.assertEquals(uuid.getMostSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdMSB()); - Assert.assertEquals(uuid.getLeastSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); + AbstractMessage latestMessage = edgeImitator.getLatestMessage(); + Assert.assertTrue(latestMessage instanceof DeviceCredentialsRequestMsg); + DeviceCredentialsRequestMsg latestDeviceCredentialsRequestMsg = (DeviceCredentialsRequestMsg) latestMessage; + Assert.assertEquals(deviceMsg.getUuidId().getMostSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdMSB()); + Assert.assertEquals(deviceMsg.getUuidId().getLeastSignificantBits(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); UUID newDeviceId = new UUID(latestDeviceCredentialsRequestMsg.getDeviceIdMSB(), latestDeviceCredentialsRequestMsg.getDeviceIdLSB()); @@ -769,4 +768,22 @@ public class DeviceEdgeTest extends AbstractEdgeTest { } } } + + private Device buildDeviceForUplinkMsg(String name, String type) { + Device device = new Device(); + device.setId(new DeviceId(UUID.randomUUID())); + device.setTenantId(tenantId); + device.setType(type); + device.setName(name); + return device; + } + + + private DeviceCredentials buildDeviceCredentialsForUplinkMsg(DeviceId deviceId) { + DeviceCredentials deviceCredentials = new DeviceCredentials(); + deviceCredentials.setDeviceId(deviceId); + deviceCredentials.setCredentialsId("NEW_TOKEN"); + deviceCredentials.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN); + return deviceCredentials; + } } diff --git a/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java index 9d48824bed..90d540d17f 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java @@ -15,9 +15,7 @@ */ package org.thingsboard.server.edge; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.google.protobuf.AbstractMessage; -import com.google.protobuf.ByteString; import org.junit.Assert; import org.junit.Test; import org.thingsboard.common.util.JacksonUtil; @@ -44,6 +42,7 @@ import org.thingsboard.server.common.data.device.profile.lwm2m.bootstrap.Abstrac import org.thingsboard.server.common.data.device.profile.lwm2m.bootstrap.LwM2MBootstrapServerCredential; import org.thingsboard.server.common.data.device.profile.lwm2m.bootstrap.NoSecLwM2MBootstrapServerCredential; import org.thingsboard.server.common.data.id.DashboardId; +import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.kv.DataType; import org.thingsboard.server.common.data.ota.OtaPackageType; @@ -82,11 +81,10 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; + DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); - Assert.assertEquals(deviceProfile.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(deviceProfile.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(thermostatsRuleChainId.getId().getMostSignificantBits(), deviceProfileUpdateMsg.getDefaultRuleChainIdMSB()); - Assert.assertEquals(thermostatsRuleChainId.getId().getLeastSignificantBits(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()); // update device profile edgeImitator.expectMessageAmount(1); @@ -108,12 +106,9 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getFirmwareIdMSB()); - Assert.assertEquals(firmwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getFirmwareIdLSB()); - Assert.assertEquals(softwareOtaPackageInfo.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getSoftwareIdMSB()); - Assert.assertEquals(softwareOtaPackageInfo.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getSoftwareIdLSB()); - Assert.assertEquals(thermostatsDashboardId.getId().getMostSignificantBits(), deviceProfileUpdateMsg.getDefaultDashboardIdMSB()); - Assert.assertEquals(thermostatsDashboardId.getId().getLeastSignificantBits(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()); + deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertEquals(deviceProfile, deviceProfileMsg); // delete profile edgeImitator.expectMessageAmount(1); @@ -138,16 +133,13 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; + DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); - Assert.assertEquals(deviceProfile.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(deviceProfile.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(DeviceTransportType.SNMP.name(), deviceProfileUpdateMsg.getTransportType()); + Assert.assertEquals(DeviceTransportType.SNMP, deviceProfileMsg.getTransportType()); - Optional deviceProfileDataOpt = - dataDecodingEncodingService.decode(deviceProfileUpdateMsg.getProfileDataBytes().toByteArray()); - - Assert.assertTrue(deviceProfileDataOpt.isPresent()); - DeviceProfileData deviceProfileData = deviceProfileDataOpt.get(); + DeviceProfileData deviceProfileData = deviceProfileMsg.getProfileData(); Assert.assertTrue(deviceProfileData.getTransportConfiguration() instanceof SnmpDeviceProfileTransportConfiguration); SnmpDeviceProfileTransportConfiguration transportConfiguration = @@ -179,16 +171,13 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; + DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); - Assert.assertEquals(deviceProfile.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(deviceProfile.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(DeviceTransportType.LWM2M.name(), deviceProfileUpdateMsg.getTransportType()); + Assert.assertEquals(DeviceTransportType.LWM2M, deviceProfileMsg.getTransportType()); - Optional deviceProfileDataOpt = - dataDecodingEncodingService.decode(deviceProfileUpdateMsg.getProfileDataBytes().toByteArray()); - - Assert.assertTrue(deviceProfileDataOpt.isPresent()); - DeviceProfileData deviceProfileData = deviceProfileDataOpt.get(); + DeviceProfileData deviceProfileData = deviceProfileMsg.getProfileData(); Assert.assertTrue(deviceProfileData.getTransportConfiguration() instanceof Lwm2mDeviceProfileTransportConfiguration); Lwm2mDeviceProfileTransportConfiguration transportConfiguration = @@ -231,16 +220,13 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; + DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); - Assert.assertEquals(deviceProfile.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(deviceProfile.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(DeviceTransportType.COAP.name(), deviceProfileUpdateMsg.getTransportType()); - - Optional deviceProfileDataOpt = - dataDecodingEncodingService.decode(deviceProfileUpdateMsg.getProfileDataBytes().toByteArray()); + Assert.assertEquals(DeviceTransportType.COAP, deviceProfileMsg.getTransportType()); - Assert.assertTrue(deviceProfileDataOpt.isPresent()); - DeviceProfileData deviceProfileData = deviceProfileDataOpt.get(); + DeviceProfileData deviceProfileData = deviceProfileMsg.getProfileData(); Assert.assertTrue(deviceProfileData.getTransportConfiguration() instanceof CoapDeviceProfileTransportConfiguration); CoapDeviceProfileTransportConfiguration transportConfiguration = @@ -275,20 +261,15 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { RuleChainId ruleChainId = createEdgeRuleChainAndAssignToEdge("Device Profile Rule Chain"); DashboardId dashboardId = createDashboardAndAssignToEdge("Device Profile Dashboard"); - UUID uuid = Uuids.timeBased(); + DeviceProfile deviceProfileMsg = buildDeviceProfileForUplinkMsg("Device Profile On Edge"); + deviceProfileMsg.setDefaultRuleChainId(ruleChainId); + deviceProfileMsg.setDefaultDashboardId(dashboardId); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceProfileUpdateMsg.Builder deviceProfileUpdateMsgBuilder = DeviceProfileUpdateMsg.newBuilder(); - deviceProfileUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - deviceProfileUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - deviceProfileUpdateMsgBuilder.setName("Device Profile On Edge"); - deviceProfileUpdateMsgBuilder.setDefault(false); - deviceProfileUpdateMsgBuilder.setType(DeviceProfileType.DEFAULT.name()); - deviceProfileUpdateMsgBuilder.setProfileDataBytes(ByteString.copyFrom(dataDecodingEncodingService.encode(createProfileData()))); - deviceProfileUpdateMsgBuilder.setDefaultRuleChainIdMSB(ruleChainId.getId().getMostSignificantBits()); - deviceProfileUpdateMsgBuilder.setDefaultRuleChainIdLSB(ruleChainId.getId().getLeastSignificantBits()); - deviceProfileUpdateMsgBuilder.setDefaultDashboardIdMSB(dashboardId.getId().getMostSignificantBits()); - deviceProfileUpdateMsgBuilder.setDefaultDashboardIdLSB(dashboardId.getId().getLeastSignificantBits()); + deviceProfileUpdateMsgBuilder.setIdMSB(deviceProfileMsg.getUuidId().getMostSignificantBits()); + deviceProfileUpdateMsgBuilder.setIdLSB(deviceProfileMsg.getUuidId().getLeastSignificantBits()); + deviceProfileUpdateMsgBuilder.setEntity(JacksonUtil.toString(deviceProfileMsg)); deviceProfileUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(deviceProfileUpdateMsgBuilder); uplinkMsgBuilder.addDeviceProfileUpdateMsg(deviceProfileUpdateMsgBuilder.build()); @@ -303,7 +284,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { UplinkResponseMsg latestResponseMsg = edgeImitator.getLatestResponseMsg(); Assert.assertTrue(latestResponseMsg.getSuccess()); - DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + uuid, DeviceProfile.class); + DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + deviceProfileMsg.getUuidId(), DeviceProfile.class); Assert.assertNotNull(deviceProfile); Assert.assertEquals("Device Profile On Edge", deviceProfile.getName()); @@ -422,16 +403,15 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { deviceProfileOnCloud = doPost("/api/deviceProfile", deviceProfileOnCloud, DeviceProfile.class); Assert.assertTrue(edgeImitator.waitForMessages()); - UUID uuid = Uuids.timeBased(); + DeviceProfile deviceProfileMsg = buildDeviceProfileForUplinkMsg(deviceProfileOnCloudName); + deviceProfileMsg.setProfileData(deviceProfileOnCloud.getProfileData()); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); DeviceProfileUpdateMsg.Builder deviceProfileUpdateMsgBuilder = DeviceProfileUpdateMsg.newBuilder(); - deviceProfileUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - deviceProfileUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - deviceProfileUpdateMsgBuilder.setName(deviceProfileOnCloudName); - deviceProfileUpdateMsgBuilder.setType(DeviceProfileType.DEFAULT.name()); + deviceProfileUpdateMsgBuilder.setIdMSB(deviceProfileMsg.getUuidId().getMostSignificantBits()); + deviceProfileUpdateMsgBuilder.setIdLSB(deviceProfileMsg.getUuidId().getLeastSignificantBits()); + deviceProfileUpdateMsgBuilder.setEntity(JacksonUtil.toString(deviceProfileMsg)); deviceProfileUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); - deviceProfileUpdateMsgBuilder.setProfileDataBytes(ByteString.copyFrom(dataDecodingEncodingService.encode(deviceProfileOnCloud.getProfileData()))); uplinkMsgBuilder.addDeviceProfileUpdateMsg(deviceProfileUpdateMsgBuilder.build()); testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder); @@ -447,12 +427,26 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { Optional deviceProfileUpdateMsgOpt = edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class); Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent()); DeviceProfileUpdateMsg latestDeviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get(); - Assert.assertNotEquals(deviceProfileOnCloudName, latestDeviceProfileUpdateMsg.getName()); + deviceProfileMsg = JacksonUtil.fromEdgeString(latestDeviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + Assert.assertNotNull(deviceProfileMsg); + Assert.assertNotEquals(deviceProfileOnCloudName, deviceProfileMsg.getName()); - Assert.assertNotEquals(deviceProfileOnCloud.getUuidId(), uuid); + Assert.assertNotEquals(deviceProfileOnCloud.getId(), deviceProfileMsg.getId()); - DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + uuid, DeviceProfile.class); + DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + deviceProfileMsg.getUuidId(), DeviceProfile.class); Assert.assertNotNull(deviceProfile); Assert.assertNotEquals(deviceProfileOnCloudName, deviceProfile.getName()); } + + private DeviceProfile buildDeviceProfileForUplinkMsg(String name) { + DeviceProfile deviceProfile = new DeviceProfile(); + deviceProfile.setId(new DeviceProfileId(UUID.randomUUID())); + deviceProfile.setTenantId(tenantId); + deviceProfile.setName(name); + deviceProfile.setDefault(false); + deviceProfile.setType(DeviceProfileType.DEFAULT); + deviceProfile.setTransportType(DeviceTransportType.DEFAULT); + deviceProfile.setProfileData(createProfileData()); + return deviceProfile; + } } diff --git a/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java index fd34b0d973..b8e784aad5 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java @@ -17,6 +17,7 @@ package org.thingsboard.server.edge; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; @@ -54,10 +55,9 @@ public class EdgeTest extends AbstractEdgeTest { Optional customerUpdateOpt = edgeImitator.findMessageByType(CustomerUpdateMsg.class); Assert.assertTrue(customerUpdateOpt.isPresent()); CustomerUpdateMsg customerUpdateMsg = customerUpdateOpt.get(); + Customer customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), customerUpdateMsg.getIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), customerUpdateMsg.getIdLSB()); - Assert.assertEquals(savedCustomer.getTitle(), customerUpdateMsg.getTitle()); + Assert.assertEquals(savedCustomer, customerMsg); // unassign edge from customer edgeImitator.expectMessageAmount(2); diff --git a/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java index d56ded7014..7ccda39192 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java @@ -15,12 +15,12 @@ */ package org.thingsboard.server.edge; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.fasterxml.jackson.core.type.TypeReference; import com.google.protobuf.AbstractMessage; import com.google.protobuf.InvalidProtocolBufferException; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.EntityView; @@ -30,10 +30,10 @@ import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EntityId; +import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.service.DaoSqlTest; -import org.thingsboard.server.gen.edge.v1.EdgeEntityType; import org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg; import org.thingsboard.server.gen.edge.v1.EntityViewsRequestMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; @@ -68,8 +68,10 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); EntityViewUpdateMsg entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; + EntityView entityView = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + Assert.assertNotNull(entityView); + Assert.assertEquals(savedEntityView, entityView); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); - Assert.assertEquals(savedEntityView.getName(), entityViewUpdateMsg.getName()); // request entity view(s) for device UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); @@ -131,9 +133,10 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; + EntityView entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + Assert.assertNotNull(entityViewMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomer.getUuidId().getMostSignificantBits(), entityViewUpdateMsg.getCustomerIdMSB()); - Assert.assertEquals(savedCustomer.getUuidId().getLeastSignificantBits(), entityViewUpdateMsg.getCustomerIdLSB()); + Assert.assertEquals(savedCustomer.getId(), entityViewMsg.getCustomerId()); // unassign entity view #2 from customer edgeImitator.expectMessageAmount(1); @@ -142,10 +145,10 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; + entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + Assert.assertNotNull(entityViewMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); - Assert.assertEquals( - new CustomerId(EntityId.NULL_UUID), - new CustomerId(new UUID(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()))); + Assert.assertEquals(new CustomerId(EntityId.NULL_UUID), entityViewMsg.getCustomerId()); // delete entity view #2 - messages expected edgeImitator.expectMessageAmount(1); @@ -165,17 +168,13 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { public void testSendEntityViewToCloud() throws Exception { Device device = findDeviceByName("Edge Device 1"); - UUID uuid = Uuids.timeBased(); + EntityView entityViewMsg = buildEntityViewForUplinkMsg(device, "Edge EntityView 2"); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); EntityViewUpdateMsg.Builder entityViewUpdateMsgBuilder = EntityViewUpdateMsg.newBuilder(); - entityViewUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - entityViewUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - entityViewUpdateMsgBuilder.setName("Edge EntityView 2"); - entityViewUpdateMsgBuilder.setType("test"); - entityViewUpdateMsgBuilder.setEntityType(EdgeEntityType.DEVICE); - entityViewUpdateMsgBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits()); - entityViewUpdateMsgBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits()); + entityViewUpdateMsgBuilder.setIdMSB(entityViewMsg.getUuidId().getMostSignificantBits()); + entityViewUpdateMsgBuilder.setIdLSB(entityViewMsg.getUuidId().getLeastSignificantBits()); + entityViewUpdateMsgBuilder.setEntity(JacksonUtil.toString(entityViewMsg)); entityViewUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(entityViewUpdateMsgBuilder); uplinkMsgBuilder.addEntityViewUpdateMsg(entityViewUpdateMsgBuilder.build()); @@ -192,7 +191,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { UplinkResponseMsg latestResponseMsg = edgeImitator.getLatestResponseMsg(); Assert.assertTrue(latestResponseMsg.getSuccess()); - EntityView entityView = doGet("/api/entityView/" + uuid, EntityView.class); + EntityView entityView = doGet("/api/entityView/" + entityViewMsg.getUuidId(), EntityView.class); Assert.assertNotNull(entityView); Assert.assertEquals("Edge EntityView 2", entityView.getName()); } @@ -204,17 +203,13 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { String entityViewOnCloudName = StringUtils.randomAlphanumeric(15); EntityView entityViewOnCloud = saveEntityView(entityViewOnCloudName, device.getId()); - UUID uuid = Uuids.timeBased(); + EntityView entityViewMsg = buildEntityViewForUplinkMsg(device, entityViewOnCloudName); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); EntityViewUpdateMsg.Builder entityViewUpdateMsgBuilder = EntityViewUpdateMsg.newBuilder(); - entityViewUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); - entityViewUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - entityViewUpdateMsgBuilder.setName(entityViewOnCloudName); - entityViewUpdateMsgBuilder.setType("test"); - entityViewUpdateMsgBuilder.setEntityType(EdgeEntityType.DEVICE); - entityViewUpdateMsgBuilder.setEntityIdMSB(device.getUuidId().getMostSignificantBits()); - entityViewUpdateMsgBuilder.setEntityIdLSB(device.getUuidId().getLeastSignificantBits()); + entityViewUpdateMsgBuilder.setIdMSB(entityViewMsg.getUuidId().getMostSignificantBits()); + entityViewUpdateMsgBuilder.setIdLSB(entityViewMsg.getUuidId().getLeastSignificantBits()); + entityViewUpdateMsgBuilder.setEntity(JacksonUtil.toString(entityViewMsg)); entityViewUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(entityViewUpdateMsgBuilder); uplinkMsgBuilder.addEntityViewUpdateMsg(entityViewUpdateMsgBuilder.build()); @@ -232,13 +227,12 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { Optional entityViewUpdateMsgOpt = edgeImitator.findMessageByType(EntityViewUpdateMsg.class); Assert.assertTrue(entityViewUpdateMsgOpt.isPresent()); EntityViewUpdateMsg latestEntityViewUpdateMsg = entityViewUpdateMsgOpt.get(); - Assert.assertNotEquals(entityViewOnCloudName, latestEntityViewUpdateMsg.getName()); - - UUID newEntityViewId = new UUID(latestEntityViewUpdateMsg.getIdMSB(), latestEntityViewUpdateMsg.getIdLSB()); - - Assert.assertNotEquals(entityViewOnCloud.getId().getId(), newEntityViewId); + entityViewMsg = JacksonUtil.fromEdgeString(latestEntityViewUpdateMsg.getEntity(), EntityView.class); + Assert.assertNotNull(entityViewMsg); + Assert.assertNotEquals(entityViewOnCloudName, entityViewMsg.getName()); + Assert.assertNotEquals(entityViewOnCloud.getId(), entityViewMsg.getId()); - EntityView entityView = doGet("/api/entityView/" + newEntityViewId, EntityView.class); + EntityView entityView = doGet("/api/entityView/" + entityViewMsg.getUuidId(), EntityView.class); Assert.assertNotNull(entityView); Assert.assertNotEquals(entityViewOnCloudName, entityView.getName()); } @@ -274,14 +268,11 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); EntityViewUpdateMsg entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; + EntityView entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + Assert.assertNotNull(entityViewMsg); + Assert.assertEquals(entityView, entityViewMsg); + Assert.assertEquals(device.getId(), entityViewMsg.getEntityId()); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); - Assert.assertEquals(entityView.getType(), entityViewUpdateMsg.getType()); - Assert.assertEquals(entityView.getName(), entityViewUpdateMsg.getName()); - Assert.assertEquals(entityView.getUuidId().getMostSignificantBits(), entityViewUpdateMsg.getIdMSB()); - Assert.assertEquals(entityView.getUuidId().getLeastSignificantBits(), entityViewUpdateMsg.getIdLSB()); - Assert.assertEquals(device.getUuidId().getMostSignificantBits(), entityViewUpdateMsg.getEntityIdMSB()); - Assert.assertEquals(device.getUuidId().getLeastSignificantBits(), entityViewUpdateMsg.getEntityIdLSB()); - Assert.assertEquals(device.getId().getEntityType().name(), entityViewUpdateMsg.getEntityType().name()); testAutoGeneratedCodeByProtobuf(entityViewUpdateMsg); } @@ -309,4 +300,15 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { return doPost("/api/entityView", entityView, EntityView.class); } + + private EntityView buildEntityViewForUplinkMsg(Device device, String name) { + EntityView entityView = new EntityView(); + entityView.setId(new EntityViewId(UUID.randomUUID())); + entityView.setTenantId(tenantId); + entityView.setName(name); + entityView.setType("test"); + entityView.setEntityId(device.getId()); + return entityView; + } + } diff --git a/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java index 5525d63f41..50e0be2cc1 100644 --- a/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java @@ -16,17 +16,16 @@ package org.thingsboard.server.edge; import com.google.protobuf.AbstractMessage; -import com.google.protobuf.ByteString; import org.junit.Assert; import org.junit.Test; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.OtaPackageInfo; import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; -import org.thingsboard.server.common.data.ota.OtaPackageType; import org.thingsboard.server.dao.service.DaoSqlTest; import org.thingsboard.server.gen.edge.v1.OtaPackageUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; @@ -59,22 +58,22 @@ public class OtaPackageEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof OtaPackageUpdateMsg); OtaPackageUpdateMsg otaPackageUpdateMsg = (OtaPackageUpdateMsg) latestMessage; + OtaPackage otaPackage = JacksonUtil.fromEdgeString(otaPackageUpdateMsg.getEntity(), OtaPackage.class); + Assert.assertNotNull(otaPackage); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, otaPackageUpdateMsg.getMsgType()); - Assert.assertEquals(savedFirmwareInfo.getUuidId().getMostSignificantBits(), otaPackageUpdateMsg.getIdMSB()); - Assert.assertEquals(savedFirmwareInfo.getUuidId().getLeastSignificantBits(), otaPackageUpdateMsg.getIdLSB()); - Assert.assertEquals(thermostatDeviceProfile.getUuidId().getMostSignificantBits(), otaPackageUpdateMsg.getDeviceProfileIdMSB()); - Assert.assertEquals(thermostatDeviceProfile.getUuidId().getLeastSignificantBits(), otaPackageUpdateMsg.getDeviceProfileIdLSB()); - Assert.assertEquals(FIRMWARE, OtaPackageType.valueOf(otaPackageUpdateMsg.getType())); - Assert.assertEquals("My firmware #1", otaPackageUpdateMsg.getTitle()); - Assert.assertEquals("v1.0", otaPackageUpdateMsg.getVersion()); - Assert.assertEquals("My firmware #1 v1.0", otaPackageUpdateMsg.getTag()); - Assert.assertEquals("http://localhost:8080/v1/package", otaPackageUpdateMsg.getUrl()); - Assert.assertFalse(otaPackageUpdateMsg.hasData()); - Assert.assertFalse(otaPackageUpdateMsg.hasFileName()); - Assert.assertFalse(otaPackageUpdateMsg.hasContentType()); - Assert.assertFalse(otaPackageUpdateMsg.hasChecksumAlgorithm()); - Assert.assertFalse(otaPackageUpdateMsg.hasChecksum()); - Assert.assertFalse(otaPackageUpdateMsg.hasDataSize()); + Assert.assertEquals(savedFirmwareInfo.getId(), otaPackage.getId()); + Assert.assertEquals(thermostatDeviceProfile.getId(), otaPackage.getDeviceProfileId()); + Assert.assertEquals(FIRMWARE, otaPackage.getType()); + Assert.assertEquals("My firmware #1", otaPackage.getTitle()); + Assert.assertEquals("v1.0", otaPackage.getVersion()); + Assert.assertEquals("My firmware #1 v1.0", otaPackage.getTag()); + Assert.assertEquals("http://localhost:8080/v1/package", otaPackage.getUrl()); + Assert.assertNull(otaPackage.getData()); + Assert.assertNull(otaPackage.getFileName()); + Assert.assertNull(otaPackage.getContentType()); + Assert.assertNull(otaPackage.getChecksumAlgorithm()); + Assert.assertNull(otaPackage.getChecksum()); + Assert.assertNull(otaPackage.getDataSize()); // delete ota package edgeImitator.expectMessageAmount(1); @@ -113,22 +112,22 @@ public class OtaPackageEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof OtaPackageUpdateMsg); OtaPackageUpdateMsg otaPackageUpdateMsg = (OtaPackageUpdateMsg) latestMessage; + OtaPackage otaPackage = JacksonUtil.fromEdgeString(otaPackageUpdateMsg.getEntity(), OtaPackage.class); + Assert.assertNotNull(otaPackage); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, otaPackageUpdateMsg.getMsgType()); - Assert.assertEquals(savedFirmwareInfo.getUuidId().getMostSignificantBits(), otaPackageUpdateMsg.getIdMSB()); - Assert.assertEquals(savedFirmwareInfo.getUuidId().getLeastSignificantBits(), otaPackageUpdateMsg.getIdLSB()); - Assert.assertEquals(thermostatDeviceProfile.getUuidId().getMostSignificantBits(), otaPackageUpdateMsg.getDeviceProfileIdMSB()); - Assert.assertEquals(thermostatDeviceProfile.getUuidId().getLeastSignificantBits(), otaPackageUpdateMsg.getDeviceProfileIdLSB()); - Assert.assertEquals(FIRMWARE, OtaPackageType.valueOf(otaPackageUpdateMsg.getType())); - Assert.assertEquals("My firmware #2", otaPackageUpdateMsg.getTitle()); - Assert.assertEquals("v2.0", otaPackageUpdateMsg.getVersion()); - Assert.assertEquals("My firmware #2 v2.0", otaPackageUpdateMsg.getTag()); - Assert.assertFalse(otaPackageUpdateMsg.hasUrl()); - Assert.assertEquals("firmware.bin", otaPackageUpdateMsg.getFileName()); - Assert.assertEquals("image/png", otaPackageUpdateMsg.getContentType()); - Assert.assertEquals(ChecksumAlgorithm.SHA256.name(), otaPackageUpdateMsg.getChecksumAlgorithm()); - Assert.assertEquals("62467691cf583d4fa78b18fafaf9801f505e0ef03baf0603fd4b0cd004cd1e75", otaPackageUpdateMsg.getChecksum()); - Assert.assertEquals(3L, otaPackageUpdateMsg.getDataSize()); - Assert.assertEquals(ByteString.copyFrom(new byte[]{1, 3, 5}), otaPackageUpdateMsg.getData()); + Assert.assertEquals(savedFirmwareInfo.getId(), otaPackage.getId()); + Assert.assertEquals(thermostatDeviceProfile.getId(), otaPackage.getDeviceProfileId()); + Assert.assertEquals(FIRMWARE, otaPackage.getType()); + Assert.assertEquals("My firmware #2", otaPackage.getTitle()); + Assert.assertEquals("v2.0", otaPackage.getVersion()); + Assert.assertEquals("My firmware #2 v2.0", otaPackage.getTag()); + Assert.assertFalse(otaPackage.hasUrl()); + Assert.assertEquals("firmware.bin", otaPackage.getFileName()); + Assert.assertEquals("image/png", otaPackage.getContentType()); + Assert.assertEquals(ChecksumAlgorithm.SHA256, otaPackage.getChecksumAlgorithm()); + Assert.assertEquals("62467691cf583d4fa78b18fafaf9801f505e0ef03baf0603fd4b0cd004cd1e75", otaPackage.getChecksum()); + Assert.assertEquals(3L, otaPackage.getDataSize().longValue()); + Assert.assertEquals(ByteBuffer.wrap(new byte[]{1, 3, 5}), otaPackage.getData()); // delete ota package edgeImitator.expectMessageAmount(1); diff --git a/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java index 32e8e7f222..faf8f6826b 100644 --- a/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java @@ -18,6 +18,7 @@ package org.thingsboard.server.edge; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.queue.ProcessingStrategy; import org.thingsboard.server.common.data.queue.ProcessingStrategyType; import org.thingsboard.server.common.data.queue.Queue; @@ -63,24 +64,22 @@ public class QueueEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof QueueUpdateMsg); QueueUpdateMsg queueUpdateMsg = (QueueUpdateMsg) latestMessage; + Queue queueMsg = JacksonUtil.fromEdgeString(queueUpdateMsg.getEntity(), Queue.class); + Assert.assertNotNull(queueMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, queueUpdateMsg.getMsgType()); - Assert.assertEquals(savedQueue.getUuidId().getMostSignificantBits(), queueUpdateMsg.getIdMSB()); - Assert.assertEquals(savedQueue.getUuidId().getLeastSignificantBits(), queueUpdateMsg.getIdLSB()); - Assert.assertEquals(savedQueue.getTenantId().getId().getMostSignificantBits(), queueUpdateMsg.getTenantIdMSB()); - Assert.assertEquals(savedQueue.getTenantId().getId().getLeastSignificantBits(), queueUpdateMsg.getTenantIdLSB()); - Assert.assertEquals("EdgeMain", queueUpdateMsg.getName()); - Assert.assertEquals("tb_rule_engine.EdgeMain", queueUpdateMsg.getTopic()); - Assert.assertEquals(25, queueUpdateMsg.getPollInterval()); - Assert.assertEquals(10, queueUpdateMsg.getPartitions()); - Assert.assertFalse(queueUpdateMsg.getConsumerPerPartition()); - Assert.assertEquals(2000, queueUpdateMsg.getPackProcessingTimeout()); - Assert.assertEquals(SubmitStrategyType.SEQUENTIAL_BY_ORIGINATOR.name(), queueUpdateMsg.getSubmitStrategy().getType()); - Assert.assertEquals(0, queueUpdateMsg.getSubmitStrategy().getBatchSize()); - Assert.assertEquals(ProcessingStrategyType.RETRY_ALL.name(), queueUpdateMsg.getProcessingStrategy().getType()); - Assert.assertEquals(3, queueUpdateMsg.getProcessingStrategy().getRetries()); - Assert.assertEquals(0.7, queueUpdateMsg.getProcessingStrategy().getFailurePercentage(), 1); - Assert.assertEquals(3, queueUpdateMsg.getProcessingStrategy().getPauseBetweenRetries()); - Assert.assertEquals(5, queueUpdateMsg.getProcessingStrategy().getMaxPauseBetweenRetries()); + Assert.assertEquals(savedQueue, queueMsg); + Assert.assertEquals("EdgeMain", queueMsg.getName()); + Assert.assertEquals("tb_rule_engine.EdgeMain", queueMsg.getTopic()); + Assert.assertEquals(25, queueMsg.getPollInterval()); + Assert.assertEquals(10, queueMsg.getPartitions()); + Assert.assertEquals(2000, queueMsg.getPackProcessingTimeout()); + Assert.assertEquals(SubmitStrategyType.SEQUENTIAL_BY_ORIGINATOR, queueMsg.getSubmitStrategy().getType()); + Assert.assertEquals(0, queueMsg.getSubmitStrategy().getBatchSize()); + Assert.assertEquals(ProcessingStrategyType.RETRY_ALL, queueMsg.getProcessingStrategy().getType()); + Assert.assertEquals(3, queueMsg.getProcessingStrategy().getRetries()); + Assert.assertEquals(0.7, queueMsg.getProcessingStrategy().getFailurePercentage(), 1); + Assert.assertEquals(3, queueMsg.getProcessingStrategy().getPauseBetweenRetries()); + Assert.assertEquals(5, queueMsg.getProcessingStrategy().getMaxPauseBetweenRetries()); // update queue edgeImitator.expectMessageAmount(1); @@ -90,8 +89,10 @@ public class QueueEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof QueueUpdateMsg); queueUpdateMsg = (QueueUpdateMsg) latestMessage; + queueMsg = JacksonUtil.fromEdgeString(queueUpdateMsg.getEntity(), Queue.class); + Assert.assertNotNull(queueMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, queueUpdateMsg.getMsgType()); - Assert.assertEquals(50, queueUpdateMsg.getPollInterval()); + Assert.assertEquals(50, queueMsg.getPollInterval()); // delete queue edgeImitator.expectMessageAmount(1); diff --git a/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java index 04e6f3a3fb..a26dd9512a 100644 --- a/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java @@ -15,13 +15,14 @@ */ package org.thingsboard.server.edge; +import com.fasterxml.jackson.databind.node.TextNode; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.asset.Asset; -import org.thingsboard.server.common.data.id.EntityId; -import org.thingsboard.server.common.data.id.EntityIdFactory; +import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; import org.thingsboard.server.dao.service.DaoSqlTest; @@ -30,8 +31,6 @@ import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UplinkMsg; -import java.util.UUID; - import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @DaoSqlTest @@ -54,15 +53,10 @@ public class RelationEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); RelationUpdateMsg relationUpdateMsg = (RelationUpdateMsg) latestMessage; + EntityRelation entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + Assert.assertNotNull(entityRelation); + Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); - Assert.assertEquals(relationUpdateMsg.getType(), relation.getType()); - Assert.assertEquals(relationUpdateMsg.getFromIdMSB(), relation.getFrom().getId().getMostSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getFromIdLSB(), relation.getFrom().getId().getLeastSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToEntityType(), relation.getTo().getEntityType().name()); - Assert.assertEquals(relationUpdateMsg.getFromIdMSB(), relation.getFrom().getId().getMostSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToIdLSB(), relation.getTo().getId().getLeastSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToEntityType(), relation.getTo().getEntityType().name()); - Assert.assertEquals(relationUpdateMsg.getTypeGroup(), relation.getTypeGroup().name()); // delete relation edgeImitator.expectMessageAmount(1); @@ -78,15 +72,10 @@ public class RelationEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); relationUpdateMsg = (RelationUpdateMsg) latestMessage; + entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + Assert.assertNotNull(entityRelation); + Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); - Assert.assertEquals(relationUpdateMsg.getType(), relation.getType()); - Assert.assertEquals(relationUpdateMsg.getFromIdMSB(), relation.getFrom().getId().getMostSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getFromIdLSB(), relation.getFrom().getId().getLeastSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToEntityType(), relation.getTo().getEntityType().name()); - Assert.assertEquals(relationUpdateMsg.getFromIdMSB(), relation.getFrom().getId().getMostSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToIdLSB(), relation.getTo().getId().getLeastSignificantBits()); - Assert.assertEquals(relationUpdateMsg.getToEntityType(), relation.getTo().getEntityType().name()); - Assert.assertEquals(relationUpdateMsg.getTypeGroup(), relation.getTypeGroup().name()); } @Test @@ -94,17 +83,11 @@ public class RelationEdgeTest extends AbstractEdgeTest { Device device1 = saveDeviceOnCloudAndVerifyDeliveryToEdge(); Device device2 = saveDeviceOnCloudAndVerifyDeliveryToEdge(); + EntityRelation entityRelation = buildEntityRelationForUplinkMsg(device1.getId(), device2.getId()); + UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); RelationUpdateMsg.Builder relationUpdateMsgBuilder = RelationUpdateMsg.newBuilder(); - relationUpdateMsgBuilder.setType("test"); - relationUpdateMsgBuilder.setTypeGroup(RelationTypeGroup.COMMON.name()); - relationUpdateMsgBuilder.setToIdMSB(device1.getId().getId().getMostSignificantBits()); - relationUpdateMsgBuilder.setToIdLSB(device1.getId().getId().getLeastSignificantBits()); - relationUpdateMsgBuilder.setToEntityType(device1.getId().getEntityType().name()); - relationUpdateMsgBuilder.setFromIdMSB(device2.getId().getId().getMostSignificantBits()); - relationUpdateMsgBuilder.setFromIdLSB(device2.getId().getId().getLeastSignificantBits()); - relationUpdateMsgBuilder.setFromEntityType(device2.getId().getEntityType().name()); - relationUpdateMsgBuilder.setAdditionalInfo("{}"); + relationUpdateMsgBuilder.setEntity(JacksonUtil.toString(entityRelation)); testAutoGeneratedCodeByProtobuf(relationUpdateMsgBuilder); uplinkMsgBuilder.addRelationUpdateMsg(relationUpdateMsgBuilder.build()); @@ -158,17 +141,19 @@ public class RelationEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); RelationUpdateMsg relationUpdateMsg = (RelationUpdateMsg) latestMessage; + EntityRelation entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + Assert.assertNotNull(entityRelation); + Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); - Assert.assertEquals(relation.getType(), relationUpdateMsg.getType()); - - UUID fromUUID = new UUID(relationUpdateMsg.getFromIdMSB(), relationUpdateMsg.getFromIdLSB()); - EntityId fromEntityId = EntityIdFactory.getByTypeAndUuid(relationUpdateMsg.getFromEntityType(), fromUUID); - Assert.assertEquals(relation.getFrom(), fromEntityId); - - UUID toUUID = new UUID(relationUpdateMsg.getToIdMSB(), relationUpdateMsg.getToIdLSB()); - EntityId toEntityId = EntityIdFactory.getByTypeAndUuid(relationUpdateMsg.getToEntityType(), toUUID); - Assert.assertEquals(relation.getTo(), toEntityId); + } - Assert.assertEquals(relation.getTypeGroup().name(), relationUpdateMsg.getTypeGroup()); + private EntityRelation buildEntityRelationForUplinkMsg(DeviceId deviceId1, DeviceId deviceId2) { + EntityRelation relation = new EntityRelation(); + relation.setType("test"); + relation.setTypeGroup(RelationTypeGroup.COMMON); + relation.setTo(deviceId1); + relation.setFrom(deviceId2); + relation.setAdditionalInfo(TextNode.valueOf("{}")); + return relation; } } diff --git a/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java index 848b115c72..0322bd849e 100644 --- a/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java @@ -19,7 +19,6 @@ import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.rule.engine.metadata.TbGetAttributesNode; import org.thingsboard.rule.engine.metadata.TbGetAttributesNodeConfiguration; import org.thingsboard.rule.engine.util.TbMsgSource; import org.thingsboard.server.common.data.edge.Edge; @@ -32,7 +31,6 @@ import org.thingsboard.server.dao.service.DaoSqlTest; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataRequestMsg; import org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg; import org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg; -import org.thingsboard.server.gen.edge.v1.RuleNodeProto; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UplinkMsg; @@ -40,7 +38,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.UUID; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -64,11 +61,12 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { Optional ruleChainUpdateMsgOpt = edgeImitator.findMessageByType(RuleChainUpdateMsg.class); Assert.assertTrue(ruleChainUpdateMsgOpt.isPresent()); RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get(); + RuleChain ruleChainMsg = JacksonUtil.fromEdgeString(ruleChainUpdateMsg.getEntity(), RuleChain.class); + Assert.assertNotNull(ruleChainMsg); Assert.assertTrue(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(ruleChainUpdateMsg.getMsgType()) || UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE.equals(ruleChainUpdateMsg.getMsgType())); - Assert.assertEquals(ruleChainUpdateMsg.getIdMSB(), savedRuleChain.getUuidId().getMostSignificantBits()); - Assert.assertEquals(ruleChainUpdateMsg.getIdLSB(), savedRuleChain.getUuidId().getLeastSignificantBits()); - Assert.assertEquals(ruleChainUpdateMsg.getName(), savedRuleChain.getName()); + Assert.assertEquals(savedRuleChain.getId(), ruleChainMsg.getId()); + Assert.assertEquals(savedRuleChain.getName(), ruleChainMsg.getName()); testRuleChainMetadataRequestMsg(savedRuleChain.getId()); @@ -113,8 +111,9 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RuleChainMetadataUpdateMsg); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = (RuleChainMetadataUpdateMsg) latestMessage; - Assert.assertEquals(ruleChainMetadataUpdateMsg.getRuleChainIdMSB(), edgeRootRuleChainId.getId().getMostSignificantBits()); - Assert.assertEquals(ruleChainMetadataUpdateMsg.getRuleChainIdLSB(), edgeRootRuleChainId.getId().getLeastSignificantBits()); + RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromEdgeString(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); + Assert.assertNotNull(ruleChainMetadataMsg); + Assert.assertEquals(edgeRootRuleChainId, ruleChainMetadataMsg.getRuleChainId()); testAutoGeneratedCodeByProtobuf(ruleChainMetadataUpdateMsg); } @@ -138,12 +137,12 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RuleChainMetadataUpdateMsg); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = (RuleChainMetadataUpdateMsg) latestMessage; - RuleChainId receivedRuleChainId = - new RuleChainId(new UUID(ruleChainMetadataUpdateMsg.getRuleChainIdMSB(), ruleChainMetadataUpdateMsg.getRuleChainIdLSB())); - Assert.assertEquals(ruleChainId, receivedRuleChainId); + RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromEdgeString(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); + Assert.assertNotNull(ruleChainMetadataMsg); + Assert.assertEquals(ruleChainId, ruleChainMetadataMsg.getRuleChainId()); - for (RuleNodeProto ruleNodeProto : ruleChainMetadataUpdateMsg.getNodesList()) { - Assert.assertEquals(CONFIGURATION_VERSION, ruleNodeProto.getConfigurationVersion()); + for (RuleNode ruleNode : ruleChainMetadataMsg.getNodes()) { + Assert.assertEquals(CONFIGURATION_VERSION, ruleNode.getConfigurationVersion()); } } @@ -208,10 +207,11 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { Optional ruleChainUpdateMsgOpt = edgeImitator.findMessageByType(RuleChainUpdateMsg.class); Assert.assertTrue(ruleChainUpdateMsgOpt.isPresent()); RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get(); + RuleChain ruleChainMsg = JacksonUtil.fromEdgeString(ruleChainUpdateMsg.getEntity(), RuleChain.class); + Assert.assertNotNull(ruleChainMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, ruleChainUpdateMsg.getMsgType()); - Assert.assertEquals(ruleChainUpdateMsg.getIdMSB(), savedRuleChain.getUuidId().getMostSignificantBits()); - Assert.assertEquals(ruleChainUpdateMsg.getIdLSB(), savedRuleChain.getUuidId().getLeastSignificantBits()); - Assert.assertTrue(ruleChainUpdateMsg.getRoot()); + Assert.assertTrue(ruleChainMsg.isRoot()); + Assert.assertEquals(savedRuleChain.getId(), ruleChainMsg.getId()); // revert root rule chain edgeImitator.expectMessageAmount(1); diff --git a/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java index 95fdc9f56a..97ac2eacc5 100644 --- a/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java @@ -17,16 +17,15 @@ package org.thingsboard.server.edge; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Tenant; import org.thingsboard.server.common.data.TenantProfile; -import org.thingsboard.server.common.data.id.TenantProfileId; import org.thingsboard.server.dao.service.DaoSqlTest; import org.thingsboard.server.gen.edge.v1.TenantProfileUpdateMsg; import org.thingsboard.server.gen.edge.v1.TenantUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import java.util.Optional; -import java.util.UUID; @DaoSqlTest public class TenantEdgeTest extends AbstractEdgeTest { @@ -49,15 +48,14 @@ public class TenantEdgeTest extends AbstractEdgeTest { Optional tenantProfileUpdateMsgOpt = edgeImitator.findMessageByType(TenantProfileUpdateMsg.class); Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); + Tenant tenantMsg = JacksonUtil.fromEdgeString(tenantUpdateMsg.getEntity(), Tenant.class); + Assert.assertNotNull(tenantMsg); + Assert.assertEquals(savedTenant, tenantMsg); + TenantProfile tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfileMsg); + Assert.assertEquals(tenantMsg.getTenantProfileId(), tenantProfileMsg.getId()); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantUpdateMsg.getMsgType()); - Assert.assertEquals(savedTenant.getUuidId().getMostSignificantBits(), tenantUpdateMsg.getIdMSB()); - Assert.assertEquals(savedTenant.getUuidId().getLeastSignificantBits(), tenantUpdateMsg.getIdLSB()); - Assert.assertEquals(savedTenant.getTitle(), tenantUpdateMsg.getTitle()); - Assert.assertEquals("Updated Title for Tenant Edge Test", tenantUpdateMsg.getTitle()); - Assert.assertEquals(savedTenant.getTenantProfileId(), new TenantProfileId - (new UUID(tenantUpdateMsg.getProfileIdMSB(), tenantUpdateMsg.getProfileIdLSB()))); - Assert.assertEquals(savedTenant.getTenantProfileId(), new TenantProfileId - (new UUID(tenantProfileUpdateMsg.getIdMSB(), tenantProfileUpdateMsg.getIdLSB()))); + Assert.assertEquals("Updated Title for Tenant Edge Test", tenantMsg.getTitle()); //change tenant profile for tenant TenantProfile tenantProfile = createTenantProfile(); @@ -68,18 +66,17 @@ public class TenantEdgeTest extends AbstractEdgeTest { tenantUpdateMsgOpt = edgeImitator.findMessageByType(TenantUpdateMsg.class); Assert.assertTrue(tenantUpdateMsgOpt.isPresent()); tenantUpdateMsg = tenantUpdateMsgOpt.get(); + tenantMsg = JacksonUtil.fromEdgeString(tenantUpdateMsg.getEntity(), Tenant.class); + Assert.assertNotNull(tenantMsg); tenantProfileUpdateMsgOpt = edgeImitator.findMessageByType(TenantProfileUpdateMsg.class); Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); + tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfileMsg); // tenant update Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantUpdateMsg.getMsgType()); - Assert.assertEquals(savedTenant.getUuidId().getMostSignificantBits(), tenantUpdateMsg.getIdMSB()); - Assert.assertEquals(savedTenant.getUuidId().getLeastSignificantBits(), tenantUpdateMsg.getIdLSB()); - Assert.assertEquals(savedTenant.getTitle(), tenantUpdateMsg.getTitle()); - Assert.assertEquals(savedTenant.getTenantProfileId(), new TenantProfileId - (new UUID(tenantUpdateMsg.getProfileIdMSB(), tenantUpdateMsg.getProfileIdLSB()))); - Assert.assertEquals(savedTenant.getTenantProfileId(), new TenantProfileId - (new UUID(tenantProfileUpdateMsg.getIdMSB(), tenantProfileUpdateMsg.getIdLSB()))); + Assert.assertEquals(savedTenant, tenantMsg); + Assert.assertEquals(savedTenant.getTenantProfileId(), tenantProfileMsg.getId()); } private TenantProfile createTenantProfile() { diff --git a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java index 6f665ce462..695c3a1dea 100644 --- a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java @@ -18,6 +18,7 @@ package org.thingsboard.server.edge; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.queue.ProcessingStrategy; @@ -55,12 +56,12 @@ public class TenantProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof TenantProfileUpdateMsg); TenantProfileUpdateMsg tenantProfileUpdateMsg = (TenantProfileUpdateMsg) latestMessage; + TenantProfile tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantProfileUpdateMsg.getMsgType()); - Assert.assertEquals(edgeTenantProfile.getUuidId().getMostSignificantBits(), tenantProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(edgeTenantProfile.getUuidId().getLeastSignificantBits(), tenantProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(edgeTenantProfile.getDescription(), tenantProfileUpdateMsg.getDescription()); - Assert.assertEquals("Updated tenant profile Edge Test", tenantProfileUpdateMsg.getDescription()); - Assert.assertEquals("Tenant Profile Edge Test", tenantProfileUpdateMsg.getName()); + Assert.assertEquals(edgeTenantProfile, tenantProfileMsg); + Assert.assertEquals("Updated tenant profile Edge Test", tenantProfileMsg.getDescription()); + Assert.assertEquals("Tenant Profile Edge Test", tenantProfileMsg.getName()); loginTenantAdmin(); } diff --git a/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java index 3dc398b9f3..2254f8d051 100644 --- a/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java @@ -20,10 +20,12 @@ import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.security.Authority; +import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.dao.service.DaoSqlTest; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UplinkMsg; @@ -57,13 +59,14 @@ public class UserEdgeTest extends AbstractEdgeTest { Optional userUpdateMsgOpt = edgeImitator.findMessageByType(UserUpdateMsg.class); Assert.assertTrue(userUpdateMsgOpt.isPresent()); UserUpdateMsg userUpdateMsg = userUpdateMsgOpt.get(); + User userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); - Assert.assertEquals(savedTenantAdmin.getUuidId().getMostSignificantBits(), userUpdateMsg.getIdMSB()); - Assert.assertEquals(savedTenantAdmin.getUuidId().getLeastSignificantBits(), userUpdateMsg.getIdLSB()); - Assert.assertEquals(savedTenantAdmin.getAuthority().name(), userUpdateMsg.getAuthority()); - Assert.assertEquals(savedTenantAdmin.getEmail(), userUpdateMsg.getEmail()); - Assert.assertEquals(savedTenantAdmin.getFirstName(), userUpdateMsg.getFirstName()); - Assert.assertEquals(savedTenantAdmin.getLastName(), userUpdateMsg.getLastName()); + Assert.assertEquals(savedTenantAdmin.getId(), userMsg.getId()); + Assert.assertEquals(savedTenantAdmin.getAuthority(), userMsg.getAuthority()); + Assert.assertEquals(savedTenantAdmin.getEmail(), userMsg.getEmail()); + Assert.assertEquals(savedTenantAdmin.getFirstName(), userMsg.getFirstName()); + Assert.assertEquals(savedTenantAdmin.getLastName(), userMsg.getLastName()); Optional userCredentialsUpdateMsgOpt = edgeImitator.findMessageByType(UserCredentialsUpdateMsg.class); Assert.assertTrue(userCredentialsUpdateMsgOpt.isPresent()); @@ -75,8 +78,10 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserUpdateMsg); userUpdateMsg = (UserUpdateMsg) latestMessage; + userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); - Assert.assertEquals(savedTenantAdmin.getLastName(), userUpdateMsg.getLastName()); + Assert.assertEquals(savedTenantAdmin.getLastName(), userMsg.getLastName()); // update user credentials login(savedTenantAdmin.getEmail(), "tenant"); @@ -90,9 +95,10 @@ public class UserEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(savedTenantAdmin.getUuidId().getMostSignificantBits(), userCredentialsUpdateMsg.getUserIdMSB()); - Assert.assertEquals(savedTenantAdmin.getUuidId().getLeastSignificantBits(), userCredentialsUpdateMsg.getUserIdLSB()); - Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsUpdateMsg.getPassword())); + UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + Assert.assertNotNull(userCredentialsMsg); + Assert.assertEquals(savedTenantAdmin.getId(), userCredentialsMsg.getUserId()); + Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsMsg.getPassword())); loginTenantAdmin(); @@ -138,15 +144,15 @@ public class UserEdgeTest extends AbstractEdgeTest { Optional userUpdateMsgOpt = edgeImitator.findMessageByType(UserUpdateMsg.class); Assert.assertTrue(userUpdateMsgOpt.isPresent()); UserUpdateMsg userUpdateMsg = userUpdateMsgOpt.get(); + User userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomerUser.getUuidId().getMostSignificantBits(), userUpdateMsg.getIdMSB()); - Assert.assertEquals(savedCustomerUser.getUuidId().getLeastSignificantBits(), userUpdateMsg.getIdLSB()); - Assert.assertEquals(savedCustomerUser.getCustomerId().getId().getMostSignificantBits(), userUpdateMsg.getCustomerIdMSB()); - Assert.assertEquals(savedCustomerUser.getCustomerId().getId().getLeastSignificantBits(), userUpdateMsg.getCustomerIdLSB()); - Assert.assertEquals(savedCustomerUser.getAuthority().name(), userUpdateMsg.getAuthority()); - Assert.assertEquals(savedCustomerUser.getEmail(), userUpdateMsg.getEmail()); - Assert.assertEquals(savedCustomerUser.getFirstName(), userUpdateMsg.getFirstName()); - Assert.assertEquals(savedCustomerUser.getLastName(), userUpdateMsg.getLastName()); + Assert.assertEquals(savedCustomerUser.getId(), userMsg.getId()); + Assert.assertEquals(savedCustomerUser.getCustomerId(), userMsg.getCustomerId()); + Assert.assertEquals(savedCustomerUser.getAuthority(), userMsg.getAuthority()); + Assert.assertEquals(savedCustomerUser.getEmail(), userMsg.getEmail()); + Assert.assertEquals(savedCustomerUser.getFirstName(), userMsg.getFirstName()); + Assert.assertEquals(savedCustomerUser.getLastName(), userMsg.getLastName()); // update user edgeImitator.expectMessageAmount(1); @@ -156,8 +162,10 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserUpdateMsg); userUpdateMsg = (UserUpdateMsg) latestMessage; + userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); - Assert.assertEquals(savedCustomerUser.getLastName(), userUpdateMsg.getLastName()); + Assert.assertEquals(savedCustomerUser.getLastName(), userMsg.getLastName()); // update user credentials login(savedCustomerUser.getEmail(), "customer"); @@ -171,9 +179,10 @@ public class UserEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(savedCustomerUser.getUuidId().getMostSignificantBits(), userCredentialsUpdateMsg.getUserIdMSB()); - Assert.assertEquals(savedCustomerUser.getUuidId().getLeastSignificantBits(), userCredentialsUpdateMsg.getUserIdLSB()); - Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsUpdateMsg.getPassword())); + UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + Assert.assertNotNull(userCredentialsMsg); + Assert.assertEquals(savedCustomerUser.getId(), userCredentialsMsg.getUserId()); + Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsMsg.getPassword())); loginTenantAdmin(); @@ -211,8 +220,9 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(tenantAdminUserId.getId().getMostSignificantBits(), userCredentialsUpdateMsg.getUserIdMSB()); - Assert.assertEquals(tenantAdminUserId.getId().getLeastSignificantBits(), userCredentialsUpdateMsg.getUserIdLSB()); + UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + Assert.assertNotNull(userCredentialsMsg); + Assert.assertEquals(tenantAdminUserId, userCredentialsMsg.getUserId()); } @Test @@ -235,8 +245,9 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - Assert.assertEquals(userCredentialsUpdateMsg.getUserIdMSB(), tenantAdminUserId.getId().getMostSignificantBits()); - Assert.assertEquals(userCredentialsUpdateMsg.getUserIdLSB(), tenantAdminUserId.getId().getLeastSignificantBits()); + UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + Assert.assertNotNull(userCredentialsMsg); + Assert.assertEquals(tenantAdminUserId, userCredentialsMsg.getUserId()); testAutoGeneratedCodeByProtobuf(userCredentialsUpdateMsg); } diff --git a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java index e958741cd2..bb6d09f7bc 100644 --- a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java @@ -43,11 +43,12 @@ public class WidgetEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetsBundleUpdateMsg); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = (WidgetsBundleUpdateMsg) latestMessage; + WidgetsBundle widgetsBundleMsg = JacksonUtil.fromEdgeString(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); + Assert.assertNotNull(widgetsBundleMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, widgetsBundleUpdateMsg.getMsgType()); - Assert.assertEquals(savedWidgetsBundle.getUuidId().getMostSignificantBits(), widgetsBundleUpdateMsg.getIdMSB()); - Assert.assertEquals(savedWidgetsBundle.getUuidId().getLeastSignificantBits(), widgetsBundleUpdateMsg.getIdLSB()); - Assert.assertEquals(savedWidgetsBundle.getAlias(), widgetsBundleUpdateMsg.getAlias()); - Assert.assertEquals(savedWidgetsBundle.getTitle(), widgetsBundleUpdateMsg.getTitle()); + Assert.assertEquals(savedWidgetsBundle.getId(), widgetsBundleMsg.getId()); + Assert.assertEquals(savedWidgetsBundle.getAlias(), widgetsBundleMsg.getAlias()); + Assert.assertEquals(savedWidgetsBundle.getTitle(), widgetsBundleMsg.getTitle()); testAutoGeneratedCodeByProtobuf(widgetsBundleUpdateMsg); // create widget type @@ -64,15 +65,10 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetTypeUpdateMsg); WidgetTypeUpdateMsg widgetTypeUpdateMsg = (WidgetTypeUpdateMsg) latestMessage; + WidgetType widgetsType = JacksonUtil.fromEdgeString(widgetTypeUpdateMsg.getEntity(), WidgetType.class); + Assert.assertNotNull(widgetsType); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, widgetTypeUpdateMsg.getMsgType()); - Assert.assertEquals(savedWidgetType.getUuidId().getMostSignificantBits(), widgetTypeUpdateMsg.getIdMSB()); - Assert.assertEquals(savedWidgetType.getUuidId().getLeastSignificantBits(), widgetTypeUpdateMsg.getIdLSB()); - Assert.assertEquals(savedWidgetType.getFqn(), widgetTypeUpdateMsg.getFqn()); - Assert.assertEquals(savedWidgetType.getName(), widgetTypeUpdateMsg.getName()); - Assert.assertTrue(widgetTypeUpdateMsg.getDeprecated()); - Assert.assertEquals("bundle_alias", widgetTypeUpdateMsg.getBundleAlias()); - Assert.assertEquals("type_alias", widgetTypeUpdateMsg.getAlias()); - Assert.assertEquals(JacksonUtil.toJsonNode(widgetTypeUpdateMsg.getDescriptorJson()), savedWidgetType.getDescriptor()); + Assert.assertEquals(savedWidgetType, widgetsType); // update widget bundle edgeImitator.expectMessageAmount(1); @@ -82,8 +78,10 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetsBundleUpdateMsg); widgetsBundleUpdateMsg = (WidgetsBundleUpdateMsg) latestMessage; + widgetsBundleMsg = JacksonUtil.fromEdgeString(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); + Assert.assertNotNull(widgetsBundleMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, widgetsBundleUpdateMsg.getMsgType()); - Assert.assertEquals(savedWidgetsBundle.getTitle(), widgetsBundleUpdateMsg.getTitle()); + Assert.assertEquals(savedWidgetsBundle.getTitle(), widgetsBundleMsg.getTitle()); // update widget type edgeImitator.expectMessageAmount(1); @@ -93,8 +91,10 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetTypeUpdateMsg); widgetTypeUpdateMsg = (WidgetTypeUpdateMsg) latestMessage; + widgetsType = JacksonUtil.fromEdgeString(widgetTypeUpdateMsg.getEntity(), WidgetType.class); + Assert.assertNotNull(widgetsType); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, widgetTypeUpdateMsg.getMsgType()); - Assert.assertEquals(savedWidgetType.getName(), widgetTypeUpdateMsg.getName()); + Assert.assertEquals(savedWidgetType.getName(), widgetsType.getName()); // delete widget type edgeImitator.expectMessageAmount(1); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/DashboardInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/DashboardInfo.java index fe08934f79..abc9a53202 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/DashboardInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/DashboardInfo.java @@ -32,6 +32,8 @@ import java.util.Set; @ApiModel public class DashboardInfo extends BaseData implements HasName, HasTenantId, HasTitle { + private static final long serialVersionUID = -9080404114760433799L; + private TenantId tenantId; @NoXss @Length(fieldName = "title") diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/id/UserCredentialsId.java b/common/data/src/main/java/org/thingsboard/server/common/data/id/UserCredentialsId.java index 543ac1ba6f..d0a29695c0 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/id/UserCredentialsId.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/id/UserCredentialsId.java @@ -15,11 +15,15 @@ */ package org.thingsboard.server.common.data.id; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + import java.util.UUID; public class UserCredentialsId extends UUIDBased { - public UserCredentialsId(UUID id){ + @JsonCreator + public UserCredentialsId(@JsonProperty("id")UUID id){ super(id); } } diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 71e84304ed..7d5c57928f 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -36,6 +36,7 @@ enum EdgeVersion { V_3_4_0 = 2; V_3_6_0 = 3; V_3_6_1 = 4; + V_3_6_2 = 5; } /** @@ -138,25 +139,28 @@ message RuleChainUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string name = 4; - optional int64 firstRuleNodeIdMSB = 5; - optional int64 firstRuleNodeIdLSB = 6; - bool root = 7; - bool debugMode = 8; - string configuration = 9; + string name = 4 [deprecated = true]; + optional int64 firstRuleNodeIdMSB = 5 [deprecated = true]; + optional int64 firstRuleNodeIdLSB = 6 [deprecated = true]; + bool root = 7 [deprecated = true]; + bool debugMode = 8 [deprecated = true]; + string configuration = 9 [deprecated = true]; + string entity = 10; } message RuleChainMetadataUpdateMsg { UpdateMsgType msgType = 1; - int64 ruleChainIdMSB = 2; - int64 ruleChainIdLSB = 3; - int32 firstNodeIndex = 4; - repeated RuleNodeProto nodes = 5; - repeated NodeConnectionInfoProto connections = 6; - repeated RuleChainConnectionInfoProto ruleChainConnections = 7; + int64 ruleChainIdMSB = 2 [deprecated = true]; + int64 ruleChainIdLSB = 3 [deprecated = true]; + int32 firstNodeIndex = 4 [deprecated = true]; + repeated RuleNodeProto nodes = 5 [deprecated = true]; + repeated NodeConnectionInfoProto connections = 6 [deprecated = true]; + repeated RuleChainConnectionInfoProto ruleChainConnections = 7 [deprecated = true]; + string entity = 8; } message RuleNodeProto { + option deprecated = true; int64 idMSB = 1; int64 idLSB = 2; string type = 3; @@ -169,12 +173,14 @@ message RuleNodeProto { } message NodeConnectionInfoProto { + option deprecated = true; int32 fromIndex = 1; int32 toIndex = 2; string type = 3; } message RuleChainConnectionInfoProto { + option deprecated = true; int32 fromIndex = 1; int64 targetRuleChainIdMSB = 2; int64 targetRuleChainIdLSB = 3; @@ -186,184 +192,196 @@ message DashboardUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional int64 customerIdMSB = 4; - optional int64 customerIdLSB = 5; - string title = 6; - string configuration = 7; - optional string assignedCustomers = 8; - optional string image = 9; - optional int32 mobileOrder = 10; - bool mobileHide = 11; + optional int64 customerIdMSB = 4 [deprecated = true]; + optional int64 customerIdLSB = 5 [deprecated = true]; + string title = 6 [deprecated = true]; + string configuration = 7 [deprecated = true]; + optional string assignedCustomers = 8 [deprecated = true]; + optional string image = 9 [deprecated = true]; + optional int32 mobileOrder = 10 [deprecated = true]; + bool mobileHide = 11 [deprecated = true]; + string entity = 12; } message DeviceUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional int64 customerIdMSB = 4; - optional int64 customerIdLSB = 5; - optional int64 deviceProfileIdMSB = 6; - optional int64 deviceProfileIdLSB = 7; - string name = 8; - string type = 9; - optional string label = 10; - optional string additionalInfo = 11; + optional int64 customerIdMSB = 4 [deprecated = true]; + optional int64 customerIdLSB = 5 [deprecated = true]; + optional int64 deviceProfileIdMSB = 6 [deprecated = true]; + optional int64 deviceProfileIdLSB = 7 [deprecated = true]; + string name = 8 [deprecated = true]; + string type = 9 [deprecated = true]; + optional string label = 10 [deprecated = true]; + optional string additionalInfo = 11 [deprecated = true]; optional string conflictName = 12 [deprecated = true]; - optional int64 firmwareIdMSB = 13; - optional int64 firmwareIdLSB = 14; - optional bytes deviceDataBytes = 15; - optional int64 softwareIdMSB = 16; - optional int64 softwareIdLSB = 17; + optional int64 firmwareIdMSB = 13 [deprecated = true]; + optional int64 firmwareIdLSB = 14 [deprecated = true]; + optional bytes deviceDataBytes = 15 [deprecated = true]; + optional int64 softwareIdMSB = 16 [deprecated = true]; + optional int64 softwareIdLSB = 17 [deprecated = true]; + string entity = 18; } message DeviceProfileUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string name = 4; - optional string description = 5; - bool default = 6; - string type = 7; - optional string transportType = 8; - optional string provisionType = 9; - int64 defaultRuleChainIdMSB = 10; - int64 defaultRuleChainIdLSB = 11; - string defaultQueueName = 12; - bytes profileDataBytes = 13; - optional string provisionDeviceKey = 14; - optional bytes image = 15; - optional int64 firmwareIdMSB = 16; - optional int64 firmwareIdLSB = 17; - optional int64 softwareIdMSB = 18; - optional int64 softwareIdLSB = 19; - optional int64 defaultDashboardIdMSB = 20; - optional int64 defaultDashboardIdLSB = 21; + string name = 4 [deprecated = true]; + optional string description = 5 [deprecated = true]; + bool default = 6 [deprecated = true]; + string type = 7 [deprecated = true]; + optional string transportType = 8 [deprecated = true]; + optional string provisionType = 9 [deprecated = true]; + int64 defaultRuleChainIdMSB = 10 [deprecated = true]; + int64 defaultRuleChainIdLSB = 11 [deprecated = true]; + string defaultQueueName = 12 [deprecated = true]; + bytes profileDataBytes = 13 [deprecated = true]; + optional string provisionDeviceKey = 14 [deprecated = true]; + optional bytes image = 15 [deprecated = true]; + optional int64 firmwareIdMSB = 16 [deprecated = true]; + optional int64 firmwareIdLSB = 17 [deprecated = true]; + optional int64 softwareIdMSB = 18 [deprecated = true]; + optional int64 softwareIdLSB = 19 [deprecated = true]; + optional int64 defaultDashboardIdMSB = 20 [deprecated = true]; + optional int64 defaultDashboardIdLSB = 21 [deprecated = true]; + string entity = 22; } message AssetProfileUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string name = 4; - optional string description = 5; - bool default = 6; - int64 defaultRuleChainIdMSB = 7; - int64 defaultRuleChainIdLSB = 8; - int64 defaultDashboardIdMSB = 9; - int64 defaultDashboardIdLSB = 10; - optional string defaultQueueName = 11; - optional bytes image = 12; + string name = 4 [deprecated = true]; + optional string description = 5 [deprecated = true]; + bool default = 6 [deprecated = true]; + int64 defaultRuleChainIdMSB = 7 [deprecated = true]; + int64 defaultRuleChainIdLSB = 8 [deprecated = true]; + int64 defaultDashboardIdMSB = 9 [deprecated = true]; + int64 defaultDashboardIdLSB = 10 [deprecated = true]; + optional string defaultQueueName = 11 [deprecated = true]; + optional bytes image = 12 [deprecated = true]; + string entity = 13; } message DeviceCredentialsUpdateMsg { - int64 deviceIdMSB = 1; - int64 deviceIdLSB = 2; - string credentialsType = 3; - string credentialsId = 4; - optional string credentialsValue = 5; + int64 deviceIdMSB = 1 [deprecated = true]; + int64 deviceIdLSB = 2 [deprecated = true]; + string credentialsType = 3 [deprecated = true]; + string credentialsId = 4 [deprecated = true]; + optional string credentialsValue = 5 [deprecated = true]; + string entity = 6; } message AssetUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional int64 customerIdMSB = 4; - optional int64 customerIdLSB = 5; - string name = 6; - string type = 7; - optional string label = 8; - optional string additionalInfo = 9; - optional int64 assetProfileIdMSB = 10; - optional int64 assetProfileIdLSB = 11; + optional int64 customerIdMSB = 4 [deprecated = true]; + optional int64 customerIdLSB = 5 [deprecated = true]; + string name = 6 [deprecated = true]; + string type = 7 [deprecated = true]; + optional string label = 8 [deprecated = true]; + optional string additionalInfo = 9 [deprecated = true]; + optional int64 assetProfileIdMSB = 10 [deprecated = true]; + optional int64 assetProfileIdLSB = 11 [deprecated = true]; + string entity = 12; } message EntityViewUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional int64 customerIdMSB = 4; - optional int64 customerIdLSB = 5; - string name = 6; - string type = 7; - int64 entityIdMSB = 8; - int64 entityIdLSB = 9; - EdgeEntityType entityType = 10; - optional string additionalInfo = 11; + optional int64 customerIdMSB = 4 [deprecated = true]; + optional int64 customerIdLSB = 5 [deprecated = true]; + string name = 6 [deprecated = true]; + string type = 7 [deprecated = true]; + int64 entityIdMSB = 8 [deprecated = true]; + int64 entityIdLSB = 9 [deprecated = true]; + EdgeEntityType entityType = 10 [deprecated = true]; + optional string additionalInfo = 11 [deprecated = true]; + string entity = 12; } message AlarmUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string name = 4; - string type = 5; - string originatorType = 6; + string name = 4 [deprecated = true]; + string type = 5 [deprecated = true]; + string originatorType = 6 [deprecated = true]; string originatorName = 7; - string severity = 8; - string status = 9; - int64 startTs = 10; - int64 endTs = 11; - int64 ackTs = 12; - int64 clearTs = 13; - string details = 14; - bool propagate = 15; - bool propagateToOwner = 16; - bool propagateToTenant = 17; + string severity = 8 [deprecated = true]; + string status = 9 [deprecated = true]; + int64 startTs = 10 [deprecated = true]; + int64 endTs = 11 [deprecated = true]; + int64 ackTs = 12 [deprecated = true]; + int64 clearTs = 13 [deprecated = true]; + string details = 14 [deprecated = true]; + bool propagate = 15 [deprecated = true]; + bool propagateToOwner = 16 [deprecated = true]; + bool propagateToTenant = 17 [deprecated = true]; + string entity = 18; } message CustomerUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string title = 4; - optional string country = 5; - optional string state = 6; - optional string city = 7; - optional string address = 8; - optional string address2 = 9; - optional string zip = 10; - optional string phone = 11; - optional string email = 12; - optional string additionalInfo = 13; + string title = 4 [deprecated = true]; + optional string country = 5 [deprecated = true]; + optional string state = 6 [deprecated = true]; + optional string city = 7 [deprecated = true]; + optional string address = 8 [deprecated = true]; + optional string address2 = 9 [deprecated = true]; + optional string zip = 10 [deprecated = true]; + optional string phone = 11 [deprecated = true]; + optional string email = 12 [deprecated = true]; + optional string additionalInfo = 13 [deprecated = true]; + string entity = 14; } message RelationUpdateMsg { UpdateMsgType msgType = 1; - int64 fromIdMSB = 2; - int64 fromIdLSB = 3; - string fromEntityType = 4; - int64 toIdMSB = 5; - int64 toIdLSB = 6; - string toEntityType = 7; - string type = 8; - optional string typeGroup = 9; - string additionalInfo = 10; + int64 fromIdMSB = 2 [deprecated = true]; + int64 fromIdLSB = 3 [deprecated = true]; + string fromEntityType = 4 [deprecated = true]; + int64 toIdMSB = 5 [deprecated = true]; + int64 toIdLSB = 6 [deprecated = true]; + string toEntityType = 7 [deprecated = true]; + string type = 8 [deprecated = true]; + optional string typeGroup = 9 [deprecated = true]; + string additionalInfo = 10 [deprecated = true]; + string entity = 11; } message UserUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - optional int64 customerIdMSB = 4; - optional int64 customerIdLSB = 5; - string email = 6; - string authority = 7; - optional string firstName = 8; - optional string lastName = 9; - optional string additionalInfo = 10; + optional int64 customerIdMSB = 4 [deprecated = true]; + optional int64 customerIdLSB = 5 [deprecated = true]; + string email = 6 [deprecated = true]; + string authority = 7 [deprecated = true]; + optional string firstName = 8 [deprecated = true]; + optional string lastName = 9 [deprecated = true]; + optional string additionalInfo = 10 [deprecated = true]; + string entity = 11; } message WidgetsBundleUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string title = 4; - string alias = 5; - optional bytes image = 6; - bool isSystem = 7; - optional string description = 8; + string title = 4 [deprecated = true]; + string alias = 5 [deprecated = true]; + optional bytes image = 6 [deprecated = true]; + bool isSystem = 7 [deprecated = true]; + optional string description = 8 [deprecated = true]; optional string widgets = 9; - optional int32 order = 10; + optional int32 order = 10 [deprecated = true]; + string entity = 11; } message WidgetTypeUpdateMsg { @@ -372,57 +390,62 @@ message WidgetTypeUpdateMsg { int64 idLSB = 3; optional string bundleAlias = 4 [deprecated = true]; optional string alias = 5 [deprecated = true]; - optional string name = 6; - optional string descriptorJson = 7; - bool isSystem = 8; - optional string image = 9; - optional string description = 10; - optional string fqn = 11; - bool deprecated = 12; + optional string name = 6 [deprecated = true]; + optional string descriptorJson = 7 [deprecated = true]; + bool isSystem = 8 [deprecated = true]; + optional string image = 9 [deprecated = true]; + optional string description = 10 [deprecated = true]; + optional string fqn = 11 [deprecated = true]; + bool deprecated = 12 [deprecated = true]; repeated string tags = 13; + string entity = 14; } message AdminSettingsUpdateMsg { - bool isSystem = 1; - string key = 2; - string jsonValue = 3; + bool isSystem = 1 [deprecated = true]; + string key = 2 [deprecated = true]; + string jsonValue = 3 [deprecated = true]; + string entity = 4; } message UserCredentialsUpdateMsg { - int64 userIdMSB = 1; - int64 userIdLSB = 2; - bool enabled = 3; - string password = 4; + int64 userIdMSB = 1 [deprecated = true]; + int64 userIdLSB = 2 [deprecated = true]; + bool enabled = 3 [deprecated = true]; + string password = 4 [deprecated = true]; + string entity = 5; } message TenantUpdateMsg { UpdateMsgType msgType = 1; - int64 idMSB = 2; - int64 idLSB = 3; - string title = 4; - int64 profileIdMSB = 5; - int64 profileIdLSB = 6; - string region = 7; - optional string country = 8; - optional string state = 9; - optional string city = 10; - optional string address = 11; - optional string address2 = 12; - optional string zip = 13; - optional string phone = 14; - optional string email = 15; - optional string additionalInfo = 16; + int64 idMSB = 2 [deprecated = true]; + int64 idLSB = 3 [deprecated = true]; + string title = 4 [deprecated = true]; + int64 profileIdMSB = 5 [deprecated = true]; + int64 profileIdLSB = 6 [deprecated = true]; + string region = 7 [deprecated = true]; + optional string country = 8 [deprecated = true]; + optional string state = 9 [deprecated = true]; + optional string city = 10 [deprecated = true]; + optional string address = 11 [deprecated = true]; + optional string address2 = 12 [deprecated = true]; + optional string zip = 13 [deprecated = true]; + optional string phone = 14 [deprecated = true]; + optional string email = 15 [deprecated = true]; + optional string additionalInfo = 16 [deprecated = true]; + string entity = 17; } message TenantProfileUpdateMsg { UpdateMsgType msgType = 1; - int64 idMSB = 2; - int64 idLSB = 3; - string name = 4; - optional string description = 5; - bool default = 6; - bool isolatedRuleChain = 7; - bytes profileDataBytes = 8; + int64 idMSB = 2 [deprecated = true]; + int64 idLSB = 3 [deprecated = true]; + string name = 4 [deprecated = true]; + optional string description = 5 [deprecated = true]; + bool default = 6 [deprecated = true]; + bool isolatedRuleChain = 7 [deprecated = true]; + bytes profileDataBytes = 8 [deprecated = true]; + string entity = 9; } message ResourceUpdateMsg { @@ -519,44 +542,48 @@ message OtaPackageUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - int64 deviceProfileIdMSB = 4; - int64 deviceProfileIdLSB = 5; - string type = 6; - string title = 7; - string version = 8; - string tag = 9; - optional string url = 10; - optional string fileName = 11; - optional string contentType = 12; - optional string checksumAlgorithm = 13; - optional string checksum = 14; - optional int64 dataSize = 15; - optional bytes data = 16; - optional string additionalInfo = 17; + int64 deviceProfileIdMSB = 4 [deprecated = true]; + int64 deviceProfileIdLSB = 5 [deprecated = true]; + string type = 6 [deprecated = true]; + string title = 7 [deprecated = true]; + string version = 8 [deprecated = true]; + string tag = 9 [deprecated = true]; + optional string url = 10 [deprecated = true]; + optional string fileName = 11 [deprecated = true]; + optional string contentType = 12 [deprecated = true]; + optional string checksumAlgorithm = 13 [deprecated = true]; + optional string checksum = 14 [deprecated = true]; + optional int64 dataSize = 15 [deprecated = true]; + optional bytes data = 16 [deprecated = true]; + optional string additionalInfo = 17 [deprecated = true]; + string entity = 18; } message QueueUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - int64 tenantIdMSB = 4; - int64 tenantIdLSB = 5; - string name = 6; - string topic = 7; - int32 pollInterval = 8; - int32 partitions = 9; - bool consumerPerPartition = 10; - int64 packProcessingTimeout = 11; - SubmitStrategyProto submitStrategy = 12; - ProcessingStrategyProto processingStrategy = 13; + int64 tenantIdMSB = 4 [deprecated = true]; + int64 tenantIdLSB = 5 [deprecated = true]; + string name = 6 [deprecated = true]; + string topic = 7 [deprecated = true]; + int32 pollInterval = 8 [deprecated = true]; + int32 partitions = 9 [deprecated = true]; + bool consumerPerPartition = 10 [deprecated = true]; + int64 packProcessingTimeout = 11 [deprecated = true]; + SubmitStrategyProto submitStrategy = 12 [deprecated = true]; + ProcessingStrategyProto processingStrategy = 13 [deprecated = true]; + string entity = 14; } message SubmitStrategyProto { + option deprecated = true; string type = 1; int32 batchSize = 2; } message ProcessingStrategyProto { + option deprecated = true; string type = 1; int32 retries = 2; double failurePercentage = 3; diff --git a/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java b/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java index ee2f91ec4d..499c0b55a5 100644 --- a/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java +++ b/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.json.JsonWriteFeature; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.MapperFeature; @@ -61,6 +62,9 @@ public class JacksonUtil { .configure(JsonWriteFeature.QUOTE_FIELD_NAMES.mappedFeature(), false) .configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) .build(); + public static final ObjectMapper IGNORE_UNKNOWN_PROPERTIES_JSON_MAPPER = JsonMapper.builder() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .build(); public static ObjectMapper getObjectMapperWithJavaTimeModule() { return new ObjectMapper().registerModule(new JavaTimeModule()); @@ -106,6 +110,14 @@ public class JacksonUtil { } } + public static T fromStringIgnoreUnknownProperties(String string, Class clazz) { + try { + return string != null ? IGNORE_UNKNOWN_PROPERTIES_JSON_MAPPER.readValue(string, clazz) : null; + } catch (IOException e) { + throw new IllegalArgumentException("The given string value cannot be transformed to Json object: " + string, e); + } + } + public static T fromBytes(byte[] bytes, Class clazz) { try { return bytes != null ? OBJECT_MAPPER.readValue(bytes, clazz) : null; diff --git a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java index 2ba2384acd..808fb22834 100644 --- a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java +++ b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java @@ -15,10 +15,15 @@ */ package org.thingsboard.common.util; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.server.common.data.asset.Asset; +import org.thingsboard.server.common.data.id.AssetId; + +import java.util.UUID; public class JacksonUtilTest { @@ -32,4 +37,22 @@ public class JacksonUtilTest { Assert.assertThrows(IllegalArgumentException.class, () -> JacksonUtil.toJsonNode(data)); // syntax exception due to missing quotes in the field name! } + @Test + public void fail_on_unknown_properties_edge_mapper_test() throws JsonProcessingException { + Asset asset = new Asset(); + asset.setId(new AssetId(UUID.randomUUID())); + asset.setName("Test"); + asset.setType("type"); + String serializedAsset = JacksonUtil.toString(asset); + JsonNode jsonNode = JacksonUtil.IGNORE_UNKNOWN_PROPERTIES_JSON_MAPPER.readTree(serializedAsset); + // case: add new field to serialized Asset string and check for backward compatibility with original Asset object + ((ObjectNode) jsonNode).put("test", (String) null); + serializedAsset = JacksonUtil.toString(jsonNode); + // deserialize with FAIL_ON_UNKNOWN_PROPERTIES = false + Asset result = JacksonUtil.fromStringIgnoreUnknownProperties(serializedAsset, Asset.class); + Assert.assertNotNull(result); + Assert.assertEquals(asset.getId(), result.getId()); + Assert.assertEquals(asset.getName(), result.getName()); + Assert.assertEquals(asset.getType(), result.getType()); + } } \ No newline at end of file From 4c06a26e02a99b8414911e0535ea1d6aab9e2336 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 27 Sep 2023 10:31:37 +0300 Subject: [PATCH 020/162] Refactoring asset and device processors, add fix for customerId --- .../rpc/processor/alarm/AlarmEdgeProcessor.java | 5 +++-- .../rpc/processor/alarm/BaseAlarmProcessor.java | 2 +- .../rpc/processor/asset/AssetEdgeProcessor.java | 9 +++++++++ .../asset/AssetProfileEdgeProcessor.java | 4 ++-- .../rpc/processor/asset/BaseAssetProcessor.java | 4 ++++ .../asset/BaseAssetProfileProcessor.java | 7 ++++--- .../dashboard/BaseDashboardProcessor.java | 2 +- .../device/BaseDeviceProfileProcessor.java | 7 ++++--- .../processor/device/DeviceEdgeProcessor.java | 13 +++++++++++-- .../device/DeviceProfileEdgeProcessor.java | 4 ++-- .../entityview/BaseEntityViewProcessor.java | 2 +- .../relation/RelationEdgeProcessor.java | 4 ++-- .../server/edge/AssetProfileEdgeTest.java | 8 ++++---- .../server/edge/CustomerEdgeTest.java | 4 ++-- .../server/edge/DashboardEdgeTest.java | 10 +++++----- .../thingsboard/server/edge/DeviceEdgeTest.java | 2 +- .../server/edge/DeviceProfileEdgeTest.java | 12 ++++++------ .../org/thingsboard/server/edge/EdgeTest.java | 2 +- .../server/edge/EntityViewEdgeTest.java | 10 +++++----- .../server/edge/OtaPackageEdgeTest.java | 4 ++-- .../thingsboard/server/edge/QueueEdgeTest.java | 4 ++-- .../server/edge/RelationEdgeTest.java | 6 +++--- .../server/edge/RuleChainEdgeTest.java | 8 ++++---- .../thingsboard/server/edge/TenantEdgeTest.java | 8 ++++---- .../server/edge/TenantProfileEdgeTest.java | 2 +- .../thingsboard/server/edge/UserEdgeTest.java | 16 ++++++++-------- .../thingsboard/server/edge/WidgetEdgeTest.java | 8 ++++---- 27 files changed, 96 insertions(+), 71 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index c15b79356e..1a06f91149 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -47,11 +47,11 @@ import java.util.UUID; @TbCoreComponent public class AlarmEdgeProcessor extends BaseAlarmProcessor { - public ListenableFuture processAlarmMsgFromEdge(TenantId tenantId, EdgeId edgeId, AlarmUpdateMsg alarmUpdateMsg) { + public ListenableFuture processAlarmMsgFromEdge(TenantId tenantId, EdgeId edgeId, AlarmUpdateMsg alarmUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] processAlarmMsgFromEdge [{}]", tenantId, alarmUpdateMsg); try { edgeSynchronizationManager.getEdgeId().set(edgeId); - return processAlarmMsg(tenantId, alarmUpdateMsg); + return processAlarmMsg(tenantId, alarmUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } @@ -123,4 +123,5 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { } while (pageData != null && pageData.hasNext()); return futures; } + } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index 284b20d71e..b89c2d4dc4 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -52,7 +52,7 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { AlarmId alarmId = new AlarmId(new UUID(alarmUpdateMsg.getIdMSB(), alarmUpdateMsg.getIdLSB())); boolean isEdgeProtoDeprecated = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); Alarm alarm = isEdgeProtoDeprecated ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) - : JacksonUtil.fromEdgeString(alarmUpdateMsg.getEntity(), Alarm.class); + : JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); if (alarm == null) { throw new RuntimeException("[{" + tenantId + "}] alarmUpdateMsg {" + alarmUpdateMsg + "} cannot be converted to alarm"); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index 8b04d838e8..2a140175ed 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -29,6 +29,7 @@ import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.AssetId; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; @@ -145,4 +146,12 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { } return downlinkMsg; } + + @Override + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionDeprecated) { + CustomerId customerUUID = isEdgeVersionDeprecated + ? safeGetCustomerId(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()) + : asset.getCustomerId() != null ? asset.getCustomerId() : customerId; + asset.setCustomerId(customerUUID); + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index c9b9329531..b7b6690a87 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -143,10 +143,10 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } @Override - protected void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { UUID defaultDashboardUUID = isEdgeVersionDeprecated ? safeGetUUID(assetProfileUpdateMsg.getDefaultDashboardIdMSB(), assetProfileUpdateMsg.getDefaultDashboardIdLSB()) - : assetProfile.getDefaultDashboardId() != null ? assetProfile.getDefaultDashboardId().getId() : null; + : assetProfile.getDefaultDashboardId() != null ? assetProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); assetProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java index 343fd2f80e..46a58588d7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java @@ -60,6 +60,7 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { assetNameUpdated = true; } asset.setName(assetName); + setCustomerId(tenantId, created ? null : assetById.getCustomerId(), asset, assetUpdateMsg, isEdgeProtoDeprecated); assetValidator.validate(asset, Asset::getTenantId); if (created) { @@ -92,4 +93,7 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { asset.setCustomerId(customerId); return asset; } + + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionDeprecated); + } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index 378d229e06..d829df4a32 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -22,6 +22,7 @@ import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.id.AssetProfileId; +import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg; @@ -39,7 +40,7 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { try { AssetProfile assetProfile = isEdgeProtoDeprecated ? createAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg) - : JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + : JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); if (assetProfile == null) { throw new RuntimeException("[{" + tenantId + "}] assetProfileUpdateMsg {" + assetProfileUpdateMsg + "} cannot be converted to asset profile"); } @@ -62,7 +63,7 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { setDefaultRuleChainId(tenantId, assetProfile); setDefaultEdgeRuleChainId(assetProfile, created ? null : assetProfileById.getDefaultRuleChainId(), assetProfileUpdateMsg, isEdgeProtoDeprecated); - setDefaultDashboardId(tenantId, assetProfile, assetProfileUpdateMsg, isEdgeProtoDeprecated); + setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, isEdgeProtoDeprecated); assetProfileValidator.validate(assetProfile, AssetProfile::getTenantId); if (created) { @@ -95,5 +96,5 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); - protected abstract void setDefaultDashboardId(TenantId tenantId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 4474b29b4d..53db17a3ba 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -35,7 +35,7 @@ public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { boolean created = false; Dashboard dashboard = isEdgeProtoDeprecated ? createDashboard(tenantId, deprecatedDashboardId, dashboardUpdateMsg) - : JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + : JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); if (dashboard == null) { throw new RuntimeException("[{" + tenantId + "}] dashboardUpdateMsg {" + dashboardUpdateMsg + "} cannot be converted to dashboard"); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index a48a578e48..38d781fb13 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.DeviceProfileType; import org.thingsboard.server.common.data.DeviceTransportType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.device.profile.DeviceProfileData; +import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.DeviceProfileId; import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.common.data.id.RuleChainId; @@ -51,7 +52,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { try { DeviceProfile deviceProfile = isEdgeVersionProtoDeprecated ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) - : JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + : JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); if (deviceProfile == null) { throw new RuntimeException("[{" + tenantId + "}] deviceProfileUpdateMsg {" + deviceProfileUpdateMsg + "} cannot be converted to device profile"); } @@ -74,7 +75,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { setDefaultRuleChainId(tenantId, deviceProfile); setDefaultEdgeRuleChainId(deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId(), deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); - setDefaultDashboardId(tenantId, deviceProfile, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); + setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); deviceProfileValidator.validate(deviceProfile, DeviceProfile::getTenantId); if (created) { @@ -127,5 +128,5 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); - protected abstract void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 17eec5eb0c..20cb591320 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -32,6 +32,7 @@ import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.TenantId; @@ -96,12 +97,12 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { } } - public ListenableFuture processDeviceCredentialsMsgFromEdge(TenantId tenantId, EdgeId edgeId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg) { + public ListenableFuture processDeviceCredentialsMsgFromEdge(TenantId tenantId, EdgeId edgeId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, EdgeVersion edgeVersion) { log.debug("[{}] Executing processDeviceCredentialsMsgFromEdge, deviceCredentialsUpdateMsg [{}]", tenantId, deviceCredentialsUpdateMsg); try { edgeSynchronizationManager.getEdgeId().set(edgeId); - updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg); + updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } @@ -286,4 +287,12 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { .addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsg); return builder.build(); } + + @Override + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionDeprecated) { + CustomerId customerUUID = isEdgeVersionDeprecated + ? safeGetCustomerId(deviceUpdateMsg.getCustomerIdMSB(), deviceUpdateMsg.getCustomerIdLSB()) + : device.getCustomerId() != null ? device.getCustomerId() : customerId; + device.setCustomerId(customerUUID); + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 523422bec7..419b7f90c8 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -143,10 +143,10 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } @Override - protected void setDefaultDashboardId(TenantId tenantId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { UUID defaultDashboardUUID = isEdgeVersionDeprecated ? safeGetUUID(deviceProfileUpdateMsg.getDefaultDashboardIdMSB(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()) - : deviceProfile.getDefaultDashboardId() != null ? deviceProfile.getDefaultDashboardId().getId() : null; + : deviceProfile.getDefaultDashboardId() != null ? deviceProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); deviceProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index 3d13b7a044..236c00a861 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -40,7 +40,7 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { boolean entityViewNameUpdated = false; EntityView entityView = isEdgeProtoDeprecated ? createEntityView(tenantId, entityViewId, entityViewUpdateMsg) - : JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + : JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); if (entityView == null) { throw new RuntimeException("[{" + tenantId + "}] entityViewUpdateMsg {" + entityViewUpdateMsg + "} cannot be converted to entity view"); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 84065d1c8a..8d75be10ee 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -46,12 +46,12 @@ import java.util.Set; @TbCoreComponent public class RelationEdgeProcessor extends BaseRelationProcessor { - public ListenableFuture processRelationMsgFromEdge(TenantId tenantId, Edge edge, RelationUpdateMsg relationUpdateMsg) { + public ListenableFuture processRelationMsgFromEdge(TenantId tenantId, Edge edge, RelationUpdateMsg relationUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] executing processRelationMsgFromEdge [{}] from edge [{}]", tenantId, relationUpdateMsg, edge.getId()); try { edgeSynchronizationManager.getEdgeId().set(edge.getId()); - return processRelationMsg(tenantId, relationUpdateMsg); + return processRelationMsg(tenantId, relationUpdateMsg, edgeVersion); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java index 600895c230..7c93a4440d 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java @@ -53,7 +53,7 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetProfileUpdateMsg); AssetProfileUpdateMsg assetProfileUpdateMsg = (AssetProfileUpdateMsg) latestMessage; - AssetProfile assetProfileMsg = JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + AssetProfile assetProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); Assert.assertNotNull(assetProfileMsg); Assert.assertEquals(assetProfile, assetProfileMsg); Assert.assertEquals("Building", assetProfileMsg.getName()); @@ -68,7 +68,7 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof AssetProfileUpdateMsg); assetProfileUpdateMsg = (AssetProfileUpdateMsg) latestMessage; - assetProfileMsg = JacksonUtil.fromEdgeString(assetProfileUpdateMsg.getEntity(), AssetProfile.class); + assetProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); Assert.assertNotNull(assetProfileMsg); Assert.assertEquals("IMAGE", assetProfileMsg.getImage()); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType()); @@ -94,7 +94,7 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { DashboardId dashboardId = createDashboardAndAssignToEdge("Asset Profile Dashboard"); AssetProfile assetProfileOnEdge = buildAssetProfileForUplinkMsg("Asset Profile On Edge"); - assetProfileOnEdge.setDefaultEdgeRuleChainId(edgeRuleChainId); + assetProfileOnEdge.setDefaultRuleChainId(edgeRuleChainId); assetProfileOnEdge.setDefaultDashboardId(dashboardId); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); @@ -170,7 +170,7 @@ public class AssetProfileEdgeTest extends AbstractEdgeTest { Optional assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class); Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent()); AssetProfileUpdateMsg latestAssetProfileUpdateMsg = assetProfileUpdateMsgOpt.get(); - AssetProfile assetProfileMsg = JacksonUtil.fromEdgeString(latestAssetProfileUpdateMsg.getEntity(), AssetProfile.class); + AssetProfile assetProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(latestAssetProfileUpdateMsg.getEntity(), AssetProfile.class); Assert.assertNotNull(assetProfileMsg); Assert.assertNotEquals(assetProfileOnCloudName, assetProfileMsg.getName()); diff --git a/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java index 9f7e1b5641..125aa41e18 100644 --- a/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java @@ -58,7 +58,7 @@ public class CustomerEdgeTest extends AbstractEdgeTest { Optional customerUpdateOpt = edgeImitator.findMessageByType(CustomerUpdateMsg.class); Assert.assertTrue(customerUpdateOpt.isPresent()); CustomerUpdateMsg customerUpdateMsg = customerUpdateOpt.get(); - Customer customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); + Customer customerMsg = JacksonUtil.fromStringIgnoreUnknownProperties(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomer, customerMsg); testAutoGeneratedCodeByProtobuf(customerUpdateMsg); @@ -71,7 +71,7 @@ public class CustomerEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof CustomerUpdateMsg); customerUpdateMsg = (CustomerUpdateMsg) latestMessage; - customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); + customerMsg = JacksonUtil.fromStringIgnoreUnknownProperties(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomer, customerMsg); diff --git a/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java index 8db2e0390f..fc342bf682 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java @@ -62,7 +62,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); DashboardUpdateMsg dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; - Dashboard dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + Dashboard dashboardMsg = JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertEquals(savedDashboard, dashboardMsg); @@ -78,7 +78,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; - dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + dashboardMsg = JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertEquals(savedDashboard.getTitle(), dashboardMsg.getTitle()); @@ -112,7 +112,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; - dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + dashboardMsg = JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertEquals(savedDashboard.getUuidId().getMostSignificantBits(), dashboardUpdateMsg.getIdMSB()); @@ -135,7 +135,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; - dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + dashboardMsg = JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertNotNull(dashboardMsg.getAssignedCustomers()); @@ -150,7 +150,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DashboardUpdateMsg); dashboardUpdateMsg = (DashboardUpdateMsg) latestMessage; - dashboardMsg = JacksonUtil.fromEdgeString(dashboardUpdateMsg.getEntity(), Dashboard.class); + dashboardMsg = JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); Assert.assertNotNull(dashboardMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, dashboardUpdateMsg.getMsgType()); Assert.assertNotNull(dashboardMsg.getAssignedCustomers()); diff --git a/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java index 429bb2e968..9c3f0a9bb7 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java @@ -782,7 +782,7 @@ public class DeviceEdgeTest extends AbstractEdgeTest { private DeviceCredentials buildDeviceCredentialsForUplinkMsg(DeviceId deviceId) { DeviceCredentials deviceCredentials = new DeviceCredentials(); deviceCredentials.setDeviceId(deviceId); - deviceCredentials.setCredentialsId("NEW_TOKEN"); + deviceCredentials.setCredentialsValue("NEW_TOKEN"); deviceCredentials.setCredentialsType(DeviceCredentialsType.ACCESS_TOKEN); return deviceCredentials; } diff --git a/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java index 90d540d17f..325872d919 100644 --- a/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/DeviceProfileEdgeTest.java @@ -81,7 +81,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + DeviceProfile deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); @@ -106,7 +106,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertEquals(deviceProfile, deviceProfileMsg); @@ -133,7 +133,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + DeviceProfile deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); @@ -171,7 +171,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + DeviceProfile deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); @@ -220,7 +220,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof DeviceProfileUpdateMsg); DeviceProfileUpdateMsg deviceProfileUpdateMsg = (DeviceProfileUpdateMsg) latestMessage; - DeviceProfile deviceProfileMsg = JacksonUtil.fromEdgeString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + DeviceProfile deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertEquals(deviceProfile, deviceProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); @@ -427,7 +427,7 @@ public class DeviceProfileEdgeTest extends AbstractEdgeTest { Optional deviceProfileUpdateMsgOpt = edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class); Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent()); DeviceProfileUpdateMsg latestDeviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get(); - deviceProfileMsg = JacksonUtil.fromEdgeString(latestDeviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + deviceProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(latestDeviceProfileUpdateMsg.getEntity(), DeviceProfile.class); Assert.assertNotNull(deviceProfileMsg); Assert.assertNotEquals(deviceProfileOnCloudName, deviceProfileMsg.getName()); diff --git a/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java index b8e784aad5..7330e2f5fc 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EdgeTest.java @@ -55,7 +55,7 @@ public class EdgeTest extends AbstractEdgeTest { Optional customerUpdateOpt = edgeImitator.findMessageByType(CustomerUpdateMsg.class); Assert.assertTrue(customerUpdateOpt.isPresent()); CustomerUpdateMsg customerUpdateMsg = customerUpdateOpt.get(); - Customer customerMsg = JacksonUtil.fromEdgeString(customerUpdateMsg.getEntity(), Customer.class); + Customer customerMsg = JacksonUtil.fromStringIgnoreUnknownProperties(customerUpdateMsg.getEntity(), Customer.class); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, customerUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomer, customerMsg); diff --git a/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java index 7ccda39192..903f49f756 100644 --- a/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java @@ -68,7 +68,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); EntityViewUpdateMsg entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; - EntityView entityView = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + EntityView entityView = JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); Assert.assertNotNull(entityView); Assert.assertEquals(savedEntityView, entityView); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); @@ -133,7 +133,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; - EntityView entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + EntityView entityViewMsg = JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); Assert.assertNotNull(entityViewMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomer.getId(), entityViewMsg.getCustomerId()); @@ -145,7 +145,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; - entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + entityViewMsg = JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); Assert.assertNotNull(entityViewMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, entityViewUpdateMsg.getMsgType()); Assert.assertEquals(new CustomerId(EntityId.NULL_UUID), entityViewMsg.getCustomerId()); @@ -227,7 +227,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { Optional entityViewUpdateMsgOpt = edgeImitator.findMessageByType(EntityViewUpdateMsg.class); Assert.assertTrue(entityViewUpdateMsgOpt.isPresent()); EntityViewUpdateMsg latestEntityViewUpdateMsg = entityViewUpdateMsgOpt.get(); - entityViewMsg = JacksonUtil.fromEdgeString(latestEntityViewUpdateMsg.getEntity(), EntityView.class); + entityViewMsg = JacksonUtil.fromStringIgnoreUnknownProperties(latestEntityViewUpdateMsg.getEntity(), EntityView.class); Assert.assertNotNull(entityViewMsg); Assert.assertNotEquals(entityViewOnCloudName, entityViewMsg.getName()); Assert.assertNotEquals(entityViewOnCloud.getId(), entityViewMsg.getId()); @@ -268,7 +268,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof EntityViewUpdateMsg); EntityViewUpdateMsg entityViewUpdateMsg = (EntityViewUpdateMsg) latestMessage; - EntityView entityViewMsg = JacksonUtil.fromEdgeString(entityViewUpdateMsg.getEntity(), EntityView.class); + EntityView entityViewMsg = JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); Assert.assertNotNull(entityViewMsg); Assert.assertEquals(entityView, entityViewMsg); Assert.assertEquals(device.getId(), entityViewMsg.getEntityId()); diff --git a/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java index 50e0be2cc1..0ff72b94ec 100644 --- a/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/OtaPackageEdgeTest.java @@ -58,7 +58,7 @@ public class OtaPackageEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof OtaPackageUpdateMsg); OtaPackageUpdateMsg otaPackageUpdateMsg = (OtaPackageUpdateMsg) latestMessage; - OtaPackage otaPackage = JacksonUtil.fromEdgeString(otaPackageUpdateMsg.getEntity(), OtaPackage.class); + OtaPackage otaPackage = JacksonUtil.fromStringIgnoreUnknownProperties(otaPackageUpdateMsg.getEntity(), OtaPackage.class); Assert.assertNotNull(otaPackage); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, otaPackageUpdateMsg.getMsgType()); Assert.assertEquals(savedFirmwareInfo.getId(), otaPackage.getId()); @@ -112,7 +112,7 @@ public class OtaPackageEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof OtaPackageUpdateMsg); OtaPackageUpdateMsg otaPackageUpdateMsg = (OtaPackageUpdateMsg) latestMessage; - OtaPackage otaPackage = JacksonUtil.fromEdgeString(otaPackageUpdateMsg.getEntity(), OtaPackage.class); + OtaPackage otaPackage = JacksonUtil.fromStringIgnoreUnknownProperties(otaPackageUpdateMsg.getEntity(), OtaPackage.class); Assert.assertNotNull(otaPackage); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, otaPackageUpdateMsg.getMsgType()); Assert.assertEquals(savedFirmwareInfo.getId(), otaPackage.getId()); diff --git a/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java index faf8f6826b..b80a7de112 100644 --- a/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/QueueEdgeTest.java @@ -64,7 +64,7 @@ public class QueueEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof QueueUpdateMsg); QueueUpdateMsg queueUpdateMsg = (QueueUpdateMsg) latestMessage; - Queue queueMsg = JacksonUtil.fromEdgeString(queueUpdateMsg.getEntity(), Queue.class); + Queue queueMsg = JacksonUtil.fromStringIgnoreUnknownProperties(queueUpdateMsg.getEntity(), Queue.class); Assert.assertNotNull(queueMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, queueUpdateMsg.getMsgType()); Assert.assertEquals(savedQueue, queueMsg); @@ -89,7 +89,7 @@ public class QueueEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof QueueUpdateMsg); queueUpdateMsg = (QueueUpdateMsg) latestMessage; - queueMsg = JacksonUtil.fromEdgeString(queueUpdateMsg.getEntity(), Queue.class); + queueMsg = JacksonUtil.fromStringIgnoreUnknownProperties(queueUpdateMsg.getEntity(), Queue.class); Assert.assertNotNull(queueMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, queueUpdateMsg.getMsgType()); Assert.assertEquals(50, queueMsg.getPollInterval()); diff --git a/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java index a26dd9512a..f9cb351aa0 100644 --- a/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/RelationEdgeTest.java @@ -53,7 +53,7 @@ public class RelationEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); RelationUpdateMsg relationUpdateMsg = (RelationUpdateMsg) latestMessage; - EntityRelation entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + EntityRelation entityRelation = JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); Assert.assertNotNull(entityRelation); Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); @@ -72,7 +72,7 @@ public class RelationEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); relationUpdateMsg = (RelationUpdateMsg) latestMessage; - entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + entityRelation = JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); Assert.assertNotNull(entityRelation); Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_DELETED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); @@ -141,7 +141,7 @@ public class RelationEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RelationUpdateMsg); RelationUpdateMsg relationUpdateMsg = (RelationUpdateMsg) latestMessage; - EntityRelation entityRelation = JacksonUtil.fromEdgeString(relationUpdateMsg.getEntity(), EntityRelation.class); + EntityRelation entityRelation = JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); Assert.assertNotNull(entityRelation); Assert.assertEquals(relation, entityRelation); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, relationUpdateMsg.getMsgType()); diff --git a/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java index 0322bd849e..ff87a64bfe 100644 --- a/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java @@ -61,7 +61,7 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { Optional ruleChainUpdateMsgOpt = edgeImitator.findMessageByType(RuleChainUpdateMsg.class); Assert.assertTrue(ruleChainUpdateMsgOpt.isPresent()); RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get(); - RuleChain ruleChainMsg = JacksonUtil.fromEdgeString(ruleChainUpdateMsg.getEntity(), RuleChain.class); + RuleChain ruleChainMsg = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainUpdateMsg.getEntity(), RuleChain.class); Assert.assertNotNull(ruleChainMsg); Assert.assertTrue(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(ruleChainUpdateMsg.getMsgType()) || UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE.equals(ruleChainUpdateMsg.getMsgType())); @@ -111,7 +111,7 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RuleChainMetadataUpdateMsg); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = (RuleChainMetadataUpdateMsg) latestMessage; - RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromEdgeString(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); + RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); Assert.assertNotNull(ruleChainMetadataMsg); Assert.assertEquals(edgeRootRuleChainId, ruleChainMetadataMsg.getRuleChainId()); @@ -137,7 +137,7 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof RuleChainMetadataUpdateMsg); RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = (RuleChainMetadataUpdateMsg) latestMessage; - RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromEdgeString(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); + RuleChainMetaData ruleChainMetadataMsg = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class); Assert.assertNotNull(ruleChainMetadataMsg); Assert.assertEquals(ruleChainId, ruleChainMetadataMsg.getRuleChainId()); @@ -207,7 +207,7 @@ public class RuleChainEdgeTest extends AbstractEdgeTest { Optional ruleChainUpdateMsgOpt = edgeImitator.findMessageByType(RuleChainUpdateMsg.class); Assert.assertTrue(ruleChainUpdateMsgOpt.isPresent()); RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get(); - RuleChain ruleChainMsg = JacksonUtil.fromEdgeString(ruleChainUpdateMsg.getEntity(), RuleChain.class); + RuleChain ruleChainMsg = JacksonUtil.fromStringIgnoreUnknownProperties(ruleChainUpdateMsg.getEntity(), RuleChain.class); Assert.assertNotNull(ruleChainMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, ruleChainUpdateMsg.getMsgType()); Assert.assertTrue(ruleChainMsg.isRoot()); diff --git a/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java index 97ac2eacc5..4c61b0d91d 100644 --- a/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/TenantEdgeTest.java @@ -48,10 +48,10 @@ public class TenantEdgeTest extends AbstractEdgeTest { Optional tenantProfileUpdateMsgOpt = edgeImitator.findMessageByType(TenantProfileUpdateMsg.class); Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); - Tenant tenantMsg = JacksonUtil.fromEdgeString(tenantUpdateMsg.getEntity(), Tenant.class); + Tenant tenantMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantUpdateMsg.getEntity(), Tenant.class); Assert.assertNotNull(tenantMsg); Assert.assertEquals(savedTenant, tenantMsg); - TenantProfile tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + TenantProfile tenantProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); Assert.assertNotNull(tenantProfileMsg); Assert.assertEquals(tenantMsg.getTenantProfileId(), tenantProfileMsg.getId()); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantUpdateMsg.getMsgType()); @@ -66,12 +66,12 @@ public class TenantEdgeTest extends AbstractEdgeTest { tenantUpdateMsgOpt = edgeImitator.findMessageByType(TenantUpdateMsg.class); Assert.assertTrue(tenantUpdateMsgOpt.isPresent()); tenantUpdateMsg = tenantUpdateMsgOpt.get(); - tenantMsg = JacksonUtil.fromEdgeString(tenantUpdateMsg.getEntity(), Tenant.class); + tenantMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantUpdateMsg.getEntity(), Tenant.class); Assert.assertNotNull(tenantMsg); tenantProfileUpdateMsgOpt = edgeImitator.findMessageByType(TenantProfileUpdateMsg.class); Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); - tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + tenantProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); Assert.assertNotNull(tenantProfileMsg); // tenant update Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantUpdateMsg.getMsgType()); diff --git a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java index 695c3a1dea..7320a73a08 100644 --- a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java @@ -56,7 +56,7 @@ public class TenantProfileEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof TenantProfileUpdateMsg); TenantProfileUpdateMsg tenantProfileUpdateMsg = (TenantProfileUpdateMsg) latestMessage; - TenantProfile tenantProfileMsg = JacksonUtil.fromEdgeString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + TenantProfile tenantProfileMsg = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); Assert.assertNotNull(tenantProfileMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantProfileUpdateMsg.getMsgType()); Assert.assertEquals(edgeTenantProfile, tenantProfileMsg); diff --git a/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java index 2254f8d051..8dd5b27ad5 100644 --- a/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java @@ -59,7 +59,7 @@ public class UserEdgeTest extends AbstractEdgeTest { Optional userUpdateMsgOpt = edgeImitator.findMessageByType(UserUpdateMsg.class); Assert.assertTrue(userUpdateMsgOpt.isPresent()); UserUpdateMsg userUpdateMsg = userUpdateMsgOpt.get(); - User userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + User userMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userUpdateMsg.getEntity(), User.class); Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); Assert.assertEquals(savedTenantAdmin.getId(), userMsg.getId()); @@ -78,7 +78,7 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserUpdateMsg); userUpdateMsg = (UserUpdateMsg) latestMessage; - userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + userMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userUpdateMsg.getEntity(), User.class); Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); Assert.assertEquals(savedTenantAdmin.getLastName(), userMsg.getLastName()); @@ -95,7 +95,7 @@ public class UserEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + UserCredentials userCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); Assert.assertNotNull(userCredentialsMsg); Assert.assertEquals(savedTenantAdmin.getId(), userCredentialsMsg.getUserId()); Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsMsg.getPassword())); @@ -144,7 +144,7 @@ public class UserEdgeTest extends AbstractEdgeTest { Optional userUpdateMsgOpt = edgeImitator.findMessageByType(UserUpdateMsg.class); Assert.assertTrue(userUpdateMsgOpt.isPresent()); UserUpdateMsg userUpdateMsg = userUpdateMsgOpt.get(); - User userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + User userMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userUpdateMsg.getEntity(), User.class); Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomerUser.getId(), userMsg.getId()); @@ -162,7 +162,7 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserUpdateMsg); userUpdateMsg = (UserUpdateMsg) latestMessage; - userMsg = JacksonUtil.fromEdgeString(userUpdateMsg.getEntity(), User.class); + userMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userUpdateMsg.getEntity(), User.class); Assert.assertNotNull(userMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, userUpdateMsg.getMsgType()); Assert.assertEquals(savedCustomerUser.getLastName(), userMsg.getLastName()); @@ -179,7 +179,7 @@ public class UserEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + UserCredentials userCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); Assert.assertNotNull(userCredentialsMsg); Assert.assertEquals(savedCustomerUser.getId(), userCredentialsMsg.getUserId()); Assert.assertTrue(passwordEncoder.matches(changePasswordRequest.getNewPassword(), userCredentialsMsg.getPassword())); @@ -220,7 +220,7 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + UserCredentials userCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); Assert.assertNotNull(userCredentialsMsg); Assert.assertEquals(tenantAdminUserId, userCredentialsMsg.getUserId()); } @@ -245,7 +245,7 @@ public class UserEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof UserCredentialsUpdateMsg); UserCredentialsUpdateMsg userCredentialsUpdateMsg = (UserCredentialsUpdateMsg) latestMessage; - UserCredentials userCredentialsMsg = JacksonUtil.fromEdgeString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); + UserCredentials userCredentialsMsg = JacksonUtil.fromStringIgnoreUnknownProperties(userCredentialsUpdateMsg.getEntity(), UserCredentials.class); Assert.assertNotNull(userCredentialsMsg); Assert.assertEquals(tenantAdminUserId, userCredentialsMsg.getUserId()); diff --git a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java index bb6d09f7bc..a325de3402 100644 --- a/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/WidgetEdgeTest.java @@ -43,7 +43,7 @@ public class WidgetEdgeTest extends AbstractEdgeTest { AbstractMessage latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetsBundleUpdateMsg); WidgetsBundleUpdateMsg widgetsBundleUpdateMsg = (WidgetsBundleUpdateMsg) latestMessage; - WidgetsBundle widgetsBundleMsg = JacksonUtil.fromEdgeString(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); + WidgetsBundle widgetsBundleMsg = JacksonUtil.fromStringIgnoreUnknownProperties(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); Assert.assertNotNull(widgetsBundleMsg); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, widgetsBundleUpdateMsg.getMsgType()); Assert.assertEquals(savedWidgetsBundle.getId(), widgetsBundleMsg.getId()); @@ -65,7 +65,7 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetTypeUpdateMsg); WidgetTypeUpdateMsg widgetTypeUpdateMsg = (WidgetTypeUpdateMsg) latestMessage; - WidgetType widgetsType = JacksonUtil.fromEdgeString(widgetTypeUpdateMsg.getEntity(), WidgetType.class); + WidgetType widgetsType = JacksonUtil.fromStringIgnoreUnknownProperties(widgetTypeUpdateMsg.getEntity(), WidgetType.class); Assert.assertNotNull(widgetsType); Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, widgetTypeUpdateMsg.getMsgType()); Assert.assertEquals(savedWidgetType, widgetsType); @@ -78,7 +78,7 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetsBundleUpdateMsg); widgetsBundleUpdateMsg = (WidgetsBundleUpdateMsg) latestMessage; - widgetsBundleMsg = JacksonUtil.fromEdgeString(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); + widgetsBundleMsg = JacksonUtil.fromStringIgnoreUnknownProperties(widgetsBundleUpdateMsg.getEntity(), WidgetsBundle.class); Assert.assertNotNull(widgetsBundleMsg); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, widgetsBundleUpdateMsg.getMsgType()); Assert.assertEquals(savedWidgetsBundle.getTitle(), widgetsBundleMsg.getTitle()); @@ -91,7 +91,7 @@ public class WidgetEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof WidgetTypeUpdateMsg); widgetTypeUpdateMsg = (WidgetTypeUpdateMsg) latestMessage; - widgetsType = JacksonUtil.fromEdgeString(widgetTypeUpdateMsg.getEntity(), WidgetType.class); + widgetsType = JacksonUtil.fromStringIgnoreUnknownProperties(widgetTypeUpdateMsg.getEntity(), WidgetType.class); Assert.assertNotNull(widgetsType); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, widgetTypeUpdateMsg.getMsgType()); Assert.assertEquals(savedWidgetType.getName(), widgetsType.getName()); From 5de58644e550618a36d1ebec80995c1d32f36a4d Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Mon, 13 Nov 2023 11:32:04 +0100 Subject: [PATCH 021/162] refactoring --- .../server/service/entitiy/device/DefaultTbDeviceService.java | 2 -- .../org/thingsboard/server/controller/DeviceControllerTest.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java index a3d04f6344..ac2d656ba6 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/device/DefaultTbDeviceService.java @@ -232,8 +232,6 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T Tenant tenant = tenantService.findTenantById(tenantId); Device assignedDevice = deviceService.assignDeviceToTenant(newTenantId, device); - - notificationEntityService.notifyAssignDeviceToTenant(tenantId, newTenantId, deviceId, assignedDevice.getCustomerId(), assignedDevice, tenant, user, newTenantId.toString(), newTenant.getName()); diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java index b6afaa34e1..cefe24e935 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceControllerTest.java @@ -72,7 +72,6 @@ import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.exception.DeviceCredentialsValidationException; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.service.DaoSqlTest; -import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.service.gateway_device.GatewayNotificationsService; import org.thingsboard.server.service.state.DeviceStateService; @@ -85,7 +84,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.containsString; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; From caf2f29693503fca98ee7bb97dd41acf2689d605 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Thu, 28 Sep 2023 09:33:47 +0300 Subject: [PATCH 022/162] Refactor MsgConstructors to be in sync with PE logic --- .../rpc/constructor/AdminSettingsMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/AlarmMsgConstructor.java | 8 +++++--- .../edge/rpc/constructor/AssetMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/AssetProfileMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/CustomerMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/DashboardMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/DeviceMsgConstructor.java | 7 ++++--- .../rpc/constructor/DeviceProfileMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/EntityViewMsgConstructor.java | 9 +++++---- .../edge/rpc/constructor/OtaPackageMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/QueueMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/RelationMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/RuleChainMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/TenantMsgConstructor.java | 7 ++++--- .../rpc/constructor/TenantProfileMsgConstructor.java | 7 ++++--- .../service/edge/rpc/constructor/UserMsgConstructor.java | 7 ++++--- .../edge/rpc/constructor/WidgetTypeMsgConstructor.java | 7 ++++--- .../rpc/constructor/WidgetsBundleMsgConstructor.java | 7 ++++--- .../rpc/processor/dashboard/BaseDashboardProcessor.java | 6 ++---- .../processor/entityview/BaseEntityViewProcessor.java | 3 +++ .../processor/entityview/EntityViewEdgeProcessor.java | 9 +++++++++ 21 files changed, 88 insertions(+), 59 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java index 888f203fb6..26037e221e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java @@ -28,9 +28,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class AdminSettingsMsgConstructor { public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedWidgetTypeUpdateMsg(adminSettings) - : AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + return constructDeprecatedWidgetTypeUpdateMsg(adminSettings); + } + return AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); } private AdminSettingsUpdateMsg constructDeprecatedWidgetTypeUpdateMsg(AdminSettings adminSettings) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java index 2fbb4e6cd6..f9b145ec99 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java @@ -29,9 +29,11 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class AlarmMsgConstructor { public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedAlarmUpdatedMsg(msgType, alarm, entityName) - : AlarmUpdateMsg.newBuilder().setMsgType(msgType).setOriginatorName(entityName).setEntity(JacksonUtil.toString(alarm)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedAlarmUpdatedMsg(msgType, alarm, entityName); + } + return AlarmUpdateMsg.newBuilder().setMsgType(msgType) + .setEntity(JacksonUtil.toString(alarm)).setOriginatorName(entityName) .setIdMSB(alarm.getId().getId().getMostSignificantBits()) .setIdLSB(alarm.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java index e3ffb71e47..72235be45d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java @@ -30,9 +30,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class AssetMsgConstructor { public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedAssetUpdateMsg(msgType, asset) - : AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedAssetUpdateMsg(msgType, asset); + } + return AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) .setIdMSB(asset.getUuidId().getMostSignificantBits()) .setIdLSB(asset.getUuidId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java index c344adc15c..b140e4f529 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java @@ -33,9 +33,10 @@ import java.nio.charset.StandardCharsets; public class AssetProfileMsgConstructor { public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedAssetProfileUpdatedMsg(msgType, assetProfile) - : AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedAssetProfileUpdatedMsg(msgType, assetProfile); + } + return AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) .setIdMSB(assetProfile.getId().getId().getMostSignificantBits()) .setIdLSB(assetProfile.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java index 714cb60672..e84978383e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java @@ -30,9 +30,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class CustomerMsgConstructor { public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedCustomerUpdatedMsg(msgType, customer) - : CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedCustomerUpdatedMsg(msgType, customer); + } + return CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) .setIdMSB(customer.getId().getId().getMostSignificantBits()) .setIdLSB(customer.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java index 76a969e30a..351b3d8e57 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java @@ -30,9 +30,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class DashboardMsgConstructor { public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedDashboardUpdatedMsg(msgType, dashboard) - : DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedDashboardUpdatedMsg(msgType, dashboard); + } + return DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) .setIdMSB(dashboard.getId().getId().getMostSignificantBits()) .setIdLSB(dashboard.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java index 9325fbc424..15c221e608 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java @@ -44,9 +44,10 @@ public class DeviceMsgConstructor { private DataDecodingEncodingService dataDecodingEncodingService; public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedDeviceUpdateMsg(msgType, device) - : DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedDeviceUpdateMsg(msgType, device); + } + return DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) .setIdMSB(device.getId().getId().getMostSignificantBits()) .setIdLSB(device.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java index 802cadbe87..de6920ee7f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java @@ -38,9 +38,10 @@ public class DeviceProfileMsgConstructor { private DataDecodingEncodingService dataDecodingEncodingService; public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedDeviceProfileUpdatedMsg(msgType, deviceProfile) - : DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedDeviceProfileUpdatedMsg(msgType, deviceProfile); + } + return DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) .setIdMSB(deviceProfile.getId().getId().getMostSignificantBits()) .setIdLSB(deviceProfile.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java index 2f71103ba5..96db358811 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java @@ -32,14 +32,15 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class EntityViewMsgConstructor { public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructEntityViewUpdatedMsgDeprecated(msgType, entityView) - : EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedEntityViewUpdatedMsg(msgType, entityView); + } + return EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) .setIdMSB(entityView.getId().getId().getMostSignificantBits()) .setIdLSB(entityView.getId().getId().getLeastSignificantBits()).build(); } - private EntityViewUpdateMsg constructEntityViewUpdatedMsgDeprecated(UpdateMsgType msgType, EntityView entityView) { + private EntityViewUpdateMsg constructDeprecatedEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView) { EdgeEntityType edgeEntityType = checkEntityType(entityView.getEntityId().getEntityType()); EntityViewUpdateMsg.Builder builder = EntityViewUpdateMsg.newBuilder() .setMsgType(msgType) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java index a946767088..cf90f25563 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java @@ -31,9 +31,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class OtaPackageMsgConstructor { public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedOtaPackageUpdatedMsg(msgType, otaPackage) - : OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedOtaPackageUpdatedMsg(msgType, otaPackage); + } + return OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) .setIdMSB(otaPackage.getId().getId().getMostSignificantBits()) .setIdLSB(otaPackage.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java index 3dbb8d4d05..6c9f9f441a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java @@ -34,9 +34,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class QueueMsgConstructor { public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedQueueUpdatedMsg(msgType, queue) - : QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedQueueUpdatedMsg(msgType, queue); + } + return QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) .setIdMSB(queue.getId().getId().getMostSignificantBits()) .setIdLSB(queue.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java index 31b4ade4b1..01abb37236 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RelationMsgConstructor.java @@ -29,9 +29,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class RelationMsgConstructor { public RelationUpdateMsg constructRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedRelationUpdatedMsg(msgType, entityRelation) - : RelationUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityRelation)).build(); + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + return constructDeprecatedRelationUpdatedMsg(msgType, entityRelation); + } + return RelationUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityRelation)).build(); } private RelationUpdateMsg constructDeprecatedRelationUpdatedMsg(UpdateMsgType msgType, EntityRelation entityRelation) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java index f51ee17c13..15fe10618a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java @@ -38,9 +38,10 @@ public class RuleChainMsgConstructor { public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { ruleChain.setRoot(isRoot); - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain) - : RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain); + } + return RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java index 6f9aee29f5..6f6c4149ed 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java @@ -29,9 +29,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class TenantMsgConstructor { public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedTenantUpdateMsg(msgType, tenant) - : TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedTenantUpdateMsg(msgType, tenant); + } + return TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); } private TenantUpdateMsg constructDeprecatedTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java index f56a781437..a93c730ee7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java @@ -37,9 +37,10 @@ public class TenantProfileMsgConstructor { public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedTenantProfileUpdateMsg(msgType, tenantProfile, profileData) - : TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + return constructDeprecatedTenantProfileUpdateMsg(msgType, tenantProfile, profileData); + } + return TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); } private TenantProfileUpdateMsg constructDeprecatedTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, ByteString profileData) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java index e0829ead4f..1f39f74150 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java @@ -32,9 +32,10 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class UserMsgConstructor { public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedUserUpdatedMsg(msgType, user) - : UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedUserUpdatedMsg(msgType, user); + } + return UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) .setIdMSB(user.getId().getId().getMostSignificantBits()) .setIdLSB(user.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java index 8d928e7125..d4e5810c04 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java @@ -33,9 +33,10 @@ import java.util.Arrays; public class WidgetTypeMsgConstructor { public WidgetTypeUpdateMsg constructWidgetTypeUpdateMsg(UpdateMsgType msgType, WidgetTypeDetails widgetTypeDetails, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) - ? constructDeprecatedWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion) - : WidgetTypeUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetTypeDetails)) + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + return constructDeprecatedWidgetTypeUpdateMsg(msgType, widgetTypeDetails, edgeVersion); + } + return WidgetTypeUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetTypeDetails)) .setIdMSB(widgetTypeDetails.getId().getId().getMostSignificantBits()) .setIdLSB(widgetTypeDetails.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java index e52e44aa1e..16e9d58ad6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java @@ -35,9 +35,10 @@ import java.util.List; public class WidgetsBundleMsgConstructor { public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) - ? constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets) - : WidgetsBundleUpdateMsg.newBuilder().setWidgets(JacksonUtil.toString(widgets)).setEntity(JacksonUtil.toString(widgetsBundle)) + if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + return constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); + } + return WidgetsBundleUpdateMsg.newBuilder().setWidgets(JacksonUtil.toString(widgets)).setEntity(JacksonUtil.toString(widgetsBundle)) .setMsgType(msgType).setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 53db17a3ba..15c446af67 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -31,15 +31,14 @@ import java.util.Set; @Slf4j public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId deprecatedDashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated) { + protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated) { boolean created = false; Dashboard dashboard = isEdgeProtoDeprecated - ? createDashboard(tenantId, deprecatedDashboardId, dashboardUpdateMsg) + ? createDashboard(tenantId, dashboardId, dashboardUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); if (dashboard == null) { throw new RuntimeException("[{" + tenantId + "}] dashboardUpdateMsg {" + dashboardUpdateMsg + "} cannot be converted to dashboard"); } - DashboardId dashboardId = dashboard.getId(); Dashboard dashboardById = dashboardService.findDashboardById(tenantId, dashboardId); if (dashboardById == null) { created = true; @@ -64,7 +63,6 @@ public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { private Dashboard createDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg) { Dashboard dashboard = new Dashboard(); dashboard.setTenantId(tenantId); - dashboard.setId(dashboardId); dashboard.setCreatedTime(Uuids.unixTimestamp(dashboardId.getId())); dashboard.setTitle(dashboardUpdateMsg.getTitle()); dashboard.setImage(dashboardUpdateMsg.hasImage() ? dashboardUpdateMsg.getImage() : null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index 236c00a861..b53470b0cb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -60,6 +60,7 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { entityViewNameUpdated = true; } entityView.setName(entityViewName); + setCustomerId(tenantId, created ? null : entityViewById.getCustomerId(), entityView, entityViewUpdateMsg, isEdgeProtoDeprecated); entityViewValidator.validate(entityView, EntityView::getTenantId); if (created) { @@ -90,4 +91,6 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { } return entityView; } + + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionDeprecated); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 41996d8afb..7290f731ff 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeEvent; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.EntityViewId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.msg.TbMsgType; @@ -137,4 +138,12 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } return downlinkMsg; } + + @Override + protected void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionDeprecated) { + CustomerId customerUUID = isEdgeVersionDeprecated + ? safeGetCustomerId(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()) + : entityView.getCustomerId() != null ? entityView.getCustomerId() : customerId; + entityView.setCustomerId(customerUUID); + } } From ec4200d735ed19286c6ac922ce9dfc4a2fa8c7ce Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Fri, 13 Oct 2023 11:51:02 +0300 Subject: [PATCH 023/162] Refactoring after final review --- .../processor/alarm/BaseAlarmProcessor.java | 6 ++-- .../asset/AssetProfileEdgeProcessor.java | 7 ++-- .../asset/BaseAssetProfileProcessor.java | 7 ++-- .../dashboard/BaseDashboardProcessor.java | 33 ++++++++++++++++--- .../dashboard/DashboardEdgeProcessor.java | 2 +- .../device/BaseDeviceProfileProcessor.java | 7 ++-- .../device/DeviceProfileEdgeProcessor.java | 7 ++-- .../server/edge/AbstractEdgeTest.java | 17 ++++++---- .../server/edge/AssetProfileEdgeTest.java | 2 -- common/edge-api/src/main/proto/edge.proto | 2 +- .../common/util/JacksonUtilTest.java | 8 ++--- 11 files changed, 63 insertions(+), 35 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index b89c2d4dc4..e81b7916f6 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -56,9 +56,9 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { if (alarm == null) { throw new RuntimeException("[{" + tenantId + "}] alarmUpdateMsg {" + alarmUpdateMsg + "} cannot be converted to alarm"); } - EntityType entityType = isEdgeProtoDeprecated ? EntityType.valueOf(alarmUpdateMsg.getOriginatorType()) - : alarm.getOriginator().getEntityType(); - EntityId originatorId = getAlarmOriginator(tenantId, alarmUpdateMsg.getOriginatorName(), entityType); + EntityId originatorId = isEdgeProtoDeprecated + ? getAlarmOriginator(tenantId, alarmUpdateMsg.getOriginatorName(), EntityType.valueOf(alarmUpdateMsg.getOriginatorType())) + : alarm.getOriginator(); if (originatorId == null) { log.warn("[{}] Originator not found for the alarm msg {}", tenantId, alarmUpdateMsg); return Futures.immediateFuture(null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index b7b6690a87..544cf46690 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -129,17 +129,16 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } @Override - protected void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile) { - // do nothing on cloud + protected void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, RuleChainId ruleChainId) { + assetProfile.setDefaultRuleChainId(ruleChainId); } @Override protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated ? safeGetUUID(assetProfileUpdateMsg.getDefaultRuleChainIdMSB(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()) - : assetProfile.getDefaultRuleChainId() != null ? assetProfile.getDefaultRuleChainId().getId() : null; + : ruleChainId != null ? ruleChainId.getId() : null; assetProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); - assetProfile.setDefaultRuleChainId(ruleChainId); } @Override diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index d829df4a32..2712881a30 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -61,8 +61,9 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { } assetProfile.setName(assetProfileName); - setDefaultRuleChainId(tenantId, assetProfile); - setDefaultEdgeRuleChainId(assetProfile, created ? null : assetProfileById.getDefaultRuleChainId(), assetProfileUpdateMsg, isEdgeProtoDeprecated); + RuleChainId ruleChainId = assetProfile.getDefaultRuleChainId(); + setDefaultRuleChainId(tenantId, assetProfile, created ? null : assetProfileById.getDefaultRuleChainId()); + setDefaultEdgeRuleChainId(assetProfile, ruleChainId, assetProfileUpdateMsg, isEdgeProtoDeprecated); setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, isEdgeProtoDeprecated); assetProfileValidator.validate(assetProfile, AssetProfile::getTenantId); @@ -92,7 +93,7 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { return assetProfile; } - protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile); + protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, RuleChainId ruleChainId); protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 15c446af67..823de9a58b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.ShortCustomerInfo; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DashboardId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg; @@ -31,7 +32,7 @@ import java.util.Set; @Slf4j public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated) { + protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated, CustomerId customerId) { boolean created = false; Dashboard dashboard = isEdgeProtoDeprecated ? createDashboard(tenantId, dashboardId, dashboardUpdateMsg) @@ -39,23 +40,38 @@ public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { if (dashboard == null) { throw new RuntimeException("[{" + tenantId + "}] dashboardUpdateMsg {" + dashboardUpdateMsg + "} cannot be converted to dashboard"); } + Set assignedCustomers = null; Dashboard dashboardById = dashboardService.findDashboardById(tenantId, dashboardId); if (dashboardById == null) { created = true; dashboard.setId(null); } else { dashboard.setId(dashboardId); + assignedCustomers = filterNonExistingCustomers(tenantId, dashboardById.getAssignedCustomers()); } dashboardValidator.validate(dashboard, Dashboard::getTenantId); if (created) { dashboard.setId(dashboardId); } + Set msgAssignedCustomers = filterNonExistingCustomers(tenantId, dashboard.getAssignedCustomers()); + if (msgAssignedCustomers != null) { + if (assignedCustomers == null) { + assignedCustomers = msgAssignedCustomers; + } else { + assignedCustomers.addAll(msgAssignedCustomers); + } + } + dashboard.setAssignedCustomers(assignedCustomers); Dashboard savedDashboard = dashboardService.saveDashboard(dashboard, false); - if (savedDashboard.getAssignedCustomers() != null && savedDashboard.getAssignedCustomers().isEmpty()) { - for (ShortCustomerInfo assignedCustomer : savedDashboard.getAssignedCustomers()) { - dashboardService.unassignDashboardFromCustomer(tenantId, savedDashboard.getId(), assignedCustomer.getCustomerId()); + if (msgAssignedCustomers != null && !msgAssignedCustomers.isEmpty()) { + for (ShortCustomerInfo assignedCustomer : msgAssignedCustomers) { + if (assignedCustomer.getCustomerId().equals(customerId)) { + dashboardService.assignDashboardToCustomer(tenantId, savedDashboard.getId(), assignedCustomer.getCustomerId()); + } } + } else { + unassignCustomersFromDashboard(tenantId, savedDashboard, customerId); } return created; } @@ -80,6 +96,15 @@ public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { return dashboard; } + private void unassignCustomersFromDashboard(TenantId tenantId, Dashboard dashboard, CustomerId customerId) { + if (dashboard.getAssignedCustomers() != null && !dashboard.getAssignedCustomers().isEmpty()) { + for (ShortCustomerInfo assignedCustomer : dashboard.getAssignedCustomers()) { + if (assignedCustomer.getCustomerId().equals(customerId)) { + dashboardService.unassignDashboardFromCustomer(tenantId, dashboard.getId(), assignedCustomer.getCustomerId()); + } + } + } + } protected abstract Set filterNonExistingCustomers(TenantId tenantId, Set assignedCustomers); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java index 630416f775..a7e7cdbc12 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/DashboardEdgeProcessor.java @@ -80,7 +80,7 @@ public class DashboardEdgeProcessor extends BaseDashboardProcessor { private void saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, Edge edge, EdgeVersion edgeVersion) { boolean created = super.saveOrUpdateDashboard(tenantId, dashboardId, dashboardUpdateMsg, - EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); + EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion), edge.getCustomerId()); if (created) { createRelationFromEdge(tenantId, edge.getId(), dashboardId); pushDashboardCreatedEventToRuleEngine(tenantId, edge, dashboardId); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index 38d781fb13..27ed9eb3c9 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -73,8 +73,9 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { } deviceProfile.setName(deviceProfileName); - setDefaultRuleChainId(tenantId, deviceProfile); - setDefaultEdgeRuleChainId(deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId(), deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); + RuleChainId ruleChainId = deviceProfile.getDefaultRuleChainId(); + setDefaultRuleChainId(tenantId, deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId()); + setDefaultEdgeRuleChainId(deviceProfile, ruleChainId, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); deviceProfileValidator.validate(deviceProfile, DeviceProfile::getTenantId); @@ -124,7 +125,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { return deviceProfile; } - protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile); + protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, RuleChainId ruleChainId); protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 419b7f90c8..3814992491 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -129,17 +129,16 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } @Override - protected void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile) { - // do nothing on cloud + protected void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, RuleChainId ruleChainId) { + deviceProfile.setDefaultRuleChainId(ruleChainId); } @Override protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated ? safeGetUUID(deviceProfileUpdateMsg.getDefaultRuleChainIdMSB(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()) - : deviceProfile.getDefaultRuleChainId() != null ? deviceProfile.getDefaultRuleChainId().getId() : null; + : ruleChainId != null ? ruleChainId.getId() : null; deviceProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); - deviceProfile.setDefaultRuleChainId(ruleChainId); } @Override diff --git a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java index b2bce41bf6..88aead4c7d 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java @@ -449,6 +449,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { if (adminSettings.getKey().equals("connectivity")) { validateConnectivityAdminSettings(adminSettings); } + if (adminSettings.getKey().equals("jwt")) { + validateJwtAdminSettings(adminSettings); + } } } @@ -467,12 +470,14 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { private void validateConnectivityAdminSettings(AdminSettings adminSettings) { JsonNode jsonNode = adminSettings.getJsonValue(); - Assert.assertNotNull(jsonNode.get("http")); - Assert.assertNotNull(jsonNode.get("https")); - Assert.assertNotNull(jsonNode.get("mqtt")); - Assert.assertNotNull(jsonNode.get("mqtts")); - Assert.assertNotNull(jsonNode.get("coap")); - Assert.assertNotNull(jsonNode.get("coaps")); + Assert.assertNotNull(jsonNode.get("tokenExpirationTime")); + Assert.assertNotNull(jsonNode.get("refreshTokenExpTime")); + Assert.assertNotNull(jsonNode.get("tokenIssuer")); + Assert.assertNotNull(jsonNode.get("tokenSigningKey")); + } + + private void validateJwtAdminSettings(AdminSettings adminSettings) { + Assert.assertNotNull(adminSettings.getJsonValue().get("baseUrl")); } private void validateAssetProfiles(int expectedMsgCnt) throws Exception { diff --git a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java index 7c93a4440d..7ffff29ed7 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AssetProfileEdgeTest.java @@ -16,7 +16,6 @@ package org.thingsboard.server.edge; import com.google.protobuf.AbstractMessage; -import com.google.protobuf.ByteString; import org.junit.Assert; import org.junit.Test; import org.thingsboard.common.util.JacksonUtil; @@ -31,7 +30,6 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.UplinkMsg; import org.thingsboard.server.gen.edge.v1.UplinkResponseMsg; -import java.nio.charset.StandardCharsets; import java.util.Optional; import java.util.UUID; diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 7d5c57928f..b42b3f08fa 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -311,7 +311,7 @@ message AlarmUpdateMsg { string name = 4 [deprecated = true]; string type = 5 [deprecated = true]; string originatorType = 6 [deprecated = true]; - string originatorName = 7; + string originatorName = 7 [deprecated = true]; string severity = 8 [deprecated = true]; string status = 9 [deprecated = true]; int64 startTs = 10 [deprecated = true]; diff --git a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java index 808fb22834..229ba4187d 100644 --- a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java +++ b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java @@ -15,7 +15,6 @@ */ package org.thingsboard.common.util; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.Assert; @@ -28,7 +27,7 @@ import java.util.UUID; public class JacksonUtilTest { @Test - public void allow_unquoted_field_mapper_test() { + public void allowUnquotedFieldMapperTest() { String data = "{data: 123}"; JsonNode actualResult = JacksonUtil.toJsonNode(data, JacksonUtil.ALLOW_UNQUOTED_FIELD_NAMES_MAPPER); // should be: {"data": 123} ObjectNode expectedResult = JacksonUtil.newObjectNode(); @@ -38,14 +37,15 @@ public class JacksonUtilTest { } @Test - public void fail_on_unknown_properties_edge_mapper_test() throws JsonProcessingException { + public void failOnUnknownPropertiesMapperTest() { Asset asset = new Asset(); asset.setId(new AssetId(UUID.randomUUID())); asset.setName("Test"); asset.setType("type"); String serializedAsset = JacksonUtil.toString(asset); - JsonNode jsonNode = JacksonUtil.IGNORE_UNKNOWN_PROPERTIES_JSON_MAPPER.readTree(serializedAsset); + JsonNode jsonNode = JacksonUtil.toJsonNode(serializedAsset); // case: add new field to serialized Asset string and check for backward compatibility with original Asset object + Assert.assertNotNull(jsonNode); ((ObjectNode) jsonNode).put("test", (String) null); serializedAsset = JacksonUtil.toString(jsonNode); // deserialize with FAIL_ON_UNKNOWN_PROPERTIES = false From ed285338d246dfe2297df835cd3952092d0374af Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 17 Oct 2023 16:07:45 +0300 Subject: [PATCH 024/162] Minor refactoring of RuleChainMetadataConstructor --- .../rpc/constructor/AlarmMsgConstructor.java | 5 ++--- .../rpc/constructor/AssetMsgConstructor.java | 2 +- .../AssetProfileMsgConstructor.java | 2 +- .../constructor/CustomerMsgConstructor.java | 2 +- .../constructor/DashboardMsgConstructor.java | 3 +-- .../rpc/constructor/DeviceMsgConstructor.java | 4 ++-- .../DeviceProfileMsgConstructor.java | 3 +-- .../constructor/EntityViewMsgConstructor.java | 2 +- .../constructor/OtaPackageMsgConstructor.java | 3 +-- .../rpc/constructor/QueueMsgConstructor.java | 3 +-- .../constructor/RuleChainMsgConstructor.java | 2 +- .../rpc/constructor/TenantMsgConstructor.java | 2 +- .../rpc/constructor/UserMsgConstructor.java | 4 ++-- .../WidgetsBundleMsgConstructor.java | 2 +- .../AbstractRuleChainMetadataConstructor.java | 19 +++++++------------ .../processor/alarm/AlarmEdgeProcessor.java | 1 - .../processor/alarm/BaseAlarmProcessor.java | 6 +++--- .../processor/asset/BaseAssetProcessor.java | 6 +++--- .../asset/BaseAssetProfileProcessor.java | 8 ++++---- .../dashboard/BaseDashboardProcessor.java | 4 ++-- .../processor/device/BaseDeviceProcessor.java | 6 +++--- .../entityview/BaseEntityViewProcessor.java | 6 +++--- .../server/edge/AlarmEdgeTest.java | 4 ---- .../server/edge/TenantProfileEdgeTest.java | 13 ++++++++----- common/edge-api/src/main/proto/edge.proto | 2 +- 25 files changed, 51 insertions(+), 63 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java index f9b145ec99..ef2a353e8e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AlarmMsgConstructor.java @@ -29,11 +29,11 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class AlarmMsgConstructor { public AlarmUpdateMsg constructAlarmUpdatedMsg(UpdateMsgType msgType, Alarm alarm, String entityName, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedAlarmUpdatedMsg(msgType, alarm, entityName); } return AlarmUpdateMsg.newBuilder().setMsgType(msgType) - .setEntity(JacksonUtil.toString(alarm)).setOriginatorName(entityName) + .setEntity(JacksonUtil.toString(alarm)) .setIdMSB(alarm.getId().getId().getMostSignificantBits()) .setIdLSB(alarm.getId().getId().getLeastSignificantBits()).build(); } @@ -59,5 +59,4 @@ public class AlarmMsgConstructor { .setPropagateToTenant(alarm.isPropagateToTenant()); return builder.build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java index 72235be45d..f46ec7ab2d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetMsgConstructor.java @@ -30,7 +30,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class AssetMsgConstructor { public AssetUpdateMsg constructAssetUpdatedMsg(UpdateMsgType msgType, Asset asset, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedAssetUpdateMsg(msgType, asset); } return AssetUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(asset)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java index b140e4f529..f58271917f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java @@ -33,7 +33,7 @@ import java.nio.charset.StandardCharsets; public class AssetProfileMsgConstructor { public AssetProfileUpdateMsg constructAssetProfileUpdatedMsg(UpdateMsgType msgType, AssetProfile assetProfile, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedAssetProfileUpdatedMsg(msgType, assetProfile); } return AssetProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(assetProfile)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java index e84978383e..cbfb9004eb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/CustomerMsgConstructor.java @@ -30,7 +30,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class CustomerMsgConstructor { public CustomerUpdateMsg constructCustomerUpdatedMsg(UpdateMsgType msgType, Customer customer, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedCustomerUpdatedMsg(msgType, customer); } return CustomerUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(customer)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java index 351b3d8e57..82f83a32ff 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DashboardMsgConstructor.java @@ -30,7 +30,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class DashboardMsgConstructor { public DashboardUpdateMsg constructDashboardUpdatedMsg(UpdateMsgType msgType, Dashboard dashboard, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedDashboardUpdatedMsg(msgType, dashboard); } return DashboardUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(dashboard)) @@ -64,5 +64,4 @@ public class DashboardMsgConstructor { .setIdMSB(dashboardId.getId().getMostSignificantBits()) .setIdLSB(dashboardId.getId().getLeastSignificantBits()).build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java index 15c221e608..bbdfc098c5 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceMsgConstructor.java @@ -44,7 +44,7 @@ public class DeviceMsgConstructor { private DataDecodingEncodingService dataDecodingEncodingService; public DeviceUpdateMsg constructDeviceUpdatedMsg(UpdateMsgType msgType, Device device, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedDeviceUpdateMsg(msgType, device); } return DeviceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(device)) @@ -88,7 +88,7 @@ public class DeviceMsgConstructor { } public DeviceCredentialsUpdateMsg constructDeviceCredentialsUpdatedMsg(DeviceCredentials deviceCredentials, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? constructDeprecatedDeviceCredentialsUpdatedMsg(deviceCredentials) : DeviceCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(deviceCredentials)).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java index de6920ee7f..6d3e9da378 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java @@ -38,7 +38,7 @@ public class DeviceProfileMsgConstructor { private DataDecodingEncodingService dataDecodingEncodingService; public DeviceProfileUpdateMsg constructDeviceProfileUpdatedMsg(UpdateMsgType msgType, DeviceProfile deviceProfile, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedDeviceProfileUpdatedMsg(msgType, deviceProfile); } return DeviceProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(deviceProfile)) @@ -98,5 +98,4 @@ public class DeviceProfileMsgConstructor { .setIdMSB(deviceProfileId.getId().getMostSignificantBits()) .setIdLSB(deviceProfileId.getId().getLeastSignificantBits()).build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java index 96db358811..bfa69459cc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/EntityViewMsgConstructor.java @@ -32,7 +32,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class EntityViewMsgConstructor { public EntityViewUpdateMsg constructEntityViewUpdatedMsg(UpdateMsgType msgType, EntityView entityView, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedEntityViewUpdatedMsg(msgType, entityView); } return EntityViewUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(entityView)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java index cf90f25563..a626574d92 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/OtaPackageMsgConstructor.java @@ -31,7 +31,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class OtaPackageMsgConstructor { public OtaPackageUpdateMsg constructOtaPackageUpdatedMsg(UpdateMsgType msgType, OtaPackage otaPackage, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedOtaPackageUpdatedMsg(msgType, otaPackage); } return OtaPackageUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(otaPackage)) @@ -87,5 +87,4 @@ public class OtaPackageMsgConstructor { .setIdMSB(otaPackageId.getId().getMostSignificantBits()) .setIdLSB(otaPackageId.getId().getLeastSignificantBits()).build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java index 6c9f9f441a..d1901cdf83 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/QueueMsgConstructor.java @@ -34,7 +34,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class QueueMsgConstructor { public QueueUpdateMsg constructQueueUpdatedMsg(UpdateMsgType msgType, Queue queue, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedQueueUpdatedMsg(msgType, queue); } return QueueUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(queue)) @@ -83,5 +83,4 @@ public class QueueMsgConstructor { .setIdMSB(queueId.getId().getMostSignificantBits()) .setIdLSB(queueId.getId().getLeastSignificantBits()).build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java index 15fe10618a..202f726ede 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java @@ -38,7 +38,7 @@ public class RuleChainMsgConstructor { public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { ruleChain.setRoot(isRoot); - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain); } return RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java index 6f6c4149ed..93bf46899e 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantMsgConstructor.java @@ -29,7 +29,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class TenantMsgConstructor { public TenantUpdateMsg constructTenantUpdateMsg(UpdateMsgType msgType, Tenant tenant, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedTenantUpdateMsg(msgType, tenant); } return TenantUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenant)).build(); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java index 1f39f74150..43771a77c0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/UserMsgConstructor.java @@ -32,7 +32,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class UserMsgConstructor { public UserUpdateMsg constructUserUpdatedMsg(UpdateMsgType msgType, User user, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedUserUpdatedMsg(msgType, user); } return UserUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(user)) @@ -71,7 +71,7 @@ public class UserMsgConstructor { } public UserCredentialsUpdateMsg constructUserCredentialsUpdatedMsg(UserCredentials userCredentials, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? constructDeprecatedUserCredentialsUpdatedMsg(userCredentials) : UserCredentialsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(userCredentials)).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java index 16e9d58ad6..4d7e7be2f9 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java @@ -35,7 +35,7 @@ import java.util.List; public class WidgetsBundleMsgConstructor { public WidgetsBundleUpdateMsg constructWidgetsBundleUpdateMsg(UpdateMsgType msgType, WidgetsBundle widgetsBundle, List widgets, EdgeVersion edgeVersion) { - if (EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion)) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); } return WidgetsBundleUpdateMsg.newBuilder().setWidgets(JacksonUtil.toString(widgets)).setEntity(JacksonUtil.toString(widgetsBundle)) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java index 997613a42a..eaab137301 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/rule/AbstractRuleChainMetadataConstructor.java @@ -45,7 +45,7 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM UpdateMsgType msgType, RuleChainMetaData ruleChainMetaData, EdgeVersion edgeVersion) { - return EdgeVersionUtils.isEdgeProtoDeprecated(edgeVersion) + return EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) ? constructDeprecatedRuleChainMetadataUpdatedMsg(tenantId, msgType, ruleChainMetaData) : RuleChainMetadataUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChainMetaData)).build(); } @@ -53,17 +53,12 @@ public abstract class AbstractRuleChainMetadataConstructor implements RuleChainM private RuleChainMetadataUpdateMsg constructDeprecatedRuleChainMetadataUpdatedMsg(TenantId tenantId, UpdateMsgType msgType, RuleChainMetaData ruleChainMetaData) { - try { - RuleChainMetadataUpdateMsg.Builder builder = RuleChainMetadataUpdateMsg.newBuilder(); - builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) - .setRuleChainIdLSB(ruleChainMetaData.getRuleChainId().getId().getLeastSignificantBits()); - constructRuleChainMetadataUpdatedMsg(tenantId, builder, ruleChainMetaData); - builder.setMsgType(msgType); - return builder.build(); - } catch (Exception ex) { - log.error("[{}] Can't construct RuleChainMetadataUpdateMsg", tenantId, ex); - } - return null; + RuleChainMetadataUpdateMsg.Builder builder = RuleChainMetadataUpdateMsg.newBuilder(); + builder.setRuleChainIdMSB(ruleChainMetaData.getRuleChainId().getId().getMostSignificantBits()) + .setRuleChainIdLSB(ruleChainMetaData.getRuleChainId().getId().getLeastSignificantBits()); + constructRuleChainMetadataUpdatedMsg(tenantId, builder, ruleChainMetaData); + builder.setMsgType(msgType); + return builder.build(); } protected abstract void constructRuleChainMetadataUpdatedMsg(TenantId tenantId, diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index 1a06f91149..b934a33d54 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -123,5 +123,4 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { } while (pageData != null && pageData.hasNext()); return futures; } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index e81b7916f6..8f085f7323 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -50,13 +50,13 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, EdgeVersion edgeVersion) { log.trace("[{}] processAlarmMsg [{}]", tenantId, alarmUpdateMsg); AlarmId alarmId = new AlarmId(new UUID(alarmUpdateMsg.getIdMSB(), alarmUpdateMsg.getIdLSB())); - boolean isEdgeProtoDeprecated = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); - Alarm alarm = isEdgeProtoDeprecated ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) + boolean isEdgeVersionOlderThan_3_6_2 = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); + Alarm alarm = isEdgeVersionOlderThan_3_6_2 ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); if (alarm == null) { throw new RuntimeException("[{" + tenantId + "}] alarmUpdateMsg {" + alarmUpdateMsg + "} cannot be converted to alarm"); } - EntityId originatorId = isEdgeProtoDeprecated + EntityId originatorId = isEdgeVersionOlderThan_3_6_2 ? getAlarmOriginator(tenantId, alarmUpdateMsg.getOriginatorName(), EntityType.valueOf(alarmUpdateMsg.getOriginatorType())) : alarm.getOriginator(); if (originatorId == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java index 46a58588d7..916083a362 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java @@ -33,12 +33,12 @@ import java.util.UUID; @Slf4j public abstract class BaseAssetProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, boolean isEdgeProtoDeprecated) { + protected Pair saveOrUpdateAsset(TenantId tenantId, AssetId assetId, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean created = false; boolean assetNameUpdated = false; assetCreationLock.lock(); try { - Asset asset = isEdgeProtoDeprecated + Asset asset = isEdgeVersionOlderThan_3_6_2 ? createAsset(tenantId, assetId, assetUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(assetUpdateMsg.getEntity(), Asset.class); if (asset == null) { @@ -60,7 +60,7 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { assetNameUpdated = true; } asset.setName(assetName); - setCustomerId(tenantId, created ? null : assetById.getCustomerId(), asset, assetUpdateMsg, isEdgeProtoDeprecated); + setCustomerId(tenantId, created ? null : assetById.getCustomerId(), asset, assetUpdateMsg, isEdgeVersionOlderThan_3_6_2); assetValidator.validate(asset, Asset::getTenantId); if (created) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index 2712881a30..4d106eeacb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -33,12 +33,12 @@ import java.nio.charset.StandardCharsets; @Slf4j public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeProtoDeprecated) { + protected Pair saveOrUpdateAssetProfile(TenantId tenantId, AssetProfileId assetProfileId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean created = false; boolean assetProfileNameUpdated = false; assetCreationLock.lock(); try { - AssetProfile assetProfile = isEdgeProtoDeprecated + AssetProfile assetProfile = isEdgeVersionOlderThan_3_6_2 ? createAssetProfile(tenantId, assetProfileId, assetProfileUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(assetProfileUpdateMsg.getEntity(), AssetProfile.class); if (assetProfile == null) { @@ -63,8 +63,8 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { RuleChainId ruleChainId = assetProfile.getDefaultRuleChainId(); setDefaultRuleChainId(tenantId, assetProfile, created ? null : assetProfileById.getDefaultRuleChainId()); - setDefaultEdgeRuleChainId(assetProfile, ruleChainId, assetProfileUpdateMsg, isEdgeProtoDeprecated); - setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, isEdgeProtoDeprecated); + setDefaultEdgeRuleChainId(assetProfile, ruleChainId, assetProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setDefaultDashboardId(tenantId, created ? null : assetProfileById.getDefaultDashboardId(), assetProfile, assetProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); assetProfileValidator.validate(assetProfile, AssetProfile::getTenantId); if (created) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java index 823de9a58b..46f4088f41 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/dashboard/BaseDashboardProcessor.java @@ -32,9 +32,9 @@ import java.util.Set; @Slf4j public abstract class BaseDashboardProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeProtoDeprecated, CustomerId customerId) { + protected boolean saveOrUpdateDashboard(TenantId tenantId, DashboardId dashboardId, DashboardUpdateMsg dashboardUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2, CustomerId customerId) { boolean created = false; - Dashboard dashboard = isEdgeProtoDeprecated + Dashboard dashboard = isEdgeVersionOlderThan_3_6_2 ? createDashboard(tenantId, dashboardId, dashboardUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(dashboardUpdateMsg.getEntity(), Dashboard.class); if (dashboard == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index b43843580b..4b03c4d76b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -46,12 +46,12 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { @Autowired protected DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeProtoDeprecated) { + protected Pair saveOrUpdateDevice(TenantId tenantId, DeviceId deviceId, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean created = false; boolean deviceNameUpdated = false; deviceCreationLock.lock(); try { - Device device = isEdgeProtoDeprecated + Device device = isEdgeVersionOlderThan_3_6_2 ? createDevice(tenantId, deviceId, deviceUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceUpdateMsg.getEntity(), Device.class); if (device == null) { @@ -73,7 +73,7 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { deviceNameUpdated = true; } device.setName(deviceName); - setCustomerId(tenantId, created ? null : deviceById.getCustomerId(), device, deviceUpdateMsg, isEdgeProtoDeprecated); + setCustomerId(tenantId, created ? null : deviceById.getCustomerId(), device, deviceUpdateMsg, isEdgeVersionOlderThan_3_6_2); deviceValidator.validate(device, Device::getTenantId); if (created) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index b53470b0cb..02bc2b9529 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -35,10 +35,10 @@ import java.util.UUID; @Slf4j public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { - protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeProtoDeprecated) { + protected Pair saveOrUpdateEntityView(TenantId tenantId, EntityViewId entityViewId, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean created = false; boolean entityViewNameUpdated = false; - EntityView entityView = isEdgeProtoDeprecated + EntityView entityView = isEdgeVersionOlderThan_3_6_2 ? createEntityView(tenantId, entityViewId, entityViewUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(entityViewUpdateMsg.getEntity(), EntityView.class); if (entityView == null) { @@ -60,7 +60,7 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { entityViewNameUpdated = true; } entityView.setName(entityViewName); - setCustomerId(tenantId, created ? null : entityViewById.getCustomerId(), entityView, entityViewUpdateMsg, isEdgeProtoDeprecated); + setCustomerId(tenantId, created ? null : entityViewById.getCustomerId(), entityView, entityViewUpdateMsg, isEdgeVersionOlderThan_3_6_2); entityViewValidator.validate(entityView, EntityView::getTenantId); if (created) { diff --git a/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java index 634b16e248..804d2f6807 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AlarmEdgeTest.java @@ -54,7 +54,6 @@ public class AlarmEdgeTest extends AbstractEdgeTest { alarmUpdateMgBuilder.setIdMSB(edgeAlarm.getUuidId().getMostSignificantBits()); alarmUpdateMgBuilder.setIdLSB(edgeAlarm.getUuidId().getLeastSignificantBits()); alarmUpdateMgBuilder.setEntity(JacksonUtil.toString(edgeAlarm)); - alarmUpdateMgBuilder.setOriginatorName(device.getName()); testAutoGeneratedCodeByProtobuf(alarmUpdateMgBuilder); uplinkMsgBuilder.addAlarmUpdateMsg(alarmUpdateMgBuilder.build()); @@ -108,7 +107,6 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertNotNull(alarmMsg); Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); - Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); Assert.assertEquals(AlarmStatus.ACTIVE_ACK, alarmMsg.getStatus()); // clear alarm @@ -123,7 +121,6 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertNotNull(alarmMsg); Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); - Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); Assert.assertEquals(AlarmStatus.CLEARED_ACK, alarmMsg.getStatus()); // delete alarm @@ -139,7 +136,6 @@ public class AlarmEdgeTest extends AbstractEdgeTest { Assert.assertNotNull(alarmMsg); Assert.assertEquals(savedAlarm.getType(), alarmMsg.getType()); Assert.assertEquals(savedAlarm.getName(), alarmMsg.getName()); - Assert.assertEquals(device.getName(), alarmUpdateMsg.getOriginatorName()); Assert.assertEquals(AlarmStatus.CLEARED_ACK, alarmMsg.getStatus()); } diff --git a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java index 7320a73a08..e958325410 100644 --- a/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/TenantProfileEdgeTest.java @@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.TenantProfile; import org.thingsboard.server.common.data.queue.ProcessingStrategy; import org.thingsboard.server.common.data.queue.ProcessingStrategyType; +import org.thingsboard.server.common.data.queue.Queue; import org.thingsboard.server.common.data.queue.SubmitStrategy; import org.thingsboard.server.common.data.queue.SubmitStrategyType; import org.thingsboard.server.common.data.tenant.profile.TenantProfileQueueConfiguration; @@ -84,10 +85,11 @@ public class TenantProfileEdgeTest extends AbstractEdgeTest { Optional tenantProfileUpdateMsgOpt = edgeImitator.findMessageByType(TenantProfileUpdateMsg.class); Assert.assertTrue(tenantProfileUpdateMsgOpt.isPresent()); TenantProfileUpdateMsg tenantProfileUpdateMsg = tenantProfileUpdateMsgOpt.get(); + TenantProfile tenantProfile = JacksonUtil.fromStringIgnoreUnknownProperties(tenantProfileUpdateMsg.getEntity(), TenantProfile.class); + Assert.assertNotNull(tenantProfile); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, tenantProfileUpdateMsg.getMsgType()); - Assert.assertEquals(edgeTenantProfile.getUuidId().getMostSignificantBits(), tenantProfileUpdateMsg.getIdMSB()); - Assert.assertEquals(edgeTenantProfile.getUuidId().getLeastSignificantBits(), tenantProfileUpdateMsg.getIdLSB()); - Assert.assertEquals(edgeTenantProfile.getDescription(), tenantProfileUpdateMsg.getDescription()); + Assert.assertEquals(edgeTenantProfile.getId(), tenantProfile.getId()); + Assert.assertEquals(edgeTenantProfile.getDescription(), tenantProfile.getDescription()); List queueUpdateMsgs = edgeImitator.findAllMessagesByType(QueueUpdateMsg.class); Assert.assertEquals(2, queueUpdateMsgs.size()); @@ -104,8 +106,9 @@ public class TenantProfileEdgeTest extends AbstractEdgeTest { queueUpdateMsgs = edgeImitator.findAllMessagesByType(QueueUpdateMsg.class); Assert.assertEquals(2, queueUpdateMsgs.size()); for (QueueUpdateMsg queueUpdateMsg : queueUpdateMsgs) { - Assert.assertEquals(tenantId.getId().getMostSignificantBits(), queueUpdateMsg.getTenantIdMSB()); - Assert.assertEquals(tenantId.getId().getLeastSignificantBits(), queueUpdateMsg.getTenantIdLSB()); + Queue queue = JacksonUtil.fromStringIgnoreUnknownProperties(queueUpdateMsg.getEntity(), Queue.class); + Assert.assertNotNull(queue); + Assert.assertEquals(tenantId, queue.getTenantId()); } } diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index b42b3f08fa..a7df1e41fb 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -397,7 +397,7 @@ message WidgetTypeUpdateMsg { optional string description = 10 [deprecated = true]; optional string fqn = 11 [deprecated = true]; bool deprecated = 12 [deprecated = true]; - repeated string tags = 13; + repeated string tags = 13 [deprecated = true]; string entity = 14; } From 442fe9029e41a6be4a5168b46e56942c93342c93 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 13 Nov 2023 13:14:37 +0200 Subject: [PATCH 025/162] added env variable to regulate pubsud queue executor threads pool size --- application/src/main/resources/thingsboard.yml | 2 ++ .../server/queue/pubsub/TbPubSubProducerTemplate.java | 10 +++++++++- .../server/queue/pubsub/TbPubSubSettings.java | 3 +++ msa/vc-executor/src/main/resources/tb-vc-executor.yml | 2 ++ .../coap/src/main/resources/tb-coap-transport.yml | 2 ++ .../http/src/main/resources/tb-http-transport.yml | 2 ++ .../lwm2m/src/main/resources/tb-lwm2m-transport.yml | 2 ++ .../mqtt/src/main/resources/tb-mqtt-transport.yml | 2 ++ .../snmp/src/main/resources/tb-snmp-transport.yml | 2 ++ 9 files changed, 26 insertions(+), 1 deletion(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index bdf0ad8252..e292237da5 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1411,6 +1411,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java index 0d84a8f839..56e21da3db 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java @@ -18,6 +18,7 @@ package org.thingsboard.server.queue.pubsub; import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; +import com.google.api.gax.core.InstantiatingExecutorProvider; import com.google.cloud.pubsub.v1.Publisher; import com.google.gson.Gson; import com.google.protobuf.ByteString; @@ -120,7 +121,14 @@ public class TbPubSubProducerTemplate implements TbQueuePr try { admin.createTopicIfNotExists(topic); ProjectTopicName topicName = ProjectTopicName.of(pubSubSettings.getProjectId(), topic); - Publisher publisher = Publisher.newBuilder(topicName).setCredentialsProvider(pubSubSettings.getCredentialsProvider()).build(); + InstantiatingExecutorProvider executorProvider = + InstantiatingExecutorProvider.newBuilder() + .setExecutorThreadCount(pubSubSettings.getExecutorThreadPoolSize()) + .build(); + Publisher publisher = Publisher.newBuilder(topicName) + .setCredentialsProvider(pubSubSettings.getCredentialsProvider()) + .setExecutorProvider(executorProvider) + .build(); publisherMap.put(topic, publisher); return publisher; } catch (IOException e) { diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java index fe9d85c306..b1b095f23c 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java @@ -46,6 +46,9 @@ public class TbPubSubSettings { @Value("${queue.pubsub.max_messages}") private int maxMessages; + @Value("${queue.pubsub.executor_thread_pool_size}") + private int executorThreadPoolSize; + private CredentialsProvider credentialsProvider; @PostConstruct diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index 4ffa1ab702..cfbd61eda5 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -172,6 +172,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 437f551690..be54ed34cf 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -295,6 +295,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 8d4d6fadf0..cf2c49b846 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -278,6 +278,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 8fd1c11e6e..9884b33390 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -374,6 +374,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 6c51d18ab7..0c26caa97e 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -311,6 +311,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index eeb6807714..5e4dc06275 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -264,6 +264,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" From ccb7b947009b0da2076b7faa8bf1c212cff066c7 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 13 Nov 2023 13:17:19 +0200 Subject: [PATCH 026/162] refactoring --- application/src/main/resources/thingsboard.yml | 2 +- msa/vc-executor/src/main/resources/tb-vc-executor.yml | 2 +- transport/coap/src/main/resources/tb-coap-transport.yml | 2 +- transport/http/src/main/resources/tb-http-transport.yml | 2 +- transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml | 2 +- transport/mqtt/src/main/resources/tb-mqtt-transport.yml | 2 +- transport/snmp/src/main/resources/tb-snmp-transport.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index e292237da5..5c2a62a79a 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1412,7 +1412,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index cfbd61eda5..63ed58da12 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -173,7 +173,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index be54ed34cf..e2c515de58 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -296,7 +296,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index cf2c49b846..820c901603 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -279,7 +279,7 @@ queue: # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 9884b33390..f7e7d55545 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -375,7 +375,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 0c26caa97e..d67f5f91ba 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -312,7 +312,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 5e4dc06275..bdd9aef7aa 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -265,7 +265,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:50}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:50}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" From 6fa3a125c2b9fbf4a92aba5bdaabcfc678c76dcd Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Mon, 13 Nov 2023 13:28:54 +0200 Subject: [PATCH 027/162] Mino refactoring: add json support for resources, fix test and edgeVersion for test --- .../server/service/edge/rpc/EdgeGrpcSession.java | 2 +- .../rpc/constructor/ResourceMsgConstructor.java | 14 +++++++++++++- .../rpc/processor/alarm/BaseAlarmProcessor.java | 10 ---------- .../processor/resource/ResourceEdgeProcessor.java | 5 +++-- .../telemetry/BaseTelemetryProcessor.java | 2 +- .../org/thingsboard/edge/rpc/EdgeGrpcClient.java | 2 +- common/edge-api/src/main/proto/edge.proto | 15 ++++++++------- .../thingsboard/common/util/JacksonUtilTest.java | 2 +- 8 files changed, 28 insertions(+), 24 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index 277b8a3f34..de5817a7af 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -647,7 +647,7 @@ public final class EdgeGrpcSession implements Closeable { case OTA_PACKAGE: return ctx.getOtaPackageEdgeProcessor().convertOtaPackageEventToDownlink(edgeEvent, this.edgeVersion); case TB_RESOURCE: - return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent); + return ctx.getResourceEdgeProcessor().convertResourceEventToDownlink(edgeEvent, this.edgeVersion); case QUEUE: return ctx.getQueueEdgeProcessor().convertQueueEventToDownlink(edgeEvent, this.edgeVersion); case TENANT: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java index 27b7dc3978..bf9a0e4521 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java @@ -16,18 +16,30 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; @Component @TbCoreComponent public class ResourceMsgConstructor { - public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource) { + public ResourceUpdateMsg constructResourceUpdatedMsg(UpdateMsgType msgType, TbResource tbResource, EdgeVersion edgeVersion) { + if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + return constructDeprecatedResourceUpdateMsg(msgType, tbResource); + } + return ResourceUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tbResource)) + .setIdMSB(tbResource.getId().getId().getMostSignificantBits()) + .setIdLSB(tbResource.getId().getId().getLeastSignificantBits()).build(); + } + + private ResourceUpdateMsg constructDeprecatedResourceUpdateMsg(UpdateMsgType msgType, TbResource tbResource) { ResourceUpdateMsg.Builder builder = ResourceUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(tbResource.getId().getId().getMostSignificantBits()) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index 8f085f7323..fd53e38f4a 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -70,16 +70,6 @@ public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { case ENTITY_UPDATED_RPC_MESSAGE: alarm.setId(alarmId); alarm.setOriginator(originatorId); - alarm.setSeverity(AlarmSeverity.valueOf(alarmUpdateMsg.getSeverity())); - alarm.setStartTs(alarmUpdateMsg.getStartTs()); - var alarmStatus = AlarmStatus.valueOf(alarmUpdateMsg.getStatus()); - alarm.setClearTs(alarmUpdateMsg.getClearTs()); - alarm.setPropagate(alarmUpdateMsg.getPropagate()); - alarm.setCleared(alarmStatus.isCleared()); - alarm.setAcknowledged(alarmStatus.isAck()); - alarm.setAckTs(alarmUpdateMsg.getAckTs()); - alarm.setEndTs(alarmUpdateMsg.getEndTs()); - alarm.setDetails(JacksonUtil.toJsonNode(alarmUpdateMsg.getDetails())); if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(alarmUpdateMsg.getMsgType())) { alarmService.createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(alarm, null, alarmId)); } else { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index ad283826f8..7242d8c01b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -29,6 +29,7 @@ import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.gen.edge.v1.DownlinkMsg; +import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -70,7 +71,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { return Futures.immediateFuture(null); } - public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent) { + public DownlinkMsg convertResourceEventToDownlink(EdgeEvent edgeEvent, EdgeVersion edgeVersion) { TbResourceId tbResourceId = new TbResourceId(edgeEvent.getEntityId()); DownlinkMsg downlinkMsg = null; switch (edgeEvent.getAction()) { @@ -80,7 +81,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { if (tbResource != null) { UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); ResourceUpdateMsg resourceUpdateMsg = - resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource); + resourceMsgConstructor.constructResourceUpdatedMsg(msgType, tbResource, edgeVersion); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt()) .addResourceUpdateMsg(resourceUpdateMsg) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java index 974e9267f6..2eaa69af82 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java @@ -314,7 +314,7 @@ public abstract class BaseTelemetryProcessor extends BaseEdgeProcessor { EntityType entityType, UUID entityUUID, EdgeEventActionType actionType, - JsonNode body) throws JsonProcessingException { + JsonNode body) { EntityId entityId; switch (entityType) { case DEVICE: diff --git a/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java b/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java index a9b12865a2..973c50c1d2 100644 --- a/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java +++ b/common/edge-api/src/main/java/org/thingsboard/edge/rpc/EdgeGrpcClient.java @@ -111,7 +111,7 @@ public class EdgeGrpcClient implements EdgeRpcClient { .setConnectRequestMsg(ConnectRequestMsg.newBuilder() .setEdgeRoutingKey(edgeKey) .setEdgeSecret(edgeSecret) - .setEdgeVersion(EdgeVersion.V_3_6_1) + .setEdgeVersion(EdgeVersion.V_3_6_2) .setMaxInboundMessageSize(maxInboundMessageSize) .build()) .build()); diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index a7df1e41fb..18b30e439f 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -452,13 +452,14 @@ message ResourceUpdateMsg { UpdateMsgType msgType = 1; int64 idMSB = 2; int64 idLSB = 3; - string title = 4; - string resourceType = 5; - string resourceKey = 6; - string fileName = 7; - optional string data = 8; - optional string etag = 9; - bool isSystem = 10; + string title = 4 [deprecated = true]; + string resourceType = 5 [deprecated = true]; + string resourceKey = 6 [deprecated = true]; + string fileName = 7 [deprecated = true]; + optional string data = 8 [deprecated = true]; + optional string etag = 9 [deprecated = true]; + bool isSystem = 10 [deprecated = true]; + string entity = 11; } message RuleChainMetadataRequestMsg { diff --git a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java index 229ba4187d..57fd457f14 100644 --- a/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java +++ b/common/util/src/test/java/org/thingsboard/common/util/JacksonUtilTest.java @@ -55,4 +55,4 @@ public class JacksonUtilTest { Assert.assertEquals(asset.getName(), result.getName()); Assert.assertEquals(asset.getType(), result.getType()); } -} \ No newline at end of file +} From 64349f538e0ab742d16c7bcbb300ef5558ab2a04 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Mon, 13 Nov 2023 15:00:23 +0200 Subject: [PATCH 028/162] Fix resourceEdgeTest --- .../service/edge/rpc/EdgeGrpcSession.java | 2 +- .../resource/BaseResourceProcessor.java | 51 +++++++++++------ .../resource/ResourceEdgeProcessor.java | 5 +- .../server/edge/AbstractEdgeTest.java | 14 +++-- .../server/edge/ResourceEdgeTest.java | 57 ++++++++++--------- 5 files changed, 77 insertions(+), 52 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index de5817a7af..99f126c4a7 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -715,7 +715,7 @@ public final class EdgeGrpcSession implements Closeable { } if (uplinkMsg.getResourceUpdateMsgCount() > 0) { for (ResourceUpdateMsg resourceUpdateMsg : uplinkMsg.getResourceUpdateMsgList()) { - result.add(ctx.getResourceEdgeProcessor().processResourceMsgFromEdge(edge.getTenantId(), edge, resourceUpdateMsg)); + result.add(ctx.getResourceEdgeProcessor().processResourceMsgFromEdge(edge.getTenantId(), edge, resourceUpdateMsg, this.edgeVersion)); } } if (uplinkMsg.getRuleChainMetadataRequestMsgCount() > 0) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index a00745d8b7..20a8aa372b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -17,6 +17,7 @@ package org.thingsboard.server.service.edge.rpc.processor.resource; import com.datastax.oss.driver.api.core.uuid.Uuids; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -30,39 +31,37 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Slf4j public abstract class BaseResourceProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg) { + protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg, boolean isEdgeDeprecated) { boolean resourceKeyUpdated = false; try { - boolean created = false; - TbResource resource = resourceService.findResourceById(tenantId, tbResourceId); + TbResource resource = isEdgeDeprecated + ? createTbResource(tenantId, resourceUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(resourceUpdateMsg.getEntity(), TbResource.class); if (resource == null) { - resource = new TbResource(); - if (resourceUpdateMsg.getIsSystem()) { - resource.setTenantId(TenantId.SYS_TENANT_ID); - } else { - resource.setTenantId(tenantId); - } + throw new RuntimeException("[{" + tenantId + "}] resourceUpdateMsg {" + resourceUpdateMsg + " } cannot be converted to resource"); + } + boolean created = false; + TbResource resourceById = resourceService.findResourceById(tenantId, tbResourceId); + if (resourceById == null) { resource.setCreatedTime(Uuids.unixTimestamp(tbResourceId.getId())); created = true; + resource.setId(null); + } else { + resource.setId(tbResourceId); } - String resourceKey = resourceUpdateMsg.getResourceKey(); - ResourceType resourceType = ResourceType.valueOf(resourceUpdateMsg.getResourceType()); + String resourceKey = resource.getResourceKey(); + ResourceType resourceType = resource.getResourceType(); PageDataIterable resourcesIterable = new PageDataIterable<>( link -> resourceService.findTenantResourcesByResourceTypeAndPageLink(tenantId, resourceType, link), 1024); for (TbResource tbResource : resourcesIterable) { - if (tbResource.getResourceKey().equals(resourceUpdateMsg.getResourceKey()) && !tbResourceId.equals(tbResource.getId())) { + if (tbResource.getResourceKey().equals(resourceKey) && !tbResourceId.equals(tbResource.getId())) { resourceKey = StringUtils.randomAlphabetic(15) + "_" + resourceKey; log.warn("[{}] Resource with resource type {} and key {} already exists. Renaming resource key to {}", - tenantId, resourceType, resourceUpdateMsg.getResourceKey(), resourceKey); + tenantId, resourceType, resource.getResourceKey(), resourceKey); resourceKeyUpdated = true; } } - resource.setTitle(resourceUpdateMsg.getTitle()); resource.setResourceKey(resourceKey); - resource.setResourceType(resourceType); - resource.setFileName(resourceUpdateMsg.getFileName()); - resource.setData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); - resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); resourceValidator.validate(resource, TbResourceInfo::getTenantId); if (created) { resource.setId(tbResourceId); @@ -74,4 +73,20 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor { } return resourceKeyUpdated; } + + private TbResource createTbResource(TenantId tenantId, ResourceUpdateMsg resourceUpdateMsg) { + TbResource resource = new TbResource(); + if (resourceUpdateMsg.getIsSystem()) { + resource.setTenantId(TenantId.SYS_TENANT_ID); + } else { + resource.setTenantId(tenantId); + } + resource.setTitle(resourceUpdateMsg.getTitle()); + resource.setResourceKey(resourceUpdateMsg.getResourceKey()); + resource.setResourceType(ResourceType.valueOf(resourceUpdateMsg.getResourceType())); + resource.setFileName(resourceUpdateMsg.getFileName()); + resource.setData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); + resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); + return resource; + } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java index 7242d8c01b..bd99e48622 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/ResourceEdgeProcessor.java @@ -33,6 +33,7 @@ import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @@ -41,7 +42,7 @@ import java.util.UUID; @TbCoreComponent public class ResourceEdgeProcessor extends BaseResourceProcessor { - public ListenableFuture processResourceMsgFromEdge(TenantId tenantId, Edge edge, ResourceUpdateMsg resourceUpdateMsg) { + public ListenableFuture processResourceMsgFromEdge(TenantId tenantId, Edge edge, ResourceUpdateMsg resourceUpdateMsg, EdgeVersion edgeVersion) { TbResourceId tbResourceId = new TbResourceId(new UUID(resourceUpdateMsg.getIdMSB(), resourceUpdateMsg.getIdLSB())); try { edgeSynchronizationManager.getEdgeId().set(edge.getId()); @@ -49,7 +50,7 @@ public class ResourceEdgeProcessor extends BaseResourceProcessor { switch (resourceUpdateMsg.getMsgType()) { case ENTITY_CREATED_RPC_MESSAGE: case ENTITY_UPDATED_RPC_MESSAGE: - boolean resourceKeyUpdated = super.saveOrUpdateTbResource(tenantId, tbResourceId, resourceUpdateMsg); + boolean resourceKeyUpdated = super.saveOrUpdateTbResource(tenantId, tbResourceId, resourceUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); if (resourceKeyUpdated) { saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.TB_RESOURCE, EdgeEventActionType.UPDATED, tbResourceId, null); } diff --git a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java index 88aead4c7d..bf08967f16 100644 --- a/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java @@ -469,6 +469,16 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { } private void validateConnectivityAdminSettings(AdminSettings adminSettings) { + JsonNode jsonNode = adminSettings.getJsonValue(); + Assert.assertNotNull(jsonNode.get("http")); + Assert.assertNotNull(jsonNode.get("https")); + Assert.assertNotNull(jsonNode.get("mqtt")); + Assert.assertNotNull(jsonNode.get("mqtts")); + Assert.assertNotNull(jsonNode.get("coap")); + Assert.assertNotNull(jsonNode.get("coaps")); + } + + private void validateJwtAdminSettings(AdminSettings adminSettings) { JsonNode jsonNode = adminSettings.getJsonValue(); Assert.assertNotNull(jsonNode.get("tokenExpirationTime")); Assert.assertNotNull(jsonNode.get("refreshTokenExpTime")); @@ -476,10 +486,6 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest { Assert.assertNotNull(jsonNode.get("tokenSigningKey")); } - private void validateJwtAdminSettings(AdminSettings adminSettings) { - Assert.assertNotNull(adminSettings.getJsonValue().get("baseUrl")); - } - private void validateAssetProfiles(int expectedMsgCnt) throws Exception { List assetProfileUpdateMsgs = edgeImitator.findAllMessagesByType(AssetProfileUpdateMsg.class); Assert.assertEquals(expectedMsgCnt, assetProfileUpdateMsgs.size()); diff --git a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java index 2ae57f7f19..74773208da 100644 --- a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java @@ -19,6 +19,7 @@ import com.datastax.oss.driver.api.core.uuid.Uuids; import com.google.protobuf.AbstractMessage; import org.junit.Assert; import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -58,12 +59,14 @@ public class ResourceEdgeTest extends AbstractEdgeTest { Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, resourceUpdateMsg.getMsgType()); Assert.assertEquals(savedResource.getUuidId().getMostSignificantBits(), resourceUpdateMsg.getIdMSB()); Assert.assertEquals(savedResource.getUuidId().getLeastSignificantBits(), resourceUpdateMsg.getIdLSB()); - Assert.assertEquals("Edge Test Resource", resourceUpdateMsg.getTitle()); - Assert.assertEquals(ResourceType.JKS.name(), resourceUpdateMsg.getResourceType()); - Assert.assertEquals(FILE_NAME, resourceUpdateMsg.getResourceKey()); - Assert.assertEquals(FILE_NAME, resourceUpdateMsg.getFileName()); - Assert.assertEquals(TEST_DATA, resourceUpdateMsg.getData()); - Assert.assertTrue(StringUtils.isNotBlank(resourceUpdateMsg.getEtag())); + TbResource tbResource = JacksonUtil.fromStringIgnoreUnknownProperties(resourceUpdateMsg.getEntity(), TbResource.class); + Assert.assertNotNull(tbResource); + Assert.assertEquals("Edge Test Resource", tbResource.getTitle()); + Assert.assertEquals(ResourceType.JKS, tbResource.getResourceType()); + Assert.assertEquals(FILE_NAME, tbResource.getResourceKey()); + Assert.assertEquals(FILE_NAME, tbResource.getFileName()); + Assert.assertEquals(TEST_DATA, tbResource.getData()); + Assert.assertTrue(StringUtils.isNotBlank(tbResource.getEtag())); // update resource edgeImitator.expectMessageAmount(1); @@ -73,8 +76,10 @@ public class ResourceEdgeTest extends AbstractEdgeTest { latestMessage = edgeImitator.getLatestMessage(); Assert.assertTrue(latestMessage instanceof ResourceUpdateMsg); resourceUpdateMsg = (ResourceUpdateMsg) latestMessage; + tbResource = JacksonUtil.fromStringIgnoreUnknownProperties(resourceUpdateMsg.getEntity(), TbResource.class); + Assert.assertNotNull(tbResource); Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, resourceUpdateMsg.getMsgType()); - Assert.assertEquals("Updated Edge Test Resource", resourceUpdateMsg.getTitle()); + Assert.assertEquals("Updated Edge Test Resource", tbResource.getTitle()); // delete resource edgeImitator.expectMessageAmount(1); @@ -91,18 +96,14 @@ public class ResourceEdgeTest extends AbstractEdgeTest { @Test public void testSendResourceToCloud() throws Exception { + TbResource tbResource = createTbResource(); UUID uuid = Uuids.timeBased(); UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder(); ResourceUpdateMsg.Builder resourceUpdateMsgBuilder = ResourceUpdateMsg.newBuilder(); resourceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); resourceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - resourceUpdateMsgBuilder.setTitle("Edge Test Resource"); - resourceUpdateMsgBuilder.setResourceType(ResourceType.JKS.name()); - resourceUpdateMsgBuilder.setResourceKey(FILE_NAME); - resourceUpdateMsgBuilder.setFileName(FILE_NAME); - resourceUpdateMsgBuilder.setData(TEST_DATA); - resourceUpdateMsgBuilder.setIsSystem(false); + resourceUpdateMsgBuilder.setEntity(JacksonUtil.toString(tbResource)); resourceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(resourceUpdateMsgBuilder); uplinkMsgBuilder.addResourceUpdateMsg(resourceUpdateMsgBuilder.build()); @@ -117,18 +118,14 @@ public class ResourceEdgeTest extends AbstractEdgeTest { UplinkResponseMsg latestResponseMsg = edgeImitator.getLatestResponseMsg(); Assert.assertTrue(latestResponseMsg.getSuccess()); - TbResource tbResource = doGet("/api/resource/" + uuid, TbResource.class); - Assert.assertNotNull(tbResource); - Assert.assertEquals("Edge Test Resource", tbResource.getName()); + TbResource tb = doGet("/api/resource/" + uuid, TbResource.class); + Assert.assertNotNull(tb); + Assert.assertEquals("Edge Test Resource", tb.getName()); } @Test public void testResourceToCloudWithNameThatAlreadyExistsOnCloud() throws Exception { - TbResource resource = new TbResource(); - resource.setResourceType(ResourceType.JKS); - resource.setTitle("Edge Test Resource"); - resource.setFileName(FILE_NAME); - resource.setData(TEST_DATA); + TbResource resource = createTbResource(); edgeImitator.expectMessageAmount(1); TbResource savedResource = doPost("/api/resource", resource, TbResource.class); @@ -140,12 +137,7 @@ public class ResourceEdgeTest extends AbstractEdgeTest { ResourceUpdateMsg.Builder resourceUpdateMsgBuilder = ResourceUpdateMsg.newBuilder(); resourceUpdateMsgBuilder.setIdMSB(uuid.getMostSignificantBits()); resourceUpdateMsgBuilder.setIdLSB(uuid.getLeastSignificantBits()); - resourceUpdateMsgBuilder.setTitle("Edge Test Resource"); - resourceUpdateMsgBuilder.setResourceType(ResourceType.JKS.name()); - resourceUpdateMsgBuilder.setResourceKey(FILE_NAME); - resourceUpdateMsgBuilder.setFileName(FILE_NAME); - resourceUpdateMsgBuilder.setData(TEST_DATA); - resourceUpdateMsgBuilder.setIsSystem(false); + resourceUpdateMsgBuilder.setEntity(JacksonUtil.toString(resource)); resourceUpdateMsgBuilder.setMsgType(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE); testAutoGeneratedCodeByProtobuf(resourceUpdateMsgBuilder); uplinkMsgBuilder.addResourceUpdateMsg(resourceUpdateMsgBuilder.build()); @@ -171,4 +163,15 @@ public class ResourceEdgeTest extends AbstractEdgeTest { Assert.assertNotNull(tbResource); Assert.assertNotEquals(FILE_NAME, tbResource.getName()); } + + private TbResource createTbResource() { + TbResource tbResource = new TbResource(); + tbResource.setTenantId(tenantId); + tbResource.setTitle("Edge Test Resource"); + tbResource.setResourceType(ResourceType.JKS); + tbResource.setResourceKey(FILE_NAME); + tbResource.setFileName(FILE_NAME); + tbResource.setData(TEST_DATA); + return tbResource; + } } From ccb0fc8cad395fe176a01977469494c5a2ba476f Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 13 Nov 2023 15:29:22 +0200 Subject: [PATCH 029/162] updated TbPubSubNode publisher to use one thread for publishing --- .../thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java index c55113783c..060683434f 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java @@ -20,6 +20,7 @@ import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.pubsub.v1.Publisher; @@ -135,6 +136,11 @@ public class TbPubSubNode extends TbAbstractExternalNode { new ByteArrayInputStream(config.getServiceAccountKey().getBytes())); CredentialsProvider credProvider = FixedCredentialsProvider.create(credentials); + InstantiatingExecutorProvider executorProvider = + InstantiatingExecutorProvider.newBuilder() + .setExecutorThreadCount(1) + .build(); + var retrySettings = RetrySettings.newBuilder() .setTotalTimeout(Duration.ofSeconds(10)) .setInitialRetryDelay(Duration.ofMillis(50)) @@ -148,6 +154,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { return Publisher.newBuilder(topicName) .setCredentialsProvider(credProvider) .setRetrySettings(retrySettings) + .setExecutorProvider(executorProvider) .build(); } } From 7489b87fa55a0946f98e70f74adbabe55cce30c3 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 13 Nov 2023 18:46:24 +0200 Subject: [PATCH 030/162] Remove tenantId from image link; remove link from resource --- .../main/data/upgrade/3.6.1/schema_update.sql | 1 - .../controller/TbResourceController.java | 28 +----- .../service/install/update/ImagesUpdater.java | 16 ++-- .../controller/TbResourceControllerTest.java | 13 ++- .../server/dao/resource/ResourceService.java | 2 + .../server/common/data/TbResourceInfo.java | 6 +- .../server/common/data/util/ImageUtils.java | 96 +++++++++++++++++++ .../common/data/util/MediaTypeUtils.java | 45 --------- .../server/dao/model/ModelConstants.java | 1 - .../dao/model/sql/TbResourceEntity.java | 6 -- .../dao/model/sql/TbResourceInfoEntity.java | 6 -- .../dao/resource/BaseResourceService.java | 19 +++- .../main/resources/sql/schema-entities.sql | 1 - 13 files changed, 137 insertions(+), 103 deletions(-) create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java delete mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql index 7f5838f8bf..a594b5f3c8 100644 --- a/application/src/main/data/upgrade/3.6.1/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -28,6 +28,5 @@ $$ END; $$; ALTER TABLE resource ADD COLUMN IF NOT EXISTS media_type varchar(255); -ALTER TABLE resource ADD COLUMN IF NOT EXISTS link varchar(255); -- RESOURCES UPDATE END diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index 9874db3002..7968b2cda8 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -35,7 +35,6 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; @@ -93,7 +92,6 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download Resource (downloadResource)", notes = "Download Resource based on the provided Resource Id." + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/{resourceId}/download") - @ResponseBody public ResponseEntity downloadResource(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); @@ -111,17 +109,10 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download Image (downloadImageIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") - @GetMapping(value = "/images/{tenantId}/{resourceKey}", produces = "image/*") - @ResponseBody - public ResponseEntity downloadImageIfChanged(@PathVariable("tenantId") String tenantIdStr, - @PathVariable("resourceKey") String resourceKey, + @GetMapping(value = "/images/{resourceKey}", produces = "image/*") + public ResponseEntity downloadImageIfChanged(@PathVariable("resourceKey") String resourceKey, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { - TenantId tenantId; - if (tenantIdStr.equals("system")) { - tenantId = TenantId.SYS_TENANT_ID; - } else { - tenantId = TenantId.fromUUID(toUUID(tenantIdStr)); - } + TenantId tenantId = getTenantId(); return downloadResourceIfChanged(ResourceType.IMAGE, etag, () -> resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey), () -> resourceService.findResourceByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey)); @@ -130,7 +121,6 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download LWM2M Resource (downloadLwm2mResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/lwm2m/{resourceId}/download", produces = "application/xml") - @ResponseBody public ResponseEntity downloadLwm2mResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { @@ -140,7 +130,6 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download PKCS_12 Resource (downloadPkcs12ResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @RequestMapping(value = "/resource/pkcs12/{resourceId}/download", method = RequestMethod.GET, produces = "application/x-pkcs12") - @ResponseBody public ResponseEntity downloadPkcs12ResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { @@ -151,7 +140,6 @@ public class TbResourceController extends BaseController { notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/jks/{resourceId}/download", produces = "application/x-java-keystore") - @ResponseBody public ResponseEntity downloadJksResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { @@ -161,7 +149,6 @@ public class TbResourceController extends BaseController { @ApiOperation(value = "Download JS Resource (downloadJsResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + AVAILABLE_FOR_ANY_AUTHORIZED_USER) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @GetMapping(value = "/resource/js/{resourceId}/download", produces = "application/javascript") - @ResponseBody public ResponseEntity downloadJsResourceIfChanged(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId, @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { @@ -174,7 +161,6 @@ public class TbResourceController extends BaseController { produces = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/info/{resourceId}") - @ResponseBody public TbResourceInfo getResourceInfoById(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); @@ -189,7 +175,6 @@ public class TbResourceController extends BaseController { @Deprecated // resource's data should be fetched with a download request @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/{resourceId}") - @ResponseBody public TbResource getResourceById(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); @@ -211,7 +196,6 @@ public class TbResourceController extends BaseController { consumes = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @PostMapping(value = "/resource") - @ResponseBody public TbResourceInfo saveResource(@ApiParam(value = "A JSON value representing the Resource.") @RequestBody TbResource resource) throws Exception { resource.setTenantId(getTenantId()); @@ -225,7 +209,6 @@ public class TbResourceController extends BaseController { produces = "application/json") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource") - @ResponseBody public PageData getResources(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) @@ -257,7 +240,6 @@ public class TbResourceController extends BaseController { produces = "application/json") @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") @GetMapping(value = "/resource/lwm2m/page") - @ResponseBody public List getLwm2mListObjectsPage(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) @@ -278,7 +260,6 @@ public class TbResourceController extends BaseController { produces = "application/json") @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") @GetMapping(value = "/resource/lwm2m") - @ResponseBody public List getLwm2mListObjects(@ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES, required = true) @RequestParam String sortOrder, @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = LWM2M_OBJECT_SORT_PROPERTY_ALLOWABLE_VALUES, required = true) @@ -292,7 +273,6 @@ public class TbResourceController extends BaseController { notes = "Deletes the Resource. Referencing non-existing Resource Id will cause an error." + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @DeleteMapping(value = "/resource/{resourceId}") - @ResponseBody public void deleteResource(@ApiParam(value = RESOURCE_ID_PARAM_DESCRIPTION) @PathVariable("resourceId") String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); @@ -323,6 +303,7 @@ public class TbResourceController extends BaseController { } } + // TODO: rate limits TbResource tbResource = resourceSupplier.get(); checkEntity(getCurrentUser(), tbResource, Operation.READ); @@ -336,4 +317,5 @@ public class TbResourceController extends BaseController { .eTag(tbResource.getEtag()) .body(resource); } + } \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index e4b8defc56..74ee36ce34 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.util.MediaTypeUtils; +import org.thingsboard.server.common.data.util.ImageUtils; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.resource.ResourceService; @@ -65,7 +65,7 @@ public class ImagesUpdater { throw new IllegalArgumentException("Image name is missing for " + imageKey + ". Please add it to names.json file"); } byte[] imageData = Files.readAllBytes(imageFile); - String mediaType = MediaTypeUtils.fileExtensionToMediaType("image", StringUtils.substringAfterLast(imageKey, ".")); + String mediaType = ImageUtils.fileExtensionToMediaType("image", StringUtils.substringAfterLast(imageKey, ".")); try { saveImage(TenantId.SYS_TENANT_ID, imageName, imageKey, imageData, mediaType, null); } catch (Exception e) { @@ -191,7 +191,7 @@ public class ImagesUpdater { } String imageMediaType = StringUtils.substringBetween(data, "data:", ";base64"); - String extension = MediaTypeUtils.mediaTypeToFileExtension(imageMediaType); + String extension = ImageUtils.mediaTypeToFileExtension(imageMediaType); key += "." + extension; byte[] imageData = Base64.getDecoder().decode(base64Data); @@ -203,14 +203,16 @@ public class ImagesUpdater { String existingImageQuery) { TbResourceInfo resourceInfo = resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, key); if (resourceInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { + // TODO: need to search among tenant images too (custom widgets) List existingSystemImages = resourceService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); if (!existingSystemImages.isEmpty()) { resourceInfo = existingSystemImages.get(0); if (existingSystemImages.size() > 1) { log.warn("Found more than one system image resources for key {}", existingImageQuery); } - log.info("Using system image {} for {}", resourceInfo.getLink(), key); - return resourceInfo.getLink(); + String link = resourceService.getResourceLink(resourceInfo); + log.info("Using system image {} for {}", link, key); + return link; } } TbResource resource; @@ -222,7 +224,7 @@ public class ImagesUpdater { } else if (tenantId.isSysTenantId()) { resource = new TbResource(resourceInfo); } else { - return resourceInfo.getLink(); + return resourceService.getResourceLink(resourceInfo); } resource.setTitle(name); resource.setFileName(key); @@ -231,7 +233,7 @@ public class ImagesUpdater { resource = resourceService.saveResource(resource); log.info("[{}] {} image '{}' ({})", tenantId, resourceInfo == null ? "Created" : "Updated", resource.getTitle(), resource.getResourceKey()); - return resource.getLink(); + return resourceService.getResourceLink(resourceInfo); } private String getText(JsonNode jsonNode, String field) { diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index f84e786edd..638d09bfdd 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -676,10 +676,9 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); - assertThat(savedResource.getLink()).isEqualTo("/api/images/system/image.png"); loginTenantAdmin(); - MockHttpServletResponse imageResponse = doGet(savedResource.getLink()).andExpect(status().isOk()) + MockHttpServletResponse imageResponse = doGet(getImageLink(savedResource)).andExpect(status().isOk()) .andReturn().getResponse(); assertThat(imageResponse.getContentAsByteArray()) .isEqualTo(download(savedResource.getId())) @@ -701,9 +700,9 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); - assertThat(savedResource.getLink()).isEqualTo("/api/images/" + tenantId + "/image.jpg"); + String imageLink = getImageLink(savedResource); - MockHttpServletResponse imageResponse = doGet(savedResource.getLink()).andExpect(status().isOk()) + MockHttpServletResponse imageResponse = doGet(imageLink).andExpect(status().isOk()) .andReturn().getResponse(); assertThat(imageResponse.getContentAsByteArray()) .isEqualTo(download(savedResource.getId())) @@ -711,7 +710,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { assertThat(imageResponse.getContentType()).isEqualTo("image/jpeg"); loginDifferentTenant(); - doGet(savedResource.getLink()).andExpect(status().isForbidden()); + doGet(imageLink).andExpect(status().isNotFound()); } private TbResource save(TbResource tbResource) throws Exception { @@ -724,4 +723,8 @@ public class TbResourceControllerTest extends AbstractControllerTest { .andExpect(status().isOk()) .andReturn().getResponse().getContentAsByteArray(); } + + private String getImageLink(TbResourceInfo resourceInfo) { + return "/api/images/" + (resourceInfo.getTenantId().isSysTenantId() ? "system/" : "") + resourceInfo.getResourceKey(); + } } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 7240b1b742..db8c5b64a5 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -62,4 +62,6 @@ public interface ResourceService extends EntityDaoService { List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query); + String getResourceLink(TbResourceInfo resourceInfo); + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 102029814f..5b0fc9433d 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -16,6 +16,7 @@ package org.thingsboard.server.common.data; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.node.ObjectNode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -56,8 +57,7 @@ public class TbResourceInfo extends BaseData implements HasName, H private String fileName; @ApiModelProperty(position = 10, value = "Resource media type.", example = "image/png", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String mediaType; - @ApiModelProperty(position = 11, value = "Resource link (for IMAGE resource type).", example = "/api/images/system/my-image.png", accessMode = ApiModelProperty.AccessMode.READ_ONLY) - private String link; + private ObjectNode descriptor; public TbResourceInfo() { super(); @@ -77,7 +77,7 @@ public class TbResourceInfo extends BaseData implements HasName, H this.etag = resourceInfo.etag; this.fileName = resourceInfo.fileName; this.mediaType = resourceInfo.mediaType; - this.link = resourceInfo.link; + this.descriptor = resourceInfo.descriptor; } @ApiModelProperty(position = 1, value = "JSON object with the Resource Id. " + diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java new file mode 100644 index 0000000000..f67051a3da --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java @@ -0,0 +1,96 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.data.util; + +import lombok.AccessLevel; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.util.MimeType; +import org.springframework.util.MimeTypeUtils; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Map; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class ImageUtils { + + private static final Map mediaTypeMappings = Map.of( + "jpeg", "jpg", + "svg+xml", "svg" + ); + + public static String mediaTypeToFileExtension(String mimeType) { + String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); + return mediaTypeMappings.getOrDefault(subtype, subtype); + } + + public static String fileExtensionToMediaType(String type, String extension) { + String subtype = mediaTypeMappings.entrySet().stream() + .filter(mapping -> mapping.getValue().equals(extension)) + .map(Map.Entry::getKey).findFirst().orElse(extension); + return new MimeType(type, subtype).toString(); + } + + public static ImageInfo processImage(byte[] imageData) throws IOException { + BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageData)); + ImageThumbnail thumbnail = getImageThumbnail(image, 250); + return new ImageInfo(image.getWidth(), image.getHeight(), thumbnail); + } + + private static ImageThumbnail getImageThumbnail(BufferedImage originalImage, int maxDimension) throws IOException { + int originalWidth = originalImage.getWidth(); + int originalHeight = originalImage.getHeight(); + int thumbnailWidth; + int thumbnailHeight; + if (originalWidth <= maxDimension && originalHeight <= maxDimension) { + thumbnailWidth = originalWidth; + thumbnailHeight = originalHeight; + } else { + double aspectRatio = (double) originalWidth / originalHeight; + if (originalWidth > originalHeight) { + thumbnailWidth = maxDimension; + thumbnailHeight = (int) (maxDimension / aspectRatio); + } else { + thumbnailWidth = (int) (maxDimension * aspectRatio); + thumbnailHeight = maxDimension; + } + } + BufferedImage thumbnail = new BufferedImage(thumbnailWidth, thumbnailHeight, BufferedImage.TYPE_INT_RGB); + thumbnail.getGraphics().drawImage(originalImage, 0, 0, thumbnailWidth, thumbnailHeight, null); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ImageIO.write(thumbnail, "ignored", os); + return new ImageThumbnail(thumbnail.getWidth(), thumbnail.getHeight(), os.toByteArray()); + } + + @Data + public static class ImageInfo { + private final int width; + private final int height; + private final ImageThumbnail thumbnail; + } + + @Data + public static class ImageThumbnail { + private final int width; + private final int height; + private final byte[] data; + } + +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java deleted file mode 100644 index 4170cc738d..0000000000 --- a/common/data/src/main/java/org/thingsboard/server/common/data/util/MediaTypeUtils.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.common.data.util; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.springframework.util.MimeType; -import org.springframework.util.MimeTypeUtils; - -import java.util.Map; - -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class MediaTypeUtils { - - private static final Map mappings = Map.of( - "jpeg", "jpg", - "svg+xml", "svg" - ); - - public static String mediaTypeToFileExtension(String mimeType) { - String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); - return mappings.getOrDefault(subtype, subtype); - } - - public static String fileExtensionToMediaType(String type, String extension) { - String subtype = mappings.entrySet().stream() - .filter(mapping -> mapping.getValue().equals(extension)) - .map(Map.Entry::getKey).findFirst().orElse(extension); - return new MimeType(type, subtype).toString(); - } - -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 1bbc978438..3a77a92eb7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -500,7 +500,6 @@ public class ModelConstants { public static final String RESOURCE_DATA_COLUMN = "data"; public static final String RESOURCE_ETAG_COLUMN = "etag"; public static final String RESOURCE_MEDIA_TYPE_COLUMN = "media_type"; - public static final String RESOURCE_LINK_COLUMN = "link"; /** * Ota Package constants. diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java index 6a366c7621..f26bf100d7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java @@ -33,7 +33,6 @@ import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DATA_COLU import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; -import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_LINK_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; @@ -74,9 +73,6 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) private String mediaType; - @Column(name = RESOURCE_LINK_COLUMN) - private String link; - public TbResourceEntity() { } @@ -96,7 +92,6 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE this.data = resource.getData(); this.etag = resource.getEtag(); this.mediaType = resource.getMediaType(); - this.link = resource.getLink(); } @Override @@ -112,7 +107,6 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE resource.setData(data); resource.setEtag(etag); resource.setMediaType(mediaType); - resource.setLink(link); return resource; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java index c8d962c9af..d74f5a3c8e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java @@ -32,7 +32,6 @@ import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; -import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_LINK_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; @@ -70,9 +69,6 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) private String mediaType; - @Column(name = RESOURCE_LINK_COLUMN) - private String link; - public TbResourceInfoEntity() { } @@ -89,7 +85,6 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen this.hashCode = resource.getEtag(); this.fileName = resource.getFileName(); this.mediaType = resource.getMediaType(); - this.link = resource.getLink(); } @Override @@ -104,7 +99,6 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen resource.setEtag(hashCode); resource.setFileName(fileName); resource.setMediaType(mediaType); - resource.setLink(link); return resource; } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index a045a06290..370c0b5d6d 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -77,11 +77,10 @@ public class BaseResourceService extends AbstractCachedEntityService Date: Tue, 14 Nov 2023 11:00:29 +0200 Subject: [PATCH 031/162] added additional logging for afterTest --- .../org/thingsboard/server/controller/AbstractWebTest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java index 35f0c52c8d..74e4efbcb3 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java @@ -29,7 +29,6 @@ import org.apache.http.HttpStatus; import org.awaitility.Awaitility; import org.hamcrest.Matcher; import org.hibernate.exception.ConstraintViolationException; -import org.jetbrains.annotations.NotNull; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -359,6 +358,10 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { try { status = doDelete("/api/tenant/" + tenantId.getId().toString()) .andReturn().getResponse().getStatus(); + if (status != HttpStatus.SC_OK) { + log.warn("Tenant deletion failed, tenantId: {}", tenantId.getId().toString()); + Thread.sleep(1000L); + } } catch (Exception e) { throw new RuntimeException(e); } From 7d4729451a5b949e3fa79ec003496acff78a5d08 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Tue, 14 Nov 2023 12:03:26 +0200 Subject: [PATCH 032/162] ImageController draft --- .../server/controller/ImageController.java | 184 ++++++++++++++++++ .../controller/TbResourceController.java | 10 +- .../resource/DefaultTbImageService.java | 30 +++ .../service/resource/TbImageService.java | 14 ++ .../server/dao/resource/ImageService.java | 28 +++ .../server/dao/resource/ResourceService.java | 2 - .../common/data/TbResourceInfoFilter.java | 4 +- .../server/dao/resource/BaseImageService.java | 84 ++++++++ .../dao/resource/BaseResourceService.java | 28 +-- .../server/dao/resource/TbResourceDao.java | 4 + .../dao/sql/resource/JpaTbResourceDao.java | 7 +- .../sql/resource/JpaTbResourceInfoDao.java | 13 +- .../resource/TbResourceInfoRepository.java | 9 +- .../sql/resource/TbResourceRepository.java | 4 + 14 files changed, 382 insertions(+), 39 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/controller/ImageController.java create mode 100644 application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java create mode 100644 application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java create mode 100644 common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java new file mode 100644 index 0000000000..93d01698cf --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -0,0 +1,184 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.controller; + +import io.swagger.annotations.ApiParam; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.http.CacheControl; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.exception.ThingsboardException; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.security.Authority; +import org.thingsboard.server.dao.resource.ImageService; +import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.resource.TbImageService; +import org.thingsboard.server.service.security.permission.Operation; + +import java.util.function.Supplier; + +import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION; +import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION; +import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES; +import static org.thingsboard.server.controller.ControllerConstants.RESOURCE_TEXT_SEARCH_DESCRIPTION; +import static org.thingsboard.server.controller.ControllerConstants.SORT_ORDER_ALLOWABLE_VALUES; +import static org.thingsboard.server.controller.ControllerConstants.SORT_ORDER_DESCRIPTION; +import static org.thingsboard.server.controller.ControllerConstants.SORT_PROPERTY_DESCRIPTION; + +@Slf4j +@RestController +@TbCoreComponent +@RequiredArgsConstructor +public class ImageController extends BaseController { + + private final ImageService imageService; + private final TbImageService tbImageService; + + private static final String IMAGE_URL = "/api/images/{type}/{key}"; + private static final String SYSTEM_IMAGE = "system"; + private static final String TENANT_IMAGE = "tenant"; + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PostMapping("/api/image") + public TbResourceInfo uploadImage(MultipartFile file) { +// imageService.saveImage() + return null; + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PutMapping(IMAGE_URL) + public TbResourceInfo updateImage(MultipartFile file) { + return null; + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PutMapping(IMAGE_URL + "/info") + public TbResourceInfo updateImageInfo(@RequestBody TbResourceInfo imageInfo) { + return null; + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @GetMapping(value = IMAGE_URL, produces = "image/*") + public ResponseEntity downloadImage(@PathVariable String type, + @PathVariable String key, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + TenantId tenantId = getTenantId(type); + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + return downloadIfChanged(etag, imageInfo, () -> imageService.getImageData(tenantId, imageInfo.getId()), imageInfo.getMediaType()); + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @GetMapping(value = IMAGE_URL + "/preview", produces = "image/png") + public ResponseEntity downloadImagePreview(@PathVariable String type, + @PathVariable String key, + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { + TenantId tenantId = getTenantId(type); + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + return downloadIfChanged(etag, imageInfo, () -> imageService.getImagePreview(tenantId, imageInfo.getId()), imageInfo.getMediaType()); + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @GetMapping(IMAGE_URL + "/info") + public TbResourceInfo getImageInfo(@PathVariable String type, + @PathVariable String key) throws ThingsboardException { + TenantId tenantId = getTenantId(type); + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + return checkEntity(getCurrentUser(), imageInfo, Operation.READ); + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @GetMapping("/images") + public PageData getImages(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) + @RequestParam int pageSize, + @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) + @RequestParam int page, + @ApiParam(value = RESOURCE_TEXT_SEARCH_DESCRIPTION) + @RequestParam(required = false) String textSearch, + @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortProperty, + @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortOrder) throws ThingsboardException { + PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); + TenantId tenantId = getTenantId(); + if (getCurrentUser().getAuthority() == Authority.SYS_ADMIN) { + return checkNotNull(imageService.getImagesByTenantId(tenantId, pageLink)); + } else { + return checkNotNull(imageService.getAllImagesByTenantId(tenantId, pageLink)); + } + } + + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") + @DeleteMapping(IMAGE_URL) + public void deleteImage(@PathVariable String type, + @PathVariable String key) throws ThingsboardException { + TenantId tenantId = getTenantId(type); + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + checkEntity(getCurrentUser(), imageInfo, Operation.DELETE); + tbImageService.delete(imageInfo, getCurrentUser()); + } + + private ResponseEntity downloadIfChanged(String etag, TbResourceInfo resourceInfo, + Supplier dataSupplier, String mediaType) throws ThingsboardException { + checkEntity(getCurrentUser(), resourceInfo, Operation.READ); + if (etag != null) { + if (etag.equals(resourceInfo.getEtag())) { + return ResponseEntity.status(HttpStatus.NOT_MODIFIED) + .eTag(etag) + .build(); + } + } + + byte[] data = dataSupplier.get(); + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + resourceInfo.getFileName()) + .header("x-filename", resourceInfo.getFileName()) + .contentLength(data.length) + .header("Content-Type", mediaType) + .cacheControl(CacheControl.noCache()) + .eTag(resourceInfo.getEtag()) + .body(new ByteArrayResource(data)); + } + + private TenantId getTenantId(String imageType) throws ThingsboardException { + TenantId tenantId; + if (imageType.equals(TENANT_IMAGE)) { + tenantId = getTenantId(); + } else if (imageType.equals(SYSTEM_IMAGE)) { + tenantId = TenantId.SYS_TENANT_ID; + } else { + throw new IllegalArgumentException("Invalid image URL"); + } + return tenantId; + } + +} \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index 7968b2cda8..a87b26c333 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -54,7 +54,10 @@ import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; import java.util.Base64; + import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.AVAILABLE_FOR_ANY_AUTHORIZED_USER; @@ -224,9 +227,14 @@ public class TbResourceController extends BaseController { PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); TbResourceInfoFilter.TbResourceInfoFilterBuilder filter = TbResourceInfoFilter.builder(); filter.tenantId(getTenantId()); + Set resourceTypes = new HashSet<>(); if (StringUtils.isNotEmpty(resourceType)) { - filter.resourceType(ResourceType.valueOf(resourceType)); + resourceTypes.add(ResourceType.valueOf(resourceType)); + } else { + Collections.addAll(resourceTypes, ResourceType.values()); + resourceTypes.remove(ResourceType.IMAGE); } + filter.resourceTypes(resourceTypes); if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) { return checkNotNull(resourceService.findTenantResourcesByTenantId(filter.build(), pageLink)); } else { diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java new file mode 100644 index 0000000000..d367bb2aa2 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -0,0 +1,30 @@ +package org.thingsboard.server.service.resource; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.audit.ActionType; +import org.thingsboard.server.dao.resource.ImageService; +import org.thingsboard.server.queue.util.TbCoreComponent; + +@Service +@TbCoreComponent +@RequiredArgsConstructor +public class DefaultTbImageService implements TbImageService { + + private final ImageService imageService; + + @Override + public TbResource save(TbResourceInfo imageInfo, MultipartFile imageFile, User user) { + return null; + } + + @Override + public void delete(TbResourceInfo imageInfo, User user) { + + } + +} diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java new file mode 100644 index 0000000000..5acb1b4180 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -0,0 +1,14 @@ +package org.thingsboard.server.service.resource; + +import org.springframework.web.multipart.MultipartFile; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.User; + +public interface TbImageService { + + TbResource save(TbResourceInfo imageInfo, MultipartFile imageFile, User user); + + void delete(TbResourceInfo imageInfo, User user); + +} diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java new file mode 100644 index 0000000000..b31befa36b --- /dev/null +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java @@ -0,0 +1,28 @@ +package org.thingsboard.server.dao.resource; + +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.page.PageLink; + +public interface ImageService { + + TbResourceInfo saveImage(TbResource image); + + TbResourceInfo saveImageInfo(TbResourceInfo imageInfo); + + TbResourceInfo getImageInfoByTenantIdAndKey(TenantId tenantId, String key); + + PageData getImagesByTenantId(TenantId tenantId, PageLink pageLink); + + PageData getAllImagesByTenantId(TenantId tenantId, PageLink pageLink); + + byte[] getImageData(TenantId tenantId, TbResourceId imageId); + + byte[] getImagePreview(TenantId tenantId, TbResourceId imageId); + + String getImageLink(TbResourceInfo imageInfo); + +} diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index db8c5b64a5..7240b1b742 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -62,6 +62,4 @@ public interface ResourceService extends EntityDaoService { List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query); - String getResourceLink(TbResourceInfo resourceInfo); - } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfoFilter.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfoFilter.java index 9057fc144b..5c0747f100 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfoFilter.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfoFilter.java @@ -19,11 +19,13 @@ import lombok.Builder; import lombok.Data; import org.thingsboard.server.common.data.id.TenantId; +import java.util.Set; + @Data @Builder public class TbResourceInfoFilter { private TenantId tenantId; - private ResourceType resourceType; + private Set resourceTypes; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java new file mode 100644 index 0000000000..19959baf54 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -0,0 +1,84 @@ +package org.thingsboard.server.dao.resource; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.TbResourceInfo; +import org.thingsboard.server.common.data.TbResourceInfoFilter; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.dao.service.validator.ResourceDataValidator; + +import java.util.Set; + +@Service +public class BaseImageService extends BaseResourceService implements ImageService { + + public BaseImageService(TbResourceDao resourceDao, TbResourceInfoDao resourceInfoDao, ResourceDataValidator resourceValidator) { + super(resourceDao, resourceInfoDao, resourceValidator); + } + + @Override + public TbResourceInfo saveImage(TbResource image) { + resourceValidator.validate(image, TbResourceInfo::getTenantId); + if (image.getData() != null) { + + } + // generate preview, etc. + return saveResource(image, false); + } + + @Override + public TbResourceInfo saveImageInfo(TbResourceInfo imageInfo) { + return null; + } + + @Override + public TbResourceInfo getImageInfoByTenantIdAndKey(TenantId tenantId, String key) { + return findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, key); + } + + @Override + public PageData getImagesByTenantId(TenantId tenantId, PageLink pageLink) { + TbResourceInfoFilter filter = TbResourceInfoFilter.builder() + .tenantId(tenantId) + .resourceTypes(Set.of(ResourceType.IMAGE)) + .build(); + return findTenantResourcesByTenantId(filter, pageLink); + } + + @Override + public PageData getAllImagesByTenantId(TenantId tenantId, PageLink pageLink) { + TbResourceInfoFilter filter = TbResourceInfoFilter.builder() + .tenantId(tenantId) + .resourceTypes(Set.of(ResourceType.IMAGE)) + .build(); + return findAllTenantResourcesByTenantId(filter, pageLink); + } + + @Override + public byte[] getImageData(TenantId tenantId, TbResourceId imageId) { + return resourceDao.getResourceData(tenantId, imageId); + } + + @Override + public byte[] getImagePreview(TenantId tenantId, TbResourceId imageId) { + return new byte[0]; + } + + @Override + public String getImageLink(TbResourceInfo imageInfo) { + String link = "/api/images/"; + if (imageInfo.getTenantId().isSysTenantId()) { + link += "system/"; + } else { + link += "tenant/"; + } + link += imageInfo.getResourceKey(); + return link; + } + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 370c0b5d6d..30748e5ab3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -57,9 +57,9 @@ import static org.thingsboard.server.dao.service.Validator.validateId; public class BaseResourceService extends AbstractCachedEntityService implements ResourceService { public static final String INCORRECT_RESOURCE_ID = "Incorrect resourceId "; - private final TbResourceDao resourceDao; - private final TbResourceInfoDao resourceInfoDao; - private final ResourceDataValidator resourceValidator; + protected final TbResourceDao resourceDao; + protected final TbResourceInfoDao resourceInfoDao; + protected final ResourceDataValidator resourceValidator; @Override public TbResource saveResource(TbResource resource, boolean doValidate) { @@ -67,20 +67,10 @@ public class BaseResourceService extends AbstractCachedEntityService, TenantEntityWithDataDao ResourceType resourceType, String[] objectIds, String searchText); + + byte[] getResourceData(TenantId tenantId, TbResourceId resourceId); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java index 36fa05e00e..3d163e0d4f 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; @@ -31,7 +32,6 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; import java.util.List; -import java.util.Objects; import java.util.UUID; @Slf4j @@ -94,6 +94,11 @@ public class JpaTbResourceDao extends JpaAbstractDao findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { - ResourceType resourceType = filter.getResourceType(); return DaoUtil.toPageData(resourceInfoRepository .findAllTenantResourcesByTenantId( - filter.getTenantId().getId(), - TenantId.NULL_UUID, - resourceType == null ? null : resourceType.name(), + filter.getTenantId().getId(), TenantId.NULL_UUID, + CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes() + .stream().map(Enum::name).collect(Collectors.toList()) : null, Objects.toString(pageLink.getTextSearch(), ""), DaoUtil.toPageable(pageLink))); } @Override public PageData findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { - ResourceType resourceType = filter.getResourceType(); return DaoUtil.toPageData(resourceInfoRepository .findTenantResourcesByTenantId( filter.getTenantId().getId(), - resourceType == null ? null : resourceType.name(), + CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes() + .stream().map(Enum::name).collect(Collectors.toList()) : null, pageLink.getTextSearch(), DaoUtil.toPageable(pageLink))); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java index 7ed0754624..7bbe2a92eb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java @@ -22,6 +22,7 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.model.sql.TbResourceInfoEntity; +import java.util.Collection; import java.util.List; import java.util.UUID; @@ -36,19 +37,19 @@ public interface TbResourceInfoRepository extends JpaRepository findAllTenantResourcesByTenantId(@Param("tenantId") UUID tenantId, @Param("systemAdminId") UUID sysadminId, - @Param("resourceType") String resourceType, + @Param("resourceTypes") Collection resourceTypes, @Param("searchText") String searchText, Pageable pageable); @Query("SELECT ri FROM TbResourceInfoEntity ri WHERE " + "ri.tenantId = :tenantId " + - "AND (:resourceType IS NULL OR ri.resourceType = :resourceType)" + + "AND (:resourceTypes IS NULL OR ri.resourceType IN :resourceTypes)" + "AND (:searchText IS NULL OR ilike(ri.title, CONCAT('%', :searchText, '%')) = true)") Page findTenantResourcesByTenantId(@Param("tenantId") UUID tenantId, - @Param("resourceType") String resourceType, + @Param("resourceTypes") Collection resourceTypes, @Param("searchText") String searchText, Pageable pageable); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java index 3a881f5206..41c5e005dd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java @@ -80,4 +80,8 @@ public interface TbResourceRepository extends JpaRepository Date: Tue, 14 Nov 2023 12:08:59 +0200 Subject: [PATCH 033/162] Fix build --- .../service/install/update/ImagesUpdater.java | 32 +++++++++---------- .../resource/DefaultTbImageService.java | 15 +++++++++ .../service/resource/TbImageService.java | 15 +++++++++ .../server/dao/resource/ImageService.java | 17 +++++++++- .../server/dao/resource/BaseImageService.java | 18 +++++++++-- 5 files changed, 78 insertions(+), 19 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index 74ee36ce34..9894ed5360 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -33,7 +33,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.util.ImageUtils; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; -import org.thingsboard.server.dao.resource.ResourceService; +import org.thingsboard.server.dao.resource.ImageService; import java.nio.file.Files; import java.nio.file.Path; @@ -47,7 +47,7 @@ import java.util.Optional; @RequiredArgsConstructor public class ImagesUpdater { - private final ResourceService resourceService; + private final ImageService imageService; private static final String IMAGE_NAME_SUFFIX = " - image"; private static final String BACKGROUND_IMAGE_NAME_SUFFIX = " - background image"; @@ -201,19 +201,19 @@ public class ImagesUpdater { private String saveImage(TenantId tenantId, String name, String key, byte[] imageData, String mediaType, String existingImageQuery) { - TbResourceInfo resourceInfo = resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, key); + TbResourceInfo resourceInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); if (resourceInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { // TODO: need to search among tenant images too (custom widgets) - List existingSystemImages = resourceService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); - if (!existingSystemImages.isEmpty()) { - resourceInfo = existingSystemImages.get(0); - if (existingSystemImages.size() > 1) { - log.warn("Found more than one system image resources for key {}", existingImageQuery); - } - String link = resourceService.getResourceLink(resourceInfo); - log.info("Using system image {} for {}", link, key); - return link; - } +// List existingSystemImages = imageService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); +// if (!existingSystemImages.isEmpty()) { +// resourceInfo = existingSystemImages.get(0); +// if (existingSystemImages.size() > 1) { +// log.warn("Found more than one system image resources for key {}", existingImageQuery); +// } +// String link = imageService.getImageLink(resourceInfo); +// log.info("Using system image {} for {}", link, key); +// return link; +// } } TbResource resource; if (resourceInfo == null) { @@ -224,16 +224,16 @@ public class ImagesUpdater { } else if (tenantId.isSysTenantId()) { resource = new TbResource(resourceInfo); } else { - return resourceService.getResourceLink(resourceInfo); + return imageService.getImageLink(resourceInfo); } resource.setTitle(name); resource.setFileName(key); resource.setMediaType(mediaType); resource.setData(imageData); - resource = resourceService.saveResource(resource); + resource = imageService.saveImage(resource); log.info("[{}] {} image '{}' ({})", tenantId, resourceInfo == null ? "Created" : "Updated", resource.getTitle(), resource.getResourceKey()); - return resourceService.getResourceLink(resourceInfo); + return imageService.getImageLink(resourceInfo); } private String getText(JsonNode jsonNode, String field) { diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index d367bb2aa2..0c58f6a10a 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.service.resource; import lombok.RequiredArgsConstructor; diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java index 5acb1b4180..7039d0edaa 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.service.resource; import org.springframework.web.multipart.MultipartFile; diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java index b31befa36b..a09a00296f 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.dao.resource; import org.thingsboard.server.common.data.TbResource; @@ -9,7 +24,7 @@ import org.thingsboard.server.common.data.page.PageLink; public interface ImageService { - TbResourceInfo saveImage(TbResource image); + TbResource saveImage(TbResource image); TbResourceInfo saveImageInfo(TbResourceInfo imageInfo); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 19959baf54..29a6f98409 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -1,6 +1,20 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.dao.resource; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; @@ -22,7 +36,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic } @Override - public TbResourceInfo saveImage(TbResource image) { + public TbResource saveImage(TbResource image) { resourceValidator.validate(image, TbResourceInfo::getTenantId); if (image.getData() != null) { From 0f26d7a5f058ef382bd746369dbc3115b5b786b3 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 14 Nov 2023 13:48:26 +0200 Subject: [PATCH 034/162] Improve constructRuleChainUpdatedMsg to not change rule chain entity --- .../rpc/constructor/RuleChainMsgConstructor.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java index 202f726ede..7aac9d36bd 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java @@ -37,22 +37,24 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class RuleChainMsgConstructor { public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { - ruleChain.setRoot(isRoot); if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain); + return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain, isRoot); } - return RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) + ruleChain.setRoot(isRoot); + RuleChainUpdateMsg result = RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); + ruleChain.setRoot(false); + return result; } - private RuleChainUpdateMsg constructDeprecatedRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain) { + private RuleChainUpdateMsg constructDeprecatedRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot) { RuleChainUpdateMsg.Builder builder = RuleChainUpdateMsg.newBuilder() .setMsgType(msgType) .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()) .setName(ruleChain.getName()) - .setRoot(ruleChain.isRoot()) + .setRoot(isRoot) .setDebugMode(ruleChain.isDebugMode()) .setConfiguration(JacksonUtil.toString(ruleChain.getConfiguration())); if (ruleChain.getFirstRuleNodeId() != null) { From 19968b5c103bc935029eb5c80f831f9cbf81570d Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Tue, 14 Nov 2023 16:06:59 +0200 Subject: [PATCH 035/162] Image descriptor, image preview, refactoring --- .../main/data/upgrade/3.6.1/schema_update.sql | 4 +- .../server/controller/ImageController.java | 99 ++++++++---- .../controller/TbResourceController.java | 32 +--- .../service/install/update/ImagesUpdater.java | 46 +++--- .../install/update/SystemImagesMigrator.java | 2 +- .../resource/DefaultTbImageService.java | 46 +++++- .../service/resource/TbImageService.java | 5 +- .../controller/TbResourceControllerTest.java | 54 +------ .../server/dao/resource/ImageService.java | 4 +- .../server/common/data/ImageDescriptor.java | 29 ++++ .../server/common/data/ResourceType.java | 2 +- .../server/common/data/TbResource.java | 4 + .../server/common/data/TbResourceInfo.java | 14 +- .../server/common/data/util/ImageUtils.java | 96 ------------ dao/pom.xml | 8 + .../server/dao/model/ModelConstants.java | 3 +- .../dao/model/sql/TbResourceEntity.java | 25 ++- .../dao/model/sql/TbResourceInfoEntity.java | 16 +- .../server/dao/resource/BaseImageService.java | 47 +++++- .../dao/resource/BaseResourceService.java | 4 +- .../server/dao/resource/TbResourceDao.java | 2 + .../validator/ResourceDataValidator.java | 15 -- .../dao/sql/resource/JpaTbResourceDao.java | 5 + .../resource/TbResourceInfoRepository.java | 8 +- .../sql/resource/TbResourceRepository.java | 3 + .../server/dao/util/ImageUtils.java | 144 ++++++++++++++++++ .../main/resources/sql/schema-entities.sql | 3 +- pom.xml | 11 ++ .../src/app/shared/models/resource.models.ts | 2 - 29 files changed, 444 insertions(+), 289 deletions(-) create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java delete mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/ImageUtils.java diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql index a594b5f3c8..c19ea2e4e8 100644 --- a/application/src/main/data/upgrade/3.6.1/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -27,6 +27,8 @@ $$ END IF; END; $$; -ALTER TABLE resource ADD COLUMN IF NOT EXISTS media_type varchar(255); +ALTER TABLE resource + ADD COLUMN IF NOT EXISTS descriptor varchar, + ADD COLUMN IF NOT EXISTS preview bytea; -- RESOURCES UPDATE END diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 93d01698cf..756c198a72 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -32,8 +32,13 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.ImageDescriptor; +import org.thingsboard.server.common.data.ResourceType; +import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TenantId; @@ -43,7 +48,9 @@ import org.thingsboard.server.common.data.security.Authority; import org.thingsboard.server.dao.resource.ImageService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.resource.TbImageService; +import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.permission.Operation; +import org.thingsboard.server.service.security.permission.Resource; import java.util.function.Supplier; @@ -68,52 +75,75 @@ public class ImageController extends BaseController { private static final String SYSTEM_IMAGE = "system"; private static final String TENANT_IMAGE = "tenant"; - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @PostMapping("/api/image") - public TbResourceInfo uploadImage(MultipartFile file) { -// imageService.saveImage() - return null; + public TbResourceInfo uploadImage(@RequestPart MultipartFile file) throws Exception { + SecurityUser user = getCurrentUser(); + TbResource image = new TbResource(); + image.setTenantId(user.getTenantId()); + accessControlService.checkPermission(user, Resource.TB_RESOURCE, Operation.CREATE, null, image); + + image.setFileName(file.getOriginalFilename()); + image.setTitle(file.getOriginalFilename()); + image.setResourceType(ResourceType.IMAGE); + ImageDescriptor descriptor = new ImageDescriptor(); + descriptor.setMediaType(file.getContentType()); + image.setDescriptor(JacksonUtil.valueToTree(descriptor)); + image.setData(file.getBytes()); + return tbImageService.save(image, user); } - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @PutMapping(IMAGE_URL) - public TbResourceInfo updateImage(MultipartFile file) { - return null; + public TbResourceInfo updateImage(@PathVariable String type, + @PathVariable String key, + @RequestPart MultipartFile file) throws Exception { + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.WRITE); + ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); + + TbResource image = new TbResource(imageInfo); + image.setData(file.getBytes()); + descriptor.setMediaType(file.getContentType()); + return tbImageService.save(image, getCurrentUser()); } - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @PutMapping(IMAGE_URL + "/info") - public TbResourceInfo updateImageInfo(@RequestBody TbResourceInfo imageInfo) { - return null; + public TbResourceInfo updateImageInfo(@PathVariable String type, + @PathVariable String key, + @RequestBody TbResourceInfo newImageInfo) throws ThingsboardException { + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.WRITE); + imageInfo.setTitle(newImageInfo.getTitle()); + return tbImageService.save(imageInfo, getCurrentUser()); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @GetMapping(value = IMAGE_URL, produces = "image/*") public ResponseEntity downloadImage(@PathVariable String type, @PathVariable String key, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { - TenantId tenantId = getTenantId(type); - TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); - return downloadIfChanged(etag, imageInfo, () -> imageService.getImageData(tenantId, imageInfo.getId()), imageInfo.getMediaType()); + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws Exception { + TenantId tenantId = getTenantId(); + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); + ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); + return downloadIfChanged(etag, imageInfo, descriptor, () -> imageService.getImageData(tenantId, imageInfo.getId())); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @GetMapping(value = IMAGE_URL + "/preview", produces = "image/png") public ResponseEntity downloadImagePreview(@PathVariable String type, @PathVariable String key, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { - TenantId tenantId = getTenantId(type); - TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); - return downloadIfChanged(etag, imageInfo, () -> imageService.getImagePreview(tenantId, imageInfo.getId()), imageInfo.getMediaType()); + @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws Exception { + TenantId tenantId = getTenantId(); + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); + ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); + return downloadIfChanged(etag, imageInfo, descriptor.getPreviewDescriptor(), () -> imageService.getImagePreview(tenantId, imageInfo.getId())); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @GetMapping(IMAGE_URL + "/info") public TbResourceInfo getImageInfo(@PathVariable String type, @PathVariable String key) throws ThingsboardException { - TenantId tenantId = getTenantId(type); - TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); - return checkEntity(getCurrentUser(), imageInfo, Operation.READ); + return checkImageInfo(type, key, Operation.READ); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @@ -128,6 +158,7 @@ public class ImageController extends BaseController { @RequestParam(required = false) String sortProperty, @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) @RequestParam(required = false) String sortOrder) throws ThingsboardException { + // PE: generic permission PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); TenantId tenantId = getTenantId(); if (getCurrentUser().getAuthority() == Authority.SYS_ADMIN) { @@ -141,17 +172,14 @@ public class ImageController extends BaseController { @DeleteMapping(IMAGE_URL) public void deleteImage(@PathVariable String type, @PathVariable String key) throws ThingsboardException { - TenantId tenantId = getTenantId(type); - TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); - checkEntity(getCurrentUser(), imageInfo, Operation.DELETE); + TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.DELETE); tbImageService.delete(imageInfo, getCurrentUser()); } - private ResponseEntity downloadIfChanged(String etag, TbResourceInfo resourceInfo, - Supplier dataSupplier, String mediaType) throws ThingsboardException { - checkEntity(getCurrentUser(), resourceInfo, Operation.READ); + private ResponseEntity downloadIfChanged(String etag, TbResourceInfo imageInfo, ImageDescriptor imageDescriptor, + Supplier dataSupplier) { if (etag != null) { - if (etag.equals(resourceInfo.getEtag())) { + if (etag.equals(imageInfo.getEtag())) { return ResponseEntity.status(HttpStatus.NOT_MODIFIED) .eTag(etag) .build(); @@ -160,15 +188,22 @@ public class ImageController extends BaseController { byte[] data = dataSupplier.get(); return ResponseEntity.ok() - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + resourceInfo.getFileName()) - .header("x-filename", resourceInfo.getFileName()) + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + imageInfo.getFileName()) + .header("x-filename", imageInfo.getFileName()) .contentLength(data.length) - .header("Content-Type", mediaType) + .header("Content-Type", imageDescriptor.getMediaType()) .cacheControl(CacheControl.noCache()) - .eTag(resourceInfo.getEtag()) + .eTag(imageInfo.getEtag()) .body(new ByteArrayResource(data)); } + private TbResourceInfo checkImageInfo(String imageType, String key, Operation operation) throws ThingsboardException { + TenantId tenantId = getTenantId(imageType); + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + checkEntity(getCurrentUser(), checkNotNull(imageInfo), operation); + return imageInfo; + } + private TenantId getTenantId(String imageType) throws ThingsboardException { TenantId tenantId; if (imageType.equals(TENANT_IMAGE)) { diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index a87b26c333..08d7cedd93 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -54,11 +54,10 @@ import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; import java.util.Base64; - import java.util.Collections; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.function.Supplier; import static org.thingsboard.server.controller.ControllerConstants.AVAILABLE_FOR_ANY_AUTHORIZED_USER; import static org.thingsboard.server.controller.ControllerConstants.LWM2M_OBJECT_DESCRIPTION; @@ -110,17 +109,6 @@ public class TbResourceController extends BaseController { .body(resource); } - @ApiOperation(value = "Download Image (downloadImageIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") - @GetMapping(value = "/images/{resourceKey}", produces = "image/*") - public ResponseEntity downloadImageIfChanged(@PathVariable("resourceKey") String resourceKey, - @RequestHeader(name = HttpHeaders.IF_NONE_MATCH, required = false) String etag) throws ThingsboardException { - TenantId tenantId = getTenantId(); - return downloadResourceIfChanged(ResourceType.IMAGE, etag, - () -> resourceService.findResourceInfoByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey), - () -> resourceService.findResourceByTenantIdAndKey(tenantId, ResourceType.IMAGE, resourceKey)); - } - @ApiOperation(value = "Download LWM2M Resource (downloadLwm2mResourceIfChanged)", notes = DOWNLOAD_RESOURCE_IF_NOT_CHANGED + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(value = "/resource/lwm2m/{resourceId}/download", produces = "application/xml") @@ -291,19 +279,9 @@ public class TbResourceController extends BaseController { private ResponseEntity downloadResourceIfChanged(ResourceType resourceType, String strResourceId, String etag) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); - TenantId tenantId = getTenantId(); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); - return downloadResourceIfChanged(resourceType, etag, - () -> resourceService.findResourceInfoById(tenantId, resourceId), - () -> resourceService.findResourceById(tenantId, resourceId)); - } - - private ResponseEntity downloadResourceIfChanged(ResourceType resourceType, String etag, - Supplier resourceInfoSupplier, - Supplier resourceSupplier) throws ThingsboardException { if (etag != null) { - TbResourceInfo tbResourceInfo = resourceInfoSupplier.get(); - checkEntity(getCurrentUser(), tbResourceInfo, Operation.READ); + TbResourceInfo tbResourceInfo = checkResourceInfoId(resourceId, Operation.READ); if (etag.equals(tbResourceInfo.getEtag())) { return ResponseEntity.status(HttpStatus.NOT_MODIFIED) .eTag(tbResourceInfo.getEtag()) @@ -311,16 +289,14 @@ public class TbResourceController extends BaseController { } } - // TODO: rate limits - TbResource tbResource = resourceSupplier.get(); - checkEntity(getCurrentUser(), tbResource, Operation.READ); + TbResource tbResource = checkResourceId(resourceId, Operation.READ); ByteArrayResource resource = new ByteArrayResource(tbResource.getData()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + tbResource.getFileName()) .header("x-filename", tbResource.getFileName()) .contentLength(resource.contentLength()) - .header("Content-Type", tbResource.getMediaType() != null ? tbResource.getMediaType() : resourceType.getDefaultMediaType()) + .header("Content-Type", resourceType.getMediaType()) .cacheControl(CacheControl.noCache()) .eTag(tbResource.getEtag()) .body(resource); diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index 9894ed5360..bb5da33631 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.util.ImageUtils; +import org.thingsboard.server.dao.util.ImageUtils; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.resource.ImageService; @@ -38,7 +38,6 @@ import org.thingsboard.server.dao.resource.ImageService; import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; -import java.util.List; import java.util.Map; import java.util.Optional; @@ -199,41 +198,44 @@ public class ImagesUpdater { return new ImageSaveResult(imageLink, !imageLink.equals(data)); } + @SneakyThrows private String saveImage(TenantId tenantId, String name, String key, byte[] imageData, String mediaType, String existingImageQuery) { - TbResourceInfo resourceInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); - if (resourceInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { + TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); + if (imageInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { // TODO: need to search among tenant images too (custom widgets) // List existingSystemImages = imageService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); // if (!existingSystemImages.isEmpty()) { -// resourceInfo = existingSystemImages.get(0); +// imageInfo = existingSystemImages.get(0); // if (existingSystemImages.size() > 1) { // log.warn("Found more than one system image resources for key {}", existingImageQuery); // } -// String link = imageService.getImageLink(resourceInfo); +// String link = imageService.getImageLink(imageInfo); // log.info("Using system image {} for {}", link, key); // return link; // } } - TbResource resource; - if (resourceInfo == null) { - resource = new TbResource(); - resource.setTenantId(tenantId); - resource.setResourceType(ResourceType.IMAGE); - resource.setResourceKey(key); + TbResource image; + if (imageInfo == null) { + image = new TbResource(); + image.setTenantId(tenantId); + image.setResourceType(ResourceType.IMAGE); + image.setResourceKey(key); } else if (tenantId.isSysTenantId()) { - resource = new TbResource(resourceInfo); + image = new TbResource(imageInfo); } else { - return imageService.getImageLink(resourceInfo); + return imageService.getImageLink(imageInfo); } - resource.setTitle(name); - resource.setFileName(key); - resource.setMediaType(mediaType); - resource.setData(imageData); - resource = imageService.saveImage(resource); - log.info("[{}] {} image '{}' ({})", tenantId, resourceInfo == null ? "Created" : "Updated", - resource.getTitle(), resource.getResourceKey()); - return imageService.getImageLink(resourceInfo); + image.setTitle(name); + image.setFileName(key); + image.setDescriptor(JacksonUtil.newObjectNode() + .put("mediaType", mediaType)); + image.setData(imageData); + + TbResourceInfo savedImage = imageService.saveImage(image); + log.info("[{}] {} image '{}' ({})", tenantId, imageInfo == null ? "Created" : "Updated", + image.getTitle(), image.getResourceKey()); + return imageService.getImageLink(savedImage); } private String getText(JsonNode jsonNode, String field) { diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java index 52ac77b733..41e912a173 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java @@ -24,7 +24,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.data.util.MediaTypeUtils; +import org.thingsboard.server.dao.util.ImageUtils; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 0c58f6a10a..188dff20d5 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -17,29 +17,65 @@ package org.thingsboard.server.service.resource; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; +import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.audit.ActionType; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.dao.resource.ImageService; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.entitiy.AbstractTbEntityService; @Service @TbCoreComponent @RequiredArgsConstructor -public class DefaultTbImageService implements TbImageService { +public class DefaultTbImageService extends AbstractTbEntityService implements TbImageService { private final ImageService imageService; @Override - public TbResource save(TbResourceInfo imageInfo, MultipartFile imageFile, User user) { - return null; + public TbResourceInfo save(TbResource image, User user) throws Exception { + ActionType actionType = image.getId() == null ? ActionType.ADDED : ActionType.UPDATED; + TenantId tenantId = image.getTenantId(); + image.setResourceKey(image.getFileName()); // TODO: generate unique resource key file_name+idx + try { + TbResourceInfo savedImage = imageService.saveImage(image); + notificationEntityService.logEntityAction(tenantId, savedImage.getId(), savedImage, actionType, user); + return savedImage; + } catch (Exception e) { + image.setData(null); + notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.TB_RESOURCE), image, actionType, user, e); + throw e; + } } @Override - public void delete(TbResourceInfo imageInfo, User user) { + public TbResourceInfo save(TbResourceInfo imageInfo, User user) { + TenantId tenantId = imageInfo.getTenantId(); + TbResourceId imageId = imageInfo.getId(); + try { + imageInfo = imageService.saveImageInfo(imageInfo); + notificationEntityService.logEntityAction(tenantId, imageId, imageInfo, ActionType.UPDATED, user); + return imageInfo; + } catch (Exception e) { + notificationEntityService.logEntityAction(tenantId, imageId, imageInfo, ActionType.UPDATED, user, e); + throw e; + } + } + @Override + public void delete(TbResourceInfo imageInfo, User user) { + TenantId tenantId = imageInfo.getTenantId(); + TbResourceId imageId = imageInfo.getId(); + try { + imageService.deleteImage(tenantId, imageId); + notificationEntityService.logEntityAction(tenantId, imageId, imageInfo, ActionType.DELETED, user, imageId.toString()); + } catch (Exception e) { + notificationEntityService.logEntityAction(tenantId, imageId, ActionType.DELETED, user, e, imageId.toString()); + throw e; + } } } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java index 7039d0edaa..a1f6cf3e7e 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/TbImageService.java @@ -15,14 +15,15 @@ */ package org.thingsboard.server.service.resource; -import org.springframework.web.multipart.MultipartFile; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.User; public interface TbImageService { - TbResource save(TbResourceInfo imageInfo, MultipartFile imageFile, User user); + TbResourceInfo save(TbResource image, User user) throws Exception; + + TbResourceInfo save(TbResourceInfo imageInfo, User user); void delete(TbResourceInfo imageInfo, User user); diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index 638d09bfdd..05770f960f 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -620,10 +620,9 @@ public class TbResourceControllerTest extends AbstractControllerTest { @Test public void testUpdateResourceData_nonUpdatableResourceType() throws Exception { TbResource resource = new TbResource(); - resource.setResourceType(ResourceType.IMAGE); + resource.setResourceType(ResourceType.PKCS_12); resource.setTitle("My resource"); - resource.setFileName("image.png"); - resource.setMediaType("image/png"); + resource.setFileName("3.pks"); resource.setBase64Data(TEST_DATA); TbResource savedResource = save(resource); resource.setEtag(savedResource.getEtag()); @@ -638,7 +637,6 @@ public class TbResourceControllerTest extends AbstractControllerTest { savedResource = doPost("/api/resource", savedResource, TbResource.class); assertThat(savedResource.getTitle()).isEqualTo("Updated resource"); assertThat(savedResource.getFileName()).isEqualTo(resource.getFileName()); - assertThat(savedResource.getMediaType()).isEqualTo(resource.getMediaType()); assertThat(savedResource.getEtag()).isEqualTo(resource.getEtag()); assertThat(download(savedResource.getId())).asBase64Encoded().isEqualTo(TEST_DATA); } @@ -665,54 +663,6 @@ public class TbResourceControllerTest extends AbstractControllerTest { assertThat(download(savedResource.getId())).asBase64Encoded().isEqualTo(newData); } - @Test - public void testSaveImage_systemLevel() throws Exception { - loginSysAdmin(); - TbResource resource = new TbResource(); - resource.setResourceType(ResourceType.IMAGE); - resource.setTitle("System image"); - resource.setFileName("image.png"); - resource.setMediaType("image/png"); - resource.setBase64Data(TEST_DATA); - - TbResource savedResource = save(resource); - - loginTenantAdmin(); - MockHttpServletResponse imageResponse = doGet(getImageLink(savedResource)).andExpect(status().isOk()) - .andReturn().getResponse(); - assertThat(imageResponse.getContentAsByteArray()) - .isEqualTo(download(savedResource.getId())) - .isEqualTo(Base64.getDecoder().decode(TEST_DATA)); - assertThat(imageResponse.getContentType()).isEqualTo("image/png"); - - loginSysAdmin(); - doDelete("/api/resource/" + savedResource.getId()).andExpect(status().isOk()); - } - - @Test - public void testSaveImage_tenantLevel() throws Exception { - loginTenantAdmin(); - TbResource resource = new TbResource(); - resource.setResourceType(ResourceType.IMAGE); - resource.setTitle("My image"); - resource.setFileName("image.jpg"); - resource.setMediaType("image/jpeg"); - resource.setBase64Data(TEST_DATA); - - TbResource savedResource = save(resource); - String imageLink = getImageLink(savedResource); - - MockHttpServletResponse imageResponse = doGet(imageLink).andExpect(status().isOk()) - .andReturn().getResponse(); - assertThat(imageResponse.getContentAsByteArray()) - .isEqualTo(download(savedResource.getId())) - .isEqualTo(Base64.getDecoder().decode(TEST_DATA)); - assertThat(imageResponse.getContentType()).isEqualTo("image/jpeg"); - - loginDifferentTenant(); - doGet(imageLink).andExpect(status().isNotFound()); - } - private TbResource save(TbResource tbResource) throws Exception { return doPostWithTypedResponse("/api/resource", tbResource, new TypeReference<>() { }); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java index a09a00296f..3ae45e86c5 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java @@ -24,7 +24,7 @@ import org.thingsboard.server.common.data.page.PageLink; public interface ImageService { - TbResource saveImage(TbResource image); + TbResourceInfo saveImage(TbResource image) throws Exception; TbResourceInfo saveImageInfo(TbResourceInfo imageInfo); @@ -38,6 +38,8 @@ public interface ImageService { byte[] getImagePreview(TenantId tenantId, TbResourceId imageId); + void deleteImage(TenantId tenantId, TbResourceId imageId); + String getImageLink(TbResourceInfo imageInfo); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java b/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java new file mode 100644 index 0000000000..2bd7c59a85 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java @@ -0,0 +1,29 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.data; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ImageDescriptor { + private String mediaType; + private int width; + private int height; + private long size; + private ImageDescriptor previewDescriptor; +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java index 9ea39c43fd..b3222a9682 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java @@ -27,7 +27,7 @@ public enum ResourceType { IMAGE(null, true, false); @Getter - private final String defaultMediaType; + private final String mediaType; @Getter private final boolean customerAccess; @Getter diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java index 7c44943deb..3d6c9ad95b 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java @@ -37,6 +37,9 @@ public class TbResource extends TbResourceInfo { @JsonIgnore private byte[] data; + @JsonIgnore + private byte[] preview; + public TbResource() { super(); } @@ -53,6 +56,7 @@ public class TbResource extends TbResourceInfo { super(resource); this.base64Data = resource.base64Data; this.data = resource.data; + this.preview = resource.preview; } @JsonIgnore diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 5b0fc9433d..31ef6b8ea1 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -16,6 +16,9 @@ package org.thingsboard.server.common.data; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -55,9 +58,8 @@ public class TbResourceInfo extends BaseData implements HasName, H @Length(fieldName = "file name") @ApiModelProperty(position = 9, value = "Resource file name.", example = "19.xml", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String fileName; - @ApiModelProperty(position = 10, value = "Resource media type.", example = "image/png", accessMode = ApiModelProperty.AccessMode.READ_ONLY) - private String mediaType; - private ObjectNode descriptor; + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + private JsonNode descriptor; public TbResourceInfo() { super(); @@ -76,7 +78,6 @@ public class TbResourceInfo extends BaseData implements HasName, H this.searchText = resourceInfo.searchText; this.etag = resourceInfo.etag; this.fileName = resourceInfo.fileName; - this.mediaType = resourceInfo.mediaType; this.descriptor = resourceInfo.descriptor; } @@ -106,4 +107,9 @@ public class TbResourceInfo extends BaseData implements HasName, H return searchText != null ? searchText : title; } + @JsonIgnore + public T getDescriptor(Class type) throws JsonProcessingException { + return descriptor != null ? mapper.treeToValue(descriptor, type) : null; + } + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java b/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java deleted file mode 100644 index f67051a3da..0000000000 --- a/common/data/src/main/java/org/thingsboard/server/common/data/util/ImageUtils.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.common.data.util; - -import lombok.AccessLevel; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.util.MimeType; -import org.springframework.util.MimeTypeUtils; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Map; - -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class ImageUtils { - - private static final Map mediaTypeMappings = Map.of( - "jpeg", "jpg", - "svg+xml", "svg" - ); - - public static String mediaTypeToFileExtension(String mimeType) { - String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); - return mediaTypeMappings.getOrDefault(subtype, subtype); - } - - public static String fileExtensionToMediaType(String type, String extension) { - String subtype = mediaTypeMappings.entrySet().stream() - .filter(mapping -> mapping.getValue().equals(extension)) - .map(Map.Entry::getKey).findFirst().orElse(extension); - return new MimeType(type, subtype).toString(); - } - - public static ImageInfo processImage(byte[] imageData) throws IOException { - BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageData)); - ImageThumbnail thumbnail = getImageThumbnail(image, 250); - return new ImageInfo(image.getWidth(), image.getHeight(), thumbnail); - } - - private static ImageThumbnail getImageThumbnail(BufferedImage originalImage, int maxDimension) throws IOException { - int originalWidth = originalImage.getWidth(); - int originalHeight = originalImage.getHeight(); - int thumbnailWidth; - int thumbnailHeight; - if (originalWidth <= maxDimension && originalHeight <= maxDimension) { - thumbnailWidth = originalWidth; - thumbnailHeight = originalHeight; - } else { - double aspectRatio = (double) originalWidth / originalHeight; - if (originalWidth > originalHeight) { - thumbnailWidth = maxDimension; - thumbnailHeight = (int) (maxDimension / aspectRatio); - } else { - thumbnailWidth = (int) (maxDimension * aspectRatio); - thumbnailHeight = maxDimension; - } - } - BufferedImage thumbnail = new BufferedImage(thumbnailWidth, thumbnailHeight, BufferedImage.TYPE_INT_RGB); - thumbnail.getGraphics().drawImage(originalImage, 0, 0, thumbnailWidth, thumbnailHeight, null); - ByteArrayOutputStream os = new ByteArrayOutputStream(); - ImageIO.write(thumbnail, "ignored", os); - return new ImageThumbnail(thumbnail.getWidth(), thumbnail.getHeight(), os.toByteArray()); - } - - @Data - public static class ImageInfo { - private final int width; - private final int height; - private final ImageThumbnail thumbnail; - } - - @Data - public static class ImageThumbnail { - private final int width; - private final int height; - private final byte[] data; - } - -} diff --git a/dao/pom.xml b/dao/pom.xml index 673a08e0c1..2ac19b9a1e 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -234,6 +234,14 @@ io.hypersistence hypersistence-utils-hibernate-55 + + org.apache.xmlgraphics + batik-transcoder + + + org.apache.xmlgraphics + batik-codec + diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 3a77a92eb7..21cea59ee3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -499,7 +499,8 @@ public class ModelConstants { public static final String RESOURCE_FILE_NAME_COLUMN = "file_name"; public static final String RESOURCE_DATA_COLUMN = "data"; public static final String RESOURCE_ETAG_COLUMN = "etag"; - public static final String RESOURCE_MEDIA_TYPE_COLUMN = "media_type"; + public static final String RESOURCE_DESCRIPTOR_COLUMN = "descriptor"; + public static final String RESOURCE_PREVIEW_COLUMN = "preview"; /** * Ota Package constants. diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java index f26bf100d7..41c5ebc920 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java @@ -15,14 +15,17 @@ */ package org.thingsboard.server.dao.model.sql; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Type; +import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.dao.model.BaseEntity; import org.thingsboard.server.dao.model.BaseSqlEntity; +import org.thingsboard.server.dao.util.mapping.JsonStringType; import javax.persistence.Column; import javax.persistence.Entity; @@ -30,10 +33,11 @@ import javax.persistence.Table; import java.util.UUID; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DATA_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DESCRIPTOR_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; -import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_PREVIEW_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TITLE_COLUMN; @@ -43,8 +47,9 @@ import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPER @Data @EqualsAndHashCode(callSuper = true) @Entity +@TypeDef(name = "json", typeClass = JsonStringType.class) @Table(name = RESOURCE_TABLE_NAME) -public class TbResourceEntity extends BaseSqlEntity implements BaseEntity { +public class TbResourceEntity extends BaseSqlEntity { @Column(name = RESOURCE_TENANT_ID_COLUMN, columnDefinition = "uuid") private UUID tenantId; @@ -70,8 +75,12 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE @Column(name = RESOURCE_ETAG_COLUMN) private String etag; - @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) - private String mediaType; + @Type(type = "json") + @Column(name = RESOURCE_DESCRIPTOR_COLUMN) + private JsonNode descriptor; + + @Column(name = RESOURCE_PREVIEW_COLUMN) + private byte[] preview; public TbResourceEntity() { } @@ -91,7 +100,8 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE this.fileName = resource.getFileName(); this.data = resource.getData(); this.etag = resource.getEtag(); - this.mediaType = resource.getMediaType(); + this.descriptor = resource.getDescriptor(); + this.preview = resource.getPreview(); } @Override @@ -106,7 +116,8 @@ public class TbResourceEntity extends BaseSqlEntity implements BaseE resource.setFileName(fileName); resource.setData(data); resource.setEtag(etag); - resource.setMediaType(mediaType); + resource.setDescriptor(descriptor); + resource.setPreview(preview); return resource; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java index d74f5a3c8e..9ab5024b32 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java @@ -15,24 +15,28 @@ */ package org.thingsboard.server.dao.model.sql; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Type; +import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TbResourceId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.dao.model.BaseEntity; import org.thingsboard.server.dao.model.BaseSqlEntity; +import org.thingsboard.server.dao.util.mapping.JsonStringType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import java.util.UUID; +import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DESCRIPTOR_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_KEY_COLUMN; -import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_MEDIA_TYPE_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TABLE_NAME; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TENANT_ID_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_TITLE_COLUMN; @@ -42,6 +46,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.SEARCH_TEXT_PROPER @Data @EqualsAndHashCode(callSuper = true) @Entity +@TypeDef(name = "json", typeClass = JsonStringType.class) @Table(name = RESOURCE_TABLE_NAME) public class TbResourceInfoEntity extends BaseSqlEntity implements BaseEntity { @@ -66,8 +71,9 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen @Column(name = RESOURCE_FILE_NAME_COLUMN) private String fileName; - @Column(name = RESOURCE_MEDIA_TYPE_COLUMN) - private String mediaType; + @Type(type = "json") + @Column(name = RESOURCE_DESCRIPTOR_COLUMN) + private JsonNode descriptor; public TbResourceInfoEntity() { } @@ -84,7 +90,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen this.searchText = resource.getSearchText(); this.hashCode = resource.getEtag(); this.fileName = resource.getFileName(); - this.mediaType = resource.getMediaType(); + this.descriptor = resource.getDescriptor(); } @Override @@ -98,7 +104,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen resource.setSearchText(searchText); resource.setEtag(hashCode); resource.setFileName(fileName); - resource.setMediaType(mediaType); + resource.setDescriptor(descriptor); return resource; } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 29a6f98409..c046ca1c33 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -15,7 +15,11 @@ */ package org.thingsboard.server.dao.resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; @@ -25,10 +29,13 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.service.validator.ResourceDataValidator; +import org.thingsboard.server.dao.util.ImageUtils; +import org.thingsboard.server.dao.util.ImageUtils.ProcessedImage; import java.util.Set; @Service +@Slf4j public class BaseImageService extends BaseResourceService implements ImageService { public BaseImageService(TbResourceDao resourceDao, TbResourceInfoDao resourceInfoDao, ResourceDataValidator resourceValidator) { @@ -36,18 +43,39 @@ public class BaseImageService extends BaseResourceService implements ImageServic } @Override - public TbResource saveImage(TbResource image) { + public TbResourceInfo saveImage(TbResource image) throws Exception { resourceValidator.validate(image, TbResourceInfo::getTenantId); - if (image.getData() != null) { - } - // generate preview, etc. - return saveResource(image, false); + ImageDescriptor descriptor = image.getDescriptor(ImageDescriptor.class); + Pair result = processImage(image.getData(), descriptor); + image.setDescriptor(JacksonUtil.valueToTree(result.getLeft())); + image.setPreview(result.getRight()); + + image = saveResource(image, false); + return new TbResourceInfo(image); + } + + private Pair processImage(byte[] data, ImageDescriptor descriptor) throws Exception { + ProcessedImage image = ImageUtils.processImage(data, descriptor.getMediaType(), 250); + ProcessedImage preview = image.getPreview(); + + descriptor.setWidth(image.getWidth()); + descriptor.setHeight(image.getHeight()); + descriptor.setSize(image.getSize()); + + ImageDescriptor previewDescriptor = new ImageDescriptor(); + previewDescriptor.setWidth(preview.getWidth()); + previewDescriptor.setHeight(preview.getHeight()); + previewDescriptor.setMediaType(preview.getMediaType()); + previewDescriptor.setSize(preview.getSize()); + descriptor.setPreviewDescriptor(previewDescriptor); + + return Pair.of(descriptor, preview.getData()); } @Override public TbResourceInfo saveImageInfo(TbResourceInfo imageInfo) { - return null; + return saveResource(new TbResource(imageInfo)); } @Override @@ -80,7 +108,12 @@ public class BaseImageService extends BaseResourceService implements ImageServic @Override public byte[] getImagePreview(TenantId tenantId, TbResourceId imageId) { - return new byte[0]; + return resourceDao.getResourcePreview(tenantId, imageId); + } + + @Override + public void deleteImage(TenantId tenantId, TbResourceId imageId) { + deleteResource(tenantId, imageId); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 30748e5ab3..bb46af22ff 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -15,12 +15,12 @@ */ package org.thingsboard.server.dao.resource; -import com.datastax.oss.driver.api.core.uuid.Uuids; import com.google.common.hash.Hashing; import com.google.common.util.concurrent.ListenableFuture; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hibernate.exception.ConstraintViolationException; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import org.springframework.transaction.event.TransactionalEventListener; import org.thingsboard.server.cache.resourceInfo.ResourceInfoCacheKey; @@ -46,7 +46,6 @@ import org.thingsboard.server.dao.service.validator.ResourceDataValidator; import java.util.List; import java.util.Optional; -import java.util.UUID; import static org.thingsboard.server.dao.device.DeviceServiceImpl.INCORRECT_TENANT_ID; import static org.thingsboard.server.dao.service.Validator.validateId; @@ -54,6 +53,7 @@ import static org.thingsboard.server.dao.service.Validator.validateId; @Service("TbResourceDaoService") @Slf4j @AllArgsConstructor +@Primary public class BaseResourceService extends AbstractCachedEntityService implements ResourceService { public static final String INCORRECT_RESOURCE_ID = "Incorrect resourceId "; diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java index 4bf6f752a0..43b79c5213 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceDao.java @@ -43,4 +43,6 @@ public interface TbResourceDao extends Dao, TenantEntityWithDataDao byte[] getResourceData(TenantId tenantId, TbResourceId resourceId); + byte[] getResourcePreview(TenantId tenantId, TbResourceId resourceId); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java index 4d5027492d..affde231f5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java @@ -17,8 +17,6 @@ package org.thingsboard.server.dao.service.validator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.http.InvalidMediaTypeException; -import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -94,19 +92,6 @@ public class ResourceDataValidator extends DataValidator { long maxSumResourcesDataInBytes = profileConfiguration.getMaxResourcesInBytes(); validateMaxSumDataSizePerTenant(tenantId, resourceDao, maxSumResourcesDataInBytes, resource.getData().length, TB_RESOURCE); } - if (resource.getResourceType().getDefaultMediaType() != null) { - resource.setMediaType(resource.getResourceType().getDefaultMediaType()); - } else { - if (resource.getMediaType() == null) { - throw new DataValidationException("Media type is required"); - } else { - try { - MediaType.parseMediaType(resource.getMediaType()); - } catch (InvalidMediaTypeException e) { - throw new DataValidationException("Invalid media type", e); - } - } - } if (StringUtils.isEmpty(resource.getFileName())) { throw new DataValidationException("Resource file name should be specified!"); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java index 3d163e0d4f..28bebf3e4f 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java @@ -99,6 +99,11 @@ public class JpaTbResourceDao extends JpaAbstractDao findAllTenantResourcesByTenantId(@Param("tenantId") UUID tenantId, @Param("systemAdminId") UUID sysadminId, - @Param("resourceTypes") Collection resourceTypes, + @Param("resourceTypes") List resourceTypes, @Param("searchText") String searchText, Pageable pageable); @Query("SELECT ri FROM TbResourceInfoEntity ri WHERE " + "ri.tenantId = :tenantId " + - "AND (:resourceTypes IS NULL OR ri.resourceType IN :resourceTypes)" + + "AND ri.resourceType IN :resourceTypes " + "AND (:searchText IS NULL OR ilike(ri.title, CONCAT('%', :searchText, '%')) = true)") Page findTenantResourcesByTenantId(@Param("tenantId") UUID tenantId, - @Param("resourceTypes") Collection resourceTypes, + @Param("resourceTypes") List resourceTypes, @Param("searchText") String searchText, Pageable pageable); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java index 41c5e005dd..6a47e95ed6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java @@ -84,4 +84,7 @@ public interface TbResourceRepository extends JpaRepository mediaTypeMappings = Map.of( + "jpeg", "jpg", + "svg+xml", "svg" + ); + + public static String mediaTypeToFileExtension(String mimeType) { + String subtype = MimeTypeUtils.parseMimeType(mimeType).getSubtype(); + return mediaTypeMappings.getOrDefault(subtype, subtype); + } + + public static String fileExtensionToMediaType(String type, String extension) { + String subtype = mediaTypeMappings.entrySet().stream() + .filter(mapping -> mapping.getValue().equals(extension)) + .map(Map.Entry::getKey).findFirst().orElse(extension); + return new MimeType(type, subtype).toString(); + } + + public static ProcessedImage processImage(byte[] data, String mediaType, int thumbnailMaxDimension) throws Exception { + if (mediaTypeToFileExtension(mediaType).equals("svg")) { + return processSvgImage(data, thumbnailMaxDimension); + } + + BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(data)); + ProcessedImage image = new ProcessedImage(); + image.setMediaType(mediaType); + image.setWidth(bufferedImage.getWidth()); + image.setHeight(bufferedImage.getHeight()); + image.setData(data); + image.setSize(data.length); + + ProcessedImage preview = new ProcessedImage(); + int[] thumbnailDimensions = getThumbnailDimensions(image.getWidth(), image.getHeight(), thumbnailMaxDimension); + preview.setWidth(thumbnailDimensions[0]); + preview.setHeight(thumbnailDimensions[1]); + + if (preview.getWidth() == image.getWidth() && preview.getHeight() == image.getHeight()) { + if (mediaType.equals("image/png")) { + preview.setMediaType(mediaType); + preview.setData(null); + preview.setSize(data.length); + image.setPreview(preview); + return image; + } + } + + BufferedImage thumbnail = new BufferedImage(preview.getWidth(), preview.getHeight(), BufferedImage.TYPE_INT_RGB); + thumbnail.getGraphics().drawImage(bufferedImage, 0, 0, preview.getWidth(), preview.getHeight(), null); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + ImageIO.write(thumbnail, "png", out); + + preview.setMediaType("image/png"); + preview.setData(out.toByteArray()); + preview.setSize(preview.getData().length); + image.setPreview(preview); + return image; + } + + public static ProcessedImage processSvgImage(byte[] data, int thumbnailMaxDimension) throws Exception { + ProcessedImage image = new ProcessedImage(); + image.setWidth(0); + image.setHeight(0); + image.setData(data); + image.setSize(data.length); + + PNGTranscoder transcoder = new PNGTranscoder(); + transcoder.addTranscodingHint(PNGTranscoder.KEY_MAX_WIDTH, (float) thumbnailMaxDimension); + transcoder.addTranscodingHint(PNGTranscoder.KEY_MAX_HEIGHT, (float) thumbnailMaxDimension); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + transcoder.transcode(new TranscoderInput(new ByteArrayInputStream(data)), new TranscoderOutput(out)); + byte[] pngThumbnail = out.toByteArray(); + + ProcessedImage preview = new ProcessedImage(); + preview.setWidth(thumbnailMaxDimension); + preview.setHeight(thumbnailMaxDimension); + preview.setMediaType("image/png"); + preview.setData(pngThumbnail); + preview.setSize(pngThumbnail.length); + image.setPreview(preview); + return image; + } + + private static int[] getThumbnailDimensions(int originalWidth, int originalHeight, int maxDimension) { + if (originalWidth <= maxDimension && originalHeight <= maxDimension) { + return new int[]{originalWidth, originalHeight}; + } + int thumbnailWidth; + int thumbnailHeight; + double aspectRatio = (double) originalWidth / originalHeight; + if (originalWidth > originalHeight) { + thumbnailWidth = maxDimension; + thumbnailHeight = (int) (maxDimension / aspectRatio); + } else { + thumbnailWidth = (int) (maxDimension * aspectRatio); + thumbnailHeight = maxDimension; + } + return new int[]{thumbnailWidth, thumbnailHeight}; + } + + @Data + public static class ProcessedImage { + private String mediaType; + private int width; + private int height; + private byte[] data; + private long size; + private ProcessedImage preview; + } + +} diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index db59878c39..6b30151536 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -716,7 +716,8 @@ CREATE TABLE IF NOT EXISTS resource ( file_name varchar(255) NOT NULL, data bytea, etag varchar, - media_type varchar(255), + descriptor varchar, + preview bytea, CONSTRAINT resource_unq_key UNIQUE (tenant_id, resource_type, resource_key) ); diff --git a/pom.xml b/pom.xml index d5b517c48e..aceeb67cc2 100755 --- a/pom.xml +++ b/pom.xml @@ -153,6 +153,7 @@ 1.12.1 6.4.2 1.34.1 + 1.14 @@ -2029,6 +2030,16 @@ google-oauth-client ${google-oauth-client.version} + + org.apache.xmlgraphics + batik-transcoder + ${apache-xmlgraphics.version} + + + org.apache.xmlgraphics + batik-codec + ${apache-xmlgraphics.version} + diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index b9a73a416c..61d413f60e 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -61,8 +61,6 @@ export interface ResourceInfo extends Omit, 'name' | 'lab title?: string; resourceType: ResourceType; fileName: string; - mediaType: string; - link: string; } export interface Resource extends ResourceInfo { From 4f22ef9733a38d486b525e7d08c08a978a8bd931 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 14 Nov 2023 17:36:51 +0200 Subject: [PATCH 036/162] created PubSubExecutor to use each time publisher is created and do not produce too much threads created --- .../server/actors/ActorSystemContext.java | 5 ++++ .../actors/ruleChain/DefaultTbContext.java | 6 +++++ .../executors/PubSubExecutorService.java | 26 +++++++++++++++++++ .../pubsub/TbPubSubProducerTemplate.java | 13 +++++++++- common/util/pom.xml | 4 +++ .../common/util/PubSubExecutor.java | 7 +++++ .../rule/engine/api/TbContext.java | 3 +++ .../rule/engine/gcp/pubsub/TbPubSubNode.java | 6 +++-- 8 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java create mode 100644 common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java diff --git a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java index 3d4340f6c9..b9f539c877 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java @@ -29,6 +29,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.service.executors.PubSubExecutorService; import org.thingsboard.rule.engine.api.MailService; import org.thingsboard.rule.engine.api.NotificationCenter; import org.thingsboard.rule.engine.api.SmsService; @@ -322,6 +323,10 @@ public class ActorSystemContext { @Getter private NotificationExecutorService notificationExecutor; + @Autowired + @Getter + private PubSubExecutorService pubSubExecutorService; + @Autowired @Getter private SharedEventLoopGroupService sharedEventLoopGroupService; diff --git a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java index ca1d174322..299b6274b0 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java @@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.bouncycastle.util.Arrays; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ListeningExecutor; +import org.thingsboard.server.service.executors.PubSubExecutorService; import org.thingsboard.rule.engine.api.MailService; import org.thingsboard.rule.engine.api.NotificationCenter; import org.thingsboard.rule.engine.api.RuleEngineAlarmService; @@ -538,6 +539,11 @@ class DefaultTbContext implements TbContext { return mainCtx.getNotificationExecutor(); } + @Override + public PubSubExecutorService getPubsubExecutor() { + return mainCtx.getPubSubExecutorService(); + } + @Override @Deprecated public ScriptEngine createJsScriptEngine(String script, String... argNames) { diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java new file mode 100644 index 0000000000..22d55cc673 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java @@ -0,0 +1,26 @@ +package org.thingsboard.server.service.executors; + +import com.google.api.gax.core.FixedExecutorProvider; +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.PubSubExecutor; +import org.thingsboard.common.util.ThingsBoardThreadFactory; + +import javax.annotation.PostConstruct; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +@Component +public class PubSubExecutorService implements PubSubExecutor { + private static final int THREADS_PER_CPU = 5; + private FixedExecutorProvider fixedExecutorProvider; + + @PostConstruct + public void init() { + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("tb-pubsub-producer-scheduler"));; + this.fixedExecutorProvider = FixedExecutorProvider.create(scheduler); + } + + public FixedExecutorProvider getExecutorProvider() { + return fixedExecutorProvider; + } +} diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java index 0d84a8f839..46c6bb6413 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java @@ -18,12 +18,14 @@ package org.thingsboard.server.queue.pubsub; import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; +import com.google.api.gax.core.FixedExecutorProvider; import com.google.cloud.pubsub.v1.Publisher; import com.google.gson.Gson; import com.google.protobuf.ByteString; import com.google.pubsub.v1.ProjectTopicName; import com.google.pubsub.v1.PubsubMessage; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; import org.thingsboard.server.queue.TbQueueAdmin; import org.thingsboard.server.queue.TbQueueCallback; @@ -36,6 +38,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @Slf4j @@ -50,11 +53,16 @@ public class TbPubSubProducerTemplate implements TbQueuePr private final Map publisherMap = new ConcurrentHashMap<>(); private final ExecutorService pubExecutor = Executors.newCachedThreadPool(); + private static final int THREADS_PER_CPU = 5; + private final FixedExecutorProvider fixedExecutorProvider; public TbPubSubProducerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String defaultTopic) { this.defaultTopic = defaultTopic; this.admin = admin; this.pubSubSettings = pubSubSettings; + + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("tb-pubsub-producer-scheduler"));; + fixedExecutorProvider = FixedExecutorProvider.create(scheduler); } @Override @@ -120,7 +128,10 @@ public class TbPubSubProducerTemplate implements TbQueuePr try { admin.createTopicIfNotExists(topic); ProjectTopicName topicName = ProjectTopicName.of(pubSubSettings.getProjectId(), topic); - Publisher publisher = Publisher.newBuilder(topicName).setCredentialsProvider(pubSubSettings.getCredentialsProvider()).build(); + Publisher publisher = Publisher.newBuilder(topicName) + .setCredentialsProvider(pubSubSettings.getCredentialsProvider()) + .setExecutorProvider(fixedExecutorProvider) + .build(); publisherMap.put(topic, publisher); return publisher; } catch (IOException e) { diff --git a/common/util/pom.xml b/common/util/pom.xml index eab8ae982b..c2f5dfea6c 100644 --- a/common/util/pom.xml +++ b/common/util/pom.xml @@ -53,6 +53,10 @@ guava provided + + com.google.cloud + google-cloud-pubsub + javax.annotation javax.annotation-api diff --git a/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java b/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java new file mode 100644 index 0000000000..5354102578 --- /dev/null +++ b/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java @@ -0,0 +1,7 @@ +package org.thingsboard.common.util; + +import com.google.api.gax.core.FixedExecutorProvider; + +public interface PubSubExecutor { + FixedExecutorProvider getExecutorProvider(); +} diff --git a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java index e645110a9d..cd71626afd 100644 --- a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java +++ b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java @@ -17,6 +17,7 @@ package org.thingsboard.rule.engine.api; import io.netty.channel.EventLoopGroup; import org.thingsboard.common.util.ListeningExecutor; +import org.thingsboard.common.util.PubSubExecutor; import org.thingsboard.rule.engine.api.slack.SlackService; import org.thingsboard.rule.engine.api.sms.SmsSenderFactory; import org.thingsboard.server.cluster.TbClusterService; @@ -318,6 +319,8 @@ public interface TbContext { ListeningExecutor getNotificationExecutor(); + PubSubExecutor getPubsubExecutor(); + MailService getMailService(boolean isSystem); SmsService getSmsService(); diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java index c55113783c..4c24bdf1cb 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java @@ -20,6 +20,7 @@ import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.api.gax.core.FixedExecutorProvider; import com.google.api.gax.retrying.RetrySettings; import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.pubsub.v1.Publisher; @@ -68,7 +69,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { super.init(ctx); this.config = TbNodeUtils.convert(configuration, TbPubSubNodeConfiguration.class); try { - this.pubSubClient = initPubSubClient(); + this.pubSubClient = initPubSubClient(ctx.getPubsubExecutor().getExecutorProvider()); } catch (Exception e) { throw new TbNodeException(e); } @@ -128,7 +129,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { return TbMsg.transformMsgMetadata(origMsg, metaData); } - private Publisher initPubSubClient() throws IOException { + private Publisher initPubSubClient(FixedExecutorProvider fixedExecutorProvider) throws IOException { ProjectTopicName topicName = ProjectTopicName.of(config.getProjectId(), config.getTopicName()); ServiceAccountCredentials credentials = ServiceAccountCredentials.fromStream( @@ -148,6 +149,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { return Publisher.newBuilder(topicName) .setCredentialsProvider(credProvider) .setRetrySettings(retrySettings) + .setExecutorProvider(fixedExecutorProvider) .build(); } } From 6d0d1c02111509ce0283bd2931b487f066e2ba3e Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Tue, 14 Nov 2023 19:34:54 +0200 Subject: [PATCH 037/162] validate node only after upgrade is called --- .../server/dao/rule/BaseRuleChainService.java | 3 ++- .../dao/service/validator/RuleChainDataValidator.java | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java index 956e4b83f6..6257bb0420 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java @@ -155,7 +155,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC if (ruleChain == null) { return RuleChainUpdateResult.failed(); } - RuleChainDataValidator.validateMetaData(ruleChainMetaData); + RuleChainDataValidator.validateMetaDataFieldsAndConnections(ruleChainMetaData); List nodes = ruleChainMetaData.getNodes(); List toAddOrUpdate = new ArrayList<>(); @@ -194,6 +194,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC for (RuleNode node : toAddOrUpdate) { node.setRuleChainId(ruleChainId); node = ruleNodeUpdater.apply(node); + RuleChainDataValidator.validateRuleNode(node); RuleNode savedNode = ruleNodeDao.save(tenantId, node); relations.add(new EntityRelation(ruleChainMetaData.getRuleChainId(), savedNode.getId(), EntityRelation.CONTAINS_TYPE, RelationTypeGroup.RULE_CHAIN)); diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/RuleChainDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/RuleChainDataValidator.java index 43878adc93..76dad19bcd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/RuleChainDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/RuleChainDataValidator.java @@ -87,15 +87,18 @@ public class RuleChainDataValidator extends DataValidator { } public static List validateMetaData(RuleChainMetaData ruleChainMetaData) { - ConstraintValidator.validateFields(ruleChainMetaData); - List throwables = ruleChainMetaData.getNodes().stream() + validateMetaDataFieldsAndConnections(ruleChainMetaData); + return ruleChainMetaData.getNodes().stream() .map(RuleChainDataValidator::validateRuleNode) .filter(Objects::nonNull) .collect(Collectors.toList()); + } + + public static void validateMetaDataFieldsAndConnections(RuleChainMetaData ruleChainMetaData) { + ConstraintValidator.validateFields(ruleChainMetaData); if (CollectionUtils.isNotEmpty(ruleChainMetaData.getConnections())) { validateCircles(ruleChainMetaData.getConnections()); } - return throwables; } public static Throwable validateRuleNode(RuleNode ruleNode) { From deaf06970a59f1083af2b7eb214b2ac8de9cdf52 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Wed, 15 Nov 2023 07:56:06 +0200 Subject: [PATCH 038/162] Adapted tests to match new amount of dashboards for tenant --- .../controller/DashboardControllerTest.java | 21 +++++++++++++------ .../server/controller/HomePageApiTest.java | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/DashboardControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DashboardControllerTest.java index 6f0d6f9465..fb8064d6d5 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DashboardControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DashboardControllerTest.java @@ -327,7 +327,18 @@ public class DashboardControllerTest extends AbstractControllerTest { @Test public void testFindTenantDashboards() throws Exception { - List dashboards = new ArrayList<>(); + List expectedDashboards = new ArrayList<>(); + PageLink pageLink = new PageLink(24); + PageData pageData = null; + do { + pageData = doGetTypedWithPageLink("/api/tenant/dashboards?", + new TypeReference>() { + }, pageLink); + expectedDashboards.addAll(pageData.getData()); + if (pageData.hasNext()) { + pageLink = pageLink.nextPageLink(); + } + } while (pageData.hasNext()); Mockito.reset(tbClusterService, auditLogService); @@ -335,7 +346,7 @@ public class DashboardControllerTest extends AbstractControllerTest { for (int i = 0; i < cntEntity; i++) { Dashboard dashboard = new Dashboard(); dashboard.setTitle("Dashboard" + i); - dashboards.add(new DashboardInfo(doPost("/api/dashboard", dashboard, Dashboard.class))); + expectedDashboards.add(new DashboardInfo(doPost("/api/dashboard", dashboard, Dashboard.class))); } testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new Dashboard(), new Dashboard(), @@ -343,8 +354,6 @@ public class DashboardControllerTest extends AbstractControllerTest { ActionType.ADDED, cntEntity, cntEntity, cntEntity); List loadedDashboards = new ArrayList<>(); - PageLink pageLink = new PageLink(24); - PageData pageData = null; do { pageData = doGetTypedWithPageLink("/api/tenant/dashboards?", new TypeReference>() { @@ -355,10 +364,10 @@ public class DashboardControllerTest extends AbstractControllerTest { } } while (pageData.hasNext()); - dashboards.sort(idComparator); + expectedDashboards.sort(idComparator); loadedDashboards.sort(idComparator); - Assert.assertEquals(dashboards, loadedDashboards); + Assert.assertEquals(expectedDashboards, loadedDashboards); } @Test diff --git a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java index d020fef1cb..c498b73815 100644 --- a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java @@ -408,7 +408,7 @@ public class HomePageApiTest extends AbstractControllerTest { Assert.assertEquals(2, usageInfo.getUsers()); Assert.assertEquals(configuration.getMaxUsers(), usageInfo.getMaxUsers()); - Assert.assertEquals(0, usageInfo.getDashboards()); + Assert.assertEquals(1, usageInfo.getDashboards()); Assert.assertEquals(configuration.getMaxDashboards(), usageInfo.getMaxDashboards()); Assert.assertEquals(0, usageInfo.getTransportMessages()); From c82e3d4791223901dbbf86182f7ea4bd0854e164 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Mon, 11 Sep 2023 19:30:58 +0300 Subject: [PATCH 039/162] Added support for NON CoAP messages --- .../server/transport/coap/CoapTestClient.java | 32 +- .../client/CoapClientIntegrationTest.java | 314 ++++++++++++++++++ .../callback/AbstractSyncSessionCallback.java | 1 + .../coap/callback/CoapOkCallback.java | 4 +- 4 files changed, 346 insertions(+), 5 deletions(-) create mode 100644 application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java diff --git a/application/src/test/java/org/thingsboard/server/transport/coap/CoapTestClient.java b/application/src/test/java/org/thingsboard/server/transport/coap/CoapTestClient.java index 6c5f682a4f..3124571dc8 100644 --- a/application/src/test/java/org/thingsboard/server/transport/coap/CoapTestClient.java +++ b/application/src/test/java/org/thingsboard/server/transport/coap/CoapTestClient.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.transport.coap; +import lombok.Getter; import org.eclipse.californium.core.CoapClient; import org.eclipse.californium.core.CoapHandler; import org.eclipse.californium.core.CoapObserveRelation; @@ -34,7 +35,10 @@ public class CoapTestClient { private final CoapClient client; - public CoapTestClient(){ + @Getter + private CoAP.Type type = CoAP.Type.CON; + + public CoapTestClient() { this.client = createClient(); } @@ -80,9 +84,13 @@ public class CoapTestClient { return client.setTimeout(CLIENT_REQUEST_TIMEOUT).get(); } - public CoapObserveRelation getObserveRelation(CoapTestCallback callback){ + public CoapObserveRelation getObserveRelation(CoapTestCallback callback) { + return getObserveRelation(callback, true); + } + + public CoapObserveRelation getObserveRelation(CoapTestCallback callback, boolean confirmable) { Request request = Request.newGet().setObserve(); - request.setType(CoAP.Type.CON); + request.setType(confirmable ? CoAP.Type.CON : CoAP.Type.NON); return client.observe(request, callback); } @@ -94,12 +102,28 @@ public class CoapTestClient { } public void setURI(String accessToken, FeatureType featureType) { - if (featureType == null){ + if (featureType == null) { featureType = FeatureType.ATTRIBUTES; } setURI(getFeatureTokenUrl(accessToken, featureType)); } + public void useCONs() { + if (client == null) { + throw new RuntimeException("Failed to connect! CoapClient is not initialized!"); + } + type = CoAP.Type.CON; + client.useCONs(); + } + + public void useNONs() { + if (client == null) { + throw new RuntimeException("Failed to connect! CoapClient is not initialized!"); + } + type = CoAP.Type.NON; + client.useNONs(); + } + private CoapClient createClient() { return new CoapClient(); } diff --git a/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java new file mode 100644 index 0000000000..3760935d41 --- /dev/null +++ b/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java @@ -0,0 +1,314 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.transport.coap.client; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.californium.core.CoapHandler; +import org.eclipse.californium.core.CoapObserveRelation; +import org.eclipse.californium.core.CoapResponse; +import org.eclipse.californium.core.coap.CoAP; +import org.eclipse.californium.core.coap.MediaTypeRegistry; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.query.EntityKey; +import org.thingsboard.server.common.data.query.EntityKeyType; +import org.thingsboard.server.common.data.query.SingleEntityFilter; +import org.thingsboard.server.common.msg.session.FeatureType; +import org.thingsboard.server.dao.service.DaoSqlTest; +import org.thingsboard.server.transport.coap.AbstractCoapIntegrationTest; +import org.thingsboard.server.transport.coap.CoapTestCallback; +import org.thingsboard.server.transport.coap.CoapTestClient; +import org.thingsboard.server.transport.coap.CoapTestConfigProperties; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.thingsboard.server.common.data.query.EntityKeyType.CLIENT_ATTRIBUTE; +import static org.thingsboard.server.common.data.query.EntityKeyType.SHARED_ATTRIBUTE; + +@Slf4j +@DaoSqlTest +public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { + + private static final String PAYLOAD_VALUES_STR = "{\"key1\":\"value1\", \"key2\":true, \"key3\": 3.0, \"key4\": 4," + + " \"key5\": {\"someNumber\": 42, \"someArray\": [1,2,3], \"someNestedObject\": {\"key\": \"value\"}}}"; + private static final List EXPECTED_KEYS = Arrays.asList("key1", "key2", "key3", "key4", "key5"); + private static final String DEVICE_RESPONSE = "{\"value1\":\"A\",\"value2\":\"B\"}"; + + + @Before + public void beforeTest() throws Exception { + CoapTestConfigProperties configProperties = CoapTestConfigProperties.builder() + .deviceName("Test Post Attributes device") + .build(); + processBeforeTest(configProperties); + } + + @After + public void afterTest() throws Exception { + processAfterTest(); + } + + @Test + public void testConfirmableRequests() throws Exception { + boolean confirmable = true; + processAttributesTest(confirmable); + processTwoWayRpcTest(confirmable); + processTestRequestAttributesValuesFromTheServer(confirmable); + } + + @Test + public void testNonConfirmableRequests() throws Exception { + boolean confirmable = false; + processAttributesTest(confirmable); + processTwoWayRpcTest(confirmable); + processTestRequestAttributesValuesFromTheServer(confirmable); + } + + protected void processAttributesTest(boolean confirmable) throws Exception { + client = createClientForFeatureWithConfirmableParameter(FeatureType.ATTRIBUTES, confirmable); + CoapResponse coapResponse = client.postMethod(PAYLOAD_VALUES_STR.getBytes()); + assertEquals(CoAP.ResponseCode.CREATED, coapResponse.getCode()); + validateConfirmableFlag(client, coapResponse); + + DeviceId deviceId = savedDevice.getId(); + List actualKeys = getActualKeysList(deviceId); + assertNotNull(actualKeys); + + Set actualKeySet = new HashSet<>(actualKeys); + Set expectedKeySet = new HashSet<>(EXPECTED_KEYS); + assertEquals(expectedKeySet, actualKeySet); + + String attributesValuesUrl = "/api/plugins/telemetry/DEVICE/" + deviceId + "/values/attributes/CLIENT_SCOPE?keys=" + String.join(",", actualKeySet); + ; + List> values = doGetAsyncTyped(attributesValuesUrl, new TypeReference<>() { + }); + assertAttributesValues(values, actualKeySet); + String deleteAttributesUrl = "/api/plugins/telemetry/DEVICE/" + deviceId + "/CLIENT_SCOPE?keys=" + String.join(",", actualKeySet); + doDelete(deleteAttributesUrl); + } + + protected void processTwoWayRpcTest(boolean confirmable) throws Exception { + client = createClientForFeatureWithConfirmableParameter(FeatureType.RPC, confirmable); + CoapTestCallback callbackCoap = new TestCoapCallbackForRPC(client); + + CoapObserveRelation observeRelation = client.getObserveRelation(callbackCoap, confirmable); + String awaitAlias = "await Two Way Rpc (client.getObserveRelation)"; + await(awaitAlias) + .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS) + .until(() -> CoAP.ResponseCode.VALID.equals(callbackCoap.getResponseCode()) && + callbackCoap.getObserve() != null && + 0 == callbackCoap.getObserve()); + validateCurrentStateNotification(callbackCoap); + + String setGpioRequest = "{\"method\":\"setGpio\",\"params\":{\"pin\": \"26\",\"value\": 1}}"; + String deviceId = savedDevice.getId().getId().toString(); + int expectedObserveCountAfterGpioRequest1 = callbackCoap.getObserve() + 1; + String actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk()); + awaitAlias = "await Two Way Rpc (setGpio(method, params, value) first"; + await(awaitAlias) + .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS) + .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) && + callbackCoap.getObserve() != null && + expectedObserveCountAfterGpioRequest1 == callbackCoap.getObserve()); + validateTwoWayStateChangedNotification(callbackCoap, actualResult); + + int expectedObserveCountAfterGpioRequest2 = callbackCoap.getObserve() + 1; + actualResult = doPostAsync("/api/rpc/twoway/" + deviceId, setGpioRequest, String.class, status().isOk()); + awaitAlias = "await Two Way Rpc (setGpio(method, params, value) second"; + await(awaitAlias) + .atMost(DEFAULT_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS) + .until(() -> CoAP.ResponseCode.CONTENT.equals(callbackCoap.getResponseCode()) && + callbackCoap.getObserve() != null && + expectedObserveCountAfterGpioRequest2 == callbackCoap.getObserve()); + + validateTwoWayStateChangedNotification(callbackCoap, actualResult); + + observeRelation.proactiveCancel(); + assertTrue(observeRelation.isCanceled()); + } + + protected void processTestRequestAttributesValuesFromTheServer(boolean confirmable) throws Exception { + client = createClientForFeatureWithConfirmableParameter(FeatureType.ATTRIBUTES, confirmable); + SingleEntityFilter dtf = new SingleEntityFilter(); + dtf.setSingleEntity(savedDevice.getId()); + List csKeys = getEntityKeys(CLIENT_ATTRIBUTE); + List shKeys = getEntityKeys(SHARED_ATTRIBUTE); + List keys = new ArrayList<>(); + keys.addAll(csKeys); + keys.addAll(shKeys); + getWsClient().subscribeLatestUpdate(keys, dtf); + getWsClient().registerWaitForUpdate(2); + + doPostAsync("/api/plugins/telemetry/DEVICE/" + savedDevice.getId().getId() + "/attributes/SHARED_SCOPE", + PAYLOAD_VALUES_STR, String.class, status().isOk()); + + CoapResponse coapResponse = client.postMethod(PAYLOAD_VALUES_STR); + assertEquals(CoAP.ResponseCode.CREATED, coapResponse.getCode()); + + String update = getWsClient().waitForUpdate(); + assertThat(update).as("ws update received").isNotBlank(); + + String keysParam = String.join(",", EXPECTED_KEYS); + String featureTokenUrl = CoapTestClient.getFeatureTokenUrl(accessToken, FeatureType.ATTRIBUTES) + "?clientKeys=" + keysParam + "&sharedKeys=" + keysParam; + client.setURI(featureTokenUrl); + CoapResponse response = client.getMethod(); + validateConfirmableFlag(client, response); + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + protected void assertAttributesValues(List> deviceValues, Set keySet) { + for (Map map : deviceValues) { + String key = (String) map.get("key"); + Object value = map.get("value"); + assertTrue(keySet.contains(key)); + switch (key) { + case "key1": + assertEquals("value1", value); + break; + case "key2": + assertEquals(true, value); + break; + case "key3": + assertEquals(3.0, value); + break; + case "key4": + assertEquals(4, value); + break; + case "key5": + assertNotNull(value); + assertEquals(3, ((LinkedHashMap) value).size()); + assertEquals(42, ((LinkedHashMap) value).get("someNumber")); + assertEquals(Arrays.asList(1, 2, 3), ((LinkedHashMap) value).get("someArray")); + LinkedHashMap someNestedObject = (LinkedHashMap) ((LinkedHashMap) value).get("someNestedObject"); + assertEquals("value", someNestedObject.get("key")); + break; + } + } + } + + private List getActualKeysList(DeviceId deviceId) throws Exception { + long start = System.currentTimeMillis(); + long end = System.currentTimeMillis() + 5000; + + List actualKeys = null; + while (start <= end) { + actualKeys = doGetAsyncTyped("/api/plugins/telemetry/DEVICE/" + deviceId + "/keys/attributes/CLIENT_SCOPE", new TypeReference<>() { + }); + if (actualKeys.size() == EXPECTED_KEYS.size()) { + break; + } + Thread.sleep(100); + start += 100; + } + return actualKeys; + } + + private void validateCurrentStateNotification(CoapTestCallback callback) { + assertArrayEquals(EMPTY_PAYLOAD, callback.getPayloadBytes()); + } + + private void validateConfirmableFlag(CoapTestClient client, CoapResponse response) { + CoAP.Type responseType = response.advanced().getType(); + if (CoAP.Type.CON.equals(responseType) || CoAP.Type.NON.equals(responseType)) { + assertEquals(client.getType(), responseType); + } + } + + private void validateTwoWayStateChangedNotification(CoapTestCallback callback, String actualResult) { + assertEquals(DEVICE_RESPONSE, actualResult); + assertNotNull(callback.getPayloadBytes()); + } + + protected class TestCoapCallbackForRPC extends CoapTestCallback { + + private final CoapTestClient client; + + TestCoapCallbackForRPC(CoapTestClient client) { + this.client = client; + } + + @Override + public void onLoad(CoapResponse response) { + payloadBytes = response.getPayload(); + responseCode = response.getCode(); + observe = response.getOptions().getObserve(); + validateConfirmableFlag(client, response); + if (observe != null) { + if (observe > 0) { + processOnLoadResponse(response, client); + } + } + } + + @Override + public void onError() { + log.warn("Command Response Ack Error, No connect"); + } + } + + protected void processOnLoadResponse(CoapResponse response, CoapTestClient client) { + validateConfirmableFlag(client, response); + JsonNode responseJson = JacksonUtil.fromBytes(response.getPayload()); + int requestId = responseJson.get("id").asInt(); + client.setURI(CoapTestClient.getFeatureTokenUrl(accessToken, FeatureType.RPC, requestId)); + client.postMethod(new CoapHandler() { + @Override + public void onLoad(CoapResponse response) { + validateConfirmableFlag(client, response); + log.warn("RPC {} command response ack: {}", requestId, response.getCode()); + } + + @Override + public void onError() { + log.warn("RPC {} command response ack error, no connect", requestId); + } + }, DEVICE_RESPONSE, MediaTypeRegistry.APPLICATION_JSON); + } + + private CoapTestClient createClientForFeatureWithConfirmableParameter(FeatureType featureType, boolean confirmable) { + CoapTestClient coapTestClient = new CoapTestClient(accessToken, featureType); + if (confirmable) { + coapTestClient.useCONs(); + } else { + coapTestClient.useNONs(); + } + return coapTestClient; + } + + private List getEntityKeys(EntityKeyType scope) { + return CoapClientIntegrationTest.EXPECTED_KEYS.stream().map(key -> new EntityKey(scope, key)).collect(Collectors.toList()); + } +} diff --git a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java index 6dc5cccf38..ca46d989e4 100644 --- a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java +++ b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/AbstractSyncSessionCallback.java @@ -81,6 +81,7 @@ public abstract class AbstractSyncSessionCallback implements SessionMsgListener protected void respond(Response response) { response.getOptions().setContentFormat(TbCoapContentFormatUtil.getContentFormat(exchange.getRequestOptions().getContentFormat(), state.getContentFormat())); + response.setConfirmable(exchange.advanced().getRequest().isConfirmable()); exchange.respond(response); } diff --git a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/CoapOkCallback.java b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/CoapOkCallback.java index db843a0ea3..04ce043331 100644 --- a/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/CoapOkCallback.java +++ b/common/transport/coap/src/main/java/org/thingsboard/server/transport/coap/callback/CoapOkCallback.java @@ -34,7 +34,9 @@ public class CoapOkCallback implements TransportServiceCallback { @Override public void onSuccess(Void msg) { - exchange.respond(new Response(onSuccessResponse)); + Response response = new Response(onSuccessResponse); + response.setConfirmable(isConRequest()); + exchange.respond(response); } @Override From c0cde53c52a3688eb7619670c13bfab9c179b05c Mon Sep 17 00:00:00 2001 From: imbeacon Date: Thu, 14 Sep 2023 09:40:58 +0300 Subject: [PATCH 040/162] Removed unneccesary check, refactoring and added assertion check for validation in callback --- .../client/CoapClientIntegrationTest.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java index 3760935d41..e50812403b 100644 --- a/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/coap/client/CoapClientIntegrationTest.java @@ -17,6 +17,7 @@ package org.thingsboard.server.transport.coap.client; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.eclipse.californium.core.CoapHandler; import org.eclipse.californium.core.CoapObserveRelation; @@ -101,7 +102,7 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { client = createClientForFeatureWithConfirmableParameter(FeatureType.ATTRIBUTES, confirmable); CoapResponse coapResponse = client.postMethod(PAYLOAD_VALUES_STR.getBytes()); assertEquals(CoAP.ResponseCode.CREATED, coapResponse.getCode()); - validateConfirmableFlag(client, coapResponse); + assertEquals("CoAP response type is wrong!", client.getType(), coapResponse.advanced().getType()); DeviceId deviceId = savedDevice.getId(); List actualKeys = getActualKeysList(deviceId); @@ -185,7 +186,7 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { String featureTokenUrl = CoapTestClient.getFeatureTokenUrl(accessToken, FeatureType.ATTRIBUTES) + "?clientKeys=" + keysParam + "&sharedKeys=" + keysParam; client.setURI(featureTokenUrl); CoapResponse response = client.getMethod(); - validateConfirmableFlag(client, response); + assertEquals("CoAP response type is wrong!", client.getType(), response.advanced().getType()); } @SuppressWarnings({"unchecked", "rawtypes"}) @@ -240,13 +241,6 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { assertArrayEquals(EMPTY_PAYLOAD, callback.getPayloadBytes()); } - private void validateConfirmableFlag(CoapTestClient client, CoapResponse response) { - CoAP.Type responseType = response.advanced().getType(); - if (CoAP.Type.CON.equals(responseType) || CoAP.Type.NON.equals(responseType)) { - assertEquals(client.getType(), responseType); - } - } - private void validateTwoWayStateChangedNotification(CoapTestCallback callback, String actualResult) { assertEquals(DEVICE_RESPONSE, actualResult); assertNotNull(callback.getPayloadBytes()); @@ -256,6 +250,9 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { private final CoapTestClient client; + @Getter + private boolean wasSuccessful = false; + TestCoapCallbackForRPC(CoapTestClient client) { this.client = client; } @@ -265,7 +262,7 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { payloadBytes = response.getPayload(); responseCode = response.getCode(); observe = response.getOptions().getObserve(); - validateConfirmableFlag(client, response); + wasSuccessful = client.getType().equals(response.advanced().getType()); if (observe != null) { if (observe > 0) { processOnLoadResponse(response, client); @@ -280,14 +277,12 @@ public class CoapClientIntegrationTest extends AbstractCoapIntegrationTest { } protected void processOnLoadResponse(CoapResponse response, CoapTestClient client) { - validateConfirmableFlag(client, response); JsonNode responseJson = JacksonUtil.fromBytes(response.getPayload()); int requestId = responseJson.get("id").asInt(); client.setURI(CoapTestClient.getFeatureTokenUrl(accessToken, FeatureType.RPC, requestId)); client.postMethod(new CoapHandler() { @Override public void onLoad(CoapResponse response) { - validateConfirmableFlag(client, response); log.warn("RPC {} command response ack: {}", requestId, response.getCode()); } From 2b9eab01508dc1e6da810c6a062b0ac7b2f47986 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 15 Nov 2023 13:03:40 +0200 Subject: [PATCH 041/162] Minor refactoring --- .../org/thingsboard/server/controller/ImageController.java | 4 ++-- .../server/service/install/update/SystemImagesMigrator.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 756c198a72..159cd1eb0c 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -139,7 +139,7 @@ public class ImageController extends BaseController { return downloadIfChanged(etag, imageInfo, descriptor.getPreviewDescriptor(), () -> imageService.getImagePreview(tenantId, imageInfo.getId())); } - @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @GetMapping(IMAGE_URL + "/info") public TbResourceInfo getImageInfo(@PathVariable String type, @PathVariable String key) throws ThingsboardException { @@ -147,7 +147,7 @@ public class ImageController extends BaseController { } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") - @GetMapping("/images") + @GetMapping("/api/images") public PageData getImages(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) @RequestParam int pageSize, @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java index 41e912a173..5fa176a58a 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java @@ -189,7 +189,7 @@ public class SystemImagesMigrator { // TEMPORARY return data; } String imageMediaType = StringUtils.substringBetween(data, "data:", ";base64"); - String extension = MediaTypeUtils.mediaTypeToFileExtension(imageMediaType); + String extension = ImageUtils.mediaTypeToFileExtension(imageMediaType); imageKey += "." + extension; byte[] image = Base64.getDecoder().decode(base64Data); From 5f10163dce6405e4a32e50dae0d676e406bcded7 Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Tue, 14 Nov 2023 13:01:19 +0200 Subject: [PATCH 042/162] fixed copy string values from msg to md in TbCopyKeysNode --- .../rule/engine/transform/TbCopyKeysNode.java | 4 +++- .../rule/engine/transform/TbCopyKeysNodeTest.java | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java index 8d9a7102d0..f413be43c1 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/transform/TbCopyKeysNode.java @@ -89,7 +89,9 @@ public class TbCopyKeysNode implements TbNode { String keyData = entry.getKey(); if (checkKey(keyData)) { msgChanged = true; - metaData.putValue(keyData, JacksonUtil.toString(entry.getValue())); + String value = entry.getValue().isTextual() ? + entry.getValue().asText() : JacksonUtil.toString(entry.getValue()); + metaData.putValue(keyData, value); } } } diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/transform/TbCopyKeysNodeTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/transform/TbCopyKeysNodeTest.java index e0ab34e35b..0fb9589e90 100644 --- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/transform/TbCopyKeysNodeTest.java +++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/transform/TbCopyKeysNodeTest.java @@ -96,10 +96,12 @@ public class TbCopyKeysNodeTest { @Test void givenMsgFromMsg_whenOnMsg_thenVerifyOutput() throws Exception { config.setFromMetadata(false); + config.setKeys(Set.of(".*Key$")); nodeConfiguration = new TbNodeConfiguration(JacksonUtil.valueToTree(config)); node.init(ctx, nodeConfiguration); - String data = "{\"DigitData\":22.5,\"TempDataValue\":10.5}"; + String data = "{\"nullKey\":null,\"stringKey\":\"value1\",\"booleanKey\":true,\"doubleKey\":42.0,\"longKey\":73," + + "\"jsonKey\":{\"someNumber\":42,\"someArray\":[1,2,3],\"someNestedObject\":{\"key\":\"value\"}}}"; node.onMsg(ctx, getTbMsg(deviceId, data)); ArgumentCaptor newMsgCaptor = ArgumentCaptor.forClass(TbMsg.class); @@ -110,8 +112,13 @@ public class TbCopyKeysNodeTest { assertThat(newMsg).isNotNull(); Map metaDataMap = newMsg.getMetaData().getData(); - assertThat(metaDataMap.containsKey("DigitData")).isEqualTo(true); - assertThat(metaDataMap.containsKey("TempDataValue")).isEqualTo(true); + assertThat(metaDataMap.get("nullKey")).isEqualTo("null"); + assertThat(metaDataMap.get("stringKey")).isEqualTo("value1"); + assertThat(metaDataMap.get("booleanKey")).isEqualTo("true"); + assertThat(metaDataMap.get("doubleKey")).isEqualTo("42.0"); + assertThat(metaDataMap.get("longKey")).isEqualTo("73"); + assertThat(metaDataMap.get("jsonKey")) + .isEqualTo("{\"someNumber\":42,\"someArray\":[1,2,3],\"someNestedObject\":{\"key\":\"value\"}}"); } @Test From 08727b4c368b676c0b62e2dd136ef83fec14381f Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 15 Nov 2023 14:51:58 +0200 Subject: [PATCH 043/162] added executor provider for pubsub queue, added env variable to manage pubsub queue executor provider thread pool --- .../server/actors/ActorSystemContext.java | 4 +- .../actors/ruleChain/DefaultTbContext.java | 6 +-- .../executors/PubSubExecutorService.java | 26 ---------- .../PubSubRuleNodeExecutorProvider.java | 29 +++++++++++ .../src/main/resources/thingsboard.yml | 8 +-- .../provider/PubSubMonolithQueueFactory.java | 50 +++++++++++-------- .../provider/PubSubTbCoreQueueFactory.java | 38 ++++++++------ .../PubSubTbRuleEngineQueueFactory.java | 28 ++++++----- .../PubSubTbVersionControlQueueFactory.java | 13 +++-- .../provider/PubSubTransportQueueFactory.java | 20 +++++--- .../pubsub/TbPubSubConsumerTemplate.java | 4 +- .../pubsub/TbPubSubProducerTemplate.java | 7 ++- .../pubsub/TbPubSubQueueExecutorProvider.java | 37 ++++++++++++++ common/util/pom.xml | 4 -- .../common/util/ExecutorProvider.java | 8 +++ .../common/util/PubSubExecutor.java | 7 --- .../src/main/resources/tb-vc-executor.yml | 2 + .../rule/engine/api/TbContext.java | 4 +- .../rule/engine/gcp/pubsub/TbPubSubNode.java | 2 +- .../src/main/resources/tb-coap-transport.yml | 2 + .../src/main/resources/tb-http-transport.yml | 2 + .../src/main/resources/tb-lwm2m-transport.yml | 2 + .../src/main/resources/tb-mqtt-transport.yml | 2 + .../src/main/resources/tb-snmp-transport.yml | 2 + 24 files changed, 194 insertions(+), 113 deletions(-) delete mode 100644 application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java create mode 100644 application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java create mode 100644 common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java create mode 100644 common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java delete mode 100644 common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java diff --git a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java index b9f539c877..24a240661f 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java @@ -29,7 +29,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.service.executors.PubSubExecutorService; +import org.thingsboard.server.service.executors.PubSubRuleNodeExecutorProvider; import org.thingsboard.rule.engine.api.MailService; import org.thingsboard.rule.engine.api.NotificationCenter; import org.thingsboard.rule.engine.api.SmsService; @@ -325,7 +325,7 @@ public class ActorSystemContext { @Autowired @Getter - private PubSubExecutorService pubSubExecutorService; + private PubSubRuleNodeExecutorProvider pubSubRuleNodeExecutorProvider; @Autowired @Getter diff --git a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java index 299b6274b0..28963b383a 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java @@ -22,7 +22,6 @@ import lombok.extern.slf4j.Slf4j; import org.bouncycastle.util.Arrays; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ListeningExecutor; -import org.thingsboard.server.service.executors.PubSubExecutorService; import org.thingsboard.rule.engine.api.MailService; import org.thingsboard.rule.engine.api.NotificationCenter; import org.thingsboard.rule.engine.api.RuleEngineAlarmService; @@ -105,6 +104,7 @@ import org.thingsboard.server.dao.widget.WidgetsBundleService; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.TbQueueCallback; import org.thingsboard.server.queue.TbQueueMsgMetadata; +import org.thingsboard.server.service.executors.PubSubRuleNodeExecutorProvider; import org.thingsboard.server.service.script.RuleNodeJsScriptEngine; import org.thingsboard.server.service.script.RuleNodeTbelScriptEngine; @@ -540,8 +540,8 @@ class DefaultTbContext implements TbContext { } @Override - public PubSubExecutorService getPubsubExecutor() { - return mainCtx.getPubSubExecutorService(); + public PubSubRuleNodeExecutorProvider getPubSubRuleNodeExecutorProvider() { + return mainCtx.getPubSubRuleNodeExecutorProvider(); } @Override diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java deleted file mode 100644 index 22d55cc673..0000000000 --- a/application/src/main/java/org/thingsboard/server/service/executors/PubSubExecutorService.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.thingsboard.server.service.executors; - -import com.google.api.gax.core.FixedExecutorProvider; -import org.springframework.stereotype.Component; -import org.thingsboard.common.util.PubSubExecutor; -import org.thingsboard.common.util.ThingsBoardThreadFactory; - -import javax.annotation.PostConstruct; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; - -@Component -public class PubSubExecutorService implements PubSubExecutor { - private static final int THREADS_PER_CPU = 5; - private FixedExecutorProvider fixedExecutorProvider; - - @PostConstruct - public void init() { - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("tb-pubsub-producer-scheduler"));; - this.fixedExecutorProvider = FixedExecutorProvider.create(scheduler); - } - - public FixedExecutorProvider getExecutorProvider() { - return fixedExecutorProvider; - } -} diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java new file mode 100644 index 0000000000..7db74f6195 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java @@ -0,0 +1,29 @@ +package org.thingsboard.server.service.executors; + +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.ExecutorProvider; +import org.thingsboard.common.util.ThingsBoardThreadFactory; + +import javax.annotation.PostConstruct; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +@Component +public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { + + /** + * Refers to com.google.cloud.pubsub.v1.Publisher default executor configuration + */ + private static final int THREADS_PER_CPU = 5; + private ScheduledExecutorService executor; + + @PostConstruct + public void init() { + executor = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("pubsub-rule-nodes"));; + } + + @Override + public ScheduledExecutorService getExecutor() { + return executor; + } +} diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index bdf0ad8252..114dafa6f0 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1270,7 +1270,7 @@ swagger: # Queue configuration parameters queue: - type: "${TB_QUEUE_TYPE:in-memory}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) + type: "${TB_QUEUE_TYPE:pubsub}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) prefix: "${TB_QUEUE_PREFIX:}" # Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka) except of js executor topics (please use REMOTE_JS_EVAL_REQUEST_TOPIC and REMOTE_JS_EVAL_RESPONSE_TOPIC to specify custom topic names) in_memory: stats: @@ -1404,13 +1404,15 @@ queue: version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" pubsub: # Project ID from Google Cloud - project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:pubsub-389210}" # API Credentials in JSON format - service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" + service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:{\n \"type\": \"service_account\",\n \"project_id\": \"pubsub-389210\",\n \"private_key_id\": \"e83e233f60bb75f52e6ee9d34046c1e7b5e3f2e6\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmram5Oa60kyFM\\nFwo7d4yYA2U4vLUa2HV7h5G5ZxhXTPk+V4eYneBPSX0bJ/V5L4z7N/xNNwDR80i3\\n+tCFIf9P+jS3sE0ThZDc8Rdgo1Ln8nm4qf/9uBrOdSjn5VKKwvnNXphwTniwzssS\\nWn3AMuL8flgKoOiRaBOMXykIWN4/epKmv1tmnnq57XLW2cRTsE+pCcbqn8W2LEgA\\nNP+NJvvhQ6wsU341F2oTMAsuwsmiOZ1aiKKCafjGb/STPYy/WXsLjrfwK08U2SJh\\n+hHyvzdH1AU40khelnLjQhrltUGk1VAaKtucDKGSAoL5JIkH0Q5qczz1Ys6l3VvK\\nlhDNP8NHAgMBAAECggEAFUVJSRGC6ZlzIN452I/vmcCpLL3sUMI57+tDngj5kr6I\\neju6WrAfHY8vz4TgbzgxwieJY6M20BQ/ffccoDjP97li++QcWfbsHz4HMTZ2kJIh\\nlX7gY9UYWquZ7koWKA4sydgeFQr2nP2u7actsBbuX7GR871IILJK+Fl2h5Grvybk\\nz70RzLY+M26ZVBf+ejKlyaoMVLQ6w272llc5/SJ4jmsbn1urLM2+ChgAjOeqo7Qp\\nBBjUJmjC9b5Tev0jg+FXdw+ba41bXmYM5x265buwbY4vYyIJ+XF6dEl36cdVa1xI\\n+XISQZ66SuvEkHRc+x1hEEMymOtt8d++SeFn4/BkDQKBgQDkGtYA/8751C8xDB4+\\nlpxXf3wN/QjWPpXAV1fyj9sgwz05M1E0KzYpX6H2rWVqFhPkuqZUCeZ5Iqjvybp7\\n8upLJ+lRpHag1dkS4ElICNNcHhIQB9xgmFtdH4euTzuAFTd5nZ43oRt6gGEo0I/S\\nmKmupS2IwpM2/Qm6dP7l2ruS5QKBgQC7D8eTIIu8x2plJ6rebEAneX6aAUzQ9chk\\nRB53wjDx0UCXC/J2l1PX0vGGY8JOQdmDS6MPdFaVZxnqtrrGNBDuSArDNH7bV0ab\\nBKnLStPOwkehQEhg6ShHX7r4EPs6GBTWDQnnCgR8KGq+7rdo/lz7C/TK8+xqRaWq\\nYCUMY4g+uwKBgHtPFokLwHPFhI1bI65p9LJINGPLec93nbSQgvaZVbfsU1hsqWUu\\nRuUu0XtsWPp0XOS1Ed00TOcHGZQm1SzUMFvYg4SjB44CjIprvLG4M6oEh3crCLMf\\nKaS5urs8Eco3rfmMf09LRHOAmwVZWaZa6L+Eg4z+wl5jg7LMNE9FY0kRAoGACU+J\\nwXr3OZg7ZXmJ+bQtpUlY0dWKu0Pgi40QbymNQhwGOP5xPRHfLHjlaKkCfN6uMujK\\n3vQNczZEhfg+Z6sjxJh1YK32OninnQOoZ+P7kuj8o7wNXjV8ucC8D6jYuFWGg/j2\\nKzfGbV+doI9FNcajXiOENa3acJey3T4X2fwCRg0CgYEA0m3iO8HvnWhAs+clP2Ph\\nI8mXNbNbtCa7bOPmhdidSwJpbXNNwKNU7xAXHHueFGlEnNFsQrqy7bPfol4ABOhl\\nV3Zdsuc5v1OXM7IrLZ16cC7fogydSQz8QK86TcC50u/aSmkaevujsJfabC/YF7sR\\nBl8tPN7I4H72JKOuUTn/Sfo=\\n-----END PRIVATE KEY-----\\n\",\n \"client_email\": \"pubsubaccountname@pubsub-389210.iam.gserviceaccount.com\",\n \"client_id\": \"103395736410565244836\",\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"token_uri\": \"https://oauth2.googleapis.com/token\",\n \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/pubsubaccountname%40pubsub-389210.iam.gserviceaccount.com\",\n \"universe_domain\": \"googleapis.com\"\n}}" # Message size for PubSub queue.Value in bytes max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java index 554d452556..8ecd6564c8 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java @@ -44,6 +44,7 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; +import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -77,6 +78,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng private final TbQueueAdmin transportApiAdmin; private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin vcAdmin; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; public PubSubMonolithQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, @@ -87,7 +89,8 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng TbServiceInfoProvider serviceInfoProvider, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, TbQueueRemoteJsInvokeSettings jsInvokeSettings, - TbQueueVersionControlSettings vcSettings) { + TbQueueVersionControlSettings vcSettings, + TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; @@ -96,6 +99,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.vcSettings = vcSettings; + this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -109,85 +113,91 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider ); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, configuration.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { return new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getRequestsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic()); + return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic(), tbPubSubQueueExecutorProvider); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { RemoteJsResponse.Builder builder = RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }); + }, tbPubSubQueueExecutorProvider); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -203,28 +213,28 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbPubSubProducerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic()); + return new TbPubSubProducerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic(), tbPubSubQueueExecutorProvider); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java index 3b45992e25..5443339d2a 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java @@ -42,6 +42,7 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; +import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -72,6 +73,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueAdmin transportApiAdmin; private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin ruleEngineAdmin; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; public PubSubTbCoreQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, @@ -81,7 +83,8 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbQueueRuleEngineSettings ruleEngineSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings) { + TbPubSubSubscriptionSettings pubSubSubscriptionSettings, + TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; @@ -90,6 +93,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; this.ruleEngineSettings = ruleEngineSettings; + this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.jsExecutorAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getJsExecutorSettings()); @@ -100,64 +104,64 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { return new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getRequestsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic()); + return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic(), tbPubSubQueueExecutorProvider); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { JsInvokeProtos.RemoteJsResponse.Builder builder = JsInvokeProtos.RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }); + }, tbPubSubQueueExecutorProvider); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -173,23 +177,25 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), tbPubSubQueueExecutorProvider); } @Override diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java index a60f77852f..b0fde82e7d 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java @@ -40,6 +40,7 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; +import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -62,6 +63,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -75,7 +77,8 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings) { + TbPubSubSubscriptionSettings pubSubSubscriptionSettings, + TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; @@ -83,6 +86,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; + this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -92,53 +96,53 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(configuration.getTopic()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { JsInvokeProtos.RemoteJsResponse.Builder builder = JsInvokeProtos.RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }); + }, tbPubSubQueueExecutorProvider); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -153,12 +157,12 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), tbPubSubQueueExecutorProvider); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java index 8154d04d6d..29207ed429 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java @@ -26,6 +26,7 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; +import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; @@ -41,6 +42,7 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; private final TopicService topicService; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin notificationAdmin; @@ -50,12 +52,14 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TopicService topicService + TopicService topicService, + TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider ) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; this.topicService = topicService; + this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.notificationAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getNotificationsSettings()); @@ -64,18 +68,19 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, topicService.buildTopicName(vcSettings.getTopic()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), + tbPubSubQueueExecutorProvider ); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java index edcad873c4..94a454dd5b 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java @@ -37,6 +37,7 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; +import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; @@ -58,6 +59,7 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { private final TbQueueTransportApiSettings transportApiSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; private final TopicService topicService; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -71,7 +73,8 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TopicService topicService) { + TopicService topicService, + TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { this.pubSubSettings = pubSubSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -79,6 +82,7 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.topicService = topicService; + this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -88,10 +92,10 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), tbPubSubQueueExecutorProvider); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> templateBuilder = DefaultTbQueueRequestTemplate.builder(); @@ -106,29 +110,29 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java index 97b7b47843..fd01696873 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java @@ -17,6 +17,7 @@ package org.thingsboard.server.queue.pubsub; import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; +import com.google.api.gax.core.FixedExecutorProvider; import com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub; import com.google.cloud.pubsub.v1.stub.SubscriberStub; import com.google.cloud.pubsub.v1.stub.SubscriberStubSettings; @@ -62,7 +63,7 @@ public class TbPubSubConsumerTemplate extends AbstractPara private final SubscriberStub subscriber; private volatile int messagesPerTopic; - public TbPubSubConsumerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String topic, TbQueueMsgDecoder decoder) { + public TbPubSubConsumerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String topic, TbQueueMsgDecoder decoder, TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { super(topic); this.admin = admin; this.pubSubSettings = pubSubSettings; @@ -76,6 +77,7 @@ public class TbPubSubConsumerTemplate extends AbstractPara SubscriberStubSettings.defaultGrpcTransportProviderBuilder() .setMaxInboundMessageSize(pubSubSettings.getMaxMsgSize()) .build()) + .setExecutorProvider(FixedExecutorProvider.create(tbPubSubQueueExecutorProvider.getExecutor())) .build(); this.subscriber = GrpcSubscriberStub.create(subscriberStubSettings); } catch (IOException e) { diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java index 46c6bb6413..48a104f20a 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java @@ -25,6 +25,7 @@ import com.google.protobuf.ByteString; import com.google.pubsub.v1.ProjectTopicName; import com.google.pubsub.v1.PubsubMessage; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; import org.thingsboard.server.queue.TbQueueAdmin; @@ -53,16 +54,14 @@ public class TbPubSubProducerTemplate implements TbQueuePr private final Map publisherMap = new ConcurrentHashMap<>(); private final ExecutorService pubExecutor = Executors.newCachedThreadPool(); - private static final int THREADS_PER_CPU = 5; private final FixedExecutorProvider fixedExecutorProvider; - public TbPubSubProducerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String defaultTopic) { + public TbPubSubProducerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String defaultTopic, ExecutorProvider executorProvider) { this.defaultTopic = defaultTopic; this.admin = admin; this.pubSubSettings = pubSubSettings; - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("tb-pubsub-producer-scheduler"));; - fixedExecutorProvider = FixedExecutorProvider.create(scheduler); + fixedExecutorProvider = FixedExecutorProvider.create(executorProvider.getExecutor()); } @Override diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java new file mode 100644 index 0000000000..2b636b5ee2 --- /dev/null +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java @@ -0,0 +1,37 @@ +package org.thingsboard.server.queue.pubsub; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.stereotype.Component; +import org.thingsboard.common.util.ExecutorProvider; +import org.thingsboard.common.util.ThingsBoardThreadFactory; + +import javax.annotation.PostConstruct; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +@ConditionalOnExpression("'${queue.type:null}'=='pubsub'") +@Component +public class TbPubSubQueueExecutorProvider implements ExecutorProvider { + + @Value("${queue.pubsub.executor_thread_pool_size}") + private Integer threadPoolSize; + /** + * Refers to com.google.cloud.pubsub.v1.Publisher default executor configuration + */ + private static final int THREADS_PER_CPU = 5; + private ScheduledExecutorService executor; + + @PostConstruct + public void init() { + if (threadPoolSize == null) { + threadPoolSize = THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(); + } + executor = Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-queue-executor"));; + } + + @Override + public ScheduledExecutorService getExecutor() { + return executor; + } +} diff --git a/common/util/pom.xml b/common/util/pom.xml index c2f5dfea6c..eab8ae982b 100644 --- a/common/util/pom.xml +++ b/common/util/pom.xml @@ -53,10 +53,6 @@ guava provided - - com.google.cloud - google-cloud-pubsub - javax.annotation javax.annotation-api diff --git a/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java b/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java new file mode 100644 index 0000000000..4abc46fb16 --- /dev/null +++ b/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java @@ -0,0 +1,8 @@ +package org.thingsboard.common.util; + +import java.util.concurrent.ScheduledExecutorService; + +public interface ExecutorProvider { + + ScheduledExecutorService getExecutor(); +} diff --git a/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java b/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java deleted file mode 100644 index 5354102578..0000000000 --- a/common/util/src/main/java/org/thingsboard/common/util/PubSubExecutor.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.thingsboard.common.util; - -import com.google.api.gax.core.FixedExecutorProvider; - -public interface PubSubExecutor { - FixedExecutorProvider getExecutorProvider(); -} diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index 4ffa1ab702..2353199c2b 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -172,6 +172,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java index cd71626afd..40ed2c378a 100644 --- a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java +++ b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java @@ -16,8 +16,8 @@ package org.thingsboard.rule.engine.api; import io.netty.channel.EventLoopGroup; +import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ListeningExecutor; -import org.thingsboard.common.util.PubSubExecutor; import org.thingsboard.rule.engine.api.slack.SlackService; import org.thingsboard.rule.engine.api.sms.SmsSenderFactory; import org.thingsboard.server.cluster.TbClusterService; @@ -319,7 +319,7 @@ public interface TbContext { ListeningExecutor getNotificationExecutor(); - PubSubExecutor getPubsubExecutor(); + ExecutorProvider getPubSubRuleNodeExecutorProvider(); MailService getMailService(boolean isSystem); diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java index 4c24bdf1cb..39ab7bf525 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java @@ -69,7 +69,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { super.init(ctx); this.config = TbNodeUtils.convert(configuration, TbPubSubNodeConfiguration.class); try { - this.pubSubClient = initPubSubClient(ctx.getPubsubExecutor().getExecutorProvider()); + this.pubSubClient = initPubSubClient(FixedExecutorProvider.create(ctx.getPubSubRuleNodeExecutorProvider().getExecutor())); } catch (Exception e) { throw new TbNodeException(e); } diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 437f551690..5588384efd 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -295,6 +295,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 8d4d6fadf0..2ca2a04d1f 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -278,6 +278,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 8fd1c11e6e..d8ee8d14c4 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -374,6 +374,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 6c51d18ab7..6dc1213884 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -311,6 +311,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index eeb6807714..928c3c0642 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -264,6 +264,8 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" + # Number of threads of pubsub executor provider + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" From aab09a680406b39265bb8ab9fcd3fc933fa6b55d Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 15 Nov 2023 14:56:17 +0200 Subject: [PATCH 044/162] reverted thingsboard.yml local changes --- application/src/main/resources/thingsboard.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 114dafa6f0..6961ca0655 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1404,9 +1404,9 @@ queue: version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" pubsub: # Project ID from Google Cloud - project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:pubsub-389210}" + project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" # API Credentials in JSON format - service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:{\n \"type\": \"service_account\",\n \"project_id\": \"pubsub-389210\",\n \"private_key_id\": \"e83e233f60bb75f52e6ee9d34046c1e7b5e3f2e6\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmram5Oa60kyFM\\nFwo7d4yYA2U4vLUa2HV7h5G5ZxhXTPk+V4eYneBPSX0bJ/V5L4z7N/xNNwDR80i3\\n+tCFIf9P+jS3sE0ThZDc8Rdgo1Ln8nm4qf/9uBrOdSjn5VKKwvnNXphwTniwzssS\\nWn3AMuL8flgKoOiRaBOMXykIWN4/epKmv1tmnnq57XLW2cRTsE+pCcbqn8W2LEgA\\nNP+NJvvhQ6wsU341F2oTMAsuwsmiOZ1aiKKCafjGb/STPYy/WXsLjrfwK08U2SJh\\n+hHyvzdH1AU40khelnLjQhrltUGk1VAaKtucDKGSAoL5JIkH0Q5qczz1Ys6l3VvK\\nlhDNP8NHAgMBAAECggEAFUVJSRGC6ZlzIN452I/vmcCpLL3sUMI57+tDngj5kr6I\\neju6WrAfHY8vz4TgbzgxwieJY6M20BQ/ffccoDjP97li++QcWfbsHz4HMTZ2kJIh\\nlX7gY9UYWquZ7koWKA4sydgeFQr2nP2u7actsBbuX7GR871IILJK+Fl2h5Grvybk\\nz70RzLY+M26ZVBf+ejKlyaoMVLQ6w272llc5/SJ4jmsbn1urLM2+ChgAjOeqo7Qp\\nBBjUJmjC9b5Tev0jg+FXdw+ba41bXmYM5x265buwbY4vYyIJ+XF6dEl36cdVa1xI\\n+XISQZ66SuvEkHRc+x1hEEMymOtt8d++SeFn4/BkDQKBgQDkGtYA/8751C8xDB4+\\nlpxXf3wN/QjWPpXAV1fyj9sgwz05M1E0KzYpX6H2rWVqFhPkuqZUCeZ5Iqjvybp7\\n8upLJ+lRpHag1dkS4ElICNNcHhIQB9xgmFtdH4euTzuAFTd5nZ43oRt6gGEo0I/S\\nmKmupS2IwpM2/Qm6dP7l2ruS5QKBgQC7D8eTIIu8x2plJ6rebEAneX6aAUzQ9chk\\nRB53wjDx0UCXC/J2l1PX0vGGY8JOQdmDS6MPdFaVZxnqtrrGNBDuSArDNH7bV0ab\\nBKnLStPOwkehQEhg6ShHX7r4EPs6GBTWDQnnCgR8KGq+7rdo/lz7C/TK8+xqRaWq\\nYCUMY4g+uwKBgHtPFokLwHPFhI1bI65p9LJINGPLec93nbSQgvaZVbfsU1hsqWUu\\nRuUu0XtsWPp0XOS1Ed00TOcHGZQm1SzUMFvYg4SjB44CjIprvLG4M6oEh3crCLMf\\nKaS5urs8Eco3rfmMf09LRHOAmwVZWaZa6L+Eg4z+wl5jg7LMNE9FY0kRAoGACU+J\\nwXr3OZg7ZXmJ+bQtpUlY0dWKu0Pgi40QbymNQhwGOP5xPRHfLHjlaKkCfN6uMujK\\n3vQNczZEhfg+Z6sjxJh1YK32OninnQOoZ+P7kuj8o7wNXjV8ucC8D6jYuFWGg/j2\\nKzfGbV+doI9FNcajXiOENa3acJey3T4X2fwCRg0CgYEA0m3iO8HvnWhAs+clP2Ph\\nI8mXNbNbtCa7bOPmhdidSwJpbXNNwKNU7xAXHHueFGlEnNFsQrqy7bPfol4ABOhl\\nV3Zdsuc5v1OXM7IrLZ16cC7fogydSQz8QK86TcC50u/aSmkaevujsJfabC/YF7sR\\nBl8tPN7I4H72JKOuUTn/Sfo=\\n-----END PRIVATE KEY-----\\n\",\n \"client_email\": \"pubsubaccountname@pubsub-389210.iam.gserviceaccount.com\",\n \"client_id\": \"103395736410565244836\",\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"token_uri\": \"https://oauth2.googleapis.com/token\",\n \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/pubsubaccountname%40pubsub-389210.iam.gserviceaccount.com\",\n \"universe_domain\": \"googleapis.com\"\n}}" + service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" # Message size for PubSub queue.Value in bytes max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer From f26d827ab8daf5d7bf6766d0e830d7bc9831c196 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 15 Nov 2023 14:57:41 +0200 Subject: [PATCH 045/162] reverted thingsboard.yml local changes --- application/src/main/resources/thingsboard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 6961ca0655..ccc4953793 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1270,7 +1270,7 @@ swagger: # Queue configuration parameters queue: - type: "${TB_QUEUE_TYPE:pubsub}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) + type: "${TB_QUEUE_TYPE:in-memory}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) prefix: "${TB_QUEUE_PREFIX:}" # Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka) except of js executor topics (please use REMOTE_JS_EVAL_REQUEST_TOPIC and REMOTE_JS_EVAL_RESPONSE_TOPIC to specify custom topic names) in_memory: stats: From edcc507f4b9ec40ee92c70f2c0d8f8490f7ccbe8 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 15 Nov 2023 15:14:41 +0200 Subject: [PATCH 046/162] Subscribe first in testSubscribingToUnreadNotificationsCount --- .../server/service/notification/NotificationApiTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java index 26be4e9bd3..ba0b4e4763 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java @@ -113,15 +113,13 @@ public class NotificationApiTest extends AbstractNotificationApiTest { @Test public void testSubscribingToUnreadNotificationsCount() { + wsClient.subscribeForUnreadNotificationsCount().waitForReply(true); NotificationTarget notificationTarget = createNotificationTarget(customerUserId); String notificationText1 = "Notification 1"; submitNotificationRequest(notificationTarget.getId(), notificationText1); String notificationText2 = "Notification 2"; submitNotificationRequest(notificationTarget.getId(), notificationText2); - wsClient.subscribeForUnreadNotificationsCount(); - wsClient.waitForReply(true); - await().atMost(2, TimeUnit.SECONDS) .until(() -> wsClient.getLastCountUpdate().getTotalUnreadCount() == 2); } From a4bac1e7948e55b148a974e970305756fda0e613 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Wed, 15 Nov 2023 15:57:58 +0200 Subject: [PATCH 047/162] Implement cache for the entity creation request --- .../transport/DefaultTransportApiService.java | 9 +++ .../src/main/resources/thingsboard.yml | 5 +- common/cluster-api/src/main/proto/queue.proto | 6 ++ .../server/common/data/DataConstants.java | 1 + .../AbstractGatewaySessionHandler.java | 22 ++++-- .../common/transport/TransportService.java | 2 +- .../limits/DefaultEntityLimitsCache.java | 74 +++++++++++++++++++ .../transport/limits/EntityLimitKey.java | 27 +++++++ .../transport/limits/EntityLimitsCache.java | 24 ++++++ .../service/DefaultTransportService.java | 48 ++++++++---- .../dao/exception/EntitiesLimitException.java | 35 +++++++++ .../server/dao/service/DataValidator.java | 3 +- .../src/main/resources/tb-coap-transport.yml | 4 + .../src/main/resources/tb-http-transport.yml | 4 + .../src/main/resources/tb-lwm2m-transport.yml | 4 + .../src/main/resources/tb-mqtt-transport.yml | 4 + .../src/main/resources/tb-snmp-transport.yml | 4 + 17 files changed, 251 insertions(+), 25 deletions(-) create mode 100644 common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/DefaultEntityLimitsCache.java create mode 100644 common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitKey.java create mode 100644 common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitsCache.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/exception/EntitiesLimitException.java diff --git a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java index 3505052fca..631e64a285 100644 --- a/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java +++ b/application/src/main/java/org/thingsboard/server/service/transport/DefaultTransportApiService.java @@ -78,6 +78,7 @@ import org.thingsboard.server.dao.device.provision.ProvisionFailedException; import org.thingsboard.server.dao.device.provision.ProvisionRequest; import org.thingsboard.server.dao.device.provision.ProvisionResponse; import org.thingsboard.server.dao.device.provision.ProvisionResponseStatus; +import org.thingsboard.server.dao.exception.EntitiesLimitException; import org.thingsboard.server.dao.ota.OtaPackageService; import org.thingsboard.server.dao.queue.QueueService; import org.thingsboard.server.dao.relation.RelationService; @@ -164,6 +165,7 @@ public class DefaultTransportApiService implements TransportApiService { public void init() { handlerExecutor = MoreExecutors.listeningDecorator(ThingsBoardExecutors.newWorkStealingPool(maxCoreHandlerThreads, "transport-api-service-core-handler")); } + @PreDestroy public void destroy() { if (handlerExecutor != null) { @@ -400,6 +402,13 @@ public class DefaultTransportApiService implements TransportApiService { } catch (JsonProcessingException e) { log.warn("[{}] Failed to lookup device by gateway id and name: [{}]", gatewayId, requestMsg.getDeviceName(), e); throw new RuntimeException(e); + } catch (EntitiesLimitException e) { + log.warn("[{}][{}] API limit exception: [{}]", e.getTenantId(), gatewayId, e.getMessage()); + return TransportApiResponseMsg.newBuilder() + .setGetOrCreateDeviceResponseMsg( + GetOrCreateDeviceFromGatewayResponseMsg.newBuilder() + .setError(TransportProtos.TransportApiRequestErrorCode.ENTITY_LIMIT)) + .build(); } finally { deviceCreationLock.unlock(); } diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index bdf0ad8252..ecc89c84c5 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -583,6 +583,9 @@ cache: rateLimits: timeToLiveInMinutes: "${CACHE_SPECS_RATE_LIMITS_TTL:120}" # Rate limits cache TTL maxSize: "${CACHE_SPECS_RATE_LIMITS_MAX_SIZE:200000}" # 0 means the cache is disabled + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Spring data parameters spring.data.redis.repositories.enabled: false # Disable this because it is not required. @@ -875,7 +878,7 @@ transport: ip_limits_enabled: "${TB_TRANSPORT_IP_RATE_LIMITS_ENABLED:false}" # Maximum number of connect attempts with invalid credentials max_wrong_credentials_per_ip: "${TB_TRANSPORT_MAX_WRONG_CREDENTIALS_PER_IP:10}" - # Timeout to expire block IP addresses + # Timeout (in milliseconds) to expire block IP addresses ip_block_timeout: "${TB_TRANSPORT_IP_BLOCK_TIMEOUT:60000}" # Local HTTP transport parameters http: diff --git a/common/cluster-api/src/main/proto/queue.proto b/common/cluster-api/src/main/proto/queue.proto index 016a40f5dc..0cb91faee0 100644 --- a/common/cluster-api/src/main/proto/queue.proto +++ b/common/cluster-api/src/main/proto/queue.proto @@ -255,6 +255,12 @@ message GetOrCreateDeviceFromGatewayRequestMsg { message GetOrCreateDeviceFromGatewayResponseMsg { DeviceInfoProto deviceInfo = 1; bytes profileBody = 2; + TransportApiRequestErrorCode error = 3; +} + +enum TransportApiRequestErrorCode { + UNKNOWN_TRANSPORT_API_ERROR = 0; + ENTITY_LIMIT = 1; } message GetEntityProfileRequestMsg { diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/DataConstants.java b/common/data/src/main/java/org/thingsboard/server/common/data/DataConstants.java index 544f5805a6..4a84743283 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/DataConstants.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/DataConstants.java @@ -49,6 +49,7 @@ public class DataConstants { public static final String MQTT_TRANSPORT_NAME = "MQTT"; public static final String HTTP_TRANSPORT_NAME = "HTTP"; public static final String SNMP_TRANSPORT_NAME = "SNMP"; + public static final String MAXIMUM_NUMBER_OF_DEVICES_REACHED = "Maximum number of devices reached!"; public static final String[] allScopes() { diff --git a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/AbstractGatewaySessionHandler.java b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/AbstractGatewaySessionHandler.java index fd0297203d..8f964f8369 100644 --- a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/AbstractGatewaySessionHandler.java +++ b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/session/AbstractGatewaySessionHandler.java @@ -35,6 +35,7 @@ import io.netty.handler.codec.mqtt.MqttPublishMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.util.CollectionUtils; import org.springframework.util.ConcurrentReferenceHashMap; +import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.transport.TransportService; @@ -215,8 +216,7 @@ public abstract class AbstractGatewaySessionHandler callback); - void process(GetOrCreateDeviceFromGatewayRequestMsg msg, + void process(TenantId tenantId, GetOrCreateDeviceFromGatewayRequestMsg msg, TransportServiceCallback callback); void process(ProvisionDeviceRequestMsg msg, diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/DefaultEntityLimitsCache.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/DefaultEntityLimitsCache.java new file mode 100644 index 0000000000..3bfab1e3f0 --- /dev/null +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/DefaultEntityLimitsCache.java @@ -0,0 +1,74 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.transport.limits; + +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import com.github.benmanes.caffeine.cache.Expiry; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.thingsboard.server.queue.util.TbTransportComponent; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +@Service +@TbTransportComponent +@Slf4j +public class DefaultEntityLimitsCache implements EntityLimitsCache { + + private static final int DEVIATION = 10; + private final Cache cache; + + public DefaultEntityLimitsCache(@Value("${cache.entityLimits.timeToLiveInMinutes:5}") int ttl, + @Value("${cache.entityLimits.maxSize:100000}") int maxSize) { + // We use the 'random' expiration time to avoid peak loads. + long mainPart = (TimeUnit.MINUTES.toNanos(ttl) / 100) * (100 - DEVIATION); + long randomPart = (TimeUnit.MINUTES.toNanos(ttl) / 100) * DEVIATION; + cache = Caffeine.newBuilder() + .expireAfter(new Expiry() { + @Override + public long expireAfterCreate(@NotNull EntityLimitKey key, @NotNull Boolean value, long currentTime) { + return mainPart + (long) (randomPart * ThreadLocalRandom.current().nextDouble()); + } + + @Override + public long expireAfterUpdate(@NotNull EntityLimitKey key, @NotNull Boolean value, long currentTime, long currentDuration) { + return currentDuration; + } + + @Override + public long expireAfterRead(@NotNull EntityLimitKey key, @NotNull Boolean value, long currentTime, long currentDuration) { + return currentDuration; + } + }) + .maximumSize(maxSize) + .build(); + } + + @Override + public boolean get(EntityLimitKey key) { + var result = cache.getIfPresent(key); + return result != null ? result : false; + } + + @Override + public void put(EntityLimitKey key, boolean value) { + cache.put(key, value); + } +} diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitKey.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitKey.java new file mode 100644 index 0000000000..f8957f780d --- /dev/null +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitKey.java @@ -0,0 +1,27 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.transport.limits; + +import lombok.Data; +import org.thingsboard.server.common.data.id.TenantId; + +@Data +public class EntityLimitKey { + + private final TenantId tenantId; + private final String deviceName; + +} diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitsCache.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitsCache.java new file mode 100644 index 0000000000..b350a2eb27 --- /dev/null +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/limits/EntityLimitsCache.java @@ -0,0 +1,24 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.transport.limits; + +public interface EntityLimitsCache { + + boolean get(EntityLimitKey key); + + void put(EntityLimitKey key, boolean value); + +} diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java index cc4a1bc3df..c4840b2402 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java @@ -76,6 +76,8 @@ import org.thingsboard.server.common.transport.TransportTenantProfileCache; import org.thingsboard.server.common.transport.auth.GetOrCreateDeviceFromGatewayResponse; import org.thingsboard.server.common.transport.auth.TransportDeviceInfo; import org.thingsboard.server.common.transport.auth.ValidateDeviceCredentialsResponse; +import org.thingsboard.server.common.transport.limits.EntityLimitKey; +import org.thingsboard.server.common.transport.limits.EntityLimitsCache; import org.thingsboard.server.common.transport.limits.TransportRateLimitService; import org.thingsboard.server.common.transport.util.JsonUtils; import org.thingsboard.server.gen.transport.TransportProtos; @@ -161,6 +163,7 @@ public class DefaultTransportService implements TransportService { @Value("${transport.stats.enabled:false}") private boolean statsEnabled; + @Autowired @Lazy private TbApiUsageReportClient apiUsageClient; @@ -184,6 +187,8 @@ public class DefaultTransportService implements TransportService { private final TransportResourceCache transportResourceCache; private final NotificationRuleProcessor notificationRuleProcessor; + private final EntityLimitsCache entityLimitsCache; + protected TbQueueRequestTemplate, TbProtoQueueMsg> transportApiRequestTemplate; protected TbQueueProducer> ruleEngineMsgProducer; protected TbQueueProducer> tbCoreMsgProducer; @@ -212,7 +217,8 @@ public class DefaultTransportService implements TransportService { TransportTenantProfileCache tenantProfileCache, TransportRateLimitService rateLimitService, DataDecodingEncodingService dataDecodingEncodingService, SchedulerComponent scheduler, TransportResourceCache transportResourceCache, - ApplicationEventPublisher eventPublisher, NotificationRuleProcessor notificationRuleProcessor) { + ApplicationEventPublisher eventPublisher, NotificationRuleProcessor notificationRuleProcessor, + EntityLimitsCache entityLimitsCache) { this.partitionService = partitionService; this.serviceInfoProvider = serviceInfoProvider; this.queueProvider = queueProvider; @@ -227,6 +233,7 @@ public class DefaultTransportService implements TransportService { this.transportResourceCache = transportResourceCache; this.eventPublisher = eventPublisher; this.notificationRuleProcessor = notificationRuleProcessor; + this.entityLimitsCache = entityLimitsCache; } @PostConstruct @@ -249,7 +256,7 @@ public class DefaultTransportService implements TransportService { } @AfterStartUp(order = AfterStartUp.TRANSPORT_SERVICE) - private void start() { + public void start() { mainConsumerExecutor.execute(() -> { while (!stopped) { try { @@ -473,24 +480,33 @@ public class DefaultTransportService implements TransportService { AsyncCallbackTemplate.withCallback(response, callback::onSuccess, callback::onError, transportCallbackExecutor); } + @Override - public void process(TransportProtos.GetOrCreateDeviceFromGatewayRequestMsg requestMsg, TransportServiceCallback callback) { + public void process(TenantId tenantId, TransportProtos.GetOrCreateDeviceFromGatewayRequestMsg requestMsg, TransportServiceCallback callback) { TbProtoQueueMsg protoMsg = new TbProtoQueueMsg<>(UUID.randomUUID(), TransportApiRequestMsg.newBuilder().setGetOrCreateDeviceRequestMsg(requestMsg).build()); log.trace("Processing msg: {}", requestMsg); - ListenableFuture response = Futures.transform(transportApiRequestTemplate.send(protoMsg), tmp -> { - TransportProtos.GetOrCreateDeviceFromGatewayResponseMsg msg = tmp.getValue().getGetOrCreateDeviceResponseMsg(); - GetOrCreateDeviceFromGatewayResponse.GetOrCreateDeviceFromGatewayResponseBuilder result = GetOrCreateDeviceFromGatewayResponse.builder(); - if (msg.hasDeviceInfo()) { - TransportDeviceInfo tdi = getTransportDeviceInfo(msg.getDeviceInfo()); - result.deviceInfo(tdi); - ByteString profileBody = msg.getProfileBody(); - if (profileBody != null && !profileBody.isEmpty()) { - result.deviceProfile(deviceProfileCache.getOrCreate(tdi.getDeviceProfileId(), profileBody)); + var key = new EntityLimitKey(tenantId, StringUtils.truncate(requestMsg.getDeviceName(), 256)); + if (entityLimitsCache.get(key)) { + transportCallbackExecutor.submit(() -> callback.onError(new RuntimeException(DataConstants.MAXIMUM_NUMBER_OF_DEVICES_REACHED))); + } else { + ListenableFuture response = Futures.transform(transportApiRequestTemplate.send(protoMsg), tmp -> { + TransportProtos.GetOrCreateDeviceFromGatewayResponseMsg msg = tmp.getValue().getGetOrCreateDeviceResponseMsg(); + GetOrCreateDeviceFromGatewayResponse.GetOrCreateDeviceFromGatewayResponseBuilder result = GetOrCreateDeviceFromGatewayResponse.builder(); + if (msg.hasDeviceInfo()) { + TransportDeviceInfo tdi = getTransportDeviceInfo(msg.getDeviceInfo()); + result.deviceInfo(tdi); + ByteString profileBody = msg.getProfileBody(); + if (!profileBody.isEmpty()) { + result.deviceProfile(deviceProfileCache.getOrCreate(tdi.getDeviceProfileId(), profileBody)); + } + } else if (TransportProtos.TransportApiRequestErrorCode.ENTITY_LIMIT.equals(msg.getError())) { + entityLimitsCache.put(key, true); + throw new RuntimeException(DataConstants.MAXIMUM_NUMBER_OF_DEVICES_REACHED); } - } - return result.build(); - }, MoreExecutors.directExecutor()); - AsyncCallbackTemplate.withCallback(response, callback::onSuccess, callback::onError, transportCallbackExecutor); + return result.build(); + }, MoreExecutors.directExecutor()); + AsyncCallbackTemplate.withCallback(response, callback::onSuccess, callback::onError, transportCallbackExecutor); + } } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/exception/EntitiesLimitException.java b/dao/src/main/java/org/thingsboard/server/dao/exception/EntitiesLimitException.java new file mode 100644 index 0000000000..2f618e94d5 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/exception/EntitiesLimitException.java @@ -0,0 +1,35 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.exception; + +import lombok.Getter; +import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.common.data.id.TenantId; + +public class EntitiesLimitException extends DataValidationException { + private static final long serialVersionUID = -9211462514373279196L; + + @Getter + private final TenantId tenantId; + @Getter + private final EntityType entityType; + + public EntitiesLimitException(TenantId tenantId, EntityType entityType) { + super(entityType.getNormalName() + "s limit reached"); + this.tenantId = tenantId; + this.entityType = entityType; + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java index d81c05044f..2c011b810e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.dao.TenantEntityWithDataDao; import org.thingsboard.server.dao.exception.DataValidationException; +import org.thingsboard.server.dao.exception.EntitiesLimitException; import org.thingsboard.server.dao.usagerecord.ApiLimitService; import java.util.HashSet; @@ -117,7 +118,7 @@ public abstract class DataValidator> { protected void validateNumberOfEntitiesPerTenant(TenantId tenantId, EntityType entityType) { if (!apiLimitService.checkEntitiesLimit(tenantId, entityType)) { - throw new DataValidationException(entityType.getNormalName() + "s limit reached"); + throw new EntitiesLimitException(tenantId, entityType); } } diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 437f551690..959b3285de 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -49,6 +49,10 @@ zk: cache: # caffeine or redis type: "${CACHE_TYPE:redis}" + # Deliberately placed outside the 'specs' group above + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Redis configuration parameters redis: diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 8d4d6fadf0..7edaa640a1 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -79,6 +79,10 @@ zk: cache: # caffeine or redis type: "${CACHE_TYPE:redis}" + # Deliberately placed outside the 'specs' group above + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Redis configuration parameters redis: diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 8fd1c11e6e..cebc0425d5 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -49,6 +49,10 @@ zk: cache: # caffeine or redis type: "${CACHE_TYPE:redis}" + # Deliberately placed outside the 'specs' group above + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Redis configuration parameters redis: diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 6c51d18ab7..330473a624 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -49,6 +49,10 @@ zk: cache: # caffeine or redis type: "${CACHE_TYPE:redis}" + # Deliberately placed outside the 'specs' group above + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Redis configuration parameters redis: diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index eeb6807714..ca13212293 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -49,6 +49,10 @@ zk: cache: # caffeine or redis type: "${CACHE_TYPE:redis}" + # Deliberately placed outside the 'specs' group above + entityLimits: + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_LIMITS_TTL:5}" # Entity limits cache TTL + maxSize: "${CACHE_SPECS_ENTITY_LIMITS_MAX_SIZE:100000}" # 0 means the cache is disabled # Redis configuration parameters redis: From e7aabe80a43c30e29a77c6d6e15c1bb8f932052d Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 15 Nov 2023 16:10:18 +0200 Subject: [PATCH 048/162] Unique image resource key based on index --- .../server/controller/ImageController.java | 26 ++++++------ .../resource/DefaultTbImageService.java | 1 - .../server/common/data/ImageDescriptor.java | 1 + .../thingsboard/common/util/RegexUtils.java | 11 +++++ .../server/dao/resource/BaseImageService.java | 41 +++++++++++++++++-- .../dao/resource/BaseResourceService.java | 23 ++++++----- .../dao/resource/TbResourceInfoDao.java | 4 ++ .../validator/ResourceDataValidator.java | 5 ++- .../sql/resource/JpaTbResourceInfoDao.java | 10 +++++ .../resource/TbResourceInfoRepository.java | 9 +++- 10 files changed, 102 insertions(+), 29 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index 159cd1eb0c..add38ee272 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -125,7 +125,8 @@ public class ImageController extends BaseController { TenantId tenantId = getTenantId(); TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); - return downloadIfChanged(etag, imageInfo, descriptor, () -> imageService.getImageData(tenantId, imageInfo.getId())); + return downloadIfChanged(etag, descriptor, imageInfo.getFileName(), + () -> imageService.getImageData(tenantId, imageInfo.getId())); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") @@ -136,7 +137,8 @@ public class ImageController extends BaseController { TenantId tenantId = getTenantId(); TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.READ); ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); - return downloadIfChanged(etag, imageInfo, descriptor.getPreviewDescriptor(), () -> imageService.getImagePreview(tenantId, imageInfo.getId())); + return downloadIfChanged(etag, descriptor.getPreviewDescriptor(), imageInfo.getFileName(), + () -> imageService.getImagePreview(tenantId, imageInfo.getId())); } @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @@ -176,24 +178,22 @@ public class ImageController extends BaseController { tbImageService.delete(imageInfo, getCurrentUser()); } - private ResponseEntity downloadIfChanged(String etag, TbResourceInfo imageInfo, ImageDescriptor imageDescriptor, - Supplier dataSupplier) { - if (etag != null) { - if (etag.equals(imageInfo.getEtag())) { - return ResponseEntity.status(HttpStatus.NOT_MODIFIED) - .eTag(etag) - .build(); - } + private ResponseEntity downloadIfChanged(String actualEtag, ImageDescriptor imageDescriptor, + String fileName, Supplier dataSupplier) { + if (imageDescriptor.getEtag().equals(actualEtag)) { + return ResponseEntity.status(HttpStatus.NOT_MODIFIED) + .eTag(actualEtag) + .build(); } byte[] data = dataSupplier.get(); return ResponseEntity.ok() - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + imageInfo.getFileName()) - .header("x-filename", imageInfo.getFileName()) + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName) + .header("x-filename", fileName) .contentLength(data.length) .header("Content-Type", imageDescriptor.getMediaType()) .cacheControl(CacheControl.noCache()) - .eTag(imageInfo.getEtag()) + .eTag(imageDescriptor.getEtag()) .body(new ByteArrayResource(data)); } diff --git a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java index 188dff20d5..65304c8270 100644 --- a/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java +++ b/application/src/main/java/org/thingsboard/server/service/resource/DefaultTbImageService.java @@ -39,7 +39,6 @@ public class DefaultTbImageService extends AbstractTbEntityService implements Tb public TbResourceInfo save(TbResource image, User user) throws Exception { ActionType actionType = image.getId() == null ? ActionType.ADDED : ActionType.UPDATED; TenantId tenantId = image.getTenantId(); - image.setResourceKey(image.getFileName()); // TODO: generate unique resource key file_name+idx try { TbResourceInfo savedImage = imageService.saveImage(image); notificationEntityService.logEntityAction(tenantId, savedImage.getId(), savedImage, actionType, user); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java b/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java index 2bd7c59a85..367531565f 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ImageDescriptor.java @@ -25,5 +25,6 @@ public class ImageDescriptor { private int width; private int height; private long size; + private String etag; private ImageDescriptor previewDescriptor; } diff --git a/common/util/src/main/java/org/thingsboard/common/util/RegexUtils.java b/common/util/src/main/java/org/thingsboard/common/util/RegexUtils.java index 87d1e11bab..bbeb86efca 100644 --- a/common/util/src/main/java/org/thingsboard/common/util/RegexUtils.java +++ b/common/util/src/main/java/org/thingsboard/common/util/RegexUtils.java @@ -19,6 +19,7 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import java.util.function.UnaryOperator; +import java.util.regex.Matcher; import java.util.regex.Pattern; @NoArgsConstructor(access = AccessLevel.PRIVATE) @@ -37,4 +38,14 @@ public class RegexUtils { return pattern.matcher(input).matches(); } + public static String getMatch(String input, Pattern pattern, int group) { + Matcher matcher = pattern.matcher(input); + if (matcher.find()) { + try { + return matcher.group(group); + } catch (Exception ignored) {} + } + return null; + } + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index c046ca1c33..778192b49c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -16,9 +16,12 @@ package org.thingsboard.server.dao.resource; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.common.util.RegexUtils; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; @@ -32,7 +35,9 @@ import org.thingsboard.server.dao.service.validator.ResourceDataValidator; import org.thingsboard.server.dao.util.ImageUtils; import org.thingsboard.server.dao.util.ImageUtils.ProcessedImage; +import java.util.Objects; import java.util.Set; +import java.util.regex.Pattern; @Service @Slf4j @@ -42,17 +47,22 @@ public class BaseImageService extends BaseResourceService implements ImageServic super(resourceDao, resourceInfoDao, resourceValidator); } + @Transactional @Override public TbResourceInfo saveImage(TbResource image) throws Exception { + if (image.getId() == null) { + image.setResourceKey(getUniqueKey(image.getTenantId(), image.getFileName())); + } resourceValidator.validate(image, TbResourceInfo::getTenantId); ImageDescriptor descriptor = image.getDescriptor(ImageDescriptor.class); Pair result = processImage(image.getData(), descriptor); - image.setDescriptor(JacksonUtil.valueToTree(result.getLeft())); + descriptor = result.getLeft(); + image.setEtag(descriptor.getEtag()); + image.setDescriptor(JacksonUtil.valueToTree(descriptor)); image.setPreview(result.getRight()); - image = saveResource(image, false); - return new TbResourceInfo(image); + return new TbResourceInfo(doSaveResource(image)); } private Pair processImage(byte[] data, ImageDescriptor descriptor) throws Exception { @@ -62,17 +72,42 @@ public class BaseImageService extends BaseResourceService implements ImageServic descriptor.setWidth(image.getWidth()); descriptor.setHeight(image.getHeight()); descriptor.setSize(image.getSize()); + descriptor.setEtag(calculateEtag(data)); ImageDescriptor previewDescriptor = new ImageDescriptor(); previewDescriptor.setWidth(preview.getWidth()); previewDescriptor.setHeight(preview.getHeight()); previewDescriptor.setMediaType(preview.getMediaType()); previewDescriptor.setSize(preview.getSize()); + previewDescriptor.setEtag(preview.getData() != null ? calculateEtag(preview.getData()) : descriptor.getEtag()); descriptor.setPreviewDescriptor(previewDescriptor); return Pair.of(descriptor, preview.getData()); } + private String getUniqueKey(TenantId tenantId, String filename) { + if (!resourceInfoDao.existsByTenantIdAndResourceTypeAndResourceKey(tenantId, ResourceType.IMAGE, filename)) { + return filename; + } + + String basename = StringUtils.substringBeforeLast(filename, "."); + String extension = StringUtils.substringAfterLast(filename, "."); + + Pattern similarImagesPattern = Pattern.compile( + Pattern.quote(basename) + "_(\\d+)\\.?" + Pattern.quote(extension) + ); + int maxImageIdx = resourceInfoDao.findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith( + tenantId, ResourceType.IMAGE, basename + "_").stream() + .map(key -> RegexUtils.getMatch(key, similarImagesPattern, 1)) + .filter(Objects::nonNull).mapToInt(Integer::parseInt) + .max().orElse(0); + String uniqueKey = basename + "_" + (maxImageIdx + 1); + if (!extension.isEmpty()) { + uniqueKey += "." + extension; + } + return uniqueKey; + } + @Override public TbResourceInfo saveImageInfo(TbResourceInfo imageInfo) { return saveResource(new TbResource(imageInfo)); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index bb46af22ff..bb881e5dcd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -67,11 +67,19 @@ public class BaseResourceService extends AbstractCachedEntityService { TbResourceInfo findByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey); + boolean existsByTenantIdAndResourceTypeAndResourceKey(TenantId tenantId, ResourceType resourceType, String resourceKey); + + List findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith(TenantId tenantId, ResourceType resourceType, String resourceKeyQuery); + List findByTenantIdAndEtagAndKeyStartingWith(TenantId tenantId, String etag, String query); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java index affde231f5..37e3f3cb84 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/validator/ResourceDataValidator.java @@ -15,10 +15,10 @@ */ package org.thingsboard.server.dao.service.validator; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; -import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.TenantId; @@ -95,6 +95,9 @@ public class ResourceDataValidator extends DataValidator { if (StringUtils.isEmpty(resource.getFileName())) { throw new DataValidationException("Resource file name should be specified!"); } + if (StringUtils.containsAny(resource.getFileName(), "/", "\\")) { + throw new DataValidationException("File name contains forbidden symbols"); + } if (StringUtils.isEmpty(resource.getResourceKey())) { throw new DataValidationException("Resource key should be specified!"); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java index 62d02233e0..fc7a29af11 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java @@ -82,6 +82,16 @@ public class JpaTbResourceInfoDao extends JpaAbstractDao findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith(TenantId tenantId, ResourceType resourceType, String resourceKeyQuery) { + return resourceInfoRepository.findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith(tenantId.getId(), resourceType.name(), resourceKeyQuery); + } + @Override public List findByTenantIdAndEtagAndKeyStartingWith(TenantId tenantId, String etag, String query) { return DaoUtil.convertDataList(resourceInfoRepository.findByTenantIdAndHashCodeAndResourceKeyStartingWith(tenantId.getId(), etag, query)); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java index e7881c7c74..9c526ae321 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java @@ -22,7 +22,6 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.thingsboard.server.dao.model.sql.TbResourceInfoEntity; -import java.util.Collection; import java.util.List; import java.util.UUID; @@ -55,6 +54,14 @@ public interface TbResourceInfoRepository extends JpaRepository findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith(@Param("tenantId") UUID tenantId, + @Param("resourceType") String resourceType, + @Param("resourceKeyStartsWith") String resourceKeyStartsWith); + List findByTenantIdAndHashCodeAndResourceKeyStartingWith(UUID tenantId, String hashCode, String query); } From 1bb01ef161dddb46e450c6af308d21f4ed9ab1b0 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 15 Nov 2023 16:41:06 +0200 Subject: [PATCH 049/162] UI: Fixed uncontroled focus on field --- .../shared/components/entity/entity-subtype-list.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/shared/components/entity/entity-subtype-list.component.ts b/ui-ngx/src/app/shared/components/entity/entity-subtype-list.component.ts index 6628d14439..89900fb065 100644 --- a/ui-ngx/src/app/shared/components/entity/entity-subtype-list.component.ts +++ b/ui-ngx/src/app/shared/components/entity/entity-subtype-list.component.ts @@ -265,8 +265,8 @@ export class EntitySubTypeListComponent implements ControlValueAccessor, OnInit, const value = (event.value || '').trim(); if (value) { this.add(value); + this.clear(''); } - this.clear(''); } remove(entitySubtype: string) { const index = this.entitySubtypeList.indexOf(entitySubtype); From ebd50555eff87a0b799d0c5b72a7f68e460ac8c0 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Wed, 15 Nov 2023 17:29:47 +0200 Subject: [PATCH 050/162] Updated test --- .../org/thingsboard/server/controller/HomePageApiTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java index c498b73815..148c4afea9 100644 --- a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java @@ -92,6 +92,8 @@ public class HomePageApiTest extends AbstractControllerTest { @MockBean private SmsService smsService; + private static final int DEFAULT_DASHBOARDS_COUNT = 1; + //For system administrator @Test public void testTenantsCountWsCmd() throws Exception { @@ -408,7 +410,7 @@ public class HomePageApiTest extends AbstractControllerTest { Assert.assertEquals(2, usageInfo.getUsers()); Assert.assertEquals(configuration.getMaxUsers(), usageInfo.getMaxUsers()); - Assert.assertEquals(1, usageInfo.getDashboards()); + Assert.assertEquals(DEFAULT_DASHBOARDS_COUNT, usageInfo.getDashboards()); Assert.assertEquals(configuration.getMaxDashboards(), usageInfo.getMaxDashboards()); Assert.assertEquals(0, usageInfo.getTransportMessages()); @@ -478,7 +480,8 @@ public class HomePageApiTest extends AbstractControllerTest { } usageInfo = doGet("/api/usage", UsageInfo.class); - Assert.assertEquals(dashboards.size(), usageInfo.getDashboards()); + int expectedDashboardsCount = dashboards.size() + DEFAULT_DASHBOARDS_COUNT; + Assert.assertEquals(expectedDashboardsCount, usageInfo.getDashboards()); } private Long getInitialEntityCount(EntityType entityType) throws Exception { From a8aeaa80c101f1e5154502516f54d1bec8085019 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Wed, 15 Nov 2023 17:48:36 +0200 Subject: [PATCH 051/162] Update constructRuleChainUpdatedMsg --- .../service/edge/rpc/constructor/RuleChainMsgConstructor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java index 7aac9d36bd..705bea0fae 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/RuleChainMsgConstructor.java @@ -37,6 +37,7 @@ import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; public class RuleChainMsgConstructor { public RuleChainUpdateMsg constructRuleChainUpdatedMsg(UpdateMsgType msgType, RuleChain ruleChain, boolean isRoot, EdgeVersion edgeVersion) { + boolean isTemplateRoot = ruleChain.isRoot(); if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedRuleChainUpdatedMsg(msgType, ruleChain, isRoot); } @@ -44,7 +45,7 @@ public class RuleChainMsgConstructor { RuleChainUpdateMsg result = RuleChainUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(ruleChain)) .setIdMSB(ruleChain.getId().getId().getMostSignificantBits()) .setIdLSB(ruleChain.getId().getId().getLeastSignificantBits()).build(); - ruleChain.setRoot(false); + ruleChain.setRoot(isTemplateRoot); return result; } From 286c46f8c67cfe80ecd8daa254100532a7f93aa3 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Thu, 16 Nov 2023 12:59:05 +0200 Subject: [PATCH 052/162] Provide better naming for edgeVersion boolean version check. Minor refactoring --- .../rpc/constructor/AdminSettingsMsgConstructor.java | 7 ++++--- .../rpc/constructor/AssetProfileMsgConstructor.java | 1 - .../rpc/constructor/TenantProfileMsgConstructor.java | 4 ++-- .../rpc/constructor/WidgetsBundleMsgConstructor.java | 5 +++-- .../edge/rpc/processor/asset/AssetEdgeProcessor.java | 4 ++-- .../processor/asset/AssetProfileEdgeProcessor.java | 8 ++++---- .../edge/rpc/processor/asset/BaseAssetProcessor.java | 3 +-- .../processor/asset/BaseAssetProfileProcessor.java | 4 ++-- .../rpc/processor/device/BaseDeviceProcessor.java | 2 +- .../processor/device/BaseDeviceProfileProcessor.java | 12 ++++++------ .../rpc/processor/device/DeviceEdgeProcessor.java | 4 ++-- .../processor/device/DeviceProfileEdgeProcessor.java | 8 ++++---- .../entityview/BaseEntityViewProcessor.java | 2 +- .../entityview/EntityViewEdgeProcessor.java | 4 ++-- .../edge/rpc/processor/queue/QueueEdgeProcessor.java | 1 - .../processor/relation/BaseRelationProcessor.java | 6 ++---- .../processor/relation/RelationEdgeProcessor.java | 4 ++-- .../processor/resource/BaseResourceProcessor.java | 4 ++-- .../processor/telemetry/BaseTelemetryProcessor.java | 4 +--- .../edge/rpc/processor/user/UserEdgeProcessor.java | 1 - 20 files changed, 41 insertions(+), 47 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java index 26037e221e..e82f3553c3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AdminSettingsMsgConstructor.java @@ -18,6 +18,7 @@ package org.thingsboard.server.service.edge.rpc.constructor; import org.springframework.stereotype.Component; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.AdminSettings; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.TbCoreComponent; @@ -29,16 +30,16 @@ public class AdminSettingsMsgConstructor { public AdminSettingsUpdateMsg constructAdminSettingsUpdateMsg(AdminSettings adminSettings, EdgeVersion edgeVersion) { if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { - return constructDeprecatedWidgetTypeUpdateMsg(adminSettings); + return constructDeprecatedAdminSettingsUpdateMsg(adminSettings); } return AdminSettingsUpdateMsg.newBuilder().setEntity(JacksonUtil.toString(adminSettings)).build(); } - private AdminSettingsUpdateMsg constructDeprecatedWidgetTypeUpdateMsg(AdminSettings adminSettings) { + private AdminSettingsUpdateMsg constructDeprecatedAdminSettingsUpdateMsg(AdminSettings adminSettings) { AdminSettingsUpdateMsg.Builder builder = AdminSettingsUpdateMsg.newBuilder() .setKey(adminSettings.getKey()) .setJsonValue(JacksonUtil.toString(adminSettings.getJsonValue())); - if (adminSettings.getId() != null) { + if (TenantId.SYS_TENANT_ID.equals(adminSettings.getTenantId())) { builder.setIsSystem(true); } return builder.build(); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java index f58271917f..0c6247754c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/AssetProfileMsgConstructor.java @@ -74,5 +74,4 @@ public class AssetProfileMsgConstructor { .setIdMSB(assetProfileId.getId().getMostSignificantBits()) .setIdLSB(assetProfileId.getId().getLeastSignificantBits()).build(); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java index a93c730ee7..6b47b6859d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/TenantProfileMsgConstructor.java @@ -35,9 +35,9 @@ public class TenantProfileMsgConstructor { private DataDecodingEncodingService dataDecodingEncodingService; public TenantProfileUpdateMsg constructTenantProfileUpdateMsg(UpdateMsgType msgType, TenantProfile tenantProfile, EdgeVersion edgeVersion) { - ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? - ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { + ByteString profileData = EdgeVersionUtils.isEdgeVersionOlderThan(edgeVersion, EdgeVersion.V_3_6_1) ? + ByteString.empty() : ByteString.copyFrom(dataDecodingEncodingService.encode(tenantProfile.getProfileData())); return constructDeprecatedTenantProfileUpdateMsg(msgType, tenantProfile, profileData); } return TenantProfileUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(tenantProfile)).build(); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java index 4d7e7be2f9..5093ddf554 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetsBundleMsgConstructor.java @@ -38,8 +38,9 @@ public class WidgetsBundleMsgConstructor { if (EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)) { return constructDeprecatedWidgetsBundleUpdateMsg(msgType, widgetsBundle, widgets); } - return WidgetsBundleUpdateMsg.newBuilder().setWidgets(JacksonUtil.toString(widgets)).setEntity(JacksonUtil.toString(widgetsBundle)) - .setMsgType(msgType).setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) + return WidgetsBundleUpdateMsg.newBuilder().setMsgType(msgType).setEntity(JacksonUtil.toString(widgetsBundle)) + .setWidgets(JacksonUtil.toString(widgets)) + .setIdMSB(widgetsBundle.getId().getId().getMostSignificantBits()) .setIdLSB(widgetsBundle.getId().getId().getLeastSignificantBits()).build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java index 2a140175ed..36a04dbb62 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetEdgeProcessor.java @@ -148,8 +148,8 @@ public class AssetEdgeProcessor extends BaseAssetProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionDeprecated) { - CustomerId customerUUID = isEdgeVersionDeprecated + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetCustomerId(assetUpdateMsg.getCustomerIdMSB(), assetUpdateMsg.getCustomerIdLSB()) : asset.getCustomerId() != null ? asset.getCustomerId() : customerId; asset.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java index 544cf46690..7f8efe1392 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/AssetProfileEdgeProcessor.java @@ -134,16 +134,16 @@ public class AssetProfileEdgeProcessor extends BaseAssetProfileProcessor { } @Override - protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { - UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated + protected void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + UUID defaultEdgeRuleChainUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetUUID(assetProfileUpdateMsg.getDefaultRuleChainIdMSB(), assetProfileUpdateMsg.getDefaultRuleChainIdLSB()) : ruleChainId != null ? ruleChainId.getId() : null; assetProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); } @Override - protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated) { - UUID defaultDashboardUUID = isEdgeVersionDeprecated + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + UUID defaultDashboardUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetUUID(assetProfileUpdateMsg.getDefaultDashboardIdMSB(), assetProfileUpdateMsg.getDefaultDashboardIdLSB()) : assetProfile.getDefaultDashboardId() != null ? assetProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); assetProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java index 916083a362..b5a1b48a1c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProcessor.java @@ -94,6 +94,5 @@ public abstract class BaseAssetProcessor extends BaseEdgeProcessor { return asset; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionDeprecated); - + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Asset asset, AssetUpdateMsg assetUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java index 4d106eeacb..bae0c8c068 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/asset/BaseAssetProfileProcessor.java @@ -95,7 +95,7 @@ public abstract class BaseAssetProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultRuleChainId(TenantId tenantId, AssetProfile assetProfile, RuleChainId ruleChainId); - protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultEdgeRuleChainId(AssetProfile assetProfile, RuleChainId ruleChainId, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); - protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, AssetProfile assetProfile, AssetProfileUpdateMsg assetProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index 4b03c4d76b..27d4b31642 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -159,5 +159,5 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { return deviceCredentials; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index 27ed9eb3c9..c9402730f3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -45,12 +45,12 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { @Autowired private DataDecodingEncodingService dataDecodingEncodingService; - protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionProtoDeprecated) { + protected Pair saveOrUpdateDeviceProfile(TenantId tenantId, DeviceProfileId deviceProfileId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean created = false; boolean deviceProfileNameUpdated = false; deviceCreationLock.lock(); try { - DeviceProfile deviceProfile = isEdgeVersionProtoDeprecated + DeviceProfile deviceProfile = isEdgeVersionOlderThan_3_6_2 ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); if (deviceProfile == null) { @@ -75,8 +75,8 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { RuleChainId ruleChainId = deviceProfile.getDefaultRuleChainId(); setDefaultRuleChainId(tenantId, deviceProfile, created ? null : deviceProfileById.getDefaultRuleChainId()); - setDefaultEdgeRuleChainId(deviceProfile, ruleChainId, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); - setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, isEdgeVersionProtoDeprecated); + setDefaultEdgeRuleChainId(deviceProfile, ruleChainId, deviceProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); + setDefaultDashboardId(tenantId, created ? null : deviceProfileById.getDefaultDashboardId(), deviceProfile, deviceProfileUpdateMsg, isEdgeVersionOlderThan_3_6_2); deviceProfileValidator.validate(deviceProfile, DeviceProfile::getTenantId); if (created) { @@ -127,7 +127,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { protected abstract void setDefaultRuleChainId(TenantId tenantId, DeviceProfile deviceProfile, RuleChainId ruleChainId); - protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); - protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 20cb591320..257cee336f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -289,8 +289,8 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionDeprecated) { - CustomerId customerUUID = isEdgeVersionDeprecated + protected void setCustomerId(TenantId tenantId, CustomerId customerId, Device device, DeviceUpdateMsg deviceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetCustomerId(deviceUpdateMsg.getCustomerIdMSB(), deviceUpdateMsg.getCustomerIdLSB()) : device.getCustomerId() != null ? device.getCustomerId() : customerId; device.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java index 3814992491..7e265e6907 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceProfileEdgeProcessor.java @@ -134,16 +134,16 @@ public class DeviceProfileEdgeProcessor extends BaseDeviceProfileProcessor { } @Override - protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { - UUID defaultEdgeRuleChainUUID = isEdgeVersionDeprecated + protected void setDefaultEdgeRuleChainId(DeviceProfile deviceProfile, RuleChainId ruleChainId, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + UUID defaultEdgeRuleChainUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetUUID(deviceProfileUpdateMsg.getDefaultRuleChainIdMSB(), deviceProfileUpdateMsg.getDefaultRuleChainIdLSB()) : ruleChainId != null ? ruleChainId.getId() : null; deviceProfile.setDefaultEdgeRuleChainId(defaultEdgeRuleChainUUID != null ? new RuleChainId(defaultEdgeRuleChainUUID) : null); } @Override - protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionDeprecated) { - UUID defaultDashboardUUID = isEdgeVersionDeprecated + protected void setDefaultDashboardId(TenantId tenantId, DashboardId dashboardId, DeviceProfile deviceProfile, DeviceProfileUpdateMsg deviceProfileUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + UUID defaultDashboardUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetUUID(deviceProfileUpdateMsg.getDefaultDashboardIdMSB(), deviceProfileUpdateMsg.getDefaultDashboardIdLSB()) : deviceProfile.getDefaultDashboardId() != null ? deviceProfile.getDefaultDashboardId().getId() : (dashboardId != null ? dashboardId.getId() : null); deviceProfile.setDefaultDashboardId(defaultDashboardUUID != null ? new DashboardId(defaultDashboardUUID) : null); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java index 02bc2b9529..7ffa4874fd 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/BaseEntityViewProcessor.java @@ -92,5 +92,5 @@ public abstract class BaseEntityViewProcessor extends BaseEdgeProcessor { return entityView; } - protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionDeprecated); + protected abstract void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java index 7290f731ff..50c5755661 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/entityview/EntityViewEdgeProcessor.java @@ -140,8 +140,8 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor { } @Override - protected void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionDeprecated) { - CustomerId customerUUID = isEdgeVersionDeprecated + protected void setCustomerId(TenantId tenantId, CustomerId customerId, EntityView entityView, EntityViewUpdateMsg entityViewUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + CustomerId customerUUID = isEdgeVersionOlderThan_3_6_2 ? safeGetCustomerId(entityViewUpdateMsg.getCustomerIdMSB(), entityViewUpdateMsg.getCustomerIdLSB()) : entityView.getCustomerId() != null ? entityView.getCustomerId() : customerId; entityView.setCustomerId(customerUUID); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java index 0df98dbcac..ce7bd33f9b 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/queue/QueueEdgeProcessor.java @@ -61,5 +61,4 @@ public class QueueEdgeProcessor extends BaseEdgeProcessor { } return downlinkMsg; } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java index d673b1a613..d5987c29cd 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/BaseRelationProcessor.java @@ -25,20 +25,18 @@ import org.thingsboard.server.common.data.id.EntityIdFactory; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.relation.EntityRelation; import org.thingsboard.server.common.data.relation.RelationTypeGroup; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.UUID; @Slf4j public abstract class BaseRelationProcessor extends BaseEdgeProcessor { - protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg, EdgeVersion edgeVersion) { + protected ListenableFuture processRelationMsg(TenantId tenantId, RelationUpdateMsg relationUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { log.trace("[{}] processRelationMsg [{}]", tenantId, relationUpdateMsg); try { - EntityRelation entityRelation = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + EntityRelation entityRelation = isEdgeVersionOlderThan_3_6_2 ? createEntityRelation(relationUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(relationUpdateMsg.getEntity(), EntityRelation.class); if (entityRelation == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java index 8d75be10ee..8c6854ff3d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/relation/RelationEdgeProcessor.java @@ -35,6 +35,7 @@ import org.thingsboard.server.gen.edge.v1.RelationUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.HashSet; @@ -50,8 +51,7 @@ public class RelationEdgeProcessor extends BaseRelationProcessor { log.trace("[{}] executing processRelationMsgFromEdge [{}] from edge [{}]", tenantId, relationUpdateMsg, edge.getId()); try { edgeSynchronizationManager.getEdgeId().set(edge.getId()); - - return processRelationMsg(tenantId, relationUpdateMsg, edgeVersion); + return processRelationMsg(tenantId, relationUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index 20a8aa372b..5ed377fed2 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -31,10 +31,10 @@ import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; @Slf4j public abstract class BaseResourceProcessor extends BaseEdgeProcessor { - protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg, boolean isEdgeDeprecated) { + protected boolean saveOrUpdateTbResource(TenantId tenantId, TbResourceId tbResourceId, ResourceUpdateMsg resourceUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { boolean resourceKeyUpdated = false; try { - TbResource resource = isEdgeDeprecated + TbResource resource = isEdgeVersionOlderThan_3_6_2 ? createTbResource(tenantId, resourceUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(resourceUpdateMsg.getEntity(), TbResource.class); if (resource == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java index 2eaa69af82..186f030a79 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/telemetry/BaseTelemetryProcessor.java @@ -15,7 +15,6 @@ */ package org.thingsboard.server.service.edge.rpc.processor.telemetry; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -28,7 +27,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.thingsboard.common.util.JacksonUtil; -import org.thingsboard.server.common.msg.rule.engine.DeviceAttributesEventNotificationMsg; import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; @@ -54,6 +52,7 @@ import org.thingsboard.server.common.msg.TbMsg; import org.thingsboard.server.common.msg.TbMsgMetaData; import org.thingsboard.server.common.msg.queue.ServiceType; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; +import org.thingsboard.server.common.msg.rule.engine.DeviceAttributesEventNotificationMsg; import org.thingsboard.server.common.transport.adaptor.JsonConverter; import org.thingsboard.server.common.transport.util.JsonUtils; import org.thingsboard.server.dao.model.ModelConstants; @@ -349,5 +348,4 @@ public abstract class BaseTelemetryProcessor extends BaseEdgeProcessor { return bodyJackson == null ? null : entityDataMsgConstructor.constructEntityDataMsg(tenantId, entityId, actionType, JsonParser.parseString(bodyJackson)); } - } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java index 3a3b00f4c8..8d27c5fc79 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/user/UserEdgeProcessor.java @@ -69,5 +69,4 @@ public class UserEdgeProcessor extends BaseEdgeProcessor { } return downlinkMsg; } - } From 6eadef0d68cdbbf0ab41c5d93cd8b317c0d7efb8 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Thu, 16 Nov 2023 13:15:32 +0200 Subject: [PATCH 053/162] Use JsonGetter/Setter to encode resource data; minor fixes --- .../controller/TbResourceController.java | 8 +--- .../constructor/ResourceMsgConstructor.java | 4 +- .../resource/BaseResourceProcessor.java | 2 +- .../controller/TbResourceControllerTest.java | 45 ++++++++++--------- .../server/edge/ResourceEdgeTest.java | 4 +- .../sql/BaseTbResourceServiceTest.java | 33 +++++++------- .../lwm2m/AbstractLwM2MIntegrationTest.java | 2 +- .../server/common/data/ResourceType.java | 2 +- .../server/common/data/TbResource.java | 45 ++++++++++++------- .../sql/resource/JpaTbResourceInfoDao.java | 16 +++++-- .../resource/resources-library.component.html | 2 +- .../resource/resources-library.component.ts | 12 ++--- .../src/app/shared/models/resource.models.ts | 2 +- 13 files changed, 97 insertions(+), 80 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index 08d7cedd93..b8abaab0ae 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -43,7 +43,6 @@ import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.TbResourceInfoFilter; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TbResourceId; -import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.lwm2m.LwM2mObject; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; @@ -53,7 +52,6 @@ import org.thingsboard.server.service.resource.TbResourceService; import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; -import java.util.Base64; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -170,9 +168,7 @@ public class TbResourceController extends BaseController { @PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException { checkParameter(RESOURCE_ID, strResourceId); TbResourceId resourceId = new TbResourceId(toUUID(strResourceId)); - TbResource resource = checkResourceId(resourceId, Operation.READ); - resource.setBase64Data(Base64.getEncoder().encodeToString(resource.getData())); - return resource; + return checkResourceId(resourceId, Operation.READ); } @ApiOperation(value = "Create Or Update Resource (saveResource)", @@ -191,7 +187,7 @@ public class TbResourceController extends BaseController { @RequestBody TbResource resource) throws Exception { resource.setTenantId(getTenantId()); checkEntity(resource.getId(), resource, Resource.TB_RESOURCE); - return tbResourceService.save(resource, getCurrentUser()); + return new TbResourceInfo(tbResourceService.save(resource, getCurrentUser())); } @ApiOperation(value = "Get Resource Infos (getResources)", diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java index 14da03c37d..02f2d5e000 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java @@ -23,8 +23,6 @@ import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg; import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.queue.util.TbCoreComponent; -import java.util.Base64; - @Component @TbCoreComponent public class ResourceMsgConstructor { @@ -39,7 +37,7 @@ public class ResourceMsgConstructor { .setResourceType(tbResource.getResourceType().name()) .setFileName(tbResource.getFileName()); if (tbResource.getData() != null) { - builder.setData(Base64.getEncoder().encodeToString(tbResource.getData())); + builder.setData(tbResource.getEncodedData()); } if (tbResource.getEtag() != null) { builder.setEtag(tbResource.getEtag()); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index 88d382a6ed..892f7535c0 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -46,7 +46,7 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor { resource.setResourceKey(resourceUpdateMsg.getResourceKey()); resource.setResourceType(ResourceType.valueOf(resourceUpdateMsg.getResourceType())); resource.setFileName(resourceUpdateMsg.getFileName()); - resource.setBase64Data(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); + resource.setEncodedData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); resourceValidator.validate(resource, TbResourceInfo::getTenantId); if (created) { diff --git a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java index 05770f960f..94c69a9722 100644 --- a/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/TbResourceControllerTest.java @@ -101,7 +101,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -119,6 +119,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { Assert.assertArrayEquals(resource.getData(), download(savedResource.getId())); savedResource.setTitle("My new resource"); + savedResource.setData(null); save(savedResource); @@ -136,7 +137,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle(StringUtils.randomAlphabetic(300)); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); Mockito.reset(tbClusterService, auditLogService); @@ -155,7 +156,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -184,7 +185,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -200,7 +201,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -225,7 +226,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -256,7 +257,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } List loadedResources = new ArrayList<>(); @@ -293,7 +294,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("JKS Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } @@ -303,7 +304,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("LWM2M Resource" + i); resource.setResourceType(ResourceType.PKCS_12); resource.setFileName(i + DEFAULT_FILE_NAME_2); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); save(resource); } @@ -340,7 +341,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); resources.add(new TbResourceInfo(save(resource))); } List loadedResources = new ArrayList<>(); @@ -400,7 +401,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("JKS Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResourceInfo saved = new TbResourceInfo(save(resource)); jksResources.add(saved); } @@ -411,7 +412,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("LWM2M Resource" + i); resource.setResourceType(ResourceType.PKCS_12); resource.setFileName(i + DEFAULT_FILE_NAME_2); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource saved = save(resource); lwm2mesources.add(saved); } @@ -477,7 +478,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); expectedResources.add(new TbResourceInfo(save(resource))); } @@ -488,7 +489,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResourceInfo savedResource = new TbResourceInfo(save(resource)); systemResources.add(savedResource); if (i >= 73) { @@ -532,7 +533,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -563,7 +564,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -607,7 +608,7 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("Js resource"); resource.setFileName(JS_TEST_FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); @@ -623,16 +624,16 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.PKCS_12); resource.setTitle("My resource"); resource.setFileName("3.pks"); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); resource.setEtag(savedResource.getEtag()); - savedResource.setBase64Data(TEST_DATA); + savedResource.setEncodedData(TEST_DATA); doPost("/api/resource", savedResource) .andExpect(status().isBadRequest()) .andExpect(statusReason(containsString("can't be updated"))); - savedResource.setBase64Data(null); + savedResource.setData(null); savedResource.setTitle("Updated resource"); savedResource = doPost("/api/resource", savedResource, TbResource.class); assertThat(savedResource.getTitle()).isEqualTo("Updated resource"); @@ -647,12 +648,12 @@ public class TbResourceControllerTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JS_MODULE); resource.setTitle("My resource"); resource.setFileName("module.js"); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); TbResource savedResource = save(resource); resource.setEtag(savedResource.getEtag()); String newData = Base64.getEncoder().encodeToString(new byte[]{1, 2, 3}); - savedResource.setBase64Data(newData); + savedResource.setEncodedData(newData); savedResource.setFileName("new-module.js"); savedResource.setTitle("Updated title"); savedResource = save(savedResource); diff --git a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java index 7a0564debf..61f3ef49aa 100644 --- a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java @@ -45,7 +45,7 @@ public class ResourceEdgeTest extends AbstractEdgeTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("Edge Test Resource"); resource.setFileName(FILE_NAME); - resource.setBase64Data(TEST_DATA); + resource.setEncodedData(TEST_DATA); edgeImitator.expectMessageAmount(1); TbResource savedResource = doPost("/api/resource", resource, TbResource.class); @@ -119,6 +119,6 @@ public class ResourceEdgeTest extends AbstractEdgeTest { TbResource tbResource = doGet("/api/resource/" + uuid, TbResource.class); Assert.assertNotNull(tbResource); Assert.assertEquals("Edge Test Resource", tbResource.getName()); - Assert.assertEquals(TEST_DATA, tbResource.getBase64Data()); + Assert.assertEquals(TEST_DATA, tbResource.getEncodedData()); } } diff --git a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java index e441a0b144..278420589f 100644 --- a/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java @@ -198,7 +198,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { for (int i = 2; i < 4; i++) { createResource("test" + i, i + DEFAULT_FILE_NAME); - assertEquals(i*4, resourceService.sumDataSizeByTenantId(tenantId)); + assertEquals(i * 4, resourceService.sumDataSizeByTenantId(tenantId)); } } @@ -209,7 +209,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setFileName(filename); byte[] b = new byte[]{1, 2, 3, 4}; - resource.setBase64Data(Base64.getEncoder().encodeToString(b)); + resource.setData(b); return tbResourceService.save(resource); } @@ -220,7 +220,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My first resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); @@ -233,7 +233,6 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { assertArrayEquals(TEST_DATA, savedResource.getData()); savedResource.setTitle("My new resource"); - savedResource.setBase64Data(null); savedResource.setData(null); tbResourceService.save(savedResource); @@ -250,7 +249,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setResourceType(ResourceType.LWM2M_MODEL); resource.setFileName("test_model.xml"); - resource.setBase64Data(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes())); + resource.setEncodedData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes())); TbResource savedResource = tbResourceService.save(resource); @@ -271,7 +270,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId()); @@ -286,7 +285,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); @@ -295,7 +294,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); try { Assertions.assertThrows(DataValidationException.class, () -> { @@ -312,7 +311,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setResourceType(ResourceType.JKS); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); Assertions.assertThrows(DataValidationException.class, () -> { tbResourceService.save(resource); }); @@ -325,7 +324,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); Assertions.assertThrows(DataValidationException.class, () -> { tbResourceService.save(resource); }); @@ -352,7 +351,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); @@ -368,7 +367,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTenantId(tenantId); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); TbResource foundResource = resourceService.findResourceByTenantIdAndKey(tenantId, savedResource.getResourceType(), savedResource.getResourceKey()); @@ -383,7 +382,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("My resource"); resource.setFileName(DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResource savedResource = tbResourceService.save(resource); TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId()); @@ -409,7 +408,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); resources.add(new TbResourceInfo(tbResourceService.save(resource))); } @@ -463,7 +462,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("System Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); TbResourceInfo tbResourceInfo = new TbResourceInfo(tbResourceService.save(resource)); if (i >= 50) { resources.add(tbResourceInfo); @@ -476,7 +475,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { resource.setTitle("Tenant Resource" + i); resource.setResourceType(ResourceType.JKS); resource.setFileName(i + DEFAULT_FILE_NAME); - resource.setBase64Data(TEST_BASE64_DATA); + resource.setData(TEST_DATA); resources.add(new TbResourceInfo(tbResourceService.save(resource))); } @@ -487,7 +486,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest { TbResourceInfoFilter filter = TbResourceInfoFilter.builder() .tenantId(tenantId) .build(); - pageData = resourceService.findAllTenantResourcesByTenantId(filter, pageLink); + pageData = resourceService.findAllTenantResourcesByTenantId(filter, pageLink); loadedResources.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java index e3b0d0d9a2..00c6ba6a09 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/AbstractLwM2MIntegrationTest.java @@ -206,7 +206,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte lwModel.setFileName(resourceName); lwModel.setTenantId(tenantId); byte[] bytes = IOUtils.toByteArray(AbstractLwM2MIntegrationTest.class.getClassLoader().getResourceAsStream("lwm2m/" + resourceName)); - lwModel.setBase64Data(Base64.getEncoder().encodeToString(bytes)); + lwModel.setData(bytes); lwModel = doPostWithTypedResponse("/api/resource", lwModel, new TypeReference<>() { }); Assert.assertNotNull(lwModel); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java index b3222a9682..22af597627 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ResourceType.java @@ -24,7 +24,7 @@ public enum ResourceType { JKS("application/x-java-keystore", false, false), PKCS_12("application/x-pkcs12", false, false), JS_MODULE("application/javascript", true, true), - IMAGE(null, true, false); + IMAGE(null, true, true); @Getter private final String mediaType; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java index 3d6c9ad95b..c76d2b5c2d 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java @@ -15,7 +15,9 @@ */ package org.thingsboard.server.common.data; +import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonSetter; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -23,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; import org.thingsboard.server.common.data.id.TbResourceId; import java.util.Base64; +import java.util.Optional; @Slf4j @Data @@ -31,9 +34,6 @@ public class TbResource extends TbResourceInfo { private static final long serialVersionUID = 7379609705527272306L; - @ApiModelProperty(position = 12, value = "Resource data.", example = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=", accessMode = ApiModelProperty.AccessMode.READ_WRITE) - private String base64Data; - @JsonIgnore private byte[] data; @@ -54,22 +54,37 @@ public class TbResource extends TbResourceInfo { public TbResource(TbResource resource) { super(resource); - this.base64Data = resource.base64Data; this.data = resource.data; this.preview = resource.preview; } - @JsonIgnore - public byte[] getData() { - if (data == null && base64Data != null) { - try { - data = Base64.getDecoder().decode(base64Data); - } catch (Exception e) { - throw new IllegalArgumentException("Failed to decode resource data from Base64", e); - } - base64Data = null; - } - return data; + @ApiModelProperty(position = 12, value = "Resource data.", example = "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=", accessMode = ApiModelProperty.AccessMode.READ_WRITE) + @JsonGetter("data") + public String getEncodedData() { + return Optional.ofNullable(data) + .map(Base64.getEncoder()::encodeToString) + .orElse(null); + } + + @JsonSetter("data") + public void setEncodedData(String data) { + this.data = Optional.ofNullable(data) + .map(Base64.getDecoder()::decode) + .orElse(null); + } + + @JsonGetter("preview") + public String getEncodedPreview() { + return Optional.ofNullable(preview) + .map(Base64.getEncoder()::encodeToString) + .orElse(null); + } + + @JsonSetter("preview") + public void setEncodedPreview(String preview) { + this.preview = Optional.ofNullable(preview) + .map(Base64.getDecoder()::decode) + .orElse(null); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java index fc7a29af11..5617aa997c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java @@ -32,8 +32,10 @@ import org.thingsboard.server.dao.resource.TbResourceInfoDao; import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; +import java.util.EnumSet; import java.util.List; import java.util.Objects; +import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; @@ -57,22 +59,28 @@ public class JpaTbResourceInfoDao extends JpaAbstractDao findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { + Set resourceTypes = filter.getResourceTypes(); + if (CollectionsUtil.isEmpty(resourceTypes)) { + resourceTypes = EnumSet.allOf(ResourceType.class); + } return DaoUtil.toPageData(resourceInfoRepository .findAllTenantResourcesByTenantId( filter.getTenantId().getId(), TenantId.NULL_UUID, - CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes() - .stream().map(Enum::name).collect(Collectors.toList()) : null, + resourceTypes.stream().map(Enum::name).collect(Collectors.toList()), Objects.toString(pageLink.getTextSearch(), ""), DaoUtil.toPageable(pageLink))); } @Override public PageData findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) { + Set resourceTypes = filter.getResourceTypes(); + if (CollectionsUtil.isEmpty(resourceTypes)) { + resourceTypes = EnumSet.allOf(ResourceType.class); + } return DaoUtil.toPageData(resourceInfoRepository .findTenantResourcesByTenantId( filter.getTenantId().getId(), - CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes() - .stream().map(Enum::name).collect(Collectors.toList()) : null, + resourceTypes.stream().map(Enum::name).collect(Collectors.toList()), pageLink.getTextSearch(), DaoUtil.toPageable(pageLink))); } diff --git a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html index cb7dbf9ddc..f955d26f0d 100644 --- a/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html +++ b/ui-ngx/src/app/modules/home/pages/admin/resource/resources-library.component.html @@ -67,7 +67,7 @@ impleme this.entityForm.get('title').enable({emitEvent: false}); } this.entityForm.patchValue({ - base64Data: null, + data: null, fileName: null }, {emitEvent: false}); }); @@ -93,7 +93,7 @@ export class ResourcesLibraryComponent extends EntityComponent impleme title: [entity ? entity.title : '', [Validators.required, Validators.maxLength(255)]], resourceType: [entity?.resourceType ? entity.resourceType : ResourceType.JS_MODULE, Validators.required], fileName: [entity ? entity.fileName : null, Validators.required], - base64Data: [entity ? entity.base64Data : null, Validators.required] + data: [entity ? entity.data : null, Validators.required] }); } @@ -102,20 +102,20 @@ export class ResourcesLibraryComponent extends EntityComponent impleme this.entityForm.get('resourceType').disable({emitEvent: false}); if (entity.resourceType !== ResourceType.JS_MODULE) { this.entityForm.get('fileName').disable({emitEvent: false}); - this.entityForm.get('base64Data').disable({emitEvent: false}); + this.entityForm.get('data').disable({emitEvent: false}); } } this.entityForm.patchValue({ resourceType: entity.resourceType, fileName: entity.fileName, title: entity.title, - base64Data: entity.base64Data + data: entity.data }); } prepareFormValue(formValue: Resource): Resource { - if (this.isEdit && !isDefinedAndNotNull(formValue.base64Data)) { - delete formValue.base64Data; + if (this.isEdit && !isDefinedAndNotNull(formValue.data)) { + delete formValue.data; } return super.prepareFormValue(formValue); } diff --git a/ui-ngx/src/app/shared/models/resource.models.ts b/ui-ngx/src/app/shared/models/resource.models.ts index 61d413f60e..eb954da35a 100644 --- a/ui-ngx/src/app/shared/models/resource.models.ts +++ b/ui-ngx/src/app/shared/models/resource.models.ts @@ -64,6 +64,6 @@ export interface ResourceInfo extends Omit, 'name' | 'lab } export interface Resource extends ResourceInfo { - base64Data: string; + data: string; name?: string; } From e9c003f76daf68c2c6998921bf74f71dfc670ba7 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Wed, 15 Nov 2023 15:14:41 +0200 Subject: [PATCH 054/162] Subscribe first in testSubscribingToUnreadNotificationsCount (cherry picked from commit edcc507f4b9ec40ee92c70f2c0d8f8490f7ccbe8) --- .../server/service/notification/NotificationApiTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java index 26be4e9bd3..ba0b4e4763 100644 --- a/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java +++ b/application/src/test/java/org/thingsboard/server/service/notification/NotificationApiTest.java @@ -113,15 +113,13 @@ public class NotificationApiTest extends AbstractNotificationApiTest { @Test public void testSubscribingToUnreadNotificationsCount() { + wsClient.subscribeForUnreadNotificationsCount().waitForReply(true); NotificationTarget notificationTarget = createNotificationTarget(customerUserId); String notificationText1 = "Notification 1"; submitNotificationRequest(notificationTarget.getId(), notificationText1); String notificationText2 = "Notification 2"; submitNotificationRequest(notificationTarget.getId(), notificationText2); - wsClient.subscribeForUnreadNotificationsCount(); - wsClient.waitForReply(true); - await().atMost(2, TimeUnit.SECONDS) .until(() -> wsClient.getLastCountUpdate().getTotalUnreadCount() == 2); } From 409f45272b3aca996eb15347b1ed23f1371fb514 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Thu, 16 Nov 2023 14:33:36 +0200 Subject: [PATCH 055/162] Improve EdgeProcessor to receive boolean instead of EdgeVersion: it simplifies the code on Edge as well --- .../edge/rpc/processor/alarm/AlarmEdgeProcessor.java | 3 ++- .../edge/rpc/processor/alarm/BaseAlarmProcessor.java | 3 +-- .../edge/rpc/processor/device/BaseDeviceProcessor.java | 6 ++---- .../rpc/processor/device/BaseDeviceProfileProcessor.java | 6 +++--- .../edge/rpc/processor/device/DeviceEdgeProcessor.java | 2 +- .../org/thingsboard/server/common/data/edge/EdgeEvent.java | 2 ++ 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java index b934a33d54..a09d36f656 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/AlarmEdgeProcessor.java @@ -37,6 +37,7 @@ import org.thingsboard.server.gen.edge.v1.DownlinkMsg; import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.ArrayList; import java.util.List; @@ -51,7 +52,7 @@ public class AlarmEdgeProcessor extends BaseAlarmProcessor { log.trace("[{}] processAlarmMsgFromEdge [{}]", tenantId, alarmUpdateMsg); try { edgeSynchronizationManager.getEdgeId().set(edgeId); - return processAlarmMsg(tenantId, alarmUpdateMsg, edgeVersion); + return processAlarmMsg(tenantId, alarmUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java index fd53e38f4a..ab30d21e1f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/alarm/BaseAlarmProcessor.java @@ -47,10 +47,9 @@ import java.util.UUID; @Slf4j public abstract class BaseAlarmProcessor extends BaseEdgeProcessor { - public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, EdgeVersion edgeVersion) { + public ListenableFuture processAlarmMsg(TenantId tenantId, AlarmUpdateMsg alarmUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { log.trace("[{}] processAlarmMsg [{}]", tenantId, alarmUpdateMsg); AlarmId alarmId = new AlarmId(new UUID(alarmUpdateMsg.getIdMSB(), alarmUpdateMsg.getIdLSB())); - boolean isEdgeVersionOlderThan_3_6_2 = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion); Alarm alarm = isEdgeVersionOlderThan_3_6_2 ? createDeprecatedAlarm(tenantId, alarmUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(alarmUpdateMsg.getEntity(), Alarm.class); if (alarm == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java index 27d4b31642..4c5141034d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProcessor.java @@ -32,10 +32,8 @@ import org.thingsboard.server.common.data.security.DeviceCredentials; import org.thingsboard.server.common.data.security.DeviceCredentialsType; import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; -import org.thingsboard.server.gen.edge.v1.EdgeVersion; import org.thingsboard.server.queue.util.DataDecodingEncodingService; import org.thingsboard.server.service.edge.rpc.processor.BaseEdgeProcessor; -import org.thingsboard.server.service.edge.rpc.utils.EdgeVersionUtils; import java.util.Optional; import java.util.UUID; @@ -121,8 +119,8 @@ public abstract class BaseDeviceProcessor extends BaseEdgeProcessor { return device; } - protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, EdgeVersion edgeVersion) { - DeviceCredentials deviceCredentials = EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion) + protected void updateDeviceCredentials(TenantId tenantId, DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg, boolean isEdgeVersionOlderThan_3_6_2) { + DeviceCredentials deviceCredentials = isEdgeVersionOlderThan_3_6_2 ? createDeviceCredentials(deviceCredentialsUpdateMsg) : JacksonUtil.fromStringIgnoreUnknownProperties(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class); if (deviceCredentials == null) { diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java index c9402730f3..97d751dc27 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/BaseDeviceProfileProcessor.java @@ -51,8 +51,8 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { deviceCreationLock.lock(); try { DeviceProfile deviceProfile = isEdgeVersionOlderThan_3_6_2 - ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) - : JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); + ? createDeviceProfile(tenantId, deviceProfileId, deviceProfileUpdateMsg) + : JacksonUtil.fromStringIgnoreUnknownProperties(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class); if (deviceProfile == null) { throw new RuntimeException("[{" + tenantId + "}] deviceProfileUpdateMsg {" + deviceProfileUpdateMsg + "} cannot be converted to device profile"); } @@ -86,7 +86,7 @@ public abstract class BaseDeviceProfileProcessor extends BaseEdgeProcessor { } catch (Exception e) { log.error("[{}] Failed to process device profile update msg [{}]", tenantId, deviceProfileUpdateMsg, e); throw e; - } finally { + } finally { deviceCreationLock.unlock(); } return Pair.of(created, deviceProfileNameUpdated); diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java index 257cee336f..fb8db00890 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/device/DeviceEdgeProcessor.java @@ -102,7 +102,7 @@ public class DeviceEdgeProcessor extends BaseDeviceProcessor { try { edgeSynchronizationManager.getEdgeId().set(edgeId); - updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg, edgeVersion); + updateDeviceCredentials(tenantId, deviceCredentialsUpdateMsg, EdgeVersionUtils.isEdgeVersionOlderThan_3_6_2(edgeVersion)); } finally { edgeSynchronizationManager.getEdgeId().remove(); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEvent.java b/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEvent.java index 3688f5c6c2..1baf707040 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEvent.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/edge/EdgeEvent.java @@ -31,6 +31,8 @@ import java.util.UUID; @ToString(callSuper = true) public class EdgeEvent extends BaseData { + private static final long serialVersionUID = 5548866356798094088L; + private long seqId; private TenantId tenantId; private EdgeId edgeId; From 72ae6eb70848646e6afb3c5994afb7c824eba51f Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Thu, 16 Nov 2023 15:13:00 +0200 Subject: [PATCH 056/162] Version control support for resources --- .../main/data/upgrade/3.6.1/schema_update.sql | 1 + .../server/controller/ImageController.java | 10 +-- .../controller/TbResourceController.java | 25 ++++++ .../DefaultExportableEntitiesService.java | 10 +++ .../exporting/ExportableEntitiesService.java | 2 + .../exporting/impl/ResourceExportService.java | 36 ++++++++ .../importing/impl/ResourceImportService.java | 83 +++++++++++++++++++ .../impl/WidgetTypeImportService.java | 4 - .../DefaultEntitiesVersionControlService.java | 6 +- .../server/dao/resource/ResourceService.java | 2 +- .../server/common/data/TbResource.java | 3 - .../server/common/data/TbResourceInfo.java | 28 +++++-- .../server/common/data/sync/JsonTbEntity.java | 4 +- .../server/dao/ExportableEntityDao.java | 6 +- .../dao/model/sql/TbResourceEntity.java | 6 ++ .../dao/model/sql/TbResourceInfoEntity.java | 6 ++ .../server/dao/resource/BaseImageService.java | 2 +- .../dao/resource/BaseResourceService.java | 8 +- .../server/dao/resource/TbResourceDao.java | 3 +- .../dao/sql/resource/JpaTbResourceDao.java | 21 +++++ .../resource/TbResourceInfoRepository.java | 4 +- .../sql/resource/TbResourceRepository.java | 9 +- .../dao/sql/widget/JpaWidgetTypeDao.java | 8 +- .../dao/sql/widget/WidgetTypeRepository.java | 5 +- .../main/resources/sql/schema-entities.sql | 1 + 25 files changed, 259 insertions(+), 34 deletions(-) create mode 100644 application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/impl/ResourceExportService.java create mode 100644 application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/ResourceImportService.java diff --git a/application/src/main/data/upgrade/3.6.1/schema_update.sql b/application/src/main/data/upgrade/3.6.1/schema_update.sql index c19ea2e4e8..27c7adf523 100644 --- a/application/src/main/data/upgrade/3.6.1/schema_update.sql +++ b/application/src/main/data/upgrade/3.6.1/schema_update.sql @@ -30,5 +30,6 @@ $$; ALTER TABLE resource ADD COLUMN IF NOT EXISTS descriptor varchar, ADD COLUMN IF NOT EXISTS preview bytea; +ALTER TABLE resource ADD COLUMN IF NOT EXISTS external_id uuid -- RESOURCES UPDATE END diff --git a/application/src/main/java/org/thingsboard/server/controller/ImageController.java b/application/src/main/java/org/thingsboard/server/controller/ImageController.java index add38ee272..98e7a3a4e8 100644 --- a/application/src/main/java/org/thingsboard/server/controller/ImageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/ImageController.java @@ -35,7 +35,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; @@ -88,7 +87,7 @@ public class ImageController extends BaseController { image.setResourceType(ResourceType.IMAGE); ImageDescriptor descriptor = new ImageDescriptor(); descriptor.setMediaType(file.getContentType()); - image.setDescriptor(JacksonUtil.valueToTree(descriptor)); + image.setDescriptorValue(descriptor); image.setData(file.getBytes()); return tbImageService.save(image, user); } @@ -99,11 +98,12 @@ public class ImageController extends BaseController { @PathVariable String key, @RequestPart MultipartFile file) throws Exception { TbResourceInfo imageInfo = checkImageInfo(type, key, Operation.WRITE); - ImageDescriptor descriptor = imageInfo.getDescriptor(ImageDescriptor.class); - TbResource image = new TbResource(imageInfo); image.setData(file.getBytes()); - descriptor.setMediaType(file.getContentType()); + image.updateDescriptor(ImageDescriptor.class, descriptor -> { + descriptor.setMediaType(file.getContentType()); + return descriptor; + }); return tbImageService.save(image, getCurrentUser()); } diff --git a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java index b8abaab0ae..c5445e4465 100644 --- a/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java +++ b/application/src/main/java/org/thingsboard/server/controller/TbResourceController.java @@ -53,6 +53,7 @@ import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; import java.util.Collections; +import java.util.EnumSet; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -226,6 +227,30 @@ public class TbResourceController extends BaseController { } } + @ApiOperation(value = "Get All Resource Infos (getAllResources)", + notes = "Returns a page of Resource Info objects owned by tenant. " + + PAGE_DATA_PARAMETERS + RESOURCE_INFO_DESCRIPTION + TENANT_AUTHORITY_PARAGRAPH, + produces = "application/json") + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") + @GetMapping(value = "/resource/tenant") + public PageData getTenantResources(@ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) + @RequestParam int pageSize, + @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) + @RequestParam int page, + @ApiParam(value = RESOURCE_TEXT_SEARCH_DESCRIPTION) + @RequestParam(required = false) String textSearch, + @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = RESOURCE_SORT_PROPERTY_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortProperty, + @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortOrder) throws ThingsboardException { + PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); + TbResourceInfoFilter filter = TbResourceInfoFilter.builder() + .tenantId(getTenantId()) + .resourceTypes(EnumSet.allOf(ResourceType.class)) + .build(); + return checkNotNull(resourceService.findTenantResourcesByTenantId(filter, pageLink)); + } + @ApiOperation(value = "Get LwM2M Objects (getLwm2mListObjectsPage)", notes = "Returns a page of LwM2M objects parsed from Resources with type 'LWM2M_MODEL' owned by tenant or sysadmin. " + PAGE_DATA_PARAMETERS + LWM2M_OBJECT_DESCRIPTION + TENANT_AUTHORITY_PARAGRAPH, diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/DefaultExportableEntitiesService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/DefaultExportableEntitiesService.java index 3358e5182f..d112075a51 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/DefaultExportableEntitiesService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/DefaultExportableEntitiesService.java @@ -118,6 +118,16 @@ public class DefaultExportableEntitiesService implements ExportableEntitiesServi } } + @Override + public PageData findEntitiesIdsByTenantId(TenantId tenantId, EntityType entityType, PageLink pageLink) { + ExportableEntityDao dao = getExportableEntityDao(entityType); + if (dao != null) { + return dao.findIdsByTenantId(tenantId.getId(), pageLink); + } else { + return new PageData<>(); + } + } + @Override public I getExternalIdByInternal(I internalId) { ExportableEntityDao dao = getExportableEntityDao(internalId.getEntityType()); diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/ExportableEntitiesService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/ExportableEntitiesService.java index c5c26c4476..eee102961d 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/ExportableEntitiesService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/ExportableEntitiesService.java @@ -35,6 +35,8 @@ public interface ExportableEntitiesService { , I extends EntityId> PageData findEntitiesByTenantId(TenantId tenantId, EntityType entityType, PageLink pageLink); + PageData findEntitiesIdsByTenantId(TenantId tenantId, EntityType entityType, PageLink pageLink); + I getExternalIdByInternal(I internalId); void removeById(TenantId tenantId, I id); diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/impl/ResourceExportService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/impl/ResourceExportService.java new file mode 100644 index 0000000000..45e21f5fb4 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/exporting/impl/ResourceExportService.java @@ -0,0 +1,36 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.sync.ie.exporting.impl; + +import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.sync.ie.EntityExportData; +import org.thingsboard.server.queue.util.TbCoreComponent; + +import java.util.Set; + +@Service +@TbCoreComponent +public class ResourceExportService extends BaseEntityExportService> { + + @Override + public Set getSupportedEntityTypes() { + return Set.of(EntityType.TB_RESOURCE); + } + +} diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/ResourceImportService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/ResourceImportService.java new file mode 100644 index 0000000000..bc7db18e80 --- /dev/null +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/ResourceImportService.java @@ -0,0 +1,83 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.service.sync.ie.importing.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.common.data.TbResource; +import org.thingsboard.server.common.data.User; +import org.thingsboard.server.common.data.exception.ThingsboardException; +import org.thingsboard.server.common.data.id.TbResourceId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.sync.ie.EntityExportData; +import org.thingsboard.server.dao.resource.ResourceService; +import org.thingsboard.server.queue.util.TbCoreComponent; +import org.thingsboard.server.service.sync.vc.data.EntitiesImportCtx; + +@Service +@TbCoreComponent +@RequiredArgsConstructor +public class ResourceImportService extends BaseEntityImportService> { + + private final ResourceService resourceService; + + @Override + protected void setOwner(TenantId tenantId, TbResource resource, IdProvider idProvider) { + resource.setTenantId(tenantId); + } + + @Override + protected TbResource prepare(EntitiesImportCtx ctx, TbResource resource, TbResource oldResource, EntityExportData exportData, IdProvider idProvider) { + return resource; + } + + @Override + protected TbResource findExistingEntity(EntitiesImportCtx ctx, TbResource resource, IdProvider idProvider) { + TbResource existingResource = super.findExistingEntity(ctx, resource, idProvider); + if (existingResource == null && ctx.isFindExistingByName()) { + existingResource = resourceService.findResourceByTenantIdAndKey(ctx.getTenantId(), resource.getResourceType(), resource.getResourceKey()); + } + return existingResource; + } + + @Override + protected boolean compare(EntitiesImportCtx ctx, EntityExportData exportData, TbResource prepared, TbResource existing) { + return true; + } + + @Override + protected TbResource deepCopy(TbResource resource) { + return new TbResource(resource); + } + + @Override + protected TbResource saveOrUpdate(EntitiesImportCtx ctx, TbResource resource, EntityExportData exportData, IdProvider idProvider) { + return resourceService.saveResource(resource); + } + + @Override + protected void onEntitySaved(User user, TbResource savedResource, TbResource oldResource) throws ThingsboardException { + super.onEntitySaved(user, savedResource, oldResource); + clusterService.onResourceChange(savedResource, null); + } + + @Override + public EntityType getEntityType() { + return EntityType.TB_RESOURCE; + } + +} diff --git a/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/WidgetTypeImportService.java b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/WidgetTypeImportService.java index 88ebbbcee3..78cd9a66f6 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/WidgetTypeImportService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/ie/importing/impl/WidgetTypeImportService.java @@ -20,13 +20,9 @@ import org.springframework.stereotype.Service; import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetTypeId; -import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.sync.ie.WidgetTypeExportData; -import org.thingsboard.server.common.data.sync.ie.WidgetsBundleExportData; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; -import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.widget.WidgetTypeService; -import org.thingsboard.server.dao.widget.WidgetsBundleService; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.sync.vc.data.EntitiesImportCtx; diff --git a/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java b/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java index 89d5153a81..f98a2ad780 100644 --- a/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java +++ b/application/src/main/java/org/thingsboard/server/service/sync/vc/DefaultEntitiesVersionControlService.java @@ -208,10 +208,10 @@ public class DefaultEntitiesVersionControlService implements EntitiesVersionCont } if (config.isAllEntities()) { - DaoUtil.processInBatches(pageLink -> exportableEntitiesService.findEntitiesByTenantId(ctx.getTenantId(), entityType, pageLink) - , 100, entity -> { + DaoUtil.processInBatches(pageLink -> exportableEntitiesService.findEntitiesIdsByTenantId(ctx.getTenantId(), entityType, pageLink), + 100, entityId -> { try { - ctx.add(saveEntityData(ctx, entity.getId())); + ctx.add(saveEntityData(ctx, entityId)); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 7240b1b742..21b83d17bd 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -34,7 +34,7 @@ public interface ResourceService extends EntityDaoService { TbResource saveResource(TbResource resource, boolean doValidate); - TbResource findResourceByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceId); + TbResource findResourceByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceKey); TbResource findResourceById(TenantId tenantId, TbResourceId resourceId); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java index c76d2b5c2d..2324eae1a7 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResource.java @@ -16,7 +16,6 @@ package org.thingsboard.server.common.data; import com.fasterxml.jackson.annotation.JsonGetter; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonSetter; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -34,10 +33,8 @@ public class TbResource extends TbResourceInfo { private static final long serialVersionUID = 7379609705527272306L; - @JsonIgnore private byte[] data; - @JsonIgnore private byte[] preview; public TbResource() { diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 31ef6b8ea1..11e21c6451 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -19,7 +19,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ObjectNode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,11 +29,13 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.validation.Length; import org.thingsboard.server.common.data.validation.NoXss; +import java.util.function.UnaryOperator; + @ApiModel @Slf4j @Data @EqualsAndHashCode(callSuper = true) -public class TbResourceInfo extends BaseData implements HasName, HasTenantId { +public class TbResourceInfo extends BaseData implements HasName, HasTenantId, ExportableEntity { private static final long serialVersionUID = 7282664529021651736L; @@ -52,15 +53,17 @@ public class TbResourceInfo extends BaseData implements HasName, H private String resourceKey; @ApiModelProperty(position = 7, value = "Resource search text.", example = "19_1.0:binaryappdatacontainer", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String searchText; + @ApiModelProperty(position = 8, value = "Resource etag.", example = "33a64df551425fcc55e4d42a148795d9f25f89d4", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String etag; @NoXss @Length(fieldName = "file name") @ApiModelProperty(position = 9, value = "Resource file name.", example = "19.xml", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String fileName; - @JsonProperty(access = JsonProperty.Access.READ_ONLY) private JsonNode descriptor; + private TbResourceId externalId; + public TbResourceInfo() { super(); } @@ -78,13 +81,14 @@ public class TbResourceInfo extends BaseData implements HasName, H this.searchText = resourceInfo.searchText; this.etag = resourceInfo.etag; this.fileName = resourceInfo.fileName; - this.descriptor = resourceInfo.descriptor; + this.descriptor = resourceInfo.descriptor != null ? resourceInfo.descriptor.deepCopy() : null; + this.externalId = resourceInfo.externalId; } @ApiModelProperty(position = 1, value = "JSON object with the Resource Id. " + "Specify this field to update the Resource. " + "Referencing non-existing Resource Id will cause error. " + - "Omit this field to create new Resource." ) + "Omit this field to create new Resource.") @Override public TbResourceId getId() { return super.getId(); @@ -97,7 +101,7 @@ public class TbResourceInfo extends BaseData implements HasName, H } @Override - @JsonIgnore + @JsonProperty(access = JsonProperty.Access.READ_ONLY) public String getName() { return title; } @@ -107,9 +111,19 @@ public class TbResourceInfo extends BaseData implements HasName, H return searchText != null ? searchText : title; } - @JsonIgnore public T getDescriptor(Class type) throws JsonProcessingException { return descriptor != null ? mapper.treeToValue(descriptor, type) : null; } + public void updateDescriptor(Class type, UnaryOperator updater) throws JsonProcessingException { + T descriptor = getDescriptor(type); + descriptor = updater.apply(descriptor); + setDescriptorValue(descriptor); + } + + @JsonIgnore + public void setDescriptorValue(Object value) { + this.descriptor = value != null ? mapper.valueToTree(value) : null; + } + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/sync/JsonTbEntity.java b/common/data/src/main/java/org/thingsboard/server/common/data/sync/JsonTbEntity.java index 92c6a332df..10f20cc973 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/sync/JsonTbEntity.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/sync/JsonTbEntity.java @@ -25,6 +25,7 @@ import org.thingsboard.server.common.data.Dashboard; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.EntityView; +import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.notification.rule.NotificationRule; @@ -56,7 +57,8 @@ import java.lang.annotation.Target; @Type(name = "WIDGET_TYPE", value = WidgetTypeDetails.class), @Type(name = "NOTIFICATION_TEMPLATE", value = NotificationTemplate.class), @Type(name = "NOTIFICATION_TARGET", value = NotificationTarget.class), - @Type(name = "NOTIFICATION_RULE", value = NotificationRule.class) + @Type(name = "NOTIFICATION_RULE", value = NotificationRule.class), + @Type(name = "TB_RESOURCE", value = TbResource.class) }) @JsonIgnoreProperties(value = {"tenantId", "createdTime"}, ignoreUnknown = true) public @interface JsonTbEntity { diff --git a/dao/src/main/java/org/thingsboard/server/dao/ExportableEntityDao.java b/dao/src/main/java/org/thingsboard/server/dao/ExportableEntityDao.java index 169d7c3b88..5ac75f94f7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/ExportableEntityDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/ExportableEntityDao.java @@ -22,7 +22,7 @@ import org.thingsboard.server.common.data.page.PageLink; import java.util.UUID; -public interface ExportableEntityDao> extends Dao { +public interface ExportableEntityDao> extends Dao { T findByTenantIdAndExternalId(UUID tenantId, UUID externalId); @@ -30,6 +30,10 @@ public interface ExportableEntityDao findByTenantId(UUID tenantId, PageLink pageLink); + default PageData findIdsByTenantId(UUID tenantId, PageLink pageLink) { + return findByTenantId(tenantId, pageLink).mapData(ExportableEntity::getId); + } + I getExternalIdByInternal(I internalId); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java index 41c5ebc920..ff63994259 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceEntity.java @@ -32,6 +32,7 @@ import javax.persistence.Entity; import javax.persistence.Table; import java.util.UUID; +import static org.thingsboard.server.dao.model.ModelConstants.EXTERNAL_ID_PROPERTY; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DATA_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DESCRIPTOR_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; @@ -82,6 +83,9 @@ public class TbResourceEntity extends BaseSqlEntity { @Column(name = RESOURCE_PREVIEW_COLUMN) private byte[] preview; + @Column(name = EXTERNAL_ID_PROPERTY) + private UUID externalId; + public TbResourceEntity() { } @@ -102,6 +106,7 @@ public class TbResourceEntity extends BaseSqlEntity { this.etag = resource.getEtag(); this.descriptor = resource.getDescriptor(); this.preview = resource.getPreview(); + this.externalId = getUuid(resource.getExternalId()); } @Override @@ -118,6 +123,7 @@ public class TbResourceEntity extends BaseSqlEntity { resource.setEtag(etag); resource.setDescriptor(descriptor); resource.setPreview(preview); + resource.setExternalId(getEntityId(externalId, TbResourceId::new)); return resource; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java index 9ab5024b32..1244e25d4c 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TbResourceInfoEntity.java @@ -33,6 +33,7 @@ import javax.persistence.Entity; import javax.persistence.Table; import java.util.UUID; +import static org.thingsboard.server.dao.model.ModelConstants.EXTERNAL_ID_PROPERTY; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_DESCRIPTOR_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_ETAG_COLUMN; import static org.thingsboard.server.dao.model.ModelConstants.RESOURCE_FILE_NAME_COLUMN; @@ -75,6 +76,9 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen @Column(name = RESOURCE_DESCRIPTOR_COLUMN) private JsonNode descriptor; + @Column(name = EXTERNAL_ID_PROPERTY) + private UUID externalId; + public TbResourceInfoEntity() { } @@ -91,6 +95,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen this.hashCode = resource.getEtag(); this.fileName = resource.getFileName(); this.descriptor = resource.getDescriptor(); + this.externalId = getUuid(resource.getExternalId()); } @Override @@ -105,6 +110,7 @@ public class TbResourceInfoEntity extends BaseSqlEntity implemen resource.setEtag(hashCode); resource.setFileName(fileName); resource.setDescriptor(descriptor); + resource.setExternalId(getEntityId(externalId, TbResourceId::new)); return resource; } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 778192b49c..857296b9b5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -59,7 +59,7 @@ public class BaseImageService extends BaseResourceService implements ImageServic Pair result = processImage(image.getData(), descriptor); descriptor = result.getLeft(); image.setEtag(descriptor.getEtag()); - image.setDescriptor(JacksonUtil.valueToTree(descriptor)); + image.setDescriptorValue(descriptor); image.setPreview(result.getRight()); return new TbResourceInfo(doSaveResource(image)); diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index bb881e5dcd..9be95db9e7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -96,8 +96,7 @@ public class BaseResourceService extends AbstractCachedEntityService, TenantEntityWithDataDao { +public interface TbResourceDao extends Dao, TenantEntityWithDataDao, ExportableEntityDao { TbResource findResourceByTenantIdAndKey(TenantId tenantId, ResourceType resourceType, String resourceId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java index 28bebf3e4f..370b21a90e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceDao.java @@ -109,6 +109,27 @@ public class JpaTbResourceDao extends JpaAbstractDao findByTenantId(UUID tenantId, PageLink pageLink) { + return findAllByTenantId(TenantId.fromUUID(tenantId), pageLink); + } + + @Override + public PageData findIdsByTenantId(UUID tenantId, PageLink pageLink) { + return DaoUtil.pageToPageData(resourceRepository.findIdsByTenantId(tenantId, DaoUtil.toPageable(pageLink)) + .map(TbResourceId::new)); + } + + @Override + public TbResourceId getExternalIdByInternal(TbResourceId internalId) { + return DaoUtil.toEntityId(resourceRepository.getExternalIdByInternal(internalId.getId()), TbResourceId::new); + } + @Override public EntityType getEntityType() { return EntityType.TB_RESOURCE; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java index 9c526ae321..0a0f7ff127 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java @@ -59,8 +59,8 @@ public interface TbResourceInfoRepository extends JpaRepository findKeysByTenantIdAndResourceTypeAndResourceKeyStartingWith(@Param("tenantId") UUID tenantId, - @Param("resourceType") String resourceType, - @Param("resourceKeyStartsWith") String resourceKeyStartsWith); + @Param("resourceType") String resourceType, + @Param("resourceKeyStartsWith") String resourceKeyStartsWith); List findByTenantIdAndHashCodeAndResourceKeyStartingWith(UUID tenantId, String hashCode, String query); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java index 6a47e95ed6..b6d52909ff 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceRepository.java @@ -20,12 +20,13 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.TbResourceEntity; import java.util.List; import java.util.UUID; -public interface TbResourceRepository extends JpaRepository { +public interface TbResourceRepository extends JpaRepository , ExportableEntityRepository { TbResourceEntity findByTenantIdAndResourceTypeAndResourceKey(UUID tenantId, String resourceType, String resourceKey); @@ -87,4 +88,10 @@ public interface TbResourceRepository extends JpaRepository findIdsByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index a821191629..f1878e1de8 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -121,7 +121,7 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + public PageData findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { boolean deprecatedFilterEnabled = !DeprecatedFilter.ALL.equals(deprecatedFilter); boolean deprecatedFilterBool = DeprecatedFilter.DEPRECATED.equals(deprecatedFilter); boolean widgetTypesEmpty = widgetTypes == null || widgetTypes.isEmpty(); @@ -204,6 +204,12 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findIdsByTenantId(UUID tenantId, PageLink pageLink) { + return DaoUtil.pageToPageData(widgetTypeRepository.findIdsByTenantId(tenantId, DaoUtil.toPageable(pageLink)) + .map(WidgetTypeId::new)); + } + @Override public WidgetTypeId getExternalIdByInternal(WidgetTypeId internalId) { return Optional.ofNullable(widgetTypeRepository.getExternalIdById(internalId.getId())) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java index d85f486a05..7536133643 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java @@ -76,7 +76,10 @@ public interface WidgetTypeRepository extends JpaRepository findAllIds(Pageable pageable); + @Query("SELECT id FROM WidgetTypeDetailsEntity WHERE tenantId = :tenantId") + Page findIdsByTenantId(@Param("tenantId") UUID tenantId, Pageable pageable); + } diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index 6b30151536..35d1d49cda 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -718,6 +718,7 @@ CREATE TABLE IF NOT EXISTS resource ( etag varchar, descriptor varchar, preview bytea, + external_id uuid, CONSTRAINT resource_unq_key UNIQUE (tenant_id, resource_type, resource_key) ); From 3d52cc972457e6163c8e9278f59ec35f0c84314b Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Thu, 16 Nov 2023 15:13:36 +0200 Subject: [PATCH 057/162] UI for resources version control --- ui-ngx/src/app/core/http/entity.service.ts | 8 +++++++- ui-ngx/src/app/core/http/resource.service.ts | 4 ++++ ui-ngx/src/app/shared/models/entity-type.models.ts | 2 ++ ui-ngx/src/app/shared/models/resource.models.ts | 4 ++-- ui-ngx/src/app/shared/models/vc.models.ts | 4 +++- ui-ngx/src/assets/locale/locale.constant-en_US.json | 2 ++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/core/http/entity.service.ts b/ui-ngx/src/app/core/http/entity.service.ts index 8bc8bfe3f2..968329d36a 100644 --- a/ui-ngx/src/app/core/http/entity.service.ts +++ b/ui-ngx/src/app/core/http/entity.service.ts @@ -95,6 +95,7 @@ import { TenantProfileService } from '@core/http/tenant-profile.service'; import { NotificationType } from '@shared/models/notification.models'; import { UserId } from '@shared/models/id/user-id'; import { AlarmService } from '@core/http/alarm.service'; +import { ResourceService } from '@core/http/resource.service'; @Injectable({ providedIn: 'root' @@ -123,7 +124,8 @@ export class EntityService { private utils: UtilsService, private queueService: QueueService, private notificationService: NotificationService, - private alarmService: AlarmService + private alarmService: AlarmService, + private resourceService: ResourceService ) { } private getEntityObservable(entityType: EntityType, entityId: string, @@ -438,6 +440,10 @@ export class EntityService { pageLink.sortOrder.property = 'name'; entitiesObservable = this.notificationService.getNotificationRules(pageLink, config); break; + case EntityType.TB_RESOURCE: + pageLink.sortOrder.property = 'title'; + entitiesObservable = this.resourceService.getTenantResources(pageLink, config); + break; } return entitiesObservable; } diff --git a/ui-ngx/src/app/core/http/resource.service.ts b/ui-ngx/src/app/core/http/resource.service.ts index f7cb8441d1..d6820f93cb 100644 --- a/ui-ngx/src/app/core/http/resource.service.ts +++ b/ui-ngx/src/app/core/http/resource.service.ts @@ -42,6 +42,10 @@ export class ResourceService { return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } + public getTenantResources(pageLink: PageLink, config?: RequestConfig): Observable> { + return this.http.get>(`/api/resource/tenant${pageLink.toQuery()}`, defaultHttpOptionsFromConfig(config)); + } + public getResource(resourceId: string, config?: RequestConfig): Observable { return this.http.get(`/api/resource/${resourceId}`, defaultHttpOptionsFromConfig(config)); } diff --git a/ui-ngx/src/app/shared/models/entity-type.models.ts b/ui-ngx/src/app/shared/models/entity-type.models.ts index 5c9390f80f..3c3151afb9 100644 --- a/ui-ngx/src/app/shared/models/entity-type.models.ts +++ b/ui-ngx/src/app/shared/models/entity-type.models.ts @@ -326,6 +326,8 @@ export const entityTypeTranslations = new Map( ] ); -export interface ResourceInfo extends Omit, 'name' | 'label'> { +export interface ResourceInfo extends Omit, 'name' | 'label'>, ExportableEntity { tenantId?: TenantId; resourceKey?: string; title?: string; diff --git a/ui-ngx/src/app/shared/models/vc.models.ts b/ui-ngx/src/app/shared/models/vc.models.ts index 5228af05b0..b682b79600 100644 --- a/ui-ngx/src/app/shared/models/vc.models.ts +++ b/ui-ngx/src/app/shared/models/vc.models.ts @@ -32,6 +32,7 @@ export const exportableEntityTypes: Array = [ EntityType.RULE_CHAIN, EntityType.WIDGET_TYPE, EntityType.WIDGETS_BUNDLE, + EntityType.TB_RESOURCE, EntityType.NOTIFICATION_TEMPLATE, EntityType.NOTIFICATION_TARGET, EntityType.NOTIFICATION_RULE @@ -40,7 +41,8 @@ export const exportableEntityTypes: Array = [ export const entityTypesWithoutRelatedData: Set = new Set([ EntityType.NOTIFICATION_TEMPLATE, EntityType.NOTIFICATION_TARGET, - EntityType.NOTIFICATION_RULE + EntityType.NOTIFICATION_RULE, + EntityType.TB_RESOURCE ]); export interface VersionCreateConfig { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 08a7236400..0eda3333d8 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2198,6 +2198,8 @@ "list-of-edges": "{ count, plural, =1 {One edge} other {List of # edges} }", "edge-name-starts-with": "Edges whose names start with '{{prefix}}'", "type-tb-resource": "Resource", + "type-tb-resources": "Resources", + "list-of-tb-resources": "{ count, plural, =1 {One resource} other {List of # resources} }", "type-ota-package": "OTA package", "type-rpc": "RPC", "type-queue": "Queue", From 80fc2d9b862f09b900fb3e0d2b7ce71ba98759a7 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Thu, 16 Nov 2023 15:06:00 +0100 Subject: [PATCH 058/162] improvements --- .../server/actors/tenant/TenantActor.java | 11 +++++++---- .../server/service/queue/ProtoUtils.java | 16 ++++++++-------- common/cluster-api/src/main/proto/queue.proto | 4 ++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java index f508d967c9..86f338e89d 100644 --- a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java +++ b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java @@ -228,7 +228,7 @@ public class TenantActor extends RuleChainManagerActor { log.warn("RECEIVED INVALID MESSAGE: {}", msg); } if (deletedDevices.contains(msg.getDeviceId())) { - log.warn("RECEIVED MESSAGE FOR DELETED DEVICE: {}", msg); + log.debug("RECEIVED MESSAGE FOR DELETED DEVICE: {}", msg); return; } TbActorRef deviceActor = getOrCreateDeviceActor(msg.getDeviceId()); @@ -250,7 +250,8 @@ public class TenantActor extends RuleChainManagerActor { log.info("[{}] Received API state update. Going to ENABLE Rule Engine execution.", tenantId); initRuleChains(); } - } else if (msg.getEntityId().getEntityType() == EntityType.EDGE) { + } + if (msg.getEntityId().getEntityType() == EntityType.EDGE) { EdgeId edgeId = new EdgeId(msg.getEntityId().getId()); EdgeRpcService edgeRpcService = systemContext.getEdgeRpcService(); if (msg.getEvent() == ComponentLifecycleEvent.DELETED) { @@ -259,11 +260,13 @@ public class TenantActor extends RuleChainManagerActor { Edge edge = systemContext.getEdgeService().findEdgeById(tenantId, edgeId); edgeRpcService.updateEdge(tenantId, edge); } - } else if (msg.getEntityId().getEntityType() == EntityType.DEVICE && ComponentLifecycleEvent.DELETED == msg.getEvent()) { + } + if (msg.getEntityId().getEntityType() == EntityType.DEVICE && ComponentLifecycleEvent.DELETED == msg.getEvent()) { DeviceId deviceId = (DeviceId) msg.getEntityId(); onToDeviceActorMsg(new DeviceDeleteMsg(tenantId, deviceId), true); deletedDevices.add(deviceId); - } else if (isRuleEngine) { + } + if (isRuleEngine) { TbActorRef target = getEntityActorRef(msg.getEntityId()); if (target != null) { if (msg.getEntityId().getEntityType() == EntityType.RULE_CHAIN) { diff --git a/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java b/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java index 8986ca8b51..c93af1bb07 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/ProtoUtils.java @@ -44,9 +44,9 @@ import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; import org.thingsboard.server.common.msg.rpc.RemoveRpcActorMsg; import org.thingsboard.server.common.msg.rpc.ToDeviceRpcRequest; import org.thingsboard.server.common.msg.rpc.ToDeviceRpcRequestActorMsg; -import org.thingsboard.server.common.msg.rule.engine.DeviceDeleteMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceAttributesEventNotificationMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceCredentialsUpdateNotificationMsg; +import org.thingsboard.server.common.msg.rule.engine.DeviceDeleteMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceEdgeUpdateMsg; import org.thingsboard.server.common.msg.rule.engine.DeviceNameOrTypeUpdateMsg; import org.thingsboard.server.gen.transport.TransportProtos; @@ -378,8 +378,8 @@ public class ProtoUtils { ); } - private static TransportProtos.DeviceDeletedMsgProto toProto(DeviceDeleteMsg msg) { - return TransportProtos.DeviceDeletedMsgProto.newBuilder() + private static TransportProtos.DeviceDeleteMsgProto toProto(DeviceDeleteMsg msg) { + return TransportProtos.DeviceDeleteMsgProto.newBuilder() .setTenantIdMSB(msg.getTenantId().getId().getMostSignificantBits()) .setTenantIdLSB(msg.getTenantId().getId().getLeastSignificantBits()) .setDeviceIdMSB(msg.getDeviceId().getId().getMostSignificantBits()) @@ -387,7 +387,7 @@ public class ProtoUtils { .build(); } - private static DeviceDeleteMsg fromProto(TransportProtos.DeviceDeletedMsgProto proto) { + private static DeviceDeleteMsg fromProto(TransportProtos.DeviceDeleteMsgProto proto) { return new DeviceDeleteMsg( TenantId.fromUUID(new UUID(proto.getTenantIdMSB(), proto.getTenantIdLSB())), new DeviceId(new UUID(proto.getDeviceIdMSB(), proto.getDeviceIdLSB()))); @@ -424,8 +424,8 @@ public class ProtoUtils { return TransportProtos.ToDeviceActorNotificationMsgProto.newBuilder().setRemoveRpcActorMsg(proto).build(); } else if (msg instanceof DeviceDeleteMsg) { DeviceDeleteMsg updateMsg = (DeviceDeleteMsg) msg; - TransportProtos.DeviceDeletedMsgProto proto = toProto(updateMsg); - return TransportProtos.ToDeviceActorNotificationMsgProto.newBuilder().setDeviceAssignToTenantMsgProto(proto).build(); + TransportProtos.DeviceDeleteMsgProto proto = toProto(updateMsg); + return TransportProtos.ToDeviceActorNotificationMsgProto.newBuilder().setDeviceDeleteMsg(proto).build(); } return null; } @@ -445,8 +445,8 @@ public class ProtoUtils { return fromProto(proto.getFromDeviceRpcResponseMsg()); } else if (proto.hasRemoveRpcActorMsg()) { return fromProto(proto.getRemoveRpcActorMsg()); - } else if (proto.hasDeviceAssignToTenantMsgProto()) { - return fromProto(proto.getDeviceAssignToTenantMsgProto()); + } else if (proto.hasDeviceDeleteMsg()) { + return fromProto(proto.getDeviceDeleteMsg()); } return null; } diff --git a/common/cluster-api/src/main/proto/queue.proto b/common/cluster-api/src/main/proto/queue.proto index 5000e3025f..c8919cb5c7 100644 --- a/common/cluster-api/src/main/proto/queue.proto +++ b/common/cluster-api/src/main/proto/queue.proto @@ -1004,7 +1004,7 @@ message RemoveRpcActorMsgProto { int64 deviceIdLSB = 6; } -message DeviceDeletedMsgProto { +message DeviceDeleteMsgProto { int64 tenantIdMSB = 1; int64 tenantIdLSB = 2; int64 deviceIdMSB = 3; @@ -1019,7 +1019,7 @@ message ToDeviceActorNotificationMsgProto { ToDeviceRpcRequestActorMsgProto toDeviceRpcRequestMsg = 5; FromDeviceRpcResponseActorMsgProto fromDeviceRpcResponseMsg = 6; RemoveRpcActorMsgProto removeRpcActorMsg = 7; - DeviceDeletedMsgProto deviceAssignToTenantMsgProto = 8; + DeviceDeleteMsgProto deviceDeleteMsg = 8; } /** From 1be39aa9aa74c574432cd4bc5980a837f578ecf7 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 16 Nov 2023 16:16:38 +0200 Subject: [PATCH 059/162] fixed license, env name refactoring --- .../PubSubRuleNodeExecutorProvider.java | 23 +++++++++++++++++++ .../src/main/resources/thingsboard.yml | 2 +- .../pubsub/TbPubSubQueueExecutorProvider.java | 23 +++++++++++++++++++ .../common/util/ExecutorProvider.java | 15 ++++++++++++ .../src/main/resources/tb-vc-executor.yml | 2 +- .../src/main/resources/tb-coap-transport.yml | 2 +- .../src/main/resources/tb-http-transport.yml | 2 +- .../src/main/resources/tb-lwm2m-transport.yml | 2 +- .../src/main/resources/tb-mqtt-transport.yml | 2 +- .../src/main/resources/tb-snmp-transport.yml | 2 +- 10 files changed, 68 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java index 7db74f6195..f730949f45 100644 --- a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.service.executors; import org.springframework.stereotype.Component; @@ -5,6 +20,7 @@ import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ThingsBoardThreadFactory; import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -26,4 +42,11 @@ public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { public ScheduledExecutorService getExecutor() { return executor; } + + @PreDestroy + private void destroy() { + if (executor != null) { + executor.shutdown(); + } + } } diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index ccc4953793..802756c105 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1412,7 +1412,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java index 2b636b5ee2..4de75faa56 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.server.queue.pubsub; import org.springframework.beans.factory.annotation.Value; @@ -7,6 +22,7 @@ import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ThingsBoardThreadFactory; import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -34,4 +50,11 @@ public class TbPubSubQueueExecutorProvider implements ExecutorProvider { public ScheduledExecutorService getExecutor() { return executor; } + + @PreDestroy + private void destroy() { + if (executor != null) { + executor.shutdown(); + } + } } diff --git a/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java b/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java index 4abc46fb16..61379c8c89 100644 --- a/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java +++ b/common/util/src/main/java/org/thingsboard/common/util/ExecutorProvider.java @@ -1,3 +1,18 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.thingsboard.common.util; import java.util.concurrent.ScheduledExecutorService; diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index 2353199c2b..9fc9b884f0 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -173,7 +173,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 5588384efd..27e5c8b273 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -296,7 +296,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 2ca2a04d1f..b8070f6575 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -279,7 +279,7 @@ queue: # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index d8ee8d14c4..b1d40c720f 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -375,7 +375,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 6dc1213884..4d130eecd9 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -312,7 +312,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 928c3c0642..2b89065a55 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -265,7 +265,7 @@ queue: # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" # Number of threads of pubsub executor provider - executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_SIZE:}" + executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" From 28254d651ac00e9de493a365080c622c207fea8c Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 16 Nov 2023 17:42:02 +0200 Subject: [PATCH 060/162] UI: Range chart widget. --- .../json/system/widget_bundles/charts.json | 1 + .../json/system/widget_types/doughnut.json | 2 +- .../widget_types/horizontal_doughnut.json | 2 +- .../json/system/widget_types/range_chart.json | 31 ++ .../basic/basic-widget-config.module.ts | 12 +- .../value-card-basic-config.component.html | 1 + .../doughnut-basic-config.component.html | 1 + .../range-chart-basic-config.component.html | 222 ++++++++ .../range-chart-basic-config.component.ts | 269 +++++++++ .../chart/range-chart-widget.component.html | 34 ++ .../chart/range-chart-widget.component.scss | 105 ++++ .../lib/chart/range-chart-widget.component.ts | 527 ++++++++++++++++++ .../lib/chart/range-chart-widget.models.ts | 103 ++++ ...range-chart-widget-settings.component.html | 140 +++++ .../range-chart-widget-settings.component.ts | 147 +++++ .../common/color-range-settings.component.ts | 4 +- .../common/date-format-select.component.ts | 15 +- .../lib/settings/widget-settings.module.ts | 12 +- .../widget/widget-components.module.ts | 7 +- .../shared/models/widget-settings.models.ts | 77 ++- ui-ngx/src/app/shared/models/widget.models.ts | 2 + .../assets/locale/locale.constant-en_US.json | 14 + 22 files changed, 1709 insertions(+), 19 deletions(-) create mode 100644 application/src/main/data/json/system/widget_types/range_chart.json create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.models.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.ts diff --git a/application/src/main/data/json/system/widget_bundles/charts.json b/application/src/main/data/json/system/widget_bundles/charts.json index 0829c612d0..14c09d3fc4 100644 --- a/application/src/main/data/json/system/widget_bundles/charts.json +++ b/application/src/main/data/json/system/widget_bundles/charts.json @@ -11,6 +11,7 @@ "widgetTypeFqns": [ "charts.basic_timeseries", "charts.state_chart", + "range_chart", "charts.timeseries_bars_flot", "cards.aggregated_value_card", "charts.bars", diff --git a/application/src/main/data/json/system/widget_types/doughnut.json b/application/src/main/data/json/system/widget_types/doughnut.json index f5a890ad3a..8764bbcace 100644 --- a/application/src/main/data/json/system/widget_types/doughnut.json +++ b/application/src/main/data/json/system/widget_types/doughnut.json @@ -2,7 +2,7 @@ "fqn": "doughnut", "name": "Doughnut", "deprecated": false, - "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMkAAACgCAMAAACR47ilAAABrVBMVEUNDQ0AAAD+/v7+/v7u7u7bycvX19f///8Ihyv/X2r//v7z8/P/kJjn5+f5+fkhISHs7Oz9/f3w8PD19fX39/fu7u7CwsL7+/v8/PyDw5XOzs62trb/2dvV1dUnlkX6+vrg8OWrq6v/9vfB4coYjjj09PTr6+uenp7o6OjJyMjv9/Ki0q/y8vLq6uq8vLzc29tltHrh4eGTy6L/6+3/2t3Qz8//8vPq6emQkJD/+vrj4+PHx8f/h4//c31FpWA9PT3//Pza2tr/19qy2b3/r7RYWFj/4uRGpWD/m6L/gopVrG1tbW3/6er/5ef/3+H/3d//aXNVVVX/w8dktHv/TVovLy/w9/KxsLD/paz/3N50u4iGhobR6dfQ6Nf/ur6SkpJ0vId5eXk2nlNKSkr/7e7/sbf/jJX/fYY2nVL/hI50dHRmZmbh4OD109W7urqCgoL/zdHMsLLOwcLcv8HDp6ikpKS8o6T/g4xhYWEXjjj/zdDnxcfBr7A8PDzp3d7b09T27e7f7+Pn0tThx8nSt7r4pat/v5GRkZFutoK728TCuruOxZ22m5ykl5hWrG17FlNEAAAAB3RSTlMGANDBIv4mEkvyGAAADi1JREFUeNrEmolT00AUxj3naZZcmzRNG0tpsQeltWrRKgURlYr3NXgrKgoq4n3ft+P1P/uSSBMbMFnd6jeDBmdk+pvvfe/tvrBkxXLouATTTOuaIz0dT5uqqgrAqt/+j2Urli5ZBh2Xasb1HKUxW7ScQxwpbZqqIAA/LV+6BDouVU1rRMnHKFUqYrGu4APRdDTHdoab/gGJIKR1mi8L4EjSqCJW8rY3uh7HOgMu6ihJ6Vx/4tix/h7B1EmeQPb8+Piup02wpZeRRomVscxMgUuRdYykZ+Ox7lWuut+ktRiF2vBqVzPjR22cuKaI6ExOl+I8AtMRktLOY2tX+dQtEcUEBPE0PP40izCkXlcoQRaTA8sSviSIsdvB8OtzWYHbq9vVdRQAtHxRcXwxQ1BCujB3kt4LiBHQRxqDXR6Cz5kaGhNzWNLxP+9j/El6d69aUF9jMTi/ekENPXVYYlST/gyFG0k4B+oczcOO1YtoGItMKlZiRE+bzCz8SMI5UMeknCJB1+pFWXYAaJW8XWKsXYw/SY/HEdC2EnZhBbLjqxfVeM2Ji23LfyZJrF2EYu3VY70gqGgKBbg9PnR4MZZdALl6nmo6Qz/mT3L20oIQezf2luYPkDjT8yagsjvOdy2IM4y25CsxTY8cfP4kGxeqqEQv+KTGdRLDgU50FVDN80ML20KLMeJH4T9P2BJyKVFq/wyIopVpLF8XRaWsA0Dt6HCwI9dAKyoOyn8gOdsdsMPvhv9gL+k5QmlMqRSLMQ0AdowHKqwJ8YpS1tKhBcafZGN7OBI9sLAEAa9bkq5riPPhUZer6enpoaFrj/bM69G1oaHp6a5oOsmTJNEGsr4Ei0tAY0wznpY+XAFX27dmN9f2Nw+dGljj6tTBA5c3b90ezZErV/iRnG6rq7MQJgGldrW+s1Eu728enEcZONTcHx3lGjeS9b8WVj9EVBe0oRw4eGhgwCE5dbC5f3N263aWn+OR8AHZWwImEkkkLkp18+XageY8yqGDB2qIspAr4iYAqIr2FzeSYGmt3QjAREKsqjHqZMVwbHHD4qEEJ731+Mw+eDx5xLIK+8DiQxIMe3cPMJIoBkgbpGTfBjC2b2p82b/y+btTA3fuP5wbuHPnfe1uNqkro8QwiGikwFWVwBTJgDWZsS4WRC4kQZBtJWAlgU3rRmF0A1iSIdzYuunV3bcYlodr5h7ee3/oztvnm0+kUqJFiDFa9ZkyCUCOiGAkC/yqa6cf5AIAM4kkQSppEEiKBiQbN1/1vawdOHh/YM23O88G7t27e/fVTUM4YRjJUdEXlCMEHtt1dXFyMsOJpMd/9k3AH5CIfZJoVJMSegIWaYwmX26uHXg49+z+s/tzD+fmvu+/29i+TpE2eCSTnzYdIWcubqqCZZwhZ/iQlLoDIMzVtaEvJUG1T4Eb+DiqiK9xSD6/d2duzb37zwYOvdv/sr4VY0QUAj9FrMkqFAoF2xRxUuRDcjoEhG0OePP+uT1YnFnvNLCQAcmBpD8AwoFEQJTXmBWnGQ94x5ZOkvR0h4Q98ikj6ArOlZ9jxZn1vEjCZ/slCIjl6Bd05bJjineW/O2POfmXJP2Bgcisk12LaHq6dcZ/dC3kfH/tCvwlia+2eoGfBDOt0SL178WGsyreydIqRBE7ScKfdp4SVFwmiTqc9N/saaWsmwLf228w7t3AWSYukyoCzLRIDjOZgiR/GPce4CzBlGhFgWa7KXEBwsRO0sOztoIocY3WNTjpN0V0TOFfXZ4l3SXgLXdZWVezh/2m5O2k8CMJnhz7oQMSTJ1WKBxtS0qcP0l/IO6c5fSvOMz4TVFyksqdpJu7JUFTyvkY7PBMAb1I7fIKExtJL39LgqFvM2UHKEqURsxGsp6DJeGdmOT97/K6gOTLksq3uo533BKUaqIpArYvfyOOVF5Iwp739dA5qVK5Qn2vio9CPpZLq1w92Rsy3vlISGuKCE1/eVWIxJekNUx2A1cFZ0pRhyGvvOJ29+JJ0suU9w1JR9AuUgifKUTxZ34H1FvDkQ/JaabiEqvVB5uq1fnvLAYSbMRFtdYiOQlUIWmBoyfb5kGuQjRlRACQqikCJPkAmcTUhigk4JbXcOulHWgV7MMCP0+8NQQDCcn0JTOiYjxIQjKTMiwkiThSvBNxNl7HoPAj8WKyk4HEMABSFogZtIQAFAgpRJnzShFu+4JSpFqcH4n3SrHEQGI5BeWQkL4TVjQSU7eHY4vkPCgKknDLyWkvJgwkuJEH5YFDYqWiemIHRfOCMm6fh/l54gV+LwtJ0sIvA0mcb8WIJBgUCq2X3DOg2bORlyfeXEywkEBf5oRFQMpkIFXIWA/ECCTYh3OK4h1YDtvNS1d5eXKcLfCeJOL8RVpPEDHyRwPNiw/JOY77unASnQ76jl41wL2ECSGKStLra138FYy8GK/52jCSxAVOOfHex0HHJajYvCTwDvZRTl5Iwng5eQKdF97m6zoMeyQVjiQJjvfFcE/wtpXzSM5D3t7fcaquBPNgxNC6amQyDXA1iI8UQtVGsgsUnp4wXrMa1ye2uB9+TEaN2FjUfSxEyAlBkqFfSNKC8B9IBrdM4Ed2SUbkiVtbXsgjFGDKfpyS5Ua4JwGS/5STjCyPTbgkDVm+6fzZ+PkIY/L1CCT1HMz4SBR+XXgjC0mjQGHEJbkpy4CS5Qyktjj/cl0ei5ITLZATTiT9jL1rniTlFNOgr6TQk2hd+LBvUcR/nqDYSGBWHrl5c0qe+tnPUrfkicEok1H3JuNTKHIk6fX2EWwk6AFqis4HCEGinVayv5xWdG7nLu9t1jk2ki3yxOysLN/62ZtnsY2FotgbVd/Cvgki1bl5cpx1uz3S6l0pzMkEJt7V4JQ8FmFhX/Fd5LNSkYZ5wvumFSS5JY+5DWsWfqogT4QuVNtuWnqd8rtpwdV5kmNMJNfdrM8iUGFkzCWRw0icJXeXt/AieSLxI1nvtWEWkoJbXXZQGvZQAToSWl2qs5GY8S8hc+mQ3QrvLVGQhL7AeT87Ib/AmI+5j/JgaOCpqLZviTq8uQsngcHrMmrMOUHemrAfUxGu8ZVfN3f25ZebJ8f//Je6UoO09ZiiECa1bZsKkoiB57nh5nnXCn+BMuMF/gcvZ8zaOBBE4fIFcRjZOiGpEQHZLrQpjK645u6KuLBRmQNzhBgOVfkLLq85UuU3Z1eESGEIzoyf/f2AxM+zM2tpZt7CdxojSp7IrgMZ2f7FuOuQ9gl/BFMnqME5CSMfMe7GaULuBO0u1p27+Z6MunPI/b2Y4QjGjukeXORPleFwfUES7kVmTOCME1Hq0ZU4xXbcxY79QzylYyqP16EGDalksZyMtun71m/GnSxAe4Gcj8JtMno22fY1eEpSIqvXI4jI9yr5oOS2f2sXsaei5sYX9soR1eUwWPCzr1w5XUlhmN621K707VfXXX8tTtnzXdjJ6UE+YVgte33O2g4hOYpXogsKv3zJMjyLc3z782N7iygNg0RMJTIo92Ahq1eSxgkCkzhd9CWYkCciKOe/6P81q6d17I1YbtLlzAuZciefZVA68JBf1lNwlvJGTJP8c0KMGwL88yX/wf/kq/eTUrjjaJXsTFsbhtv3MMuyoCM626Z/pd+kse1S7COFi5RFCdpBSleDTGerKFKJLun5Q6r3o4BDgU0J1rYtQOU2sYMKxmYmj8K4TGxXsis5UqQQ+3rLxTaYlULm6qpo3ypnSpEeCGto4Wz6tzVOpd6c+N1w3RfsXJcqITQl0trj0OAUmrnwQNDCcylZ2cNSP7//S7BAdI4pHWy4uUoIX4m0JWotYXnwqU44WmA7LGm11CGulIrOcL2ya7kW/ngNzPCdyFYV3qHwXSwfYIbgDvfrSnwgdzwwdfEozfEU8aQokcki2TR7fExVDOEwniy+EnlBSxfFMXXVtD45JJ3yZFGVyLBIOZu2KJyrqrVzzd/f3YcOmAVOhOY2urpSwMsQvhKgKu06KtjhKwHcS3t3tNo2DIVxPGvHPsbZEbo6UAmFmRWCGpDngne3gNu7ujBCChmkW5eVsg7yAHuDvfbsNHWvttTGDlmbPwSELyR+WLkwie3+5h3dSIDT0eYdrUuq70udE3P4rR1HJWm34dkjGaPTI7RZr4unvK89M4eTlhmVpPUuh+9v/6LoT47fov1KSWddnh5MRqP+4R2gf3s2ORheHqGbSskTaSfZvnaS7Wsn2b52ku1rJ9m+dpLt61+So+PVyw0yDUPw5HAXCVrp/OYrlrEEQplh1G+95Pv9v2wWDlOHAK1IE6BZAKV5OQQpaJBSTNBaoUbnry8ufqDMQkVQTKVEM5TWABEDy1mhCATFgOZGknfVXVlKtBPtSXiaWOVTL0AxnCqTOrfIOEBgk6CitJbk50XRJxSFjEA2sWTYeec4SgCTxqGclb0yRglJEmiaNJJ8eXi6inVasoSEDYQCqJQYuCQAVokXErbGskWt3pSSE5TFYhYOC2dYuSBs7jZa0B4knHlZJF5MRNJwd42qn/h9gJuqlcRWErZAQBAOifZEqqbkpIB8RJHKgCk7cGw4kK4kljy0V8G5oHxM1FiC4f0VdyagKVYSJ6GUWG/hxCdwMSIFMaGuBOefbz6gzItPIWa5uySsJFZSeAkES2RB1qfrJLVTKGKjqnF1tHlq9XmYx3B1bM0ClaRZlKDbEo0aPVaSDhgynzMG+QBdNMvzuFgFjXukJJ5dM+ZsZ3aGXzE6aMxMV/McjVsvqVYqPRagMaH9aDz/DaSbkkTzCJhF6CAyyM3GJFG50mCALsoEM9mY5Cofi1znuaD9aDwfc+eSKkL9Njb5c7k++b/q9fbxJNrr9V7u4Qm0/+rFH3ITHoXZTmIYAAAAAElFTkSuQmCC", + "image": "data:image/png;base64,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", "description": "Displays the latest values of the attributes or time-series data in a doughnut chart. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/horizontal_doughnut.json b/application/src/main/data/json/system/widget_types/horizontal_doughnut.json index 1eeffcae6e..f76bf50e48 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_doughnut.json +++ b/application/src/main/data/json/system/widget_types/horizontal_doughnut.json @@ -2,7 +2,7 @@ "fqn": "horizontal_doughnut", "name": "Horizontal doughnut", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/png;base64,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", "description": "Displays the latest values of the attributes or time-series data in a doughnut chart using horizontal layout. Supports numeric values only.", "descriptor": { "type": "latest", diff --git a/application/src/main/data/json/system/widget_types/range_chart.json b/application/src/main/data/json/system/widget_types/range_chart.json new file mode 100644 index 0000000000..981e3582c5 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/range_chart.json @@ -0,0 +1,31 @@ +{ + "fqn": "range_chart", + "name": "Range chart", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays changes to time-series data over time visualized with color ranges — for example, temperature or humidity readings.", + "descriptor": { + "type": "timeseries", + "sizeX": 8, + "sizeY": 5, + "resources": [], + "templateHtml": "\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.rangeChartWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.rangeChartWidget.onDataUpdated();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '80%',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: false,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-range-chart-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-range-chart-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":0,\"realtime\":{\"realtimeType\":0,\"timewindowMs\":60000,\"quickInterval\":\"CURRENT_DAY\",\"interval\":1000},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000},\"timezone\":null},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"dataZoom\":true,\"rangeColors\":[{\"to\":-20,\"color\":\"#234CC7\"},{\"from\":-20,\"to\":0,\"color\":\"#305AD7\"},{\"from\":0,\"to\":10,\"color\":\"#7191EF\"},{\"from\":10,\"to\":20,\"color\":\"#FFA600\"},{\"from\":20,\"to\":30,\"color\":\"#F36900\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"color\":\"#D81838\"}],\"outOfRangeColor\":\"#ccc\",\"fillArea\":true,\"showLegend\":true,\"legendPosition\":\"top\",\"legendLabelFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"legendLabelColor\":\"rgba(0, 0, 0, 0.76)\",\"showTooltip\":true,\"tooltipValueFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"16px\"},\"tooltipValueColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipShowDate\":true,\"tooltipDateFormat\":{\"format\":\"dd MMM yyyy HH:mm\",\"lastUpdateAgo\":false,\"custom\":false},\"tooltipDateFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"tooltipDateColor\":\"rgba(0, 0, 0, 0.76)\",\"tooltipBackgroundColor\":\"rgba(255, 255, 255, 0.76)\",\"tooltipBackgroundBlur\":4,\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Range chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":false,\"titleIcon\":\"thermostat\",\"iconColor\":\"#1F6BDD\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"units\":\"°C\",\"decimals\":0,\"noDataDisplayMessage\":\"\",\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true},\"margin\":\"0px\",\"borderRadius\":\"0px\",\"iconSize\":\"0px\"}" + }, + "externalId": null, + "tags": [ + "range", + "color range", + "line chart" + ] +} \ No newline at end of file diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts index 5bb6d9ea52..5e95d162cd 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts @@ -85,6 +85,9 @@ import { import { DoughnutBasicConfigComponent } from '@home/components/widget/config/basic/chart/doughnut-basic-config.component'; +import { + RangeChartBasicConfigComponent +} from '@home/components/widget/config/basic/chart/range-chart-basic-config.component'; @NgModule({ declarations: [ @@ -111,7 +114,8 @@ import { ThermometerScaleGaugeBasicConfigComponent, CompassGaugeBasicConfigComponent, LiquidLevelCardBasicConfigComponent, - DoughnutBasicConfigComponent + DoughnutBasicConfigComponent, + RangeChartBasicConfigComponent ], imports: [ CommonModule, @@ -142,7 +146,8 @@ import { ThermometerScaleGaugeBasicConfigComponent, CompassGaugeBasicConfigComponent, LiquidLevelCardBasicConfigComponent, - DoughnutBasicConfigComponent + DoughnutBasicConfigComponent, + RangeChartBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -167,5 +172,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html new file mode 100644 index 0000000000..66b4054df1 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.html @@ -0,0 +1,222 @@ + + + + + + +
    +
    widget-config.appearance
    +
    + + {{ 'widget-config.title' | translate }} + +
    + + + + + + + +
    +
    +
    + + {{ 'widgets.value-chart-card.icon' | translate }} + +
    + + + + + + + + +
    +
    +
    +
    +
    widgets.range-chart.chart
    +
    + + {{ 'widgets.range-chart.data-zoom' | translate }} + +
    +
    +
    {{ 'widgets.range-chart.range-colors' | translate }}
    + + +
    +
    +
    {{ 'widgets.range-chart.out-of-range-color' | translate }}
    + + +
    +
    + + {{ 'widgets.range-chart.fill-area' | translate }} + +
    +
    +
    widget-config.units-short
    + + +
    +
    +
    widget-config.decimals-short
    + + + +
    +
    +
    + + + + + {{ 'widget-config.legend' | translate }} + + + + +
    +
    {{ 'legend.position' | translate }}
    + + + + {{ legendPositionTranslationMap.get(pos) | translate }} + + + +
    +
    +
    {{ 'widgets.range-chart.legend-label' | translate }}
    +
    + + + + +
    +
    +
    +
    +
    +
    + + + + + {{ 'widgets.range-chart.tooltip' | translate }} + + + + +
    +
    {{ 'widgets.range-chart.tooltip-value' | translate }}
    +
    + + + + +
    +
    +
    + + {{ 'widgets.range-chart.tooltip-date' | translate }} + +
    + + + + + +
    +
    +
    +
    {{ 'widgets.range-chart.tooltip-background-color' | translate }}
    + + +
    +
    +
    {{ 'widgets.range-chart.tooltip-background-blur' | translate }}
    + + +
    px
    +
    +
    +
    +
    +
    +
    +
    widget-config.card-appearance
    +
    +
    {{ 'widgets.background.background' | translate }}
    + + +
    +
    +
    widget-config.show-card-buttons
    + + {{ 'fullscreen.fullscreen' | translate }} + +
    +
    +
    {{ 'widget-config.card-border-radius' | translate }}
    + + + +
    +
    + + +
    diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.ts new file mode 100644 index 0000000000..5b22637296 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/range-chart-basic-config.component.ts @@ -0,0 +1,269 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { ChangeDetectorRef, Component, Injector } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DataKey, legendPositions, legendPositionTranslationMap, WidgetConfig, } from '@shared/models/widget.models'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { + getTimewindowConfig, + setTimewindowConfig +} from '@home/components/widget/config/timewindow-config-panel.component'; +import { formatValue, isUndefined } from '@core/utils'; +import { + cssSizeToStrSize, + DateFormatProcessor, + DateFormatSettings, + resolveCssSize +} from '@shared/models/widget-settings.models'; +import { + rangeChartDefaultSettings, + RangeChartWidgetSettings +} from '@home/components/widget/lib/chart/range-chart-widget.models'; + +@Component({ + selector: 'tb-range-chart-basic-config', + templateUrl: './range-chart-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class RangeChartBasicConfigComponent extends BasicWidgetConfigComponent { + + legendPositions = legendPositions; + + legendPositionTranslationMap = legendPositionTranslationMap; + + rangeChartWidgetConfigForm: UntypedFormGroup; + + tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this); + + tooltipDatePreviewFn = this._tooltipDatePreviewFn.bind(this); + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + private $injector: Injector, + private fb: UntypedFormBuilder) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.rangeChartWidgetConfigForm; + } + + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]; + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + const settings: RangeChartWidgetSettings = {...rangeChartDefaultSettings, ...(configData.config.settings || {})}; + const iconSize = resolveCssSize(configData.config.iconSize); + this.rangeChartWidgetConfigForm = this.fb.group({ + timewindowConfig: [getTimewindowConfig(configData.config), []], + datasources: [configData.config.datasources, []], + + showTitle: [configData.config.showTitle, []], + title: [configData.config.title, []], + titleFont: [configData.config.titleFont, []], + titleColor: [configData.config.titleColor, []], + + showIcon: [configData.config.showTitleIcon, []], + iconSize: [iconSize[0], [Validators.min(0)]], + iconSizeUnit: [iconSize[1], []], + icon: [configData.config.titleIcon, []], + iconColor: [configData.config.iconColor, []], + + dataZoom: [settings.dataZoom, []], + rangeColors: [settings.rangeColors, []], + outOfRangeColor: [settings.outOfRangeColor, []], + fillArea: [settings.fillArea, []], + units: [configData.config.units, []], + decimals: [configData.config.decimals, []], + + showLegend: [settings.showLegend, []], + legendPosition: [settings.legendPosition, []], + legendLabelFont: [settings.legendLabelFont, []], + legendLabelColor: [settings.legendLabelColor, []], + + showTooltip: [settings.showTooltip, []], + tooltipValueFont: [settings.tooltipValueFont, []], + tooltipValueColor: [settings.tooltipValueColor, []], + tooltipShowDate: [settings.tooltipShowDate, []], + tooltipDateFormat: [settings.tooltipDateFormat, []], + tooltipDateFont: [settings.tooltipDateFont, []], + tooltipDateColor: [settings.tooltipDateColor, []], + tooltipBackgroundColor: [settings.tooltipBackgroundColor, []], + tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], + + background: [settings.background, []], + + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + + actions: [configData.config.actions || {}, []] + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + + this.widgetConfig.config.showTitle = config.showTitle; + this.widgetConfig.config.title = config.title; + this.widgetConfig.config.titleFont = config.titleFont; + this.widgetConfig.config.titleColor = config.titleColor; + + this.widgetConfig.config.showTitleIcon = config.showIcon; + this.widgetConfig.config.iconSize = cssSizeToStrSize(config.iconSize, config.iconSizeUnit); + this.widgetConfig.config.titleIcon = config.icon; + this.widgetConfig.config.iconColor = config.iconColor; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + + this.widgetConfig.config.settings.dataZoom = config.dataZoom; + this.widgetConfig.config.settings.rangeColors = config.rangeColors; + this.widgetConfig.config.settings.outOfRangeColor = config.outOfRangeColor; + this.widgetConfig.config.settings.fillArea = config.fillArea; + this.widgetConfig.config.units = config.units; + this.widgetConfig.config.decimals = config.decimals; + + this.widgetConfig.config.settings.showLegend = config.showLegend; + this.widgetConfig.config.settings.legendPosition = config.legendPosition; + this.widgetConfig.config.settings.legendLabelFont = config.legendLabelFont; + this.widgetConfig.config.settings.legendLabelColor = config.legendLabelColor; + + this.widgetConfig.config.settings.showTooltip = config.showTooltip; + this.widgetConfig.config.settings.tooltipValueFont = config.tooltipValueFont; + this.widgetConfig.config.settings.tooltipValueColor = config.tooltipValueColor; + this.widgetConfig.config.settings.tooltipShowDate = config.tooltipShowDate; + this.widgetConfig.config.settings.tooltipDateFormat = config.tooltipDateFormat; + this.widgetConfig.config.settings.tooltipDateFont = config.tooltipDateFont; + this.widgetConfig.config.settings.tooltipDateColor = config.tooltipDateColor; + this.widgetConfig.config.settings.tooltipBackgroundColor = config.tooltipBackgroundColor; + this.widgetConfig.config.settings.tooltipBackgroundBlur = config.tooltipBackgroundBlur; + + this.widgetConfig.config.settings.background = config.background; + + this.setCardButtons(config.cardButtons, this.widgetConfig.config); + this.widgetConfig.config.borderRadius = config.borderRadius; + + this.widgetConfig.config.actions = config.actions; + return this.widgetConfig; + } + + protected validatorTriggers(): string[] { + return ['showTitle', 'showIcon', 'showLegend', 'showTooltip', 'tooltipShowDate']; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const showTitle: boolean = this.rangeChartWidgetConfigForm.get('showTitle').value; + const showIcon: boolean = this.rangeChartWidgetConfigForm.get('showIcon').value; + const showLegend: boolean = this.rangeChartWidgetConfigForm.get('showLegend').value; + const showTooltip: boolean = this.rangeChartWidgetConfigForm.get('showTooltip').value; + const tooltipShowDate: boolean = this.rangeChartWidgetConfigForm.get('tooltipShowDate').value; + + if (showTitle) { + this.rangeChartWidgetConfigForm.get('title').enable(); + this.rangeChartWidgetConfigForm.get('titleFont').enable(); + this.rangeChartWidgetConfigForm.get('titleColor').enable(); + this.rangeChartWidgetConfigForm.get('showIcon').enable({emitEvent: false}); + if (showIcon) { + this.rangeChartWidgetConfigForm.get('iconSize').enable(); + this.rangeChartWidgetConfigForm.get('iconSizeUnit').enable(); + this.rangeChartWidgetConfigForm.get('icon').enable(); + this.rangeChartWidgetConfigForm.get('iconColor').enable(); + } else { + this.rangeChartWidgetConfigForm.get('iconSize').disable(); + this.rangeChartWidgetConfigForm.get('iconSizeUnit').disable(); + this.rangeChartWidgetConfigForm.get('icon').disable(); + this.rangeChartWidgetConfigForm.get('iconColor').disable(); + } + } else { + this.rangeChartWidgetConfigForm.get('title').disable(); + this.rangeChartWidgetConfigForm.get('titleFont').disable(); + this.rangeChartWidgetConfigForm.get('titleColor').disable(); + this.rangeChartWidgetConfigForm.get('showIcon').disable({emitEvent: false}); + this.rangeChartWidgetConfigForm.get('iconSize').disable(); + this.rangeChartWidgetConfigForm.get('iconSizeUnit').disable(); + this.rangeChartWidgetConfigForm.get('icon').disable(); + this.rangeChartWidgetConfigForm.get('iconColor').disable(); + } + + if (showLegend) { + this.rangeChartWidgetConfigForm.get('legendPosition').enable(); + this.rangeChartWidgetConfigForm.get('legendLabelFont').enable(); + this.rangeChartWidgetConfigForm.get('legendLabelColor').enable(); + } else { + this.rangeChartWidgetConfigForm.get('legendPosition').disable(); + this.rangeChartWidgetConfigForm.get('legendLabelFont').disable(); + this.rangeChartWidgetConfigForm.get('legendLabelColor').disable(); + } + + if (showTooltip) { + this.rangeChartWidgetConfigForm.get('tooltipValueFont').enable(); + this.rangeChartWidgetConfigForm.get('tooltipValueColor').enable(); + this.rangeChartWidgetConfigForm.get('tooltipShowDate').enable({emitEvent: false}); + this.rangeChartWidgetConfigForm.get('tooltipBackgroundColor').enable(); + this.rangeChartWidgetConfigForm.get('tooltipBackgroundBlur').enable(); + if (tooltipShowDate) { + this.rangeChartWidgetConfigForm.get('tooltipDateFormat').enable(); + this.rangeChartWidgetConfigForm.get('tooltipDateFont').enable(); + this.rangeChartWidgetConfigForm.get('tooltipDateColor').enable(); + } else { + this.rangeChartWidgetConfigForm.get('tooltipDateFormat').disable(); + this.rangeChartWidgetConfigForm.get('tooltipDateFont').disable(); + this.rangeChartWidgetConfigForm.get('tooltipDateColor').disable(); + } + } else { + this.rangeChartWidgetConfigForm.get('tooltipValueFont').disable(); + this.rangeChartWidgetConfigForm.get('tooltipValueColor').disable(); + this.rangeChartWidgetConfigForm.get('tooltipShowDate').disable({emitEvent: false}); + this.rangeChartWidgetConfigForm.get('tooltipDateFormat').disable(); + this.rangeChartWidgetConfigForm.get('tooltipDateFont').disable(); + this.rangeChartWidgetConfigForm.get('tooltipDateColor').disable(); + this.rangeChartWidgetConfigForm.get('tooltipBackgroundColor').disable(); + this.rangeChartWidgetConfigForm.get('tooltipBackgroundBlur').disable(); + } + } + + private getCardButtons(config: WidgetConfig): string[] { + const buttons: string[] = []; + if (isUndefined(config.enableFullscreen) || config.enableFullscreen) { + buttons.push('fullscreen'); + } + return buttons; + } + + private setCardButtons(buttons: string[], config: WidgetConfig) { + config.enableFullscreen = buttons.includes('fullscreen'); + } + + private _tooltipValuePreviewFn(): string { + const units: string = this.rangeChartWidgetConfigForm.get('units').value; + const decimals: number = this.rangeChartWidgetConfigForm.get('decimals').value; + return formatValue(22, decimals, units, false); + } + + private _tooltipDatePreviewFn(): string { + const dateFormat: DateFormatSettings = this.rangeChartWidgetConfigForm.get('tooltipDateFormat').value; + const processor = DateFormatProcessor.fromSettings(this.$injector, dateFormat); + processor.update(Date.now()); + return processor.formatted; + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.html new file mode 100644 index 0000000000..db9e828a0c --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.html @@ -0,0 +1,34 @@ + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    {{ rangeItem.label }}
    +
    +
    +
    +
    +
    diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.scss new file mode 100644 index 0000000000..d9b42c6acb --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.scss @@ -0,0 +1,105 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.tb-range-chart-panel { + width: 100%; + height: 100%; + position: relative; + display: flex; + flex-direction: column; + gap: 16px; + padding: 20px 24px 24px 24px; + > div:not(.tb-range-chart-overlay) { + z-index: 1; + } + .tb-range-chart-overlay { + position: absolute; + top: 12px; + left: 12px; + bottom: 12px; + right: 12px; + } + div.tb-widget-title { + padding: 0; + } + .tb-range-chart-content { + flex: 1; + min-width: 0; + min-height: 0; + display: flex; + flex-direction: column; + gap: 16px; + &.legend-top { + flex-direction: column-reverse; + } + &.legend-right { + flex-direction: row; + } + &.legend-left { + flex-direction: row-reverse; + } + .tb-range-chart-shape { + flex: 1; + min-width: 0; + min-height: 0; + display: flex; + align-items: center; + justify-content: center; + } + .tb-range-chart-legend { + display: flex; + justify-content: center; + align-items: center; + align-self: stretch; + flex-wrap: wrap; + column-gap: 24px; + row-gap: 8px; + .tb-range-chart-legend-item { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + user-select: none; + cursor: pointer; + .tb-range-chart-legend-item-label { + display: flex; + align-items: center; + gap: 4px; + color: #ccc; + .tb-range-chart-legend-item-label-circle { + width: 8px; + height: 8px; + border-radius: 50%; + background-color: #ccc; + } + } + } + } + &.legend-right, &.legend-left { + gap: 24px; + .tb-range-chart-legend { + flex-direction: column-reverse; + justify-content: flex-end; + align-items: stretch; + .tb-range-chart-legend-item { + flex-direction: row; + justify-content: space-between; + align-items: center; + } + } + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.ts new file mode 100644 index 0000000000..80e59c3512 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.component.ts @@ -0,0 +1,527 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnDestroy, + OnInit, + Renderer2, + TemplateRef, + ViewChild, + ViewEncapsulation +} from '@angular/core'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { + backgroundStyle, + ColorRange, + ComponentStyle, + DateFormatProcessor, filterIncludingColorRanges, + getDataKey, + overlayStyle, + sortedColorRange, + textStyle +} from '@shared/models/widget-settings.models'; +import { ResizeObserver } from '@juggle/resize-observer'; +import * as echarts from 'echarts/core'; +import { formatValue, isDefinedAndNotNull, isNumber } from '@core/utils'; +import { + DataZoomComponent, + DataZoomComponentOption, + GridComponent, + GridComponentOption, + MarkLineComponent, + MarkLineComponentOption, + TooltipComponent, + TooltipComponentOption, + VisualMapComponent, + VisualMapComponentOption +} from 'echarts/components'; +import { LineChart, LineSeriesOption, } from 'echarts/charts'; +import { CanvasRenderer } from 'echarts/renderers'; +import { rangeChartDefaultSettings, RangeChartWidgetSettings } from './range-chart-widget.models'; +import { DataSet } from '@shared/models/widget.models'; + +echarts.use([ + TooltipComponent, + GridComponent, + VisualMapComponent, + DataZoomComponent, + MarkLineComponent, + LineChart, + CanvasRenderer +]); + +type EChartsOption = echarts.ComposeOption< + | TooltipComponentOption + | GridComponentOption + | VisualMapComponentOption + | DataZoomComponentOption + | MarkLineComponentOption + | LineSeriesOption +>; + +type ECharts = echarts.ECharts; + +interface VisualPiece { + lt?: number; + gt?: number; + lte?: number; + gte?: number; + value?: number; + color?: string; +} + +interface RangeItem { + index: number; + from?: number; + to?: number; + piece: VisualPiece; + color: string; + label: string; + visible: boolean; + enabled: boolean; +} + +const rangeItemLabel = (from?: number, to?: number): string => { + if (isNumber(from) && isNumber(to)) { + if (from === to) { + return `${from}`; + } else { + return `${from} - ${to}`; + } + } else if (isNumber(from)) { + return `≥ ${from}`; + } else if (isNumber(to)) { + return `< ${to}`; + } else { + return null; + } +}; + +const toVisualPiece = (color: string, from?: number, to?: number): VisualPiece => { + const piece: VisualPiece = { + color + }; + if (isNumber(from) && isNumber(to)) { + if (from === to) { + piece.value = from; + } else { + piece.gte = from; + piece.lt = to; + } + } else if (isNumber(from)) { + piece.gte = from; + } else if (isNumber(to)) { + piece.lt = to; + } + return piece; +}; + +const toRangeItems = (colorRanges: Array): RangeItem[] => { + const rangeItems: RangeItem[] = []; + let counter = 0; + const ranges = sortedColorRange(filterIncludingColorRanges(colorRanges)).filter(r => isNumber(r.from) || isNumber(r.to)); + for (let i = 0; i < ranges.length; i++) { + const range = ranges[i]; + let from = range.from; + const to = range.to; + if (i > 0) { + const prevRange = ranges[i - 1]; + if (isNumber(prevRange.to) && isNumber(from) && from < prevRange.to) { + from = prevRange.to; + } + } + rangeItems.push( + { + index: counter++, + color: range.color, + enabled: true, + visible: true, + from, + to, + label: rangeItemLabel(from, to), + piece: toVisualPiece(range.color, from, to) + } + ); + if (!isNumber(from) || !isNumber(to)) { + const value = !isNumber(from) ? to : from; + rangeItems.push( + { + index: counter++, + color: 'transparent', + enabled: true, + visible: false, + label: '', + piece: { gt: value - 0.000000001, lt: value + 0.000000001, color: 'transparent'} + } + ); + } + } + return rangeItems; +}; + +const toNamedData = (data: DataSet): {name: string; value: [number, any]}[] => { + if (!data?.length) { + return []; + } else { + return data.map(d => ({ + name: d[0] + '', + value: d + })); + } +}; + +const getMarkPoints = (ranges: Array): number[] => { + const points = new Set(); + for (const range of ranges) { + if (range.visible) { + if (isNumber(range.from)) { + points.add(range.from); + } + if (isNumber(range.to)) { + points.add(range.to); + } + } + } + return Array.from(points).sort(); +}; + +@Component({ + selector: 'tb-range-chart-widget', + templateUrl: './range-chart-widget.component.html', + styleUrls: ['./range-chart-widget.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class RangeChartWidgetComponent implements OnInit, OnDestroy, AfterViewInit { + + @ViewChild('chartShape', {static: false}) + chartShape: ElementRef; + + settings: RangeChartWidgetSettings; + + @Input() + ctx: WidgetContext; + + @Input() + widgetTitlePanel: TemplateRef; + + showLegend: boolean; + legendClass: string; + + backgroundStyle: ComponentStyle = {}; + overlayStyle: ComponentStyle = {}; + + legendLabelStyle: ComponentStyle; + disabledLegendLabelStyle: ComponentStyle; + visibleRangeItems: RangeItem[]; + + private rangeItems: RangeItem[]; + + private shapeResize$: ResizeObserver; + + private decimals = 0; + private units = ''; + + private drawChartPending = false; + private rangeChart: ECharts; + private rangeChartOptions: EChartsOption; + private selectedRanges: {[key: number]: boolean} = {}; + + private tooltipDateFormat: DateFormatProcessor; + + constructor(private renderer: Renderer2, + private cd: ChangeDetectorRef) { + } + + ngOnInit(): void { + this.ctx.$scope.rangeChartWidget = this; + this.settings = {...rangeChartDefaultSettings, ...this.ctx.settings}; + + this.decimals = this.ctx.decimals; + this.units = this.ctx.units; + const dataKey = getDataKey(this.ctx.datasources); + if (isDefinedAndNotNull(dataKey?.decimals)) { + this.decimals = dataKey.decimals; + } + if (dataKey?.units) { + this.units = dataKey.units; + } + + + this.backgroundStyle = backgroundStyle(this.settings.background); + this.overlayStyle = overlayStyle(this.settings.background.overlay); + + this.rangeItems = toRangeItems(this.settings.rangeColors); + this.visibleRangeItems = this.rangeItems.filter(item => item.visible); + for (const range of this.rangeItems) { + this.selectedRanges[range.index] = true; + } + + this.showLegend = this.settings.showLegend && !!this.rangeItems.length; + + if (this.showLegend) { + this.legendClass = `legend-${this.settings.legendPosition}`; + this.legendLabelStyle = textStyle(this.settings.legendLabelFont); + this.disabledLegendLabelStyle = textStyle(this.settings.legendLabelFont); + this.legendLabelStyle.color = this.settings.legendLabelColor; + } + + if (this.settings.showTooltip && this.settings.tooltipShowDate) { + this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.tooltipDateFormat); + } + } + + ngAfterViewInit() { + if (this.drawChartPending) { + this.drawChart(); + } + } + + ngOnDestroy() { + if (this.shapeResize$) { + this.shapeResize$.disconnect(); + } + if (this.rangeChart) { + this.rangeChart.dispose(); + } + } + + public onInit() { + const borderRadius = this.ctx.$widgetElement.css('borderRadius'); + this.overlayStyle = {...this.overlayStyle, ...{borderRadius}}; + if (this.chartShape) { + this.drawChart(); + } else { + this.drawChartPending = true; + } + this.cd.detectChanges(); + } + + public onDataUpdated() { + if (this.rangeChart) { + this.rangeChart.setOption({ + xAxis: { + min: this.ctx.defaultSubscription.timeWindow.minTime, + max: this.ctx.defaultSubscription.timeWindow.maxTime + }, + series: [ + {data: this.ctx.data?.length ? toNamedData(this.ctx.data[0].data) : []} + ], + visualMap: { + selected: this.selectedRanges + } + }); + } + } + + public toggleRangeItem(item: RangeItem) { + item.enabled = !item.enabled; + this.selectedRanges[item.index] = item.enabled; + this.rangeChart.dispatchAction({ + type: 'selectDataRange', + selected: this.selectedRanges + }); + } + + private drawChart() { + const dataKey = getDataKey(this.ctx.datasources); + this.rangeChart = echarts.init(this.chartShape.nativeElement, null, { + renderer: 'canvas', + }); + this.rangeChartOptions = { + tooltip: { + trigger: 'none' + }, + grid: { + containLabel: true, + top: '30', + left: 0, + right: 0, + bottom: this.settings.dataZoom ? 60 : 0 + }, + xAxis: { + type: 'time', + axisTick: { + show: true + }, + axisLabel: { + hideOverlap: true, + fontSize: 10 + }, + axisLine: { + onZero: false + }, + min: this.ctx.defaultSubscription.timeWindow.minTime, + max: this.ctx.defaultSubscription.timeWindow.maxTime + }, + yAxis: { + type: 'value', + axisLabel: { + formatter: value => formatValue(value, this.decimals, this.units, false) + } + }, + series: [{ + type: 'line', + name: dataKey?.label, + smooth: false, + showSymbol: false, + animation: true, + areaStyle: this.settings.fillArea ? {} : undefined, + data: this.ctx.data?.length ? toNamedData(this.ctx.data[0].data) : [], + markLine: this.rangeItems.length ? { + animation: true, + symbol: ['circle', 'arrow'], + symbolSize: [5, 7], + lineStyle: { + width: 1, + type: [3, 3], + color: '#37383b' + }, + label: { + position: 'insideEndTop', + color: '#37383b', + backgroundColor: 'rgba(255,255,255,0.56)', + padding: [4, 5], + borderRadius: 4, + formatter: params => formatValue(params.value, this.decimals, this.units, false) + }, + emphasis: { + disabled: true + }, + data: getMarkPoints(this.rangeItems).map(point => ({ yAxis: point })) + } : undefined + }], + dataZoom: [ + { + type: 'inside', + disabled: !this.settings.dataZoom + }, + { + type: 'slider', + show: this.settings.dataZoom, + showDetail: false, + right: 10 + } + ], + visualMap: { + show: false, + type: 'piecewise', + selected: this.selectedRanges, + pieces: this.rangeItems.map(item => item.piece), + outOfRange: { + color: this.settings.outOfRangeColor + }, + inRange: !this.rangeItems.length ? { + color: this.settings.outOfRangeColor + } : undefined + } + }; + + if (this.settings.showTooltip) { + this.rangeChartOptions.tooltip = { + trigger: 'axis', + formatter: (params) => { + if (!params.length || !params[0]) { + return null; + } + const seriesParams = params[0]; + const value = formatValue(seriesParams.value[1], this.decimals, this.units, false); + const tooltipElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.setStyle(tooltipElement, 'display', 'flex'); + this.renderer.setStyle(tooltipElement, 'flex-direction', 'column'); + this.renderer.setStyle(tooltipElement, 'align-items', 'flex-start'); + this.renderer.setStyle(tooltipElement, 'gap', '4px'); + if (this.settings.tooltipShowDate) { + const dateElement: HTMLElement = this.renderer.createElement('div'); + const ts = seriesParams.value[0]; + this.tooltipDateFormat.update(ts); + this.renderer.appendChild(dateElement, this.renderer.createText(this.tooltipDateFormat.formatted)); + this.renderer.setStyle(dateElement, 'font-family', this.settings.tooltipDateFont.family); + this.renderer.setStyle(dateElement, 'font-size', this.settings.tooltipDateFont.size + this.settings.tooltipDateFont.sizeUnit); + this.renderer.setStyle(dateElement, 'font-style', this.settings.tooltipDateFont.style); + this.renderer.setStyle(dateElement, 'font-weight', this.settings.tooltipDateFont.weight); + this.renderer.setStyle(dateElement, 'line-height', this.settings.tooltipDateFont.lineHeight); + this.renderer.setStyle(dateElement, 'color', this.settings.tooltipDateColor); + this.renderer.appendChild(tooltipElement, dateElement); + } + const labelValueElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.setStyle(labelValueElement, 'display', 'flex'); + this.renderer.setStyle(labelValueElement, 'flex-direction', 'row'); + this.renderer.setStyle(labelValueElement, 'align-items', 'center'); + this.renderer.setStyle(labelValueElement, 'align-self', 'stretch'); + this.renderer.setStyle(labelValueElement, 'gap', '12px'); + this.renderer.appendChild(tooltipElement, labelValueElement); + const labelElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.setStyle(labelElement, 'display', 'flex'); + this.renderer.setStyle(labelElement, 'align-items', 'center'); + this.renderer.setStyle(labelElement, 'gap', '8px'); + this.renderer.appendChild(labelValueElement, labelElement); + const circleElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.setStyle(circleElement, 'width', '8px'); + this.renderer.setStyle(circleElement, 'height', '8px'); + this.renderer.setStyle(circleElement, 'border-radius', '50%'); + this.renderer.setStyle(circleElement, 'background', seriesParams.color); + this.renderer.appendChild(labelElement, circleElement); + const labelTextElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.appendChild(labelTextElement, this.renderer.createText(seriesParams.seriesName)); + this.renderer.setStyle(labelTextElement, 'font-family', 'Roboto'); + this.renderer.setStyle(labelTextElement, 'font-size', '12px'); + this.renderer.setStyle(labelTextElement, 'font-style', 'normal'); + this.renderer.setStyle(labelTextElement, 'font-weight', '400'); + this.renderer.setStyle(labelTextElement, 'line-height', '16px'); + this.renderer.setStyle(labelTextElement, 'letter-spacing', '0.4px'); + this.renderer.setStyle(labelTextElement, 'color', 'rgba(0, 0, 0, 0.76)'); + this.renderer.appendChild(labelElement, labelTextElement); + const valueElement: HTMLElement = this.renderer.createElement('div'); + this.renderer.appendChild(valueElement, this.renderer.createText(value)); + this.renderer.setStyle(valueElement, 'font-family', this.settings.tooltipValueFont.family); + this.renderer.setStyle(valueElement, 'font-size', this.settings.tooltipValueFont.size + this.settings.tooltipValueFont.sizeUnit); + this.renderer.setStyle(valueElement, 'font-style', this.settings.tooltipValueFont.style); + this.renderer.setStyle(valueElement, 'font-weight', this.settings.tooltipValueFont.weight); + this.renderer.setStyle(valueElement, 'line-height', this.settings.tooltipValueFont.lineHeight); + this.renderer.setStyle(valueElement, 'color', this.settings.tooltipValueColor); + this.renderer.appendChild(labelValueElement, valueElement); + return tooltipElement; + }, + padding: [8, 12], + backgroundColor: this.settings.tooltipBackgroundColor, + extraCssText: `line-height: 1; backdrop-filter: blur(${this.settings.tooltipBackgroundBlur}px);` + }; + } + + this.rangeChart.setOption(this.rangeChartOptions); + + this.shapeResize$ = new ResizeObserver(() => { + this.onResize(); + }); + this.shapeResize$.observe(this.chartShape.nativeElement); + this.onResize(); + } + + private onResize() { + const width = this.rangeChart.getWidth(); + const height = this.rangeChart.getHeight(); + const shapeWidth = this.chartShape.nativeElement.offsetWidth; + const shapeHeight = this.chartShape.nativeElement.offsetHeight; + if (width !== shapeWidth || height !== shapeHeight) { + this.rangeChart.resize(); + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.models.ts new file mode 100644 index 0000000000..6bcd0c1497 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/chart/range-chart-widget.models.ts @@ -0,0 +1,103 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + BackgroundSettings, + BackgroundType, + ColorRange, + DateFormatSettings, + Font, simpleDateFormat +} from '@shared/models/widget-settings.models'; +import { LegendPosition } from '@shared/models/widget.models'; + +export interface RangeChartWidgetSettings { + dataZoom: boolean; + rangeColors: Array; + outOfRangeColor: string; + fillArea: boolean; + showLegend: boolean; + legendPosition: LegendPosition; + legendLabelFont: Font; + legendLabelColor: string; + showTooltip: boolean; + tooltipValueFont: Font; + tooltipValueColor: string; + tooltipShowDate: boolean; + tooltipDateFormat: DateFormatSettings; + tooltipDateFont: Font; + tooltipDateColor: string; + tooltipBackgroundColor: string; + tooltipBackgroundBlur: number; + background: BackgroundSettings; +} + +export const rangeChartDefaultSettings: RangeChartWidgetSettings = { + dataZoom: true, + rangeColors: [ + {to: -20, color: '#234CC7'}, + {from: -20, to: 0, color: '#305AD7'}, + {from: 0, to: 10, color: '#7191EF'}, + {from: 10, to: 20, color: '#FFA600'}, + {from: 20, to: 30, color: '#F36900'}, + {from: 30, to: 40, color: '#F04022'}, + {from: 40, color: '#D81838'} + ], + outOfRangeColor: '#ccc', + fillArea: true, + showLegend: true, + legendPosition: LegendPosition.top, + legendLabelFont: { + family: 'Roboto', + size: 12, + sizeUnit: 'px', + style: 'normal', + weight: '400', + lineHeight: '16px' + }, + legendLabelColor: 'rgba(0, 0, 0, 0.76)', + showTooltip: true, + tooltipValueFont: { + family: 'Roboto', + size: 12, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '16px' + }, + tooltipValueColor: 'rgba(0, 0, 0, 0.76)', + tooltipShowDate: true, + tooltipDateFormat: simpleDateFormat('dd MMM yyyy HH:mm'), + tooltipDateFont: { + family: 'Roboto', + size: 11, + sizeUnit: 'px', + style: 'normal', + weight: '400', + lineHeight: '16px' + }, + tooltipDateColor: 'rgba(0, 0, 0, 0.76)', + tooltipBackgroundColor: 'rgba(255, 255, 255, 0.76)', + tooltipBackgroundBlur: 4, + background: { + type: BackgroundType.color, + color: '#fff', + overlay: { + enabled: false, + color: 'rgba(255,255,255,0.72)', + blur: 3 + } + } +}; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.html new file mode 100644 index 0000000000..155d09f53f --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.html @@ -0,0 +1,140 @@ + + +
    +
    widgets.range-chart.range-chart-card-style
    +
    + + {{ 'widgets.range-chart.data-zoom' | translate }} + +
    +
    +
    {{ 'widgets.range-chart.range-colors' | translate }}
    + + +
    +
    +
    {{ 'widgets.range-chart.out-of-range-color' | translate }}
    + + +
    +
    + + {{ 'widgets.range-chart.fill-area' | translate }} + +
    +
    + + + + + {{ 'widget-config.legend' | translate }} + + + + +
    +
    {{ 'legend.position' | translate }}
    + + + + {{ legendPositionTranslationMap.get(pos) | translate }} + + + +
    +
    +
    {{ 'widgets.range-chart.legend-label' | translate }}
    +
    + + + + +
    +
    +
    +
    +
    +
    + + + + + {{ 'widgets.range-chart.tooltip' | translate }} + + + + +
    +
    {{ 'widgets.range-chart.tooltip-value' | translate }}
    +
    + + + + +
    +
    +
    + + {{ 'widgets.range-chart.tooltip-date' | translate }} + +
    + + + + + +
    +
    +
    +
    {{ 'widgets.range-chart.tooltip-background-color' | translate }}
    + + +
    +
    +
    {{ 'widgets.range-chart.tooltip-background-blur' | translate }}
    + + +
    px
    +
    +
    +
    +
    +
    +
    +
    {{ 'widgets.background.background' | translate }}
    + + +
    +
    +
    diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.ts new file mode 100644 index 0000000000..f5fa02065a --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/range-chart-widget-settings.component.ts @@ -0,0 +1,147 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, Injector } from '@angular/core'; +import { + legendPositions, + legendPositionTranslationMap, + WidgetSettings, + WidgetSettingsComponent +} from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { formatValue } from '@core/utils'; +import { rangeChartDefaultSettings } from '@home/components/widget/lib/chart/range-chart-widget.models'; +import { DateFormatProcessor, DateFormatSettings } from '@shared/models/widget-settings.models'; + +@Component({ + selector: 'tb-range-chart-widget-settings', + templateUrl: './range-chart-widget-settings.component.html', + styleUrls: [] +}) +export class RangeChartWidgetSettingsComponent extends WidgetSettingsComponent { + + legendPositions = legendPositions; + + legendPositionTranslationMap = legendPositionTranslationMap; + + rangeChartWidgetSettingsForm: UntypedFormGroup; + + tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this); + + tooltipDatePreviewFn = this._tooltipDatePreviewFn.bind(this); + + constructor(protected store: Store, + private $injector: Injector, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.rangeChartWidgetSettingsForm; + } + + protected defaultSettings(): WidgetSettings { + return {...rangeChartDefaultSettings}; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.rangeChartWidgetSettingsForm = this.fb.group({ + dataZoom: [settings.dataZoom, []], + rangeColors: [settings.rangeColors, []], + outOfRangeColor: [settings.outOfRangeColor, []], + fillArea: [settings.fillArea, []], + + showLegend: [settings.showLegend, []], + legendPosition: [settings.legendPosition, []], + legendLabelFont: [settings.legendLabelFont, []], + legendLabelColor: [settings.legendLabelColor, []], + + showTooltip: [settings.showTooltip, []], + tooltipValueFont: [settings.tooltipValueFont, []], + tooltipValueColor: [settings.tooltipValueColor, []], + tooltipShowDate: [settings.tooltipShowDate, []], + tooltipDateFormat: [settings.tooltipDateFormat, []], + tooltipDateFont: [settings.tooltipDateFont, []], + tooltipDateColor: [settings.tooltipDateColor, []], + tooltipBackgroundColor: [settings.tooltipBackgroundColor, []], + tooltipBackgroundBlur: [settings.tooltipBackgroundBlur, []], + + background: [settings.background, []] + }); + } + + protected validatorTriggers(): string[] { + return ['showLegend', 'showTooltip', 'tooltipShowDate']; + } + + protected updateValidators(emitEvent: boolean) { + const showLegend: boolean = this.rangeChartWidgetSettingsForm.get('showLegend').value; + const showTooltip: boolean = this.rangeChartWidgetSettingsForm.get('showTooltip').value; + const tooltipShowDate: boolean = this.rangeChartWidgetSettingsForm.get('tooltipShowDate').value; + + if (showLegend) { + this.rangeChartWidgetSettingsForm.get('legendPosition').enable(); + this.rangeChartWidgetSettingsForm.get('legendLabelFont').enable(); + this.rangeChartWidgetSettingsForm.get('legendLabelColor').enable(); + } else { + this.rangeChartWidgetSettingsForm.get('legendPosition').disable(); + this.rangeChartWidgetSettingsForm.get('legendLabelFont').disable(); + this.rangeChartWidgetSettingsForm.get('legendLabelColor').disable(); + } + + if (showTooltip) { + this.rangeChartWidgetSettingsForm.get('tooltipValueFont').enable(); + this.rangeChartWidgetSettingsForm.get('tooltipValueColor').enable(); + this.rangeChartWidgetSettingsForm.get('tooltipShowDate').enable({emitEvent: false}); + this.rangeChartWidgetSettingsForm.get('tooltipBackgroundColor').enable(); + this.rangeChartWidgetSettingsForm.get('tooltipBackgroundBlur').enable(); + if (tooltipShowDate) { + this.rangeChartWidgetSettingsForm.get('tooltipDateFormat').enable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateFont').enable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateColor').enable(); + } else { + this.rangeChartWidgetSettingsForm.get('tooltipDateFormat').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateFont').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateColor').disable(); + } + } else { + this.rangeChartWidgetSettingsForm.get('tooltipValueFont').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipValueColor').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipShowDate').disable({emitEvent: false}); + this.rangeChartWidgetSettingsForm.get('tooltipDateFormat').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateFont').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipDateColor').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipBackgroundColor').disable(); + this.rangeChartWidgetSettingsForm.get('tooltipBackgroundBlur').disable(); + } + } + + private _tooltipValuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(22, decimals, units, false); + } + + private _tooltipDatePreviewFn(): string { + const dateFormat: DateFormatSettings = this.rangeChartWidgetSettingsForm.get('tooltipDateFormat').value; + const processor = DateFormatProcessor.fromSettings(this.$injector, dateFormat); + processor.update(Date.now()); + return processor.formatted; + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts index 989bdb2844..31cafc6d96 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/color-range-settings.component.ts @@ -147,7 +147,9 @@ export class ColorRangeSettingsComponent implements OnInit, ControlValueAccessor const rangeColors = this.modelValue.slice(0, Math.min(3, this.modelValue.length)).map(r => r.color); colors = colors.concat(rangeColors); } - if (colors.length === 1) { + if (!colors.length) { + this.colorStyle = {}; + } else if (colors.length === 1) { this.colorStyle = {backgroundColor: colors[0]}; } else { const gradientValues: string[] = []; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-select.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-select.component.ts index e4f0b47946..2aba8866ed 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-select.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-select.component.ts @@ -16,11 +16,7 @@ import { Component, forwardRef, Input, OnInit, Renderer2, ViewChild, ViewContainerRef } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR, UntypedFormControl } from '@angular/forms'; -import { - compareDateFormats, - dateFormats, - DateFormatSettings -} from '@shared/models/widget-settings.models'; +import { compareDateFormats, dateFormats, DateFormatSettings } from '@shared/models/widget-settings.models'; import { TranslateService } from '@ngx-translate/core'; import { DatePipe } from '@angular/common'; import { MatButton } from '@angular/material/button'; @@ -29,6 +25,7 @@ import { deepClone } from '@core/utils'; import { DateFormatSettingsPanelComponent } from '@home/components/widget/lib/settings/common/date-format-settings-panel.component'; +import { coerceBoolean } from '@shared/decorators/coercion'; @Component({ selector: 'tb-date-format-select', @@ -50,7 +47,11 @@ export class DateFormatSelectComponent implements OnInit, ControlValueAccessor { @Input() disabled: boolean; - dateFormatList = dateFormats; + @Input() + @coerceBoolean() + excludeLastUpdateAgo = false; + + dateFormatList: DateFormatSettings[]; dateFormatsCompare = compareDateFormats; @@ -69,6 +70,8 @@ export class DateFormatSelectComponent implements OnInit, ControlValueAccessor { private viewContainerRef: ViewContainerRef) {} ngOnInit(): void { + this.dateFormatList = this.excludeLastUpdateAgo ? + dateFormats.filter(format => !format.lastUpdateAgo) : dateFormats; this.dateFormatFormControl = new UntypedFormControl(); this.dateFormatFormControl.valueChanges.subscribe((value: DateFormatSettings) => { this.updateModel(value); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts index 0f545366c2..5d1bce1745 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts @@ -305,6 +305,9 @@ import { import { DoughnutWidgetSettingsComponent } from '@home/components/widget/lib/settings/chart/doughnut-widget-settings.component'; +import { + RangeChartWidgetSettingsComponent +} from '@home/components/widget/lib/settings/chart/range-chart-widget-settings.component'; @NgModule({ declarations: [ @@ -416,7 +419,8 @@ import { ValueChartCardWidgetSettingsComponent, ProgressBarWidgetSettingsComponent, LiquidLevelCardWidgetSettingsComponent, - DoughnutWidgetSettingsComponent + DoughnutWidgetSettingsComponent, + RangeChartWidgetSettingsComponent ], imports: [ CommonModule, @@ -533,7 +537,8 @@ import { ValueChartCardWidgetSettingsComponent, ProgressBarWidgetSettingsComponent, LiquidLevelCardWidgetSettingsComponent, - DoughnutWidgetSettingsComponent + DoughnutWidgetSettingsComponent, + RangeChartWidgetSettingsComponent ] }) export class WidgetSettingsModule { @@ -616,5 +621,6 @@ export const widgetSettingsComponentsMap: {[key: string]: Type { + if (isNumber(range.from) && isNumber(range.to)) { + if (isNumber(toCheck.from) && isNumber(toCheck.to)) { + return toCheck.from >= range.from && toCheck.to < range.to; + } else { + return false; + } + } else if (isNumber(range.from)) { + if (isNumber(toCheck.from)) { + return toCheck.from >= range.from; + } else { + return false; + } + } else if (isNumber(range.to)) { + if (isNumber(toCheck.to)) { + return toCheck.to < range.to; + } else { + return false; + } + } else { + return false; + } +}; + +export const filterIncludingColorRanges = (ranges: Array): Array => { + const result = [...ranges]; + let includes = true; + while (includes) { + let index = -1; + for (let i = 0; i < result.length; i++) { + const range = result[i]; + if (result.some((value, i1) => i1 !== i && colorRangeIncludes(value, range))) { + index = i; + break; + } + } + if (index > -1) { + result.splice(index, 1); + } else { + includes = false; + } + } + return result; +}; + +export const sortedColorRange = (ranges: Array): Array => ranges ? [...ranges].sort( + (a, b) => { + if (isNumber(a.from) && isNumber(a.to) && isNumber(b.from) && isNumber(b.to)) { + if (b.from >= a.from && b.to < a.to) { + return 1; + } else if (a.from >= b.from && a.to < b.to) { + return -1; + } else { + return a.from - b.from; + } + } else if (isNumber(a.from) && isNumber(b.from)) { + return a.from - b.from; + } else if (isNumber(a.to) && isNumber(b.to)) { + return a.to - b.to; + } else if (isNumber(a.from) && isUndefinedOrNull(b.from)) { + return 1; + } else if (isUndefinedOrNull(a.from) && isNumber(b.from)) { + return -1; + } else if (isNumber(a.to) && isUndefinedOrNull(b.to)) { + return 1; + } else if (isUndefinedOrNull(a.to) && isNumber(b.to)) { + return -1; + } else { + return 0; + } + } + ) : []; + export interface ColorSettings { type: ColorType; color: string; @@ -208,7 +281,7 @@ class RangeColorProcessor extends ColorProcessor { return this.settings.color; } - private static constantRange(range: ColorRange): boolean { + public static constantRange(range: ColorRange): boolean { return isNumber(range.from) && isNumber(range.to) && range.from === range.to; } } diff --git a/ui-ngx/src/app/shared/models/widget.models.ts b/ui-ngx/src/app/shared/models/widget.models.ts index 0e676138ce..da0919e8a4 100644 --- a/ui-ngx/src/app/shared/models/widget.models.ts +++ b/ui-ngx/src/app/shared/models/widget.models.ts @@ -269,6 +269,8 @@ export enum LegendPosition { right = 'right' } +export const legendPositions = Object.keys(LegendPosition) as LegendPosition[]; + export const legendPositionTranslationMap = new Map( [ [ LegendPosition.top, 'position.top' ], diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index ef660731bf..37bc5d449f 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5834,6 +5834,20 @@ "no-columns-found": "No columns found", "no-columns-matching": "'{{column}}' not found." }, + "range-chart": { + "chart": "Chart", + "data-zoom": "Data zoom", + "range-colors": "Range colors", + "out-of-range-color": "Out of range color", + "fill-area": "Fill area", + "legend-label": "Label", + "tooltip": "Tooltip", + "tooltip-value": "Value", + "tooltip-date": "Date", + "tooltip-background-color": "Background color", + "tooltip-background-blur": "Background blur", + "range-chart-card-style": "Range chart card style" + }, "rpc": { "value-settings": "Value settings", "initial-value": "Initial value", From f5cf8408386f362f67eced1f990558550adac84c Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 16 Nov 2023 17:46:03 +0200 Subject: [PATCH 061/162] Add upgrade from 3.6.1 tp 3.6.2 --- .../thingsboard/server/install/ThingsboardInstallService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index 0730bca8f8..9218a170d5 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -266,6 +266,8 @@ public class ThingsboardInstallService { log.info("Upgrading ThingsBoard from version 3.6.0 to 3.6.1 ..."); databaseEntitiesUpgradeService.upgradeDatabase("3.6.0"); dataUpdateService.updateData("3.6.0"); + case "3.6.1": + log.info("Upgrading ThingsBoard from version 3.6.1 to 3.6.2 ..."); //TODO DON'T FORGET to update switch statement in the CacheCleanupService if you need to clear the cache break; default: From 7401ece634712da3f983f7e2ca54fdb6d8e806d0 Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Fri, 17 Nov 2023 11:56:29 +0200 Subject: [PATCH 062/162] testSyncEdge - improved edge activation. added loggin in case test failure --- .../server/controller/EdgeControllerTest.java | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java index f0c47bb53a..0a25d76dd9 100644 --- a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java @@ -23,6 +23,8 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import com.google.protobuf.AbstractMessage; +import lombok.extern.slf4j.Slf4j; +import org.awaitility.Awaitility; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -78,6 +80,8 @@ import org.thingsboard.server.gen.edge.v1.UserUpdateMsg; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -92,6 +96,7 @@ import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; }) @ContextConfiguration(classes = {EdgeControllerTest.Config.class}) @DaoSqlTest +@Slf4j public class EdgeControllerTest extends AbstractControllerTest { public static final String EDGE_HOST = "localhost"; @@ -863,10 +868,7 @@ public class EdgeControllerTest extends AbstractControllerTest { Edge edge = doPost("/api/edge", constructEdge("Test Sync Edge", "test"), Edge.class); - // simulate edge activation - ObjectNode attributes = JacksonUtil.newObjectNode(); - attributes.put("active", true); - doPost("/api/plugins/telemetry/EDGE/" + edge.getId() + "/attributes/" + DataConstants.SERVER_SCOPE, attributes); + simulateEdgeActivation(edge); doPost("/api/edge/" + edge.getId().getId().toString() + "/device/" + savedDevice.getId().getId().toString(), Device.class); @@ -878,7 +880,7 @@ public class EdgeControllerTest extends AbstractControllerTest { edgeImitator.expectMessageAmount(24); edgeImitator.connect(); - assertThat(edgeImitator.waitForMessages()).as("await for messages on first connect").isTrue(); + waitForMessages(edgeImitator); verifyFetchersMsgs(edgeImitator); // verify queue msgs @@ -890,7 +892,7 @@ public class EdgeControllerTest extends AbstractControllerTest { edgeImitator.expectMessageAmount(20); doPost("/api/edge/sync/" + edge.getId()); - assertThat(edgeImitator.waitForMessages()).as("await for messages after edge sync rest api call").isTrue(); + waitForMessages(edgeImitator); verifyFetchersMsgs(edgeImitator); Assert.assertTrue(edgeImitator.getDownlinkMsgs().isEmpty()); @@ -909,6 +911,35 @@ public class EdgeControllerTest extends AbstractControllerTest { .andExpect(status().isOk()); } + private void simulateEdgeActivation(Edge edge) throws Exception { + ObjectNode attributes = JacksonUtil.newObjectNode(); + attributes.put("active", true); + doPost("/api/plugins/telemetry/EDGE/" + edge.getId() + "/attributes/" + DataConstants.SERVER_SCOPE, attributes); + Awaitility.await() + .atMost(30, TimeUnit.SECONDS) + .until(() -> { + List> values = doGetAsyncTyped("/api/plugins/telemetry/EDGE/" + edge.getId() + + "/values/attributes/SERVER_SCOPE", new TypeReference<>() {}); + Optional> activeAttrOpt = values.stream().filter(att -> att.get("key").equals("active")).findFirst(); + if (activeAttrOpt.isEmpty()) { + return false; + } + Map activeAttr = activeAttrOpt.get(); + return "true".equals(activeAttr.get("value").toString()); + }); + } + + private void waitForMessages(EdgeImitator edgeImitator) throws Exception { + boolean success = edgeImitator.waitForMessages(); + if (!success) { + List downlinkMsgs = edgeImitator.getDownlinkMsgs(); + for (AbstractMessage downlinkMsg : downlinkMsgs) { + log.error("{}\n{}", downlinkMsg.getClass(), downlinkMsg); + } + Assert.fail("Await for messages was not successful!"); + } + } + private void verifyFetchersMsgs(EdgeImitator edgeImitator) { Assert.assertTrue(popQueueMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Main")); Assert.assertTrue(popRuleChainMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Edge Root Rule Chain")); From 0eaa0d44e66ff23b13d2c7a5d38c293c3ec9763d Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Fri, 17 Nov 2023 11:59:00 +0200 Subject: [PATCH 063/162] Organize imports --- .../org/thingsboard/server/controller/EdgeControllerTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java index 0a25d76dd9..379dafef94 100644 --- a/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/EdgeControllerTest.java @@ -85,7 +85,6 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.TimeUnit; -import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.containsString; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; From 0e7722b9fc813ebd248539dd596609cd2f576a23 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 17 Nov 2023 12:02:05 +0200 Subject: [PATCH 064/162] Fix compile error --- .../test/java/org/thingsboard/server/edge/ResourceEdgeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java index 4d1acf9afb..14f6e2994b 100644 --- a/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/ResourceEdgeTest.java @@ -129,7 +129,7 @@ public class ResourceEdgeTest extends AbstractEdgeTest { resource.setResourceType(ResourceType.JKS); resource.setTitle("Edge Test Resource"); resource.setFileName(FILE_NAME); - resource.setData(TEST_DATA); + resource.setEncodedData(TEST_DATA); edgeImitator.expectMessageAmount(1); TbResource savedResource = doPost("/api/resource", resource, TbResource.class); From fbec7aab25b670b89a97b72fa252fa625247f039 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 17 Nov 2023 12:18:03 +0200 Subject: [PATCH 065/162] moved pubsub executors to pubsubSettings --- .../PubSubRuleNodeExecutorProvider.java | 9 +++- .../src/main/resources/thingsboard.yml | 5 +- .../provider/PubSubMonolithQueueFactory.java | 50 ++++++++----------- .../provider/PubSubTbCoreQueueFactory.java | 38 ++++++-------- .../PubSubTbRuleEngineQueueFactory.java | 28 +++++------ .../PubSubTbVersionControlQueueFactory.java | 13 ++--- .../provider/PubSubTransportQueueFactory.java | 20 +++----- .../pubsub/TbPubSubConsumerTemplate.java | 4 +- .../pubsub/TbPubSubProducerTemplate.java | 10 +--- .../pubsub/TbPubSubQueueExecutorProvider.java | 2 +- .../server/queue/pubsub/TbPubSubSettings.java | 2 + .../src/main/resources/tb-vc-executor.yml | 2 +- .../rule/engine/gcp/pubsub/TbPubSubNode.java | 6 +-- .../src/main/resources/tb-coap-transport.yml | 2 +- .../src/main/resources/tb-http-transport.yml | 2 +- .../src/main/resources/tb-lwm2m-transport.yml | 2 +- .../src/main/resources/tb-mqtt-transport.yml | 2 +- .../src/main/resources/tb-snmp-transport.yml | 2 +- 18 files changed, 88 insertions(+), 111 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java index f730949f45..520b8f855c 100644 --- a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.executors; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ThingsBoardThreadFactory; @@ -27,6 +28,9 @@ import java.util.concurrent.ScheduledExecutorService; @Component public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { + @Value("${service.rule_engine.pubsub.executor_thread_pool_size}") + private Integer threadPoolSize; + /** * Refers to com.google.cloud.pubsub.v1.Publisher default executor configuration */ @@ -35,7 +39,10 @@ public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { @PostConstruct public void init() { - executor = Executors.newScheduledThreadPool(THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(), ThingsBoardThreadFactory.forName("pubsub-rule-nodes"));; + if (threadPoolSize == null) { + threadPoolSize = THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(); + } + executor = Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-rule-nodes")); } @Override diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 802756c105..304ad96a34 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1411,7 +1411,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again @@ -1641,6 +1641,9 @@ service: # Comma-separated list of tenant profile ids assigned to this Rule Engine. # This Rule Engine will only be responsible for tenants with these profiles (in case 'isolation' option is enabled in the profile). assigned_tenant_profiles: "${TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES:}" + pubsub: + # Thread pool size for pubsub rule node executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) + executor_thread_pool_size: "${TB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" # Metrics parameters metrics: diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java index 8ecd6564c8..554d452556 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubMonolithQueueFactory.java @@ -44,7 +44,6 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; -import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -78,7 +77,6 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng private final TbQueueAdmin transportApiAdmin; private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin vcAdmin; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; public PubSubMonolithQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, @@ -89,8 +87,7 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng TbServiceInfoProvider serviceInfoProvider, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, TbQueueRemoteJsInvokeSettings jsInvokeSettings, - TbQueueVersionControlSettings vcSettings, - TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { + TbQueueVersionControlSettings vcSettings) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; @@ -99,7 +96,6 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng this.topicService = topicService; this.serviceInfoProvider = serviceInfoProvider; this.vcSettings = vcSettings; - this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -113,91 +109,85 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic()); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, ruleEngineSettings.getTopic()); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic()); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) ); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, configuration.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { return new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getRequestsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic()); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { RemoteJsResponse.Builder builder = RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }, tbPubSubQueueExecutorProvider); + }); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -213,28 +203,28 @@ public class PubSubMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); } @Override public TbQueueProducer> createVersionControlMsgProducer() { - return new TbPubSubProducerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(vcAdmin, pubSubSettings, vcSettings.getTopic()); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java index 5443339d2a..3b45992e25 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbCoreQueueFactory.java @@ -42,7 +42,6 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; -import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -73,7 +72,6 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { private final TbQueueAdmin transportApiAdmin; private final TbQueueAdmin notificationAdmin; private final TbQueueAdmin ruleEngineAdmin; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; public PubSubTbCoreQueueFactory(TbPubSubSettings pubSubSettings, TbQueueCoreSettings coreSettings, @@ -83,8 +81,7 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbQueueRuleEngineSettings ruleEngineSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { + TbPubSubSubscriptionSettings pubSubSubscriptionSettings) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.transportApiSettings = transportApiSettings; @@ -93,7 +90,6 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; this.ruleEngineSettings = ruleEngineSettings; - this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.jsExecutorAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getJsExecutorSettings()); @@ -104,64 +100,64 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, transportNotificationSettings.getNotificationsTopic()); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, ruleEngineSettings.getTopic()); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic()); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, coreSettings.getTopic()); } @Override public TbQueueConsumer> createToCoreMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToCoreNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_CORE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToCoreNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createTransportApiRequestConsumer() { return new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getRequestsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiRequestMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createTransportApiResponseProducer() { - return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, transportApiSettings.getResponsesTopic()); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { JsInvokeProtos.RemoteJsResponse.Builder builder = JsInvokeProtos.RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }, tbPubSubQueueExecutorProvider); + }); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -177,25 +173,23 @@ public class PubSubTbCoreQueueFactory implements TbCoreQueueFactory { @Override public TbQueueConsumer> createToUsageStatsServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToUsageStatsServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToOtaPackageStateServiceMsgConsumer() { return new TbPubSubConsumerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getOtaPackageTopic()); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic(), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, coreSettings.getUsageStatsTopic()); } @Override diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java index b0fde82e7d..a60f77852f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbRuleEngineQueueFactory.java @@ -40,7 +40,6 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.discovery.TbServiceInfoProvider; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; -import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; @@ -63,7 +62,6 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory private final TbServiceInfoProvider serviceInfoProvider; private final TbQueueRemoteJsInvokeSettings jsInvokeSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -77,8 +75,7 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory TbServiceInfoProvider serviceInfoProvider, TbQueueRemoteJsInvokeSettings jsInvokeSettings, TbQueueTransportNotificationSettings transportNotificationSettings, - TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { + TbPubSubSubscriptionSettings pubSubSubscriptionSettings) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.ruleEngineSettings = ruleEngineSettings; @@ -86,7 +83,6 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory this.serviceInfoProvider = serviceInfoProvider; this.jsInvokeSettings = jsInvokeSettings; this.transportNotificationSettings = transportNotificationSettings; - this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -96,53 +92,53 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createTransportNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic())); } @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createRuleEngineNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToRuleEngineMsgConsumer(Queue configuration) { return new TbPubSubConsumerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(configuration.getTopic()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueConsumer> createToRuleEngineNotificationsMsgConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.getNotificationsTopic(ServiceType.TB_RULE_ENGINE, serviceInfoProvider.getServiceId()).getFullTopicName(), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToRuleEngineNotificationMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override @Bean public TbQueueRequestTemplate, TbProtoQueueMsg> createRemoteJsRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic(), tbPubSubQueueExecutorProvider); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getRequestTopic()); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(jsExecutorAdmin, pubSubSettings, jsInvokeSettings.getResponseTopic() + "." + serviceInfoProvider.getServiceId(), msg -> { JsInvokeProtos.RemoteJsResponse.Builder builder = JsInvokeProtos.RemoteJsResponse.newBuilder(); JsonFormat.parser().ignoringUnknownFields().merge(new String(msg.getData(), StandardCharsets.UTF_8), builder); return new TbProtoQueueMsg<>(msg.getKey(), builder.build(), msg.getHeaders()); - }, tbPubSubQueueExecutorProvider); + }); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> builder = DefaultTbQueueRequestTemplate.builder(); @@ -157,12 +153,12 @@ public class PubSubTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createToOtaPackageStateServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getOtaPackageTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java index 29207ed429..8154d04d6d 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTbVersionControlQueueFactory.java @@ -26,7 +26,6 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; -import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; @@ -42,7 +41,6 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue private final TbQueueCoreSettings coreSettings; private final TbQueueVersionControlSettings vcSettings; private final TopicService topicService; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin notificationAdmin; @@ -52,14 +50,12 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue TbQueueCoreSettings coreSettings, TbQueueVersionControlSettings vcSettings, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TopicService topicService, - TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider + TopicService topicService ) { this.pubSubSettings = pubSubSettings; this.coreSettings = coreSettings; this.vcSettings = vcSettings; this.topicService = topicService; - this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.notificationAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getNotificationsSettings()); @@ -68,19 +64,18 @@ public class PubSubTbVersionControlQueueFactory implements TbVersionControlQueue @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createToVersionControlMsgConsumer() { return new TbPubSubConsumerTemplate<>(vcAdmin, pubSubSettings, topicService.buildTopicName(vcSettings.getTopic()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()), - tbPubSubQueueExecutorProvider + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportProtos.ToVersionControlServiceMsg.parseFrom(msg.getData()), msg.getHeaders()) ); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java index 94a454dd5b..edcad873c4 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/provider/PubSubTransportQueueFactory.java @@ -37,7 +37,6 @@ import org.thingsboard.server.queue.discovery.TopicService; import org.thingsboard.server.queue.pubsub.TbPubSubAdmin; import org.thingsboard.server.queue.pubsub.TbPubSubConsumerTemplate; import org.thingsboard.server.queue.pubsub.TbPubSubProducerTemplate; -import org.thingsboard.server.queue.pubsub.TbPubSubQueueExecutorProvider; import org.thingsboard.server.queue.pubsub.TbPubSubSettings; import org.thingsboard.server.queue.pubsub.TbPubSubSubscriptionSettings; import org.thingsboard.server.queue.settings.TbQueueCoreSettings; @@ -59,7 +58,6 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { private final TbQueueTransportApiSettings transportApiSettings; private final TbQueueTransportNotificationSettings transportNotificationSettings; private final TopicService topicService; - private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; private final TbQueueAdmin coreAdmin; private final TbQueueAdmin ruleEngineAdmin; @@ -73,8 +71,7 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { TbQueueTransportApiSettings transportApiSettings, TbQueueTransportNotificationSettings transportNotificationSettings, TbPubSubSubscriptionSettings pubSubSubscriptionSettings, - TopicService topicService, - TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { + TopicService topicService) { this.pubSubSettings = pubSubSettings; this.serviceInfoProvider = serviceInfoProvider; this.coreSettings = coreSettings; @@ -82,7 +79,6 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { this.transportApiSettings = transportApiSettings; this.transportNotificationSettings = transportNotificationSettings; this.topicService = topicService; - this.tbPubSubQueueExecutorProvider = tbPubSubQueueExecutorProvider; this.coreAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getCoreSettings()); this.ruleEngineAdmin = new TbPubSubAdmin(pubSubSettings, pubSubSubscriptionSettings.getRuleEngineSettings()); @@ -92,10 +88,10 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueRequestTemplate, TbProtoQueueMsg> createTransportApiRequestTemplate() { - TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic()), tbPubSubQueueExecutorProvider); + TbQueueProducer> producer = new TbPubSubProducerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getRequestsTopic())); TbQueueConsumer> consumer = new TbPubSubConsumerTemplate<>(transportApiAdmin, pubSubSettings, topicService.buildTopicName(transportApiSettings.getResponsesTopic() + "." + serviceInfoProvider.getServiceId()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), TransportApiResponseMsg.parseFrom(msg.getData()), msg.getHeaders())); DefaultTbQueueRequestTemplate.DefaultTbQueueRequestTemplateBuilder , TbProtoQueueMsg> templateBuilder = DefaultTbQueueRequestTemplate.builder(); @@ -110,29 +106,29 @@ public class PubSubTransportQueueFactory implements TbTransportQueueFactory { @Override public TbQueueProducer> createRuleEngineMsgProducer() { - return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(ruleEngineAdmin, pubSubSettings, topicService.buildTopicName(ruleEngineSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueProducer> createTbCoreNotificationsMsgProducer() { - return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getTopic())); } @Override public TbQueueConsumer> createTransportNotificationsConsumer() { return new TbPubSubConsumerTemplate<>(notificationAdmin, pubSubSettings, topicService.buildTopicName(transportNotificationSettings.getNotificationsTopic() + "." + serviceInfoProvider.getServiceId()), - msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders()), tbPubSubQueueExecutorProvider); + msg -> new TbProtoQueueMsg<>(msg.getKey(), ToTransportMsg.parseFrom(msg.getData()), msg.getHeaders())); } @Override public TbQueueProducer> createToUsageStatsServiceMsgProducer() { - return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic()), tbPubSubQueueExecutorProvider); + return new TbPubSubProducerTemplate<>(coreAdmin, pubSubSettings, topicService.buildTopicName(coreSettings.getUsageStatsTopic())); } @PreDestroy diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java index fd01696873..1135053a66 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubConsumerTemplate.java @@ -63,7 +63,7 @@ public class TbPubSubConsumerTemplate extends AbstractPara private final SubscriberStub subscriber; private volatile int messagesPerTopic; - public TbPubSubConsumerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String topic, TbQueueMsgDecoder decoder, TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider) { + public TbPubSubConsumerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String topic, TbQueueMsgDecoder decoder) { super(topic); this.admin = admin; this.pubSubSettings = pubSubSettings; @@ -77,7 +77,7 @@ public class TbPubSubConsumerTemplate extends AbstractPara SubscriberStubSettings.defaultGrpcTransportProviderBuilder() .setMaxInboundMessageSize(pubSubSettings.getMaxMsgSize()) .build()) - .setExecutorProvider(FixedExecutorProvider.create(tbPubSubQueueExecutorProvider.getExecutor())) + .setExecutorProvider(FixedExecutorProvider.create(pubSubSettings.getTbPubSubQueueExecutorProvider().getExecutor())) .build(); this.subscriber = GrpcSubscriberStub.create(subscriberStubSettings); } catch (IOException e) { diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java index 48a104f20a..bf297d8af4 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubProducerTemplate.java @@ -25,8 +25,6 @@ import com.google.protobuf.ByteString; import com.google.pubsub.v1.ProjectTopicName; import com.google.pubsub.v1.PubsubMessage; import lombok.extern.slf4j.Slf4j; -import org.thingsboard.common.util.ExecutorProvider; -import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; import org.thingsboard.server.queue.TbQueueAdmin; import org.thingsboard.server.queue.TbQueueCallback; @@ -39,7 +37,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @Slf4j @@ -54,14 +51,11 @@ public class TbPubSubProducerTemplate implements TbQueuePr private final Map publisherMap = new ConcurrentHashMap<>(); private final ExecutorService pubExecutor = Executors.newCachedThreadPool(); - private final FixedExecutorProvider fixedExecutorProvider; - public TbPubSubProducerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String defaultTopic, ExecutorProvider executorProvider) { + public TbPubSubProducerTemplate(TbQueueAdmin admin, TbPubSubSettings pubSubSettings, String defaultTopic) { this.defaultTopic = defaultTopic; this.admin = admin; this.pubSubSettings = pubSubSettings; - - fixedExecutorProvider = FixedExecutorProvider.create(executorProvider.getExecutor()); } @Override @@ -129,7 +123,7 @@ public class TbPubSubProducerTemplate implements TbQueuePr ProjectTopicName topicName = ProjectTopicName.of(pubSubSettings.getProjectId(), topic); Publisher publisher = Publisher.newBuilder(topicName) .setCredentialsProvider(pubSubSettings.getCredentialsProvider()) - .setExecutorProvider(fixedExecutorProvider) + .setExecutorProvider(FixedExecutorProvider.create(pubSubSettings.getTbPubSubQueueExecutorProvider().getExecutor())) .build(); publisherMap.put(topic, publisher); return publisher; diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java index 4de75faa56..5e5f19651c 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java @@ -43,7 +43,7 @@ public class TbPubSubQueueExecutorProvider implements ExecutorProvider { if (threadPoolSize == null) { threadPoolSize = THREADS_PER_CPU * Runtime.getRuntime().availableProcessors(); } - executor = Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-queue-executor"));; + executor = Executors.newScheduledThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("pubsub-queue-executor")); } @Override diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java index fe9d85c306..530453f26b 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubSettings.java @@ -46,6 +46,8 @@ public class TbPubSubSettings { @Value("${queue.pubsub.max_messages}") private int maxMessages; + private final TbPubSubQueueExecutorProvider tbPubSubQueueExecutorProvider; + private CredentialsProvider credentialsProvider; @PostConstruct diff --git a/msa/vc-executor/src/main/resources/tb-vc-executor.yml b/msa/vc-executor/src/main/resources/tb-vc-executor.yml index 9fc9b884f0..62957debcf 100644 --- a/msa/vc-executor/src/main/resources/tb-vc-executor.yml +++ b/msa/vc-executor/src/main/resources/tb-vc-executor.yml @@ -172,7 +172,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java index 39ab7bf525..3067947445 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/gcp/pubsub/TbPubSubNode.java @@ -69,7 +69,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { super.init(ctx); this.config = TbNodeUtils.convert(configuration, TbPubSubNodeConfiguration.class); try { - this.pubSubClient = initPubSubClient(FixedExecutorProvider.create(ctx.getPubSubRuleNodeExecutorProvider().getExecutor())); + this.pubSubClient = initPubSubClient(ctx); } catch (Exception e) { throw new TbNodeException(e); } @@ -129,7 +129,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { return TbMsg.transformMsgMetadata(origMsg, metaData); } - private Publisher initPubSubClient(FixedExecutorProvider fixedExecutorProvider) throws IOException { + private Publisher initPubSubClient(TbContext ctx) throws IOException { ProjectTopicName topicName = ProjectTopicName.of(config.getProjectId(), config.getTopicName()); ServiceAccountCredentials credentials = ServiceAccountCredentials.fromStream( @@ -149,7 +149,7 @@ public class TbPubSubNode extends TbAbstractExternalNode { return Publisher.newBuilder(topicName) .setCredentialsProvider(credProvider) .setRetrySettings(retrySettings) - .setExecutorProvider(fixedExecutorProvider) + .setExecutorProvider(FixedExecutorProvider.create(ctx.getPubSubRuleNodeExecutorProvider().getExecutor())) .build(); } } diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 27e5c8b273..c376d6a176 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -295,7 +295,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index b8070f6575..f3fd100fd7 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -278,7 +278,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index b1d40c720f..968385b5e2 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -374,7 +374,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 4d130eecd9..1e97c59253 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -311,7 +311,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index 2b89065a55..8d3f842325 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -264,7 +264,7 @@ queue: max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" - # Number of threads of pubsub executor provider + # Thread pool size for pubsub queue executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors) executor_thread_pool_size: "${TB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE:}" queue-properties: # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again From e6136148bbd49792adf9aa65861027a1ab5e6fd4 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 17 Nov 2023 12:37:25 +0200 Subject: [PATCH 066/162] Update apache batik version. Fix some svg images. --- ....markers_placement_image_map#map_image.svg | 766 ++--------------- .../widgets/maps_v2.image_map#map_image.svg | 768 ++---------------- pom.xml | 2 +- 3 files changed, 169 insertions(+), 1367 deletions(-) diff --git a/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map#map_image.svg b/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map#map_image.svg index d98a37e598..9ae4dc607b 100644 --- a/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map#map_image.svg +++ b/application/src/main/data/images/widgets/input_widgets.markers_placement_image_map#map_image.svg @@ -1,685 +1,85 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lincoln - Harry - Woodlawn - Edgemoor - Oliver - Hillside - Rock - Webb - Central - 13th - 21st - 29th - 37th - 25th - 21st - 13th - Amidon - Arkansas - West - Waco - Mazie - Zoo - 13th - 21st - Nims - Maple - Douglas - - Meridian - Central - Douglas - 47th - Kellogg - McClean - - MacArthur - Seneca - - Pawnee - - Broadway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lincoln + Harry + Woodlawn + Edgemoor + Oliver + Hillside + Rock + Webb + Central + 13th + 21st + 29th + 37th + 25th + 21st + 13th + Amidon + Arkansas + West + Waco + Mazie + Zoo + 13th + 21st + Nims + Maple + Douglas + + + + Meridian + Central + Douglas + 47th + Kellogg + McClean + + + MacArthur + Seneca + + Pawnee + + Broadway + diff --git a/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg b/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg index d98a37e598..fdfcdfccb4 100644 --- a/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg +++ b/application/src/main/data/images/widgets/maps_v2.image_map#map_image.svg @@ -1,685 +1,87 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lincoln - Harry - Woodlawn - Edgemoor - Oliver - Hillside - Rock - Webb - Central - 13th - 21st - 29th - 37th - 25th - 21st - 13th - Amidon - Arkansas - West - Waco - Mazie - Zoo - 13th - 21st - Nims - Maple - Douglas - - Meridian - Central - Douglas - 47th - Kellogg - McClean - - MacArthur - Seneca - - Pawnee - - Broadway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lincoln + Harry + Woodlawn + Edgemoor + Oliver + Hillside + Rock + Webb + Central + 13th + 21st + 29th + 37th + 25th + 21st + 13th + Amidon + Arkansas + West + Waco + Mazie + Zoo + 13th + 21st + Nims + Maple + Douglas + + + + Meridian + Central + Douglas + 47th + Kellogg + McClean + + + MacArthur + Seneca + + Pawnee + + Broadway + diff --git a/pom.xml b/pom.xml index 26624cf93d..9fe71b0ae8 100755 --- a/pom.xml +++ b/pom.xml @@ -153,7 +153,7 @@ 1.12.1 6.4.2 1.34.1 - 1.14 + 1.17 From 5cfdf7ad8774a12c6f12c29421000717425602b1 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Fri, 17 Nov 2023 13:36:33 +0200 Subject: [PATCH 067/162] Images api: improvements --- .../service/install/update/ImagesUpdater.java | 35 ++++++++++--------- .../server/dao/resource/ImageService.java | 4 ++- .../server/dao/resource/ResourceService.java | 2 -- .../server/common/data/TbResourceInfo.java | 8 +++++ .../server/dao/resource/BaseImageService.java | 14 +++----- .../dao/resource/BaseResourceService.java | 6 ---- 6 files changed, 34 insertions(+), 35 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index bb5da33631..5b316255a9 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -30,14 +30,15 @@ import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.TbResourceInfo; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.dao.util.ImageUtils; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.resource.ImageService; +import org.thingsboard.server.dao.util.ImageUtils; import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -58,10 +59,10 @@ public class ImagesUpdater { @SneakyThrows public void updateSystemImage(Path imageFile, Map imageNames) { - String imageKey = imageFile.getFileName().toString(); + String imageKey = imageFile.getParent().getFileName() + "." + imageFile.getFileName().toString(); // TODO: add subdir to image key String imageName = imageNames.get(imageKey); if (imageName == null) { - throw new IllegalArgumentException("Image name is missing for " + imageKey + ". Please add it to names.json file"); + imageName = imageKey; } byte[] imageData = Files.readAllBytes(imageFile); String mediaType = ImageUtils.fileExtensionToMediaType("image", StringUtils.substringAfterLast(imageKey, ".")); @@ -203,17 +204,19 @@ public class ImagesUpdater { String existingImageQuery) { TbResourceInfo imageInfo = imageService.getImageInfoByTenantIdAndKey(tenantId, key); if (imageInfo == null && !tenantId.isSysTenantId() && existingImageQuery != null) { - // TODO: need to search among tenant images too (custom widgets) -// List existingSystemImages = imageService.findByTenantIdAndDataAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); -// if (!existingSystemImages.isEmpty()) { -// imageInfo = existingSystemImages.get(0); -// if (existingSystemImages.size() > 1) { -// log.warn("Found more than one system image resources for key {}", existingImageQuery); -// } -// String link = imageService.getImageLink(imageInfo); -// log.info("Using system image {} for {}", link, key); -// return link; -// } + List similarImages = imageService.findSimilarImagesByTenantIdAndKeyStartingWith(TenantId.SYS_TENANT_ID, imageData, existingImageQuery); + if (similarImages.isEmpty()) { + similarImages = imageService.findSimilarImagesByTenantIdAndKeyStartingWith(tenantId, imageData, existingImageQuery); + } + if (!similarImages.isEmpty()) { + imageInfo = similarImages.get(0); + if (similarImages.size() > 1) { + log.debug("Found more than one image resources for key {}: {}", existingImageQuery, similarImages); + } + String link = imageInfo.getLink(); + log.info("[{}] Using image {} for {}", tenantId, link, key); + return link; + } } TbResource image; if (imageInfo == null) { @@ -224,7 +227,7 @@ public class ImagesUpdater { } else if (tenantId.isSysTenantId()) { image = new TbResource(imageInfo); } else { - return imageService.getImageLink(imageInfo); + return imageInfo.getLink(); } image.setTitle(name); image.setFileName(key); @@ -235,7 +238,7 @@ public class ImagesUpdater { TbResourceInfo savedImage = imageService.saveImage(image); log.info("[{}] {} image '{}' ({})", tenantId, imageInfo == null ? "Created" : "Updated", image.getTitle(), image.getResourceKey()); - return imageService.getImageLink(savedImage); + return savedImage.getLink(); } private String getText(JsonNode jsonNode, String field) { diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java index 3ae45e86c5..f294083290 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ImageService.java @@ -22,6 +22,8 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import java.util.List; + public interface ImageService { TbResourceInfo saveImage(TbResource image) throws Exception; @@ -40,6 +42,6 @@ public interface ImageService { void deleteImage(TenantId tenantId, TbResourceId imageId); - String getImageLink(TbResourceInfo imageInfo); + List findSimilarImagesByTenantIdAndKeyStartingWith(TenantId tenantId, byte[] data, String imageKeyStartingWith); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java index 21b83d17bd..8614b74502 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java @@ -60,6 +60,4 @@ public interface ResourceService extends EntityDaoService { long sumDataSizeByTenantId(TenantId tenantId); - List findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query); - } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java index 11e21c6451..61df84af44 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/TbResourceInfo.java @@ -106,6 +106,14 @@ public class TbResourceInfo extends BaseData implements HasName, H return title; } + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + public String getLink() { + if (resourceType == ResourceType.IMAGE) { + return "/api/images/" + (tenantId.isSysTenantId() ? "system" : "tenant") + "/" + resourceKey; + } + return null; + } + @JsonIgnore public String getSearchText() { return searchText != null ? searchText : title; diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java index 857296b9b5..500fe37d33 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseImageService.java @@ -20,7 +20,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.RegexUtils; import org.thingsboard.server.common.data.ImageDescriptor; import org.thingsboard.server.common.data.ResourceType; @@ -35,6 +34,7 @@ import org.thingsboard.server.dao.service.validator.ResourceDataValidator; import org.thingsboard.server.dao.util.ImageUtils; import org.thingsboard.server.dao.util.ImageUtils.ProcessedImage; +import java.util.List; import java.util.Objects; import java.util.Set; import java.util.regex.Pattern; @@ -152,15 +152,9 @@ public class BaseImageService extends BaseResourceService implements ImageServic } @Override - public String getImageLink(TbResourceInfo imageInfo) { - String link = "/api/images/"; - if (imageInfo.getTenantId().isSysTenantId()) { - link += "system/"; - } else { - link += "tenant/"; - } - link += imageInfo.getResourceKey(); - return link; + public List findSimilarImagesByTenantIdAndKeyStartingWith(TenantId tenantId, byte[] data, String imageKeyStartingWith) { + String etag = calculateEtag(data); + return resourceInfoDao.findByTenantIdAndEtagAndKeyStartingWith(tenantId, etag, imageKeyStartingWith); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java index 9be95db9e7..13ed98b461 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java @@ -216,12 +216,6 @@ public class BaseResourceService extends AbstractCachedEntityService findByTenantIdAndDataAndKeyStartingWith(TenantId tenantId, byte[] data, String query) { - String etag = calculateEtag(data); - return resourceInfoDao.findByTenantIdAndEtagAndKeyStartingWith(tenantId, etag, query); - } - protected String calculateEtag(byte[] data) { return Hashing.sha256().hashBytes(data).toString(); } From 3739b12f19e81d684341b205b853fb600fbb6a22 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Fri, 17 Nov 2023 14:05:11 +0200 Subject: [PATCH 068/162] Update resource structure for edge --- .../edge/rpc/constructor/ResourceMsgConstructor.java | 7 +++++++ .../edge/rpc/processor/resource/BaseResourceProcessor.java | 3 +++ common/edge-api/src/main/proto/edge.proto | 2 ++ 3 files changed, 12 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java index 02f2d5e000..96dd5220bc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/ResourceMsgConstructor.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.edge.rpc.constructor; +import com.google.protobuf.ByteString; import org.springframework.stereotype.Component; import org.thingsboard.server.common.data.TbResource; import org.thingsboard.server.common.data.id.TbResourceId; @@ -42,6 +43,12 @@ public class ResourceMsgConstructor { if (tbResource.getEtag() != null) { builder.setEtag(tbResource.getEtag()); } + if (tbResource.getDescriptor() != null) { + builder.setDescriptorJson(tbResource.getDescriptor().toString()); + } + if (tbResource.getPreview() != null) { + builder.setPreview(ByteString.copyFrom(tbResource.getPreview())); + } if (tbResource.getTenantId().equals(TenantId.SYS_TENANT_ID)) { builder.setIsSystem(true); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java index b28e6000d2..5d6d98469c 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/resource/BaseResourceProcessor.java @@ -17,6 +17,7 @@ package org.thingsboard.server.service.edge.rpc.processor.resource; import com.datastax.oss.driver.api.core.uuid.Uuids; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.ResourceType; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.TbResource; @@ -61,7 +62,9 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor { resource.setResourceKey(resourceKey); resource.setResourceType(resourceType); resource.setFileName(resourceUpdateMsg.getFileName()); + resource.setDescriptor(resourceUpdateMsg.hasDescriptorJson() ? JacksonUtil.toJsonNode(resourceUpdateMsg.getDescriptorJson()) : null); resource.setEncodedData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null); + resource.setPreview(resourceUpdateMsg.hasPreview() ? resourceUpdateMsg.getPreview().toByteArray() : null); resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null); resourceValidator.validate(resource, TbResourceInfo::getTenantId); if (created) { diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 71e84304ed..2411b0af53 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -436,6 +436,8 @@ message ResourceUpdateMsg { optional string data = 8; optional string etag = 9; bool isSystem = 10; + optional string descriptorJson = 11; + optional bytes preview = 12; } message RuleChainMetadataRequestMsg { From 9abfd128aed4663115d77bf518d9c38671d6ea78 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Fri, 17 Nov 2023 13:35:12 +0100 Subject: [PATCH 069/162] fixed fluky tests --- .../server/msa/connectivity/MqttClientTest.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java index 5a7e9b631d..6ad50196b3 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/connectivity/MqttClientTest.java @@ -26,6 +26,7 @@ import io.netty.buffer.Unpooled; import io.netty.handler.codec.mqtt.MqttQoS; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.awaitility.Awaitility; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -337,8 +338,12 @@ public class MqttClientTest extends AbstractContainerTest { MqttClient mqttClient = getMqttClient(deviceCredentials, listener); testRestClient.deleteDeviceIfExists(device.getId()); - TimeUnit.SECONDS.sleep(3 * timeoutMultiplier); - assertThat(mqttClient.isConnected()).isFalse(); + + Awaitility + .await() + .alias("Check device connection.") + .atMost(10, TimeUnit.SECONDS) + .until(() -> !mqttClient.isConnected()); } @Test From a17a17ee973a9a04b672d2695a75761115999dff Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Fri, 17 Nov 2023 13:36:38 +0100 Subject: [PATCH 070/162] remove cassandra volume for blackbox --- .../org/thingsboard/server/msa/ThingsBoardDbInstaller.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java index fe467ec341..7d87351bef 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java @@ -253,12 +253,16 @@ public class ThingsBoardDbInstaller { .add(tbVcExecutorLogVolume) .add(resolveRedisComposeVolumeLog()); + if (IS_HYBRID_MODE) { + rmVolumesCommand.add(cassandraDataVolume); + } + dockerCompose.withCommand(rmVolumesCommand.toString()); } private String resolveRedisComposeVolumeLog() { if (IS_REDIS_CLUSTER) { - return IntStream.range(0, 6).mapToObj(i -> redisClusterDataVolume + "-" + i).collect(Collectors.joining()); + return IntStream.range(0, 6).mapToObj(i -> " " + redisClusterDataVolume + "-" + i).collect(Collectors.joining()); } if (IS_REDIS_SENTINEL) { return redisSentinelDataVolume + "-" + "master " + " " + From 66b768a499bb299960871fe56ae9a0da2f79f1cb Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Fri, 17 Nov 2023 14:45:38 +0200 Subject: [PATCH 071/162] added @Lazy to PubSubRuleNodeExecutorProvider --- .../org/thingsboard/server/actors/ActorSystemContext.java | 1 + .../service/executors/PubSubRuleNodeExecutorProvider.java | 6 +++++- .../server/queue/pubsub/TbPubSubQueueExecutorProvider.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java index 24a240661f..607d5d8791 100644 --- a/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java +++ b/application/src/main/java/org/thingsboard/server/actors/ActorSystemContext.java @@ -323,6 +323,7 @@ public class ActorSystemContext { @Getter private NotificationExecutorService notificationExecutor; + @Lazy @Autowired @Getter private PubSubRuleNodeExecutorProvider pubSubRuleNodeExecutorProvider; diff --git a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java index 520b8f855c..74e1222acf 100644 --- a/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/executors/PubSubRuleNodeExecutorProvider.java @@ -16,15 +16,19 @@ package org.thingsboard.server.service.executors; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import org.thingsboard.common.util.ExecutorProvider; import org.thingsboard.common.util.ThingsBoardThreadFactory; +import org.thingsboard.server.queue.util.TbRuleEngineComponent; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +@Lazy +@TbRuleEngineComponent @Component public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { @@ -53,7 +57,7 @@ public class PubSubRuleNodeExecutorProvider implements ExecutorProvider { @PreDestroy private void destroy() { if (executor != null) { - executor.shutdown(); + executor.shutdownNow(); } } } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java index 5e5f19651c..370670d554 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/pubsub/TbPubSubQueueExecutorProvider.java @@ -54,7 +54,7 @@ public class TbPubSubQueueExecutorProvider implements ExecutorProvider { @PreDestroy private void destroy() { if (executor != null) { - executor.shutdown(); + executor.shutdownNow(); } } } From 3e95561e012a6fa8ebcf77eb982ee6b96897e42f Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Fri, 17 Nov 2023 16:54:03 +0200 Subject: [PATCH 072/162] Revert subdir for system image key --- .../server/service/install/update/ImagesUpdater.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java index 5b316255a9..81374f7a58 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/ImagesUpdater.java @@ -59,7 +59,7 @@ public class ImagesUpdater { @SneakyThrows public void updateSystemImage(Path imageFile, Map imageNames) { - String imageKey = imageFile.getParent().getFileName() + "." + imageFile.getFileName().toString(); // TODO: add subdir to image key + String imageKey = imageFile.getFileName().toString(); // TODO: add subdir to image key String imageName = imageNames.get(imageKey); if (imageName == null) { imageName = imageKey; From 3c40cd8ff136b19ff0c000c3c10e93fbe759eb50 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 17 Nov 2023 17:12:47 +0200 Subject: [PATCH 073/162] UI: Implement image service. Implement image load pipe. --- ui-ngx/src/app/core/http/image.service.ts | 139 ++++++++++++++++++ ui-ngx/src/app/core/utils.ts | 9 +- .../dashboard-widget-select.component.html | 4 +- .../dashboard-widget-select.component.ts | 13 +- .../widget/lib/maps/common-maps-utils.ts | 82 ++++++----- .../components/widget/lib/maps/markers.ts | 27 ++-- .../widget/lib/maps/providers/image-map.ts | 58 ++++---- .../widgets-bundle-widgets.component.html | 2 +- .../widgets-bundle-widgets.component.ts | 10 -- .../src/app/shared/models/resource.models.ts | 29 +++- ui-ngx/src/app/shared/pipe/image.pipe.ts | 52 +++++++ ui-ngx/src/app/shared/pipe/public-api.ts | 1 + ui-ngx/src/app/shared/shared.module.ts | 4 + 13 files changed, 335 insertions(+), 95 deletions(-) create mode 100644 ui-ngx/src/app/core/http/image.service.ts create mode 100644 ui-ngx/src/app/shared/pipe/image.pipe.ts diff --git a/ui-ngx/src/app/core/http/image.service.ts b/ui-ngx/src/app/core/http/image.service.ts new file mode 100644 index 0000000000..f52f55eb27 --- /dev/null +++ b/ui-ngx/src/app/core/http/image.service.ts @@ -0,0 +1,139 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { PageLink } from '@shared/models/page/page-link'; +import { defaultHttpOptionsFromConfig, defaultHttpUploadOptions, RequestConfig } from '@core/http/http-utils'; +import { Observable, of } from 'rxjs'; +import { PageData } from '@shared/models/page/page-data'; +import { + NO_IMAGE_DATA_URI, + ImageResourceInfo, + imageResourceType, + ImageResourceType, + IMAGES_URL_PREFIX, isImageResourceUrl +} from '@shared/models/resource.models'; +import { catchError, map, switchMap } from 'rxjs/operators'; +import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; +import { blobToBase64 } from '@core/utils'; + +@Injectable({ + providedIn: 'root' +}) +export class ImageService { + constructor( + private http: HttpClient, + private sanitizer: DomSanitizer + ) { + } + + public uploadImage(file: File, config?: RequestConfig): Observable { + if (!config) { + config = {}; + } + const formData = new FormData(); + formData.append('file', file); + return this.http.post('/api/image', formData, + defaultHttpUploadOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest)); + } + + public updateImage(type: ImageResourceType, key: string, file: File, config?: RequestConfig): Observable { + if (!config) { + config = {}; + } + const formData = new FormData(); + formData.append('file', file); + return this.http.post(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, formData, + defaultHttpUploadOptions(config.ignoreLoading, config.ignoreErrors, config.resendRequest)); + } + + public updateImageInfo(imageInfo: ImageResourceInfo, config?: RequestConfig): Observable { + const type = imageResourceType(imageInfo); + const key = encodeURIComponent(imageInfo.resourceKey); + return this.http.put(`${IMAGES_URL_PREFIX}/${type}/${key}/info`, + imageInfo, defaultHttpOptionsFromConfig(config)); + } + + public getImages(pageLink: PageLink, config?: RequestConfig): Observable> { + return this.http.get>(`${IMAGES_URL_PREFIX}${pageLink.toQuery()}`, defaultHttpOptionsFromConfig(config)); + } + + public getImageInfo(type: ImageResourceType, key: string, config?: RequestConfig): Observable { + return this.http.get(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}/info`, + defaultHttpOptionsFromConfig(config)); + } + + public getImageDataUrl(imageUrl: string, preview = false, asString = false): Observable { + const parts = imageUrl.split('/'); + const key = parts[parts.length - 1]; + parts[parts.length - 1] = encodeURIComponent(key); + const encodedUrl = parts.join('/'); + const imageLink = preview ? (encodedUrl + '/preview') : encodedUrl; + const options = defaultHttpOptionsFromConfig({ignoreLoading: true, ignoreErrors: true}); + return this.http + .get(imageLink, {...options, ...{ responseType: 'blob' } }).pipe( + switchMap(val => blobToBase64(val).pipe( + map((dataUrl) => asString ? dataUrl : this.sanitizer.bypassSecurityTrustUrl(dataUrl)) + )), + catchError(() => of(asString ? NO_IMAGE_DATA_URI : this.sanitizer.bypassSecurityTrustUrl(NO_IMAGE_DATA_URI))) + ); + } + + public resolveImageUrl(imageUrl: string, preview = false, asString = false): Observable { + if (isImageResourceUrl(imageUrl)) { + return this.getImageDataUrl(imageUrl, preview, asString); + } else { + return of(asString ? imageUrl : this.sanitizer.bypassSecurityTrustUrl(imageUrl)); + } + } + + public downloadImage(type: ImageResourceType, key: string): Observable { + return this.http.get(`${IMAGES_URL_PREFIX}/${type}/${encodeURIComponent(key)}`, { + responseType: 'arraybuffer', + observe: 'response' + }).pipe( + map((response) => { + const headers = response.headers; + const filename = headers.get('x-filename'); + const contentType = headers.get('content-type'); + const linkElement = document.createElement('a'); + try { + const blob = new Blob([response.body], {type: contentType}); + const url = URL.createObjectURL(blob); + linkElement.setAttribute('href', url); + linkElement.setAttribute('download', filename); + const clickEvent = new MouseEvent('click', + { + view: window, + bubbles: true, + cancelable: false + } + ); + linkElement.dispatchEvent(clickEvent); + return null; + } catch (e) { + throw e; + } + }) + ); + } + + public deleteImage(type: ImageResourceType, key: string, config?: RequestConfig) { + return this.http.delete(`${IMAGES_URL_PREFIX}${type}/${encodeURIComponent}`, defaultHttpOptionsFromConfig(config)); + } + +} diff --git a/ui-ngx/src/app/core/utils.ts b/ui-ngx/src/app/core/utils.ts index b810689b69..feeb5de02f 100644 --- a/ui-ngx/src/app/core/utils.ts +++ b/ui-ngx/src/app/core/utils.ts @@ -15,7 +15,7 @@ /// import _ from 'lodash'; -import { Observable, Subject } from 'rxjs'; +import { from, Observable, Subject } from 'rxjs'; import { finalize, share } from 'rxjs/operators'; import { Datasource, DatasourceData, FormattedData, ReplaceInfo } from '@app/shared/models/widget.models'; import { EntityId } from '@shared/models/id/entity-id'; @@ -209,6 +209,13 @@ export function stringToBase64(value: string): string { })); } +export const blobToBase64 = (blob: Blob): Observable => from(new Promise((resolve) => { + const reader = new FileReader(); + reader.onloadend = () => resolve(reader.result as string); + reader.readAsDataURL(blob); + } + )); + const scrollRegex = /(auto|scroll)/; function parentNodes(node: Node, nodes: Node[]): Node[] { diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html index 4431820808..a32dc812cd 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html @@ -51,7 +51,7 @@

    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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/visibility_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/visibility_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cdb06a9fb400934231153ab487001dfff81e77 GIT binary patch literal 35976 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Μ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 M07*qoM6N<$g0%`Nz5oCK literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/visibility_chart_card_with_background.png b/application/src/main/data/images/widgets/visibility_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..9fab72e661e22aeac4de6aa8fdf5ff4b15cee845 GIT binary patch literal 10296 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�q7UR4{zVS;3JYCw{HCv+9{!! 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 KMNUMnLSTX-qc!sY literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/volatile_organic_compounds_card.png b/application/src/main/data/images/widgets/volatile_organic_compounds_card.png new file mode 100644 index 0000000000000000000000000000000000000000..215baa7d71df8c61ad65d91a5a7ae96d16e08e34 GIT binary patch literal 1863 zcmaKtX*3&%8iqqcV^8h0T1ioA?4@ZhN`#`Cl3HUBs$|9zYi%tRv88BGTdgIw5>!oa zEg@rxWzZ_4sb1@~3<*xOmWz!0|DOAu^S67S8>A&UZW>Z%!V5&ff?BI9^`+X6Ue6*VfR`u>G=_ z%jK>I6HfQI%jjPj3LE)T13`dNV-BY>@;22wK=6%^jmz z+mrnl0cIdzA3USH{LH<_h~fJWSE9-1r@?%`uf~ccMP1RA$h*F1OOb|FfiGFksWYrD z8j)HYh?%fJ)40f~Vj~FA`*8mOd(bnavVv1c&5eZNKICMISfBC|8dn4e)OXGuu5rw8 zzz*L?v+?6zgb#O<9OTsFV_nRx6|~O>xBWcte?}&4C|Uf*2KfHCsOmn32cSH)IjEw$ zNbiB$fO{$4{&p*3878=CeU5GdQ}bhNV)le0?yGVxzH?(L8emue*SjV7p-6nhrn#6{8(i+@JglyF zplSITDDig&scL#c=SCcDX2yhp6Ew)U+fX3(nY;fyjEf%{lp>VGYD@@A3STqyht%wu zX5@sHNhog24I5zkepQk^gF)ZlYg0qCkO!?po%Tf}o72f5J0rX0NGgOnLMGPr4Q3&; za1T$4>B4{eCoK48;zIk$K%)+wxu@LXOaR8HKx}7+< z`#fV9FMpJn@GQY>ci$Ks4d(?L1X$mFknlyXY8LD*54iiJRckC$O(EI#&n3*91&_Dj z&MJ=TdS4I+Ii8ZpE>u6Rum9w~Qr&(UaPXxcoI>f9tjNQt1idW}lyVUG(psH&EYx|m zHbT~cErFs`i*IMwp8B6PNVt{P%5})37dn8I{-XW!OqA8SMyPNO>r*h1`I$+Ryb0%* zUeorO0rajZY9*hkXHTYX)qSVYo!Vixm`Cbwq@6oR>YrctBmaM2&+(4+fGGh_ zk5?=|O9R0)UVfG~@s&7@7Zmh|+2$GfzjaPm%b_Y$y3!o~GO3i|=f|Uc-ch1mUm2Hc zSFyK-hp)}|rF9H2x*-Nq@HUF{_@zb#AhWYmq4iMgWCKc_1|=cd*|+XLpq%M?PE92cwV#|uNcWEz^?l?jnb2E|6rmEuV<|es8a`p ze$m1tks5owgD@WF_K z?banCQd8B!s$pEvTwv_1Plj8lO$hY>BbUlEuINmy++QC$F5Q=3l`ZF|SuJ(YRd1LtG>uF{Nw zo9XcN>kpGr_($o`*DgH;FXnDaLO4cxpochdLg5Z#-q05gu2dk1FiF7flYb>0(o3>K zK%hvo#Rd^rfu}`&@ojy_aFEig7uW-1WRsn9XH>1QWOUeq$8RU^8)i!|38ChI7>0oN z<_+tIFGM0cv&chIojIDKai$=zyRu!Y^q;1uDGs{=gtY-_@s-^1;PPHmfX&frSW{La zSq@B%wz#uQZGZv~fXHi6|Cy=2-2N>I8lI7z3t3^-*`?=qY&1iiOh!3^Fe-}Oc~$ua z{p{kr#*l6rGEg@g<^`u`)=o7PO5xC5gEI y|A1;mu9IcUi_K0uEo5W}ayNPU&J(AxdSOb<)nlAwHu}6y000|H6tW3{CHxKN9e6PS literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/volatile_organic_compounds_card_with_background#background_image.png b/application/src/main/data/images/widgets/volatile_organic_compounds_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..8761c306bdfebe7f1c1956731be2c3d8071eba61 GIT binary patch literal 22035 zcmV(wKiUj00090P)t-su*A)= z#m=(E&$!Iiw#m}8$kDOG&$`aoufxo?%G0vM(6GYJv&Yc4%hbKm+`Q1+ufff`&)TlS z%(TbSyU^Lb(%r7W%)Zm!v>9(AurP%eKkXxy;wO&DOfk*|*Boz|`Nh$tyP zz}4Wn&Dg=!;J(t_z0upa%-6ET&$GwTv&PWB)7`bm)4$Z-x69VM&)BQI$-UFwywcsl z)!wba%fZ&+vBb}|%GJQu;J?-1!q(x!*5Jd};k?n?zS7&h)7-|}=EvRUtiZ|1;Oe=~ z*tEvb#Mt7q#LUClDu!8 zzth~z*U;zk-1hw7_WG^9#j3f$x69MD z$I+#=yrZ$WmZGTl|Ns2||JLsK)9dxR%+$8W&We_s{{R2g?Dnj>!Kk*q$KB|;$GaOy>+Jsi*XQiB z!N{w=#-p>k-uL~StFiF<`_=68(&_Ts>F%bszMihN?fClQ?()&&>E-qK!r9})(%G1$ zs`LK;==1j1?)Ba4@W0X7z0cUb&ef8irG}E1>HYrG=Izem=()zsu))fou(;Oh@XFof z$=l(_*WJa{+~oWI=lA;8@%Y>A^32@hsJp`4@b%H>@6hG!$=Tnpyu-w~u%?`q{Qdm( z`ueD~y42(7xW2!;ucol2ouQVG`}y_J-{k1x*~QS+wzIC{@b&TT>DlDyyvoqm)6K%l z%)-UQv$wasv#YVKsqgdj;p^`C^Xs;(r04MR@aNsQ!^y6=ysV#=osx-^jD?GUcV%B$ z(8au|t**?|*5ljJ%E7sRcyU%xO5x<=)5^efYGbLTp*JZXLjV9$(Md!>RCwBCnMHnl?sNMrPJ=5a0dd&ph|qJ@VhUtBdow?C;_&aXy=lcaI$J?v8iIgt#s`B+bw|tgM17gT)PsFx4j)wMo}Id=jSmK0OjAnK94UWljtx z=UcCSd*{bL{`l*iSKt1IAECm{2^P;nB5u90iS34sXbq^rIQynl zO&i*++T_g1Oo20xhrkskJ`@~(;LoZsV3>>J9ql0k=JlU`5ax$>Ui*2?_jNsj8%*w~ z9CO@CBAReAwF97mRNpsA>Rb=6xoq54*IRK8-h(+wteJ%@G+B{^!yxINd*+!B-=@p{ z`r(J~-+5!e;`>^;lQf|~lp`a4R(i105!@?^vJ1cP*d*8rNfiygk^}CWH zif_G@-ZrgcDxW|6@~3xx`2C0PzWw%{cb-jKkcgDUDECW3n3i0aeT9fcYqQHa^=VpM z!}wa?&2>JK(#g3{(Iep zB3ZdhCw(;RHc z5br@}5S`YP zb@m`J=6%x4fJhW5@!lND_3EgpIK^_rGhX-r6j;9cR1_Ry_BFP3u5HyyZj=?8DU_0k5Zg= z&EI%E-i#`Rk(1JeG6XOLN1DEHQM(I!pA~0jJ|oQ8i{?Db0DurskpQBX96a$7?cOKy z@Et;sE-5RD;j#*GL*w0<3Pi5fx!s(E(ek?Aw>&}spe(b4q&#QW1e?4sH3yRL=z3F{ zg&)b%>G^PsQ8Ef4N@!tb^wLGqOJm4+drDViHkxl3<|a?)m9G@3$dwh9yK~R4FR<8j zS2q4G#!DP#VU89r8p3!(3O8u{E};T|4XJuQRkG4PO;e+hvU-gfcq+ zR$qYbE<9);1TW=Fc!dUteduyNFslGChoj|l4=RJ-h+!K%T%V0&pN6rYr0Dzg!a3Hn zOp-)esy~t>wz;^qhY-oOhBMLe&qIz`k0&&-Y zW;2o9sf0x9WRga+L>|^8)*G@oZu9D>1P-HF|6f2WuOW;W6?OUjcI!uVC|sKp=wR|=g4B0Kkk9Fp`y zz@$Fx1+d%F%v-D=PdLVubH=IaP`9JmLBui-fQy6YEXmd1yU>AgAkR3TQ_RwNk>wyp zX8g{If)9s|Jn&B|yuuDcH+1f#w0Ifd!uB*63<$K@cD-bxER0Ym;NW6*;WAZeG)V|V zJg&ksG?yKOEXOc?o&g}to@9t**_>ar7Yld@`Mf@Xi{h8`uP zq3SpQ0;6BE+gf-hg-^fPQY$z_v{CUl^aGAlA>Bb(ZXS zI1e0VVB1!6{Mj>1TWTlb$n{G{;eeRxFJJ~tvZZ+U;3<=S0R=1& zdxfE9a2RUQaZ!%w1ObYy`^AH8>|t8^YLl9pNm7h47MkCu=_3ra6Xlo6IL|n{fZ+8n zUN+m2$39~Yf}=b_@JXA;I`03d9`7Iym9i2;S#*C0vvg3R4Ol1wO;p@tsp1P4_At8kflbV1xjjORzuss>o{^pFyWrt;sK=86+o?Rje01i;3sG(s@!f<{u z$UG{dcREobv-Tk91H&Cx3IPnNU?61au?XigbGTXzSs0_nnEWb0b&N?2!+ftUjr+n- zd9b7^(Ow8)V=<#dFtF1q28e*Tv9%cHeavF8g2h+cZ!w7)31tY?E!#ysHl#JLcG2lQ z4b~${N;1L()ubSj#K-^yF(7aSlbO+Z>nlsh5i}a;>R*lLtR1tQ!z1;gWRfQeR}wa4 zS7Ze%ERJ=kv@BR6iN=o2nt>%emxbxoVB3$n-#>dm$fzZV4VRsE(^{)S#dBYnRL1LH zjyTIMEHAiTj5Cj+2z6=Y<#Gf?jt;}{S$|tOce-HltEILPu@?+27+MAnm06>Y6xxN8 z87Y_%M^#vzCI}*=n9w0OT8sr|GbKtn&2T;_anoFn2cRxgj!gDiinC3_*jgoRs~~$; zymD-1;RS37&6I@b_5BJ14GJ_pj@?;o)Qbw26$jbk$(3j)6PC$qx4t3cCq(dzzg9NLgFfXMpA=~=or#`umnH3Z>(>iu8d|M>9% zhtOVVv>HblR{hl5PK!r0qKxBs?=-EH!|kTkzDm~{z%ewBJROp#NE`yJRRcZFq6{(H zQpuEH>e65cIQrmnErONDLr6r7;g+R;@C*LO-zRTAw(bG5uk?;5*JOJUt2mE&R;saT z*CeG|@kr$*6pU{H=9P25J93642(ldQEeX`5x}=0Gg5-Xkrq3xbDo#=izBHVB{jpY= z7hiwo-QV8+`I}+sSF1d~7TRn=sR=HXQmY~c?pZCgmz_01;w>3zB}LHruyX3?F_jZ->4DjZ zG6kZNOuN%+wF(WWf121a9=eBj40G^gqRna??J!B|DF#NtG5;%2cSw|Sh{XYBDr%Tb zxu|REHpBD4pCA78?Q4I3^K!2W8$81`qyKHWDNi%#Jg)G}s^9Gj3!vbvb`xJGIRd22 z$_W&r=NfR=_`FFj6@?yQ?EX# zKsTM1)d-E>M}=VrN)VB3w%zI8Gzsw#+w3&w&U@cb6_ExcO3!3_mB*zNG3QSTNugR> zddO31r&6*{VQTTh3va&pWJh6cXewnGdy0m}Y1+VO-Kb{lf`T`3q=2RvWk+&l=$TLk z7-psL7%S2!NHe`HB|tU26h?7=?<~c?G>ah4ebvVzWA*40kh-G&_!K-lw)`gw#Dz0y zk!hNsNm(2ezGm>Mi4Z~dFoWoz@ZHa|GhqrPDv)oxRHTX(OK~JB3>Bq%Wf;l%H5lA^ zU#|4LUqHd$E8T7`%76d~r?ZKZ>%Ml8CF(Y*M*3vBuQ=?Chk=PWB+F2M^i9R7q4PtR zG9uhJg280rCf9g7R_b7gz~1)ZHv%TN(P1nn7ri$;5@{B4C;*MMr#cUVAWVcir`l$- zu4zY@0L}5uG!l?9Ck3f*NGVTBuoUY@y&k-l?oKAF=85QcrpXyGbd2ZKsCg!ES^x#o z>RyOr?XHp}mBIJXW(cDmawLcdw~+ujF&Y4_NqOYpLTq3WS$ibNa1ZM+1U2IqG2Bf% zAsF|1ZF^wmR!;^EzHb>Eev;~y+U2uWroDGw_> z(yUJ;NzT6QmM@c4=Ol%>#sqN&|_gA}zc0`=O2KvGB;BKcbC!|oG+Gb?hjF{uEFUetU(N(B=%O^scjg*9LTC(`D zwOFpa)19++vNYtKFXJRm-0`xA^AFor8eGW~g_GCa6|K4{)lZS?#M8Ere(8}a!GtU( z=gW7#b8h#G&`DW9qYI_L_Z)|KJncV6V4{WqhOESvi2uL3kNF{jL?v7$REUXx z6bZu&9Pp?jav+Gh{?DiCPcV!U~vDFhnL3P1D!#)-0yhQP*=3xE3(g(c>L zy^L(if8F9kF-yHBL2D&BMhYXOgjlMTuM%e^2@Hpw_$vs-dG@I+Zhp*xoY1y}>sBfi zZjai?JQq5V6Ge{jK^TC*2?sf7s$z*2*L{ry2-ML9WN1LDOJsrvu4+w`K8gtt0>G^^ zmqP}Uuu=h~V2~_AiDA-kg0U2^(9027&HHg!AKyaB@}QaahZ%W zSt6L^6q!gw>s~h+$v{&CrF4+#>`Op2ZmUrd!hljzf$TBFtYk4}!Ae%54fV$YCTDwi zjkE!9VPsa#X{+sYuoL--UT~=dpa@B#i_;PfC@K0X!V*vkAxRP=1S(o!XdLl?mKAc6 zP=dvnMCp!&Ta58!G0sBJ!_>tsi;#Bzba=z@3+nsvvj{PZU@S=j3QTRw@g02Ux4nr3G2%`3!o5SfFgl{rBI@p7zb?#syG{KQs})tdTBsnQsJ{22&Y>3D#}U) zQJk64EMinQ%ezHISQ1#KpK0BpX}f(|UfO)+k{hmd9zSNqC6}CV`gn>mF+q+KF`Zd} zaAQHtSiCCK?Ev!?2XxRpWHHJ`3&Sk@4}7CF z-85^TgXbJ|{@mkkJn`})jyU4fdl$}cscY_h@$nPR9T^!}dBQEDp~ZyUDM4o8iXz{S z2u8?IFo-58k+ArPz>CpUoQcZ(Mk6g~cP7lT=0lA}Lr40}E<5aE;cc zs-5;XS}A^~5vIIPr*kZ@h8+QHM0wn)yO+Z=rBq$H^NT+XwGnIWx2J zoK*$DwoIs=Sdj5_Ze|wNk6s*OUSJ%QN|G!r6F3h*qJH6rH(^lhI4$nbGknc+3+_C? zr`w=IRYrjV5TWV&t+nYI{_a~2S}=FvamQT^J8t2^g@6JwT3T8TXzI^*bdC4+b`|pZ z0drufYwYRTX3bTb);zZMl9_YQ?#oA{#52hXbAT0TFhrABk^@T7;Osx*OWg!j9Rr9h z7KOKY$&zR1*3YV+Whg0|cE;GDscO4j?mYIi!w*`p0B*zexpNnse^g6LTU%ShqLxJm z&uKog&NUs7Fh1T@xGsP4;$_Q=ZeRzdNna@-$IHC*?BxfgE_`q(e=<%2a6X7E05U<6 z$(6}7i?;aek{po#`5+8aipiz4;6>oxD{tR^mhl&^?be-g%7%rlj#JrmK>fiN%sK5e z0GPXA?m-I2#@D!ZkyG@nI~Nu)(+_~8hOu>gh{43~PG2eu@MCG|cw39t|U_%g5S z3!H!D%?;UHfWFI%?UwQc3S69X^_f%=ja`!yS$Sbysssl^X;Jq8ql zMHuohVJB=TEJ@+l>5GEFOo>8f6io4r4_^DKOEy8r+e@x|?zFwq2i$qu4mj64e$7pn z_S`uC=EwYWZcR(g>|+<6blifYj&5wI+qgKt{OL9Ii_WTPoj1?jV)Dho zp{Z4aW22BX)v(-+0+v0(psuvnj;y(5nodanIgNR;&fM^FMG)Pw*-SV0jf2L3V!;QI zP=i4rXiLs6Y{?NUiLw+!>(O^UdFML)n&q3-SJg~DehWgXv-yyPC(T`R))OzE_2jX2 zbx)=Hoh>G(2d7sJ_KkO4mtSly>tBkLL}%%|6nRUBk)UxBg~aGYET$JJG_9L9)%cco z?G3GFbMw^B*a{+3^$}2+0mBUBuqiOwVnpiEN+S`55IFgKUf0LsDOb*)JbT58b8eZQ z%%vL+uAkTJZgJp?6H|lJeWSfy`IDC|E*1^L<{4NF9s&cJrJjhjNZ5s%1c7VnNhgQM z@kq?eSFShU{hHxA)2v@Ul`a!A#)!s-z^W{8RO!6B0yN>a@in<)F?ufceUj z%UZ7=nHd3^!QO%L`v-c*dl5)Wi}!D=1qwGB7|2Dosq`Qho9YAw2W>F|&#~Y;+$32x z{6yp3bZJkGjek=$Jm0qbhQb80e$WZUAz}lDS`?9!f4xc4k;OYDhcC6DM6zh)CVtv_ zVfE!57tYMgTynzNRihon^5VR<;__niVMo_x#9uGU<=S&Wq<-Bg=`;$M$C;MDN9}8I zm|Ua7IxrP5&kUZp;jju!JKc59+m=~&)^u-x5fujU6=1Z@fbRb@!ZZ%Sq$x>BM#C)2 z#}t}_4fJ=dzPIF@88CD9+Ert{x!v356muvC^N%*fTQG=-5;!K;u^vKP9AoX9q76Dv z)yon+?@lf{p>=boYc|(LT$oqfVZisAjZ=pPoo1&U1gxzv4JLVm6hF3z>xuID-5iM` zBWl16V9}eG51hSnWX0WUPhT}Q*45ooq=)`tjm0o@w4qM7gHTHa4x1jtIyq`Uy4M!M zJz0|u%iVm<8s8*I=CwC$L(dx)PnCAsocSo39BqM-uu`q+2`#~rqHf~H6oHYI-#Xg2 zm(@(2@Zbp-1IwzR!H)8riKlk|s5)Ct_4HZ966D%}JTM)PtMK1xOT#oBlgyY3g~#BM z84Kj1Yc{6?S(;A{FS0Q)+IlBEh8Mut*ubYH|0ygnGb#P-D7tqr6I$dbkKQSjXOz#^ ztuI`E46%%@I{o^gPJ_XfX{mCP!##s4L{`GzGK8#?MT_-LKJXbAG!XMp zn`i3%G6 z!LFTI_q;18>uaYNP98B&ujBjRT^IAyiY<;78sPy>i3zn{I3$I(_J^ zS6>|+JN<-nAKW4xTA4Z9x{?55om1O#h^lUH&ssLslL*Bl3u-G6EMAO7hZX)oWzVGz zF2UIht9$M+JmU1*+6Ntz#w_65)QrYK6MD2t6cSbzB9VuEvP0WaDaPr(r>?f)_LuwC zo<7#~=;CF$uIooerYh~q!N>y5FvYIJ(o3N zVPT7YKRJA`ZOZ4(^TrOufNeH2KDmfNFN6}mtXGT>p6DY~v;YjkjKA~GU+6kAg&chQ z;N4@(ssqVRsi~DSkI$+KoG>)8)LMrwgapCkde!YYM>&c+5+=myKu=?1g@@VeA9}bl z&_1)otbREFDj)Z(?!i)UgMC<#CUSZWtdSolXwSwGve_bxl;BFfwC)*e84-2yOSS-+ude84oJ%OP8)U1PE_p zx@S`>*W{_JVSLlOAf5G5@VW%lSu@1;r;$6dXaEmH@{IZCe%u!I|8Fz46UcmVEU4CqH$V#!Z*bH%wbZqWd+& zi{QH!N@H;_g?PiZPcSJ_%a(uyEV|@V?A1!{(mS+Na)0~Gc&$WLO-pTQvFq-fm00=F z-L^S6a_(f6RzE{5Ko3ZYoq%&WRfX9BD^ldJ;~=1(c?180{p;`l`l@;GWmlEcY3^zW zN3MQ^YgZOVV__mf#k75&Fm$NtFSvA>mrk-UjKY@}+~|M>;(uZEev9i_ha34!c-JMR z`q_js->S_Btf1qZnX`@Aa%2fuSK^$dcnNJxg@asaYQXd}nDY`tJavEn!4L2L^7^l@ zX70W0D8q;6Yzj<(4B!ey?9FuJ=%njnADW>_5&#Tk@%O%tuJbyPiG|XAc;DzoKE#LH z9aNqVtnit0JCe5#UR6ucMGXliKu#L|hrpwup!v2C!{}FHM*Q@~V9b%dc;VrQrDQ1>b1;gp4ms(`Tj zKP@cwDUhnu(xnk%?Uj{X!ivYzZB?}uBZifYEPZyTn-mRlp%@@tq7I~3-*vr#0VrJ@ zk{~0nN8f?{SiJnQHHJuq@{jG>bxpnx7|09#uAOOHKAmFBA$Jju{(cA#kpzQQot50h z0x9KQ`0+xI)D-V&&l`@3csjhSBQk;Ng^_XUhj0LDyQ9l|P(Uua&Rsd(%A{-)4SlC+ zTHv=wCg>`kNFv*HU6pfPe17tyKjzKzFT1yv9}6ioVE5f8S1-!gMC|r+C~GV9MPvp@ zO5(RjO7hY7!*ciUQsO6S`4Ry(jAeA;)P45BUR$r&uZJ%jx*Q5EhA^! zMnL}+91D~P5FfoJiY?%~Nr0g~Xo51+bX89qL1>uq-Mo4|hj_m~UDr2>4@#;TR8&72 z)WRnhd?iXs)Yo(}hGFu}mUr`0ecfKBc=EL4mWX8FKTw3p_giE}v`;)SCk|i7J$=RaQa}JN>Bs!|?RNL87h9}*#MbHU zbhM#QwaiTD3lEM=RAP_8k3CI@i4_<9u^4c}L5RVqsI>jc`uPj)?RhDkQ3UwB*>mOJ zysp+zduX(DW8p0Tf z_dV0w4ejqRXY0oz7K`|N^2$o+hq?|BZu_)lu!}iJQEmfd+0@8|TeJ!ZCV6q?c6HXJ zM;eYxID1wUAIr_(yuQq>G+Z%!m`S1v?*R;AGl&rb09Q7);}3L2^?a(YcEF33A{rXM zmR3;)Krl0mK7V_3W2Y7FaCmtKQ?c*G&r`3QTM#TJGw&{EEw{DOsptTahDj!O!pP&T zm2th0QANGa+n+6o$=9KD*i8+O<(B3PIB4n}8zVc#(G?f9s#(UBB!Ho*u_V-`etQRh zAjw+qg&{`|BbB4LK?4zI-qyPmqHjIFrVz{~81DLD$9ihzi$0}p@ld?z=nNxiwlC!c z{%K6c;K+r0rXkDBF3r;CZ1pP`v%4ttES)*@AqlUNE%Z{ z)llbH7Z)D`a#~SCfCb;V?im122IFiJl5zKR^@+0SxQ90M%s0Bm2B#+NGK2azT!Ug# z0zIPPd;Di1+53oE97jx(FT+#h~)SG z)Gb4S6h?@|Zv+^GjZZnS`6jTaY1zce6$hqWpQ#A_Y{i7%FX6)(8LK#W?ul37i}T$( zx(Wy8n)a*N+TgEWIjsO0RZG^R_caoJhW$U8xU$&BsVEwFsZ1o&5MorU*f9l6YM_ZD z5mhcUZ4;77lTPVE3ruO5mbEMcGf)^nQ--!sVA#sO?~7pAml69ecCiT|#12AyfROm( zhY!xVHp_EtzxV8cbA0Z(_r-*X>?}WCh0{SOm6E^;Ue$*SOT00~G+OkDrw3=FQD-8L zJO2p=p$C_(XO+0Ht4k2gU${Q}#p>M$6?; zKA4@knCE`~mJiml8k-*@6(5SIfvcs$M{OW))IF9E@F8AEL|^a#Tli^p z!qV!Y2Vq_+pt5lSPBx!-+a{`$GX@N1b?&DPU0^Bg;L1^JhxgUPP*O3fgbc9V;)#t! zxTy#PIe@=rk(DH03x_XHk<6kgaKN{92$61i`2I^~qb+VZKMF&)#C*C1dm04NfcV3< z7TX7ACfxee1vsI}fr}J24*?QH)kcV;6#78s0SJSPh5?t(a&@w-g9@NoJ;o-1X*8D#X9Qz4Cj2~t1==Aa@6=2}PqgeXr7&QVDKIFVY*Yc~vTj7Qyx{=vC8 zC?KZ7dM~S6R?S`8sR1a)>peD?Dip`|xu|7j0bm?i%iWkYxVm~r#`Zjgt06*9*|t$0 zAHFinXd^zmtz(W?l`=ca$DXmS+*z{&+zhr?FP~9pLPeSlWw<2c(wLbHY~YUr;S#oX z`9X@jK#dt!Y&u4z{fXuP5)dt&ma+)MFpUoyuPqLU*Zo+#*C>h`po5RfR~avtHP&rDW_`{HSN+-!O_7bQ^uwGOTxJHM{nZ?T99iT({QSVHE% zW<|vEf!m=$4n4kgWDlaSyns@>b;a!MCUlv8X)YBNW4C|@glK8^{dOFftKvjL17m;gVz8LUyJw)Fz#iS9UN=`l)x0o^7$KrO`Rq!e=?b&Kl3` znr0Nex_E-*V2o6$2-pZN(Dm&!HkK+~*F4{R_V}=3& z6v575f&-k5=GrsnkDAVeVju&Ii7?k$1)SHZJ3Fdoj!e)j}KG zvGi^sP855WC!2LW2rxw|Hs$E()KbC@1Cyvb%IoIO81F6+x`+1wIFXA*F8pJW6o0;r z*uwuW)WYA_@f!&P4QpbkAQgVgw@1&Wy@{E_cDDI)m2}CPK5-Z5TKCK3ko5#9r-3?K zz4`Pr#`7Bb$N<8FTc}PXsPsAcVnR8fM+$xP+DQfOAGu=ST-&ZRMpH4^o5?rrV~26T z2pw5yJ#+L`eDZkgcBbCL-~A}e13Luqe0T#4(zwi+acu=oW?Z?}(5cIpc28ECeYhSp z8}pXjri??h17r$V*?6jTSI;>A=1S30du$lDY}*1Ikxf!F(-;DcKi!hwpwTW^qvY@< zICy23xnkocr8ZB$w6mS&*AGg<1&WV>4^Hqo)UuCR&mJw2nd(Ggx4HcCql)S=U=A1D{D_bf8ER#SJW)w zVJg$a*;El07cMLrS3!9pX#DUKoYJ85)Wd_Cy}3Cs$C}3#3Ue};L{IW*8k-YbFMhZ> z1XFlmQ)m=vS~8($Jc5@#sgTr3E=~m7HCef`$1I$+3l?N9vll%4Mh?Zut zm7MUgObeOd*z-?+>zZE5!nyDh$?@GCEy4oBr3*%IzkCCR5-&V8T2STkz$SRzXT29T zXg(7!pu!lE)ZRhWw8bOI#)z^dzk;kJ*0hKb6gwA{(sfGoRQ!dc>!8S5^#&wrZ_iJR~f}hD7BJc>=i0gAK>p5!D4jzywedYGijcR3O zbd7Cuh&3Tq@gar>3Lfmjfbx;9-q|r2iz(I>qg<52N4H2og$c@b#VBkrZoWJ*TsOeX zv0SB}y@VGYA!JK*GtIbJ>P*{Y7Gz)7WkiMgS%sbtHjIx~^ICY>v>0YEeH3;lgH$dJ z7NAEa?S87g@2v}tam&roxwr(F&-Dpi6OXZ6dXUDm!$SDlwo51slRR(E{utI^X`d&FpWRh{n$$}Cx(yw`C{QR3Y zXH8ScNCHSnn5F3$2!kUC<$xX9WVSy#P*|B*GnclXeRd;P$3C<{grQ#0AAI~Smy#g! z;bZ40&qw}J##E6sNJQL%&ErXYEjWA2n{kLq$eWkt9JPXvY zqWte{-mtxU-T6nXD;pAHXpwgQ#JN2R`1~aVQaIL&HbHXYpCt^!{rU07zZ{KQeVE0k6W*d!yvy^@V5Cdx%EZM!CjSx|tkc3qQ!r{P$n| z`o|Z)+zt+0VX?4#%v6jr9_f{@w;diAhqTsPP1kl^FSM~KLF9syxp#TEGCdn-YBC*D zi878d(RdevM<3X>`fip4029hkSr8$56;8@Ycxj)$Vrh7}DiKVp8kUyI;PFfAW# z31X`q&2NVt^zBa{Q=Zs)NcldTaPIHleDl%go3Q!<4N8H$BxaG5>v^vI;o=&M;OVxh zBWVSXbTGk&N&xts$i}4vd~aHqaT#V#KuLsACJm#Xvb^6UKzOZsMr9#k@hi$ zO-O_(SxEv*GYdl!Vd9y#diB(!J;B{pH{@B93ngHXjrBIF_!%mEM0;qif?ZtU5=X4F zXAy5r_!$t#(t&%wQYMZWGUblT!h_UAD`Wul&?TSF>OATUn21wi$jRVB!`QdHH+p5Y zWmh}!J6Bw+E36|>gNtA)Lu+Hmf)3!Xtv}lpCH8|dHico9!p@r5*gR40@!~`md zrP6K2VG+qoY>tK9b!#v%e1qN5Ob1iINMuIPe~UareEYVpmn8m!0L)s^Y-&F0HE$B$S}%y za9pPw<-TOtss^YM@^rT_ZfpJ8a_)-{s5+JdFo09yis0N^WkDdyS2%WB; zq;jzl`X0@R%8VYf9g4w2#&Hl{7KCt3p+{1tXd;-n)BM;H8@Db$U>W~K5qCCH;%-^* zTs|F=VKYS;p~4UAx&Oi2LsPLKWMq&Lt0=hLXK@#eKrl?a@PcR-|8a{!ryLCaf>8$>j0JJTo?mhfm{kLznUd!RAs6M`*-dP{9m%&@1k%i$gUH zH0pJO2%W?V7L-R?Htj9CWbhHJCaKiKL4rfq9UX8v9kz@^_(pm5>gAJ@$r{j0(=9+Q z{0m;z0PKaABdqT*1{P(W&kRsHes->9NI?twnnDN<^l%C^QNbz5N1_dOO}(&flp&-~ zGz~o2WMg=9xn#v$Nm6Ja0yhHPgG2caC1YaF#)vS zdbwtZZ6G125i2!%+jn_6`Ds*=h^PtXLMb9VsJ?W= zk35u2m=4%*f{7J0s1aRJyzDZ~8NTuI_x5?MgAcPZv>Cr?(*W`q^>8T& z-GZH6Q^+{@kPq-PiP1I|sqlgKy?B+;cHeW?SudY*=_P|X*1-(O2pj4E&oH<+iLw4q zjw)b^fS`nq!kNT%hLeG#Q7(Bxu65In9lP`sbtr;PCgl0)^BAJXp&s!mjLl-7_M69# zZJIOb4q2wSJbUCICB*~pN#Ie!uV1^G><+gdtlG zY489sMIJB#=uClRV2%QSCo_)RBm(N3#gMcJu-W4w4E2m|^qm6d^cI4c()9xAklb(E zEgfSGJHiY(j69%=eem%;Ll?@7oBt2{jJQ6GjCS0licNOtbMcX!uxX?kX+ z(P+%Pe(E#%o{^zDAH4J3qX%*sM;CEONwC8?fXgY9fJsYFCN-iZaAGDRdF(o6$`ocw zrk14HlX@244DRR$3u;5~NeMW73*bN#LQuw&dgA-p>nAsjX<-Iq69QmEO0xc?DEOx* zvwQa++|`(=H)dv<(^Ct@o?`LHzCPpi#dEc6DL;71$tMhrj;5>(6=BQ(w<9KigEfc& zA4`}Qz@~u4F|{x-L10A2`wNX8(=@0-GEvZt&z2sH_c0nZL?el#ZMnQ#Hz<)PBX1+z zM5B7&wXY03t-Mf1t|m+&-6C9B$JsW20<`6fK6En%)ICcI|dRxLq1(~WI9odceS4T z*y2jsAFf&sxjg0gi2@diw3tXf~r7$xOUpRgj@D*kmXnLcrnMOt@T2L^ON1n5Ew{?&Xu}CqAqmDHIj$$H^@tjvK z-+*?*F;AD0G>Xg3O(t4<^N*~|JW`&RY}T92g`Sa~Vu#Vufq#@Pp4MbTS1b$~TdqEV zouh7US}1&R{Eg)YD7XZroZ%%w4n-tLlAO=rtS6GXfq|gY5iuJ0lbFspEY(|;bPbR; zAVJ>+k1f8N#fVgC6XUlldW8#R1)1kJJpSfIH@$l4=u}6K@T-{u04p%Dm zQn6>G)98Z`9b5{!%tL z!{;1gL(GvSFhU6(3PPQPPAL<~WJ36K)st2dY>k9bFbbl?9+xa_Rej`*c|D=uc1@=Q zsDV+$&ffU=laHuNFT8tGPpL9dt&ShHcJj({bE<@3>L6dnJzr`$XgF9}Qffw$nusZQ zq)5fvPciWH%crl+Aa(#=Yfr7&InHOzk3I@$ z9_@J;5FbIK8 z0h>W`XcR9vz(EEW@u^d+{Tf+~vq3Z1OCIDV3m}~{R1862XLWr4(4uAA96AFM#HbXHaL#Wiw zsaQb}6RorWpA3yes0F55u_r_a%o+vEcH*5h$Qd+K2kxcCKr}mc_u{3!2J?Gj;jGi{ z>kQOG0yy|4ef={20+hv%y*5R}Bm4WyL5C zE^dwI!N=Hg)>*gS*J+4!5#=70ziM%5`OM|5yG~_U^8s5CI(eXx7`-l=23A-`o#!n2~wV!Mp63WuQmEJaA)60Copt0SAzgD56Ao{2d8Q>TUJC z#tc#u!Em2MRtId>*>~R3$@%8Y!V?=d;BQmumYfGNy@wq7;MH3%+_v@5>Ab^gZ;}rf z1S>)_w7DbjC9-730SlADP!@;)>@RE^z;WL*=JQ4-KpWT{RR_O;)TjnfiETs?;1pgu z!HU5_l+cAH?rCcl6)p$^`ht$1& z5__c50U{!YtPSPch_E3s*`%1$Ho91xwH!3Sh3$o{gP^wW>GKB*51n7a`D(q(ott zN^MJv5UF;Hw)SID8U?fsP;Eg<`6ysx+du;qOvM-kqej#R@yQ3HZ;<#;c+PL8+|Jy& zA4B(?dw%EFJMDy+JOh`7&yVS;sUtqKFGZkFHp}B78gbc>Y$h$L5fTD4VZjR<=Ka0z zK@8j1lQt-lv4|QzU{(3l>V0K#=g`IxYDTL#^yz;V;$+%NdeqD4-1;&!oN+QOoQx5! zIJ~9F&Zeni=h4lNz5K+h9cQ-1z~%X;X>xGde6+K#X+s4w7g3`oEirny$3lb9X%KKj z&0-9vShjsTgpjhuo^%CKVn$-0D0n2x@cv^Nld&@j7Xkeh0_w#!;9{D4&ra0W$!RJF79b9lB zCCN-u;CJbHLPU%aH@q4OaCJP6^i&+KXM7ooLWF`_O1ymEtE-Ym@|OcHfevg=l)<<{ zg$V{C!^s^@SDK^;BIH0vdBP1ns&)I_x0h$8ww?cSWaQ$7U2zv95%7pg<+{${;+2X@ z@Zr*nSFn4R-4)!==MEgQL!?Zev!8L0jhI2r!Yk>WI|-{MA$9EOOcgv?ExuP z7(8%*gUmCu6gm_L^CY}69fv=_MYLfJ2}wl~#@TlvP0KT1e*F>t&$HhX24wgYOdb#c z4u7FoDh{YP$%IcHEWnMnkOOE^k&RSD0>Jr$83T95UIF5k;hZdUD2hWBMUkU7%2vO+ zy2{HqN907PKnP98j77ZGqXxoG<e-}`yMzU;FJ4LTh(gOy6l^A?6D0u2s0(8UK&vIcBZbcwS2K!8 z2nBpZig-C*Z%$@1?2AnVDGyFNveHaj1YX}zVU$&5r?MoO&`GBfP*S@F!<*KEiTv85f(@)ar3hWa6_+O1FzvGiy2GQi;F}32QU_+{b`v<7e<#llF#p~Wx7ooNW%t+cnMT&2zpb&bV;yrsX1$I z9omKXXv%L=k>x2EzMPUQAl@LBOx2UCu)*Otzbt70rqI#=4%*srwjs^EKl>atmgxa^ zfY$eymJST<|Mi_U z(Pka|LQ0Zp!AA_eQpq4$W-7cb=SI;xl5bML%_6oI2B8Knf(@6$I(X5JmU0}oK&*v@ z)2xisxRQ+W(6Zn|exjg1J9oExe5)h|eXFkb=2y?P9G+f29eeg!?(gMqR^fJXv%ntc zDNP+!U=eN8NlczL7*GHsl*otl*Z@cv_vQ&K|7-asD+8XDY-?!*+Cihj5eZl#rNU$6BC4SCC;HxJULx+bbVZD#$T3pSwDZRcWmebrGXs$a5i6` zo*lilC5vUshGe+?B`1;sbdWQYVr^&F@b+2{?4sb3jS1S!RYnw$@Ss^(kig%|2emCp}o^0?3t(^Cv5Je;6rh%m|* z#&;=IGu%@xL4qpGrYTlF0|}?5nb8V_3@cl?Z(n&Fh)9S~twaQ62;Rv(lTfR z5>8@@vexmvpODP;4G~4HQz26e*uJuWMMf)=+7H5*a#eU4C81GxYdGeESZ%H~4%+Jd z|4wb~esecCP%}heP0OB%31s6y&;Q#fA?E^w*(2k7(LR`>h~-6)Bl)f`UQa;*%Hrr@ zfR@9Hq6Ti(hIH`#>IU~0R89UzkkO$w+M*^jvT+O@YUA60Ln!ED)DKKm`Kq!^fZH%b zn!bfJ)y)k_>(|ZBeKm681M8@PE)>`OnZ49{>T*B>Qcz_Bk z<3xgq+K*7f8!SQgFCmaw9&v#80y3S6!+zrrA* z4oSR=mS8aIl>#!kEs5&0bH802Zwmsh0k{XXn@&zF@3~hOSTZ=)-v(vSE`W?=V+pb7 zr-maV?q{Q5Y8amB=?EmXk`1$vWW^PCr$iu$fA!Lx_C%_-FJDhv(3U>^OjdFzb|p>W z<4Ka%@O@Ar#|+<#HIT#?o?@Df9S7%Tzgui{0GrhqC{#Ct%H-wNAPUmC`-6cW6!2{d zG4Tl>uPBGuJaRi-AOuuLsnpX@t-}uL3{I+n5iKNG(BS#=Se07Smv7)OC*>rQ6lzC| zL;xEz&_IcrumqMXZ<1A2W+=>4!~b)dPaCiK{AeHArI7Aff0K(CrkNe-w*dyh|?6P2oLfSm{x)&P-jLCXk9Ed zh`%k-GP0O~aLC}A0=*qkwSp+DIEL6yCX-bep}l5l?rQsqHY<_sH6Vj9^Hxf!1m&JZU1^fxz#{uf=Po!QzH$dD28mZdZ{B|WkU z*ZI~^zxF#zJNWrbSi(gF5<;j*3c$mE#2L8_YW-i;wS~q}h2gx34_XAnkOy%%43oSJ zhp;;g%*<|fvMi=ax9lppY%XoA8-upN8d~dRwf12XQKQA0i&{0NDW$Ue!9lm|XV9P{7 zH%T!pR%dtZ`r_AbFJEe*j6$(d8!KOqHj8YSHN?LxV!K7aE`Xm-i&+w*b6*AGMx#=z z79&4JU$>;uXpZ2Lpq&MmqlTWn9b~G7m;=Q}FcF|8izXFGf)maJm&ruoMpHd7^Yx}3 zqfNTwjz#xsRK1DmCs)UI?fU8O4?g?;k~WQqAIY~KK8L60l$kpX>%R~t8(6vxB+}Q& zSCzJAl97>5xLB|Cw?t{+P6<0F1%a-P@e-uaa+mMD+9+1Lv7A80Mw7r6JraAc>rrSl zNdqiUQ3{R5x*j?*wROk#JIh-NYX_z?dP}x2U0)qpJp9o|-+uVV=RclpP96fs)60XV zp*7y+7!BOHu4#fG>uhkKdz#beB8rp}pQP#YLall}(h*yN?#9Dm7PpxJW(1jf`Gppz zzgi*G*yPC%=IP+*?vWb%ny6l>^mTRB`f9u%5-6^I-W2Yej#t2v3p6;nv zcbB6eYHUv7?E*haDRDIlj(Gdr@m8Z!E&dBmiY5-nbP_ont!2d|HI4U~SjV7c>B7>% z7x!<9Ov~+hYW0~{d;51+>vM+&eA96*UjE_d&wlvy6~4pKau`#C6ZNt;@m`H`^`tM~QeZ`lpGrU}4(7cXDF{N1vFe0@jM z3#0cqWsO7|AS3%%8;Hc;*C7IQVTVzUNJgAdZFb)W%Ku{S5 zHBwIx-)0O{7c~ny_64397GeOv$T1eeCKVwBX6(1eX7J_slWoXI(0lUH+1k!x+YMV= zH1NBI*_=Cb=8UNv05?I&!LabjP2{FErXbTo_;7uC12*1t97G=BC6VF*^yD?U8*Eww z4RDRAv?DNySve`B0Jd^`qbgMweffC|i&~gOfK?vK)I_g|m#I8;7uC#>rRCx6cTyFU ztZborU>bjOzT?g-VmU#-j1>uk9zmaNnR>X@5^2q{ZfKLhE`~0Oh+4F1#KeeF6eB(i zj1u1Te6_39H7Jf!_z4(H!5MF`EBgo4-Mu>l)(wK?3Qy>ufRUAifSe?x4a|eX3vWEW ze=ADTep&vHL5h93Tk6vfG{=wLc7>)gZGM0#svrC1;U=3J^P@;+1N~0?65M%-oYZ(# z5JizogdBbkZ<(+5To(i>Xk|1ia55BiG6bc*|NT*?y}DBaql$Y6MY6WJ>WDZ5Ojv#3 zz$(H#x^Q9p@z(<^1FO~9Gci#p4fS1{d-uSr=b?v`V@iPUC_YY80ecxi9rG|x&j|$;1g+Ofe0BvBLvV-)a&Q3YO+KdOX21KD}ge}?%e*C z&fe)`mg1UaYZX8ni+-_rizXshxv@kT?T*t^XNK>+Nz-^%XQ8`L$Zsi=sLNY*{=n=h zOEHUI8W}8tMf974e+i2pB733%GXJrlOE7{5Q5sGnj@BRow2?wZaU%=5Yx9fOU+a@Z zK-60E!U&G;YdzLG*NKcZGf*}#VrJ6hW?*A51!({!5C@lzzOa9DA5*Wrr@K(<^2?59 zTY)fM{@jTJUD8{Ykaul6Lmm(YF|)jpI|FXCT)QDA!d{~eX&mS%O;Hp$2q~?S2$*R_ za;5p|TGJI4;97h!2~-dO^}EAYdA+^INKX0-%L3j;qbM-2sSzs{V7ad?9ejTHM#sXV z&bC99fsQ^$2R`s=n{0rzID6teDVS8%vJtMUSwP928Xwm>_K}bQktneS2SC+nrBG8; zCU8=Lax4k}u*x7mQpn#?UAuO#?<*^?gb$$y7*_U;d%bgApaq5y0;_z)q@*nVOp-ui zhi-8H$s>cu?|LPO_pbs>pKEq4kPxWaW%!d%j?Hz@BB9H&IL^f(4qDo@m)5aa0vYPT zLA2nIabwHGGN#|OUO@;bp9zowIKdyAp0D}0p(O%{g9wC__w=5Jf;;B(zK>a4 z=ZMs!Aiiz+yjoWF^wOIT-g{3V{Z$w!-R$mS>H3{!fwOZKR zwf2@?P_;@zzaYo?mWu`BP;Zf_#PaC8vZcs*5Sc&;KM4Qk}10ZkOCj@hjs?9 zBr+k6{u3vPVZuQ!65P=61;7EzSTnbQR0v&qO6$ZM9LR!$@F7-YqK^h_WPs`w=d0c0 z+XS@lV_@y#?Bv2oCwFuQxq1+8kutyDJj~^p^=4L&1qBA9KPaBuJiJ zua3=S?e(B)9C^#i;k(R?*vrkpGhiTeln_cm1A{gpc2OiYh#UzQBsLSFQ><4HZNAAP zTo_!~+&`RKTrDDp46J~K=YfkbMRXlGxx8l;t3m>GRV(YL@DSBwc6r6dwtR& zUci2Oxak&oNx zA!>?6=ETnP?e{iOAdwQD5tGp4mS(cfBuLP&>k-IvUw_;{g#$&*2j=T*+xBKqc;no~ z*|E2Owcqo|4Ff~O34M@SS-Jq<`;*>^Cgny{33Z^hhKT^b$fs(El$el$3~)*V5elecQI?vKKza zzZZY`th4gq=Hlw2&=651Vp^}AJo3=+pw3r{6WsHeSTAA^^lhYdn-|=G&A$uzPtKLmHtYpqg?jA(949lLDUJY&?c)a zh%h)(3d!vJ?4#4!_4dn>Hc0tde_{Miswv(Iv;P31_3BdTZMTd70000!p^?Z-L1dN@AUV*(cG@V%Qh-17GM@b>t+&e*KJ%Ixs+ zvc%B5(A&Gu*}c))yU^OV%hk2W)3e3Vw8qk|!py9|%DK(fw#n45!_DjO@vy|rvBl1~ z%+<5U(cI?jw8+x3#?ZFP)4tQ)*5KvT-Q?gsS@Zb$waL@i;^@B8+tuFX=8Bx;afaOI z?dtCD=j-j(;O3p6qTeu1@bmQIS8%`6-q+#h>(|}x@$%c|>*~J9w#wD4zsaD1rk^Y{4j_4eH0;_TVq)7RO*!^P|G@a^X6#Mt7Jm6yTR;N^Xh+VcA8 z?e50f<+#k(=)K3Ntgas)AmQfd*4o_4&(X!n%i&67{{R2*^75mmsNq&`Qd3pyzscyO zvg2cV>*VOGy~@DU-mbE=_4@nZ&VvJxX96|xxu-9W1(n5S%QZtVX4Fn+8+Tgs*)U(9PkA!^V_xs}R^3&8E@9*!wzp$_O%=GdA03>KhL_t(|+N_p8YZPG+ z##d0pD=g$*7M86xR-SthNqJVOuCm(7PhcTf9CiWy3O2F0#>UDrjS#p_i9yg{A_+-h zK7c5Swa?5mb8|1Ea-Pq=JAZZw%^#||XJv;w&zWa(#sD7&H`>79G!^6Rv>#HOVUB@N50*vBP z(>0+IvOvR1YS%*$uOE&;cwNlpVyjUIjFyXIRdKRd`4AaH?+#DxCn-uwlCcdM!NbH+ zl#R(`@^0_#_p_a&qbG~)u!6lAWT2cWrYSOn(vn4ljyvJ)Adagdfz1@DVj<#q3yi6) zeX0;>g*PXYPapQrzMq}GnSHITWCtM;)0DMfA!eckM8O>(@J0a3ISU4MVyKC#WGkEl zHrtRSVQUDipL>mbCVpH*LBuxG#iSf;v@Eg7%=p-Npd(?c~%gk6qBtv zVk^5r)g3@|zUr#1xfX=5iwzKkPwVqu;G)s|@%irF{{GI%>}2mg8EBvk!6#^gI{^T+ zK<&I4G-3gw>N+%lN5#68P{ycXGwh2>+vEGKOf7q0%}Gew1kZs=qSp2q?(^=)kPuj$#ep5n7V(6}! z5u83?I6^kE5U)q$(Re)C9BY1X@E$riz+;iV8^hzhWiaw565X-)Fq^n=OfR20-T*to zy#`77ShPM|0;LU-A;eUeYnWb_9R<41Uno$rs)0i8=j@XtEghvcCM?y%u z5Uz#?0?^#|8_(BV}j9r69j7v_4sbC(`QjO^Bgk!Lb(EBK$>TrQo;LkpFqG zBi;{1$Y@Bo@>u1ccs@6DOM+ms20~K!?>RvhyP__V73EVOyGpdIT%s=D4bgG1igSrz;WmXfhSqQH*T2r)CNP5A@D39Z{I^yBVC8@yy;>$ zW>EL~7W6We@xjcfGZQAsL!Sr&4IoUB0^#_LF9LHp9$%%R_OySD=zuu7#Z7k%b0_Y=I&37p?htOBG+AAV=)LY5tLYFpOR(X z8~`Cps4IX1k5hS4Bitt}Xf>+@kVZPkJP+N?gQX)+>qVd~?XG>jT&c~;mjdD!EnfkI z_Fe&TAdnc4m?U*wxq>0Rbh+HS+Vb6n6=GCA{8SzGbzz;32so4O~B1E42v72XbVIkqGW@T~EJ&Q7q<;a=>=5BVDQxyiVc> zv+N_8dZngqpRs^2?EvIN84y44T&+00ly*b44txu%k)Er&<>MAdkvZ}Qfdr%r2nSu? za8QS^8z}LyY_>CGRTJ;@=}p#imkQI{RTxGOTIt|%9!5(Q2G`nKs%I(|+tv1Q`LI?~ ze^B|aKV1%oU#`jcE)O0|+E@WdJF*IkUdx>xi6(aM|3tq}Iz>53 zAxX&>BfUJupr1cI$(QTpFEw@Qe|Jv+>U3W#|DmdYP^3vqYlEM!<^2Rr5?9kN2+rJ! z+>r-INHdRfFTrW^ni?Sl8#=O~;;xklaL+>H%F)A>PTcJ#xTLAqHC|2&OqhupM7%9MxwOi#X%BG(8G5?TU~^656}5+L`7 z|LA;2ELjDl3C-L|?{ql=@u(ozGYoYdL23leBZ#INsg$FwM{am3j#M5lG^=V2zw_sB07luCi}oo4UNur}*8?&6OOH zI8~kc;M}x0=N73s4-<6UOUtEi9K*fV!PvkcBoOXejXFh$IQ`R# zVps-=wB_DQacS`dg&>C#FOu?I%gYY&)<6H;u4J-Sr{f&;7_XvE69)C@4vYPQ7%X-m zWJk*U(G-A}ALBbCFOYY;L9&VoxnF%eS+7r4rzD9ii85hrBLoDH4@3dW=O-V>Gf8H8 zGZlC8)N+F^VXW6@XJ;p?6%nZHM#X+hJBUI@P$MwqJULRnddVF#Z>_@|b5{h8Kb)E| zZ^AGTg*!KP1>9&w8L~wTA(c=Dq*UsV1*yu06j<2uL%Q-?`V;%^E=~X^YT?N-!btIb zetr%T#Fr$Fo$VQWFZ??W`?kz-0f8qBvh!cg6(;y4|9P3Y@$n!E0G5!k!VzCi&d_VB ziSfwVzP9CBOerNJ8*Z)lV93YgA|skFTf0eFi*~0d0?6gGr?e=Fl{{a@gy4cBd4`si zaKx(}|9J3hEVP~gMHey@;w#HOQ9ryu&m8gTd*7rrRJ@Vt*^xCHB&Q^2}b5Y-Zz_e2>1U3PP#?|2OlsC zB^kvBr=3)y|iH z2?>-zr6i^~*Ij*HrDOsS<|tuH{=&OTNLn9`*`#aj0|`?&=LQrTf#XnlkOAVRV!YD< z>-4ip8GlO~DG7%?Mc6}-^;RB;Id3i9T7gW#nlIPXH3U*x`tP z?3p>=DP^rnrFRW+PJi>#w#Y+l0;zEA zXr625Mi7);UCkl_%%^Q><8ZnR4)ch8)2IZ8`ZMu6aI6eZ;B z3>+uitH33br=e2QL2Q7M=lCCV6-uXK3rWT-dmt zfmE08mUrK8Za%{i(xj^+VWms`5Fx>OjyV>KVqjGO!3Y$6a6)0F3?jQERRhWMH`llL zyw>}KIigBSCUaS!7+owtK|)RnkYvKaUqSS&cta@ZeDPZ$368jn*MB}iNjZ)Lfi@Kk z8Ep$P1M(!It$ZsL%^?Zl16dBi?JW?H+^^T`dv;_zDJPTejtB>@e2vxwVXYk$EUQQo zkscgWNA;wO2^k$d;gE=Q%@LP7cX3c9fEY_gqBzk0(8h6IZ3zQw%?--Hqx4I-F=p0G zh{vjhq@EF1L3v&!V8DhE2Vx9iFbJeb^yYUlfUMmol71Wjp|0n9q4y`Gy`h(c;qs~) zacMm&JC#=2;2?^OdaZz@ghD08QcxcbG+F$kht^~Pb8J91Y3H|qMcQYi0tReJ;09p; zB(AXN6dXPel8P}n5MN$s7X)&8ia&U238{xL5oTVMl}`WMmtFcN=E|h^Sp!nRuk^KuByf$!rFWzm%Ix?+alR#=AC#P9!1` zmxiE3+Jw@&G)OI^8kZ6wq>B+m>_o&RHi$@wSP&v%LqgctSP&N0K8g?FdCv1*W=zNB z{QGY^x6b*^bIy6+dHeRt!R6v8MjbSwBsxnWw05-H_-C>YK=J2fS1Qlp$gHVTxiu3T zRsltc@?R+F!GlX+#_=0SQfLxYFL54I1O^xjtpWe$DnbIi@KMo&<+lhDR6_YeAtuVd zR4;{!MJpyl9b`TfOI8U)lDKV4kR!;CcDsul8Ejd*g)F<~maKSJAxp~~4up4A0;!U$ z`6Edd-(_?VpU)sFv>`Tf96KpIsRr~^eqjKCA`%482Wr04D4w+>2+r(5j94JyLSh|I z{yFFM#ZEr^n6FrMdX*C-69_gK2uR2vMera9+JEoGEUPZbclhdByAPTS~M;#|f(jN0^NuLu+}EBr`ZeIeGTk^F3(T2||d$wrzu5 z(evuKnhI8a4aa(rn^Oi56JJ?MTRX(_(V};S6?y)xoO7 z`8;U~v_1szQ+Vxz_W3uh(lp4oPyTF!M&z6cYp=D2^%!Gm9WofoL-LXKtEC_$1kM^YL$PeK}bQ6DnjI-Y51oMa@|0dEb<`b96?zUh{`4Q7YG~r5splgZvkXNg#==T z4cDPmb2UsTRHOpZCdt`#&$lT@_;jEaB$26qRZ)Z>7Fs7#4+8fch*Lxz?+Ak4*>51} z1W8^585;;nvO{SSWVM>ak|Ld6yLEQchX%#yJ4F`Ma5S3&F~o1;Sv zaYzw{j1=)8SLp{&{00tU+iUP}uQX%O`LdtRxMX8_H`o<0kf1=!5w~NiXdsDB6q&92=bc4la%nb+L2JyrvRZ& ziLY9!y2=!BaAJj=iOEiu&e;az3X054_Ds`r3JKzKB!d+c!95g{)1}CiyH4N|Jh?f< zmG_=oIlSddX^SKORFbrz!6~gtYsfr@9VliuzY_1Sce4? zp%A1j$w{N2D2;v}nrx&ZbsSBryqO;ga3Hjx2uN5SoPPIC%7Dzh1hRK1aDv07rk)^Rk6XEf2ctegnD2p451hQ%Hgw=Jg*6_xy19&3eO=*J;_T9g!rf<&zYF93UYG zY$G`K?46q*1i=fwwGaplFM1_QYAZNB1LXNE*XL(GC7@2pnU4fXlKi8_C=6r`diOVR zbiw7BU5yF~G$9B`ghG&>f~(cos1(`LuYx!Zg52fTFCwuf#M8u4I)eCHh_YqDkpL2^ z;0c1bJ1*@PKch<03?!?aDkobmNji=GM&kfTg(C?ZXYOh&Qvgm8lOupEr~?W91(3Lp zfp8RNkw|JmV*i&QBvBviWCtWIt6GRF{DCCq2t5rAhy=OIv1Mu^|D8EM|Ds5o*0^k$ zK>TVo7r1@&gRXxES$$f9IF_Seh#;J(SyCh`=z(|3o8SP*5xZ&uLb*@`Not%(gn>T; zNy{K;=z*eP*Lsj}+kX1AYaRKt-GeYky4^l!1rj8i!(n&15JVt`AQ1bnH8I_d0o+EittCUZjCOk<@VTmV_XoEBW%l{d0!WBFG+wmlVlpB#$68KUY=JRD=j1R3x}t#()_0 z6p_SIMb)py=vM$?U$Xi3)rD72Z>=N99^^R`=^hiv?+KF0LJ=URw+cvE5q~y^Q6fp~ zsq!J&`y9@Z{0OeGQ}s>{xdP6sd58EWnHY=9=Y546VpPIb`&; z-l8b+HxN~9ffUAs*s`};>w$9N5fth6yT`iS_Fi&ubL8-@I~b2uIYp+gA+n@os#KM{ zsZk|}A_L3s`y}PqG9yT9-TL>hE;RP+IEG0nNcg=BAN4ZBnU&i`DQYE=B2j{6w8$|} z5z8CXDhQ^!;!rAb&_cEckPc8*K5cYqdyXCJGDpO0Hz1;b1&Vr8Rr^)Txx6+JMPWQD zi1;EZ47rHc2AR2&Rf-q`&O)3;-N=AJ!A9Lk2qoRR4z7gK1XsQmt)-i4Ybz+e5Es6{ zoeMYa6kG_t{szBuPHu1FB($-3GMTyaKEL_SxpyX=ThyDVNBUy$Hx(*&4Vjee^P3GY zS=GgzQY6T;1wrOa;ml|O9HZ5a9^G>2BnNiKTGvyD=3wS2*k4 zLOFzhjI4rGiXh=3Lx~QIW5=qj2TbIU4-Y9zRY43wnaFP&!@4=dU+b&8`ZRK!7LkfV zVyj{ser(dV<1}JW1Zsezm_de&j)J976%LpUsZ?^WBgNYA;2#P+@6Q(KDFL|@g#(b*Bq zZP-f!vx&mi+qT0hz#v1*UZ4y)b_R+NM%IB~NO6ceDdV`Nb8sIb8xP&ryB94@gmFp} zC(7!%VGe{F#QZ7P6Ild8rf;-f9b}Nf z&U52{p`VfeRzTud6C|y4zpW*{oG6kc2RXJJh$u2jBy(RbUp@znejvG2F=gVt+@kQ= z*F~}(!JQ~v5qCf?K#~*)>GAaP=Y=mL`|)fqH{R~)bZv8|0|em#F+(T&yL*42uNt&*}s6Kt`gTF zom&Y%MgxriLt8(gm1P+V7%)_KBQhGy3k^r?=?vwTopP?6YmuW!{Zhf1CtAX|g1|%|=Mlirb$Jq$lka>fD^oF^CBT zq*Q85oc;Fc)7z7Kx9=QWz1Sw0hqNSnSdkoqV17fQ_Q!Wu5AUXW zhvQ;Z2Rk#cy6*+aS&$UUMnU9Q(tFo}AeG99D^r`gckKppWOA~UFC2Mvemil%tizUP zT_!j306EwL;*w=34tt0+%6@PhKL`6R$sV_#-kYlx=jStp$Mm~3U`~_uo4nhKcBCJOh%!X& zi|8N3Ayw8$R{nL(iCedd#`p*@C{ievCh=3mIL;&>PLy3kfk0BHNLmwjwA>mXuv~u* zu6mIl***MUAa++xVA$%JVjh8&hgArKE@^j|4+)a94N2MvWWACM2BCkCK~?XL?I&TE z4poEDgubcI%|H?2DCP6xvZ;`aAm@iC*)NI=O4W5roC8Se^ekf*Ae%eojsS%2vykcg4s-Y5)8ocOQ;!#>Ta64u zOcpt`L{}jhHoQ7Hk_xS~EW6fL#5V0Y47QYop`SC~!*kEtOSn0#=o=3f7FtUtMvef2 z6~WaSmL&Z{%9ukX&jdh($R ztMK5g(ix4(tSwX)uU5-rPq5R6F&v;mi>XkS0zPiru}XEk$|vHLV={5JxLDymU>|5y z-Z?V<>qn(rA;XHr-9LAIpM716jnR>!&{6dwTz=4MXcOaLo}pcJ#$f~)@*##$T=qb6Bk_d- z2G;{B!My-wxPY&($w~I-&AUg+Uz(VTfad$!Q$7KBo+1l9MJ1y{t>HI#0z3%?#sem= ziM2_v4@x>#OSM3OBaR8YzIgY=`}^qr5msP*oU|uqrXSq+dh@>a5>P-CAjV2dXc0%qG*V*EiA%Tf zr{8+Qo?8qfp0hM66bcS=^?O;VTI*UQh$ok&wAbL{AZGuQ(R0O+N$u!+ru zfz}gptZ8$#mZN;to8Pi1q{r?#C!ek~`xCn3!U*kVg>dC{bP# z0aJUmhK`Zrk5*m=I9S4x)Sf;DMoq_&(s%FQiWBStkO+p{*_O#{q3Vi7z@T{22_!?` zuy*JAof_Psl;$xehFlN;&AMUZumNdkw$UPNAE$VC*eG$OtPWjKjqfEN>k zhybuANumfjQXijvxU&2Z?rNYkb!`q9tu}1{&tJWq$CwTb5HB+E=1gW&W?LW__>vBQ zQPONEd_CW8T`ne(M;MB(%jT__O@9C; W;;dtW(mrGW0000+8b8!uk36&d$#B^Yh5a$m8SV=jZ1+8C@t=qCC`~Kf*cOZ3{UDPEr zN5fx@axLb5J-{a3ym|Hd#_M`-U%k0`brYfUWrp!K!wV=fhZSB#H!lU^^$^GEA+FU! zT&st;Ru6Hlzd&XJOlq00 zWVww;5>06WVByzStuW8iEK7I(0k3GdWdVCgiwXE zQ%3_Q-u#LX#nu|fiD$$CD*TbgiLM9HfT99kR1!`EB`i`zlxnVkk`N(El&pkcnzD*M zG7Z2Jf_g-Az`=Btjdd037*F_!NXOfH2r%G*vA~ z1quM6YdFwJNCjwyQb!2DLce=v`g7z1Yz{(JgUwajLgapD$a@@a+f z(~3-PR~WPqJMA%S<2~TPKv8$!&`w7wjB!(_jjSN9fLuS1Lc zh%@4m33W2b1rVkSKrH?*#CCw#V+>99AZwl;@cSB_E|Mk+TP9M0MG|K~v5}kWK_=$R zM$?^LipFyxk={ThSAlB_j%7M zhRyAVtKR)1V!v;`Mm9!v5BP~w_>6-=IaD}`j|nWNHW71Jus!{~c=XCsm5Y2{8=7}_`vNwWG zq-k^_O`{WO8l6bf=tP>vo(LUV-~sV1!7yg+vD_2kK7+C-1Oz1@XbXEH;0zWMoPhDx zi*P8%h)_|81jNE+2ooH^B4M?NVuXi+A!H1O%jHFQ-ly3_9JW#C&st+#hH&79(_uW= z*kBjln(5bgU_)l(=_qVz9g*5aiFD@aiEN=r?omdju@^7pQ;AF^s*&zwDTGYU@rVw! z4z(9epF~7z&qW1^J6Oef;CVVZ*JB?MX&s5j7a8hM>(faQS_@>zRa})`w?NNMMVaBU zd}I;nO_2;wB}K*qH`yNRAxA-aQ$Rg1UhUw9yB(66roeI4aC(zNQmhsY) z`OoNZQkH|2K$*!v;wY|`Pb=cTJH~9bJ(}qF+wR$^=~a7ItgK^y?Az~~cW3aJm3^5f zq)5tOf-+|43=`~<933W!b}#mXxKn#|B+H#B7Kaxe(_`}=E+w+u>CR@oXGpML_wsFEfACHbD!@^ksGBfAut<5h2&f=n z<~%?c&qORilrO^U3W8dx&WOVTFu_4kh&UirfN);~N;xzoDTiqaG7-**!+c~xqSl;L zi*Sa3S~SQ-EI$_^2)OafLuNA zX>=k@qZ4Tw){7T-7FaJ{we5qR4wAezpFaHzOcJB<`sEv|?YwyP^7S9bWOdfc)jW&< O0000{; literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/volatile_organic_compounds_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..796828c6448d643bf2ce35a31a1aa739630c9279 GIT binary patch literal 41316 zcmV((K;XZLP)(Au}l)wasixy{(W)84kp)U?Rb zwaL@C%-6io*}v1>vBb}6nIyUy3e+2X;~-^ShN{{R2T-RQy8-NV=6#@gh@+vd^e^2FKXx5?DN*Wkw6 z<-^wBu))f@%hR&M%eBVO!q?#G{r2zQ(Awy`itQ)$aKB{{FVd&g}mF*YEhw z=-u}HlAfd7 z_50xT_{QAjpRBUv`u(T5!H$}r*Y5Pu;^~&Atg^z%&*bdB(At=#tIOTwk)Nf8k(S=< z@zdz=)#dBY;O48n$)>lz)a&!n=Iz6{uj}~x*XQlBz{l_S`Pu64?fd-Z^7g;8s*ReU z;rji+(%YG-vElFZkDa5)+vTaAmZ6uB==S;6>+-j+r>>)#vZe1Zb+~w)d)YHMl!=<2` zl!}7r>+7hfr;vtzih+9S@A2U2?a02hZf0OpO-SI@&E441r3ctZ005pJNklBe&HM64}8|D zo$4)GN$TuV2@clXm2=YWIeh;7;q!;%Bo1*MiqauQRa9ffgdiV0n1fUtnQIs+I2Mb= zMu%LGvZ$-4gh1xA{XtX~7&E%XqV@S~PvpZhbWXS$wTRhl5f_T2pfICIp6v@!XVxc$ zv|i+sp*bip5E3f#1i^^ha~PHiB-An;-V({ehDt5ETO)adUR*Vdqo8gedxYhopuq@D zf`L$p*)Sx^o+Q>&Ow5FgOIZMgH|c^>Rg)B5WuZWlno*&2-{FUaT72W&H`~|8#E7{C zPI!VZJPJNyYfH$`BA7`6YEp0-WlA40TSNi15Z4MZOKMS0R+<&l66PnYo)8DyiIbO4 zbgi`xd_2*TB9oyRbcP5?EXsL0jhb>{-6T`T%yV+ZviN1Kmr%g-ynG2dqznpCVUsOW zBk>`jyNT1?j$Q~XupHt_vCNr5A-1Myd?83Vq1yU(;?D2qw{G2f^zQw+gS`TXdT?G8 z7edrP?MQ0-$VE%!BsJM*SIU3jR0)X(fm;CG?Unb`%M)sdjV~)D)Iw;I3ek)_4lr{} zGgB*?lB)p7b1#6^j0lrS@6^W=0e8G_{iI2|dH zq_Otx_>CKHZashg{MNH)w{BiqpLTQee2!*WZ#umh-N@8EEH{w+cHA^Fb)ccu=;Bw2 z!!pyJ$&o_1Wui$iO?uFcPB0a{P!ROnQ!LRSqxV;lVn~o=LPK(ObYhy?y|PK0!=$r)a-xk;T##auvv;pIgnO?kdw=!jygpz0g@v>p*& zi!!vB$DBbN#d0(ARV$B^2-e6!NQkG>)Y;x2F)KpV^lebfch`RE@WK{_*2ewzr$~`D19!jj&VG! zrq(6jdUHflc=eX#9Hv6Ca@3j=QIu7p*vWt0+oSNjx%2SH>(@WNT)dDSKjR6b!+=xR zfzy;r0}1Kq%?<_AlrC9`T_M&vJ22a~oYtdS;sGhT>j@%PT z70zzuT|7Cpqb-{J7pjJ!m;-XevS^cG&893jUy=Kv>4BLG*05y41`2x==3 z_vKbT#qn(C-TctNDt=%U5+=#>$kAupA78zW*XOH;55K-#f54v^1u&;w%kls3ZQse#CR3k8^}7R$>J-Iv>fg(_M0NWxj{Zc)d6m2pX;2Y~W~8h;_AkYZC(N)G?$DS|+}zcMiRO7!mJX=C z44&G<`=>Z%#`5VF+xpd5A4KEIpXe}imq(3Dv&gGepj_chk*nwi-lV8D4BbK~r(1K# za?HDyteCVeKWr{v*u5WLMwjkyU$}5#`_jd${j6y>WP}Vlr3K3sK@=RBuN0}s(#$1O z6x02CYnss`G6JsrIYy6{LGh-4-b^C`wW2;NS0+iK#=vHDSRjXi5v~MX>)lb@JJ@hv z&O&T(Cb^~syW=IWiKu4r-u?UA5rOkNJkJDAw>P8U#At2^7bP6U&{B{KwK7RIRNa3M z3Vq%xo*1-fCQMt@TX+A|fgDl@?kF#cDBDgv%Fn_&fJoS!t@C;gMlyJF+%$R@+Wjuo z+KKD;17^?+d+uI3JOAhBHW^B~pjLzDwBC2}Ra6W!S7$Ha-l{J>%TWD5-4gUkIY{`rJL+)yuPpilehFIOjeHC#oV^bW`m|hA5(*dL+R;AJ{Lv zb}!?e02xO?beQ96OsW8^jwev$Rou5r!JXj1hLRJb$-5rV+GGk{eV$K*+aQWqt1)6_ z1bcQto6p$|)07TtY%tnZQ;N2ULwKrfdlhbYOo5)6c7%6?BuH(h$yUP17!ECQf}6iD!t3XIXMS zz*Ds>&RgGR-PyBej`3(~Hlf;?>@Y(0Gg;o;kn&hCP1S+MmrIC2Fb--W313Ng2EuY@ z3ja<#`hVN7V1)cAmJ5s-$dKboUqeg}4Y{%hzMfk>i2H+GLXMmaQ>eKCCTP;>#Enb4 zhDEa=a=Hj@*2TYo5G3%b(#!ZQ?~W zxxzB8`YPgpYJHM(CEe8@Hq9v4i5P~WEhy6bKq|ed)DISrks=t)w%8pj)7%9n=M?^E%auBsoJ3~4q) z>~7vwdN?Gzn9Tq;TYyes*5&3vmjAbECzX-=Z+fb-if+PN4EY}hz!3@+*`(jcGb+lCJ$XBnK8S=y9$Y4ye8LzJX#<2;# zJ<@!goG%X-2(@=Xi6@M%{3PN#rIqYXel4e1Q+6b}eSfe!1uaJ39U)y_$3vysvSNGF z7QvQj-bH$mG}1aCaS~xw7xS%Ny|^YkFJi!|xRgi>WX0+QXnfj~{3N>E+LgsDp84zW zc`~x#zWvI6^Rx*d8)%Z+exS|cSUjT^t!kvmgl1&D0BWW`;;##!NcJ8KvF;IMq_-$N z^nfmSZj9u6Cm1O|-d~5_e)q9g6zj+PtwKBF7*OAk8bT$Bby zm9L4DkQdI+Ep{2(&~i&qEg@2wVs<>CW@;BV9J>o^*{H*?L?)VL4qDCm4LnS(ycax! z;O#}eqsvP?MX~y%^Kfg#)tbiO%t=XR6M2d!It+Clk?B4*;R)lsQkvQqF+J|%MVgQM z&+fOQ_7qM)*Wt+2Hp&$oM(f=q0SvOOfiqjsB4lzOQs^Im9bTDImG;g zeJrL-yl*ZG=lda!Qsrulq8KsaqtaE*1qhUN`zhHff`cIOBej7$`@Z|wlqh!`kair< zk>L<@(#u!-iSJBzm(F9pw2;~ztb}+3N2~!O6M8&cQyAPa;w8$k5LsG5%$M}wRY7Yv zBv??Fhjae}`1T8m90iOS!W5c`k1Kzn)54&u2t8(C$p3j6yx7@Nj02Bg1h%oHI235to2=n^xs4aGQ%KP$A0n?84&b65QF2_-xeF1%qx&A2 z?4RAQ>^qkp6Q)yNY!j~2MMzk+HIZo30owM~6-9fSa2rYsrHF;q;BE)cU3Bkp;{TC46NG?L#y%~g9#Ny943wS7DXHLM?~Q1 zWIrfKZt2&h91n&v6*$E0xb)G9>eLrH)Y@4dusjgx1U6!11R{$`9`Ad5L~ZKkN!m`n zDQU(fNV6hyCaEWQUB*MD#u)XT#~2mNaowtfSejeztzg)mYb zg>F+g;YG$PreFu50RonwThi@8sTr*eSqQWZE{drL&=uQHR_Wcj&+vZ(L4h?}+|uOx z!HJi_4?Ve*M2U2tyC#+|t$HAmN~zUyRo|`4 zXy2tq{3&~q?j4W-k^|J)nf5+}4*NVk!Lzqa@Q6fJe>CxFn|MA3%{cT1d)xRt#Eyv; zop_=Aw?8+rf8j22;KGckNSa_B1&J`l>7>7@?&$EuT+J`EnYYG(gQ5I`3Vyuo1Wgrp zjfjp{^B1KZJ-wjUsEjQHE$ch0lcu+6v=uL*pi2l1&S;7nK*f{1PGQcuty?63 zZu;s7w(YTrn*wz6V{mRhfYSzjJ!-A{4JMBR{Na7cd%MmE204lUgX3Vk&IsX(o z(th(x5pz(ANqUHh)=tmY)U!!+$% z+$q71=2Np^I^QKiBb}1GB92Od(ezti>DjUZ(w}-!o$wg&{crk9X-MIT5@bJ zO<~UPWwH%yo5}pgMoNcm%spD5ffk#}P?HbfKsv~5Ac|_hYoDm)*caw8 zhPioc^zHE6{w^YS99AyRRf>R<#4DN8__p_O*-yyf6S_q+B%T+k9KT~+^hi;`G5KN| zzqXO(sE)z%JUY@`=ck>_^xi_2VWhc$b$H5JyrProp+C}njO2+vmEOMP6gEX-|_uBkC?{Loj%kHa|7BNMRJi)~QUc16o zd>9tbqlzaaq?_kxzAnoPqgP9q=8QcTs`ca5@qJUoPGV1KPZwCMLn8?}cWW7-xIDTG zlrz8M!lnsG-nSLIa%cjVEJV1(0wu*~#7vB+&pC~w5Wxf5jJ=v2 z1yuMxsPr_v-u|4o#5qhZ8|B{CrQsD*Zn}g=U$d#$9;hu&-q}G>Gq#&B71RTikEXNJ zn;zn1hMTKTN$%s@irkXMffp*(_WZb&Ll2oqROONkm8kM?%>ZPbf{~I*K2E-;p;26& z9As|Hg-*JZ9z~fm9rp4eMv8g%^vd^Urgt<@nl5|GUKW_bEqaZ`lBtIY46iPxCDw|a z;C0BX1^&U{$qDBP;No%jNGvytjBRR-5z+F2V$$nKR5+Ol4A<-0^~mDlUEx7p%5};!`k5l;Upg&aOg$1l1vZIEsx;{Olox=(n#q%5us2l;zFw;M*^Y_1s!=M z@;scxmnHbZj!3`^XiMepyqBIXUdjXnw2PaMmLU2#X$SHnxh2Lx`bPZpZ~C@r;9x)w!IH=(Y%(tD@%?*Y}&!p*gN- z5_m8q$1_o$0v*81~AF6+aI!Q4Mj-nGIxu7D3e*izuCV z9UO40VOR4fj4j8W&O-p!4l~Kg5~W)x+SwGL!O0WHUs>4WgP(u?<(DtMy+D!^Vj${T z11CHs$#r*KSgS;cSe?_C!E^Uu3al2wE@tHW)??cAu0v(&t@b=U`F1a2%F_*z7N+eU z^%6vB5QMAen09t|_&DbDa|tvHB-B_~L#TK&&AFUZ6sd<@`V5%ZmZ|_UaH%ok`@3BC z?w_B3{>>-9e){G0`$(CtLPLO2l!iAG56I5T($&e7t+KNbJw;g88j7qVqGkvXo=Po> zw#za==$9T@D4>QKuZgD_B29c7kSCdBviy%SA!epF?a|uH18vkr{CvT3TwCU-u{@jS zhD;;LcrU42^F9AO<*ZXa`|-mMzq{j#U3g-F#<)ZmMLOe(QaPPp^af@8{3b3Vr0VLF z>fS_hFW>2~{u3;FE*cgieez4g0~hrY1$^*S@4aQAr01Tya`TLCRF~chDdT7dq|Pj} zhmi+cIC&h~;q*p1^yvVanH`?sdF}nP&U*icSKj>XkMFMEM~ehcaU=&JNCt8dDGI(q zsymRO*5uij*1+z>)Rraav_+cj#=KcrDRu)}Lhcir4KuCA&gc-Y@4zNgckFk<&9|A9 zbRpUjCpmrALpIVPp4#)+nHQ)i(T zD5(ZIaFZ0x)w@hQoqsi2YrsQ!ZEq12yu{1Dh)wIqFL2dUkdd@8OwvpfTg^abD_1Ks zWfM<-6dId#nH4vo=%`s4DT!LHw#hrfF`Mb3Ln)DsJKP}U!PwwgZV!c0s?zjAEqea% z?|=0Di*J4X)*tWPc^;g&1!mE60InQ=#&HMU9UQf`x8CC@E*8bI#j=i-_8(i%rnRO{ z|32FB5^TYdRb&UY;@o=z^}mEeWGkv_Nb-}X{$`HDPE2E^3x-=d(=%S{NqMZ=J(_d@#N@9l$czWGG|;p;o^eRpSsPe4jz8gcPP)hTog zpffiV2uZ}Mju}w@zH8U?c-Pb2*&#rdk27+XRL!}4n7)iudfYlxGH4V&E7I;vK7yK$-X*ro;y@k@OOeG8 ze-CWYUGVgmUw--0d8$X%99Y|`XCxyWKZv$imLY7I!0VBW_|cZsWF2DCrqWvPPC1A4 zmXgfosUd@Ylgp-glm;FGRXm;6K^mVjnHSD~i4uc(P6J;J+w^tv5QbZ+k)9hVMroAV z^d}*R1~R6A6i#jCG1`RBe#=df+otbaUC^=PlEBH=x#; z(lbuJ@WZF0FS1;nZpP0j;7u_jrIhNV<9q~Md%2z54GV_`^xRtd?+#6LYqH6-==z2a zrUv((XA{S1iJkeyJ}6w==?2j)o~jF+6ia&6B;p=f-I?1kWk8XETV*(LvyZf5gvHaq zShFTguSnL6r^z#OyU&fQ$n>OqToyCtPTrM&rju(Zh_RM*Jy?+gn@3FT#4DPL7Z0U9 z`?q@Ft}(;(l7D!!npx`FUzbMV^ty=m`Z789=#`29*rq=hKTsF2i4BpK8c{2Y89e!+ zPYcr?Z;HS(Ruq|%WSnLt^W=$2&9HLPf9p;-+Rj7c+19eF5hfvqH3)lZUhLx?Kp9;u z(K}7`E{C@!-8^x2Cu9cHLzYIl`QI|A{2Y=tA~<-))S9h~ze9OC24n3iV@zviB%g9x zkMsPvR9Hrl9K&kY=8~aV0W|GIIPUOm`S_5fA<>y-bd4!FpIMhBPOQh>8?m5HgbFIt zz8TSRNtA#0@-l%r-QCZMB}VUqyLeJ`LZw?Si%Hk*T7?9aD!Z*x;Ey-aJ53F)&C6yx>MsGTbE=+J@C+ zkzuod(QTSX-Ofyv+KVke8vYK;lx9_!RlaZ4CpoDTvT0c z3RtHzw7HgC4Kn|AFxz2}M4fIK9&KX8lgvExkj_q><2)V0^)V_^T9g0u?X~P7&Pp^Z z0J(TAAFg(DMioCUGAS`ZEyFx{&^kDypzq2xyZ5j<$H{eqWOG@}rHjZ$i0$skcC+cB z%5vn@@EX&Bnw1GOAE73=8Usif=vHrYVrm1x*&QT`iancarqHaT)Z-}#dQBVy`YfO#L zj^CBj%@a+=QWAwH$H)__U}03~^u;vFA%2`5r>lFIU7f(e)KE=x8Dq8ZdgH`2y0w7f z)IK#Dk{uXvXxdoGnE=vh_s-Y|rQ!LNa9-o>tSZuyVqQn(vUXvkd2sSCz z1WR*rPf1Sq)+qbV^B`V78V!b)O_p07E8}pm6X0{mv zh?z`rdgcLrrehCZXCFD#8TK}zLW?okIiCJYp)2G}G~K+SroXbKhx;|p5UDefP5wMV zhG7*dWUL>?bYHEg%`y)wXhAo^5M<81zPoy^ciW+A>wiB=wmdz5)+?>P-yLaK^_m z%++}b_2wqXw;@}G@LDJ24FH1{4&MPO5pJ{`IEByuDyZRm;%bX`aVnFj$tEi7Hsa4TDCqu?^saH*{Bi?oVspu*WPYR)yqF zaT2SPSbl8ZUpL+exf$AkIZ&ozZR6~Uj51h&S@%bbZthV>H83Bw!OP(ZLA!46ha3g6 zgAAkwX=e%uLL4u#$-K?9xW2 za_Cjybe;+jEBp+PXL<`;yu3(%{ATaK$d9tfgg55NA`7H)9}ZK5+F|ul(m|q@<>shE z;9cm7o_mWn5*7P*;GxjUK$YMVCS2 zVbV;YFS(vi;nQU@n1O5f@=Zp3pV#D{dfM765j5DR-8rCyVEJlHnJZ+Z~i zC=TM~fUSmY1GnD;XLnRUR1+wNH4o#Mta+TdjS+BFwy)zWTT-SpvN~@u zPYcm~3Dhgzs3)p?lJIglLtt>UAa$!e5*>IB-5%oj3DZNYVQ(eXZT7qWg%|EWcehQ0 zwBlse?nsu;&O_m>l7QX>(WcxOY!D1Z26i*oxnNZ|e`E z?tA>4v(G*8+C8*JqnHn|Va}qHMsDAT=TS_}Q6`o#mg{GJk0^<=!*Ldy7G|Jy%wzy# z60N~s)h9TcaPnWaJKG?=I%iLUyJR{atHmxUk=P5L#h8|K<;m2i8?nH%jZ;m7>`_7| z4rjcq{}ad!_g;M29?KrP?X?G|ADb4k1QK{n?x+pKHXE&Dz;P2pXfkYWmrd3uzJ46q zgd&6YM7Y1Vkm>eNERg?8B{(*x%qePOR+N8q$vueWqMQdo)NQntIp-5AOLP#-onkY|OJarg(Ex5M0{Pk3D+UDW^Pg=`MNG(bCJY z2D3WVq*Sj4!1C^jh8C`k(xW-%bYreatW^+Tbq@`~b=ZmbJao!gS3Pm&(GTDC`rWrb z_4-{;UdJP%fgE1f9&&2c)UhVpa9NrnOvvf@Eyh6;!&c=O+VKN!`TPcA>F5k&Q_kJhZ;n3v zu$_I>56FD^fk}{05k3EjQ=$IpRIOy0jPQCQBzt}nx=qk=K4BvPz zbD6tT0VQ&CG868d5Y06QWA?=CA%p}72?+@#BqS^aLZMLBU`tp;fi$uRMXXY3YYQ!E z53OCSOI>lPyLI39<+$&jqrUI=%@UXY-ubtg+Vc2*%m2^ZVdajV6-|#nuzmBJ-tfjZ zzwK>DkG}9!L-hRmYp=We?zL;z-hJ=2U1zqvD9-!`%Oo?MFoma?hE!7~4lnb}DAd5# z=?Zv`#Fa6>A+dErB}#v7$wL?BYWP6PkssWN2`^3nKHs`utR1%yP;igem#3`4GqF&_ zlx2>f{qMw5fcZF!bc0x^$%J3x?nF8rw{0tuAIi<{>g;T-IR=93Zohr|hP&SUhPNGj z+uIJl<*o-FSaIxf*_x<1);2OZxqoo|t|RxZotm0DvG#S>&W>)&0zb$&ozlc9$$=S% zVAF0)S2G7^3^5a|b<(k2!x)!R_w`)bGoC6#8T&0;d3@aSVo?X1CthIJ{$Bq^2nn3W5 z?He|1*nHO;-+b2_-}0ur-n4m3Pj5|E%re?epFTgafB)%iLl3q0^&PKUylSNX!o4TH zd3|c_y%+lTx6MfdAD~gBKqm=3&|;VdTZAK^P7B;1b@zOynKs#Q$O+|1gsM!X$FZy` zeW=sZO%`FLl@18ok3+uybY17Pwa?tm%T6wP>m55*cSVXgt3Va1=rP#S(7kq951NJ@ zj?4?q>RMFR+*mu@BLJK3xc!bhw#(=Crgcr*Z^zt*b-i1L7j>=4HeWn6G`W9b|Kx#f z+d#2n)vA_5hq|q9D_s2eJv$%SG=BEcDe&C4Yjj%&bqQXQn#R>PrUBSYB~6APCz+;J zOXsubBu6Jn_LJhYz%GLRw{l3X^mA%p_21aoNGl1sTb5LeT|26Q}(WQkar?dI3pSm!L~t z%2Yx6$4dYc#jApKq;?da$Mi*R%R1e(_qDG*`JpYVyVfjP-IeR8Ns9t)I}!=y&Mqh} zE32ug9q!$+W6O#yO%aMIEt2jest zN>rL-##7$1k{EHRpK~(N5Ar4dxlMgkfgOzfjbm^BNI`lv<;r-&A=it-FIWljJcJfS z)Zt19hbPw1PW+vu=k9DOiy8LTE|}%4`E!elX~Z?dJ9>Inpg@O!w{8mtrvR{~p}e!Y zE+@A#91e%_Dmxn%FIs)7V!_r}EHQL?^8DcF;ONA}#QtsVzz8iaITW=F+W~~MCO=3D zgraGp;$#Acx%$rAmMuHjI{41RL&sP3-2!%SnNn!zP71up6WVit(o8uf1|m%jOb$>h zS^5MmN!2GIdU2ijQ28dWEETTMQ>1KVk5lAmE?H$_CrdB7(cP~({mQK9)~?l!HMO-XPYw5;8a~zAyK;F=b46!$K~8QcFR!q> zyCs!MhppJ`#@hL1t;37LhB@Q>_@2Q%{fGO{oEe84pWY-CBb8yxc1!|H2tUx1n;E1e zB!NjF31#!t$=eRzdhVV@gI87!Y#N$j#vSTWeI~AxKx1g2!5oQc%^6e~x=xdqr3JAb z%5#Rl*{KA9PaP?1<*6muYuB!p7k%kZfBN0GKie*TRJ2Nfb)SQme8U}EAi2xwXa5 z+!#E(XZ`y74)^zu!Z$vxHhrkuj+%}E4$z@V@p)E_z7|djLmg-p+PU#)?WLU?cUo-& z$NLTp!ICA!o3wiJoa1n0GNwc6aH0IBktZRVD^>;Tn2zHwIKkJochBI_NS8$;QE*Eg z38z9N*`Q?oz4Qw|#t#NCshJVY`}r@Fp8U{;-qnkW7p<=84SAa#=GF&p+q-P%(I;vP zmbC3Zv;Oel`H`37tqe1HFC4dK7sf3swr1(_MO~|Vk99?itk;~U6c4Xo-{0RqKE7Wt z9zO)5&RB-&qebXhnEplY2?=m|&Nfcfy=Coj!T&3|&^rI|T(o5m+z1yHbb z=JE~*(vRZqCFKla)NC?MUc~E&Mm^hifYX(x8h%K)ktREVPJ^e4Wo^!30CW0XwvNx0 ze&K7M{_{`TrfqRNS6X`VElm|$?V>ciWX13r2|A&Qo~8|Vy?e*8k5!c~{!-u52e!4F z(H7E3C!DP%mpUtI9zNBT7en|~w^8I4=oB56$zBM(JL zBi6|x8KFaJIXgFgvOYf*e|Y23XsqP9_A{q>j#4y1FlD0EFdpY53cG3YgNJAg<*ilq_0@~(>MEDO@zp(Y>2k&8V^36cAMDkQ51xaFrqc}a3I3pFuP@*;pAIMF;9CPp9dr!kG zC!Lyq^4T?s!uq-c{jcQpCVc@S4_m>D#W@9-W+z2`YFeMcDC4?J;zid;iCPigy$9Vj z3VA-0h{@2+EvG+<l4efM*PadS@I&5g%QGu(W2bZ`cYn-QHC zqw64hXG~9F2%yMZ!3wOCh8Ka78O+U5LvKkr%G1w3r34L@=C2ZXSRx5L1*^3#hRAM) zSoqk}U;WN^9?}F;6pC2%hUOWAAAaXMKYaG^jni#rtn2bIWPv{z;X`4D=`1o+j=Dsb%*TTjvJAp=m?qgOeRi-f$*at-b`munHV{A z5h7BiP_XyuH;IBk6s*#@36kYY(-WwezO05ow0#VlLqwSX-^$X`Wm__XAAXd(VY?0w zPPQj2OBO9&vo&gFwVl3kWzXQ5!+QqDClFrR+gHIa90EYx@dlmb^F zdSS;5xS9$p&7L|>(V7-s#}NHTnVk9WxZQ4gq?kqn9Rbi%l z|>J~UP zz6(?T(O9jS|NQ4;TtQHmuU7?k(78i|?qjb#c~|b>z7ya4=JmDr9@(|NfB&|=LpcM{ zzK-befq|T>IrR+ip+d8WJDRY&TLcb_DH%9QPWkv~#QITsYT+7ZT&SwiV1=Vnr5q`= zv~)DuFTeG+Ctjb?6SMa2y=#IT zkra45G`I)-kbf6A$lK{N`DLG~r^Gmco(MG9b9^j_2`d_IJ+-`ic33xp6+mLFBWqziZJU@BlFXr`C_VL%m`p3)v^q(t zM0bQu87fZq1m?Y-%sUQzVcyY`Z(p3BQe@#LH}=}><}P1#_)0u!C{5-?EfBi_6?5pA zhyMPB(${|F*FXElkH7Zb&;R7mx86(#DP zdtmCpjS07|E4{U;`|zXOUc7(bHRyA6Vx&DKk_YTeqZGF7LDIHzvC_2GdGdIqmPTKdVD zoGV#8wC8k^IJsI+0;%CR0+&4PFMa{b|TsDP15WRX>m~q+*q!hgBXKPH(*Jj_}|?FQ5<)?mb%9 zjh-QApD2C%Rw6W_<#pp{UMex&t%y`qY(R!TEhWz%f8Y~;`RgA)@tL1|C+%hNYz>5Y z+fcg?afQh;Er9zS$v~$&&i~Y>k`0u~9?RcO-jy@)PTZg&PA+jqNB6fyD!Mwd9O1X9 zwxK&pj6uQbI~C9B7`tT#EE`rQ33vci{iiEAKfHrIYT#xh@^(E)lJum5N$^y8s&`y> z>$9gq8N+j}m(T5FK*AtaRoQ=ICg_PqGcD97FJW<_KLyTG`OEx&^@Cr2{PW*Qq@9ex z;0~6V6vb>P-_U=)K_O5lTiueI{#zhSvG9yal6%DX1~QE&X8!ct!G@u;NAA6M-!|M`T>8(^6PPD6zXeg5VP zuPyz;H{SdGAAsjyKJn+Tb^xCwpI%%y*mes~b)WibP1LVqhodYne+M(&+0>eqw^@vy z+P(}F@yxo?Wj)EkUDu$_`})s7o&Ejm*H0MPsd$lSvHn;?w}IBnc?6fBOWSay%wp#l zpnwT-U@MpTCY_+$R6psU()qvzu*gvRhR@Wnn{K`5(tx3t@ND$Sji;i@-KekMw&ykM zDQxkvB+Bm>|MZow{OoI=`Tk%2`j-j6u~nGIQ@Qj#n(+qv_$ z7v@J*a{?`OwDf^621FNauHV0BhL9ADN%G+msKs=a{O*T{?4SAgCqDk^Pa_~bjq{K% zK{_oWPdf#+@Dd@7JG&)M@&k~zTA)(ka?M>~>b;;qo-ps zCdSXK-*w^0g&SLQ1zoyq`QmPyq$p7_Yym3BIAg|lx9`S`88v|!$an=B0`y}~kwZW{ z8OV=e>0(-x9QlL*t!wAiT@;VFs?7DYVBN`y&=%C3x* zBO1R@q6*Uknh0OKZQ03#tq+|!D?D*mXY|baYw)IfBC}+pqO7sLI|Y3e2~(AxpJpO8 zGVvJpSVu?47<^&WGhFot6eob2GGY3Tlv>8umu+pEi}+4Ys27rb9!FH zR3(kJgZS~s~K(P(u10B+bG7+sJ1-6uZ0 zyTpJ1aSx~^B_W78eKO(Gr0l>`I3#Zw>+2ZHGNVzOV-JvpL1M4W5Jg)G^N8ySI$^4B@u8dh+m)8{>JtFxwd*A!zFMszt zeRDDrj55N|fqO6<)Ge8e4W5Ll1-=pt6)r)FBH3lDD0#nJhsrT1{*y7k*}FViS(Wpi z2bT0B9F1Z(7<(S!mZ3BEPF?@tjjf@gIPAT}5Q0=_TEh}OqpA?N@I{u~F_zdphOtdz zT8Ks*r}{?$#R_P7umo~s>IvOyMh{4}@3<8kA#TW4+)nJl#Rgj=>PbtlkDsdRg#9xDQR+%k*FD5flyV+?P{`FG5NmEG`!c zK*j0(g5~(dOKoO35|;;`7(qZ9J+SFZtFmkp!fiWy_czxACD%IW)=n5asI;fZ+>)7ZbfT# zGD;{)E+G`XG>F{DRYSCsTsXFScQQeh_`B|mEo$Xbh?8F>sQVuV`Eo+DNc0VJ$DPaG zebwSMdT65gaOuIVT#2KwsVnd3AHn~YIt*nWwNV3|L;g11sVv^9%oO2b+=5Taz&8Xd z*Y_cD@lKwC6zG7M1R2_=M;|Xu5|Yf5f&m5hw~w@Ks|&~Z*i7_&`;S~W^U#tpNAeu` zjliD!uU~&>Rz-C(?YT?Zx^mTnz)*1t9e~2?J+NEC&=f_m<+U^~jq+@@fFCP0Y;Q`~ zk}3K|_R(c;Z;1JNBP@0rN}ugAv@onk>lcrlc{NYiI!RtpT#6x@lueLOq>2BU6ar8S zhE9fsJfq;rtlbYs`f@I>c=0E2pI!+V7O}%ZmBxR2Gi!2j2=mnAV|DwEoY{o`0G@Vp zq8INv@y)vjw`Mzj2%;cGnu-`6K=&rmRS7zC7S0^YqJpC&nGTlN!Yg2E5U2P%B6q3z zSN1@jxt7Wf+(^@ga_jb&|e9Pp2}r?OQ&FsVK(MVGRI1K*GPM-42bt z+vcf|z9U5g&u$KMRT(^y#DRjG!HVRxxGb|!FQnC?_nRjN#s_j4A(`AW|)U6^Vs*cf>Ra{l75=*A>FF=7GrP)J9gb;x{dO)8a7k>Wp`#g@6>HsS7;RISotBoKLWuGRfQ)v?$E;QE2>};h_c7 zz==+G3-zfni1rPTSrGgjmKM(^+6 zM0F}qWfI?gcr7Fv%S9gqT+~7FEY)4-pu%ArEw{uw5?Lnf%-5c_{-qqKza(kvOJ79! z_7Y7dQ`WjWmpxn=B{exbuy*t#2uLP;WYm*rb#-6=NF3l=3~$cH7pr)i$~5`0Q84S^ zpw{h-ox%h%`Vh?APmcUAUsdWYGQB4=*#WQu)ji6Mc)*goYF5>SIqFKXG3N z23f()AM}j+jw9c^zVDT}w&+qlp}+a2jUSkOQn=@^5IO!W@i>9TIqP^pIad4icyUAh zPk;L15Aka7KDngx;IgChJqz|Ovspb{x-*;B%YKw}qE&SV_Owxdo&Yry&|Xxl6cm{; z80EE4qJ`a=?vQM@!-Z0ZF!vx~=X@gAFxFN?>92(JmqEnGVtnqg$;mpyg=;roE;;_- z)P3!uK3?NRAiJ#U^@EV;VSA144$*_UOCWCvu1~tb8>&3bBDASYGTzaVg~gL$K^Y=O ze$}nTIS#b<+~-QMA@nc28vNQ0K^LqSatbvkF*3LvTnGl6Zni_rFn;ZH-96HJ~fU1C1n7jlnU8flM zyFSu3J`h2d=Z)6duK0`JH+7*63!Zcq5y^EJM4MY*-_o{g>iWL(Ypev^r%IEO14lO% za?Lr3Sy0s>StWPhvb!Tb#|hi6aD%H2ku?1tz;Xk)^k-jt@0UOS)u$oEii3Az8=3gj z;R$(*xa?UQFJ2Bu#h~4i%4xvekA$ruUqceQHnLJxZ4`$qR34^~w5=9Hcv6@z(u|WV zgFODfi?U?xnluUd<)=@YgG=Ud0f{xEU3P3~;w9$$*6tfhgCQJW;GR)R4sFSTLO9x*Zlwb7kx}VO?paUI7 z?D2Q(yu^(V3C%t@7Bl?pxt?e+N29l^tDo+F4YSkkZX5KVJ^Y)y1AFIXI-*n3T? zx_yb70XtmYa5c$&4NCMiB{44!iRII_H8=Z(GBmtkV36AVnITWoq#W5OPYL8~{PkqkLgthTS6FJ18|Vxr ziSRS;-v4x+q2!F_-WsFb#M0)Gp%bIB^)Bf<@UV%rHiWvx%q{c2wbvg#zb58wsHb%w zI9P~hY<4Imol*0bqzUPhNurjSR@Z0hRoXxF#UK9b7oYmfr$2+cyYb<--1*7b83jRF zDmYv%Eru3iXVmmEC zN+?r+a|`oI&42WVy>Wg3_Wd6jnt0CAu~XLDYR*{bfb4UXC;BlZEEB}V-SxcYssT&X zn25)=-FtoQhYj_j1}76PO%9U&5-9EU46RX8c&#CSvu*&Xz+t63$UM7>Zw5!f_S)+= zzvC^f5uQ~()7jx0+PJrdt*1m0W4OM4XwNJ8k6>V7#&*%_KNF?%;3>jHSFIgEDKtYv zJC34Yt2pQc>q;6nbm}@xaAm9pK}MzDzQ1GQxEiXbod&Tq$6HT%{K@aCO0g( zzt(5>d}!z6*}k@1({*bU>zQ*sKn0M3OAgbHHP=lH&UE2JdhYdvs8;VzK$a-vNt{v5 zKLsZa;p%V3se#8mqCr3+PXzHSid7cs7nck!32DymboQ3ThmsH@qxoY~yT&jFo_?zC z%xfqgNI41*%8Nd9?fUf(zqrd5XlXaGG`N&>*|HU+$~lULj*C{_l1|DquhDQuY|f#v z%GWkJuw(hzzP@DfUGI2XL&Q>1dbOZ)ERzoKBc%^SGGM04GhJl4%PR*bZUHLHcV~1C z#iQzx<*ZZ?DC&?>)H+N1fvKa?6}tA6BZS8@i0%|Cm_GMR)s0O#MS>HnqB671vEz#H zJyX}(Ri43ZvrubQWk&s=oUjg!-v7;yUdfILJys-bJJ7Ep)Jjd6ut^j>#cE^Uxg`aV zVaz&#O6e%mvPZn`;5*)(9roh4L$J!tu+;JKp$5+{@}qhTS2v99Ijw6ZTM%k$#GYbA zV6-4_OE`y>wdhmUoND4iE@-s}gh3QSUy-J1?$BZ7GmnfvjnJ;@+|it9Gm~lfL580f z_U&tDjL~SL&s&Eo$dglI-8feh!b?PC==9 ztvb&r!aC2|Bx_i9NPMTK&tT_WO`Juvs8VI97SbFNDVyjsPfZ?p&L~RKMV9q8x3neQ z6**ud0o|5B*Woy=79VP^uWS*~5+18`suJ1#2d~VVB{0Ne%9m#E?IkgDL@-s%t{)^` z%FIl*BoVzJQcGy^>!OV`9sJM}IYQ1CAe0FY`BK6~>5}}f?M9^N_cAAtWXP{v@&#S8ljNo zfM6k$mP8BhI7A|_Y)S?-dE3oz{?ME1^OU8x3<62Vn?VWRJa;NAV$Con;mZ#=6|~CM zT~vxiZdz#hzGl7CkZ2hC41UnBhwCSG6W-S-n*gk2=#22N-=E$z29M{(&7x%5EUsB( zwj~_zxmNIdY-H_3TIGsHA268Jyf|c$BDmQOXQdZDaR2q!?b*6jaw1f=zhpco$AofpD>px)w+wdSHAzac z`^d%TM>l25Y9(IW+uDJjM#bICoVt9zZ|xbtNotJNjA(8{d1bdI@U|pCs5y#u+;?K? z!pvC_m^r?THLkxD^sYKd&tgt4M1!>-GeRmfgFjy$P1lOdZtNM}@}`4F7l$=Rq^Mbx zhL=sEyr=Z-F`ByX&+t-|0*l7xqPVeqCn7Qat~(+c2G zr+mT2z%!S|H|6NVTE#uJ;kKj$vUH`%B09){A5HZq-P^gs6jeb(`JqA&u;a)9%^@cU z?Z5Xrw((}$vdp#xp(aVnL1Kxg*r=&p2@?VpB+ZtV?!3zGP%ILfTf5;c_uO;qoo_o8 zvRq3iX4{1s7PCifSefOe_pFg=pIexk42O+S)q?TynZ6teT?-h#xCvun%4ZF6kzW|||<9T;Dnx-U8X=^{`q zXl=;YI-|l%GugD|Zg}+U3G6hNScVqIUv0bERG8uzy#+YT%!@N1W<@hrer0$dvY_Jj z51qts8*hDJX-tWOp(iX(NTYho-n(}-{H{fwGOvYhqoiup;3QnA;wD5DV#ab^hvioI z$E`5+sYQ*OUw?yBJY*8Jn7sV@CkY!TN>Vnl^Y;FajO>5Ti1Qhk;^DHy&_Y9~kuPZS zX}$;V-bHLGPBquiXI;qJ zP=9N&A6gjP#cu z?(sLY%L^@~97fG9d3x(1`cLl>IYjs11u`Iso;(ID@5oG}kmqC1LmwmCe~ zL1Ra<#9ANbcgzQmAfZorj#6%u&o8gxPdFFtZ((}2lA z!Hx>EZ43aFTRO$yE@9|B>mP07v>{&+XmQn2qtI}}ked-{N|dqX)?qj{xOQsa`I3n3 zP*Z+UA%a+n3~jPRDa;oNI7B&0d4AL5r{Zm6Si}!)Ys-p;1DJZPRFt8%^?0a(U0rDM zUn-z&w$}VAb8s@LdZZLJLozs&1ASMc`2Q(HcxvR{?$JU`G9BiauyxsSPm4q`K=dvG zPxK=f-!t(Loo51x(#qJY6W{}eN&P8#I;Hv1V|(r&kt8#C7^b)ikAF(nPT7VEQ=Y1F zRE>N}t?%0PwR`L?o0Q3rG*O#MS8_*E)Ch%sp&-(OiaB-9tvfFrN{-=`EaO+&B(Mhy z8b2}eqf73_y%iBLUlK$|J&aI-3tjxsV4GvH>)E;2_YXrm8jo~i1L{-}f?F0ov~+0E zb)nv`bb+=AJd?4{z3}Rh=NyW4)^JU%y~B2r%sfd|pPdwdk4)S@fhJAg=Te0}^KJUZ zbjqgL>&8Y3+;oqD_#%tJ8678iyzNQi{Ete+-=*d z4z*7Xp6TCn{>4#PeArFsHS-MXg<8U~i|3BTlnqh@HnxxyPFAeEVE>I7mYlY(BooKZtsdB8QwXd@g^}1?V-jn{jMi>?;o(37|mW;VT~k^_5=@M zve4uW^Z89{M-A1YcR#4JtUhCro{$7Y?Mh#*pGS^y4PMk(<7YT_VFu?5mAb`##v(!r z3IY}L)N8|?kH6#O-g`D*8W2+p}343PdP<1iwQH6FQIpi#N{! zJ_W4<9s6OpeTqtXY#iPyAxQ zg8q)HC^C|O6lVVDxmur_T73DY(bvRfZ236-z^?ILyUG)V08y#A6R7wAAQZOxJ_)gU zdQ&Vj>qb|F_)ff8!^a{+yFo#v35rHqUb3O_+<0*9`Z!ISV$}FkR#n|?$%4oUmf|#B z^3?4|X{>O^g{c#}vesC(#p^VVgQq${%xVkRdc8s9v9cXo*4^GT{IQ1R%j*xd58+i- z3!^!m&1Gd>AvMcjIb$Qo(fCqc`s^a`^--btX%Q}ol`n1|Y_r%0Pi1Ve){Ff*5=OoR zA{+@V*WJ z!@`<4d6ZQx<@1vy%p#4$onAL5&)BHdszdwlpL+C0WERIdi^^N$0WjdQ$@kaLu|>6b zanq%SoWjbS#Z~23H}$QG9y(N+Q@*lyxN*^}5aGE13_nz(&fd7UOj1bB5-jEeH;Mm{ z*1G-Uub={XSYC&Tt^2iHd*=oS^CT%WXWD%lR53`VAV}K0=o3LGi3Z_4_T>9U9;$Po z!&$w@7C@awlKFTlEk6dA8x?8Zv*7T-M=$ho2h+yDW~7Hc7q>|KP|vB9F{btFraA9u zXlM;{wf+M5!cNm{(kb_YT!mU3FS4E3#l|bzOJgszc#$ zBv#$rxMRhR#zk{uzT?y2<5~1G=T2F`sRI&Kn3}SqDrh)9dOj}949^Ylq6oV}R*8nZ zClX%aE-{592qt0O+|*zq@6c%yWYPrBIrjVCKQehWip(>#V|c;PSeUPYfzJeOc`n${ zJ3}^~-gO?^cdgw>rG&Na5p`BoOM0Vu5aw9O(ND=OMo~bsVZzxXue<)y8*8>|EY|pg zKt!M!jQLfXc4Tg2@9?q4ss$+%)1WY`x}-`hfp~&(=*WsYI~Jt!<4CjYaLaz=U;+F5T^46yfy9=>3!Oh`B{IngF-DqOK(j ze@Vk8NCRpWropBpEE+>E>?}Ba@6<>4#6pm52G<7rxx@yV7SPRJUAuDm^0ERenX*(= zQ0@GZP)ow_!gZ*)wWsNhrXCQD(2CXVx%OOj?zR#N&Shz7*QJFMb~vYDVE=f6r^sBU z6=}p@9_1I3C+!wDy4$xm^)z;cEY1o|Wq~cb zGIfIy)vQ)lApvTCe);k7^XaH7Nj8Bnb%91p0~C zGf$25J?Er=v!|eKEDGPqyM72Zm`gkIv#}J#34|D>7C(PtRPm%>%Ft(i8GbG!*bwDq z`J=lVno{~56sCvZ2|`BB$UfY!+d9kA{E$>Nji;ZBb*|j8WBKx>hgwnqBt`8xRFYko zCDyKXYDMO@?pU||j&(aKx?%w}UU2BibEjfHc^)c2ZFQo4@utx>(?1*F)C(!qs62(B zHjWsC14GnIH5uJeAXcF%?{tdCZoY7OTMpR8R_@5fhJ(d?(~&!osf+}9umMv$170bp zvhu;HJ(!mS)5-u*VSPhMCLhpD!KmA`kSP%bdq$SKkQigiy9-J1#5i1DRp32T;I0>G@(3*aGBV@iVxE5M zD`)K5)CUje=R`I9^B|v+nw2YS8WvZ!q%mU&58pY)s&nQo)Qr+)NB$+tSKPi~d(&`P zj%rk~yr=YNY?=wX9yH%osUn-(I52rW?%R4asCWotu8$apQuLo(uqXIVJiwLgJqfl3jg@94$K2C%pE|YaEd(YI=J73uq$=85DP_rwBYnL}x<+LO< zGncULtzm@cEhYnn&xzBy)x+zyZ@**3%0;sj2FqpKLjsTgSAyBwe_G! zLSQJ_yKE8D_yJcI>H70%F?RqKkvfm;t)EyGGgA30SLTk4$xoS5;wn+%w0iI~8Eo{% zB=d6{&wO_{vY|_ff@fKIfj$mo$wU08En8Kp`FWTCZN{ODCWn~U?VjwRBe)q7$>DX( zrI8}l)?U7xlb^=OE$ZEDu5jQAa&m7Wb}1GV6rqZc4V3pbZP;-8ikkT$57q3AdsnmN z1p!I<$JD$zjMZ0njK8|jBN=d&f2t6pkOm@gm^e@)S3*aFyS!}7Njv!RQ*iN#)0=WK zPG0TG(5u^JLF4`&0KR}M3D(q`jauP~r!MSkcbGSF&0|15tE<2hXq6t-sd>47OG0cP zl?N$;uA-W^;LQC~M^0}I@z0UHx)$$Gt}4iv4S35^GsI!BrAG4>&7C#J@eG})6ad|5 z#g26wHs7(LwJR?o6Zr^85v4?YL9S#)B9_v`iBMI+(2bdTLLI2~T`x+W%#8RqF9}rd zC3^`ZnlNvD_oc&Ea-g4k^M#T293z!?tY?1P3^NKt*Nu0y5NaV#0n}_+_8D{?Y(fLV38kv7q;wN z)mZ@~N#&)lrwTqcFgY2YCSSb>)U_MpopK-*Yv=Y5Ut&+|#*xM+C4F(9_WN(PZyP8y zt(uC>lQ8jKjn=QWpOe<_?XGE^pv9^Q=t z%-CMUrU#{+BUPdmg)O!==1DD*J$^rKDHqp*W@~*;61Xfu6`>#n83nGHc4u{NDv1-2 zpRBZ%m7BMR%4*ha*s%TfQ=M}$lmB4pQPr4R5ff4Vmy7JIS~7atMu!*ZmWYov!uVdq zLVpQ;@`kW!QkEElW14YWV50ZFCkM`dDUvFzS(%Ga1Z`X^gjgAMKo6iYKurna3wquIK`K`__0Fe%%8yt%OD;^UJsZV~ zs%IrLE>EfKs9JpWq&l|wfUQRRqij>XUx72pd z%Gr2wwVrVSDbIjaMB7kB-L@-GX#Ag=kYUsy&J5HF;lZHa zbKta`xXl^(gMw zsi!O~Wc2nf3KIn<3ajgLqCxNgamdOWdDF3ynibpM{O0W|ZkE0f@~87XO8kE#ke^U1 zu5TF~F=Woi=}DOWGa*~WOpKCrn!H!R6((S!#=tOB`8VI+HgwgtYIan&wYS*tu{M+m z+WI5gl%dbM0;9pg_+x;ptQp_+=mnF^3Q+(kx4CMrg=v^JW}!b$BHpm38ZibE{Yqd* z>eu#hnG=r03@Zv|j8Dlt-)@MDMz5 z=WE{{qX<16PS>3~Qn0ax`u2$#(Ew#|0eQm8xqhd)>s`onT0CZ4pO104OZ39ctJ|)I z3u}7H+S;Sw2np(j9Fuvbp0Xiq>CQS(GjLO`)a6qjKGJ6!lx896%_=L;AuOZN+qAVo z%*wZg87l5)>Q~Ly%15C}LyKxw)~;+=I*@Du_gKzD`=&lRIC~a_%r%p1t8QblEvc`L zEfhSIu`e($-uSv(P<`t54F^k~?8?cG=|!D)ro9EKGx<}S43MIAFwV!2 zF({e=5XL2>KaBIxBZT_c=wf6wPXtM!5J*e-Ny?MNuGb`?)~|NHhQv| zIk$6hjxJUtmI!m2HY@m8OlUB|Znwq|vYK7nd#v_y{VZz^OnX{R7^>@Ed*Yq1`Xd`>dNEX?rL;zj;gJSevP@d@v<#hd5!y{Bn7TnjX>uI2$}I z|JM%%pIti|VTcAH5X-KD|J3ACq7+Z~o8T&0ZS&Dp7IQ0Vda=csQ<$=17{%7m#zVUfRl?TyP-Nesj*#=2=VDOHTa;#QH7`M>T8=ezj1TZ zjHzMVE0<{5JARN?!ceQu;OR!xOSDd&^ zuSR?~lMa`bjy@tI*`)l6QnuXfOM9yh91n@HfAY2ET&ra^rZ(4RU5ZNV^5wthHG*vcHHsi zH*8pUta^a}3`_0vYo*Kb@)#Vj*9Dzi`T>%|3%UjS~ zpPRDsf|&q}k_uSx1h(w9qKOqOU$NnhZ`iz|u{aci%=N66pc^h}%|3lPtuw6rcw{F{ z^5m+W4%0zGBzG*+cB<~l7ly{JuHMl+)}9PwSI)wFPQLKZkAMH;pZ>|yb1XuO;=p3v zka&bD9~3d5(g2ex4L`N(NFRXZhdEO?zq~3JCQTBuDMukPn*Zm91_;NBvHgCzu{<~G z7yzH=<>K%L^UwfSO!dhmDK|FG`*mAGdD9gbYF?a^ic+2d204^w5Mvbid$>XpDvRJo z-*(sSD=wFW6cy7X@}JJNx_rs`k*JSTc}i9!>vnE#I2l`VCdts9O#a(%n(f)GTWWR> zMZ+1Un{|Kt*3Uon$M1joGkEO*c-l6Nn&Lz>lI1rEvLHdqhgT%k_pIO7P7NYq0@C^A z<+*CMxR4Fzi9{$`>}X1oQ!#w3wxPVhl1vqnls~ijPwmcgBeila?!W@{Y`SFn@-MWy z{;FdHj?ycVVe;dW$k*N@r8kL>!Fs{c;ie65K=RZ&+mo+iWvy*qsH%F?M4J_sdHu$~ z6S|bYx+mobO9Xai^bX+VAAPoRq_TCz%EVAh7{urgzxccFe){8|{@$0r+84EH+y*2H zQD$h~QBf=u%6^#k&iU|Te)r8*kh zEKN;U(v&uKu?1~QODm!+OQBT2g+&k-z*t~0pcj6SFj&gl5yvyZ;} zYnY5{!W(%8KO_t(Q%TEmMb4>>}kG^NkHTT!$hu zzGa>BW{!U>om=e&fn;CTz8rs;^*{;01K42uuKYfl24%F1tdRTQHv9 zI=gp)8~BdJK@2HtQ)3|1+BA0TJRh1ElnVAP_jh3H6W_4PxCE@VKw49Y{O8PFKRoep z$JR{M4V6BoM{-}$kH7L;B!2s`vPLeHky@=J<=_Zea-mJl2~F_AsULoxy9YzC^(Y2% z&80YI_@Pfc2-f%lvw%TL6tss18rQY9B(2&gw>1=oij&}C()6+zs8>za8rgnm?&y+X zh*<}~Gq*xhrA5kGl$z&AwatLUmJ*G$_RT)B@bvh)f3qtAp$NJ{hu zPjEv_*O)D2qY>;V6Pt9F=h7vY-V^dn zunZ_va#NA^7S}w{85Pca(tpBn>i0xJnYeWZ4X{NWO@8tD4R>}-ZM}P}%2z{dQXtYb zC>2cIWhVm^aV5yNg1c%oV2DyEpc~MA_26rBJ8HyJvLsXK5v3HvKQ@$Yz~Ia#vF&lP zC+#9}2$lg77^w3_Y+-~A>X0^1ff?^=$G0CkyS;KaCO~*?`j#3`kl`>v#_0R>MP6(U zE2-CRdSPQQrbaD9ShG*_H`sJWAm&$u5LP4^+1=jV*(ZW1X1Si{Oq*(s~)_) zBWlmQ(B0KDzBSN!rBA-qfbj?soLe0=FmnVWUWpWrL|7XjNv_g~6l^6^k8#WGy|e2p z6c~6wpBCS_gnMe!$7gxdF^q&W-`bOotXLT!FkoY{>0u>BPgKf7A{G6B#+kYaNc33J zk@ua>M6y@mrxJt|!^7Y(!ZLukLi%o_f>df~;#RY5dl8uWGQ*Zq*4d^RY5D5)i7Lul z&seZ>CP`q5fDW1vD4tm8JUFvzEIppD>{=Dz@?3ZV6`dwMrkXkyOkhZkEa1b%BU=pG zK&j=mb1zmvfoj^l&1sk3as>pZ8Dtb}O_YwbBH?UpaIuRdsgVvV3lF0)Zo#ssF%c|5 z#ot&zI(qcNVN3K`%vR`m!$`?_q1uBZKkA_k&!&RJMjdC(38(!?+tUk=POolH;FPg! zs|+yrturxk1sW#4Q;}Cnip0M`u>xfEgZS^>TpVj?TZhQ*573`RsYzn2fG3r-5-O~f zwT

  • trW>*#r{^NZVRi75~))rj*#?dSTOtGL40PORU$bvS6xFv2{hxDWtz#p9Lc2H zR5m0%^Mi01=pQhyUd0nH;qcfJ;s`6Iu)Ft~M7TkrAhx9l+HTc>Be-KF#54Qd6{xX2 zK+b#w5s78BQJYoEs+tc+LA2%i^7(bR({|ppa(sau>6xAForjAdE$D&K8Mk;xD+VWj zheSAIC)=Vx9^PZ|LB+N!_O%F^RGKSithyp?Ry=?9vvk}_)VLfpT7v5u=!xn{(zI^D zLekpRL-fuYuu$-W*li(RzdJrYIb@Skkwa`F1Gi~p3Gq(-{XHQLv9t!(7l^)1$Lkh5OG;S-{DWTXr9%o_0cW1Xm%kPSjAsPe@Q+p)+AvToFvvu6`Rq6HqRlELSu9GpG*oqH4Y1UDePpDkYoy1J8jl}; z{dK*~wh-CdhgRENtiA_5DT1Czgs?quEN9+AD~3`6s^^1q;etGTnowkB0(H{bYQWLXnf7GGuIdW2R;?{UChXAwnk~ydsY-}tOC;E%l7y-c7P%G)wL@eHB6DQ1nGR1+ zdo>iZUR4so7+W&-HF3as*2P}ie-&2GuXF1J_SBsFc_JbXk7|T7;_KPonQ#5rXD4b!VHw7(<{3yMlOs&$Q27UASLIQ4!3LX;m zUHky@XaZ0P1Y*%>Xd)Uk!X%QyiwG(=LMDMgAQ%jVf>EQB>f`3k(NVkVV4%THb(d*M2#atpen0wzhzgQ2 z=3|^Dstq-hOQr$vFrv7967Hg@NNgw&j6x)4EP|900nn&GH5U?TtRzAyDaIrd!su37 zgmHUtK2X?%{bd|sk-$)Z=B;4RfCPC!gsJZ0QLqRnMEB$KgHjP6Sa^&e?fL2jMoH&hYvz(a|Y41a$m5hxJKMtNuvJ0+|^ zlz9LWfr(3G=;D=*STNXui~zhl9T>0u@4%$G2!-qvk!}o`P$Vo;3l|4kTO!pt#0Lv2aeK*|O+cVrV{N1^8_)PYXg~RkTwm1WRzOy{jzI^A-Uw_@{YQHqKGS$6utryLE zY0=Yq;o7x7e_oloFm-8V<=bypzHM#&xqE7=`_i@9NqYZ0I6gl=J_u&<=5uxy-|6Za zxgLr{qrnRog24-cp=7fA%g--fycAhlY7fq||IohNJr#%r=mHY!`0^sAtzh6wqkrJs zzwMf_ZktdPh9kE_t5)jEWHTGOs4UkWBHt@DH3*OjR5i9?2?G$xI1^x?OIbV=seS;Y zZe86%N8_swCdk~6pcek3NzTGWVzFSSf>UIUM6)Dm-Tg>uY&viGq z0Bmkagr5GBQ<9`OuQE}ou#c2$5my-Ndc3#g@_QMii^ej z9k`#~PZzs;G6AFx4|RRBDHUU`l*U)ix#W*R#sy=nF&f4^-^5cdmdy=%#MHDK4I&tC zSWtPZ+q>xsTMYj64i3BBbP5j~%{tw7-GjT|=Xux7x@`6KlE}9olt`MCO>(42W=(4d z&PAyM8z#ET+OkYjAq)^BD4y z0c}Wvz~{<#tKq>{(W1!LGzC+Orpkyt&XVITIg+@biHe)$+go@UlL zkb0wR4Gl9;frOM{D6bty@mNqO^EnHAX(}4-yGVpYkWO@Uzo0a7DlfyxTdqrkZe>|^ zf1go1z_iQv%ZG;(E%0$&x0}BGP9kr=9fzVwk;nrk81+aK^S%$m@}S!G;b3FcR7k`S zfL8=pS=>v}%lQH(H2Md8kP>+ku@AM%N=1oHZgNffp_IN1udn5{U?&#HO|Wqu5rer^ zHe1t=eDj=0W_4DF0msYAI=9>JU35c^U?}E{THDI^dq|v4?DViC_LK+(^7hNIDN3}k zQ6A4Ci=Yyf;Jr~ZRiz45H4#9HFqY*|Rc%$NYAPJ37lvx=J}&w)VXSPp569{JI>MQL>7Fl>g zVAk{oV*v_Op;L$u^gWkliJ2v&dN733_q|L!++>R)@tXA-yWTpmF~4SYkOZD#YMj$x z`!aGInBafvBBWdw&h^(oUTYAg+ph0KCiTd(tE*S9U3fg;Wp(hu&Iv2H*si_T^NS^U zkjTY^5;=Q(e0NL++*Ai6L6L20=mkVj_MGZ!0_X%qXtc2jkuattL|8LU9-%~g4Z{uA z*cO{&ytF;nIC^9`dznvciD$bXDXQ+xU9ig@$< z`Q-U;CIFkinEd8);Kc>{;^f&gEMPKuh99tx)oZ*On?{r&p-`tkAc9FVY*h)%DW@cuX&QqP8ovW*>*X+H=<)g>tqNvtxOJ|UC0000AbW%=J03XK? zG4bQFk8|1)ie~@-1nNmdK~#9!?9WLNz#tF+Fm5RR1$XM8PuNKuBmn>b0002|R`d1h z*J!Kn%k|l6%3}vGT6%T}E0rC>j1nm#hY>l=%Wl1_)(Qks7@jZcLe-=jo2EeoMc@DZ zjzetRp36i;cgJ;>$Xm)pv z0eNDpiaX6kTe5Sv)=~mWc4h@SWXi02gXVmkCt;OX5UrK*v?L;9fbV6x5}-p=h*o|+ z2`v$oATRs3vEHkSuPJ}M^XH9Ult0{nL~B5zH6YO%kZ27^v<4(v1M(ZWm=(txg@&+E zHp?W6mqmtf%Ez@68D16{BGk~^sp3_UA^+Gjx8-DEAOPQQ0)m7?IEYk5X+6CE+x_ci znf`R91RH0}h2KnJF}c`}%|?nv2uy4*iN_-JlG#v7YnON|Qb`yIV9ZIAqgJ6G@Ay2f6BqGtEYD)M*K08rs03}35pB&%` zgax;JUNmh`$!flS`)0l3*3Z%0E<*WU;hwy};~*kDYDzv6H6UAY`)(ecrh1H3nsOhF zvF=j^zi>Q_Ii4g^J+Mj0kA)(1%QF%|DO02!zzu6eh8rL$blHPrkNs+YlV~Xw8c2V6UNz0i@0DH z>9I+oS|sXQWc!QA6{wj=qz6ca*inxuTADYyD+Bz5Tf~C12<3oW!7joljUpQ}Z^Pw- zlq$soQ@BMexQfsol^r4>F3UvDSPaUSKeCJ1p9I}SOa|xiMvo%Hj0k1S`5u;vR5Aby z&LW&2Iq2!GHSn%A75PI&S{Z@`caaO0f(tVyrN-|O4OEzkNHpn@VTs6>%vWH+S%kM9 zeG@`a@_5`)+|xixQY@08WWu}FnO4@$CPE%ZtB1P?C6#nFX35W5T|zPWBm@2du!y-9 zioZwhW6Ca4+C1Dvm<%%)^_60EqnHO!Pi!?HT#*C^&nDm9eN2H>q_n>Vbr%`={~1YB z%=A5Lj6KrhAm>XHEszJ;aTi$*i7+Ixh*DPYcRUjL`~U|$5^?AGBJ@88)2BVW4!_=O zy+z(49`Y9PjkkzzyhVKDE%L9OJE#F5gaIJfgC=nJ7mNj-(9Aek1A7}Gw`nm}2`%O- v;g75_LHeTScz;VZv)37g0RR91005lX&&eJOLBv0l00000NkvXXu0mjfP|UBD literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_co2_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_co2_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9360303ecbb47fab9ce11947841c07d1a0f26733 GIT binary patch literal 33514 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_flooding_level_chart_card.png b/application/src/main/data/images/widgets/simple_flooding_level_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..9127633a2626cadfd5dd01ddc0ddc6bfc6d26ab1 GIT binary patch literal 1583 zcmV+~2GIG5P)cc@$vEFG;*v)vK$ky1Kf9n&9&E`(|cl z78VwDkK9^#)i77fOl{E*4-eMe^`EfkVq#(i1qH3V>S%=7BqSud$L%p!%D}+Dfq{WT zLqkk%(y*|wk&%(&t?8No000SeQchC<2L%6ng^)000000Kjuv$$7fkB6_ZIyp=ub1&@DHVvZ~1Es-g*8Ij$5 z?AF1mt1u7-;Pp66l1Ypqn<(f;P!QU3@B2U5jcIFp@f_&cNIc|+_HQN;{AddnNNy>R z+)^O9r9g7a?}zvcoGRZznsHqG+g7b(TEH6iiNoIS$40^z5hzk01o<-};xON~`;%mh z(ceOvHcv=3;F>{RH;7ENLWHjwUZpt>y8xXKTBJef!V{vrX9yht-!D8EQY`}x!#Lms zdx*!Li0`F9qj7Oa8l;sDMI1;%{eUpZ9)&;#Qk!3L35 zN+M{aKxTAOVtptim;p!Wr(ra^pO(UUT`_jC`c&_bw7o%k5<&zJ7(X-WxKM{e>@>}T zv9rA{m)(CvIu_VI%gNBbL(+VMv=Q#xILG+r9J4tV0!qalNUt4)9ohz-6$qt$gQUR* z0gdRwTAZ#x1BXJUd7f_bGA;A+C39b|uwuq;cQ{48FOGm*tIGUU-gxiEMA8Q3n}6LE7`z& zvP?-bUQV*Dy{50B0vM7-wC%zELKf5~O z&&LBL5`O$~{=)@{>`4+RA4=JHY3z(?xU=+-AmMUEhWrB_jT;MGh=$uEJBA{RgEvJk zDPmfH;ht)$Pu4@onMp8ky+@L--SMby_k9m0@jD^~V$&dItQeirTTD(Ay@v0icwChsDsiS>6AN;;eLIxjk zh}Ouj4L)nznwONK1f91?m>R!QNQ` z*qL8MCR^R}lYaNZ_;iT*vjuI?1Z>PNqE+-CkJpJ)Kj&Jcu#3dx05;|qF-%pw96V%DO{?~Zs;I}+QhK`fm_bU8ej3nMZ$k(~RiyGGRoil&d`U=f+O9PT1e z=Xw47Rf5KPWBmW+Fe1MSb1KIQL?Co2#~MT&*hDswwXlgSjZI`}Y$8iz6ImLY$e(uZ zE{8!72m{ZK2s=I=h$**!+VZRkalq2 z%F`|DPLQwXBMF|bgt~N&I9As&hQJ)1_mHRv9%_)Oisg=K-rs453f)v!k>r_5ztvM6 zjpE*$(`dvo#9aD30!dwHDO&^uO@BqRsx^-kL64HYH#YwdsMH@}I-^B>y8W{FYcn%5 hGcz+YGcz-r(igUa-|J8JifI4<002ovPDHLkV1i*C=nnt@ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3c4eae4c3bd74c565f63cdcbf21231a3bd996b GIT binary patch literal 30681 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 QhX4Qo07*qoM6N<$f($B*6951J literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_flooding_level_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0325dd3e5e48ff4ca445aee2a35796240f7dc5d5 GIT binary patch literal 11089 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_ground_temperature_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_ground_temperature_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1babf22ee8ca4ad7830dc78aeb211f3300c3e0 GIT binary patch literal 23638 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 FZx(y&i(M&4>(Wp z3cW<$eU_Kr4o4q-^wB4xzY2nxfBlA2AN?QkUTR7~L+3JazuzAT1OmNQCXtAr=@0k! zhtuKk>BC*&!^hfM+Pb=0y3U;G_QPqB{%{}`iFC%}{_gHrEY_NypGV92YkOB~9|i$4 zYjorgBXk1MhXLef`HDUw{4e#epU{ z`s3n<15K%1uBqw0L#dXQ_9OV`Xv@*$p@D&pLx%=B2Ac5q!-4nkwxi{AI6QkTot7$f z=8QjsPew-IOIrR&|EW`_`u}F^}Qa65}2 zZU(Z@ZYpLaxa=m&tnvV^x=W#t&@)MCDYS2p6JkbZV(z);+$#ye)sCcTn;pVk*LAL^ zjS47L0askNo%8Z}{qfWucN+)drB1wwLFAYu;C;Qei2iiS^HaPdn6Us0VTQq&y8eQ6 zFeWAbop<4guO9bf=|>Z2{5a3IX`W{=InUp3Q55a>RB~fD4_FY?)mY*{O+l{&6TC!C zL z+jz4fWEZ-3pvpGj74BlI6P_4{$IHNERmrNXE2fo3QtII%4D!Njq_`~o1`MXgr(-mq zf!jPcQ`1b7&tV3`8LMQ0RX&xYPce#o>|n*n%wR4?Xf2HP!k6_YV2$f~-zA)Ju?pKB zVIuXP)}Q;(Jzke!?-!I(W)e>%ZoWRDmf|owK$zGnvW2!_(mBp14#Vw^fCj;FE0xd& zS>-`pR4VZnMg5TpD3~N>7^jAED2_DKDyYh+xy=*gXd1im1AR!;c*7KJ&Qlq%s;CMI z*FlbHp8TSaUxv#NKs2VjEzI@t^T{E7Pp+B`dgVB${KZK>g5C?+k*>{DP*t=Bv za8GFrHI7;4?i{NDB9BRX$g*||8gMLh!pL=x2Sn^;-eRG&cfDqdgtRI-x|yfBEd!AV z6O?|Xv`{F9x}0G`uZ`0bsU$s^ zWT?tjzJ|-w9JQ0jwvI9#NXcMRSd(cX;Kw*dr0y180(OYpA+7hoq3vL}t$WA4aJp`b zZF{|M7A}j5i_Fau%_Zk5!7D8z%7s=;BDF!``v~4X#=7#S={!x-41Em8Jd9C7E>OiH z(21Z942OCWhmbgTfX~+TywzJ=Me-a!$mb`5E*2)Lg1;HBd^k)QV?;)rm=JU@FtQ~Q zZZ>_JdC0us$<_e~Ea|pgi@JeHUwV+qvh2YFI%wMy6Szw!R*-tKZELJ+$+!x>pAq&R z0orJ7*)-@;_~b?3d&Ni#Dw$FYjIA=0Wr8>2oGz|~wpHRf(zS0_@7C*6y!i;6;t)hK zjZ7GW5X!QU(#m)QiQY*c4*GUUj_7b#Fi~_re#NOAvTfnA4l3KPI4>y_yJlFSSW(b@ zDKDNS;@Jj|u3Sz(Eau3EMt*cYTkn7fq`BR|2j*dFSvZH+f(k(kBm&(K#bv9>$AW7$FY`R zk)X&x1d1uO9FY1RwJW%k#VhBZ3Up?`}6Hh$x#1l_E@v}WR5C8xG k01)JFy}|$$000261uqIh!u>13X#fBK07*qoM6N<$f|)`;rT_o{ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_humidity_chart_card.png b/application/src/main/data/images/widgets/simple_humidity_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..3f58f01564466bacbe64de9e1a20f15576d0535e GIT binary patch literal 1368 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 b003AD1U=0g!>{e^00000NkvXXu0mjf1riUW literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_illuminance_chart_card.png b/application/src/main/data/images/widgets/simple_illuminance_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c3a418d6b13683f199e27c6d90e7be160ba3e1 GIT binary patch literal 1434 zcmV;L1!ek)P)AAt52-Mlg7de* ztE;Q-nyBf0kK|x>2?+`J)7tEeoI^uHk&%&sfq~ycUC_|bz`(%x)Y+1flHf#LQc_af zHBqOSC)NM}00neXPE!EyAiu9s4jnN700g2*L_t(|+U(Cs0l**(05HnYAO7tQ8PFvT z(f|Me0001fr;o_j&3+!S*YkGtHVZt?WVBo*M3qR2Tt?(JAG>waA}I`nas2d1Rg%if zAs*BQy$RjT49kB1&$gxAEW4QL(_lx&KY>t`m)}A3gw)mvsjU-ITPLKpegNeDi6d2p z2!Lx|?`M|?kcDyBHfFrPGUVDnmSpkF(hEq3_g98AH|gn`<&G`Hd!X}ryuH9%*6E^W znV_?x*s|>e5Ubl|EJF8yXfzQ`zfgcUgXJ=5Xvqw15`_4eJYsUKfu~@S0YWmA(b3Qb z!KQs6Ssf~o7ZAOY15>v`MhIm@kB-i(B+s92h0Gu0{0gE1Cc8o$ zKoJ)g!UJLneSju37^ACAJ3yq7+XEufY$3zfkl@7s2N4$Pz4wewJ3urcZMv7vBHUw4 zDaHhEdPI*POnpC9>eN~`Cf^{Uw@EF&y7+AE;5JYy3P>kyoH#fW?v_tRt|^CB_96eR z$ju;PuFLqEQ*1M+_&^+d=7{;j$b%<=`@QcGH&-tv0T0HCd?Ws&^i5%+4Vv5{W@AMn z=Car^9~>z=46o^99t2XTqIg1%5z&ap(%>5aj%djzM>AF=6yVr( zM#nHu2=$h?a9qUuVa=Wyw7J0xlp?wzQhpju&67YUf;BScsTYPq!dnP}VIs)|36ph- zBo+-~*3;?}(Jex0+H8BIOxr~&KRosy%e$FGB&(7?qUq=nqOTw^^e}}8jVtH#2k{Hs z6m}vvL^RzklJ*v45)o=+AkKwILIdi@K2lCB8g1Pk5%e&L2pQY}v@LxuXh`QT#Wj%} zEk)$khTKo&(ckQML}Rg9RN5d~Lvc+cD;vaO-a6!2yn|`zAHT;!Bi}-S&MCf=hZE8E zvBjLBK@gQ^_vz^WKcbVTm)0;08IIq&XZSRpdn}ePj5&*Jlp5aTa~Am&BbsB*B4b!Z zR*|K!ip-5wWNxe?b7K{m8>`6wcJ71#01yOVAb#|ZYz@S_1}m^?gjAC;P74{U$8u-) onIOg7`MR-Y00000008{v0%;(sVSSv%zW@LL07*qoM6N<$g8nC`>i_@% literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_illuminance_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_illuminance_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..87fd83edcb8f6f35e299b14a3151cbda853a657d GIT binary patch literal 25861 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_leaf_wetness_chart_card.png b/application/src/main/data/images/widgets/simple_leaf_wetness_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..eeebe8ae330e62d3592383dc3daa89b4887e9e19 GIT binary patch literal 1454 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%0DrenwxH8>M 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 Ze*v0VIch002ovPDHLkV1mG+F8u%i literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_leaf_wetness_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_leaf_wetness_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e56f0a040a5d50ef6427f326baabee8d33a2ee GIT binary patch literal 9482 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_noise_level_chart_card.png b/application/src/main/data/images/widgets/simple_noise_level_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..28e7ffc4a631a05549b45b54442890aa7dcbc821 GIT binary patch literal 1414 zcmV;11$p|3P)i3g1(fyw z+s8oIe}%AOK-47yQU>yvEV=E1T#LEZ4}p@ScSFd&Lu3~_Auf0kgLpV`V|vw)J|Ks9 z*%2Hv6NOk=-wPpjKOh!dhZq<1>4ek@bF?va+y%*f*@Ep6eq4xtJ_rgY)@}h}Jt0j( zZE!3S_=22^Fe#f996=<+DIgL*Ll6TiaqfdZA!O>gxj?-OlDLf}R3;pidNV?(L-0CU z;c`M`M`l%ar0#-P*vB%yaV})q%WRNzj!6{s;*fy2qsf>`zZLYdoM${!DFF7skq{H^ z`wNI|4VxloJf`)pHCqcZTMIH<3o=^^GFuBWTMIH<6GAL++MW;5$Y-)W8)A_Umq|-x zp$9`uI9+2Aq31$8D?XxdJQnhgJ+oU*76!ub*=8pp!SExgXhoq`z5fgRHu)qBg(B7| zl^LD`490Qt%k&rWJ5sSHqsCBY#7B753 znv%>zB#1b%y{RNz!WUxkY9i__No2Q`LaE;C17l+o(k;nri6jvxMAClqw!JdJ<6sx_ zSV4zasAolV4xU_hrdQeVkrc;LDY)Pn>(VZ_GNl7BQGQ|v(zostHrWI!BAgT`gv6KqO~rrezKP}m)-C(Az&OV9k~axVfFgI8!6+C$@8KdCKeFc!Aig<&AUp*DiY zZ{x%6MJg;^P|(yGDN+SmB57mU|L>QFi6~*9G6dqCujc=n}mg|TRxmlDy7 zxb8a)brx$kibY5uo>2K5D{?rlZ0C1HE{G?Zu0>Xa87c^f7+SC-2qZksSP|PlrS6Eh zly`P5vmbiK*gzjsiJbQogH(4!a@R(UNKq7LdN~aKq@94FjA$43YgyE(__|phEO{0)(unrpI%c$949`w&AqTc(rR9T%yVE_OC000167Ooxl UzYpgy;s5{u07*qoM6N<$g1zC9F#rGn literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa8075fb910bd26274a3d90f88d09b2b27e881f GIT binary patch literal 32413 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_noise_level_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a24fafd15dcb086ef8391b5fbcb27489075c9f GIT binary patch literal 9995 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pm10_chart_card.png b/application/src/main/data/images/widgets/simple_pm10_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..e445a55b874b7bc5d19d13a4cb2b3f07e99ef22d GIT binary patch literal 1403 zcmV->1%&#EP)|J|Q-bael`Kv-BA(Nd zfd8=|^78U8FE9W4@Bgb1JUl$d$H#(#g1Wl8|HojgtgQddaAsy^|L@PMtE>Omkk!@I z|FI&dH_=a;GL zaN!zjT-MnBmsy8IlEL2)0A|p5u4yhrV{er9pwNQXCQ$DZ{f(sf~ zham7so?A;-Ni+z>O(fSTuIy1WFkk`aCVa5~Xy$wij z4M=YdNN){DZw*Lq4M=YdNN@EGNfsDXUJp_3v(v!*a)_hDk?di6HROjqJ6cW@hQa`R zclalPKoUq0m9mtI&c6TqEhZGUQ=xFd6leS|G()+z`$W7}}rEPpb_#vdyq7P!the;XFTac-@L@X`WWc}uMU zds<|wLoKjc5pNgdu@4xm|84S zH%<>YPhR*B76n9UlC$hBSPZ#AODAZFIB+o(0_tZ-jgY>_NKOPjyI4fN2J(DnA+cI<1QyUuAbx6ciV zI4%OB`)Su;aj_4O5{I5j7 zhj2ic4$wn1jDu+3cOl}odzEOUw3sN7tsiwYfQHXPT)XPp(nF-LEbs3>x0BrrZ zME-0IX+x!<`8-6y(g?Ys?IGj&C->L9ZOzmp$EFY;?uz{~135vD5CcsUkhw>W?ICWQ z?q%|>Rl<&t5T~_}AdfbMa3CaK9!_A~ylDmqe^?^|axJ7_!KM(huFfmBE*hY8Hq}Gi zvC%;HYTY<5cL;~3m5_ubv@PT>U_}F0>{J3mSl9Lte+>8&wQI|+U#)}`onvDNg&JM@ z9jofw14IM%GL#Bzd51LM>mZSHY+me@lxE!ZNj@5Z?${X4KX+B81u8y_n7bz#_ql)D z-m(4((L-nmugTSjrYfvxdAwsskOo>QF}=l~t&crHxQ5?;tcHBhZ$o$((tnY49U9s} ze*eEHFUSkB@4O&;%L}r%ydZna3$nNTYv&Gb0EA&62pU^N@}DZ`zd%|*;z1J4bZ`aS z8ZsM0X48=yq=Uw|GOGW-b$)jD5mD#*S*om^LSX;^00000uRLV^_uV(?Mn(Vt002ov JPDHLkV1h)1k+%Q< literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pm10_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_pm10_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..58d18196656459150c81d96677f0ffc1ea8baf25 GIT binary patch literal 15912 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 KMNUMnLSTXkzABUe literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pm10_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_pm10_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..172a0d95f9c77538929fc74248d5ecd49ce010ce GIT binary patch literal 8074 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 M07*qoM6N<$g81J~cK`qY literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pm2_5_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_pm2_5_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..70b4bcda923fe921c8896fd4b673eb69517b422c GIT binary patch literal 6786 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pressure_chart_card.png b/application/src/main/data/images/widgets/simple_pressure_chart_card.png new file mode 100644 index 0000000000000000000000000000000000000000..af756a26d7f530f1231f0a7b988a3ca08c1e233c GIT binary patch literal 1427 zcmV;E1#J3>P)AAt52->jxmqiaXVURL`@Ab5}E)82#3Qun-x}EX63K=(ZLFEC!sJ0C2}vw~9~-1JJSp z`?B(W1aJvl_%*D!v^J!w>Z*JE1z9pYrHLguDdrT#QPYxznG{N_l!RBxl5u5iNR*@P zyjrCg8QcSA3Gf9nL*q*r^#hpziFmFT)`k>2svii6WCJ_`p4>%XiHAp&5Fq+bwIRmL^7At$Ed>F0_J+VS z2kQr7lxhQlnJ8^A5;Cx)8%0jtpVw+0qLy)>8-9I=0qv--65RGXNy9Qn?sx)hevM>`D4f2 zmXn2n0DQHxA&~@voDqKT(AxKZz@KGfsUxM<3r0GA7i3+cv)?2e7~e#}K_JblMGg`i zh49ua5^uo~2!F*Q8}UANOSVE0FW|8h9Pr-StWBhdg*bQ=Wd<1DTPqXU3A6KK834Rr zJw1$kdXay-;>)&?+0Y%*FJmr!+*{8r5*X2Ayw3&M4{}DtWdLxsx1L*MD||25#~Co0 zgl{mh_pnIS029`_9n($PT+($24uuIgs&JsW?}#mEco%Q(;~u`ji={_HDWxgA--v`N z*Ibyw9_tFzIienXET?ZoLS$?TKjOP1Ha5IIa;BH0Fk2(yLw}LGdqtuyM^`X(nCsf2 zt+-%3CoRp$@l^NeyqXX>E2S)A4L@PbMW~?bY$JH3k(nP*Bt;qAA;QHd%OW3$X@AYJ zW~mUI9+^dS^HwCH@1035O{R`BOscvJ>lsx8FkcHRHI1Uk0e-8)XucX!#pl>MpU)V zDdgf&Rp8>ITRjqK!?4vzsWxqR1J1R`@*)-$H$h0LIyoYCUyt7uk#0K_@32&B5}9j} zSifm#TEGEKbcY{vLeGH(f(hl=zNT+im5u&EdgvefG9xN(S zBifUD6mPvhR&QcBEz46$>$a??8_J{N84~QImy8ZzX;wADDSqm?bXX7REY`jFC zjhD!?@e=vp&V3UA00Kb}eA3tWSBnCA!i<9xaC;g hY5)KL0002|W&s50uWrn4{>%UX002ovPDHLkV1oI2l!*WU literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pressure_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_pressure_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..7c81901ccc77d7586849032fa1f0eff64a78b574 GIT binary patch literal 20878 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_pressure_chart_card_with_background.png b/application/src/main/data/images/widgets/simple_pressure_chart_card_with_background.png new file mode 100644 index 0000000000000000000000000000000000000000..68537342377cb65e70f64e5086ebe27ebfd11cdc GIT binary patch literal 9304 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 JPDHLkV1jQD($D|^ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/simple_radon_level_chart_card_with_background#background_image.png b/application/src/main/data/images/widgets/simple_radon_level_chart_card_with_background#background_image.png new file mode 100644 index 0000000000000000000000000000000000000000..27a3dafc6a29101301fd68664f31fbbedec0c433 GIT binary patch literal 23706 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

    VS@?_ zi4v*LJ^k1^fa|WiPJ5od3&4s-qvN8{=r`xgnZuiJywQ4FB=v1&3xov;8BF&l=qh_C z5(A4>V6hCh*aaLgoq4bfgcZtz8>6Xfe!98&(5%MB+Gu%XsWDQeLm|F3d-iM#z_sm}zUx5=$x0zu3R*}Yr1*}so!w##=gm8hx8HjEd`qFvKE0uVmX?;xT$`^bEvO^lc;M}E zF>MB2VNem@8VP>D(Xa4Q8p&wH=%AkuRUrjhsI>K&J9cdEojP?|RB1g+hiz*-K>MLX zZ76>ZQG(K-bnsaigaXNd41hR*Bgg=ld|Iun)X_~14#uB*U9Iz;LbpJqSzOOd}pp=eVp6BHOtE4;{J#5buq{1V= z7ou1N8v!xO-~5dv&*9%o%A+v=&+~HHb=`J=ipr|W!OlhvflN@DjPjR@t01qCeuZTH zb6o$P7!}AC^c=3MvZ}f=0Jm$zZ13*wV(PTh6M0wC1q=K#7(Dmz6gYm9oI(Z^lGRAR z_Rn)e_Y2QT#2Xrf7{!1q-IMDl$Gf_^Fe2NvDD_g)^G(F#arLwldwCEPq`yI6J^&0t z3s!6YTF#dl9Du8a^myI{>y%Yn+T5ED=W`4oCnc zuaKNZ1~ifl;Mw4OKqEQr%jA{c#~~PiKRtV<&6*0(@<9tC>eo7*PJh(d(eZ9;YbzIB zer4m zBEiZB)~v=3hk0fGlJVjyBS*S-K*6A;1^AHl1n}W*7e^tkGB3=&{8T#}=D`OaM2lKU zkS^#>rH*}@bFBDP*;P16cOYF@LJ@jy5(&T!6{ntNO`{&-iWrY1=K_Tf|fR@9z zJ|=kfdAwQCoySh=jTvz-;UujtO@-MQ&>de>oKfOtH9QB`H~`DdP49~xIv z!_V%&=cT{=@WsWtL@Z?sg9Su$1el>^?|r?mx1Zbo>K3;r)q6=Q zm3pbbI%=0$Rh7IUQX2W$Q%|i8&pziIHf?%6wd+TB{`Q;Z(A9pWVK9XPh^V3Go1WrV z+46PHlA9Mb&TdQ|`1AmG-f>5+zqkLpojpB|4d)DkMdVyyAu#EQCmt_bar^C;-Mi|( z>Kkvm8P|2$xM4&3;D#5sP1&-+J|){ZArayffRxK;t&z$D+fSeCmjCg*v!na~)F2*&g9T$j$SF797-FPod+-o0kczc!!VFwLv2J+)w@ z0X_rPC=po$BmmRh-K{*&p}V`gBh}q=TSsT7YHn_3?b@}}*3_`W^!T1Rinb~*_ z6DN$Pwq_hkDU?#ivUJF{!x9Q9HO%UMB_iVjS5GF`?sjx^kj?h#zD#drDwA$Vr&4vP zR63N-^wQhcM>d^Vq<~L> h{lFHbRO(2^{{mJuS#l?E$1wl^002ovPDHLkV1jMEqPGA5 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_4.png b/application/src/main/data/images/widgets/maps_v2.here_map#marker_image_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4954a6ff81b08c01c43f33228d7a6c0f97f661 GIT binary patch literal 3280 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

    U2LshJ(SCJ3 zm4;SROJu3U!bKwkVam0w_j&vymw1D*=zRgwz=HX(1=4Y8pz^izUmZLLse2*mX)4ne z4!zs+BQ$FBATX}>v{j}+3+wBG*?Vc%TJI7sBFqUWum$43G*G#LIwdgCieN9aapaGi z$F|gU#f*Z!Q7J=OQB2Sd?CO%|yt)PQj`Jw61>(IlP`QOVXYicSvtTc@u4|rSRkTUr z&c4pIzB4}GbRwi&y@U4H2E!JJd&@w0sihjN4)hxWd!aQ%!{;(J7$xh_OXX;??mhsm`CWIy}8+>V`tjMgG zOp3YaJ2WQRu+Y8GBqpTp95`2dI5=VanZ3{F^F3Ndgm5<~phGbc6s!aq6E0>F4cm|9 zLhCS`u@h;<3UB$^<51h8J75Yaid_xJ-ZHLOPICA$4_i+qb``|CL|JpYE!Fvxn*B$NqUk89=qY;Z4;A_lSiTgLMh`(y zPy~JV+r9UwZL#nE*{mO^pFV8<_MLOSbIv{AIe7rhM2eTFBLV;-tfKYs^5qx1cWY4g z(&?gAszJ26y1KS*1<_(v_Uii46Z-=%)Dt;9UD@48wX$#R93MZw3Y4AQ{A#mWwa=%U zU;3i#=2rojU*-dG^fY16)1&r4#BUdUg#&S!x{3%O()At=L{=B2qn>z;SHMMK52U_I zE{Yl+;G$fhP9wM|tWIO)45yJ58@EySYBzBjOWmsEYL?S@51d9uH{R9;M3^6q&iW$vWQ$ffaM88|{%dWYZ>A z!4lIY^O07(2BXynp)Pasp#wx~6MKcp#l1)?@KX@2KKA5;-KIEOZDRxVr`6ft>pEn@ z@{)#^2v%oT2(vy$1ScRmN?k^8yo*LTkU5`c*txS z0Gr=mO0!xsjnhD3`KY8}k7n6%TsAQzj{t%YlKm=|^Jo8b4&VjDX|+PValzQf4^KMt^PylsT?xlX)y|U*g(xSeeale< z;~#564?sm!71b=Sa-&?~I;S8Qx&!u9U71t09bvD>i*kT(l!Gsv;JEG(lsTy^JoC0T zc)S?p0DCzJzF2(dteh9It1Shz`{{y5S;uQmLHA@H7+6OqOj}6~|t4SI!i{Z6}^bPUsL$kb+7N(Fd4SuCX zsGv|!af#YgVlc?U6$Y9hym3;T0co@b)Wx8AgM^;5JEiGaaupA>} zQMQniFf=5dg~yfq&sM!!B{c1^i-Drm0mqmA;2(pc`@-GBx3srP`12L~XUKASi)5b! zBT{tuj8BTu!-UGjk0(5Qp8B;Dar&Ley+-0C>@-AMgc^xS_m3cn3wxAuDZ8ExUJ5;e zhbIn;keY|xb$c-rZoBNMnfMZfO57K_rig_u(U94sB>cCF-pL=!b4F4`D;E#n*D!$<<-oJJT)U^sYl5vaV5@kkbjM8Mb%CqgSv) z!6-X$fOzQ>vuA&h3XHaa&DZ&rvo_iWh7IY1oDCa-@lQ^q8Mz<-L_a;ZuE87c*1XHw zN2F;7E?$zW5os{APCKwES3~Py8e)OTs(EX3PUAls?5K>|#42S<9JR@#xq|;>_$kHG zVq1Y_1!f?>!ct%>o*Q#dQw#_$G&wWc3e%h&5G;>uw%EwcLx&Tm-3X_{LPj=Q=JLqq s6hpL^|Eoi^XOA^E!&q~(v184D1JE(ZWM(LnhX4Qo07*qoM6N<$g5)0k#{d8T literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/analogue_gauges.speed_gauge_canvas_gauges.png b/application/src/main/data/images/widgets/analogue_gauges.speed_gauge_canvas_gauges.png new file mode 100644 index 0000000000000000000000000000000000000000..ca72a0d827c4e64111479fe57b8649769b71fde6 GIT binary patch literal 7177 zcma)B^-~+p)5hJkxKkuhpcE+XUZhy?1b1k0hu~1$p|}6GZs%rqZ*DI}OG61ChZ+Y72?<|CS^o2@9)6WVER@%IFt7RFtHQ8QQ<6t| z`M**4vmzAxN+qo)CBAuxkytb&XI2lyE!CS3VEXy{{{hoNP``+1Fq^9|2R;7H3=2z7 zPcJGeGH!J#tzg?f)H6^eJ*wJXJ)XM#pd{`p_HkveXWrY*eR>uaNg&>~CG~tqBs9$J z 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 Ioh%6QKU4}e=eDQ{b+pN>;@93DqG7-1X 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 My!<^|Jx);m1)|G}^Z)<= literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.aggregated_value_card.png b/application/src/main/data/images/widgets/cards.aggregated_value_card.png new file mode 100644 index 0000000000000000000000000000000000000000..04d081a2af0e49d7c895dde946399bf743f2a3d2 GIT binary patch literal 3777 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.entities_table.png b/application/src/main/data/images/widgets/cards.entities_table.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0e91c6a9c3df580519f35189f5ea3b8289ab3f GIT binary patch literal 2600 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.horizontal_value_card.png b/application/src/main/data/images/widgets/cards.horizontal_value_card.png new file mode 100644 index 0000000000000000000000000000000000000000..0890428dbe9ab14a368267d95f539740cb208cd7 GIT binary patch literal 5139 zcmV+u6zuDXP)jh#lpYC!}&$P%9hi z?eN;$-Ph31&&bBc#mXc-cFfV+%hKP;$jjvA=FrE(OD7b`&)e14+Q-Mu*V5DH@%j4v z{Lj}&GPj1!^Y3W%GSxu)yvP=Rcimu&eYV)$;igW z*x%~U)!*FG(96uv_V)MC*yYQ@zZE4yB06p%H)u&F71Z13*xTXF$;vo8LFei192_0R z!NH-9g*8ljTr?crXn+}hL5 z&YX#V(a+M`&&;v3wwa%&+TY}z!Q{!--Qm^I*3Qh_;pwcdurEb&>*(Y+IXWyXF6!#( zLPSPYFdu`5jOO6nGDvqGGhTXrgDXI9PES)+E*jC+*dQ-Yf`x}UREOc~^{LG1m6)3u zELavOQOVQUrmMB2p`x3co+>_RWMyfQl9s2->Zz!yYi@BkMo=6kDt(~JyS%`frM--d zj9Xk_R##XoG)@>IGjET&%(0X;R&BVqxnyyhc6NH5VL7njbAW-N?jmf}=b_U6GyTh_Tl`V2+r5c2HV!S~o3og!5*FvWSh6xOz`} zM=v5RBg@|Kqpjb7h?iG&hN+K(K4pGTKSE-~qfzn}I7aWW9X=z*-_ z92_La%0X0QL!5&^>R1RQ`B^|g0wlqMoM^iqJRD?7KV$QFPSfOPGBch2E$?E zh^Eu&C`tq3ZRFR=gjIzwQ39b;u~@dd>mY%gdi4BiS-t!dAd!q>POBG7Rg839lS8Z1)wM**Na;e!YtzR{x z95=9-YK$w4%Z#oEsJXe><=Qo;!ceWq5L>VhYBFssK?a z{}5h3KWT$u9KiRNY~5rKrVV3@g{Hs)NV>A&7>L?|%a*~c2M@v^(cm-o5u6Jd^+-~Ulh6!;sJN9Yav)RX`A1v)}vzq{Ih#p2vN=C~HvQ zvb3~BkSBg4PoDf(^ji=L-MtyQ8W2iYl<83$y!G|ky9tOayJrwLGBdNXLXr(#F*2xu z-eru`ODIQ^(dx`OK~5Pnr<0IbdqpUh3kz4Mhyhu0*#Ze+{Qg3rK$IVggy^Qc*8nAVHY(gFkwJ7nSNa^c485tQUWQ?#~s7!wnuK>pM*R@?2yZ=gRrU$lFAqjzx8>33ZN{ixk(G<(hV&+h5H z?#}h#<3Yb2iA26Q6Ob5+1RQZeAO<-Ckcj51F%a0v#Q6L2z1cAgo0ZCPTz7Yfzfh4l<`Si4~ zxtZW}RHWE$pIMN@SWHHJx@h(~Q-=a!`+XCVV@38kAa9VrDq@2)^hUSQ*y(L(t^RcV zz<4ET-4Wz>OS^92;iuE+gb~CE$dG|M6~_>FfFOGquIQ(NjGb4O4T+GB(|J-n!3smO zW6L&{mRgG;HQIj54AY;olJgjl7i^dd&E9%rhuj}lgdaoBwO-SNwCj53q)xA-_nmJA z?X;5J10`e?1k8>oAwI>L)J?G1!fTS}xA}f`-_ln97 zAv+Ayh~1_TL}Hj@8zeX7;Y8LBF@`KO`_%*_SwgTKOVa&hDcSBNCFCU{okW9A*Q(yI zwS4F{;?4vdMJtd%F@oTZ-8RVHRwk25Wis&u4#7w~gDEbPsc!iy6?Do0XF+6@sZUJ5 zcF61l4?)sw=)o9549WsxLcCOwq!9@zm6GQ>FH@F8N&+%pO^2;E5aY-k0V=~3AsIqM z5z-MP49Mb##reWKvQ>nBZVTVhi!I+PI0mmO=7=JqC(HxU4#`dBa=AMgdvZAs8)5fz zx872|!(ioVfpRm3M0wOjN~I+7q;Q4Jf)p$WB0yp074pdlByKS9Nd-x#0fEAecN2t$ z#-}s_?}1?Hk7JXSVTj?wfXEEfu^a@Mz2nJwFqe5ex8A-X zh+)7Y+V}+pa%n<+U)ncv$VDdvcGRt1Z@BX z{(HJKAy>Fdo**AT7Vf@w@!9NI5R+FlTg~#W7N-02b3pju=aaDG@ctNLmsG5^V-Dy5!b*V@KOg1yb@j8N!;O@cd96fKTToF#~cBLs|zrBxd+%smuiYU+q# zzK$T9l|PJ`|4S2L9LN1n@}zDt%Ndw%#G2S3JDPowIqOQnFD<2S%cf~_E2yJ10|RY8 zOxX?PM8=3Eiwca8eyO0EL>QV$<}aZ|6x46MKhNFnJk#o>-oD(XpO>HKc|M=##zguf zZ6H8Bu1N$#OOl#1vMkBrRK}?!6-ic-vC-sYd@>>>6o(@dZkvp4*&L4tBqc0KEoKuE z*^FYRd0>Ttho!*czz_|U9X;;}Heuxr>QJxMbMi)8ZEfx4%b4sV`T3(*e;GNE3@Upm zM3Ag}UKQztNLe0vOhp11HvwvLAF3js0#wy8q9nLOGEwQ1lQG4YkTVd8h2t-k zNry8To_`o8k+AGjb9lFmd+{>8%&6vn9b_ni9%wWh04_~n!(*LIqGI*4ht4$IKZvfiTBfHP3&^>9<=vI z_M)^K8M&qqkI6iEKJnni{z~7Ta&bF2rxO9oX54HDAw&?qMmwU5Hq)ScxHb z7Zbq)j>BHWN4r~ezoOHDj-DpJH%G{+6@n_bkP6#{3pgX-pd%tB7X1Dlj^-*lC7>=H z-gP9XiPVC|BdGPY*R+BNOmhUG+YS&mo0UX1*?L1fU?SN_VL(raDuOEwoX?JZAjj1K zj%e}uDiLHTB!sH4AAzY;tjdM2Q%MI>fk_$R&JhaXY;&`vfIyP5!tZh5ukG>jO`uUT z2@2jp3_4AOSSzAI89^cO4+17Ko=p@2!-Hi6k-J>3bKJReoDM1=YwFxx*y(aUN>C;0 z7=aK~DhajHbrVM!?Evorc4Ri0EHL(-Exsx@w#cRAQhV+6wV+oNf`*8Z5KUy0E@Fj< z)z(XWT}9qd|4{v%2=g#!1O^(0ioFv5Yd5%B0}(qw#43o;1iNTun1HgY>Pxs5Gj&`| zHx`EW^9ZL2A{C-2c$!oZKSaP^L@=}jHnfHSL{yI?d2A>G^w8}thTWxwO#!O7be=qc zj7|-?6Ex}SR>Qe2z!`PE%UxRRFJ>aN$A`&!BDOUmJJD|EMBeBLSyzNJ;o1Ps4Bl@( zuR7rS59p=zVtY+{ac?m%iXjgwd-4AN6Y=w&3L08O|Ltfrg|#k<+vpp{t+y(zt*sqq zTK`GMI$Y|w^lv(rYPMfkN~IFv4<9DFx7A&kX1rIKp8olDz6n>z03>_&@7{X|Su6FR zyFo@6_2cR6cy@MtC4Xh5o{>KF<&?(bkHq5~TT4nx2KxH?PUYw`Q(|Uojs`PD^aaX` z%0UtR6rFkfZRz`izQwr*3k$C%zCN3{0xp8H#6|j8VGECuRDsxe5Pu}V0gw2>yrJQt zq2XafKAv5kO^^4aSJG*d$cvd1H;I{<&vUS8Xh2Lb85rn;jixiepl3HUF(}_!&L}d$ zbk00@rLq8iO)Qv1E;5mQ6gFbVWf~G0F(M_0$Fvw#^%{+woBd<`wd-y@2 z03w>nY<4-@(=$5@2~C8BdV?GcnY%9*7tb`T30Vt|4yp}1uBY(3eKOW*7zVZ57OysGP(gglZEMhLk!=BBvi`$Ubth~XckSih;uXHaflzeq;8k^cx) zFO_`0laf0snLB7zg@X669l^`4+U5DveItc1xLOZ%nM^@K=!4J~;YnfE=1K);Q^#aB z^+Z3+x~!s!C8E{^8-K@EK}oVKT+J63^Mz!2o~3abGijQ{Nf;&sImQ|xA&jf&%nTP)YHW= zq~g}wyKjSq!$po4{(JXc$boai60Vm!mTE2tz2Z?RksRf%wI!-O(d|{wR;H}zsqEZL zZH7WgPLuwAJ=!LaHp|aCxpB$!J-3SArK!(9d2jdkytq4JqT9o!OWTBP|8_Mf=Jb>+ z4+2lE5sltvl+|=1XX~12vlxS-awEfnk8E<}NfKz5IHJI2*g-t=r@aH$&KNz5PsKZ9 zB7er@{&1`-D6*V>`st}4&FQCq{{JTZv_bv9tP1192N|pt>lm|?7aKObJ$2HUq5G2a zgIr~&G%fY-rUEH%8QW9ovCfDlf~LoezE3sxmb; z>io6#ANyl$-yeJTv^nwN$ES7WAL=H&xIXdTzWjS~4x8+c-1)b0>f`nr(M7kXe_?Xl z^~$L$yg9El&poKjz(Z;FBol6jeAZ8^xEY?`b8jzMcKKzA)!qPpqe9(`87=B>OBFpA zEN1Wc`Ds7Pxt7Lz{FmC8OXe#!q*xv7+|vB{PqK5?BYnk>tP<0`=FZWz_^M#dr&4Rn za_tMxjBj6WG)iU)Ih_yjVw>Q}k-wsVHR(9-&KR!Cffty3#9ozsvwU&FyX(-NW7^EI zGK+%rd%SKj&s%YY)84C!_gs5F59iUxA1iF^V)%`gu>4u``a{unJrzcAE#uZjHaj#u zKR*!ZKG6JX#a7;)WkD-dHq@P&``1|au*bgMj`{1jC0ie6Jvt=o8O2ogy`fd>N$A=4 z|6k2e{QK#=;H=j7UzX{m2-&Syt1XD;I(PbcqkHHHE`tKYj^5-pmnE4Q&Aw}|w%%!# zi@$W~&!1&_hgCgiHR);cTn;@^{b0Fpm4e%nTn7KBwcL@MQJdy&SP@wew)A_ffm(0F zZgpLj#n)I1j3>q2|KiWEh%w^Tl+)(wg#Ce_Ql){H?TV5X6o~moPVUfuLpEGx_FJlf))wSAC^~$=M$>ycsQ`u_* zXEb=vcwUk%sP%0A@ONeVk_G-!jm0ZNv_xACmo|z6Ev{&G$oglnw~FKEn+;WK9Tf~; ztlP71u3gKOkaQ^)Bd&{C!Je@=0U z3~SpmA-#8g%??}MhE38KX`Uy)6ctMr|XJy7R6>|_T`@S{v}-PyjaA2%9X>QV$Rdm&t;uc GLK6T?iA==+ literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.html_value_card.png b/application/src/main/data/images/widgets/cards.html_value_card.png new file mode 100644 index 0000000000000000000000000000000000000000..7cffb4bd15d3077025eb8abb5050699824b33718 GIT binary patch literal 2402 zcma);Yd8}OAI9g9jl#l%XJMAeUS%cW$$2OmqnT3+!y;miL$r7pLu4XlB8t+SB6AKs z(I!S@G_%NQy&_TM@Zj}+e%=r7b^Y%D{o(#{fB9e6o$iFbAT0%v0ssKgcDB}-eP{2h z1hjtu!Fe}H`zGp(x?m01qh|Ma0sxXn?5r)ZvExgEuZ}pOYFGH~y^H+YAqcG{hq0L4 z#_~Yn06qenrMb9Dahi`1;Cok@zK{|(Bazl_ zFiqA&uxBu=^)Sq1L~Q0UUsqAhh28K%`HQdk`<}($hRBAt*?n_#KD=yfE`qa+ICe?1 z-3K;`cfe{UJr43KeEX@*ISq_Fv>5q|fAWem5~!Oox<;ye(0-8cm+(hQv{d-^&5rM8 zRzy%dwOK0FU$Lw>**+t#OM{`7Vt`ydcnSX33vI?_91cfu=ToZE2FJSKKQD+PYr!0g z>@T8WX{acW!x%~6r!QG9fOTgjg%gh0GHbqWVWU+%#sk<%;M^CNH2p=++hh&-xYh?6 zY;}Mi-^%CYkR#&vd!^~{a>(nY^y?|P5yRRrxugF#5vO3No$5DrZSxWtVmY1(>3F|b zb9Ig5UVl$5@~P%LM5mQVXNSpf8~00^=g7~Y{P!XpLRko$65Qag2naJXWfi+GhS0(-=W=rJsO4Q0A_=KvA5^|VD^ZFT zNsopvw@m^0G`l-mVsm#Xcq*p&B+T)5o~pv7Aht2bMr81_E$kR+QO`KJ{pIgQrZ3ix z>){r>bPVzB&I-0rXc>5w=gou7{_Q^nUBV&b(Be=qVbQu>dv)>`oMNxa`v^Zamc92f z1O-~R3J8FT6E;0UFA?U$%D{JT`sWQ>rWKoSF7i1?G*hdfh5yPZyAv|7tVeqZb-oC~ zXBL_Me1wI=dcDaWDws}}Vuwjx1Y%F)_N2)}X_MXL)zygQ9jnCmk0!M>XUpn6zYR?z zb-2exyV7%pEzNdl+es??zuj_1enm@23RA1b_wF6?jn^b6(3}SrU6&0TsSiW+pnON+ zLRhc5mHF+61X}4NA)tf>om6{V)Tf^X^{4KRI37od7yPkG^1+uMeT4!gY{bh=ZT%4Z zx~5UQYM;R0t-7&m=xyeQ#%e7eS=~PVF4FG6Kmw~1XFHt?Ei#E*_=p<&#{IZC`+j?w zEE%>m_o#jSHO@R?+&{Y8@#Z>Ul)1hN)u_wqsBDUtzy{IAbW8rNe~*2Dz$H+Ds>tpIo_#G> zy2gEM1vl@36|=6=ux`*%enYYwd22CDxn_3MVX1&|_W7SUPtBoE*WTCa$~DQ(x>T=> z171T6?O2IJ!!2VB8{z%;`k;Rs&BK1c%zA*S24WT;XuR{8t*1){d#e_br_SYGmYP;V zRyY^req9C-wTDz@Z<dvI7pJH5+qn&NrrR{FWf& zs|vi!{Sbp3UO14=n(+`lR|)(j<5SXSMt|;-8K7Q-E_u^SuNNhB7!EIp*L*Cw_3_Za z0H8?F?>=3?U`hr8CxT3Xfy*MU3VTIh2=EN6xrS4z6HlGMGOW6i^i)^eUBuipuGIWs zO)%ugRX>d|-YojfV`GBL2PDQ$yzF&iDU3CgM|IswZ)PIozJ}V)TaFxohbGGt;RnOD z&bn6=+it9(rC^a6=Dj3tQRdIg!^1VJ~D@ScXJNh=Vf(~5_#s1b#!(VyB~d3EnP9+Cjr>oe+5P_ zDptnr#L^F+1!z3fP9t_h^Le2OERlk@P-WW_5f + + + Image background is not configured + + + diff --git a/application/src/main/data/images/widgets/cards.label_widget.png b/application/src/main/data/images/widgets/cards.label_widget.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ab2b86a091503d78424b0e3f81e043834e3897 GIT binary patch literal 2503 zcmZ{mc{mde1II_q2wRae$4X*uF+Vb4)Fz}Ui-~b3=Drq6C52(GrufBZ z1lGdHV*qi%zGMXWCsBi;q#ZZ**+N>wvYrb z5LhZSkFr!QXv#&bsuz=*_owB(4I{SitW1XmZyjHaTN%R1OJwJ@gBPtB+NeSskglSq z0_Cd@E?r3A0OWtjb%C;#y%l^CF+DtgWzHm=@M8$fc5+^vBVTe3+v(_1mz5+=tw)o# zgslzldJ!of0b@bIf>F{F5KlOcRa^x)j&?_~bVwhQ^AktkSUjyI+}cDmoqQJ2uk5W7 zEtbPI-w^25)G)nOgnYduUoJtBEXxGu8L?nTS%J;tU!j9DE=BWu@GrI$G9b z=H?!RPh|a^Qv0hH7MLzX**&Hg;M$G=azXFFz9$ZYk)f{v?2XBYF?j&PZot9t5&+Og zLsDkK^~DeRK_7O&td!OP?S;a(nI1VniYqx829Sjo1O+Bui-;x(hQo{lR9y{MB%q!E zqdUSM0MIH|jz7oVVMJBVPYelAGZwZ;9R@jN6m2f%1h`1zaY>zJLfN-4p&(@=;q1pI zZT3kh^LN$B(;yFnVAS8B(@NCds`%L!G&|TP~TH2 zzC8Kx+Jm?rs{sy>#2toI9rSp2E@^4`P{7&|%TuQnzV<9PxdC4-U(9x2X<0rG>dx>s zSZm}>`&Cz|eu~Mql#~~EEIk8!y{3$&P+p9wF{4teG8T={LER)6s(3l<}ycpz&b zs*>!nSHiz))+$>&CbnedcBCB@Y7D3>(W>xM3N0qy$mUhT56AeU=3tgT zTu%XW0_vHd;A^R-9G4o^P&3nSVXmsX-Gm^I5$~T7IU{IiwFY#C@bSiiA~tZ3HJn=V zv`ZK7rX{OEUS)7HP%;%(pq842@F$a-1GR!ng(Ju018^?@1nm>4Jb9u`8Uc{Cnji>Ox`Y{3ltq%Eh{k&V%W#Z;){!K zYPCWSDt0S!7^r(wa5;mql#^dM{Nsls*9S)TaKdr3Hl(-MBETr8exlrbu`;^9T+%LWQD@)RDRWY+_}mUYIT4ou2$u z&6A>2<>IX<%{oDfys^6>%<(vS9CrTtrq*hRUfm0?h4YSt_P(=TmQcigL+=QsaZBZx}F=JauPg zKgqtH4{1yB#B7+xOd7s`Dis-QV89QyoFB^A#a&E(P^--x^c~2}->7+_IR4#Z3^={S zOHi30V9cUYV9Vc*|4Nh7t*9mPw?n}*S~T7E;s~`>orjwDkczGHvy**LTRGba?D?s_ z8}fkzKlWaihb+8c@-Ymyd-%`;q6K&S!M%_>@9P&kJoCNadev2>ZKqIUi0r2xd*_^`bEpmeAv zzvb8G&Q;srCZk2(a|WFjc7cU-xACqa>niAGzVf7@@Ve{Mk1L!7c$Z3b7OfXEOaGT2 z9xsiC!sZX$l4W0agi=ru_rMr^jIZC2hxn%)WDIzn(h#QWVaug)iJ)Z2k z{Zcj1tV#Us;_k|WW_&NJL7wy1H#A@x9_0m|6F>J@q{loZSa4{)O*DHzt`5@5SXZHD zwHL`5iT!g#%-#L_%2vhEI=5|6uckfcqlz&KNqS?v*e$&=$kdiYfZ5?gut-TWe4W{a+O8@`> literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.markdown_card.png b/application/src/main/data/images/widgets/cards.markdown_card.png new file mode 100644 index 0000000000000000000000000000000000000000..d928a2d1a19adf70aac3d65cb736e52893aa25d6 GIT binary patch literal 4608 zcmZXYXE+;P`^Tvjl*X>2M5#@Msx67wdsAvPYF3TZtep^)#I8Mx)~;2%cEzSzMO9II zr1l<9pXdMkz52hn?{l5|I-l$NJ@@_QTqjyzSB-}14iym*5sijA-0<&;{~LJ#lD|0^ zG?7U}M2yteHdeX5z9tX|^Yin+e*NO(<5O2x53fDg-Q87EQp(84u(h>qZf-t5KQAdM zIXgR>oSYmO7&tsUyu7^p{rk6!jLh-z@z&Osp`oFtr)O_(FAN5gmzRJ2`n8IRN^o$n zq@?7`%*^`wy05RViHS)^M@LLd%-GmiQBl#^#kH82SYl$LrKP2ikkIn-a(;gP>guYt zwsu8DMO0LjgM)*fo?b&kLrzW(7K??wCj2H`4h;~hC-pFBe%`W%#P2ly1Tp6($bQXlMha=YQ|3L>gr}^ zXTN>>R#Q{+;lqb_{l}PwL&a!9RaF%diPX^05DePdJHBfCdb+>AkI36o$NniRE1TcG zC?7s~Rdukvz1`Z{n%H(^k+C!W`#i4s(5GyFeecq_a8En&kCT&AZtt;3$kxQfgrlRQ zP0sG%uk+78&)nbbZ692Tg>Ek!jou(40;*}ip~ikQTbY9|W+1@Ne2sXisn(k-mq?|R0+nK~#GPyM4W?($SD~0CFl%57Q331H4@%%(TWC3>?AxL)g8;a==!6z- zMT7zzSEK_HO@2f7gt`xRQI~8J;MP)5Cna&@+`_e*eL=;O@UBpx2d!E4>T_8`2q00P z!Bt}U#1uMoen!RPmu2>g>=Y9dtNQ0dLh;+L9uQ=3*4bJ^+tr zi>?}?A3)71SG~x`!Ta0%CMo@oO5yn1?IX*te!Qx?Ysyuxx%{PcmyYTCMt@s?&I_&1 z2{ELXek>19$YPu3u-lHS0XW6hOk63qAtNHW@N0Yx$k?t|+n2j;$n9B+V+>*?g02@A z(TjY11VBZe2iRc7?ArF4=I+T%4X3T~=)e=dNOPC6tlS!sr#-xKGd>+lyC_ow2*JYu zgYs5zg|Th&_#G#IQm>b?{j*koeNZ$zZ<^bJ21_yxffryFE!>WVb~GiOpmuaI8lK0&pL!dBE@xe4 z+{}jdrE90u6-*1d$OB9<;kzSO;CI&1@mT-BsZ9AtVLFXBB;NWADI=c-lpbIwpZj4>~mcUaSJ5 zsKDhuIY{q{j%OCrgAV-uF@Oql`qZ715BjH^$}h%QfmI>rt`{j20l7~N(z{fT*1UcA zzOWL|^|STHxSl90AcZZAdGT|b@F!-Nnh;(4iJvZzu)>6g&d(vZqMCy-jhE5 z%uiz)`@d8`9bx92$nI?4nwcjQSAM2Oy5K$+I@SK#bY+&Z#$Rj@gsig%eW_8rc-`Vp zLf@~KoUn8EG}bzmA6Yk$u6hpd9&OB2!`r^<>5*VTrxY@4r6z`lRcqj2GqXXA$$fcR6U?Tu3)&n z9}=e4Cp9@zbB!7(xE18r7&M5&)L=bdZ$qy=;$H690uXIbHPBh-X552|+rb~zr zlx|R>V72}MB?^;+HBc#15dfRBzLmGtOX3_0=sQZvF!6A|`1C$8#wKE# zS=L#)`)oWjI9HgO%R_C=v{Q|kbhFF1k_endPbX{L`WuFNXaBRplp!61w=o@$z? z@Xt5iTLp~-kSyf?{5DU@-ptMR)+s86u|MX5R1u?W&sEEzZiw#fXDyixE*O~ zJQaV0`C4IijLTb?oVb!ymhz}t_Rk9j{J!gZp>*$z?3mk7&uMt5?HG8dnX`QICIdFt zBMQ#*Y(F62euBt`F&gFji-JkpqFb?ol3(;=CEVN%=HJem84CqhpL`VvxO1tXht}?~ zId5R8>gCa2mTBPYYQ{?6>kgpq~TstxzY8N*>Gq~-IU{>`-X8nOO&@Ro*%6$`}⪼xz!ile z1p$)_I$I>K764Vw+_6qtrHAHOeM*{PfIQ$uiG^Q>jfTl}nS4yt`8b^nG%G2A_Zu}` zW0``zvguX-kYahP$;tGgT#{??ImnO# zc6eT-oiZ@!%sfxRjZ;2NE>EGbo(fX>272|`e>T@N;PE}bjn-qf!51L)aq^Q&49Ikt z^7u*FlX?H+)*d75-?z_*V)%;N!ukDueo#0sz8SHv2RX2~d-d{VlU3@$Mei0R=L0IHov8?cYqur#NxZ&?KKgAjJAG ztDu^Of5h!|xOhz*4283-qAs^c!Abr3;&!huNS7DkU|Hp%HF(HVI8d`1=jqaIe5{kK zw@{ihAdJu&S4mQKn*hX{2Jsl{!7_66MO@xk<_v3&Ggnr?Dg9rp?@Yv_woG+upK9Tq zUHnI_`Yq?fX(XPu-1esG70p!mbO{%wE&MJbw38mTbpi}ZUD)9X-HIW*N!i~lAWfgh z!I3AlXTT{E(oxS{mxIciuAIt2S&beZ+~bVt%jQ1$qoIEBN0NC1 zB$CFWqUP>ykb{KBs=X_+sI2Mx8*X;jz!Nx4{Zk^@f+$9^@5G3~?bm@_LE%;#QT4Ar zYgI*5+i$y#0zO_PlscET&V_cYGU~)Q0LG^j1~l<(N6RKj-v=PIX419sR0*&h+jU}6 zPK7xK|2@*q*~>gmi!Hb@2@&Na%~vT$_F+R2w9o^2+BAt<(3&rv zpfYS&C0-Ey`tCHmxv_xC)XM&w?s75&$=vx=M zyAwQsNeO)SY8ASdrZ3EHo`jH~(tGC#7=KzDr_1$HH{;0mw!VT8_B0b(o?f&6Qib`042lQeYYKSu8@zMP8;Io}kWEA%u%8 z=F|LvgICa-)_feG2_sOmJbRC=klMU$F-{n3ogNe-G0%7D=h=@Ijz{q+g-x~t@7|1S z00l4r&DBEviVr6x6`uK9YTqwQb=X#CG^~^xNX>hEL4!NoOt@v{DThhZBUEldyK3!h zSkk?@ej}(95~BS44-H?eX#hEZr1!&*A(nunryiUIDYVLlcP)p_+!%cm+55y9xut?7 zcsw%8<#2<_B-99h7O({K<8GwifZoNNqh8A-H_LA5Y#+;BB?I`J%7~6LG@s%&+fNr| zX|!??O@8~GUMB{bUXo-ZTO>uI7=-BuuqD_HFsXXZfmg-60wsx(?k7YSWiGkku?vGs z(>Fh;Gm9&e%Yv%hN9X(iGhc=iI;T&iNSS&+&HzD=Z}c#B41^ksvWZw0e4aVSH5PD? ze6bkiLo)9an55lOTRD6g{9UB;{WIpklInPG!K~X4!!jbU>N0Lvk zP;)nOj4Oj)DtD|%#h5s0N>sfOg$tQwFq0M~SNp5S@I6P^u7>izi*cTN|2BUqGm^G# zC{~{KWepG=_8I)1aSR8 z#dhitBNiXw!BVfaEj=ieKY1jzM)e95gJ{IjkLEQ~l%!K|$z+n`7E@Cs8cWaoYUZA1 z+>q-MMfJ0?zm`Q%RX@c%dZIp!YVB{rX-6B>vVJwhm1YTmOHCj%5vU4@kK`tO`B#i^ zQ}ft|PXK-i8UjB3VHlruZ%}bpYH}oXv_+)Ivo*yQ)fYz@ol>>@F>X!e%6az)xvkT3 zPwAb$$<(;B9LY>y)-!gC+m`);~$Pdm$OCu%R6tUp0%RSC* kzdxc}H;R8c9CSjSG_S3yrBLtv_h*MlLq!)}39}9V55oP{W&i*H literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.qr_code.png b/application/src/main/data/images/widgets/cards.qr_code.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a35c039f7278db6f9ab21174457ff1a9f96bda GIT binary patch literal 6496 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.simple_card.png b/application/src/main/data/images/widgets/cards.simple_card.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e47ce979e2c8bf5ed4b8863337d1023b985df2 GIT binary patch literal 2735 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 literal 0 HcmV?d00001 diff --git a/application/src/main/data/images/widgets/cards.value_card.png b/application/src/main/data/images/widgets/cards.value_card.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f4e2e163a356b802d246acff41f7ce6dcbeb4a GIT binary patch literal 12764 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